From d209029ca87aa096d7371aec373fbf76c2582e16 Mon Sep 17 00:00:00 2001
From: zwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Date: Fri, 8 May 2009 04:49:27 +0000
Subject: Fix warnings in httpd.c; builds with libmicrohttpd-0.4.1.

git-svn-id: svn://svn.berlios.de/openocd/trunk@1659 b42882b7-edfa-0310-969c-e2dbd0fdcd60
---
 src/server/httpd.c | 35 +++++++++++++++++------------------
 1 file changed, 17 insertions(+), 18 deletions(-)

diff --git a/src/server/httpd.c b/src/server/httpd.c
index 4b876d30..d94d4f2e 100644
--- a/src/server/httpd.c
+++ b/src/server/httpd.c
@@ -42,6 +42,7 @@
 #include <unistd.h>
 #include <sys/types.h>
 #include <fcntl.h>
+#include <pthread.h>
 #include <signal.h>
 
 #include <sys/types.h>
@@ -54,6 +55,8 @@
 
 #define PAGE_NOT_FOUND "<html><head><title>File not found</title></head><body>File not found</body></html>"
 
+int loadFile(const char *name, void **data, size_t *len);
+
 static const char *appendf(const char *prev, const char *format, ...)
 {
 	va_list ap;
@@ -134,23 +137,19 @@ static int httpd_Jim_Command_writeform(Jim_Interp *interp, int argc,
 
 	data = Jim_GetString(Jim_GetResult(interp), &actual);
 
-	FILE *f;
-	f = fopen(file, "wb");
-	if (f != NULL)
+	FILE *f = fopen(file, "wb");
+	if (NULL == f)
 	{
-		int ok;
-		ok = fwrite(data, 1, actual, f) == actual;
-		fclose(f);
-
-		if (!ok)
-		{
-			Jim_SetResultString(interp, "Could not write to file", -1);
-			return JIM_ERR;
-		}
+		Jim_SetResultString(interp, "Could not create file", -1);
+		return JIM_ERR;
 	}
-	else
+
+	int result = fwrite(data, 1, actual, f);
+	fclose(f);
+
+	if (result != actual)
 	{
-		Jim_SetResultString(interp, "Could not create file", -1);
+		Jim_SetResultString(interp, "Could not write to file", -1);
 		return JIM_ERR;
 	}
 	return JIM_OK;
@@ -243,7 +242,7 @@ static void append_key(struct httpd_request *r, const char *key,
 /* append data to each key */
 static int iterate_post(void *con_cls, enum MHD_ValueKind kind,
 		const char *key, const char *filename, const char *content_type,
-		const char *transfer_encoding, const char *data, size_t off,
+		const char *transfer_encoding, const char *data, uint64_t off,
 		size_t size)
 {
 	struct httpd_request *r = (struct httpd_request*) con_cls;
@@ -313,7 +312,7 @@ int handle_request(struct MHD_Connection * connection, const char * url)
 	else
 	{
 		void *data;
-		int len;
+		size_t len;
 
 		int retval = loadFile(url, &data, &len);
 		if (retval != ERROR_OK)
@@ -327,7 +326,7 @@ int handle_request(struct MHD_Connection * connection, const char * url)
 			return ret;
 		}
 
-		LOG_DEBUG("Serving %s length=%d", url, len);
+		LOG_DEBUG("Serving %s length=%u", url, len);
 		/* serve file directly */
 		response = MHD_create_response_from_data(len, data, MHD_YES, MHD_NO);
 		MHD_add_response_header(response, "Content-Type", "image/png");
@@ -381,7 +380,7 @@ static int ahc_echo(void * cls, struct MHD_Connection * connection,
 		if (r->post)
 		{
 			r->postprocessor = MHD_create_post_processor(connection, 2048
-					* 1024, iterate_post, r);
+					* 1024, &iterate_post, r);
 		}
 
 		return MHD_YES;
-- 
cgit v1.2.3