27 Commits (abd69d0a2057d2d52f8794925854a82984d5135c)

Author SHA1 Message Date
Georg Hopp abd69d0a20 disconnect on invalid request line 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 eae798e599 increase writebuffer size a lot. 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 3497eb8754 dynamically get and free buffer for response write pipe now 14 years ago
Georg Hopp e35308f880 increase write buffer 14 years ago
Georg Hopp 92379ebb15 use one dynamic buffer less and save at least one write on small responses 14 years ago
Georg Hopp 1b7ef5030d better response handling but still buggy with stream piping 14 years ago
Georg Hopp 0fba746fe2 first working version of content delivery from file....very crude... @TODO: rewrite complete response handline. 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 bf6a341b4c changed header hashing to use btree (GNU only). @TODO: make this conditional for other systems. Removed the qsort calls on server->fds making O(2nlogn) to O(n) 14 years ago
Georg Hopp f82c178b5b started a response handler and changed serverRun to use it for its response 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 14 years ago
Georg Hopp cb75a749e9 start split of request parser 14 years ago
Georg Hopp f678adcae4 access to headers via hash, read body (actually only with content-length header should also look for content-encoding) 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