From 61376bd734b6cb9b7e749f5de7a986228a1e5013 Mon Sep 17 00:00:00 2001 From: Andy Green Date: Mon, 12 Mar 2018 10:45:32 +0800 Subject: [PATCH] minimal: updates --- lib/libwebsockets.c | 11 +++++++++++ lib/libwebsockets.h | 11 +++++++++++ .../minimal-http-server-smp.c | 5 +++-- .../{ => mount-origin}/favicon.ico | Bin .../{ => mount-origin}/index.html | 0 .../libwebsockets.org-logo.png | Bin .../minimal-http-server/minimal-http-server.c | 7 ++++--- .../minimal-http-server/mount-origin/404.html | 9 +++++++++ .../{ => mount-origin}/favicon.ico | Bin .../{ => mount-origin}/index.html | 3 +++ .../libwebsockets.org-logo.png | Bin .../minimal-ws-server-pmd-bulk.c | 7 ++++--- .../mount-origin}/favicon.ico | Bin .../{ => mount-origin}/index.html | 0 .../libwebsockets.org-logo.png | Bin .../minimal-ws-server-pmd.c | 7 ++++--- .../mount-origin}/favicon.ico | Bin .../{ => mount-origin}/index.html | 0 .../libwebsockets.org-logo.png | Bin .../minimal-ws-server-ring/minimal-ws-server.c | 7 ++++--- .../mount-origin}/favicon.ico | Bin .../{ => mount-origin}/index.html | 0 .../libwebsockets.org-logo.png | Bin .../minimal-ws-server/minimal-ws-server.c | 7 ++++--- .../minimal-ws-server/mount-origin/favicon.ico | Bin 0 -> 1406 bytes .../{ => mount-origin}/index.html | 0 .../libwebsockets.org-logo.png | Bin 27 files changed, 57 insertions(+), 17 deletions(-) rename minimal-examples/minimal-http-server-smp/{ => mount-origin}/favicon.ico (100%) rename minimal-examples/minimal-http-server-smp/{ => mount-origin}/index.html (100%) rename minimal-examples/minimal-http-server-smp/{ => mount-origin}/libwebsockets.org-logo.png (100%) create mode 100644 minimal-examples/minimal-http-server/mount-origin/404.html rename minimal-examples/minimal-http-server/{ => mount-origin}/favicon.ico (100%) rename minimal-examples/minimal-http-server/{ => mount-origin}/index.html (58%) rename minimal-examples/minimal-http-server/{ => mount-origin}/libwebsockets.org-logo.png (100%) rename minimal-examples/{minimal-ws-server-pmd => minimal-ws-server-pmd-bulk/mount-origin}/favicon.ico (100%) rename minimal-examples/minimal-ws-server-pmd-bulk/{ => mount-origin}/index.html (100%) rename minimal-examples/minimal-ws-server-pmd-bulk/{ => mount-origin}/libwebsockets.org-logo.png (100%) rename minimal-examples/{minimal-ws-server-ring => minimal-ws-server-pmd/mount-origin}/favicon.ico (100%) rename minimal-examples/minimal-ws-server-pmd/{ => mount-origin}/index.html (100%) rename minimal-examples/minimal-ws-server-pmd/{ => mount-origin}/libwebsockets.org-logo.png (100%) rename minimal-examples/{minimal-ws-server => minimal-ws-server-ring/mount-origin}/favicon.ico (100%) rename minimal-examples/minimal-ws-server-ring/{ => mount-origin}/index.html (100%) rename minimal-examples/minimal-ws-server-ring/{ => mount-origin}/libwebsockets.org-logo.png (100%) create mode 100644 minimal-examples/minimal-ws-server/mount-origin/favicon.ico rename minimal-examples/minimal-ws-server/{ => mount-origin}/index.html (100%) rename minimal-examples/minimal-ws-server/{ => mount-origin}/libwebsockets.org-logo.png (100%) diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c index 957d9b89..41918d0b 100644 --- a/lib/libwebsockets.c +++ b/lib/libwebsockets.c @@ -2737,7 +2737,18 @@ lws_is_cgi(struct lws *wsi) { #endif } +const struct lws_protocol_vhost_options * +lws_pvo_search(const struct lws_protocol_vhost_options *pvo, const char *name) +{ + while (pvo) { + if (!strcmp(pvo->name, name)) + break; + pvo = pvo->next; + } + + return pvo; +} #ifdef LWS_NO_EXTENSIONS LWS_EXTERN int diff --git a/lib/libwebsockets.h b/lib/libwebsockets.h index 00e6485a..ea483f23 100644 --- a/lib/libwebsockets.h +++ b/lib/libwebsockets.h @@ -2346,6 +2346,17 @@ lws_adjust_protocol_psds(struct lws *wsi, size_t new_size); LWS_VISIBLE LWS_EXTERN int lws_finalize_startup(struct lws_context *context); +/** + * lws_pvo_search() - helper to find a named pvo in a linked-list + * + * \param pvo: the first pvo in the linked-list + * \param name: the name of the pvo to return if found + * + * Returns NULL, or a pointer to the name pvo in the linked-list + */ +const struct lws_protocol_vhost_options * +lws_pvo_search(const struct lws_protocol_vhost_options *pvo, const char *name); + LWS_VISIBLE LWS_EXTERN int lws_protocol_init(struct lws_context *context); diff --git a/minimal-examples/minimal-http-server-smp/minimal-http-server-smp.c b/minimal-examples/minimal-http-server-smp/minimal-http-server-smp.c index 52bd2cb9..86bbb1ad 100644 --- a/minimal-examples/minimal-http-server-smp/minimal-http-server-smp.c +++ b/minimal-examples/minimal-http-server-smp/minimal-http-server-smp.c @@ -8,7 +8,8 @@ * * This demonstrates a minimal multithreaded http server you can make with lws. * - * To keep it simple, it serves stuff in the directory it was started in. + * To keep it simple, it serves stuff in the subdirectory "./mount-origin" of + * the directory it was started in. * You can change that by changing mount.origin. * * Also for simplicity the number of threads is set in the code... note that @@ -29,7 +30,7 @@ static int interrupted; static const struct lws_http_mount mount = { /* .mount_next */ NULL, /* linked-list "next" */ /* .mountpoint */ "/", /* mountpoint URL */ - /* .origin */ ".", /* serve from dir */ + /* .origin */ "./mount-origin", /* serve from dir */ /* .def */ "index.html", /* default filename */ /* .protocol */ NULL, /* .cgienv */ NULL, diff --git a/minimal-examples/minimal-http-server-smp/favicon.ico b/minimal-examples/minimal-http-server-smp/mount-origin/favicon.ico similarity index 100% rename from minimal-examples/minimal-http-server-smp/favicon.ico rename to minimal-examples/minimal-http-server-smp/mount-origin/favicon.ico diff --git a/minimal-examples/minimal-http-server-smp/index.html b/minimal-examples/minimal-http-server-smp/mount-origin/index.html similarity index 100% rename from minimal-examples/minimal-http-server-smp/index.html rename to minimal-examples/minimal-http-server-smp/mount-origin/index.html diff --git a/minimal-examples/minimal-http-server-smp/libwebsockets.org-logo.png b/minimal-examples/minimal-http-server-smp/mount-origin/libwebsockets.org-logo.png similarity index 100% rename from minimal-examples/minimal-http-server-smp/libwebsockets.org-logo.png rename to minimal-examples/minimal-http-server-smp/mount-origin/libwebsockets.org-logo.png diff --git a/minimal-examples/minimal-http-server/minimal-http-server.c b/minimal-examples/minimal-http-server/minimal-http-server.c index 0784b550..e82cd3b3 100644 --- a/minimal-examples/minimal-http-server/minimal-http-server.c +++ b/minimal-examples/minimal-http-server/minimal-http-server.c @@ -8,8 +8,9 @@ * * This demonstrates the most minimal http server you can make with lws. * - * To keep it simple, it serves stuff in the directory it was started in. - * You can change that by changing mount.origin + * To keep it simple, it serves stuff from the subdirectory + * "./mount-origin" of the directory it was started in. + * You can change that by changing mount.origin below. */ #include @@ -21,7 +22,7 @@ static int interrupted; static const struct lws_http_mount mount = { /* .mount_next */ NULL, /* linked-list "next" */ /* .mountpoint */ "/", /* mountpoint URL */ - /* .origin */ ".", /* serve from dir */ + /* .origin */ "./mount-origin", /* serve from dir */ /* .def */ "index.html", /* default filename */ /* .protocol */ NULL, /* .cgienv */ NULL, diff --git a/minimal-examples/minimal-http-server/mount-origin/404.html b/minimal-examples/minimal-http-server/mount-origin/404.html new file mode 100644 index 00000000..1f7ae66e --- /dev/null +++ b/minimal-examples/minimal-http-server/mount-origin/404.html @@ -0,0 +1,9 @@ + + + +
+

404

+ Sorry, that file doesn't exist. + + + diff --git a/minimal-examples/minimal-http-server/favicon.ico b/minimal-examples/minimal-http-server/mount-origin/favicon.ico similarity index 100% rename from minimal-examples/minimal-http-server/favicon.ico rename to minimal-examples/minimal-http-server/mount-origin/favicon.ico diff --git a/minimal-examples/minimal-http-server/index.html b/minimal-examples/minimal-http-server/mount-origin/index.html similarity index 58% rename from minimal-examples/minimal-http-server/index.html rename to minimal-examples/minimal-http-server/mount-origin/index.html index cd3e8bc7..cc294bf6 100644 --- a/minimal-examples/minimal-http-server/index.html +++ b/minimal-examples/minimal-http-server/mount-origin/index.html @@ -4,6 +4,9 @@
Hello from the minimal http server example. +
+ You can confirm the 404 page handler by going to this + nonexistant page. diff --git a/minimal-examples/minimal-http-server/libwebsockets.org-logo.png b/minimal-examples/minimal-http-server/mount-origin/libwebsockets.org-logo.png similarity index 100% rename from minimal-examples/minimal-http-server/libwebsockets.org-logo.png rename to minimal-examples/minimal-http-server/mount-origin/libwebsockets.org-logo.png diff --git a/minimal-examples/minimal-ws-server-pmd-bulk/minimal-ws-server-pmd-bulk.c b/minimal-examples/minimal-ws-server-pmd-bulk/minimal-ws-server-pmd-bulk.c index 15867752..6a1b7150 100644 --- a/minimal-examples/minimal-ws-server-pmd-bulk/minimal-ws-server-pmd-bulk.c +++ b/minimal-examples/minimal-ws-server-pmd-bulk/minimal-ws-server-pmd-bulk.c @@ -8,8 +8,9 @@ * * This demonstrates the most minimal http server you can make with lws. * - * To keep it simple, it serves stuff in the directory it was started in. - * You can change that by changing mount.origin + * To keep it simple, it serves stuff in the subdirectory "./mount-origin" of + * the directory it was started in. + * You can change that by changing mount.origin. */ #include @@ -30,7 +31,7 @@ static int interrupted; static const struct lws_http_mount mount = { /* .mount_next */ NULL, /* linked-list "next" */ /* .mountpoint */ "/", /* mountpoint URL */ - /* .origin */ ".", /* serve from dir */ + /* .origin */ "./mount-origin", /* serve from dir */ /* .def */ "index.html", /* default filename */ /* .protocol */ NULL, /* .cgienv */ NULL, diff --git a/minimal-examples/minimal-ws-server-pmd/favicon.ico b/minimal-examples/minimal-ws-server-pmd-bulk/mount-origin/favicon.ico similarity index 100% rename from minimal-examples/minimal-ws-server-pmd/favicon.ico rename to minimal-examples/minimal-ws-server-pmd-bulk/mount-origin/favicon.ico diff --git a/minimal-examples/minimal-ws-server-pmd-bulk/index.html b/minimal-examples/minimal-ws-server-pmd-bulk/mount-origin/index.html similarity index 100% rename from minimal-examples/minimal-ws-server-pmd-bulk/index.html rename to minimal-examples/minimal-ws-server-pmd-bulk/mount-origin/index.html diff --git a/minimal-examples/minimal-ws-server-pmd-bulk/libwebsockets.org-logo.png b/minimal-examples/minimal-ws-server-pmd-bulk/mount-origin/libwebsockets.org-logo.png similarity index 100% rename from minimal-examples/minimal-ws-server-pmd-bulk/libwebsockets.org-logo.png rename to minimal-examples/minimal-ws-server-pmd-bulk/mount-origin/libwebsockets.org-logo.png diff --git a/minimal-examples/minimal-ws-server-pmd/minimal-ws-server-pmd.c b/minimal-examples/minimal-ws-server-pmd/minimal-ws-server-pmd.c index b77e7d0a..1cd9b381 100644 --- a/minimal-examples/minimal-ws-server-pmd/minimal-ws-server-pmd.c +++ b/minimal-examples/minimal-ws-server-pmd/minimal-ws-server-pmd.c @@ -8,8 +8,9 @@ * * This demonstrates the most minimal http server you can make with lws. * - * To keep it simple, it serves stuff in the directory it was started in. - * You can change that by changing mount.origin + * To keep it simple, it serves stuff in the subdirectory "./mount-origin" of + * the directory it was started in. + * You can change that by changing mount.origin. */ #include @@ -30,7 +31,7 @@ static int interrupted; static const struct lws_http_mount mount = { /* .mount_next */ NULL, /* linked-list "next" */ /* .mountpoint */ "/", /* mountpoint URL */ - /* .origin */ ".", /* serve from dir */ + /* .origin */ "./mount-origin", /* serve from dir */ /* .def */ "index.html", /* default filename */ /* .protocol */ NULL, /* .cgienv */ NULL, diff --git a/minimal-examples/minimal-ws-server-ring/favicon.ico b/minimal-examples/minimal-ws-server-pmd/mount-origin/favicon.ico similarity index 100% rename from minimal-examples/minimal-ws-server-ring/favicon.ico rename to minimal-examples/minimal-ws-server-pmd/mount-origin/favicon.ico diff --git a/minimal-examples/minimal-ws-server-pmd/index.html b/minimal-examples/minimal-ws-server-pmd/mount-origin/index.html similarity index 100% rename from minimal-examples/minimal-ws-server-pmd/index.html rename to minimal-examples/minimal-ws-server-pmd/mount-origin/index.html diff --git a/minimal-examples/minimal-ws-server-pmd/libwebsockets.org-logo.png b/minimal-examples/minimal-ws-server-pmd/mount-origin/libwebsockets.org-logo.png similarity index 100% rename from minimal-examples/minimal-ws-server-pmd/libwebsockets.org-logo.png rename to minimal-examples/minimal-ws-server-pmd/mount-origin/libwebsockets.org-logo.png diff --git a/minimal-examples/minimal-ws-server-ring/minimal-ws-server.c b/minimal-examples/minimal-ws-server-ring/minimal-ws-server.c index dcc805da..d5f255d3 100644 --- a/minimal-examples/minimal-ws-server-ring/minimal-ws-server.c +++ b/minimal-examples/minimal-ws-server-ring/minimal-ws-server.c @@ -9,8 +9,9 @@ * This demonstrates the most minimal http server you can make with lws, * with an added websocket chat server using a ringbuffer. * - * To keep it simple, it serves stuff in the directory it was started in. - * You can change that by changing mount.origin + * To keep it simple, it serves stuff in the subdirectory "./mount-origin" of + * the directory it was started in. + * You can change that by changing mount.origin. */ #include @@ -31,7 +32,7 @@ static int interrupted; static const struct lws_http_mount mount = { /* .mount_next */ NULL, /* linked-list "next" */ /* .mountpoint */ "/", /* mountpoint URL */ - /* .origin */ ".", /* serve from dir */ + /* .origin */ "./mount-origin", /* serve from dir */ /* .def */ "index.html", /* default filename */ /* .protocol */ NULL, /* .cgienv */ NULL, diff --git a/minimal-examples/minimal-ws-server/favicon.ico b/minimal-examples/minimal-ws-server-ring/mount-origin/favicon.ico similarity index 100% rename from minimal-examples/minimal-ws-server/favicon.ico rename to minimal-examples/minimal-ws-server-ring/mount-origin/favicon.ico diff --git a/minimal-examples/minimal-ws-server-ring/index.html b/minimal-examples/minimal-ws-server-ring/mount-origin/index.html similarity index 100% rename from minimal-examples/minimal-ws-server-ring/index.html rename to minimal-examples/minimal-ws-server-ring/mount-origin/index.html diff --git a/minimal-examples/minimal-ws-server-ring/libwebsockets.org-logo.png b/minimal-examples/minimal-ws-server-ring/mount-origin/libwebsockets.org-logo.png similarity index 100% rename from minimal-examples/minimal-ws-server-ring/libwebsockets.org-logo.png rename to minimal-examples/minimal-ws-server-ring/mount-origin/libwebsockets.org-logo.png diff --git a/minimal-examples/minimal-ws-server/minimal-ws-server.c b/minimal-examples/minimal-ws-server/minimal-ws-server.c index 56245bab..d5397c79 100644 --- a/minimal-examples/minimal-ws-server/minimal-ws-server.c +++ b/minimal-examples/minimal-ws-server/minimal-ws-server.c @@ -9,8 +9,9 @@ * This demonstrates the most minimal http server you can make with lws, * with an added websocket chat server. * - * To keep it simple, it serves stuff in the directory it was started in. - * You can change that by changing mount.origin + * To keep it simple, it serves stuff in the subdirectory "./mount-origin" of + * the directory it was started in. + * You can change that by changing mount.origin. */ #include @@ -31,7 +32,7 @@ static int interrupted; static const struct lws_http_mount mount = { /* .mount_next */ NULL, /* linked-list "next" */ /* .mountpoint */ "/", /* mountpoint URL */ - /* .origin */ ".", /* serve from dir */ + /* .origin */ "./mount-origin", /* serve from dir */ /* .def */ "index.html", /* default filename */ /* .protocol */ NULL, /* .cgienv */ NULL, diff --git a/minimal-examples/minimal-ws-server/mount-origin/favicon.ico b/minimal-examples/minimal-ws-server/mount-origin/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c0cc2e3dff34012ba3d4a7848a7ed17579788ec5 GIT binary patch literal 1406 zcmZQzU<5(|0R}M0U}azs1F|%L7$l?s#Ec9aKoZP=&`9i!<^REA8>%80(yxAC$j<-A zkb5S8;qL6446ipNFl>5#fuVR6L=8goC~GtXMnhmYga9MSfQgBTk&TUw5$JocUP63y z3phA97+G0a8QIy{!BT|y==xb$SQt4uIT@LmnZZ(o_~`mk`Tv1M8w?+DXJCL~kQj^& JqOtKoVgQl$ETjMc literal 0 HcmV?d00001 diff --git a/minimal-examples/minimal-ws-server/index.html b/minimal-examples/minimal-ws-server/mount-origin/index.html similarity index 100% rename from minimal-examples/minimal-ws-server/index.html rename to minimal-examples/minimal-ws-server/mount-origin/index.html diff --git a/minimal-examples/minimal-ws-server/libwebsockets.org-logo.png b/minimal-examples/minimal-ws-server/mount-origin/libwebsockets.org-logo.png similarity index 100% rename from minimal-examples/minimal-ws-server/libwebsockets.org-logo.png rename to minimal-examples/minimal-ws-server/mount-origin/libwebsockets.org-logo.png