build system changed
[syren.git] / src / syren_hdrs.h
blob6f1ed3e3a028c27eac6cff4a98c961f8a0ecbd2f
1 /*
2 Syren -- a lightweight downloader for Linux/BSD/MacOSX
3 inspired by Axel Copyright 2001-2002 Wilmer van der Gaast
4 version 0.0.6 (atomic alien)
5 coded by Ketmar // Avalon Group
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License with
18 the Debian GNU/Linux distribution in file /usr/doc/copyright/GPL;
19 if not, write to the Free Software Foundation, Inc., 59 Temple Place,
20 Suite 330, Boston, MA 02111-1307 USA
23 Syren HTTP headers list
25 #ifndef _SYREN_HDRS_H
26 #define _SYREN_HDRS_H
29 #include "syren_os.h"
30 #include "syren_common.h"
31 #include "syren_str.h"
34 typedef enum {
35 SY_HDR_INVALID=-1,
36 SY_HDR_REQUEST=0,
37 SY_HDR_REPLY
38 } TSyHdrType;
41 typedef struct {
42 TSyKVList *fields;
43 TSyHdrType type;
44 char *firstLine;
45 int code; /* parsed status code for HTTP reply; -1 for request */
46 } TSyHdrs;
50 TSyHdrs *SyHdrNew (void);
51 void SyHdrFree (TSyHdrs *hdr);
52 void SyHdrClear (TSyHdrs *hdr, TSyHdrType type);
54 /* add line, parse it, set "status" if necessary */
55 TSyResult SyHdrAddLine (TSyHdrs *hdr, const char *line);
57 char *SyHdrGetFieldValue (const TSyHdrs *hdr, const char *name);
58 TSyResult SyHdrDeleteField (TSyHdrs *hdr, const char *name);
59 /* set field; correctly processes "Set-Cookie" and "Cookie" */
60 TSyResult SyHdrSetFieldValue (TSyHdrs *hdr, const char *name, const char *value);
62 TSyKVList *SyHdrFindCookieList (const TSyHdrs *hdr);
64 /* return NULL or new string */
65 char *SyHdrGetCookie (const TSyHdrs *hdr, const char *name);
66 void SyHdrDeleteCookie (TSyHdrs *hdr, const char *name);
68 TSyResult SyHdrSetCookie (TSyHdrs *hdr, const char *value);
71 #endif