ims_ipsec_pcscf: fixed possible use of uninitialized value in ipsec_forward()
[sip-router] / src / modules / ims_ipsec_pcscf / ipsec.h
1 /*
2  * IMS IPSEC PCSCF module
3  *
4  * Copyright (C) 2018 Alexander Yosifov
5  * Copyright (C) 2018 Tsvetomir Dimitrov
6  *
7  * This file is part of Kamailio, a free SIP server.
8  *
9  * Kamailio 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  * Kamailio is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
22  *
23  */
24
25 #ifndef IMS_IPSEC_PCSCF_IPSEC
26 #define IMS_IPSEC_PCSCF_IPSEC
27
28 #include "../../core/str.h"
29 #include "../../core/ip_addr.h"
30
31
32 struct mnl_socket;
33
34 enum ipsec_policy_direction {
35     IPSEC_POLICY_DIRECTION_IN = 0,
36     IPSEC_POLICY_DIRECTION_OUT = 1
37 };
38
39
40 struct mnl_socket* init_mnl_socket();
41 void close_mnl_socket(struct mnl_socket* sock);
42 unsigned short kamailio_to_linux_proto(const unsigned short kamailio_proto);
43
44
45 int add_sa(struct mnl_socket* nl_sock, unsigned short proto, const struct ip_addr *src_addr_param, const struct ip_addr *dest_addr_param, int s_port, int d_port, int long id, str ck, str ik, str r_alg);
46 int remove_sa(struct mnl_socket* nl_sock, str src_addr_param, str dest_addr_param, int s_port, int d_port, int long id);
47
48 int add_policy(struct mnl_socket* mnl_socket, unsigned short proto, const struct ip_addr *src_addr_param, const struct ip_addr *dest_addr_param, int src_port, int dst_port, int long p_id, enum ipsec_policy_direction dir);
49 int remove_policy(struct mnl_socket* mnl_socket,  unsigned short proto, str src_addr_param, str dest_addr_param, int src_port, int dst_port, int long p_id, enum ipsec_policy_direction dir);
50
51 int clean_sa(struct mnl_socket*  mnl_socket);
52 int clean_policy(struct mnl_socket*  mnl_socket);
53
54 #endif /* IMS_IPSEC_PCSCF_IPSEC */