Commit graph

2143 commits

Author SHA1 Message Date
Denis Osvald
d098ba47cb test server foreign loop
AG: adapt to use switch on existing test-server-libuv app
AG: correct the foreign lifecycle to be valgrind clean

This adds a switch -f --foreign that makes the test-server-libuv test
create his own libuv loop outside of lws, and use lws on it before
destroying lws and then his own loop.

If selected, the foreign loop runs for 5s before lws and 10s after
lws is stopped, for testing purposes.

Signed-off-by: Denis Osvald <denis.osvald@sartura.hr>
2016-05-04 06:00:37 +08:00
Andy Green
8ea8d08623 client provide user_space on LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER
https://github.com/warmcat/libwebsockets/issues/509

Signed-off-by: Andy Green <andy@warmcat.com>
2016-05-03 21:39:16 +08:00
Andy Green
f1fd882d57 client fix reaction to tls failure
https://github.com/warmcat/libwebsockets/issues/508

Signed-off-by: Andy Green <andy@warmcat.com>
2016-05-03 07:26:10 +08:00
Andy Green
cae57ad98d plugins_dir convert to array
If OOT lws plugins will be packaged as separate projects,
they're going to want to install their plugins somewhere
that makes sense for the package instead of one big lws
plugin dir.

This patch changes info to have a const char ** to a NULL
terminated array of directories it should search for
plugins.  lwsws knows about this and you can add to the
dir array using config fragments like

{
  "global": {
   "plugin-dir": "/usr/local/share/coherent-timeline/plugins"
  }
}

if the config fragment in /etc/lwsws/conf.d/ is also managed by the
package with the plugin, it can very cleanly add and remove itself
from lwsws based on package install status.

Signed-off-by: Andy Green <andy@warmcat.com>
2016-05-02 10:03:25 +08:00
Andy Green
4d5ac9c910 plugin standalone example for oot build
Signed-off-by: Andy Green <andy@warmcat.com>
2016-05-02 07:49:29 +08:00
Andy Green
d5dc5dff13 provide default empty protocol zero handler if NULL protocols in info
Move the dummy stub protocol into the library as the default
if NULL protocols given, since that is likely to become popular.

Signed-off-by: Andy Green <andy@warmcat.com>
2016-05-02 07:49:29 +08:00
Andy Green
2f72f67a65 libwebsockets-test-server-v2.0 showing how to use mounts and plugins
No dependency on test-server.h (just libwebsockets.h and getopt.h / syslog.h)

No need for any user callback code and all in one short file.

Signed-off-by: Andy Green <andy@warmcat.com>
2016-05-02 06:03:10 +08:00
Andy Green
952fcdede1 per vhost options struct explicitly const
Signed-off-by: Andy Green <andy@warmcat.com>
2016-05-02 06:01:59 +08:00
Andy Green
4664f71ed3 create_vhost move mounts list to info
There's no reason to not have the mounts linked list init also in the info
struct, rather than provide as a paramater to lws_create_vhost().  Now
is a good time to normalize that since this api only exists in master.

This also allows oldstyle "do everything at context creation time in one
vhost" guys to leverage mounts.

Also there's no reason the mounts linked-list pointer and all uses in lws
are non-const, so make them all explicitly const *.

Update the info struct docs to clarify which members are used when creating
a vhost and which for context creation.

Signed-off-by: Andy Green <andy@warmcat.com>
2016-05-02 04:59:54 +08:00
Patrick Farrell
72e0e2a516 Add warn_unused_result check, attribute only supported by GCC 3.4 or later
warn_unused_result was introduced in GCC version 3.4.

Change-Id: I6c2cc938d2b868ddfe0889cc41d7fa9d70e1b907
2016-04-30 02:07:13 +08:00
Stephan Eberle
67729c954f Eliminated compile warning in test-client.c 2016-04-27 07:38:52 +08:00
Stephan Eberle
ff32d01742 Fixed misspelled size_t 2016-04-27 07:36:41 +08:00
Stephan Eberle
8087959acf Fixed build failure under Visual Studio 14 2015 2016-04-27 07:34:43 +08:00
Stephan Eberle
f14f7237dc Fixed build failure under Linux with GNU 4.8.4 2016-04-27 07:32:56 +08:00
Stephan Eberle
3f41a9de5b Fixes for building with MinGW
Added fixes to avoid compile errors and warnings when building under
Windows using MinGW
2016-04-27 07:31:22 +08:00
Andy Green
734f10a19b logs document logrotate configuration for lwsws
After discussion here

https://libwebsockets.org/pipermail/libwebsockets/2016-April/002304.html

Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-26 19:07:17 +08:00
Andy Green
12aeba73c0 server status add getloadavg and lib version and more css
Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-26 14:54:09 +08:00
Andy Green
f79534e0a4 post example in test server
https://github.com/warmcat/libwebsockets/issues/501

This demonstrates how to do a 303 redirect on POST and provide
the results there, in both libwebsockets-test-server and the
plugin version.

Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-25 10:04:49 +08:00
Andy Green
24208879ce docs vhosts and mounts
Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-25 02:01:25 +08:00
Alexander Bruines
fe3f60da92 android make script contrib
This is based on

http://stackoverflow.com/questions/11929773/compiling-the-latest-openssl-for-android/
2016-04-23 18:28:03 +08:00
Alexander Bruines
119bdaadc2 Android needs sys/resource.h 2016-04-23 17:18:46 +08:00
Andy Green
8dd32ae7c1 http2 handle error path on ensure_user_space
Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-23 09:36:18 +08:00
Andy Green
2f216280f8 pollin shouldnt always win over pollout
https://github.com/warmcat/libwebsockets/issues/501

Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-23 09:26:11 +08:00
Andy Green
a2757c74b1 coverity 160162 check fcntl return
Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-23 08:16:18 +08:00
Andy Green
16146cdad8 coverity 160163 LWS_WARN_UNUSED_RESULT needed on header apis
Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-23 08:16:18 +08:00
Andy Green
516f388585 coverity 160166 readlink doesnt NUL terminate
Ah a real bug... well done coverity, that could have been nasty.

readlink unusually doesn't NUL terminate the result... take care about it.

Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-23 08:16:17 +08:00
Andy Green
5dd57a9430 coverity 160165 dead code
Yes... extension selection is not wired up yet

Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-23 08:16:17 +08:00
Andy Green
09490aeb93 coverity 160167 resource_path set at cmake may overflow buffer
resource_path is configured at cmake time (it's like /usr/share/libwebsockets-test-server)
it's true if you gave a >255 char path there it would blow up.

It's fixed but again not network-accessible.

Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-23 08:16:17 +08:00
Andy Green
1536c5beb6 coverity 160160/160161 test server commanline args strncpy NUL management
Just test app argument string handling, it is "HIGH" impact as Coverity
says but it's not network-accessible or in the library.

Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-23 07:21:48 +08:00
Andy Green
5bf2ce193b debug spew reduce
Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-23 07:14:03 +08:00
Andy Green
2110ce9727 cruft remove sigusr2 handling
Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-22 21:57:10 +08:00
Andy Green
81bf43b34f client account for retries
Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-22 12:29:44 +08:00
Andy Green
42e8b189dc http cache policy
This allows mounts to define the caching policy of the files inside them.

Support is added in lwsws for controlling it from the config files.

The api for serializing a mount struct opaquely is removed and lws_http_mount struct
made public... it was getting out of control trying to hide the options.

Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-22 08:53:49 +08:00
Andy Green
748a2210bd cgi lifecycle logging
Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-21 17:50:58 +08:00
hgrundy
d02028bf25 Update libwebsockets.h
Fix for FreeBSD
2016-04-21 17:50:55 +08:00
Andy Green
5c3a3c5e95 access_log reset transaction size when using keepalive
Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-20 05:58:01 +08:00
Andy Green
912c42f291 ah try for ah when adopting socket to vhost
https://github.com/warmcat/libwebsockets/issues/496

Even if no ah available, we will be on the ah waiting list and get triggered
when one is freed and we're next in line.

Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-19 10:10:53 +08:00
Andy Green
5f947cdcd9 windows another uv_poll_init
Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-19 09:10:08 +08:00
Lucas Terra
1759e32c7b Conditionally define snprintf on Windows
snprintf is already defined in MSVC 2015. If you redefine it <stdio.h> will cry about it and abort the compilation.
2016-04-19 08:23:13 +08:00
Roger A. Light
c6496b2510 Script and config to make tracking ABI/API changes easy.
AG: enhance the script a bit and fix the make instructions
2016-04-19 06:48:51 +08:00
Andy Green
c673125ce0 client http
Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-18 20:05:43 +08:00
Andy Green
451cee5d47 polarssl implementation
Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-18 20:05:43 +08:00
Lucas Terra
19f61e59b0 Fix inet_ntop linking error on Windows 2016-04-18 20:05:43 +08:00
Andy Green
980614035f plugin lws server status
Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-18 20:05:43 +08:00
Andy Green
4714cf02f4 vh doubly linked list for wsi on same protocol
This trades off a couple of wsi pointers for vastly increased speed
for the callback when writeable "all protocol" variants when there
are many kinds of wsi active.

Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-16 08:40:35 +08:00
Andy Green
7e2c3851bf redirects need fake content metadata
Chrome deals with it without on desktop, but Android chrome
waits for the connection to time out before actioning the
redirect, since it feels there might be html payload coming.

Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-15 20:09:36 +08:00
Andy Green
b21c20b5ff context settable server string
Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-15 13:58:24 +08:00
Andy Green
cec2fd55a8 lws normalize http response
Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-15 13:58:24 +08:00
Andy Green
2f0bc93d46 lws access log option and lwsws conf
This adds the ability to store apache-compatible logs to a file given at
vhost-creation time.

lwsws conf can set it per-vhost using "access-log": "<filepath>"

The feature defaults to disabled at cmake, it can be set independently but
LWS_WITH_LWSWS set it on.

Signed-off-by: Andy Green <andy@warmcat.com>
2016-04-15 13:58:24 +08:00
Justin Chen
30cdb3ac8f recv treat zero return as error
https://github.com/warmcat/libwebsockets/issues/475
2016-04-15 13:58:24 +08:00