summaryrefslogtreecommitdiff
path: root/pjlib
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2008-09-27 13:16:35 +0000
committerBenny Prijono <bennylp@teluu.com>2008-09-27 13:16:35 +0000
commit3f954489680fbf68d80a1f919f7c258b866db056 (patch)
treea576b59e1b96f588a8376c87f0784eb2540b45e3 /pjlib
parent69c33be41a35252c9d9b3782b78ef7e65ad8a3b8 (diff)
Fixed ticket #644 and 648 again (hopefully once and for all): build error on VS6 with built-in SDK and on PocketPC 2003 SDK since they don't have multicast related socket options
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2331 74dad513-b988-da41-8d7b-12977e46ad98
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;