1 typedef struct HSPriv HSPriv;
5 HSTIMEOUT = 15 * 60 * 1000,
7 /* rewrite replacement field modifiers */
8 Modsilent = '@', /* don't tell the browser about the redirect. */
9 Modperm = '=', /* generate permanent redirection */
10 Modsubord = '*', /* map page & all subordinates to same URL */
11 Modonly = '>', /* match only this page, not subordinates */
30 #define STRLEN(s) (sizeof(s)-1)
37 int authcheck(HConnect *c);
38 int checkreq(HConnect *c, HContent *type, HContent *enc, long mtime, char *etag);
39 int etagmatch(int, HETag*, char*);
40 HRange *fixrange(HRange *h, long length);
41 int sendfd(HConnect *c, int fd, Dir *dir, HContent *type, HContent *enc);
44 void contentinit(void);
45 HContents dataclass(HConnect *, char*, int);
46 int updateQid(int, Qid*);
47 HContents uriclass(HConnect *, char*);
50 void anonymous(HConnect*);
53 void hintprint(HConnect *hc, Hio*, char *, int, int);
55 void urlcanon(char *url);
59 HConnect* init(int, char**);
61 vlong Bfilelen(void*);
64 void redirectinit(void);
65 char* redirect(HConnect *hc, char*, uint *);
66 char* masquerade(char*);
67 char* authrealm(HConnect *hc, char *path);
68 char *undecorated(char *repl);
71 void logit(HConnect*, char*, ...);
72 #pragma varargck argpos logit 2
73 void writelog(HConnect*, char*, ...);
74 #pragma varargck argpos writelog 2
77 int authorize(HConnect*, char*);