kamailio.cfg: removed sample db_mode parameter for domain module
[sip-router] / tcp_init.h
1 /*
2  * $Id$
3  *
4  * Copyright (C) 2001-2003 FhG Fokus
5  *
6  * This file is part of ser, a free SIP server.
7  *
8  * ser is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version
12  *
13  * For a license to use the ser software under conditions
14  * other than those described here, or to purchase support for this
15  * software, please contact iptel.org by e-mail at the following addresses:
16  *    info@iptel.org
17  *
18  * ser is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License 
24  * along with this program; if not, write to the Free Software 
25  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
26  */
27
28 #ifndef tcp_init_h
29 #define tcp_init_h
30 #include "ip_addr.h"
31
32 #define DEFAULT_TCP_CONNECTION_LIFETIME_S 120 /* in  seconds */
33 /* maximum accepted lifetime in ticks (maximum possible is  ~ MAXINT/2) */
34 #define MAX_TCP_CON_LIFETIME    ((1U<<(sizeof(ticks_t)*8-1))-1)
35
36 #define DEFAULT_TCP_SEND_TIMEOUT 10 /* if a send can't write for more then 10s,
37                                                                            timeout */
38 #define DEFAULT_TCP_CONNECT_TIMEOUT 10 /* if a connect doesn't complete in this
39                                                                                   time, timeout */
40 #define DEFAULT_TCP_MAX_CONNECTIONS 2048 /* maximum tcp connections */
41
42 #define DEFAULT_TLS_MAX_CONNECTIONS 2048 /* maximum tls connections */
43
44 #define DEFAULT_TCP_BUF_SIZE    4096  /* buffer size used for reads */
45
46 #define DEFAULT_TCP_WBUF_SIZE   2100 /*  after debugging switch to 4-16k */
47
48 struct tcp_child{
49         pid_t pid;
50         int proc_no; /* ser proc_no, for debugging */
51         int unix_sock; /* unix "read child" sock fd */
52         int busy;
53         struct socket_info *mysocket; /* listen socket to handle traffic on it */
54         int n_reqs; /* number of requests serviced so far */
55 };
56
57 #define TCP_ALIAS_FORCE_ADD 1
58 #define TCP_ALIAS_REPLACE   2
59
60
61 int init_tcp(void);
62 void destroy_tcp(void);
63 int tcp_init(struct socket_info* sock_info);
64 int tcp_init_children(void);
65 void tcp_main_loop(void);
66 void tcp_receive_loop(int unix_sock);
67 int tcp_fix_child_sockets(int* fd);
68
69 /* sets source address used when opening new sockets and no source is specified
70  *  (by default the address is choosen by the kernel)
71  * Should be used only on init.
72  * returns -1 on error */
73 int tcp_set_src_addr(struct ip_addr* ip);
74
75 #endif