From e85a980ed34816fa7bb4a5f11adeab18468a0fcf Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Sat, 31 Aug 2013 07:50:33 +0000
Subject: [PATCH] Fix a couple boneheaded errors, and extern "C" the functions.

---
 src/xpdev/multisock.c | 6 +++---
 src/xpdev/multisock.h | 8 ++++++++
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/xpdev/multisock.c b/src/xpdev/multisock.c
index 17bd745827..a74038cbc0 100644
--- a/src/xpdev/multisock.c
+++ b/src/xpdev/multisock.c
@@ -71,7 +71,7 @@ BOOL xpms_add(struct xpms_set *xpms_set, int domain, int type,
 	}
 
 	for(cur=res; cur; cur=cur->ai_next) {
-		new_socks=(struct xpms_sockdef *)realloc(xpms_set->socks, sizeof(struct xpms_set)*xpms_set->sock_count+1);
+		new_socks=(struct xpms_sockdef *)realloc(xpms_set->socks, sizeof(struct xpms_sockdef)*(xpms_set->sock_count+1));
 		if(new_socks==NULL) {
 			/* This may be a partial failure */
 			if(xpms_set->lprintf)
@@ -114,9 +114,9 @@ BOOL xpms_add(struct xpms_set *xpms_set, int domain, int type,
 				bind_init(TRUE);
 		}
 
-		if(!listen(xpms_set->socks[xpms_set->sock_count].sock, SOMAXCONN)) {
+		if(listen(xpms_set->socks[xpms_set->sock_count].sock, SOMAXCONN)==-1) {
 			if(xpms_set->lprintf)
-				xpms_set->lprintf(LOG_WARNING, "%04d !ERROR %d listen()ing op port %d"
+				xpms_set->lprintf(LOG_WARNING, "%04d !ERROR %d listen()ing on port %d"
 						, xpms_set->socks[xpms_set->sock_count].sock, ERROR_VALUE, port);
 			closesocket(xpms_set->socks[xpms_set->sock_count].sock);
 			FREE_AND_NULL(xpms_set->socks[xpms_set->sock_count].address);
diff --git a/src/xpdev/multisock.h b/src/xpdev/multisock.h
index c1980e9708..ea73fa19e4 100644
--- a/src/xpdev/multisock.h
+++ b/src/xpdev/multisock.h
@@ -25,6 +25,10 @@ struct xpms_set {
 
 #define XPMS_FOREVER	UINT_MAX
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct xpms_set *xpms_create(unsigned int retries, unsigned int wait_secs,
 	int (*lprintf)(int level, const char *fmt, ...));
 void xpms_destroy(struct xpms_set *xpms_set);
@@ -34,4 +38,8 @@ BOOL xpms_add(struct xpms_set *xpms_set, int domain, int type,
 SOCKET xpms_accept(struct xpms_set *, struct sockaddr * addr, 
 	socklen_t * addrlen, unsigned int timeout, void **cb_data);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif
-- 
GitLab