summaryrefslogtreecommitdiff
path: root/src/ipcpd
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipcpd')
-rw-r--r--src/ipcpd/udp/main.c12
-rw-r--r--src/ipcpd/unicast/dt.c1
-rw-r--r--src/ipcpd/unicast/fa.c5
-rw-r--r--src/ipcpd/unicast/pol/link_state.c1
4 files changed, 16 insertions, 3 deletions
diff --git a/src/ipcpd/udp/main.c b/src/ipcpd/udp/main.c
index 03de24ab..6a3fb24a 100644
--- a/src/ipcpd/udp/main.c
+++ b/src/ipcpd/udp/main.c
@@ -75,6 +75,12 @@
#define MGMT_FRAME_SIZE (sizeof(struct mgmt_msg))
#define MGMT_FRAME_BUF_SIZE 2048
+#ifdef __linux__
+#define SENDTO_FLAGS MSG_CONFIRM
+#else
+#define SENDTO_FLAGS 0
+#endif
+
struct ipcp ipcpi;
/* Keep order for alignment. */
@@ -216,7 +222,7 @@ static int ipcp_udp_port_alloc(const struct sockaddr_in * r_saddr,
memcpy(buf + len, data, dlen);
if (sendto(udp_data.s_fd, msg, len + dlen,
- MSG_CONFIRM,
+ SENDTO_FLAGS,
(const struct sockaddr *) r_saddr, sizeof(*r_saddr)) < 0) {
free(buf);
return -1;
@@ -249,7 +255,7 @@ static int ipcp_udp_port_alloc_resp(const struct sockaddr_in * r_saddr,
memcpy(msg + 1, data, len);
if (sendto(udp_data.s_fd, msg, sizeof(*msg) + len,
- MSG_CONFIRM,
+ SENDTO_FLAGS,
(const struct sockaddr *) r_saddr, sizeof(*r_saddr)) < 0 ) {
free(msg);
return -1;
@@ -552,7 +558,7 @@ static void * ipcp_udp_packet_writer(void * o)
pthread_cleanup_push(cleanup_sdb, sdb);
if (sendto(udp_data.s_fd, buf, len + OUR_HEADER_LEN,
- MSG_CONFIRM,
+ SENDTO_FLAGS,
(const struct sockaddr *) &saddr,
sizeof(saddr)) < 0)
log_err("Failed to send packet.");
diff --git a/src/ipcpd/unicast/dt.c b/src/ipcpd/unicast/dt.c
index 92496e54..c57ce031 100644
--- a/src/ipcpd/unicast/dt.c
+++ b/src/ipcpd/unicast/dt.c
@@ -24,6 +24,7 @@
#define _DEFAULT_SOURCE
#else
#define _POSIX_C_SOURCE 200112L
+#define __XSI_VISIBLE 500
#endif
#include "config.h"
diff --git a/src/ipcpd/unicast/fa.c b/src/ipcpd/unicast/fa.c
index 71351d5a..14303a21 100644
--- a/src/ipcpd/unicast/fa.c
+++ b/src/ipcpd/unicast/fa.c
@@ -24,6 +24,7 @@
#define _DEFAULT_SOURCE
#else
#define _POSIX_C_SOURCE 200112L
+#define __XSI_VISIBLE 500
#endif
#include "config.h"
@@ -51,6 +52,10 @@
#include <stdlib.h>
#include <string.h>
+#if defined (IPCP_FLOW_STATS) && !defined(CLOCK_REALTIME_COARSE)
+#define CLOCK_REALTIME_COARSE CLOCK_REALTIME
+#endif
+
#define TIMEOUT 10000 /* nanoseconds */
#define FLOW_REQ 0
diff --git a/src/ipcpd/unicast/pol/link_state.c b/src/ipcpd/unicast/pol/link_state.c
index cca85d63..69044889 100644
--- a/src/ipcpd/unicast/pol/link_state.c
+++ b/src/ipcpd/unicast/pol/link_state.c
@@ -24,6 +24,7 @@
#define _DEFAULT_SOURCE
#else
#define _POSIX_C_SOURCE 200112L
+#define __XSI_VISIBLE 500
#endif
#include "config.h"