Georg Hopp
|
4b5bcf89c0
|
a taste of ajax
|
14 years ago |
Georg Hopp
|
4f95d8ce11
|
change worker to a generic one, some cleanups in server
|
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
|
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
|
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
|
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
|
b122f341a9
|
fix infinite busy loop in run
|
14 years ago |
Georg Hopp
|
3497eb8754
|
dynamically get and free buffer for response write pipe now
|
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
|
c846117638
|
now load image from actual server
|
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
|
983c933908
|
fix seaks and hangs after adding response object (mostly not related with the response object but how i integated it into serverRun
|
14 years ago |
Georg Hopp
|
f82c178b5b
|
started a response handler and changed serverRun to use it for its response
|
14 years ago |
Georg Hopp
|
9198f7e7aa
|
fixed bug at server destructor
|
14 years ago |
Georg Hopp
|
cb50f09adc
|
reset keep_live flag on connection close
|
14 years ago |
Georg Hopp
|
3d735c7fc7
|
made a first cruel handling for keep-alive and non keep-alive requests. @TODO: this MUST BE cleaned
|
14 years ago |
Georg Hopp
|
6c888a8c07
|
now only use keep-alive....
|
14 years ago |
Georg Hopp
|
a4d09213ba
|
moved request_parser.h and request_queue.h in separeate request subfolder
|
14 years ago |
Georg Hopp
|
8e4e3dae1e
|
no more request body debig output
|
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
|
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
|
05a7a386fa
|
fixed some warnings
|
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 |
Georg Hopp
|
0aae86589f
|
free reader (HttpRequestParser) when connection is closed
|
14 years ago |
Georg Hopp
|
90476e07d8
|
add StreamReader interface, modify HttpRequestParser and Server to use it
|
14 years ago |
Georg Hopp
|
2d6305c3d6
|
changed class tool. Now multiple interface per class are supported as well as simple inheritence.
|
14 years ago |
Georg Hopp
|
1884143dbf
|
changes related to server code
|
14 years ago |
Georg Hopp
|
f366c0b865
|
add testserver and did some fixes not shown by my incomplete tests
|
14 years ago |