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

36 commits

Author SHA1 Message Date
Andy Green
c11db201cf helper api: log through syslog
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-19 13:11:10 +08:00
Andy Green
7c19c34f9a add lwsl_notice
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-19 12:18:07 +08:00
Andy Green
a1ce6be947 refactor and introduce without server configure option
Move server-only stuff into their own files and make building
that depend on not having --without-server on the configure

Make fragments in other places conditional as well

Remove client-related members from struct libwebscket when
building LWS_NO_CLIENT

Apps:

normal: build test server, client, fraggle, ping
--without-client: build test server
--without-server: build test client, ping

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-18 11:43:21 +08:00
Andy Green
4a673a38ca deprecate x google mux
Unfortunately this code is beginning to rot due to lack of demand to
provide it and it being disabled by default.

If demand appears we can revert this and resume work on it, otherwise
let's bite the bullet for the moment.

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-17 19:53:16 +08:00
Andy Green
dfb2304168 replace hashtable polltable management
This rips out the connection hashtable implementation along with
MAX_CLIENTS and replaces it with a dynamically allocated fds array
and lookup table along the same lines as the new extpoll implementation
from Edwin van den Oetelaar.

It detects the max number of file descriptors possible at context init
time and allocates accordingly; this can be externally controlled by
ulimit and the server run as a specific user to facilitate targeting
specific ulimit rules at it.

Many operations that translated between socket descriptors and struct
websocket or pollfd objects have had iteration removed by this patch
and under load will be a lot faster.

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-17 15:50:10 +08:00
Andy Green
6304686509 add disable debug to README configuration options list
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-17 10:15:52 +08:00
Andy Green
279a303662 introduce daemonize
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-17 10:05:39 +08:00
Andy Green
03674a655d configure without client
This leverages the refactor patches to introduce the ability to
disable building any client side code in the library or the client
side test apps.

This will be a considerable size saving for embedded server-only
case.

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-16 12:35:46 +08:00
Andy Green
a824d18bc5 allow LWS_SOMAXCONN to be defined at configuretime
Default remains at SOMAXCONN, you can force it at configure time
along these lines

./configure CFLAGS="-DLWS_SOMAXCONN=16384"

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-15 20:52:29 +08:00
Andy Green
29da6d9443 allow building just the library not the testapps
From an idea by Jack Mitchell <ml@communistcode.co.uk>

Use --without-testapps at configure time to suppress building them

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-15 19:57:06 +08:00
Andy Green
24b588b6d9 absorb README.rst into main README and code
Some of the advice in README.rst became deprecated with recent patches,
the (good) advice about http connection close is better demonstrated
in the code and API docs, and the remainder can go in the main README,
which will have to be refactored itself at some point.

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-13 09:53:18 +08:00
Andy Green
c0d6b63c83 expose compiletime constants to setting from configure
This patch allows control of the main compiletime constants in libwebsockets
from the configure commandline.

README is updated with documentation on what's available, how to set them
and the defaults.

The constants are logged with "info" severity (not visible by default) at
context create time.

The zlib constant previously exposed like this is moved to private-libwebsockets.h
so it can be printed along with the rest.

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-12 23:42:17 +08:00
Andy Green
d678ea3cd2 renable deflate frame buffer expansion fixing DoS
This reverts the removal of the deflate_frame code that was crashing after porting
David Galeano's code: he pointed out there's a typo in the merged version causing
the crash which is fixed here.

However the fixed code has a problem, there's no limit (other than int size) to the
amount of memory it will try to malloc, which can allow a DoS of the server by the
client sending malicious compression states that inflate to a large amount.  I have
added checking for OOM already that will avert the segfault that would otherwise follow
but the server will be unusuable if malicious connections were made repeatedly each
forcing it to allocate large buffers and cause small allocations on other connections
to fail.

The patch changes the code to use realloc(), and introduces a configurable limit
on the amount of memory one connection may need for zlib before the server hangs
up the connection.  It defaults to 64KBytes but can be set from ./configure as
described now in the README.

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-12 23:36:27 +08:00
David
c4ef7b1609 introduce getifaddrs for toolchains without it
David found that uclibc did not provide this slightly esoteric api
and provided one from BSD that can be built by the library internally.

AG: Made contingent on configure option --enable-builtin-getifaddrs

Signed-off-by: David <cymerio@gmail.com>
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-12 20:39:47 +08:00
Andy Green
de8f27a80b logging extend level set api to allow setting emission function
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-12 09:17:42 +08:00
Andy Green
7e9b427afc update README with info on new logging scheme
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-10 23:34:33 +08:00
Andy Green
94c62c652c use autogen.sh
Signed-off-by: Andy Green <andy.green@linaro.org>
2012-10-06 15:17:01 +08:00
Andy Green
71e5369175 add not about autoreconf and libtoolize
Signed-off-by: Andy Green <andy.green@linaro.org>
2012-07-20 13:00:12 +08:00
Andy Green
9c5436cb57 document mingw build
Signed-off-by: Andy Green <andy.green@linaro.org>
2012-04-12 13:32:47 +08:00
Andy Green
0922650b53 extensions fix deflate stream vs mux and veto it on mux children
This patch gets deflate-stream working with x-google-mux.

It adds a clean veto system where are extension can veto the proposal
of any extension when opening a new connection.  x-google-mux uses that
in its callback to defeat any use of deflate-stream on mux children.

However deflate stream is allowed on the parent connection and works
transparently now alongside x-google-mux.

Signed-off-by: Andy Green <andy@warmcat.com>
2011-05-28 10:19:19 +01:00
Andy Green
a41314f3bf introduce x google mux very draft indeed
This is initial x-google-mux support.  It's disabled by default
since it's very pre-alpha.

1) To enable it, reconfigure with --enable-x-google-mux

2) It conflicts with deflate-stream, use the -u switch on
   the test client to disable deflate-stream

3) It deviates from the google standard by sending full
   headers in the addchannel subcommand rather than just
   changed ones from original connect

4) Quota is not implemented yet

5) Close of subchannel is not really implemented yet

6) Google opcode 0xf is changed to 0x7 to account for
   v7 protocol changes to opcode layout

However despite those caveats, in fact it can run the
test client reliably over one socket (both dumb-increment
and lws-mirror-protocol), you can open a browser on the
same test server too and see the circles, etc.

Signed-off-by: Andy Green <andy@warmcat.com>
2011-05-23 10:00:03 +01:00
Andy Green
98a623fa46 clean fraggle
Signed-off-by: Andy Green <andy@warmcat.com>
2011-03-08 08:43:59 +00:00
Andy Green
a54986f36e update README with known good OSX configure
Christopher Baker sent in a working OSX configure string,
add it to the README

Reported-by: Christopher Baker <me@christopherbaker.net>
Signed-off-by: Andy Green <andy@warmcat.com>
2011-02-28 07:48:27 +00:00
Andy Green
8c4041591e README update configure advice for apple
Signed-off-by: Andy Green <andy@warmcat.com>
2011-02-16 18:50:01 +00:00
Andy Green
e7981dc65a document-external-poll-support.patch
Signed-off-by: Andy Green <andy.green@linaro.org>
2011-02-12 21:24:03 +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
9293b05703 document-new-config-options.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2011-01-23 17:53:54 +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
a1e3ec0051 add-depcomp.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2010-11-08 17:16:50 +00:00
Andy Green
3c974691f5 convert-to-autotools.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2010-11-08 17:04:09 +00:00
Andy Green
7310e9c77b refactor-into-dirs.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2010-11-01 09:12:17 +00:00
Andy Green
05a0a7b02e add-kernel-doc-script-and-generated-api.txt
Signed-off-by: Andy Green <andy@warmcat.com>
2010-10-31 17:51:39 +00:00
Andy Green
b21497732d add-README.patch
Signed-off-by: Andy Green <andy@warmcat.com>
2010-10-31 13:15:56 +00:00