summaryrefslogtreecommitdiff
path: root/src/libcharon/plugins/ha
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcharon/plugins/ha')
-rw-r--r--src/libcharon/plugins/ha/Makefile.in9
-rw-r--r--src/libcharon/plugins/ha/ha_ctl.c16
-rw-r--r--src/libcharon/plugins/ha/ha_dispatcher.c12
-rw-r--r--src/libcharon/plugins/ha/ha_segments.c19
-rw-r--r--src/libcharon/plugins/ha/ha_socket.c16
-rw-r--r--src/libcharon/plugins/ha/ha_tunnel.c5
6 files changed, 77 insertions, 0 deletions
diff --git a/src/libcharon/plugins/ha/Makefile.in b/src/libcharon/plugins/ha/Makefile.in
index 3600eb7c6..8be700808 100644
--- a/src/libcharon/plugins/ha/Makefile.in
+++ b/src/libcharon/plugins/ha/Makefile.in
@@ -222,9 +222,13 @@ includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
ipsecdir = @ipsecdir@
+<<<<<<< HEAD
ipsecgid = @ipsecgid@
ipsecgroup = @ipsecgroup@
ipsecuid = @ipsecuid@
+=======
+ipsecgroup = @ipsecgroup@
+>>>>>>> upstream/4.5.1
ipsecuser = @ipsecuser@
libcharon_plugins = @libcharon_plugins@
libdir = @libdir@
@@ -263,6 +267,11 @@ sbindir = @sbindir@
scepclient_plugins = @scepclient_plugins@
scripts_plugins = @scripts_plugins@
sharedstatedir = @sharedstatedir@
+<<<<<<< HEAD
+=======
+soup_CFLAGS = @soup_CFLAGS@
+soup_LIBS = @soup_LIBS@
+>>>>>>> upstream/4.5.1
srcdir = @srcdir@
strongswan_conf = @strongswan_conf@
sysconfdir = @sysconfdir@
diff --git a/src/libcharon/plugins/ha/ha_ctl.c b/src/libcharon/plugins/ha/ha_ctl.c
index 980c0551a..698f73e12 100644
--- a/src/libcharon/plugins/ha/ha_ctl.c
+++ b/src/libcharon/plugins/ha/ha_ctl.c
@@ -21,8 +21,13 @@
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
+<<<<<<< HEAD
#include <pthread.h>
+=======
+
+#include <threading/thread.h>
+>>>>>>> upstream/4.5.1
#include <processing/jobs/callback_job.h>
#define HA_FIFO IPSEC_PIDDIR "/charon.ha"
@@ -60,6 +65,7 @@ struct private_ha_ctl_t {
*/
static job_requeue_t dispatch_fifo(private_ha_ctl_t *this)
{
+<<<<<<< HEAD
int fifo, old;
char buf[8];
u_int segment;
@@ -67,6 +73,16 @@ static job_requeue_t dispatch_fifo(private_ha_ctl_t *this)
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &old);
fifo = open(HA_FIFO, O_RDONLY);
pthread_setcancelstate(old, NULL);
+=======
+ int fifo;
+ bool oldstate;
+ char buf[8];
+ u_int segment;
+
+ oldstate = thread_cancelability(TRUE);
+ fifo = open(HA_FIFO, O_RDONLY);
+ thread_cancelability(oldstate);
+>>>>>>> upstream/4.5.1
if (fifo == -1)
{
DBG1(DBG_CFG, "opening HA fifo failed: %s", strerror(errno));
diff --git a/src/libcharon/plugins/ha/ha_dispatcher.c b/src/libcharon/plugins/ha/ha_dispatcher.c
index b46a221bd..1015c65d0 100644
--- a/src/libcharon/plugins/ha/ha_dispatcher.c
+++ b/src/libcharon/plugins/ha/ha_dispatcher.c
@@ -596,9 +596,15 @@ static void process_child_add(private_ha_dispatcher_t *this,
if (initiator)
{
if (child_sa->install(child_sa, encr_r, integ_r, inbound_spi,
+<<<<<<< HEAD
inbound_cpi, TRUE, local_ts, remote_ts) != SUCCESS ||
child_sa->install(child_sa, encr_i, integ_i, outbound_spi,
outbound_cpi, FALSE, local_ts, remote_ts) != SUCCESS)
+=======
+ inbound_cpi, TRUE, TRUE, local_ts, remote_ts) != SUCCESS ||
+ child_sa->install(child_sa, encr_i, integ_i, outbound_spi,
+ outbound_cpi, FALSE, TRUE, local_ts, remote_ts) != SUCCESS)
+>>>>>>> upstream/4.5.1
{
failed = TRUE;
}
@@ -606,9 +612,15 @@ static void process_child_add(private_ha_dispatcher_t *this,
else
{
if (child_sa->install(child_sa, encr_i, integ_i, inbound_spi,
+<<<<<<< HEAD
inbound_cpi, TRUE, local_ts, remote_ts) != SUCCESS ||
child_sa->install(child_sa, encr_r, integ_r, outbound_spi,
outbound_cpi, FALSE, local_ts, remote_ts) != SUCCESS)
+=======
+ inbound_cpi, TRUE, TRUE, local_ts, remote_ts) != SUCCESS ||
+ child_sa->install(child_sa, encr_r, integ_r, outbound_spi,
+ outbound_cpi, FALSE, TRUE, local_ts, remote_ts) != SUCCESS)
+>>>>>>> upstream/4.5.1
{
failed = TRUE;
}
diff --git a/src/libcharon/plugins/ha/ha_segments.c b/src/libcharon/plugins/ha/ha_segments.c
index 19e0f692e..a83c1fd43 100644
--- a/src/libcharon/plugins/ha/ha_segments.c
+++ b/src/libcharon/plugins/ha/ha_segments.c
@@ -15,11 +15,18 @@
#include "ha_segments.h"
+<<<<<<< HEAD
#include <pthread.h>
#include <threading/mutex.h>
#include <threading/condvar.h>
#include <utils/linked_list.h>
+=======
+#include <threading/mutex.h>
+#include <threading/condvar.h>
+#include <utils/linked_list.h>
+#include <threading/thread.h>
+>>>>>>> upstream/4.5.1
#include <processing/jobs/callback_job.h>
#define DEFAULT_HEARTBEAT_DELAY 1000
@@ -255,6 +262,7 @@ METHOD(listener_t, alert_hook, bool,
*/
static job_requeue_t watchdog(private_ha_segments_t *this)
{
+<<<<<<< HEAD
int oldstate;
bool timeout;
@@ -265,6 +273,17 @@ static job_requeue_t watchdog(private_ha_segments_t *this)
this->heartbeat_timeout);
pthread_setcancelstate(oldstate, NULL);
pthread_cleanup_pop(TRUE);
+=======
+ bool timeout, oldstate;
+
+ this->mutex->lock(this->mutex);
+ thread_cleanup_push((void*)this->mutex->unlock, this->mutex);
+ oldstate = thread_cancelability(TRUE);
+ timeout = this->condvar->timed_wait(this->condvar, this->mutex,
+ this->heartbeat_timeout);
+ thread_cancelability(oldstate);
+ thread_cleanup_pop(TRUE);
+>>>>>>> upstream/4.5.1
if (timeout)
{
DBG1(DBG_CFG, "no heartbeat received, taking all segments");
diff --git a/src/libcharon/plugins/ha/ha_socket.c b/src/libcharon/plugins/ha/ha_socket.c
index 614c70ed3..29734bea3 100644
--- a/src/libcharon/plugins/ha/ha_socket.c
+++ b/src/libcharon/plugins/ha/ha_socket.c
@@ -20,10 +20,17 @@
#include <sys/socket.h>
#include <errno.h>
#include <unistd.h>
+<<<<<<< HEAD
#include <pthread.h>
#include <daemon.h>
#include <utils/host.h>
+=======
+
+#include <daemon.h>
+#include <utils/host.h>
+#include <threading/thread.h>
+>>>>>>> upstream/4.5.1
#include <processing/jobs/callback_job.h>
typedef struct private_ha_socket_t private_ha_socket_t;
@@ -121,12 +128,21 @@ METHOD(ha_socket_t, pull, ha_message_t*,
{
ha_message_t *message;
char buf[1024];
+<<<<<<< HEAD
int oldstate;
ssize_t len;
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &oldstate);
len = recv(this->fd, buf, sizeof(buf), 0);
pthread_setcancelstate(oldstate, NULL);
+=======
+ bool oldstate;
+ ssize_t len;
+
+ oldstate = thread_cancelability(TRUE);
+ len = recv(this->fd, buf, sizeof(buf), 0);
+ thread_cancelability(oldstate);
+>>>>>>> upstream/4.5.1
if (len <= 0)
{
switch (errno)
diff --git a/src/libcharon/plugins/ha/ha_tunnel.c b/src/libcharon/plugins/ha/ha_tunnel.c
index fef84a430..6021ece01 100644
--- a/src/libcharon/plugins/ha/ha_tunnel.c
+++ b/src/libcharon/plugins/ha/ha_tunnel.c
@@ -223,8 +223,13 @@ static void setup_tunnel(private_ha_tunnel_t *this,
peer_cfg->add_auth_cfg(peer_cfg, auth_cfg, FALSE);
child_cfg = child_cfg_create("ha", &lifetime, NULL, TRUE, MODE_TRANSPORT,
+<<<<<<< HEAD
ACTION_NONE, ACTION_NONE, FALSE, 0, 0,
NULL, NULL);
+=======
+ ACTION_NONE, ACTION_NONE, ACTION_NONE, FALSE,
+ 0, 0, NULL, NULL, 0);
+>>>>>>> upstream/4.5.1
ts = traffic_selector_create_dynamic(IPPROTO_UDP, HA_PORT, HA_PORT);
child_cfg->add_traffic_selector(child_cfg, TRUE, ts);
ts = traffic_selector_create_dynamic(IPPROTO_ICMP, 0, 65535);