15 Commits (424297cd5714c08b7916978376d211ec88a5cd24)

Author SHA1 Message Date
Georg Hopp 424297cd57 now when a constructor returns -1 the new call will in turn call the destructor effectively freeing all resources. ATTENTION: now the destructor has to be aware that it might be called with a not completely initialized object. To make this more ease there is the FREE makro with the corresponding ffree that does NULL pointer checking and the destructor checks for NULL pointer too. Additionally the handle_accept now handles _SC_OPEN_MAX - 10 connections. The 10 are reserved for internal usage. 14 years ago
Georg Hopp 7f688412ea some code cleanups...no changes in the logic 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 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 5c1c6a80cf some more cleanups in the server code. Removing not needed header includes 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 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 ca023b994f fix handling of remote close - i should have another eye on this...there still seems to be something wrong. 14 years ago
Georg Hopp 228b1d0d29 changed request handling. @TODO: I still seem to have the problem that the file handles are not closed and freed correctly as the service refuses connections after about a 1000. 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 19724f0d11 split server implementation for readability 14 years ago