274 Commits

Author SHA1 Message Date
Joris Vink
f0fc1af940 Fix params example in example module 2013-12-10 08:52:37 +01:00
Joris Vink
fc243835c9 Update last_cb_run after we call cb here as well 2013-12-09 11:42:22 +01:00
Joris Vink
02351e1ab4 Update last_cb_run after we call the cb.
Makes sure we don't fall into cascading calls to the cb
if it takes longer to complete then the interval set.
2013-12-09 11:40:59 +01:00
Joris Vink
10aa4a28fe Multipart forms are now also validated via params 2013-12-05 20:28:07 +01:00
Joris Vink
79aea48757 Don't stop passing the accept lock even when workers are very busy.
If a worker reached worker_max_connections and it was its turn to
grab the accept lock it would've gotten stuck and no new connections
would be handled even if other workers would be less busy.

Instead, we now skip the lock if we're too busy and pass it along
in the hopes other workers are less busy.
2013-11-27 23:02:15 +01:00
Joris Vink
6f311a06cf Do not get stuck processing HTTP requests, found by Thorduri 2013-11-25 14:21:47 +01:00
Joris Vink
97c67f7cfb Update TODO
Remove stuff thats been done or obsolete
2013-11-22 09:35:52 +01:00
Joris Vink
b647afcc4f fix brocken DEBUG define 2013-11-21 12:00:07 +01:00
Joris Vink
d15c60670a Fix building the modules under osx. 2013-11-20 10:34:32 +01:00
Thordur Bjornsson
06abae3967 The access log need not be executable.
While there use the nice defines rather then straight up mode
numbers.
2013-11-19 17:27:14 +01:00
Thordur Bjornsson
cc6a424a82 Introduce tools/
Currently only populated with a script to generate certificates.
2013-11-19 13:30:24 +01:00
Thordur Bjornsson
302c3b6c9d If DEBUG is set in the environment, define KORE_DEBUG 2013-11-19 13:10:01 +01:00
Thordur Bjornsson
f9cac98ab5 Detect OS rather then supplying a build target 2013-11-19 13:10:01 +01:00
Thordur Bjornsson
26a5b920f5 Basic gitignore 2013-11-19 13:10:01 +01:00
Joris Vink
269e5cb007 Strip out port from HTTP host request if its present. 2013-11-18 00:53:08 +01:00
Joris Vink
7287b146ce reset back to normal 2013-11-18 00:48:33 +01:00
Joris Vink
7a58d4555c bring back original settings here 2013-11-18 00:44:46 +01:00
Joris Vink
afeb213260 Kore no longer requires root to be started. 2013-11-18 00:42:57 +01:00
Joris Vink
8a3f49d164 Missing file, noticed by thorduri 2013-11-16 17:44:31 +01:00
Joris Vink
1e250c1473 Kore now supports GET parameters and automatic validation of GET/POST parameters.
Kore will automatically removes invalid parameters as a security measure.

See modules/examples/module.conf for an example of how this works.
2013-11-10 15:17:15 +01:00
Joris Vink
34c2f31a93 Add validators to kore, specified in the configuration using 'validator' keyword.
Example:
	validator	v_id	function	v_id_function
	validator	v_url	regex		^/url/path/[a-z]*$

You can then call these using kore_validator_run(char *, char *), example:

	if (!kore_validator_run("v_url", req->path))
		[req->path is bad];
2013-11-09 16:21:52 +01:00
Joris Vink
c80e1d3767 If there's only a single worker, do not block after accept treshold has been
reached
2013-11-01 22:37:59 +01:00
Joris Vink
2aa4edb04e Kill unused vars 2013-10-26 00:59:03 +02:00
Joris Vink
f17242262b Improve on sending data to the client.
- Attempt to chain as much as we can in the send netbufs
  (keeps down the SSL_write calls, silly seeing it go out with 8 bytes)
- Change NETBUF_SEND_PAYLOAD_MAX to 4K
- Call SSL_write() with max NETBUF_SEND_PAYLOAD_MAX in size
- Go back to flushing the send buffers after each request
- No more need for a fixed pool for nb->buf, go back to the heap for now
- Disable Nagle, we're doing the chaining now anyway
2013-10-26 00:48:09 +02:00
Joris Vink
4247d3139c Chain our sending netbufs together. Gives us a lot less SSL_write() calls. 2013-10-25 14:22:29 +02:00
Joris Vink
4922171d96 Change net_send_queue() in preparation for improving send performance.
No longer takes callbacks, flags, or *out arguments.

Update rest of the code that called these callbacks whenever sending
was completed, instead call them right away now.
2013-10-25 11:10:03 +02:00
Joris Vink
ac025adaa7 Make kore_worker_acceptlock_release() available to loaded modules.
This allows us to move the accept lock manually to another Kore worker
in case we own it and are about to do some heavy lifting on the current
Kore worker.
2013-10-24 09:05:46 +02:00
Joris Vink
e10486fa10 Change urldecode back to 0 2013-10-24 08:56:17 +02:00
Joris Vink
340f4b759c s/==/= 2013-10-23 23:01:14 +02:00
Joris Vink
765214c5dc Update build.sh 2013-10-23 22:58:15 +02:00
Joris Vink
c30ff58b93 control characters have nothing to do inside a URL. 2013-10-18 12:43:20 +02:00
Joris Vink
5d027b7a21 Decode all url encoded components properly. 2013-10-18 12:32:00 +02:00
Joris Vink
ca05fb74d1 Properly calculate GMT time in kore_date_to_time() 2013-10-15 15:06:19 +02:00
Joris Vink
6028a3edc3 Get rid of some bash-ism and do stuff ourselves. 2013-10-15 14:54:02 +02:00
Joris Vink
190315c238 Make inject.c no longer spew warnings, instead use correct widths for time_t on all platforms. 2013-10-15 13:33:35 +02:00
Joris Vink
49df7a313b Make sure d cannot be used uninitialized. 2013-10-15 13:10:30 +02:00
Joris Vink
ee99503323 Fix building example module in OpenBSD. 2013-10-15 13:09:00 +02:00
Joris Vink
c64d3e7854 Add http_keepalive_time configuration parameter.
Allows you to configure maximum amount of seconds an HTTP connection
can stay open (does not affect SPDY connections). If set to 0 it will
disable keep-alive all together.

Add some inttypes fluff.
2013-10-15 11:10:45 +02:00
Joris Vink
07079dc8c0 Do not kill a connection if nb->len is 0 when sending data. 2013-10-15 11:09:33 +02:00
Joris Vink
8b47863cd4 Add http_hsts_enable (enabled by default with max-age=31536000) to Kore's configuration file.
If enabled Kore adds the HSTS header to every response.

- Additionally, fix some typos in the example configuration.
- Change default SSL cipher list again, no more RC4 and almost PFS for all browsers.
2013-10-15 10:44:56 +02:00
Joris Vink
b75ac15e50 add scaling documentation 2013-10-14 15:03:58 +02:00
Joris Vink
9426906225 Long overdue, let Kore pick its own shm key if the default KORE_SHM_KEY is already taken. 2013-10-14 11:26:11 +02:00
Joris Vink
d2447a8848 Better defaults for ssl_cipher, was already in example config but not here. 2013-10-14 09:26:48 +02:00
Joris Vink
1fb3c013ff Use kore_mem_find() in kore_buf_replace_string(), fixes certain crashes
that could occur when calling kore_buf_replace_string() with patterns
that would be found at the end or start of the buffer.
2013-09-26 16:49:44 +02:00
Joris Vink
3359be363f add limits.h so we can compile in 32-bit systems. 2013-09-24 09:15:31 +02:00
Joris Vink
0d63fd829b change some comments 2013-09-24 08:59:37 +02:00
Joris Vink
0a49f29e10 Add support for ECDH and provide a better ssl_cipher set by default. 2013-09-24 08:58:05 +02:00
Joris Vink
dde4f9f75a Be more verbose when configuration errors pop up. 2013-09-22 20:11:56 +02:00
Joris Vink
88c3a3eb98 Add http_header_max and http_postbody_max configuration variables.
- http_header_max:
	Maximum size of HTTP headers (in non SPDY connections).

- http_postbody_max:
	Maximum size of an HTTP POST body (both in SPDY and HTTP mode).

Right now Kore will simply DC the client, ideally we want to send
a 413 (entity too large) to the client however.

See modules/examples/module.conf for more.
2013-09-22 20:05:24 +02:00
Joris Vink
ef463b49eb Merge remote-tracking branch 'origin/master' 2013-09-10 14:05:31 +02:00