Bug 891551: Update NSPR to NSPR_4_10_6_BETA1, which also includes fixes

for bug 1003946, bug 1009270, and bug 1011861.
This commit is contained in:
Wan-Teh Chang 2014-05-23 10:51:29 -07:00
parent 00c14fba88
commit 79f2bd8e3a
13 changed files with 41 additions and 17 deletions

View File

@ -1 +1 @@
NSPR_4_10_5_RTM NSPR_4_10_6_BETA1

View File

@ -208,7 +208,6 @@ main(int argc, char **argv)
todir = malloc(PATH_MAX + 1); todir = malloc(PATH_MAX + 1);
todir = getcwd(todir, PATH_MAX); todir = getcwd(todir, PATH_MAX);
#endif #endif
tdlen = strlen(todir);
xchdir(cwd); xchdir(cwd);
tdlen = strlen(todir); tdlen = strlen(todir);

View File

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

2
nsprpub/configure vendored
View File

@ -2487,7 +2487,7 @@ test -n "$target_alias" &&
MOD_MAJOR_VERSION=4 MOD_MAJOR_VERSION=4
MOD_MINOR_VERSION=10 MOD_MINOR_VERSION=10
MOD_PATCH_VERSION=5 MOD_PATCH_VERSION=6
NSPR_MODNAME=nspr20 NSPR_MODNAME=nspr20
_HAVE_PTHREADS= _HAVE_PTHREADS=
USE_PTHREADS= USE_PTHREADS=

View File

@ -16,7 +16,7 @@ dnl = Defaults
dnl ======================================================== dnl ========================================================
MOD_MAJOR_VERSION=4 MOD_MAJOR_VERSION=4
MOD_MINOR_VERSION=10 MOD_MINOR_VERSION=10
MOD_PATCH_VERSION=5 MOD_PATCH_VERSION=6
NSPR_MODNAME=nspr20 NSPR_MODNAME=nspr20
_HAVE_PTHREADS= _HAVE_PTHREADS=
USE_PTHREADS= USE_PTHREADS=

View File

@ -80,7 +80,7 @@
#define NO_DLOPEN_NULL #define NO_DLOPEN_NULL
#endif #endif
#ifdef __FreeBSD_kernel__ #if defined(__FreeBSD_kernel__) || defined(__GNU__)
#define _PR_HAVE_SOCKADDR_LEN #define _PR_HAVE_SOCKADDR_LEN
#endif #endif

View File

@ -31,11 +31,11 @@ PR_BEGIN_EXTERN_C
** The format of the version string is ** The format of the version string is
** "<major version>.<minor version>[.<patch level>] [<Beta>]" ** "<major version>.<minor version>[.<patch level>] [<Beta>]"
*/ */
#define PR_VERSION "4.10.5" #define PR_VERSION "4.10.6 Beta"
#define PR_VMAJOR 4 #define PR_VMAJOR 4
#define PR_VMINOR 10 #define PR_VMINOR 10
#define PR_VPATCH 5 #define PR_VPATCH 6
#define PR_BETA PR_FALSE #define PR_BETA PR_TRUE
/* /*
** PRVersionCheck ** PRVersionCheck

View File

@ -211,6 +211,8 @@ typedef enum PRSockOption
PR_SockOpt_NoDelay, /* don't delay send to coalesce packets */ PR_SockOpt_NoDelay, /* don't delay send to coalesce packets */
PR_SockOpt_MaxSegment, /* maximum segment size */ PR_SockOpt_MaxSegment, /* maximum segment size */
PR_SockOpt_Broadcast, /* enable broadcast */ PR_SockOpt_Broadcast, /* enable broadcast */
PR_SockOpt_Reuseport, /* allow local address & port reuse on
* platforms that support it */
PR_SockOpt_Last PR_SockOpt_Last
} PRSockOption; } PRSockOption;
@ -234,6 +236,8 @@ typedef struct PRSocketOptionData
PRUintn tos; /* IP type of service and precedence */ PRUintn tos; /* IP type of service and precedence */
PRBool non_blocking; /* Non-blocking (network) I/O */ PRBool non_blocking; /* Non-blocking (network) I/O */
PRBool reuse_addr; /* Allow local address reuse */ PRBool reuse_addr; /* Allow local address reuse */
PRBool reuse_port; /* Allow local address & port reuse on
* platforms that support it */
PRBool keep_alive; /* Keep connections alive */ PRBool keep_alive; /* Keep connections alive */
PRBool mcast_loopback; /* IP multicast loopback */ PRBool mcast_loopback; /* IP multicast loopback */
PRBool no_delay; /* Don't delay send to coalesce packets */ PRBool no_delay; /* Don't delay send to coalesce packets */

View File

@ -85,6 +85,7 @@ PRStatus PR_CALLBACK _PR_SocketGetSocketOption(PRFileDesc *fd, PRSocketOptionDat
case PR_SockOpt_Keepalive: case PR_SockOpt_Keepalive:
case PR_SockOpt_NoDelay: case PR_SockOpt_NoDelay:
case PR_SockOpt_Broadcast: case PR_SockOpt_Broadcast:
case PR_SockOpt_Reuseport:
{ {
#ifdef WIN32 /* Winsock */ #ifdef WIN32 /* Winsock */
BOOL value; BOOL value;
@ -236,6 +237,7 @@ PRStatus PR_CALLBACK _PR_SocketSetSocketOption(PRFileDesc *fd, const PRSocketOpt
case PR_SockOpt_Keepalive: case PR_SockOpt_Keepalive:
case PR_SockOpt_NoDelay: case PR_SockOpt_NoDelay:
case PR_SockOpt_Broadcast: case PR_SockOpt_Broadcast:
case PR_SockOpt_Reuseport:
{ {
#ifdef WIN32 /* Winsock */ #ifdef WIN32 /* Winsock */
BOOL value; BOOL value;
@ -412,10 +414,14 @@ PRStatus PR_CALLBACK _PR_SocketSetSocketOption(PRFileDesc *fd, const PRSocketOpt
#define TCP_MAXSEG _PR_NO_SUCH_SOCKOPT #define TCP_MAXSEG _PR_NO_SUCH_SOCKOPT
#endif #endif
#ifndef SO_BROADCAST /* enable broadcast on udp sockets */ #ifndef SO_BROADCAST /* enable broadcast on UDP sockets */
#define SO_BROADCAST _PR_NO_SUCH_SOCKOPT #define SO_BROADCAST _PR_NO_SUCH_SOCKOPT
#endif #endif
#ifndef SO_REUSEPORT /* allow local address & port reuse */
#define SO_REUSEPORT _PR_NO_SUCH_SOCKOPT
#endif
PRStatus _PR_MapOptionName( PRStatus _PR_MapOptionName(
PRSockOption optname, PRInt32 *level, PRInt32 *name) PRSockOption optname, PRInt32 *level, PRInt32 *name)
{ {
@ -424,14 +430,14 @@ PRStatus _PR_MapOptionName(
0, SO_LINGER, SO_REUSEADDR, SO_KEEPALIVE, SO_RCVBUF, SO_SNDBUF, 0, SO_LINGER, SO_REUSEADDR, SO_KEEPALIVE, SO_RCVBUF, SO_SNDBUF,
IP_TTL, IP_TOS, IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP, IP_TTL, IP_TOS, IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP,
IP_MULTICAST_IF, IP_MULTICAST_TTL, IP_MULTICAST_LOOP, IP_MULTICAST_IF, IP_MULTICAST_TTL, IP_MULTICAST_LOOP,
TCP_NODELAY, TCP_MAXSEG, SO_BROADCAST TCP_NODELAY, TCP_MAXSEG, SO_BROADCAST, SO_REUSEPORT
}; };
static PRInt32 socketLevels[PR_SockOpt_Last] = static PRInt32 socketLevels[PR_SockOpt_Last] =
{ {
0, SOL_SOCKET, SOL_SOCKET, SOL_SOCKET, SOL_SOCKET, SOL_SOCKET, 0, SOL_SOCKET, SOL_SOCKET, SOL_SOCKET, SOL_SOCKET, SOL_SOCKET,
IPPROTO_IP, IPPROTO_IP, IPPROTO_IP, IPPROTO_IP, IPPROTO_IP, IPPROTO_IP, IPPROTO_IP, IPPROTO_IP,
IPPROTO_IP, IPPROTO_IP, IPPROTO_IP, IPPROTO_IP, IPPROTO_IP, IPPROTO_IP,
IPPROTO_TCP, IPPROTO_TCP, SOL_SOCKET IPPROTO_TCP, IPPROTO_TCP, SOL_SOCKET, SOL_SOCKET
}; };
if ((optname < PR_SockOpt_Linger) if ((optname < PR_SockOpt_Linger)

View File

@ -33,6 +33,7 @@
#if defined(DARWIN) #if defined(DARWIN)
#include <mach/mach_init.h> #include <mach/mach_init.h>
#include <mach/mach_host.h> #include <mach/mach_host.h>
#include <mach/mach_port.h>
#endif #endif
#if defined(HPUX) #if defined(HPUX)
@ -297,13 +298,15 @@ PR_IMPLEMENT(PRUint64) PR_GetPhysicalMemorySize(void)
#elif defined(DARWIN) #elif defined(DARWIN)
mach_port_t mach_host = mach_host_self();
struct host_basic_info hInfo; struct host_basic_info hInfo;
mach_msg_type_number_t count = HOST_BASIC_INFO_COUNT; mach_msg_type_number_t count = HOST_BASIC_INFO_COUNT;
int result = host_info(mach_host_self(), int result = host_info(mach_host,
HOST_BASIC_INFO, HOST_BASIC_INFO,
(host_info_t) &hInfo, (host_info_t) &hInfo,
&count); &count);
mach_port_deallocate(mach_task_self(), mach_host);
if (result == KERN_SUCCESS) if (result == KERN_SUCCESS)
bytes = hInfo.max_mem; bytes = hInfo.max_mem;

View File

@ -2854,6 +2854,7 @@ static PRStatus pt_GetSocketOption(PRFileDesc *fd, PRSocketOptionData *data)
case PR_SockOpt_Keepalive: case PR_SockOpt_Keepalive:
case PR_SockOpt_NoDelay: case PR_SockOpt_NoDelay:
case PR_SockOpt_Broadcast: case PR_SockOpt_Broadcast:
case PR_SockOpt_Reuseport:
{ {
PRIntn value; PRIntn value;
length = sizeof(PRIntn); length = sizeof(PRIntn);
@ -2973,6 +2974,7 @@ static PRStatus pt_SetSocketOption(PRFileDesc *fd, const PRSocketOptionData *dat
case PR_SockOpt_Keepalive: case PR_SockOpt_Keepalive:
case PR_SockOpt_NoDelay: case PR_SockOpt_NoDelay:
case PR_SockOpt_Broadcast: case PR_SockOpt_Broadcast:
case PR_SockOpt_Reuseport:
{ {
PRIntn value = (data->value.reuse_addr) ? 1 : 0; PRIntn value = (data->value.reuse_addr) ? 1 : 0;
rv = setsockopt( rv = setsockopt(

View File

@ -11,6 +11,10 @@
#include "plerror.h" #include "plerror.h"
#ifdef XP_UNIX
#include <sys/socket.h> /* SO_REUSEPORT */
#endif
static PRFileDesc *err = NULL; static PRFileDesc *err = NULL;
static PRBool failed = PR_FALSE; static PRBool failed = PR_FALSE;
@ -54,6 +58,7 @@ int main(int argc, char **argv)
"PR_SockOpt_NoDelay", /* don't delay send to coalesce packets */ "PR_SockOpt_NoDelay", /* don't delay send to coalesce packets */
"PR_SockOpt_MaxSegment", /* maximum segment size */ "PR_SockOpt_MaxSegment", /* maximum segment size */
"PR_SockOpt_Broadcast", /* Enable broadcast */ "PR_SockOpt_Broadcast", /* Enable broadcast */
"PR_SockOpt_Reuseport", /* allow local address & port reuse */
"PR_SockOpt_Last" "PR_SockOpt_Last"
}; };
@ -129,6 +134,11 @@ int main(int argc, char **argv)
fd = udp; fd = udp;
data.value.broadcast = PR_TRUE; data.value.broadcast = PR_TRUE;
break; break;
#endif
#ifdef SO_REUSEPORT
case PR_SockOpt_Reuseport:
data.value.reuse_port = PR_TRUE;
break;
#endif #endif
default: continue; default: continue;
} }

View File

@ -20,10 +20,10 @@
#include <stdlib.h> #include <stdlib.h>
/* /*
* This release (4.10.5) is backward compatible with the * This release (4.10.6) 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.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.x, 4.9.x, 4.10, 4.10.1, 4.10.2, 4.10.3, and 4.10.4 * 4.8.x, 4.9.x, 4.10, 4.10.1, 4.10.2, 4.10.3, 4.10.4, and
* releases. * 4.10.5 releases.
* It, of course, is compatible with itself. * It, of course, is compatible with itself.
*/ */
static char *compatible_version[] = { static char *compatible_version[] = {
@ -39,6 +39,7 @@ static char *compatible_version[] = {
"4.9", "4.9.1", "4.9.2", "4.9.3", "4.9.4", "4.9.5", "4.9", "4.9.1", "4.9.2", "4.9.3", "4.9.4", "4.9.5",
"4.9.6", "4.9.6",
"4.10", "4.10.1", "4.10.2", "4.10.3", "4.10.4", "4.10", "4.10.1", "4.10.2", "4.10.3", "4.10.4",
"4.10.5",
PR_VERSION PR_VERSION
}; };
@ -54,7 +55,7 @@ static char *incompatible_version[] = {
"3.0", "3.0.1", "3.0", "3.0.1",
"3.1", "3.1.1", "3.1.2", "3.1.3", "3.1", "3.1.1", "3.1.2", "3.1.3",
"3.5", "3.5.1", "3.5", "3.5.1",
"4.10.6", "4.10.7",
"4.11", "4.11.1", "4.11", "4.11.1",
"10.0", "11.1", "12.14.20" "10.0", "11.1", "12.14.20"
}; };