Georg Hopp
e4d77c8311
moved httpMessageQueue to a generalized Queue class as in fact it was nothing else except that it only stored HttpMessages.
14 years ago
Georg Hopp
317cc63d20
huge refactoring of build structure as well as other changes...sorry for the huge diff. These are the changes done within the sister project taskrambler, including reactivation of the existing tests as well as code coverage reports
14 years ago
Georg Hopp
5fc9ce547c
added a first basic athentication system with ldap binding. Now login depends on the existens of a valid ldap account
14 years ago
Georg Hopp
d0368bb28b
GET and POST vars are now parsed when request ist parsed. COOKIE will follow. While parsing the request line i also get pic the path from it.
14 years ago
Georg Hopp
5b3fed549f
refs #19 : Added a stream class. This is a delegate that uses the correct read and write methods for the given stream type. This is implemented as prerequesite for the SSL implemented
14 years ago
Georg Hopp
4f95d8ce11
change worker to a generic one, some cleanups in server
14 years ago
Georg Hopp
ee6040201e
moved request parser to generic parser. This is now able to create either a request or a response message dependent on the initial message line (version first or last). TODO change constructor of response to use a len parameter for the reason
14 years ago
Georg Hopp
6591c0a6c7
changed callocs of memory not needed to be initialized to malloc
14 years ago
Georg Hopp
9f801ba422
changed all string operation within header handling with fixed length mem operations, preventing multiple iterations over these strings. In theory this should improve performance in reality it seems that it is worse...CHECK WHY
14 years ago
Georg Hopp
063189e664
changed /**/ single line comments to //
14 years ago
Georg Hopp
b38d402250
start documenting this whole stuff...well at least add a copyright information in each file
14 years ago
Georg Hopp
dfdfd20d8e
now incomplete requests should no longer block the complete server. Tested with \'echo -en "GET / HTTP\r\nConn" | nc -w 600 localhost 11212\' and then doing requests from my browser. @TODO : cleanup those stuff, check if a not correctly response reading would block the server.
14 years ago
Georg Hopp
dbb7042360
fixed the non keep-alive performance issue as well as i lower memory usage by using a single read and write circular buffer for every connection. @TODO : i noticed a server hang while getting large data (my image) with non keep-alive connections. Additionally an incomplete keep-alive request might stop the server now as the lock on the read buffer will not be released.
14 years ago
Georg Hopp
f2dbad19c6
another try with a shared memory based ringbuffer...this performs well for keep-alive sessions but is much slower without. actually i am not sure why but most likely the shared memory setup is quite expensive. @TODO : make a profiling.
14 years ago
Georg Hopp
e8a21ace31
lots of changes but primarily change the request parser to use a ringbuffer. The ringbuffer is implemented using the shared memory trick.
14 years ago
Georg Hopp
6550e381f0
now the separated http worker works. Changed some size_t to ssize_t as i use -1 and -2 es error indicator in my server and fixed caculation of remainig buffer size in reader
14 years ago
Georg Hopp
20af2baa6f
separated the server completely from the http processing
14 years ago
Georg Hopp
d87cd09ba1
more generalizing of response writing (implemented a response writer...now it should be possible to implement a stream writer for images
14 years ago
Georg Hopp
fa58a6cc81
make http request and response childs of a common parent http message
14 years ago
Georg Hopp
e67667881f
change response to tree based header storage and make everything work.
14 years ago
Georg Hopp
a4d09213ba
moved request_parser.h and request_queue.h in separeate request subfolder
14 years ago
Georg Hopp
6aef05cf7f
fix rather nasty reentrance bug
as i first wrote the parser i used static valiables to hold the
state of the currently parsed request.
If a request would spread of multiple reads this would lead
to one reqeust messing up the state of another.
not those states are part of the parser object itself where
they belong.
14 years ago
Georg Hopp
68e9682380
now stuff seems to work correct even if read does not provide a complete request (tested with telnet)
14 years ago
Georg Hopp
90df11c014
now each HttpRequestParser initializes its own request queue and enqueus completed requests there. The server now gets the queue and prints completed requests.
14 years ago
Georg Hopp
f1bf7c49f7
basic request parsing (line by line) implemented
14 years ago
Georg Hopp
90476e07d8
add StreamReader interface, modify HttpRequestParser and Server to use it
14 years ago
Georg Hopp
2dcc288a40
some latest work
14 years ago