------------------ 0.1 ----------------- 0.1a - pridany funkce logrequest (log.c) a free_mem() (tcp_srv.c), ktera omylem chybela ve verzi 0.1 - diky funkci logrequest je nyni log vytvaren v common log formatu 0.1b - logrequest uz spravne pocita delku vraceneho souboru/hlasky - chybove hlasky se zatim konfiguruji v tcp_srv.h (HTTP_ERR_40x) - pri dotazu na adresar bez lomitka na konci vraci redirektovaci 301 Moved Permanently - rozeznava uz mezi HTTP/1.0 a HTTP/1.1 - funkce compare_rfc822_dates() na porovnani datumu - diky vyse zminene funkci implementovano pouzivani If-Modified-Since, podle specifikace RFC 2616 0.1c - defaultni content-type pri nerozpoznane extenzi je text/plain - definovana konstanta VERSION - symlinky - definice pomoci klicoveho slova symlink v konfiguracnim souboru je mozno definvot jestli ma (dovnitr klece) nebo nema sledovat symlinky 0.1d - strip_extension() - opravena chyba s prasovanim jmen bez tecky - pri cteni konfiguracniho souboru jsou hlasena varovani na nezname tagy - delddot() - opraven memory leak - setgid() provaden pred setuid - v pripade prilis dlouheho requestu (GET) se vraci 404 - odstraneni dalsich memory leaku - verze v odpovedi "Server:" oddelovana lomitkem a ne mezerou - vylepsena interpretace requestu (identifikace metody) - opravena chyba s nekonzistentnim Location: u 301 - HTTP/1.0 uz vypisuje hlavicky - pridano "servername" do konfiguracniho souboru, prevazne kvuli HTTP/1.0, resp. chybejicimu host: - testovani na nalezeni do cage se provadi drive, nez je OS pozadan o otevreni souboru (zablokovani) - prichod jine metody nez GET generuje 501 0.1e - uz nezustavaji po vyrizene requestu zombie - SIGCHLD - lokalni soubor se misto fopen() a fread() cte read()em, otevreny zustava jiz od chvile kdy se vola open() kvuli fstat() - usetri se otevirani souboru - getfile zarazen do struktury klient v ramci prehlednosti a zbaveni se prilisneho mnozstvi globalnich promennych - do struktury klient pridan getfile_desc - deskriptor lokalniho souboru, ze ktereho se pri jeho existenci (odpoved 200) ma cist obsah - pridana funkce decode_hexa_octets() - provadi nahrazovani znaku v URL spcifikovanych pres "%" 0.2 - cteni hlavicek od klienta presunuto z process_request() do samostatne funkce read_headers() - funkce writeheaders() prejmenovana na genreply() - pozmenena struktura programu kolem volani fci z process_request() - snad poslouzi k zprehledneni struktury programu 0.2a - tcp_srv.c prejmenovan na japach.c - tcp_srv.h prejmenovan na japach.h - upraveno hlidani maximalniho poctu forknutych potomku - pocet akticvnich deti se snizuje v signal handling funkci f_SIGCHLD po prichodu SIGCHLD, zvysuje po uspesnem forku. - pri vypisovani souboru (http reply 200) se uz pouziva vyrovnavaci buffer a necte se to po znacich - pridelana podpora virtualhostu - pridana podpora pro metodu HEAD 0.2b - podpora headeru if-unmodified-since - ~ - pri pokusu o otevreni souboru, na ktery nema webserver prava uz nevraci 404 ale 403 0.2c - odstraneny omylem zanechane ladici vypisy na stderr - po ukonceni spojeni pri cteni hlavicek od kleinta se nezacykli read (s dusledkem existu na borken pipe) - u HTTP/1.0 se bere v uvahu host: - v textu 301 moved permanently byl omylem konec radky na nespravnem miste - osetreny problemy s cestou, ktera nezacinala lomitkem - zkraceni nekterych nadbytecny while-cyklu - potomci hlavniho procesu nereaguji na SIGHUP - dekodovani %xy se provadi pred substituci ~ - pridani osetreni chyb read()u 0.2d - 301 moved permanently - chybelo lomitko za URI - nektere z odpovedi 403 nebyly zapisovany do logu ------------------ 0.3 ----------------- - zruseni operaci s heapem v signal handlerech 0.3a - fixnuty problem s virtualhosty ------------------ 0.4 ----------------- - prechod na autoconf - spec file pro RPMka 0.4.1 - CGI metoda GET (kostra) - prepsani nekterych casti kodu + zlepseni citelnosti 0.4.2 - fixed nasty bug ;) (thx to Jbohac) 0.4.3 - started writing this in english ;) (actually in 0.4.2 ;) ) 0.4.4 to 0.4.6 - fixed a few bugs found by jbohac (thanks). Code was partially reorganized to be more readable. - fixed .spec file 0.4.7 - there was stil the bug in japach.c which caused jbohac's japach hang once a while. I hope i've definitely tracked that bastard down and killed him. Thanks again to jbohac for testing - built RH 8 RPM