aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/network/socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/charon/network/socket.c')
-rw-r--r--src/charon/network/socket.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/charon/network/socket.c b/src/charon/network/socket.c
index e74af770e..c69f3714d 100644
--- a/src/charon/network/socket.c
+++ b/src/charon/network/socket.c
@@ -75,6 +75,11 @@
#define IPV6_2292PKTINFO 2
#endif /*IPV6_2292PKTINFO*/
+/* missing on uclibc */
+#ifndef IPV6_IPSEC_POLICY
+#define IPV6_IPSEC_POLICY 34
+#endif /*IPV6_IPSEC_POLICY*/
+
typedef struct private_socket_t private_socket_t;
/**
@@ -545,13 +550,11 @@ static int open_send_socket(private_socket_t *this, int family, u_int16_t port)
}
/* bypass outgoung IKE traffic on send socket */
+ memset(&policy, 0, sizeof(policy));
policy.sadb_x_policy_len = sizeof(policy) / sizeof(u_int64_t);
policy.sadb_x_policy_exttype = SADB_X_EXT_POLICY;
policy.sadb_x_policy_type = IPSEC_POLICY_BYPASS;
policy.sadb_x_policy_dir = IPSEC_DIR_OUTBOUND;
- policy.sadb_x_policy_reserved = 0;
- policy.sadb_x_policy_id = 0;
- policy.sadb_x_policy_priority = 0;
if (setsockopt(skt, sol, ipsec_policy, &policy, sizeof(policy)) < 0)
{
@@ -687,13 +690,11 @@ static int open_recv_socket(private_socket_t *this, int family)
}
/* bypass incomining IKE traffic on this socket */
+ memset(&policy, 0, sizeof(policy));
policy.sadb_x_policy_len = sizeof(policy) / sizeof(u_int64_t);
policy.sadb_x_policy_exttype = SADB_X_EXT_POLICY;
policy.sadb_x_policy_type = IPSEC_POLICY_BYPASS;
policy.sadb_x_policy_dir = IPSEC_DIR_INBOUND;
- policy.sadb_x_policy_reserved = 0;
- policy.sadb_x_policy_id = 0;
- policy.sadb_x_policy_priority = 0;
if (setsockopt(skt, sol, ipsec_policy, &policy, sizeof(policy)) < 0)
{