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

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