diff options
Diffstat (limited to '3rdparty/openpgm-svn-r1135/pgm/sockaddr.c.c89.patch')
-rw-r--r-- | 3rdparty/openpgm-svn-r1135/pgm/sockaddr.c.c89.patch | 75 |
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 |