From b5d2d4a61ce91765e9cac1b02271a8f4b049c558 Mon Sep 17 00:00:00 2001 From: Nick Withers Date: Wed, 4 Dec 2013 10:42:26 +1100 Subject: Update to Mongoose 3.9 at the last point before the MIT -> GPL license change [That is, https://github.com/cesanta/mongoose/commit/04fc209644b414d915c446bb1815b55e9fe63acc. See https://groups.google.com/forum/#!topic/mongoose-users/aafbOnHonkI] The RTEMS patches described in the following emails and made to the previous Mongoose base have been applied: - http://www.rtems.org/pipermail/rtems-devel/2012-July/001345.html - http://www.rtems.org/pipermail/rtems-devel/2012-July/001343.html - http://www.rtems.org/pipermail/rtems-devel/2012-July/001346.html (except to mongoose.1, see below) ...as well as a patch very similar to that discussed at http://forums.bannister.org/ubbthreads.php?ubb=showflat&topic=7600&gonew=1 to provide poll() (which might be able to go away soon, with incoming RTEMS poll() support) mg_connect(), mg_url_encode() and mg_vprintf() were additionally marked "static" to silence warnings. mongoose.1 appears to have been removed from the upstream distribution. Note that the API's changed, for example: - A struct mg_callbacks must now be provided to mg_start(). Initialise members to NULL to disable various types of callbacks - Callback interfaces have changed significantly in general - The short form of options (e.g., "u" instead of "run_as_user") are no longer available (upstream) - The "max_request_size" options has been removed --- testsuites/libtests/mghttpd01/init.c | 46 ++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 25 deletions(-) (limited to 'testsuites/libtests/mghttpd01/init.c') diff --git a/testsuites/libtests/mghttpd01/init.c b/testsuites/libtests/mghttpd01/init.c index f480851b8b..f93d397395 100644 --- a/testsuites/libtests/mghttpd01/init.c +++ b/testsuites/libtests/mghttpd01/init.c @@ -44,7 +44,7 @@ #define INDEX_HTML "HTTP/1.1 200 OK\r\n" \ "Date: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n" \ "Last-Modified: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n" \ - "Etag: \"21dae500.a2\"\r\n" \ + "Etag: \"21dae500.162\"\r\n" \ "Content-Type: text/html\r\n" \ "Content-Length: 162\r\n" \ "Connection: close\r\n" \ @@ -80,26 +80,18 @@ static void test_tarfs_load(void) printf ("successful\n"); } -typedef struct { - char *string; - int size; -} printctx; - -static void *callback(enum mg_event event, - struct mg_connection *conn, - const struct mg_request_info *request_info) +static int callback(struct mg_connection *conn) { - if (event == MG_NEW_REQUEST) { - int cbacktest = strncmp(request_info->uri, CBACKTEST_URI, sizeof(CBACKTEST_URI)); - if (cbacktest == 0) - { - mg_write(conn, CBACKTEST_TXT, sizeof(CBACKTEST_TXT)); - - /* Mark as processed */ - return ""; - } + int cbacktest = strncmp(mg_get_request_info(conn)->uri, CBACKTEST_URI, sizeof(CBACKTEST_URI)); + if (cbacktest == 0) + { + mg_write(conn, CBACKTEST_TXT, sizeof(CBACKTEST_TXT)); + + /* Mark as processed */ + return 1; } - return NULL; + + return 0; } static void test_mg_index_html(void) @@ -172,25 +164,29 @@ static void test_mg_callback(void) static void test_mongoose(void) { + const struct mg_callbacks callbacks = { + .begin_request = callback + }; const char *options[] = { "listening_ports", "80", - "document_root", "/www/", + "document_root", "/www", "num_threads", "1", - "max_request_size", "2048", "thread_stack_size", "16384", "thread_priority", "250", "thread_policy", "o", NULL}; + const struct mg_callbacks callbacks2 = { + NULL + }; const char *options2[] = { "listening_ports", "8080", - "document_root", "/www2/", + "document_root", "/www2", "num_threads", "1", "thread_stack_size", "16384", - "max_request_size", "2048", NULL}; - struct mg_context *mg1 = mg_start(&callback, NULL, options); - struct mg_context *mg2 = mg_start(NULL, NULL, options2); + struct mg_context *mg1 = mg_start(&callbacks, NULL, options); + struct mg_context *mg2 = mg_start(&callbacks2, NULL, options2); test_mg_index_html(); test_mg_callback(); -- cgit v1.2.3