summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorØyvind Harboe <oyvind.harboe@zylin.com>2009-11-08 19:50:35 +0100
committerØyvind Harboe <oyvind.harboe@zylin.com>2009-11-10 08:50:06 +0100
commit031591ead57807c4a23141d8141ea579b8deb2a0 (patch)
tree4cfd159195068765b6cfa5eb4b9ba76a81041e16
parent151a270695416824940ca64016b3dcd75d9c75fa (diff)
downloadopenocd_libswd-031591ead57807c4a23141d8141ea579b8deb2a0.tar.gz
openocd_libswd-031591ead57807c4a23141d8141ea579b8deb2a0.tar.bz2
openocd_libswd-031591ead57807c4a23141d8141ea579b8deb2a0.tar.xz
openocd_libswd-031591ead57807c4a23141d8141ea579b8deb2a0.zip
httpd: fix warnings, more robust error handling, improved MIME handling
The httpd is work in progress... No mime type set by default. Let the browser guess. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
-rw-r--r--src/server/httpd.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/server/httpd.c b/src/server/httpd.c
index 0ddeb97a..d8659b09 100644
--- a/src/server/httpd.c
+++ b/src/server/httpd.c
@@ -123,7 +123,7 @@ static int httpd_Jim_Command_writeform(Jim_Interp *interp, int argc,
const char *script = alloc_printf("set dummy_val $httppostdata(%s); set dummy_val",
name);
- retcode = Jim_Eval_Named(interp, script, "httpd.c", __LINE__);
+ retcode = Jim_Eval_Named(interp, script, __FILE__, __LINE__);
free((void *) script);
if (retcode != JIM_OK)
return retcode;
@@ -164,7 +164,7 @@ httpd_Jim_Command_formfetch(Jim_Interp *interp,
const char *script = alloc_printf("set dummy_val $httppostdata(%s); set dummy_val",
name);
- int retcode = Jim_Eval_Named(interp, script, "httpd.c", __LINE__);
+ int retcode = Jim_Eval_Named(interp, script, __FILE__, __LINE__);
free((void *) script);
if (retcode != JIM_OK)
{
@@ -288,10 +288,10 @@ static int handle_request(struct MHD_Connection * connection, const char * url)
const char *script = alloc_printf(
"global httpdata; source {%s}; set httpdata", url);
- retcode = Jim_Eval_Named(interp, script, "httpd.c", __LINE__);
+ retcode = Jim_Eval_Named(interp, script, __FILE__, __LINE__);
free((void *) script);
- if (retcode == JIM_ERR)
+ if (retcode != JIM_OK)
{
printf("Tcl failed\n");
const char *t = httpd_exec_cgi_tcl_error(interp);
@@ -341,7 +341,10 @@ static int handle_request(struct MHD_Connection * connection, const char * url)
LOG_DEBUG("Serving %s length=%zu", url, len);
/* serve file directly */
response = MHD_create_response_from_data(len, data, MHD_YES, MHD_NO);
+ /* Should we expose mimetype via tcl here or just let the browser
+ guess?
MHD_add_response_header(response, "Content-Type", "image/png");
+ */
ret = MHD_queue_response(connection, MHD_HTTP_OK, response);
MHD_destroy_response(response);
@@ -353,7 +356,7 @@ static int handle_request(struct MHD_Connection * connection, const char * url)
static int ahc_echo_inner(void * cls, struct MHD_Connection * connection,
const char * url, const char * method, const char * version,
- const char * upload_data, unsigned int * upload_data_size, void ** ptr)
+ const char * upload_data, size_t * upload_data_size, void ** ptr)
{
int post = 0;
@@ -442,7 +445,7 @@ static int ahc_echo_inner(void * cls, struct MHD_Connection * connection,
static int ahc_echo(void * cls, struct MHD_Connection * connection,
const char * url, const char * method, const char * version,
- const char * upload_data, unsigned int * upload_data_size, void ** ptr)
+ const char * upload_data, size_t * upload_data_size, void ** ptr)
{
int result;