no preallocating if there's no state file
[syren.git] / src / syren_proxy.h
blob89e30fae769885fe8650b807c218043a9b566720
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 proxy connections (HTTP CONNECT, SOCKS)
25 #ifndef _SYREN_PROXY_H
26 #define _SYREN_PROXY_H
28 #include "syren_os.h"
29 #include "syren_common.h"
30 #include "syren_msg.h"
31 #include "syren_str.h"
32 #include "syren_tcp.h"
33 #include "syren_hdrs.h"
34 #include "syren_http.h"
37 typedef enum {
38 SY_PROXY_NONE=-1,
39 SY_PROXY_HTTP=0,
40 SY_PROXY_HTTP_CONNECT,
41 SY_PROXY_SOCKS,
43 SY_PROXY_MAX = SY_PROXY_SOCKS
44 } TSyProxyType;
47 typedef struct {
48 TSyURL *url;
49 TSyProxyType ptype;
50 char *userAgent; /* for HTTP CONNECT */
52 int retCode; /* for HTTP CONNECT or SOCKS */
53 } TSyProxy;
56 TSyProxy *SyProxyNew (const TSyURL *url, TSyProxyType ptype, const char *userAgent);
57 void SyProxyFree (TSyProxy *proxy);
59 TSyResult SyProxyConnect (TSySocket *fd, TSyProxy *proxy, const char *host, int port, const TSyPrintStr *pfn);
62 #endif