wwwoffle.h
上传用户:seven77cht
上传日期:2007-01-04
资源大小:486k
文件大小:6k
源码类别:

浏览器

开发平台:

Unix_Linux

  1. /***************************************
  2.   $Header: /home/amb/wwwoffle/RCS/wwwoffle.h 2.66 1999/11/19 09:24:23 amb Exp $
  3.   WWWOFFLE - World Wide Web Offline Explorer - Version 2.5c.
  4.   A header file for all of the programs wwwoffle, wwwoffled.
  5.   ******************/ /******************
  6.   Written by Andrew M. Bishop
  7.   This file Copyright 1996,97,98,99 Andrew M. Bishop
  8.   It may be distributed under the GNU Public License, version 2, or
  9.   any higher version.  See section COPYING of the GNU Public license
  10.   for conditions under which this file may be redistributed.
  11.   ***************************************/
  12. #ifndef WWWOFFLE_H
  13. #define WWWOFFLE_H    /*+ To stop multiple inclusions. +*/
  14. /* ------------------------------------------------------------
  15.    The values in the section below can be changed if required, see INSTALL. */
  16. /*+ The default port number to use for the http proxy demon. +*/
  17. #define DEF_HTTP_PORT 8080
  18. /*+ The default port number to use for the wwwoffle control. +*/
  19. #define DEF_WWWOFFLE_PORT 8081
  20. /*+ The default spool directory. +*/
  21. #define DEF_SPOOL "/var/spool/wwwoffle"
  22. /*+ The default configuration file directory. +*/
  23. #define DEF_CONF "/var/spool/wwwoffle"
  24. /*+ The absolute maximum number of servers to fork in total. +*/
  25. #define MAX_SERVERS 64
  26. /*+ The default total number of servers to fork. +*/
  27. #define DEF_MAX_SERVERS 8
  28. /*+ The absolute maximum number of servers to fork for fetching previously requested pages. +*/
  29. #define MAX_FETCH_SERVERS 48
  30. /*+ The default number of servers to fork for fetching pages. +*/
  31. #define DEF_MAX_FETCH_SERVERS 4
  32. /*+ The number of pretime directories to create (lasttime history). +*/
  33. #define NUM_PREVTIME_DIR 3
  34. /* If this is changed then to see the links to them you will need to edit
  35.    /var/spool/wwwoffle/html/messages/IndexLastTime-Tail.html. */
  36. /*+ The size of the buffer to use when reading from the cache or a socket. +*/
  37. #define READ_BUFFER_SIZE 1024
  38. /*+ The default permission for creating directories. +*/
  39. #define DEF_DIR_PERM  0755
  40. /*+ The default permission for creating files. +*/
  41. #define DEF_FILE_PERM 0644
  42. /* The values in the section above can be changed if required, see INSTALL.
  43.    ------------------------------------------------------------ */
  44. #include <time.h>
  45. #include "misc.h"
  46. /* In connect.c */
  47. void CommandConnect(int client);
  48. void ForkServer(int client,int browser);
  49. /* In purge.c */
  50. void PurgeCache(int fd);
  51. /* In spool.c */
  52. int OpenOutgoingSpoolFile(int rw);
  53. void CloseOutgoingSpoolFile(int fd,URL *Url);
  54. int ExistsOutgoingSpoolFile(URL *Url);
  55. char *HashOutgoingSpoolFile(URL *Url);
  56. char *DeleteOutgoingSpoolFile(URL *Url);
  57. int OpenWebpageSpoolFile(int rw,URL *Url);
  58. char *DeleteWebpageSpoolFile(URL *Url,int all);
  59. void TouchWebpageSpoolFile(URL *Url,time_t when);
  60. time_t ExistsWebpageSpoolFile(URL *Url);
  61. void CreateBackupWebpageSpoolFile(URL *Url);
  62. void RestoreBackupWebpageSpoolFile(URL *Url);
  63. void DeleteBackupWebpageSpoolFile(URL *Url);
  64. void CreateLockWebpageSpoolFile(URL *Url);
  65. void DeleteLockWebpageSpoolFile(URL *Url);
  66. int ExistsLockWebpageSpoolFile(URL *Url);
  67. int CreateLastTimeSpoolFile(URL *Url);
  68. char *DeleteLastTimeSpoolFile(URL *Url);
  69. int ExistsLastTimeSpoolFile(URL *Url);
  70. void CycleLastTimeSpoolFile(void);
  71. int CreateMonitorSpoolFile(URL *Url,char MofY[13],char DofM[32],char DofW[8],char HofD[25]);
  72. long ReadMonitorTimesSpoolFile(URL *Url,char MofY[13],char DofM[32],char DofW[8],char HofD[25]);
  73. char *DeleteMonitorSpoolFile(URL *Url);
  74. int CreateTempSpoolFile(void);
  75. void CloseTempSpoolFile(int fd);
  76. char *FileNameToURL(char *file);
  77. char *URLToFileName(URL *Url);
  78. /* In parse.c */
  79. char *ParseRequest(int fd,Header **request_head,Body **request_body);
  80. int RequestChanges(int fd,Header *request_head);
  81. char *MovedLocation(URL *Url,Header *reply_head);
  82. Header *RequestURL(URL *Url,char *referer);
  83. void ModifyRequest(URL *Url,Header *request_head);
  84. void MakeRequestAuthorised(char *proxy,Header *request_head);
  85. void MakeRequestNonProxy(Header *request_head);
  86. int ParseReply(int fd,URL *Url,Header **reply_head);
  87. int SpooledPageStatus(URL *Url);
  88. void ModifyReply(Header *reply_head);
  89. Header *CreateHeader(char *line,int type);
  90. void AddToHeader(Header *head,char *key,char *val);
  91. void RemoveFromHeader(Header *head,char* key,char *val);
  92. char *GetHeader(Header *head,char* key,char *val);
  93. char *HeaderString(Header *head);
  94. void FreeHeader(Header *head);
  95. Body *CreateBody(int length);
  96. void FreeBody(Body *body);
  97. /* In messages.c (messages.l) */
  98. void LocalPage(int fd,char *path,Header *request_head);
  99. char *HTMLMessage(int fd,int status_val,char *status_str,char *location,char *template, ...);
  100. char *HTMLMessageHead(int fd,int status_val,char *status_str, ...);
  101. char *HTMLMessageBody(int fd,char *template, ...);
  102. /* In index.c */
  103. void IndexPage(int fd,URL *Url);
  104. /* In control.c */
  105. void ControlPage(int fd,URL *Url,Header *request_head,Body *request_body);
  106. /* In configedit.c */
  107. void ConfigEditPage(int fd,char *args,Body *request_body);
  108. /* In refresh.c */
  109. char *RefreshPage(int fd,URL *Url,Body *request_body,int *recurse);
  110. void ParseRecurseOptions(char *method);
  111. int RecurseFetch(URL *Url,int new);
  112. int RecurseFetchRelocation(URL *Url,char *location);
  113. char *CreateRefreshPath(int recursive_depth,int recursive_mode,int force,
  114.                         int stylesheets,int images,int frames,int scripts,int objects);
  115. int RefreshForced(void);
  116. /* In monitor.c */
  117. void MonitorPage(int fd,URL *Url,Body *request_body);
  118. void RequestMonitoredPages(void);
  119. void MonitorTimes(URL *Url,int *last,int *next);
  120. /* In wwwoffles.c */
  121. int wwwoffles(int online,int browser,int client);
  122. /* In htdig.c */
  123. void HTDigPage(int fd,URL *Url,Header *head);
  124. #endif /* WWWOFFLE_H */