libwebsockets/lib
Andy Green 623a98dab0 unionize mutually exclusive wsi members
Large chunks of struct libwebsocket members actually have a mutually
exclusive lifecycle, eg, once the http headers are finished they sit
there unused until the instance is destroyed.

This makes a big improvement in memory efficiency by making four
categories of member: always needed, needed for header processing,
needed for http processing, and needed for ws processing.  The last
three are mutually exclusive and bound into a union inside the wsi.

Care needs taking now at "union transitions", although we zeroed down
the struct at init, the other union siblings have been writing the
same memory by the time later member siblings start to use it.  So
it must be cleared down appropriately when we cross from one
mutually-exclusive use to another.

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-21 11:06:34 +08:00
..
.gitignore Ignoring linux build files 2013-01-09 15:46:11 +08:00
base64-decode.c introduce logging api and convert all library output to use it 2013-01-10 22:16:37 +08:00
client-handshake.c unionize mutually exclusive wsi members 2013-01-21 11:06:34 +08:00
client-parser.c unionize mutually exclusive wsi members 2013-01-21 11:06:34 +08:00
client.c unionize mutually exclusive wsi members 2013-01-21 11:06:34 +08:00
daemonize.c avoid PATH_MAX in bss in daemonize 2013-01-21 10:36:12 +08:00
extension-deflate-frame.c unionize mutually exclusive wsi members 2013-01-21 11:06:34 +08:00
extension-deflate-frame.h Separate compression levels for server and client, 2013-01-10 12:45:54 +08:00
extension-deflate-stream.c introduce logging api and convert all library output to use it 2013-01-10 22:16:37 +08:00
extension-deflate-stream.h Fixed deflate-stream extension. 2013-01-09 18:17:42 +08:00
extension.c deprecate x google mux 2013-01-17 19:53:16 +08:00
getifaddrs.c introduce getifaddrs for toolchains without it 2013-01-12 20:39:47 +08:00
getifaddrs.h introduce getifaddrs for toolchains without it 2013-01-12 20:39:47 +08:00
handshake.c unionize mutually exclusive wsi members 2013-01-21 11:06:34 +08:00
libwebsockets.c unionize mutually exclusive wsi members 2013-01-21 11:06:34 +08:00
libwebsockets.h remove all support for pre v13 protocols 2013-01-21 09:53:35 +08:00
Makefile.am remove all support for pre v13 protocols 2013-01-21 09:53:35 +08:00
minilex.c add lexical parser for headers 2013-01-18 01:55:48 +08:00
output.c unionize mutually exclusive wsi members 2013-01-21 11:06:34 +08:00
parsers.c unionize mutually exclusive wsi members 2013-01-21 11:06:34 +08:00
private-libwebsockets.h unionize mutually exclusive wsi members 2013-01-21 11:06:34 +08:00
server-handshake.c unionize mutually exclusive wsi members 2013-01-21 11:06:34 +08:00
server.c unionize mutually exclusive wsi members 2013-01-21 11:06:34 +08:00
sha-1.c Static variable is now const. 2013-01-09 15:14:31 +08:00