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

302 commits

Author SHA1 Message Date
Andy Green
46c2ea0d6f pass ext pointer in ext callback
Signed-off-by: Andy Green <andy@warmcat.com>
2011-03-22 09:04:01 +00:00
Andy Green
6c9395529e disable nagle algorithm
Ago noticed that some Windows clients experience small packets
from the server being aggregated and set after a long delay
(200-300ms).

He found that TCP_NODELAY on the socket solved this, I tested it
and it didn't have any noticable bad effect, so I implemented it
for all sockets, client and server.

Thans Ago for debugging this and notifying the cause.

Reported-by: Ago Allikmaa <maxorator@gmail.com>
Signed-off-by: Andy Green <andy@warmcat.com>
2011-03-08 08:56:57 +00:00
Andy Green
8acc194dc2 expose random api
Signed-off-by: Andy Green <andy@warmcat.com>
2011-03-07 20:47:40 +00:00
Andy Green
da527dfdee add extra state for waiting on close ack with timeout
Signed-off-by: Andy Green <andy@warmcat.com>
2011-03-07 07:08:12 +00:00
Andy Green
3b84c006c9 callback each active extension on packet tx pre send
Signed-off-by: Andy Green <andy@warmcat.com>
2011-03-06 13:14:42 +00:00
Andy Green
95a7b5d87d introduce lws_send_pipe_choked
Signed-off-by: Andy Green <andy@warmcat.com>
2011-03-06 10:29:39 +00:00
Andy Green
d44bf7f81b introduce lws_issue_raw
Signed-off-by: Andy Green <andy@warmcat.com>
2011-03-06 10:29:38 +00:00
Andy Green
d6e09110bb introduce struct libwebsocket_extension
Signed-off-by: Andy Green <andy@warmcat.com>
2011-03-05 16:12:15 +00:00
Andy Green
2e24da08c4 fix openssl breakage from win32
Signed-off-by: Andy Green <andy@warmcat.com>
2011-03-05 16:12:04 +00:00
Peter Hinz
56885f3084 introduce win32 build capability
This adds win32 build compatability to libwebsockets.

The patch is from Peter Hinz, Andy Green has cleaned it up a bit and
possibly broken win32 compatability since I can't test it, so there
may be followup patches.  It compiles fine under Linux after this
patch anyway.

Much of the patch is changing a reserved keyword for Visual C compiler
"this" to "context", but there is no real C99 support in the MSFT
compiler even though it is 2011 so C99 style array declarations
have been mangled back into "ancient C" style.

Some windows-isms are also added like closesocket() but these are
quite localized.  Win32 random is just using C library random() call
at the moment vs Linux /dev/urandom.  canonical hostname detection is
broken in win32 at the moment.

Signed-off-by: Peter Hinz <cerebusrc@gmail.com>
Signed-off-by: Andy Green <andy@warmcat.com>
2011-03-02 22:03:47 +00:00
Andy Green
193306ca2d change default client version to 06
Signed-off-by: Andy Green <andy@warmcat.com>
2011-02-26 11:08:46 +00:00
Andy Green
687b0188bc require close reason argument on close and free session
Signed-off-by: Andy Green <andy@warmcat.com>
2011-02-26 11:04:01 +00:00
Andy Green
06de513612 introduce 06 close status codes
Signed-off-by: Andy Green <andy@warmcat.com>
2011-02-26 10:40:02 +00:00
Andy Green
6901cb3b4e add callback for OpenSSL client cert verification action
Signed-off-by: Andy Green <andy@warmcat.com>
2011-02-21 08:06:47 +00:00
Andy Green
038d582bde add include for gettimeofday even without ssl
Signed-off-by: Andy Green <andy@warmcat.com>
2011-02-14 20:58:26 +00:00
Darin Willits
db9ba42aad Only include anything from openssl if configured for it
Signed-off-by: Darin Willits <darin@willits.ca>
2011-02-14 20:56:24 +00:00
Andy Green
be93fefa76 break client connect into states and apply timeout
Doing a client connect was atomic until now, blocking
all the other service while it waited for proxy and / or
server response.

This patch uses the new timeout system and breaks the
client connect sequence into three states handled by
the normal poll() processing.  It means that there are
now no blocking network delays and it's all handled
by the main state machine.

Signed-off-by: Andy Green <andy@warmcat.com>
2011-02-14 20:25:43 +00:00
Andy Green
a71eafce5a introduce timeout system
This adds a concept of timeouts for operations enforced by
connection closure if the timeout is reached.

Once a second all sockets are checked for timing out, every time
there is a service call it checks to see if a second has passed since
the last check and checks if so.

You can also call libwebsocket_service_fd() with a NULL fd to give
the timeouts a chance to be detected; if it's less than a second since
the last check it returns immediately.

Signed-off-by: Andy Green <andy@warmcat.com>
2011-02-14 17:59:43 +00:00
Darin Willits
c19456f64a Apple / iOS build compatability patch
This allows build on iOS platform, thanks Darin!

Signed-off-by: Darin Willits <darin@willits.ca>
2011-02-14 17:52:39 +00:00
Andy Green
4b6fbe125e unify server and client close
Signed-off-by: Andy Green <andy@warmcat.com>
2011-02-14 08:03:48 +00:00
Andy Green
c85619dbcd introduce-user-handshake-filter-callback.patch
Signed-off-by: Andy Green <andy.green@linaro.org>
2011-02-13 08:25:26 +00:00
Andy Green
0d33833764 decouple-service-from-fd-array-index.patch
This patch removes the relationship between position in the
pollfd[] array and any meaning about the type of socket.

It also refactors the service loop so there is a per-fd
function that detects the mode of the connection and services
it accordingly.

The context wsi * array is removed and a hashtable introduced
allowing fast wsi lookup from just the fd that it is
associated with

Signed-off-by: Andy Green <andy@warmcat.com>
2011-02-12 11:57:43 +00:00
Andy Green
44eee688ac optimize-random-device-open.patch
Signed-off-by: Andy Green <andy.green@linaro.org>
2011-02-10 09:32:24 +00:00
Andy Green
92970baa90 optimize-server-for-all-zero-nonce-case.patch
Signed-off-by: Andy Green <andy.green@linaro.org>
2011-02-10 09:22:35 +00:00
Andy Green
5e1fa17a6c introduce-new-05-socket-closure-rules.patch
Signed-off-by: Andy Green <andy.green@linaro.org>
2011-02-10 09:07:05 +00:00
Andy Green
18910c5920 parse-and-reject-extensions-header.patch
Signed-off-by: Andy Green <andy@linaro.org>
2011-02-09 08:58:42 +00:00
Andy Green
bfb051f3a3 introduce-ietf-05-framing-and-commandline-options.patch
This adds 05 support, and -v switches on test-client and test-ping
to allow setting their ietf protocol version to 4 or 5.

It also optimizes the masking to us a function pointer, which
takes some conditionals out of the fast path.

Signed-off-by: Andy Green <andy@warmcat.com>
2011-02-09 08:49:14 +00:00
Andy Green
f3d3b40364 change-client-mode-to-enum.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2011-02-09 07:16:34 +00:00
Andy Green
8014b29d20 introduce-k-switch-defeat-masking.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2011-01-30 20:57:25 +00:00
Andy Green
2ac5a6fce4 fix-host-header-contents--introduce-canonical-hostname-api.patch
I?aki pointed out the dummy host field used in client test and ping
is not valid http.  This patch changes it to use the actual host
name and adds an api to collect that from the context cheaply.

Reported-by: I?aki Baz Castillo <ibc@aliax.net>
Signed-off-by: Andy Green <andy@warmcat.com>
2011-01-28 10:00:18 +00:00
Andy Green
9659f37967 introduce-http_proxy-support-no-auth.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2011-01-27 22:01:43 +00:00
Andy Green
a6cbece1ac introduce-test-ping-app.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2011-01-27 20:06:03 +00:00
Andy Green
90c7cbcc00 introduce-ssl-client-connections--flow-control.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2011-01-27 06:26:52 +00:00
Andy Green
6964bb5ee5 clean--fix-sigpipe.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2011-01-23 16:50:33 +00:00
Andy Green
4739e5c450 introduce-client-support.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2011-01-22 12:51:57 +00:00
Andy Green
ed11a02201 add-enable-nofork-config-option.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2011-01-20 10:23:50 +00:00
Andy Green
e92cd1764e expose-event-loop.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2011-01-19 13:11:55 +00:00
Andy Green
38e57bbd71 introduce-04-control-frames.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2011-01-19 12:20:27 +00:00
Andy Green
3e5eb78490 introduce-new-04-frame-unmasking.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2011-01-18 18:14:26 +00:00
Andy Green
f85e830f7b introduce-new-04-masking-key-computation.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2011-01-18 17:45:00 +00:00
Andy Green
e252217633 introduce-new-04-handshake.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2011-01-18 17:14:03 +00:00
Andy Green
d1b11e3d6c introduce-new-04-headers-logic.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2011-01-18 15:39:02 +00:00
Andy Green
df73616d2c add-base64-encode-decode.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2011-01-18 15:39:02 +00:00
Andy Green
70dfebde50 use-libcrypto-hash-implementations.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2010-12-20 09:35:03 +00:00
Andy Green
8f037e4c9a clean-whitespace.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2010-12-19 22:13:26 +00:00
Andy Green
0ca6a1719b clean-and-add-pedantic-remove-long-long.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2010-12-19 20:50:01 +00:00
Andy Green
b45993caf3 fork-sever-process-and-introduce-broadcast-api.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2010-12-18 15:13:50 +00:00
Andy Green
e77ddd828d coding-style-cleanups.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2010-11-13 10:03:47 +00:00
Andy Green
4f3943a8f8 move-to-automatic-protocol-list-scheme.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2010-11-12 10:44:16 +00:00
Andy Green
ce510c6beb add-Sec-WebSocket-Draft-and-protocol-autodetect.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2010-11-11 12:48:13 +00:00