76 Commits (2a9888303149ae551adab41354692cf91b70c064)

Author SHA1 Message Date
Georg Hopp a239fc98e8 changed HttpMessageQueue to be a real queue and not a fixed size array 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 646d1e1c50 Added a new abstraction: hash. A a lot of things within http are key/value things based on stings i created this generic hash class and use it to store the header right now. In future it will also be used to store cookie, get and post vars 14 years ago
Georg Hopp d4b1c3fd3a now the session livetime is shown with a bar, as well as the current session id. These are updated on reload or ajax call. 14 years ago
Georg Hopp f1215c6758 closes #19: first integration of OpenSSL...this makes leak testing with valgrind a pain so i will think about some conditional to activate and deactivate it. Additionally it seems that some memory will be left over somewhere, maybe i missed somed cleanup function i have to call and finally the integration really needs error handling. 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 1d238aa55d as i have a lot of static string initialization with the length of that sting a created and used a macro to prevent errors 14 years ago
Georg Hopp a0ec357e0a closes #11: first very crude session handling implementation, no persitence no memory cleanups, spread over to much files TODO: clean this 14 years ago
Georg Hopp 16fdf54de5 now the internal random value will be create only once every 30 seconds thus one can see that it is realy an internal state of the server 14 years ago
Georg Hopp 4b5bcf89c0 a taste of ajax 14 years ago
Georg Hopp 1fdcbd40f6 log when connect fails 14 years ago
Georg Hopp 4f95d8ce11 change worker to a generic one, some cleanups in server 14 years ago
Georg Hopp c26071a105 and also the accotding header 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 95c0d00944 get rid of some function calls when selection interfaces 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 87b0d50d1d structural changes for worker/process. @TODO actually i have no idea why this happens. 14 years ago
Georg Hopp dfcbc4946c fix memory problems occured with latest changes 14 years ago
Georg Hopp 59ccbf0207 closes #10: values for header ids are now stored in a char ** making multiple values for one id possible. Additionally added a jquery action that delivers the jquery java script and use it on the me action 14 years ago
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 01ae8736e9 now a child is spawned and writes random values in a shared memory segment. These values will be shown in the me action 14 years ago
Georg Hopp 7f688412ea some code cleanups...no changes in the logic 14 years ago
Georg Hopp 8298740dd9 move sdbm implementation in one file. 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 7466e59298 first very crude, not complete, experimental 304 test implementation 14 years ago
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 31b7d755e0 another try with the shmen trick...this time use MAP_ANONYMOUS ... as GNU extension. 14 years ago
Georg Hopp 5c3928d45a added missing header file to repo 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 de00ad47ad add subject/observer interface 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 4eb98a5a16 fixed bug in new response handling 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