diff --git a/nsprpub/TAG-INFO b/nsprpub/TAG-INFO index a91fe0faf07..14cb336877f 100644 --- a/nsprpub/TAG-INFO +++ b/nsprpub/TAG-INFO @@ -1 +1 @@ -NSPR_4_8_8_RTM +NSPR_4_8_9_BETA1 diff --git a/nsprpub/admin/repackage.sh b/nsprpub/admin/repackage.sh index ba9f5829776..8ed1a5df8e1 100755 --- a/nsprpub/admin/repackage.sh +++ b/nsprpub/admin/repackage.sh @@ -64,10 +64,10 @@ # # ------------------------------------------------------------------ -FROMTOP=/share/builds/components/nspr20/v4.8.8 -TOTOP=./v4.8.8 -NSPRDIR=nspr-4.8.8 -SOURCETAG=NSPR_4_8_8_RTM +FROMTOP=/share/builds/components/nspr20/v4.8.9 +TOTOP=./v4.8.9 +NSPRDIR=nspr-4.8.9 +SOURCETAG=NSPR_4_8_9_RTM # # enumerate Unix object directories on /s/b/c diff --git a/nsprpub/config/prdepend.h b/nsprpub/config/prdepend.h index df72c56882d..55444c40b3a 100644 --- a/nsprpub/config/prdepend.h +++ b/nsprpub/config/prdepend.h @@ -42,3 +42,4 @@ */ #error "Do not include this header file." + diff --git a/nsprpub/configure b/nsprpub/configure index d6ff36f7a10..7c0b6434c3d 100755 --- a/nsprpub/configure +++ b/nsprpub/configure @@ -713,7 +713,7 @@ test "$host_alias" != "$target_alias" && MOD_MAJOR_VERSION=4 MOD_MINOR_VERSION=8 -MOD_PATCH_VERSION=8 +MOD_PATCH_VERSION=9 NSPR_MODNAME=nspr20 _HAVE_PTHREADS= USE_PTHREADS= diff --git a/nsprpub/configure.in b/nsprpub/configure.in index bd502c89306..d9406aeaf39 100644 --- a/nsprpub/configure.in +++ b/nsprpub/configure.in @@ -50,7 +50,7 @@ dnl = Defaults dnl ======================================================== MOD_MAJOR_VERSION=4 MOD_MINOR_VERSION=8 -MOD_PATCH_VERSION=8 +MOD_PATCH_VERSION=9 NSPR_MODNAME=nspr20 _HAVE_PTHREADS= USE_PTHREADS= diff --git a/nsprpub/pr/include/prinit.h b/nsprpub/pr/include/prinit.h index 075455e5713..9f9de5fd052 100644 --- a/nsprpub/pr/include/prinit.h +++ b/nsprpub/pr/include/prinit.h @@ -63,11 +63,11 @@ PR_BEGIN_EXTERN_C ** The format of the version string is ** ".[.] []" */ -#define PR_VERSION "4.8.8" +#define PR_VERSION "4.8.9 Beta" #define PR_VMAJOR 4 #define PR_VMINOR 8 -#define PR_VPATCH 8 -#define PR_BETA PR_FALSE +#define PR_VPATCH 9 +#define PR_BETA PR_TRUE /* ** PRVersionCheck diff --git a/nsprpub/pr/src/md/windows/w95sock.c b/nsprpub/pr/src/md/windows/w95sock.c index 4e67a2237df..cb39da8f751 100644 --- a/nsprpub/pr/src/md/windows/w95sock.c +++ b/nsprpub/pr/src/md/windows/w95sock.c @@ -107,6 +107,7 @@ typedef struct _WSA_COMPATIBILITY_MODE { static HMODULE libWinsock2 = NULL; static WSAIOCTLPROC wsaioctlProc = NULL; static PRBool socketSetCompatMode = PR_FALSE; +static PRBool socketFixInet6RcvBuf = PR_FALSE; void _PR_MD_InitSockets(void) { @@ -130,6 +131,11 @@ void _PR_MD_InitSockets(void) } } } + else if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1) + { + /* if Windows XP (32-bit) */ + socketFixInet6RcvBuf = PR_TRUE; + } } void _PR_MD_CleanupSockets(void) @@ -190,6 +196,27 @@ _PR_MD_SOCKET(int af, int type, int flags) } } + if (af == AF_INET6 && socketFixInet6RcvBuf) + { + int bufsize; + int len = sizeof(bufsize); + int rv; + + /* Windows XP 32-bit returns an error on getpeername() for AF_INET6 + * sockets if the receive buffer size is greater than 65535 before + * the connection is initiated. The default receive buffer size may + * be 128000 so fix it here to always be <= 65535. See bug 513659 + * and IBM DB2 support technote "Receive/Send IPv6 Socket Size + * Problem in Windows XP SP2 & SP3". + */ + rv = getsockopt(sock, SOL_SOCKET, SO_RCVBUF, (char*)&bufsize, &len); + if (rv == 0 && bufsize > 65535) + { + bufsize = 65535; + setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (char*)&bufsize, len); + } + } + return (PROsfd)sock; } diff --git a/nsprpub/pr/src/misc/prnetdb.c b/nsprpub/pr/src/misc/prnetdb.c index 52b72def9d6..b8e32db4a0a 100644 --- a/nsprpub/pr/src/misc/prnetdb.c +++ b/nsprpub/pr/src/misc/prnetdb.c @@ -2077,6 +2077,12 @@ PR_IMPLEMENT(PRAddrInfo *) PR_GetAddrInfoByName(const char *hostname, hints.ai_socktype = SOCK_STREAM; rv = GETADDRINFO(hostname, NULL, &hints, &res); +#ifdef AI_ADDRCONFIG + if (rv == EAI_BADFLAGS) { + hints.ai_flags &= ~AI_ADDRCONFIG; + rv = GETADDRINFO(hostname, NULL, &hints, &res); + } +#endif if (rv == 0) return (PRAddrInfo *) res; diff --git a/nsprpub/pr/tests/vercheck.c b/nsprpub/pr/tests/vercheck.c index 6569c793e24..70791e08a37 100644 --- a/nsprpub/pr/tests/vercheck.c +++ b/nsprpub/pr/tests/vercheck.c @@ -52,10 +52,10 @@ #include /* - * This release (4.8.8) is backward compatible with the + * This release (4.8.9) is backward compatible with the * 4.0.x, 4.1.x, 4.2.x, 4.3.x, 4.4.x, 4.5.x, 4.6.x, 4.7.x, - * 4.8, 4.8.1, 4.8.2, 4.8.3, 4.8.4, 4.8.5, 4.8.6 and 4.8.7 releases. - * It, of course, is compatible with itself. + * 4.8, 4.8.1, 4.8.2, 4.8.3, 4.8.4, 4.8.5, 4.8.6, 4.8.7, and + * 4.8.8 releases. It, of course, is compatible with itself. */ static char *compatible_version[] = { "4.0", "4.0.1", "4.1", "4.1.1", "4.1.2", "4.1.3", @@ -66,7 +66,7 @@ static char *compatible_version[] = { "4.7", "4.7.1", "4.7.2", "4.7.3", "4.7.4", "4.7.5", "4.7.6", "4.8", "4.8.1", "4.8.2", "4.8.3", "4.8.4", "4.8.5", - "4.8.6", "4.8.7", PR_VERSION + "4.8.6", "4.8.7", "4.8.8", PR_VERSION }; /* @@ -81,7 +81,7 @@ static char *incompatible_version[] = { "3.0", "3.0.1", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.5", "3.5.1", - "4.8.9", + "4.8.10", "4.9", "4.9.1", "10.0", "11.1", "12.14.20" };