f2aa221b85f20a9faf22c81b33e21d358ea3b8e6
[sip-router] / proxy.h
1 /*
2  * $Id$
3  *
4  *
5  * Copyright (C) 2001-2003 Fhg Fokus
6  *
7  * This file is part of ser, a free SIP server.
8  *
9  * ser is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version
13  *
14  * For a license to use the ser software under conditions
15  * other than those described here, or to purchase support for this
16  * software, please contact iptel.org by e-mail at the following addresses:
17  *    info@iptel.org
18  *
19  * ser is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22  * GNU General Public License for more details.
23  *
24  * You should have received a copy of the GNU General Public License 
25  * along with this program; if not, write to the Free Software 
26  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
27  */
28  /*
29   * History:
30   * -------
31   *  2003-02-13  added proto to struct proxy_l & to *_proxy fucntions (andrei)
32   */
33
34
35 #ifndef proxy_h
36 #define proxy_h
37
38 #include <netdb.h>
39 #include "ip_addr.h"
40 #include "str.h"
41
42 struct proxy_l{
43         struct proxy_l* next;
44         str name; /* original name */
45         struct hostent host; /* addresses */
46         unsigned short port;
47         unsigned short reserved; /*align*/
48         int proto;
49         
50         /* socket ? */
51
52         int addr_idx;   /* crt. addr. idx. */
53         int ok; /* 0 on error */
54         /*statisticis*/
55         int tx;
56         int tx_bytes;
57         int errors;
58 };
59
60 extern struct proxy_l* proxies;
61
62 struct proxy_l* add_proxy(str* name, unsigned short port, int proto);
63 struct proxy_l* mk_proxy(str* name, unsigned short port, int proto);
64 struct proxy_l* mk_proxy_from_ip(struct ip_addr* ip, unsigned short port,
65                                                                         int proto);
66 void free_proxy(struct proxy_l* p);
67
68
69 #endif
70