httpsrv.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. typedef struct HSPriv HSPriv;
  2. enum
  3. {
  4. HSTIMEOUT = 15 * 60 * 1000
  5. };
  6. struct HSPriv
  7. {
  8. char *remotesys;
  9. char *remoteserv;
  10. };
  11. extern int logall[3];
  12. extern char* HTTPLOG;
  13. extern char* webroot;
  14. extern char* netdir;
  15. #define STRLEN(s) (sizeof(s)-1)
  16. /* emem.c */
  17. char *estrdup(char*);
  18. void* ezalloc(ulong);
  19. /* sendfd.c */
  20. int authcheck(HConnect *c);
  21. int checkreq(HConnect *c, HContent *type, HContent *enc, long mtime, char *etag);
  22. int etagmatch(int, HETag*, char*);
  23. HRange *fixrange(HRange *h, long length);
  24. int sendfd(HConnect *c, int fd, Dir *dir, HContent *type, HContent *enc);
  25. /* content.c */
  26. void contentinit(void);
  27. HContents dataclass(HConnect *, char*, int);
  28. int updateQid(int, Qid*);
  29. HContents uriclass(HConnect *, char*);
  30. /* anonymous.c */
  31. void anonymous(HConnect*);
  32. /* hint.c */
  33. void hintprint(HConnect *hc, Hio*, char *, int, int);
  34. void statsinit(void);
  35. void urlcanon(char *url);
  36. void urlinit(void);
  37. /* init.c */
  38. HConnect* init(int, char**);
  39. vlong Bfilelen(void*);
  40. /* redirect.c */
  41. void redirectinit(void);
  42. char* redirect(HConnect *hc, char*);
  43. char* masquerade(char*);
  44. char* authrealm(HConnect *hc, char *path);
  45. /* log.c */
  46. void logit(HConnect*, char*, ...);
  47. #pragma varargck argpos logit 2
  48. void writelog(HConnect*, char*, ...);
  49. #pragma varargck argpos writelog 2
  50. /* authorize.c */
  51. int authorize(HConnect*, char*);