2
0
Fork 0
Commit Graph

1383 Commits

Author SHA1 Message Date
Stefan Bühler 5222d524ad [plugin_core] fix some setup parameter handling 2013-09-09 23:23:46 +02:00
Stefan Bühler 1a7eec4aa5 [mod_gnutls] disable protect-against-beast by default now - considered mitigated on client side 2013-09-09 16:17:18 +02:00
Stefan Bühler 81ff95db84 [mod_gnutls] announce http/1.1 in ALPN 2013-09-09 16:16:38 +02:00
Stefan Bühler e55f423203 [config] fix more bugs in new config handling 2013-09-09 13:10:50 +02:00
Stefan Bühler d65a2ffc16 [mod_redirect] fix segfault in config parsing 2013-09-09 12:28:31 +02:00
Stefan Bühler 04c6aa93cf [plugin_core] fix alias action 2013-09-09 12:15:12 +02:00
Stefan Bühler e4c99e55d6 [config] fix bug in config parser (failed parsing names followed by a comma) 2013-09-09 12:09:22 +02:00
Stefan Bühler 4056bd1a43 [config] fix mem leaks in config parser 2013-09-09 10:30:07 +02:00
Stefan Bühler 875995dae5 [config] fix bugs in new config handling 2013-09-09 10:17:43 +02:00
Stefan Bühler 8037af605f replace g_hash_table_contains with g_hash_table_lookup 2013-09-06 17:11:14 +02:00
Stefan Bühler eb19c66524 [lua] fix key-value list handling and export of lists 2013-09-06 16:43:28 +02:00
Stefan Bühler e76ebe2021 [core] rewrite config parser
* no more hash values - only lists and list of key-value pairs
 * "master" config:
   the config loaded on startup can use all features,
   configs loaded later (vhost on demand from sql...) can't use
   include* and cannot modify global vars.
 * scoped variables
   - add a global var store in the server struct
   - global vars can be set with "global foo = bar"
   - if a variable already exists in a scope it will be modified on a
	 write, otherwise a new local variable is created
   - global vars won't be modified if not in "master" mode
   - vars can be made explicitly local with "local foo = bar"; create a
	 local copy with "local foo = foo"
   - globals vars are available in live config loads for reading
   - each file and action block {...} creates a new scope; if/else branches do
	 NOT create a new scope
 * to append a value to a list use "l + [v]" (not "l + v" anymore);
   lists are concatenated with "+"
 * [...] always marks a list
 * (...) is a list if it contains a "," or "=>", otherwise it justs
   groups an expression
 * a list can either contain key-value pairs or other values. mixing is
   not allowed
2013-09-06 16:43:26 +02:00
Stefan Bühler a1fbaab86b [core/modules] refactor config handling
* should be more robust now: taking list of wanted value, handling NULL
   pointers instead of value type NONE, fixed some bugs (wrong checks,
   mem leaks, ...)
 * add many methods to make handling of values easier; most methods
   can handle NULL value pointers safely (li_value_type(v) instead of
   v->type and so on)
2013-09-06 14:36:55 +02:00
Stefan Bühler b783bd5aaa [misc] use less C99 features 2013-08-23 13:39:09 +02:00
Stefan Bühler 061b2a4262 [core] handle differences between options/actions/setups in plugin.c 2013-08-22 18:02:50 +02:00
Stefan Bühler 898e0c4687 [log] fix small mem leak 2013-08-22 15:02:35 +02:00
Stefan Bühler cebb8df82c [mod_vhost] fix config mem leak 2013-08-22 15:02:33 +02:00
Stefan Bühler ad687636e9 [lua] push list values with __index metamethod to lookup string/nil keys in key-value lists 2013-08-21 13:50:02 +02:00
Stefan Bühler 9f9fe72d97 [lua] fix usage of lua_typename 2013-08-21 13:50:02 +02:00
Stefan Bühler f9d0abac66 [lua] add lighty.error -> lighty.print alias 2013-08-21 12:41:11 +02:00
Stefan Bühler 0adefe5f18 [mod_memcached] convert to handling key-value list 2013-08-19 20:09:16 +02:00
Stefan Bühler 9430a8a112 [mod_deflate] convert to handling key-value list 2013-08-19 19:22:22 +02:00
Stefan Bühler 9e71dc6890 [core] li_value_to_string: use => for separating hash keys and values like the config 2013-08-19 19:13:48 +02:00
Stefan Bühler d825212823 [mod_lua] convert to handling key-value list 2013-08-19 19:11:28 +02:00
Stefan Bühler 32e91a9e8a [core] handle NULL values in li_value_extract* functions 2013-08-19 19:10:15 +02:00
Stefan Bühler a14d0d00a5 [mod_auth] convert to handling key-value list 2013-08-19 18:53:01 +02:00
Stefan Bühler 74b64a6d1a [plugin_core] log/setup log: convert to handling key-value list 2013-08-19 17:26:16 +02:00
Stefan Bühler 433d4da14e [mod_vhost] convert to handling key-value list; make vhost.map_regex predictable
vhost.map_regex used to reorder the list to put often used entries at
  the top; now it just uses the first matching entry.

  new syntax now uses the default keyword for default entries instead of
  the string "default".
2013-08-19 16:25:34 +02:00
Stefan Bühler 92dc237ee8 [core] add li_value_new_hashtable to create a GString -> liValue hashtable 2013-08-19 15:43:48 +02:00
Stefan Bühler 7bc6e275ef [mod_throttle] fix refcount and double free 2013-08-18 19:58:09 +02:00
Stefan Bühler ccd512ca57 [waf] remove waf for now, doesn't work anymore 2013-08-18 18:42:15 +02:00
Stefan Bühler 3c27596287 [plugin_core] index action should do less stat() calls now, especially for multiple names 2013-08-18 15:59:26 +02:00
Stefan Bühler 919a8dd6d2 [mod_openssl] error out on unknown parameters 2013-08-18 15:53:26 +02:00
Stefan Bühler dc2f0b7885 [mod_openssl] support key-value list for multiple listen parameters 2013-08-18 15:49:12 +02:00
Stefan Bühler 8eae9f3b50 [mod_gnutls] remove ca-file option; only needed for not yet supported client cert authentication. add docs in the source 2013-08-18 14:29:26 +02:00
Stefan Bühler c372d21f2c [mod_gnutls] use key-value list for parameters, allows duplicate listen/pemfile parameters 2013-08-18 13:48:48 +02:00
Stefan Bühler 969818083e [core] add li_value_to_key_value_list: convert value hash to key-value list 2013-08-18 13:47:29 +02:00
Stefan Bühler ab47f9b33c [mod_gnutls] fix endless loop in client hello parser 2013-08-18 11:45:45 +02:00
Stefan Bühler 36b901afa7 [mod_gnutls] fix build with SNI disabled 2013-08-18 11:16:01 +02:00
Stefan Bühler 40169d5fc9 [autobuild] fix renamed header ssl_client_hello_parser.h 2013-08-18 11:15:30 +02:00
Stefan Bühler a7f41b9e3b [core] check for disabled keep-alive early to send matching headers 2013-08-18 00:58:54 +02:00
Stefan Bühler 975ca1cddf [mod_gnutls] parse client hello for sni and protocol version
changing priority in gnutls post_client_hello didn't work with session
resumption
2013-08-18 00:55:24 +02:00
Stefan Bühler c51d89fe6e [mod_openssl] disable SSL3 by default 2013-08-09 00:23:33 +02:00
Stefan Bühler 0b8365ca29 [mod_openssl] enable DH and ECDH 2013-08-07 20:59:46 +02:00
Stefan Bühler b9d77f50a4 [core] add req_header.* actions 2013-08-07 18:05:16 +02:00
Stefan Bühler f3436e69f1 [gnutls] fix cleanup order (use-after-free) 2013-08-03 09:24:58 +02:00
Simon Lundström 859da7d7eb [plugin_core] docroot: show stat() errors for all entries when debug log is enabled 2013-07-31 21:54:05 +02:00
Stefan Bühler f64ba1bb72 [fastcgi] add debug prints before all fastcgi_reset calls, don't reset connection on stderr data if connection was already closed 2013-07-20 13:33:58 +02:00
Stefan Bühler 9aafe5aa2a [fetch] use signed integers for liFetchDatabase refcount 2013-07-20 11:49:49 +02:00
Stefan Bühler e762189fb5 [core] only use feature test macros on linux 2013-07-20 11:45:09 +02:00
Stefan Bühler bfa1395937 [throttle] fix connection throttling refill calculation 2013-07-18 13:05:09 +02:00
Stefan Bühler a1170b3aec [mod_gnutls] fix segfault when no sni backend was configured 2013-07-17 20:18:52 +02:00
Stefan Bühler d5bb6003dc include lighttpd/settings.h instead of base.h in common source 2013-06-25 16:38:17 +02:00
Stefan Bühler 8f42bbe7b4 [gnutls filter] fix cork handling 2013-06-25 16:20:18 +02:00
Stefan Bühler b9fadd3db3 [ssl_sni_parser] debugging, fix parser bug (wrong shift) 2013-06-10 12:12:36 +02:00
Stefan Bühler 85fc9dbb6d [mod_gnutls,fetch api] associate sni certs with dh params, fix fetch bug 2013-06-09 18:10:23 +02:00
Stefan Bühler 796f6b1547 [mod_gnutls] send alerts instead of aborting, allow safe renegotiations 2013-06-09 16:15:43 +02:00
Stefan Bühler 3d86ada352 add ssl_sni_parser.h to make dist 2013-06-08 23:18:39 +02:00
Stefan Bühler 92f0a5f237 [mod_gnutls] add sni-fallback-pemfile option 2013-06-08 21:36:59 +02:00
Stefan Bühler 8d417cec1b [mod_gnutls] fix compile error when compiling without SNI 2013-06-08 20:23:06 +02:00
Stefan Bühler 05e058aa9c fix bugs and warnings reported by clang
* fix memset sizeof() bugs
 * fix unaligned memory access
 * fix warnings for casts with alignment change
 * crypt_r needs _GNU_SOURCE
2013-06-08 20:11:23 +02:00
Stefan Bühler 392e7bb823 [mod_gnutls] add SNI 2013-06-08 20:11:13 +02:00
Stefan Bühler 95f63fc0cf [core] add global named fetch pool; all backends have to return strings. implement a simple backend. 2013-06-08 20:10:47 +02:00
Stefan Bühler 2bcb880dc8 [core] implement generic "fetch" api 2013-06-04 01:12:35 +02:00
Stefan Bühler 86c93c6256 [mod_gnutls] use 4096-bit DH params by default 2013-06-02 13:31:06 +02:00
Stefan Bühler 2cc5eb90d6 [mod_gnutls] actually use dh params loaded from file 2013-06-02 12:27:36 +02:00
Stefan Bühler 9a70d79f66 [mod_gnutls] add memory session database 2013-06-02 11:43:04 +02:00
Stefan Bühler c15deb44a4 [mod_gnutls] support DH parameters, use pregenerated 3247 bit parameter by default 2013-06-02 10:44:08 +02:00
Stefan Bühler f4280dca8b [mod_gnutls] session ticket support 2013-06-01 17:40:14 +02:00
Stefan Bühler c49cf3696f [mod_gnutls] fix beast workaround (force RC4 on TLS1.0 and SSL3.0) 2013-06-01 15:28:06 +02:00
Stefan Bühler 97dbcf7e42 [core] add option to disable buffering large request bodies on disk - forward them to backend directly instead
- right now only mod_fastcgi can handle this (it won't set the CONTENT_LENGTH env var, the backend
    has to support this too)
2013-06-01 12:31:25 +02:00
Stefan Bühler 38aad8128e [angel,tests] implement and use "one-shot" option to not restart crashed workers 2013-05-31 20:47:43 +02:00
Stefan Bühler 64cabac477 [core] fix connection timeout handling 2013-05-31 20:28:53 +02:00
Stefan Bühler 5e4a94b0c6 [core] handle Connection: Upgrade 2013-05-31 20:28:53 +02:00
Stefan Bühler 5e0a58be53 [stream-http-response] support chunk encoded responses 2013-05-31 20:28:53 +02:00
Stefan Bühler 3deb7c9e79 [core] support chunked uploads 2013-05-31 16:41:32 +02:00
Stefan Bühler 4706cc5f60 Fix filedescriptor/socket leaking 2013-05-28 11:46:41 +02:00
Stefan Bühler 00926c8049 [mod_openssl,mod_gnutls] fix missing disconnect (mem leak), free buffers (mem leak) 2013-05-28 10:05:34 +02:00
Stefan Bühler 42b49307b9 [mod_fastcgi] next try to fix use after free 2013-05-28 10:05:34 +02:00
Stefan Bühler bb018b091a [mod_fastcgi] fix use after free 2013-05-27 10:04:01 +02:00
Stefan Bühler 6e6e8792de [filter] don't run filter on stream-dest connect 2013-05-26 20:14:49 +02:00
Stefan Bühler 7f61ca9dba disable some debug messages 2013-05-26 18:59:44 +02:00
Stefan Bühler 44f56b034f [filters] fix memleak 2013-05-26 18:54:52 +02:00
Stefan Bühler 8a65b5e7aa [throttle] fix memory leak 2013-05-26 18:50:21 +02:00
Stefan Bühler 0857befb7f fix handling of new connection state 2013-05-26 17:37:33 +02:00
Stefan Bühler db36f6a78b [mod_cache_disk_etag] fix use after free 2013-05-26 15:46:36 +02:00
Stefan Bühler abdb238f21 [core] fix half cleaned connection objects 2013-05-25 19:14:02 +02:00
Stefan Bühler d90774c330 [mod_cache_disk_etag] fix segfault 2013-05-25 18:10:21 +02:00
Stefan Bühler 7c003a5505 [mod_throttle] build with automake/wscript too 2013-05-25 16:21:31 +02:00
Stefan Bühler 31e581456d [core] use TCP_FASTOPEN on listening sockets if available 2013-05-25 16:15:14 +02:00
Stefan Bühler bf6470375a flush sockets after request end by setting TCP_NODELY temporarily 2013-05-25 15:23:16 +02:00
Stefan Bühler 11b4bdd8c5 replace unneeded ev_/EV_ references 2013-05-25 14:37:09 +02:00
Stefan Bühler 75e0c442f7 [mod_gnutls] fix issues with giovec_t present before 2.12.0 2013-05-25 14:23:53 +02:00
Stefan Bühler 3194226966 [mod_gnutls] use vec_push only if version >= 2.12.0 2013-05-25 14:10:58 +02:00
Stefan Bühler 709296d796 fix bugs and warnings from compiler warnings (memset parameter order, shadow, ...) 2013-05-25 12:59:14 +02:00
Stefan Bühler 0ff0df8e12 [mod_fastcgi] show stderr messages 2013-05-25 12:29:04 +02:00
Stefan Bühler 018baa0375 [mod_fastcgi] abort request only if headers aren't sent; otherwise stream disconnect will handle it
out stream disconnects will lead to fastcgi_reset too, but the vrequest is fine in that case
2013-05-25 11:39:03 +02:00
Stefan Bühler 7a01f69b89 fix connection is_closed handling (never close raw_out, never close con->out.source->out) 2013-05-25 11:29:36 +02:00
Stefan Bühler 914f79650a fix connection handling with chunked responses 2013-05-24 19:02:46 +02:00
Stefan Bühler ff28617976 [mod_fastcgi] disable keep-alive for now 2013-05-24 17:23:24 +02:00
Stefan Bühler c61f4929cb more asserts and checks in stream_simple_socket 2013-05-24 17:19:44 +02:00
Stefan Bühler b6325775dc [backends] fix connection insertion 2013-05-24 15:17:02 +02:00
Stefan Bühler ba46b595ae [mod_fastcgi] fix broken asserts 2013-05-24 15:16:30 +02:00
Stefan Bühler d59cbf3f4e [mod_fastcgi] add some asserts 2013-05-24 14:06:00 +02:00
Stefan Bühler 5c2cc7143d fix filters (deflate, memcached, cache_disk_etag) 2013-05-24 13:50:50 +02:00
Stefan Bühler f33a7fd3fa [lua] check values for NULL before pushing to stack 2013-05-24 11:21:13 +02:00
Stefan Bühler 3aa78c1002 wait for request body in dynamic backends, cache them on disk 2013-05-23 17:56:24 +02:00
Stefan Bühler c40b1da839 [subrequests lua] fix compile warnings. still not working, needs to be ported to stream api. 2013-05-23 17:56:24 +02:00
Stefan Bühler f1f1aacdfe fix glib deprecation warnings 2013-05-23 17:56:24 +02:00
Stefan Bühler a937bd437a fix missing li prefixes 2013-05-23 17:56:24 +02:00
Stefan Bühler 72ec9a432f [throttle] rewrite 2013-05-23 17:56:24 +02:00
Stefan Bühler e0d9c0d602 [core] register server prepare callbacks 2013-05-23 17:56:24 +02:00
Stefan Bühler b028ad841f [mod_gnutls] stream 2013-05-23 17:56:24 +02:00
Stefan Bühler d0d3c851a5 [openssl] use BIO wrappers for streams 2013-05-23 17:56:24 +02:00
Stefan Bühler d9952f8e14 [mod_proxy] use backends 2013-05-23 17:56:23 +02:00
Stefan Bühler cfd8955008 [common] implement libev wrapper
* need a way to mark a watcher as "don't keep the loop alive"
2013-05-23 17:56:23 +02:00
Stefan Bühler 079c365f39 [mod_scgi] use backends 2013-05-23 17:56:23 +02:00
Stefan Bühler b74ec36c1e [mod_fastcgi]: use backends 2013-05-23 17:56:23 +02:00
Stefan Bühler ff69160c34 [core] Use streams 2013-05-23 12:01:04 +02:00
Stefan Bühler b41cc2898a generic backends 2013-05-23 12:01:04 +02:00
Stefan Bühler c450fa82a5 [core] implement streams on chunkqueues 2013-05-22 18:12:15 +02:00
Stefan Bühler ebd5a4ecb3 Fix comment style (//) and add gnutls to automake distcheck 2013-05-21 16:51:15 +02:00
Stefan Bühler 6a33c93231 Revert "[core] implement streams on chunkqueues"
- accidental push, patch not finished yet

This reverts commit 74ce55c860.
2013-05-17 20:27:52 +02:00
Stefan Bühler 74ce55c860 [core] implement streams on chunkqueues 2013-05-17 15:40:20 +02:00
Stefan Bühler 20a63070e2 [chunks] extract to plain memory 2013-05-17 15:40:20 +02:00
Stefan Bühler 092a1b0141 fix bugs found with clang-3.3 -fsanitize=address,undefined 2013-05-17 12:35:25 +02:00
Stefan Bühler 4793e43461 [mod_gnutls] fix ca-file handling 2013-05-07 13:58:35 +02:00
Stefan Bühler 186309f529 [lua] add missing file 2013-05-05 16:22:07 +02:00
Stefan Bühler 0d85a068c8 [lua] add per lua_State lock 2013-05-04 13:11:25 +02:00
Stefan Bühler c1851a6cea [lua] force garbage collection 2013-05-03 18:59:06 +02:00
Stefan Bühler f2ade38923 Release mainaction before stopping workers 2013-05-03 18:57:58 +02:00
Stefan Bühler ff7b73c8a9 [collect] Allow to start collect without worker context 2013-04-10 20:48:16 +02:00
Stefan Bühler 0dd67d972a [mod_lua] fix order of setting ts_loaded and checking it 2013-04-09 16:44:50 +02:00
Stefan Bühler e2d7bb30ec [mod_lua] fix docs 2013-01-25 10:02:08 +01:00
Stefan Bühler ff527c560c [mod_lua] fix ttl handling for lua.handler 2013-01-25 10:02:08 +01:00
Stefan Bühler 9cb0790052 [core_lua] Forward worker pointer to log functions in some lua functions
This fixes 2 things:
 * won't need global server lock for logging in worker context
 * order of log entries; worker context log gets committed to
   global list in the event loop
2013-01-25 09:57:54 +01:00
Stefan Bühler 01abf704a3 [lua] Use recursive lock for global lua lock 2012-12-06 15:43:11 +01:00
Stefan Bühler 178e7c898f [profiler] use g_static_mutex to trigger mutext memory allocation before registering profiler alloc handlers 2012-12-06 15:34:51 +01:00
Stefan Bühler af3e0728fa [mod_deflate] Parse x-gzip/x-bzip2 explicitly and send it back as it was requested (instead of gzip/bzip2) 2012-10-14 17:33:02 +02:00
Stefan Bühler 2634c77aae Fix use of deprecated g_strcasecmp 2012-06-16 13:08:57 +02:00
Stefan Bühler b310884f4d [log] Remove (broken) locking for g_printerr in li_log_write_stderr - fputs, the default backend, is thread safe 2012-06-16 13:07:14 +02:00
Stefan Bühler 1951de6e40 [mod_acceslog] fix escaping of " 2012-06-16 12:57:27 +02:00
Stefan Bühler d705276183 [plugin_core] Fix closing data stream for invalid ranges in static handling 2012-04-05 14:55:14 +02:00
Stefan Bühler 5d48ae7102 [log] Add changable log contexts (i.e. references to the real one), so a pointer to such context can be used over a longer period of time 2012-03-17 15:52:19 +01:00
Stefan Bühler a0227182d6 Fix small memleak with server sockets 2012-03-17 15:38:44 +01:00
Stefan Bühler 97bc95a107 [configparser] allow normal actions and setups with the same name 2012-03-17 12:42:55 +01:00
Stefan Bühler b1c45e6a8f [chunk/network] use glib error system to report errors (instead of using virtualrequest context) 2012-03-16 15:44:22 +01:00
Stefan Bühler 77f786ed18 [log] remove different timestamp format handling (one is enough), separate log context (liLogMap) from virtualrequest 2012-03-16 13:25:52 +01:00
Stefan Bühler 8d709f8574 [ipv6 parser] Fix type-punned memory access 2012-03-13 00:19:56 +01:00
Stefan Bühler c270124514 [mod_gnutls] remove \n from log messages 2012-01-22 13:26:29 +01:00