home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 April / PCWorld_2000-04_cd.bin / Komunik / Servery / PinkNet / pnws1076prof.exe / file0135.bin < prev    next >
Encoding:
Text File  |  2000-03-12  |  3.6 KB  |  105 lines

  1. library LogDevNull;
  2. {******************************************************
  3.  *  Knihovna PinkNet Web Serveru - Open Source Part   *
  4.  *                                                    *
  5.  * Tato knihovna neloguje nikam. Odtud nazev DevNull. *
  6.  * Jo, vlastne loguje - do linuxoveho zarizeni:       *
  7.  *                    /dev/null                       *
  8.  *                                                    *
  9.  * Dokumentace je na adrese http://pnws.pinknet.cz/   *
  10.  *                                                    *
  11.  * Copyright ⌐1999, Tomas Rosa, Tomas.Rosa@pinknet.cz *
  12.  *                                                    *
  13.  ******************************************************}
  14.  
  15. {uses
  16.   SysUtils;}
  17.  
  18. type PSvrNames=^TSvrNames;
  19.      TSvrNames=record
  20.         svrname:ShortString;
  21.         next:PSvrNames;
  22.      end;
  23.  
  24. var FSvrNames:PSvrNames;
  25.  
  26. //LogPath je cesta k logum tak jak je nastavena v setupu
  27. //NeedTimer je TRUE, pokud knihovna chce casovani na ukladani dat
  28. //             FALSE, pokud nic nechce, zapisuje to hned
  29. //NewLog je TRUE, pokud se logy maji pri startu vycistit
  30. //Funkce vraci TRUE, pokud se podarilo inicializovat
  31. function LogDllInit(logpath:ShortString;var needtimer:boolean;svrnames:PSvrNames;newlog:boolean):boolean; stdcall;
  32. begin
  33.    Result:=true;
  34.    NeedTimer:=false;
  35. end;
  36.  
  37. //Ukonci logovaci knihovnu. Nelze odlozit, knihovna se musi ukoncit hned
  38. procedure LogDllDone; stdcall;
  39. var x:PSvrNames;
  40. begin
  41.    //Zlikviduj seznam serveru
  42.    while FSvrNames<>nil do
  43.    begin
  44.       x:=FSvrNames^.next;
  45.       FreeMem(FSvrNames,sizeof(TSvrNames));
  46.       FSvrNames:=x;
  47.    end;
  48. end;
  49.  
  50. //Prida zaznam pristupu do logu
  51. { Vyznam polozek:
  52.                  svrname   - jmeno serveru, ktereho se to tyka
  53.                  from_ip   - z jake IP adresy uzivatel prisel
  54.                  auth_user - jak se prihlasil, pokud byl soubor zabespecen
  55.                  gmt_date  - datum a cas ve formatu GMT
  56.                  request   - prvni radek pozadavku "GET / HTTP/1.0"
  57.                  referer   - odkud prisel
  58.                  agent     - co pouzil za prohlizec
  59.                  code      - kod, kterym odpovedel server (200-OK, 404-Not Found,..)
  60.                  bytes     - kolik dat bylo preneseno, nebo -1, pokud to nelze zjistit
  61. //Vraci TRUE, pokud se povedlo         }
  62. function LogDllAddAccess(svrname,from_ip,auth_user,gmt_date,request,
  63.                          referer,agent:ShortString;code,bytes:Integer):boolean; stdcall;
  64. begin
  65.    Result:=true;
  66. end;
  67.  
  68. //Prida zaznam chyby do logu
  69. { Vyznam polozek:
  70.                  msg       - chybova hlaska, ktera se ma zaznamenat
  71.                  gmt_date  - datum a cas ve formatu GMT
  72. //Vraci TRUE, pokud se povedlo         }
  73. function LogDllAddError(msg,gmt_date:ShortString):boolean; stdcall;
  74. begin
  75.    Result:=true;
  76. end;
  77.  
  78. //Pokud si Funkce LOGDLLINIT vyzadala casovac, bude volana
  79. //tato funkce pro ulozeni zaznamu na disk. Je nutne, aby ukladani
  80. //na disk bylo nezavisle na zbylych funkcich, ktere jsou volany
  81. //nezavisle a asynchrone. Je tedy mozne zavolat vsechny funkce naraz
  82. //Vraci TRUE, pokud se povedlo
  83. function LogDllTimer:boolean; stdcall;
  84. begin
  85.    Result:=true;
  86. end;
  87.  
  88. //Nejaky info o knihovne a autorovi
  89. function LogDllAbout:ShortString; stdcall;
  90. begin
  91.    result:='<b>LogDevNull 2000</b> Copyright ©1999 <a href="mailto:Tomas.Rosa@pinknet.cz">'+
  92.            'Tomas Rosa</a>, <a href="http://ws.pinknet.cz">PinkNet Web Server</a>. '+
  93.            '<i>Saves server logs in /dev/null</i>';
  94. end;
  95.  
  96. exports
  97.    LogDllAbout,
  98.    LogDllTimer,
  99.    LogDllAddError,
  100.    LogDllAddAccess,
  101.    LogDllDone,
  102.    LogDllInit;
  103.  
  104. end.
  105.