On Fri, 2014-01-17 at 10:08 -0600, Joel Sherrill wrote:
> The network-demos do not build now due to API changes
> in mghttpd.
>
> I don't have time to fix this in the next week.
>
> Nick updated Mongoose so probably knows what has to be
> updated.
The attached patch *might* do the trick and at least shows the gist of
what would need to happen... The http part at least now compiles, but
these changes are otherwise untested.
> FWIW they are easy to build... build RTEMS with something like this:
>
> ../rtems/configure --target=${CPU}-rtems4.11 --enable-rtemsbsp=${BSP} \
> --enable-posix \
> --enable-networking \
> --disable-smp \
> ${DEBUG} \
> --enable-maintainer-mode \
> --prefix=/home/joel/rtems-4.11-work/bsp-install \
> ${TESTS} >c.log 2>&1 && \
> make -j6 >b.log 2>&1
>
> Then build network-demos like this:
>
> RTEMS_MAKEFILE_PATH=/home/joel/rtems-4.11-work/bsp-install/sparc-rtems4.11/sis
> make clean all
--
Nick Withers
Embedded Systems Programmer
Room 2.26, Building 57
Department of Nuclear Physics
Research School of Physics and Engineering
The Australian National University (CRICOS: 00120C)
eMail: [email protected]
Phone: +61 2 6125 2091
Mobile: +61 414 397 446
> On 1/17/2014 9:08 AM, Gedare Bloom wrote:
> > the top 4 commits at
> > https://github.com/chirayudesai/rtems-network-demos/commits/osmonweb
> > appear to be the ones to look at / test.
> >
> > On Fri, Jan 17, 2014 at 10:01 AM, Joel Sherrill
> > <[email protected]> wrote:
> >> Where is the patch so I can review it?
> >>
> >> On 1/17/2014 8:29 AM, Gedare Bloom wrote:
> >>> Hi,
> >>> I won't support this relocation until the build is confirmed. Thanks!
> >>>
> >>> On Sat, Jan 11, 2014 at 5:34 AM, Chirayu Desai <[email protected]>
> >>> wrote:
> >>>> I have moved oswebmonitor to network-demos, preserving commit history.
> >>>> The content of the repository osmonweb.git has been added to a new
> >>>> directory
> >>>> osmonweb.
> >>>> The tree can be browsed at [1].
> >>>>
> >>>> All commits but the last 2 don't touch anything in the topdir, only add /
> >>>> modify content under the osmonweb directory.
> >>>>
> >>>> It does not build with 4.11 (didn't before this merge, like I said in the
> >>>> original message), and I do not have 4.10 built and installed currently,
> >>>> so
> >>>> as of now it is untested.
> >>>> I will test it by later today / tomorrow if time permits.
> >>>>
> >>>> Also, looks like the code under http/ (in network-demos) is for "test of
> >>>> GoAhead web server", which is deprecated, so it doesn't build with 4.11
> >>>>
> >>>> [1]: https://github.com/chirayudesai/rtems-network-demos
> >>>>
> >>>>
> >>>> On Tue, Jan 7, 2014 at 2:16 PM, Nick Withers <[email protected]>
> >>>> wrote:
> >>>>> On Mon, 2014-01-06 at 09:44 -0600, Joel Sherrill wrote:
> >>>>>> On 1/5/2014 5:41 AM, Nick Withers wrote:
> >>>>>>> On Sun, 2014-01-05 at 12:01 +0530, Chirayu Desai wrote:
> >>>>>>>> I've uploaded two patches for oswebmonitor, [1] and [2]
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> [1] fixes a minor issue with bin2c being installed as rtems-bin2c
> >>>>>>> I thought that was on purpose...? Not sure it should be installed as
> >>>>>>> bin2c, as that could clash with a host binary.
> >>>>>>>
> >>>>>>> Are there actually any RTEMS-specifics in rtems-bin2c?
> >>>>>> No. It just wasn't packaged and it is a commonly needed utility when
> >>>>>> building
> >>>>>> up filesystem images.
> >>>>> Yeah, fair enough (I'm using it myself).
> >>>>>
> >>>>> It doesn't seem to be packaged on either FreeBSD or Ubuntu, otherwise I
> >>>>> was gonna suggest removing it in favour of the host binary (which still
> >>>>> seems like it'd be optimal in the ideal world).
> >>>>>
> >>>>> P.S., Cheers for the earlier clarification Chirayu :-)
> >>>>>
> >>>>>>>> [2] removes support for GoAhead
> >>>>>>>>
> >>>>>>>> [1]:
> >>>>>>>> https://gist.github.com/chirayudesai/d8e72a999cb02e2d9dcd/raw/a869794c687cfbf9575efe8195245a7a4ac8992d/0001-make-bin2c-is-installed-as-rtems-bin2c.patch
> >>>>>>>> [2]:
> >>>>>>>> https://gist.github.com/chirayudesai/d8e72a999cb02e2d9dcd/raw/55b65f128daf2ad532e83b6d44b976de51cae64c/0001-remove-support-for-GoAhead.patch
> >>>>> --
> >>>>> Nick Withers
> >>>>> email: [email protected]
> >>>>> Web: http://www.nickwithers.com
> >>>>> Mobile: +61 414 397 446
> >>>>>
> >>>>> _______________________________________________
> >>>>> rtems-devel mailing list
> >>>>> [email protected]
> >>>>> http://www.rtems.org/mailman/listinfo/rtems-devel
> >>>>
> >>>> _______________________________________________
> >>>> rtems-devel mailing list
> >>>> [email protected]
> >>>> http://www.rtems.org/mailman/listinfo/rtems-devel
> >>>>
> >> --
> >> Joel Sherrill, Ph.D. Director of Research & Development
> >> [email protected] On-Line Applications Research
> >> Ask me about RTEMS: a free RTOS Huntsville AL 35805
> >> Support Available (256) 722-9985
>From b7776a67257a3e03527ff3651b862ca6eb926fec Mon Sep 17 00:00:00 2001
From: Nick Withers <[email protected]>
Date: Sat, 18 Jan 2014 16:09:52 +1100
Subject: [PATCH] Update for Mongoose 3.9.
http/ compiles but the change is otherwise totally untested
---
http/init.c | 26 +++++++++++++++++---------
http/mongoose_ext.c | 34 +++++++++++++++++++---------------
2 files changed, 36 insertions(+), 24 deletions(-)
diff --git a/http/init.c b/http/init.c
index ff2d847..86a8f13 100644
--- a/http/init.c
+++ b/http/init.c
@@ -83,8 +83,8 @@
#if defined(USE_MONGOOSE_HTTPD)
#include <mghttpd/mongoose.h>
- void example_mongoose_addpages(
- struct mg_context *server
+ int example_mongoose_callback(
+ struct mg_connection *conn
);
#endif
@@ -111,7 +111,9 @@ rtems_task Init(
*/
printf("Loading filesystem image\n");
status = Untar_FromMemory( (char *)FilesystemImage, FilesystemImage_size );
-
+ if ( status != RTEMS_SUCCESSFUL )
+ printf( "ERROR -- failed to untar filesystem\n" );
+
printf("Initializing Network\n");
rtems_bsdnet_initialize_network ();
@@ -153,14 +155,20 @@ rtems_task Init(
#if defined(USE_MONGOOSE_HTTPD)
{
- struct mg_context *WebServer;
- printf( "Initializing Mongoose HTTPD\n" );
- WebServer = mg_start();
+ struct mg_context *WebServer;
+ struct mg_callbacks callbacks = {NULL};
+ const char *options[] = {
+ "document_root", "/",
+ "listening_ports", "80",
+ NULL
+ };
- mg_set_option(WebServer, "root", "/" );
- mg_set_option(WebServer, "ports", "80" );
- example_mongoose_addpages( WebServer );
+ callbacks.begin_request = example_mongoose_callback;
+ printf( "Initializing Mongoose HTTPD\n" );
+ WebServer = mg_start(&callbacks, NULL, options);
+ if ( WebServer == NULL )
+ printf( "ERROR -- failed to initialize webserver\n" );
}
#endif
status = rtems_task_delete( RTEMS_SELF );
diff --git a/http/mongoose_ext.c b/http/mongoose_ext.c
index 9545059..1751399 100644
--- a/http/mongoose_ext.c
+++ b/http/mongoose_ext.c
@@ -20,17 +20,26 @@
#define END_HTML_BODY \
"</html></body>\r\n"
-void example_mongoose_callback(
- struct mg_connection *conn,
- const struct mg_request_info *request_info,
- void *user_data
+int example_mongoose_callback(
+ struct mg_connection *conn
)
{
- const char *query;
+ static const char query_uri_start[] = "/queries";
- query = mg_get_var(conn, "action" );
- if ( !query )
- query = "";
+ const struct mg_request_info *request_info = mg_get_request_info(conn);
+ char query[256] = ""; // Arbitrarily sized...
+
+ if (request_info == NULL)
+ return (0); // Return 0 to have Mongoose process the request
+
+ if (strncmp(request_info->uri, query_uri_start, strlen(query_uri_start)) != 0)
+ return (0);
+
+ if (request_info->query_string)
+ {
+ if (mg_get_var(request_info->query_string, strlen(request_info->query_string), "action", query, sizeof (query)) < 0)
+ *query = '\0';
+ }
/* fprintf( stderr, "RTEMS Request -%s-\n", query ); */
mg_printf( conn, START_HTML_BODY "<pre>" );
@@ -57,19 +66,14 @@ void example_mongoose_callback(
" <h2>Unknown Request</h2>"
" <h3>URI: %s</br>"
" Arguments: %s</h3>",
- mg_get_var(conn, "REQUEST_URI"),
+ request_info->uri != NULL ? request_info->uri : "",
query
);
}
mg_printf( conn, "</pre>" END_HTML_BODY );
/*arg->flags |= SHTTPD_END_OF_OUTPUT; */
-}
-void example_mongoose_addpages(
- struct mg_context *server
-)
-{
- mg_set_uri_callback( server, "/queries*", example_mongoose_callback, NULL );
+ return (1);
}
#endif
--
1.8.5.2
_______________________________________________
rtems-devel mailing list
[email protected]
http://www.rtems.org/mailman/listinfo/rtems-devel