home *** CD-ROM | disk | FTP | other *** search
- library LogDevNull;
- {******************************************************
- * Knihovna PinkNet Web Serveru - Open Source Part *
- * *
- * Tato knihovna neloguje nikam. Odtud nazev DevNull. *
- * Jo, vlastne loguje - do linuxoveho zarizeni: *
- * /dev/null *
- * *
- * Dokumentace je na adrese http://pnws.pinknet.cz/ *
- * *
- * Copyright ⌐1999, Tomas Rosa, Tomas.Rosa@pinknet.cz *
- * *
- ******************************************************}
-
- {uses
- SysUtils;}
-
- type PSvrNames=^TSvrNames;
- TSvrNames=record
- svrname:ShortString;
- next:PSvrNames;
- end;
-
- var FSvrNames:PSvrNames;
-
- //LogPath je cesta k logum tak jak je nastavena v setupu
- //NeedTimer je TRUE, pokud knihovna chce casovani na ukladani dat
- // FALSE, pokud nic nechce, zapisuje to hned
- //NewLog je TRUE, pokud se logy maji pri startu vycistit
- //Funkce vraci TRUE, pokud se podarilo inicializovat
- function LogDllInit(logpath:ShortString;var needtimer:boolean;svrnames:PSvrNames;newlog:boolean):boolean; stdcall;
- begin
- Result:=true;
- NeedTimer:=false;
- end;
-
- //Ukonci logovaci knihovnu. Nelze odlozit, knihovna se musi ukoncit hned
- procedure LogDllDone; stdcall;
- var x:PSvrNames;
- begin
- //Zlikviduj seznam serveru
- while FSvrNames<>nil do
- begin
- x:=FSvrNames^.next;
- FreeMem(FSvrNames,sizeof(TSvrNames));
- FSvrNames:=x;
- end;
- end;
-
- //Prida zaznam pristupu do logu
- { Vyznam polozek:
- svrname - jmeno serveru, ktereho se to tyka
- from_ip - z jake IP adresy uzivatel prisel
- auth_user - jak se prihlasil, pokud byl soubor zabespecen
- gmt_date - datum a cas ve formatu GMT
- request - prvni radek pozadavku "GET / HTTP/1.0"
- referer - odkud prisel
- agent - co pouzil za prohlizec
- code - kod, kterym odpovedel server (200-OK, 404-Not Found,..)
- bytes - kolik dat bylo preneseno, nebo -1, pokud to nelze zjistit
- //Vraci TRUE, pokud se povedlo }
- function LogDllAddAccess(svrname,from_ip,auth_user,gmt_date,request,
- referer,agent:ShortString;code,bytes:Integer):boolean; stdcall;
- begin
- Result:=true;
- end;
-
- //Prida zaznam chyby do logu
- { Vyznam polozek:
- msg - chybova hlaska, ktera se ma zaznamenat
- gmt_date - datum a cas ve formatu GMT
- //Vraci TRUE, pokud se povedlo }
- function LogDllAddError(msg,gmt_date:ShortString):boolean; stdcall;
- begin
- Result:=true;
- end;
-
- //Pokud si Funkce LOGDLLINIT vyzadala casovac, bude volana
- //tato funkce pro ulozeni zaznamu na disk. Je nutne, aby ukladani
- //na disk bylo nezavisle na zbylych funkcich, ktere jsou volany
- //nezavisle a asynchrone. Je tedy mozne zavolat vsechny funkce naraz
- //Vraci TRUE, pokud se povedlo
- function LogDllTimer:boolean; stdcall;
- begin
- Result:=true;
- end;
-
- //Nejaky info o knihovne a autorovi
- function LogDllAbout:ShortString; stdcall;
- begin
- result:='<b>LogDevNull 2000</b> Copyright ©1999 <a href="mailto:Tomas.Rosa@pinknet.cz">'+
- 'Tomas Rosa</a>, <a href="http://ws.pinknet.cz">PinkNet Web Server</a>. '+
- '<i>Saves server logs in /dev/null</i>';
- end;
-
- exports
- LogDllAbout,
- LogDllTimer,
- LogDllAddError,
- LogDllAddAccess,
- LogDllDone,
- LogDllInit;
-
- end.
-