Update NSPR to NSPR_4_8_9_BETA1, which includes the fixes for

bug 513659 and bug 650474.
This commit is contained in:
Wan-Teh Chang 2011-05-11 18:36:38 -07:00
parent e9dba37cfa
commit 35e133ac47
9 changed files with 49 additions and 15 deletions

View File

@ -1 +1 @@
NSPR_4_8_8_RTM
NSPR_4_8_9_BETA1

View File

@ -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

View File

@ -42,3 +42,4 @@
*/
#error "Do not include this header file."

2
nsprpub/configure vendored
View File

@ -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=

View File

@ -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=

View File

@ -63,11 +63,11 @@ PR_BEGIN_EXTERN_C
** The format of the version string is
** "<major version>.<minor version>[.<patch level>] [<Beta>]"
*/
#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

View File

@ -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;
}

View File

@ -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;

View File

@ -52,10 +52,10 @@
#include <stdlib.h>
/*
* 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"
};