all: updated FSF address in GPL text
[sip-router] / modules / permissions / address.h
1 /*
2  * Header file for address.c implementing allow_address function
3  *
4  * Copyright (C) 2006 Juha Heinanen
5  *
6  * This file is part of Kamailio, a free SIP server.
7  *
8  * Kamailio 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  * Kamailio is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License 
19  * along with this program; if not, write to the Free Software 
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
21  */
22
23 #ifndef ADDRESS_H
24 #define ADDRESS_H
25                 
26 #include "../../parser/msg_parser.h"
27
28
29 /* Pointer to current address hash table pointer */
30 extern struct addr_list ***addr_hash_table; 
31
32
33 /* Pointer to current subnet table */
34 extern struct subnet **subnet_table; 
35
36
37 /* Pointer to current domain name table */
38 extern struct domain_name_list ***domain_list_table;
39
40 /*
41  * Initialize data structures
42  */
43 int init_addresses(void);
44
45
46 /*
47  * Open database connection if necessary
48  */
49 int mi_init_addresses(void);
50
51
52 /*
53  * Reload address table to new hash table and when done, make new hash table
54  * current one.
55  */
56 int reload_address_table(void);
57
58 /*
59  * Wrapper to reload addr table from mi or rpc
60  * we need to open the db_handle
61  */
62 int reload_address_table_cmd(void);
63
64 /*
65  * Close connections and release memory
66  */
67 void clean_addresses(void);
68
69
70 /*
71  * Checks if an entry exists in cached address table that belongs to a
72  * given address group and has given ip address and port.  Port value
73  * 0 in cached address table matches any port.
74  */
75 int allow_address(struct sip_msg* _msg, char* _addr_group, char* _addr_sp,
76                   char* _port_sp);
77
78
79 /*
80  * allow_source_address("group") equals to allow_address("group", "$si", "$sp")
81  * but is faster.
82  */
83 int allow_source_address(struct sip_msg* _msg, char* _addr_group, char* _str2);
84
85
86 /*
87  * Checks if source address/port is found in cached address or
88  * subnet table in any group. If yes, returns that group. If not returns -1.
89  * Port value 0 in cached address and group table matches any port.
90  */
91 int allow_source_address_group(struct sip_msg* _msg, char* _str1, char* _str2);
92
93
94 /*
95  * Checks if address/port is found in cached address or
96  * subnet table in any group. If yes, returns that group. If not returns -1.
97  * Port value 0 in cached address and group table matches any port.
98  */
99 int allow_address_group(struct sip_msg* _msg, char* _addr, char* _port);
100
101 #endif /* ADDRESS_H */