Commit graph

2143 commits

Author SHA1 Message Date
Andy Green
00ae90978b esp32: separate factory setup 2017-03-31 20:05:10 +08:00
paularmitt
422f56c9dc windows: need LWS_INLINE 2017-03-31 19:57:24 +08:00
Andy Green
db64bfcefa lws_remove_child_from_any_parent: clear parent pointer and fix failure message 2017-03-30 08:31:58 +08:00
Olivier Basson
73e12e7b93 ev: stop event listeners during context destroy
I think I've found a bug in libev backend, in function lws_libev_io(). I'm using latest version from master branch.

When deleting a context with active connections via lws_context_destroy(), context->being_destroyed is set to 1 early in the function, before the loop calling lws_close_free_wsi() on each active connection.
lws_close_free_wsi() calls remove_wsi_socket_from_fds(), which calls lws_libev_io(), and here is my problem :

lws_libev_io() returns without doing anything if context->being_destroyed is set, so libev callbacks for deleted connections file descriptors stay registered after context is destroyed, which may lead to segfault/undefined behaviour if these file descriptors get reused later (which would trigger the callbacks).

I think the "if (!pt->io_loop_ev || context->being_destroyed) return;" statement should be replaced with " if (!pt->io_loop_ev) return;"

This fixes the problem for me and I have not seen any side effect yet. Moreover, libuv backend does not have such a test.
2017-03-29 08:22:19 +08:00
Andy Green
7a0dead82a service: always restrict rx to serve_buf_size 2017-03-29 08:22:19 +08:00
Andy Green
d58353f98a pmd: handle case we are already on drain list
Provide internal helper for adding to list that takes care of the
case we are already on the list.

https://github.com/warmcat/libwebsockets/issues/847
2017-03-26 10:19:34 +08:00
Andy Green
7aadd14398 pmd: align client rx sm with server one 2017-03-25 08:48:23 +08:00
Andy Green
92f0200204 client: zero length read indicates peer shutdown 2017-03-25 08:47:30 +08:00
luk65
a4d23648f7 solaris: handle big-endian
https://github.com/warmcat/libwebsockets/issues/846
2017-03-24 06:51:06 +08:00
Andy Green
311e3a585d spa: reject junk after finalization 2017-03-23 19:30:29 +08:00
Andy Green
629e356bb2 test-server-v2.0: disable setting default protocol 2017-03-22 21:24:04 +08:00
Andy Green
73ff23e288 debug: reduce spew for debug log level 2017-03-22 21:24:04 +08:00
Andy Green
49036d571f cgi: avoid spin on php 2017-03-22 21:24:04 +08:00
Aditya Tirumala
ec50ebac12 Subject: Libevent: Initial Support
* Added libevent support functionality into lib/libevent.c
* Added test-server-libevent for testing
2017-03-22 05:36:25 +08:00
Andy Green
f84338ac1c test-server-v2.0: add string.h include
via Joel Winarske on ml
2017-03-22 05:29:22 +08:00
Andy Green
c35661c45c CMake: add option to avoid GISPIPE IGN for Android 7+ 2017-03-21 11:34:49 +08:00
Andy Green
9287f7d1b3 ext: pmd: improve dealing with partial input usage with drain
https://github.com/warmcat/libwebsockets/issues/841
2017-03-20 19:07:19 +08:00
f0c800ada6 rpm: added missing file to %files section of spec file 2017-03-18 11:20:12 +08:00
Andy Green
2e874dea50 windows: cannot use fstat 2017-03-17 11:43:45 +08:00
Andy Green
ed27be42c9 docs: lws_callback_all_protocol: fix cut-n-paste error and explain it is probably not what you want 2017-03-15 07:28:51 +08:00
Andy Green
e769af41db windows: don't use LWS_EXTERN outside of function declarations 2017-03-15 07:25:36 +08:00
Andy Green
102d40e6b6 esp32: openssl 2017-03-11 11:51:06 +08:00
Andy Green
e0572d3bef esp32: move helper code into lws 2017-03-10 14:31:43 +08:00
Silas Parker
4198c20920 ssl: close sometimes continuously asserting POLLIN until timeout
https://github.com/warmcat/libwebsockets/issues/831
2017-03-10 07:46:05 +08:00
Silas Parker
c1b5c8cabd fops_zip: require libz 2017-03-09 19:21:40 +08:00
Silas Parker
3c02868408 gcc-format-strings: 32-bit build 2017-03-09 18:52:10 +08:00
honjane
34842d7492 http2: fix log compile errors 2017-03-09 13:29:50 +08:00
Andy Green
6be573f2c9 v2.2.0 2017-03-08 14:15:01 +08:00
Andy Green
2f3b4c8f96 coverity 177526: pointer difference already scaled 2017-03-08 14:10:31 +08:00
Andy Green
3a09c3b7d6 esp32: align fops member name defines 2017-03-08 11:11:41 +08:00
Andy Green
c53a76f0ef reduce log spew on POST processing 2017-03-08 10:52:49 +08:00
Andy Green
4219a3281d server-name: add_server_header add LWSAHH_FLAG_NO_SERVER_NAME
Also clean up usage of status code defines in lws
2017-03-08 07:51:47 +08:00
Andy Green
b9dd61bb6f server-name: default to no server name unless set in context 2017-03-08 07:35:27 +08:00
Andy Green
205ccedf6e raw: enable server and client raw sockets 2017-03-07 16:06:05 +08:00
Andy Green
4578036b53 ext: use arguments and reply with them 2017-03-07 10:08:03 +08:00
Andy Green
b6e0c89750 coverity 177409: dont bother assigning ignored second SSL_shutdown return value
No security impact
2017-03-06 14:46:06 +08:00
Andy Green
688b819112 coverity 177410: check seek return value inside fops-zip
Truncated or corrupted zip on server side would read garbage instead of fail.
2017-03-06 14:46:05 +08:00
Andy Green
21d83b44ea test-client: only take data from LWS_CALLBACK_RECEIVE_CLIENT_HTTP 2017-03-06 14:46:03 +08:00
Andy Green
19cc7acb24 fops-zip 2017-03-05 15:32:55 +08:00
Andy Green
2f4dfa4ea7 rx flow: handle child state change during parent cb 2017-03-05 15:32:47 +08:00
Andy Green
753f1d642c junzip: style and migrate header into private-libwebsockets.h
Also introduce CMake LWS_WITH_ZIP_FOPS defaulting to ON that builds junzip.c and
make sure this is exported in lws_config.h (included by libwebsockets.h)

Improve lws handling of stdint.h import or simulate it.
2017-03-03 09:19:14 +08:00
Andy Green
cb35969fce junzip: import from DomTerm 912add15f3d0aec
From https://github.com/PerBothner/DomTerm.git
2017-03-03 08:44:04 +08:00
Andy Green
04054b4072 ev: fix build 2017-03-03 08:18:16 +08:00
Per Bothner
60f4569bb8 adopt: allow binding to parent at same time
- if protocol set, allocate own user_space

   If the child wsi wants the parent wsi user_space, it can use

       lws_wsi_user(lws_get_parent(child_wsi))

 - raw file close processing handles parent-child relationship
2017-03-03 07:36:08 +08:00
Michael Behrns-Miller [case-ubuntu]
2495afa604 Subject: Buffer index protection in the case where client does not
receive content length from HTTP server
2017-03-03 05:41:39 +08:00
Whisperbyte
faf260ccfa docs: mac: add info from github 2017-03-01 17:57:38 +08:00
Andy Green
1ada132932 fops: allow setting from context creation and introduce lws_select_fops_by_vfs_path
1) There's now a .fops pointer that can be set in the context creation info.  If set, the array of
fops it points to (terminated by an entry with .open = NULL) is walked to find out the best vfs filesystem
path match (comparing the vfs path to fops.path_prefix) for which fops to use.

If none given (.fops is NULL in info) then behaviour is as before, fops are the platform-provided one only.

2) The built in fileserving now walks any array of fops looking for the best fops match automatically.

3) lws_plat_file_... apis are renamed to lws_vfs_file_...
2017-03-01 14:59:48 +08:00
Andy Green
be8d791b5e adoption: make union for socket and file fds
This lets lws support adopting raw file FDs and raw socket fds.

A test plugin creates a FIFO and prints data sent on it, using
the lws event loop.
2017-03-01 10:01:53 +08:00
Andy Green
8bb3dffc86 fops: add path_prefix member 2017-03-01 10:01:53 +08:00
Lukas Geyer
16ee4b6f0d client: allow change externally-defined wsi user_data
https://github.com/warmcat/libwebsockets/issues/819

AG: add explanation in doxygen comment and check user_space was externally set
2017-02-28 21:17:25 +08:00