summaryrefslogtreecommitdiffstats
path: root/3rdparty/openpgm-svn-r1135/pgm/sockaddr.c.c89.patch
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/openpgm-svn-r1135/pgm/sockaddr.c.c89.patch')
-rw-r--r--3rdparty/openpgm-svn-r1135/pgm/sockaddr.c.c89.patch75
1 files changed, 75 insertions, 0 deletions
diff --git a/3rdparty/openpgm-svn-r1135/pgm/sockaddr.c.c89.patch b/3rdparty/openpgm-svn-r1135/pgm/sockaddr.c.c89.patch
new file mode 100644
index 0000000..96fa367
--- /dev/null
+++ b/3rdparty/openpgm-svn-r1135/pgm/sockaddr.c.c89.patch
@@ -0,0 +1,75 @@
+--- sockaddr.c 2010-08-04 17:08:05.000000000 +0800
++++ sockaddr.c89 2010-08-05 13:19:20.000000000 +0800
+@@ -145,12 +145,13 @@
+ struct sockaddr* restrict dst /* will error on wrong size */
+ )
+ {
+- struct addrinfo hints = {
+- .ai_family = AF_UNSPEC,
+- .ai_socktype = SOCK_STREAM, /* not really */
+- .ai_protocol = IPPROTO_TCP, /* not really */
+- .ai_flags = AI_NUMERICHOST
+- }, *result = NULL;
++ struct addrinfo hints, *result;
++ memset (&hints, 0, sizeof(hints));
++ hints.ai_family = AF_UNSPEC;
++ hints.ai_socktype = SOCK_STREAM; /* not really */
++ hints.ai_protocol = IPPROTO_TCP; /* not really */
++ hints.ai_flags = AI_NUMERICHOST;
++ {
+ const int status = getaddrinfo (src, NULL, &hints, &result);
+ if (PGM_LIKELY(0 == status)) {
+ memcpy (dst, result->ai_addr, result->ai_addrlen);
+@@ -158,6 +159,7 @@
+ return 1;
+ }
+ return 0;
++ }
+ }
+
+ /* returns tri-state value: 1 if sa is multicast, 0 if sa is not multicast, -1 on error
+@@ -830,7 +832,13 @@
+ const socklen_t len = GROUP_FILTER_SIZE(gf_list->gf_numsrc);
+ retval = setsockopt (s, recv_level, MCAST_MSFILTER, (const char*)gf_list, len);
+ #elif defined(SIOCSMSFILTER)
++# ifdef _WIN32
++# pragma warning( disable : 4090 )
++ retval = ioctlsocket (s, SIOCSMSFILTER, (const char*)gf_list);
++# pragma warning( default : 4090 )
++# else
+ retval = ioctl (s, SIOCSMSFILTER, (const char*)gf_list);
++# endif
+ #endif
+ return retval;
+ }
+@@ -1092,13 +1100,15 @@
+ pgm_assert (NULL != src);
+ pgm_assert (NULL != dst);
+
+- struct addrinfo hints = {
+- .ai_family = af,
+- .ai_socktype = SOCK_STREAM, /* not really */
+- .ai_protocol = IPPROTO_TCP, /* not really */
+- .ai_flags = AI_NUMERICHOST
+- }, *result = NULL;
++ {
++ struct addrinfo hints, *result;
++ memset (&hints, 0, sizeof(hints));
++ hints.ai_family = af;
++ hints.ai_socktype = SOCK_STREAM; /* not really */
++ hints.ai_protocol = IPPROTO_TCP; /* not really */
++ hints.ai_flags = AI_NUMERICHOST;
+
++ {
+ const int e = getaddrinfo (src, NULL, &hints, &result);
+ if (0 != e) {
+ return 0; /* error */
+@@ -1129,6 +1139,8 @@
+
+ freeaddrinfo (result);
+ return 1; /* success */
++ }
++ }
+ }
+
+ int