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

21 commits

Author SHA1 Message Date
Andy Green
1ea84e7710 update cmake opts in README.build
via "DevYourWorld" on github

https://github.com/warmcat/libwebsockets/issues/64

Signed-off-by: Andy Green <andy.green@linaro.org>
2014-02-21 18:45:45 +08:00
Andy Green
5b479ac2f1 cmake improve cross documentation
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-03-30 10:30:03 +08:00
Andy Green
0097a99082 remove autotools build
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-03-09 13:06:37 +08:00
Andy Green
975423c949 cmake lib lib64 problem
As discussed here, there's a semi-standardized way to inform
cmake that the install target wants its libs in .../lib64

https://code.google.com/p/bullet/issues/detail?id=174

this patch adds the necessary fiddling

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-02-26 11:58:45 +08:00
Andy Green
2672fb2d68 move ssl cipher list from compiletime to context creation time option
More flexible this way... NULL for the new member means use
the ssl library default set of ciphers, so as long as your info
struct is zerod by bss or memset, you don't need to do anything
about this change unless you want to set the cipher list.

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-02-22 09:54:35 +08:00
Andy Green
799ecbf773 cmake docs add note about prefix
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-02-19 10:26:39 +08:00
Andy Green
cb8febdda2 update arm build stats
Clean out the historical numbers, update info

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-02-18 12:08:15 +08:00
Andy Green
cc7cb68ded remove header name buffer
The header name buffer and its max length handling has actually
been unused since the minilex parser was introduced.  We hold
parsing state in the lex-type parts and don't need to store or
worry about max length, since the parser will let us know as
soon as it can't be a match for the valid header names.

This strips it out reducing the per-connection allocation for
x86_64 with default configure from 224 to 160.

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-02-18 10:22:42 +08:00
Andy Green
72dfd756d4 update memory performance info
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-02-11 22:40:39 +08:00
Andy Green
16ab3185c4 replace per header mallocs with single malloc 3 level struct
This big patch replaces the malloc / realloc per header
approach used until now with a single three-level struct
that gets malloc'd during the header union phase and freed
in one go when we transition to a different union phase.

It's more expensive in that we malloc a bit more than 4Kbytes,
but it's a lot cheaper in terms of malloc, frees, heap fragmentation,
no reallocs, nothing to configure.  It also moves from arrays of
pointers (8 bytes on x86_64) to unsigned short offsets into the
data array, (2 bytes on all platforms).

The 3-level thing is all in one struct

 - array indexed by the header enum, pointing to first "fragment" index
	(ie, header type to fragment lookup, or 0 for none)

 - array of fragments indexes, enough for 2 x the number of known headers
	(fragment array... note that fragments can point to a "next"
	fragment if the same header is spread across multiple entries)

 - linear char array where the known header payload gets written
	(fragments point into null-terminated strings stored in here,
	only the known header content is stored)

http headers can legally be split over multiple headers of the same
name which should be concatenated.  This scheme does not linearly
conatenate them but uses a linked list in the fragment structs to
link them.  There are apis to get the total length and copy out a
linear, concatenated version to a buffer.

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-02-11 11:10:57 +08:00
Andy Green
5449511d3e remove fixed rx buffer allow definition per protocol
A new protocol member is defined that controls the size of rx
buffer allocation per connection.  For compatibility 0 size
allocates 4096, but you should adapt your protocol definition
array in the user code to declare an appropriate value.

See the changelog for more detail.

The advantage is the rx frame buffer size is now tailored to
what is expected from the protocol, rather than being fixed
to a default of 4096.  If your protocol only sends frames of
a dozen bytes this allows you to only allocate an rx frame
buffer of the same size.

For example the per-connection allocation (excluding headers)
for the test server fell from ~4500 to < 750 bytes with this.

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-02-08 13:16:07 +08:00
Andy Green
23c5f2ecd0 add autotools bits for cyassl
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-02-07 20:30:56 +08:00
Joakim Soderberg
7df9908148 Added build instructions for CMake.
Also changed it so that specifying the include directories for CyaSSL is nicer.
2013-02-07 20:24:19 +08:00
Andy Green
a2156aa863 add note about MIPS opewrt configure options
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-02-02 18:10:29 +08:00
Andy Green
2d7acec9b2 remove stray reference to max broadcast size from readme.build
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-02-01 08:48:41 +08:00
Andy Green
d636e35c2b introduce lws_latency
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-30 08:32:15 +08:00
Andy Green
6f520a5195 evict all broadcast support
Libwebsockets is fundamentally singlethreaded... the existence of the
fork and broadcast support, especially in the sample server is
giving the wrong idea about how to use it.

This replaces broadcast in the sample server with
libwebsocket_callback_on_writable_all_protocol().  The whole idea of
'broadcast' is removed.

All of the broadcast proxy stuff is removed: data must now be sent
from the callback only.  Doing othherwise is not reliable since the
service loop may close the socket and free the wsi at any time,
invalidating a wsi pointer held by another thread (don't do that!)

Likewise the confirm_legit_wsi api added recently does not help the
other thread case, since if the wsi has been freed dereferencing the
wsi to study if it is legit or not will segfault in that case.  So
this is removed too.

The overall effect is to push user code to only operate inside the
protocol callbacks or external poll loops, ie, single thread context.

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-29 22:13:55 +08:00
Andy Green
ab40eaa8db update numbers for minimal build footprint
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-21 13:20:33 +08:00
Andy Green
5c81e804fa document memory efficiency
This puts some numbers of library size with the various --without
and --disable options and about dynamic memory allocation
performance

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-20 20:24:30 +08:00
Andy Green
3182ece3a4 introduce without extensions
The new --without-extensions config flag completely removes all code
and data related to extensions from the build throughout the library
when given.

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-20 17:08:31 +08:00
Andy Green
6c1f64e992 refactor README
Signed-off-by: Andy Green <andy.green@linaro.org>
2013-01-20 11:28:06 +08:00