summaryrefslogtreecommitdiff
path: root/pjlib
diff options
context:
space:
mode:
Diffstat (limited to 'pjlib')
-rw-r--r--pjlib/include/pj/compat/os_auto.h.in1
-rw-r--r--pjlib/include/pj/compat/os_win32.h1
-rw-r--r--pjlib/include/pj/compat/socket.h13
-rw-r--r--pjlib/src/pj/sock_bsd.c10
4 files changed, 16 insertions, 9 deletions
diff --git a/pjlib/include/pj/compat/os_auto.h.in b/pjlib/include/pj/compat/os_auto.h.in
index d9b37d28..8c65c8f9 100644
--- a/pjlib/include/pj/compat/os_auto.h.in
+++ b/pjlib/include/pj/compat/os_auto.h.in
@@ -75,6 +75,7 @@
#undef PJ_HAS_MSWSOCK_H
#undef PJ_HAS_WINSOCK_H
#undef PJ_HAS_WINSOCK2_H
+#undef PJ_HAS_WS2TCPIP_H
#undef PJ_SOCK_HAS_INET_ATON
#undef PJ_SOCK_HAS_INET_PTON
diff --git a/pjlib/include/pj/compat/os_win32.h b/pjlib/include/pj/compat/os_win32.h
index 52ac49bd..2d988042 100644
--- a/pjlib/include/pj/compat/os_win32.h
+++ b/pjlib/include/pj/compat/os_win32.h
@@ -59,6 +59,7 @@
#define PJ_HAS_MSWSOCK_H 1
#define PJ_HAS_WINSOCK_H 0
#define PJ_HAS_WINSOCK2_H 1
+#define PJ_HAS_WS2TCPIP_H 1
#define PJ_SOCK_HAS_INET_ATON 0
diff --git a/pjlib/include/pj/compat/socket.h b/pjlib/include/pj/compat/socket.h
index f173e8f8..e132e647 100644
--- a/pjlib/include/pj/compat/socket.h
+++ b/pjlib/include/pj/compat/socket.h
@@ -32,6 +32,11 @@
# include <winsock.h>
#endif
+#if defined(PJ_HAS_WS2TCPIP_H) && PJ_HAS_WS2TCPIP_H != 0
+# include <ws2tcpip.h>
+#endif
+
+
/*
* IPv6 for Visual Studio's
*
@@ -58,9 +63,6 @@
# define s_addr S_un.S_addr
# endif
-# include <ws2tcpip.h>
-# define PJ_WS2TCPIP_H_INCLUDED
-
# if !defined(IPPROTO_IPV6)
/* Need to download and install IPv6Kit for this platform.
* Please see the comments above about Visual Studio 6.
@@ -71,11 +73,6 @@
# define PJ_SOCK_HAS_GETADDRINFO 1
#endif /* _MSC_VER */
-/* Mingw32 needs ws2tcpip.h for the IGMP constants */
-#if defined(__GNUC__) && defined(WIN32) && !defined(PJ_WS2TCPIP_H_INCLUDED)
-# include <ws2tcpip.h>
-#endif
-
#if defined(PJ_HAS_SYS_TYPES_H) && PJ_HAS_SYS_TYPES_H != 0
# include <sys/types.h>
#endif
diff --git a/pjlib/src/pj/sock_bsd.c b/pjlib/src/pj/sock_bsd.c
index 74142547..9adacfa9 100644
--- a/pjlib/src/pj/sock_bsd.c
+++ b/pjlib/src/pj/sock_bsd.c
@@ -115,12 +115,20 @@ const pj_uint16_t PJ_IPTOS_MINCOST = 0x02;
const pj_uint16_t PJ_SO_TYPE = SO_TYPE;
const pj_uint16_t PJ_SO_RCVBUF = SO_RCVBUF;
const pj_uint16_t PJ_SO_SNDBUF = SO_SNDBUF;
+/* Multicasting is not supported e.g. in PocketPC 2003 SDK */
+#ifdef IP_MULTICAST_IF
const pj_uint16_t PJ_IP_MULTICAST_IF = IP_MULTICAST_IF;
const pj_uint16_t PJ_IP_MULTICAST_TTL = IP_MULTICAST_TTL;
const pj_uint16_t PJ_IP_MULTICAST_LOOP = IP_MULTICAST_LOOP;
const pj_uint16_t PJ_IP_ADD_MEMBERSHIP = IP_ADD_MEMBERSHIP;
const pj_uint16_t PJ_IP_DROP_MEMBERSHIP = IP_DROP_MEMBERSHIP;
-
+#else
+const pj_uint16_t PJ_IP_MULTICAST_IF = 0xFFFF;
+const pj_uint16_t PJ_IP_MULTICAST_TTL = 0xFFFF;
+const pj_uint16_t PJ_IP_MULTICAST_LOOP = 0xFFFF;
+const pj_uint16_t PJ_IP_ADD_MEMBERSHIP = 0xFFFF;
+const pj_uint16_t PJ_IP_DROP_MEMBERSHIP = 0xFFFF;
+#endif
/* recv() and send() flags */
const int PJ_MSG_OOB = MSG_OOB;