Commit | Line | Data |
---|---|---|
672dbb8f FT |
1 | /* |
2 | * Dolda Connect - Modular multiuser Direct Connect-style client | |
302a2600 | 3 | * Copyright (C) 2007 Fredrik Tolf <fredrik@dolda2000.com> |
672dbb8f FT |
4 | * |
5 | * This program is free software; you can redistribute it and/or modify | |
6 | * it under the terms of the GNU General Public License as published by | |
7 | * the Free Software Foundation; either version 2 of the License, or | |
8 | * (at your option) any later version. | |
9 | * | |
10 | * This program is distributed in the hope that it will be useful, | |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | * GNU General Public License for more details. | |
14 | * | |
15 | * You should have received a copy of the GNU General Public License | |
16 | * along with this program; if not, write to the Free Software | |
17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | */ | |
19 | ||
95c14b73 | 20 | #ifndef _HTTP_H |
672dbb8f FT |
21 | #define _HTTP_H |
22 | ||
f4663439 FT |
23 | #include <netdb.h> |
24 | ||
2b6703ac FT |
25 | #include "utils.h" |
26 | ||
672dbb8f FT |
27 | struct hturlinfo { |
28 | char *host; | |
29 | int port; | |
95c14b73 FT |
30 | char *path; |
31 | char *query; | |
47359765 | 32 | char *fragment; |
672dbb8f FT |
33 | }; |
34 | ||
35 | struct htconn { | |
f4663439 | 36 | int state; |
672dbb8f | 37 | int fd; |
f4663439 | 38 | struct addrinfo *ailist, *curai; |
2b6703ac | 39 | char *outbuf, *inbuf, *databuf; |
672dbb8f FT |
40 | size_t outbufsize, outbufdata; |
41 | size_t inbufsize, inbufdata; | |
2b6703ac | 42 | size_t databufsize, databufdata; |
672dbb8f | 43 | struct hturlinfo *url; |
2b6703ac FT |
44 | int rescode; |
45 | char *resstr; | |
46 | struct strpair *headers; | |
47 | ssize_t tlen, rxd, chl; | |
672dbb8f FT |
48 | }; |
49 | ||
50 | struct htcookie { | |
51 | struct htcookie *next; | |
52 | char *name, *val; | |
53 | }; | |
54 | ||
f4663439 FT |
55 | struct hturlinfo *parseurl(char *url); |
56 | void freeurl(struct hturlinfo *ui); | |
2b6703ac | 57 | void freehtconn(struct htconn *cn); |
f4663439 FT |
58 | struct htconn *htconnect(struct hturlinfo *ui); |
59 | int htpollflags(struct htconn *hc); | |
2b6703ac | 60 | int htprocess(struct htconn *hc, int pollflags); |
f4663439 | 61 | |
672dbb8f | 62 | #endif |