Commit Graph

354 Commits

Author SHA1 Message Date
Joris Vink 1375190936 Improvements for client certificates.
Double check we actually get a certificate if we are asking for one.
Even though we set SSL_VERIFY_FAIL_IF_NO_PEER_CERT it's a sane thing to do.

Start logging the CN for the received client certificate in the access logs.

As a bonus re-arrange some accesslog stuff for sanity.
2014-03-05 11:38:47 +01:00
Joris Vink 75c4bb0754 Error out when we get an unknown NPN result. 2014-03-05 11:07:21 +01:00
Joris Vink c408f9c1b3 Flairish 2014-03-02 18:17:30 +01:00
Joris Vink d3d989d743 Update README with some flair 2014-03-02 18:16:32 +01:00
Joris Vink c6e737c9c0 Bump to 1.1-current 2014-03-01 19:20:59 +01:00
Joris Vink b7eafa6502 Bump to 1.1-release 2014-03-01 19:20:00 +01:00
Joris Vink becfc8d586 Add request as an authentication_type.
request can be used for when you want to validate something for
authentication bmanually. Youur validator will receive the http_reques
passed down.

A practical use of this is doing IP based ACL's.
2014-03-01 19:18:30 +01:00
Joris Vink cb17c0d610 When returning a 405 append an Allow header as per rfc 2014-02-27 22:24:28 +01:00
Joris Vink 634bb482d6 Pass the http_request responsible for calling the validator. 2014-02-01 17:47:58 +01:00
Joris Vink ccd9e1046a Remove included docs, they are outdated. 2014-01-29 23:00:43 +01:00
Joris Vink 6e4b403662 Don't force the year in a HTTP-date to be the current year. 2014-01-29 22:59:58 +01:00
Joris Vink f0a9c1fe73 Major improvements to HTTP/1.1 behaviour, error reporting and handling.
This comes with changes to http_response() (no longer returns a result).
2014-01-29 22:48:51 +01:00
Joris Vink a80808d779 Add header as an option for authentication blocks 2014-01-22 23:11:52 +01:00
Joris Vink 9a8092bf41 Add authentication blocks for Kore.
Using authentication blocks one can define "authentication" mechanisms
in Kore for page handlers.

This can be used to require a session cookie (validated by your own validator)
for certain page handlers, and hopefully in the future provide a framework
for adding more authentication things (like HTTP Auth).

Right now only cookie checking is available.
2014-01-22 22:55:10 +01:00
Joris Vink 7e8371366f Make sure we properly close a SPDY stream if there's no data. 2014-01-14 22:22:26 +01:00
Joris Vink b64f674db2 Handle SPDY streams better when sending data. 2014-01-14 21:43:45 +01:00
Joris Vink 517de46790 Kore can now do query strings without lots of dynamic handler voodoo.
Any handler can receive query strings, however if you do not specify
parameters allowed in a param {} block Kore will discard them.
2014-01-13 20:21:20 +01:00
Joris Vink ef4289689f Only call module onload if its present 2014-01-11 01:35:44 +01:00
Joris Vink d22405cea7 Call the onload function whenever a module is loaded/reload.
Allows one to teardown whatever they setup properly when
the module gets a full reload. See example module for how it works.
2013-12-21 13:37:34 +01:00
Joris Vink ddf23ef65b Remove onload, it's gone 2013-12-17 11:48:53 +01:00
Joris Vink 84d2c7fa0d ULONG_MAX -> LONG_MAX 2013-12-16 18:00:33 +01:00
Joris Vink 21b148e3a5 Allow Kore to load multiple modules at once. 2013-12-15 01:11:56 +01:00
Joris Vink f2aa206f3b Add support for client certificates 2013-12-14 16:31:07 +01:00
Joris Vink 08a2fff5a5 add params 2013-12-12 08:49:02 +01:00
Joris Vink 0f59c617df Add missing params for param-test 2013-12-12 11:36:45 +01:00
Joris Vink be48cd56e1 ULONG_MAX -> LLONG_MAX 2013-12-12 01:15:40 +01:00
Joris Vink f86673b97b Remove some stuff that wasn't suppose to be here 2013-12-12 01:04:35 +01:00
Joris Vink c7dcdbcd82 Rework the way validation and param extraction works.
- Parameter validation is now done only when http_process_*()
  is called and upon http_argument_add().
- You MUST have defined your params in a param block or they will
  be filtered out.
- http_argument_lookup() is dead, welcome http_argument_get() and
  its brothers and sisters:
	http_argument_get_string()
	http_argument_get_uint16()
	http_argument_get_int16()
	http_argument_get_uint32()
	http_argument_get_int32()

  They will automatically do bounds checking on integers for you
  and return proper integers or a NUL-terminated string.

- The http_argument_get* functions no longer create an additional
  copy of the string which you need to free. Easier going.
- http_multiple_args() is dead, byebye
- Make some stuff we don't want to share with the modules static.
2013-12-12 00:58:32 +01:00
Joris Vink b4c54f9dc0 indent 2013-12-11 19:13:50 +01:00
Joris Vink 0f28b4a62d Enter versioning, starting at 1.0-current 2013-12-10 16:43:19 +01:00
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