1
0
Fork 0
mirror of https://github.com/warmcat/libwebsockets.git synced 2025-03-16 00:00:07 +01:00
Commit graph

2275 commits

Author SHA1 Message Date
Andy Green
6bc92f7592 wrapper: untrash partial sends before WANT
1) The original wrapper logic for accounting for partial
sends on mbedtls is broken... adapt it

2) mbedtls has an additional restriction you MUST come
back to retry with EXACTLY the unsent part that you
originally asked for, or it loses coherency in the TLS
tunnel.

3) the wrapper is inconsistent between read WANT state
dynamically reported from mbedtls apis and the
SSL_want() api results.  Check both on read.
2017-11-10 10:59:58 +08:00
Andy Green
7e4c67e29d h2: never send more than file length 2017-11-10 10:59:58 +08:00
Andy Green
78ad6f9705 hpack: dont reinterpret lws index for idx hdr 6 inc 2017-11-10 10:59:58 +08:00
Andy Green
c7b536764f coverity-fixes 2017-11-10 10:59:58 +08:00
Andy Green
8c35e14965 test-apps: mirror echo mode 2017-11-05 07:09:06 +08:00
Andy Green
b119f2c471 service: only apply trunc holds rx rule for http2 2017-11-05 07:08:50 +08:00
Andy Green
91ed21d487 rxflow: fix second draining path 2017-11-05 07:08:41 +08:00
Andy Green
7e1c8876e6 service: stop trying to find service TID after first time 2017-11-05 07:08:29 +08:00
Andy Green
fac510fbc2 lws_ring: add lws_ring_dump() api 2017-11-05 07:08:20 +08:00
Andy Green
95f1cd6ea8 WITH_STATS: fix signed build warnings 2017-11-05 07:07:16 +08:00
Andy Green
a1ce8feba2 mirror: default to empty name if mirror with no arg 2017-11-03 11:48:05 +08:00
Andy Green
dba00cff6f mirror: fix spin on close 2017-11-03 11:47:57 +08:00
Andy Green
462e449cd6 lws_hdr_copy: protect against garbage 2017-11-02 08:11:06 +08:00
Andy Green
d30597f728 ah: increase timeout sanity check to ah_idle + 60 2017-10-31 07:02:51 +08:00
Andy Green
7594bc585c win: move LEAN_AND_MEAN before tls includes
It's always mean... we define LEAN_AND_MEAN in libwebsockets.h
but we include libwebsockets.h partway through private-libwebsockets.h.

Reorder for https://github.com/warmcat/libwebsockets/issues/1080
2017-10-31 06:45:03 +08:00
Andy Green
491fd183f8 lws_timingsafe_bcmp 2017-10-28 13:24:41 +08:00
Petar Paradzik
413631632b ssl: fix segfault when using SSL_CTX that is not created
vhost->ssl_ctx is created in 'lws_tls_server_vhost_backend_init', but it
is used before in 'lws_tls_server_client_cert_verify_config' when
calling SSL_CTX_set_session_id_context...

Signed-off-by: Petar Paradzik <petar.paradzik@sartura.hr>
2017-10-26 18:55:12 +08:00
Andy Green
5a90bb36d1 lejp: add test app to parse stdin 2017-10-26 18:55:12 +08:00
Andy Green
f9421f084b lejp: integrate header into libwebsockets.h 2017-10-26 18:55:11 +08:00
Andy Green
505a3fc1fc windows: finally fix gzip redefinition warnings 2017-10-26 18:55:11 +08:00
Andy Green
d286e990f0 windows: fix missing declatations for open etc
Due to windows needing nonstandard include io.h for
standard apis...
2017-10-26 18:55:11 +08:00
Andy Green
52d82ad83a cgi: make sure compiler cant see uninitialized use 2017-10-26 18:54:52 +08:00
Andy Green
5a0b5299d2 lejp: use explicit signed char return 2017-10-25 07:54:18 +08:00
Andy Green
4afeefbb3c build: strict-aliasing on old compiler workaround
https://github.com/warmcat/libwebsockets/issues/1067
2017-10-25 07:54:18 +08:00
Andy Green
1c70181ca2 build: enable signed vs unsigned warnings on gcc
This enables selected things from -Wextra, can't use -Wextra because it is
fussy enough to complain about unused params on functions... they are
there for a reason.

-Wsign-compare
-Wignored-qualifiers
not -Wimplicit-fallthrough=3 ... only on gcc 7
-Wtype-limits
-Wuninitialized
not -Wclobbered ... only on gcc 7ish

fix the warnings everywhere they were found.
2017-10-25 07:17:29 +08:00
Andy Green
89cb55ea58 tls: split out common, openssl and mbedtls code
- introduce lib/tls/mbedtls lib/tls/openssl
 - move wrapper into lib/tls/mbedtls/wrapper
 - introduce private helpers to hide backend

This patch doesn't replace or remove the wrapper, it moves it
to lib/tls/mbedtls/wrapper.

But it should be now that the ONLY functions directly consuming
wrapper apis are isolated in

  - lib/tls/mbedtls/client.c (180 lines)
  - lib/tls/mbedtls/server.c (317 lines)
  - lib/tls/mbedtls/ssl.c    (325 lines)

In particular there are no uses of openssl or mbedtls-related
constants outside of ./lib/tls any more.
2017-10-25 07:17:29 +08:00
Andy Green
bb04883097 travis: add mbedtls + http2 variant 2017-10-25 07:17:29 +08:00
Andy Green
ce68d38794 LWS_PRE: make int 2017-10-25 07:17:22 +08:00
Andy Green
4a2dd2bdaa http2: missing return when openssl too old 2017-10-24 20:19:24 +08:00
Andy Green
af8f2d3616 protocol init: allow use of client apis during per-vhost protocol init 2017-10-24 20:19:24 +08:00
Sebastian Mueller
28d820ba0a getifaddrs-fix-include-reference
https://github.com/warmcat/libwebsockets/issues/1068
2017-10-24 20:19:17 +08:00
Andy Green
c86488be9c getifaddrs: fix conditional build 2017-10-24 06:39:37 +08:00
Andy Green
11afda24ed client: allow failout when adding client headers 2017-10-23 13:44:35 +08:00
Andy Green
07d4cf7628 client: do not treat selected response codes as connection failures
There was not really any "connection failure" with some of these like 404.

They may have body content that is important.

The client should use lws_http_client_http_response(wsi) to discover
the response code the client action received and decide for itself
what to do about that.
2017-10-23 13:44:27 +08:00
Andy Green
10828b1ea0 mirror: fix multiple mirror instances hang 2017-10-20 21:10:29 +08:00
Andy Green
8528de580a getifaddrs: fix second lws_malloc 2017-10-19 21:00:50 +08:00
Andy Green
001b3010a6 sshd: fix NULL vhd protection 2017-10-19 11:26:29 +08:00
Andy Green
79326e4f07 daemonize: fix missing lws_malloc reason param 2017-10-18 20:19:46 +08:00
Andy Green
fcf5b2c25a v2.4.0 2017-10-17 13:21:12 +08:00
Andy Green
dfacbc2071 mbedtls: fix client 2017-10-17 13:21:10 +08:00
Andy Green
1799b02a43 windows: POLLHUP is or-ed on other events
https://github.com/warmcat/libwebsockets/issues/1054
2017-10-16 17:28:37 +08:00
Andy Green
c83afc66e6 refactor: subdirs for source in lib
Split out some optional code into own sources to
shrink down libwebsockets.c and server.c a bit
2017-10-16 17:28:37 +08:00
Andy Green
904a9c0920 http2: make usable
HTTP/2 support is now able to serve the test server, complete with
websockets, from a single vhost.

 - This works the same with both OpenSSL and mbedTLS.

 - POST is now wired up and works (also for file upload).

 - CGI is wired up and works.

 - Redirect is adapted and works

 - lwsws works.

 - URI urldecode, sanitation and argument parsing wired up for :path

valgrind clean (aside from openssl-style false uninit data usage in mbedtls send occasionally)

h2spec reports:

$ h2spec  -h 127.0.0.1 -p 7681 -t -k -o 1
...
145 tests, 145 passed, 0 skipped, 0 failed"

Incorporates:

 - "https://github.com/warmcat/libwebsockets/pull/1039
	Fixes issue with -Werror=unused-variable flag

 - 2c843a1395
	ssl: fix infinite loop on client cert verification failure

Signed-off-by: Petar Paradzik <petar.paradzik@sartura.hr>"

Caused and fixes Coverity 184887 - 184892
2017-10-16 17:13:49 +08:00
Andy Green
028551271e client: reorder close callbacks
This will make sure you get

 - DROP_PROTOCOL
 - CONNECTION_ERROR
 - CLOSED_CLIENT_HTTP

as expected for failed client connections.
2017-10-16 17:13:49 +08:00
Andy Green
e67ae24d41 doxygen cleanup 2017-10-16 17:13:49 +08:00
Andy Green
6f3f2df7ca lejp-conf: skip conf.d files containing tilde
https://github.com/warmcat/libwebsockets/issues/1051
2017-10-16 17:13:49 +08:00
Andy Green
1673554c6b vh protocol destroy: dont miss vhosts 2017-10-16 17:13:49 +08:00
Andy Green
f66b84778c windows: defeat service if no vhosts 2017-10-16 17:13:49 +08:00
Andy Green
46b04f4ba4 wrapper: make SSL_accept nonblocking
The mbedTLS / OpenSSL wrapper spins for the duration of the
handshake, which is a slow 31ms on my x86_64 box (by comparison
it's ~1ms on actual OpenSSL on the same box).

This doesn't change the 31ms but it stops us spinning during the
accept and has us retry on POLLIN instead like OpenSSL.

Note this also fixes the endemic mismatches in returncode
between mbedTLS and OpenSSL semantics...
2017-10-16 17:13:49 +08:00
Claudi Martinez
df2dc99c14 Subject: toolchain: Create cross-w64.cmake
Toolchain file for crosscompiling on 64bit Windows platforms.
2017-10-16 17:13:49 +08:00