Merge some more bugfixes from trunk so we can pass current testsuite

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/branches/base-1_13_0@24153 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-MacDonald 2006-11-23 12:55:28 +00:00
parent e0fe82480f
commit 406688b2e0
5 changed files with 423 additions and 272 deletions

View file

@ -1,6 +1,14 @@
2006-11-28 Richard Frith-Macdonald <rfm@gnu.org>
* Source/unix/NSStream.m:
* Source/win32/NSStreamWin32.m:
Merge bugfixes for socket reuse from trunk.
* configure.ac:
Cope with getting location of config file from more recent gnustep-make
2006-11-21 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSURL.m: merge bbugfix from trunk.
* Source/NSURL.m: merge bugfix from trunk.
2006-11-18 Richard Frith-Macdonald <rfm@gnu.org>

View file

@ -50,6 +50,10 @@
#define PF_LOCAL PF_UNIX
#endif
#ifndef socklen_t
#define socklen_t uint32_t
#endif
/**
* The concrete subclass of NSInputStream that reads from a file
*/
@ -1425,10 +1429,25 @@ static void setNonblocking(int fd)
- (void) open
{
int bindReturn = bind((int)(intptr_t)_loopID, [self serverAddr], [self sockLen]);
int listenReturn = listen((intptr_t)_loopID, SOCKET_BACKLOG);
int bindReturn;
int listenReturn;
if (bindReturn < 0 || listenReturn)
#ifndef BROKEN_SO_REUSEADDR
/*
* Under decent systems, SO_REUSEADDR means that the port can be reused
* immediately that this process exits. Under some it means
* that multiple processes can serve the same port simultaneously.
* We don't want that broken behavior!
*/
int status = 1;
setsockopt((int)(intptr_t)_loopID, SOL_SOCKET, SO_REUSEADDR,
(char *)&status, sizeof(status));
#endif
bindReturn = bind((int)(intptr_t)_loopID, [self serverAddr], [self sockLen]);
listenReturn = listen((intptr_t)_loopID, SOCKET_BACKLOG);
if (bindReturn < 0 || listenReturn < 0)
{
[self _recordError];
return;

View file

@ -2212,10 +2212,22 @@ done:
- (void) open
{
int bindReturn = bind(_sock, [self serverAddr], [self sockLen]);
int listenReturn = listen(_sock, SOCKET_BACKLOG);
int bindReturn;
int listenReturn;
#ifndef BROKEN_SO_REUSEADDR
int status = 1;
if (bindReturn < 0 || listenReturn)
/*
* Under decent systems, SO_REUSEADDR means that the port can be reused
* immediately that this process exits. Under some it means
* that multiple processes can serve the same port simultaneously.
* We don't want that broken behavior!
*/
setsockopt(_sock, SOL_SOCKET, SO_REUSEADDR, (char *)&status, sizeof(status));
#endif
bindReturn = bind(_sock, [self serverAddr], [self sockLen]);
listenReturn = listen(_sock, SOCKET_BACKLOG);
if (bindReturn < 0 || listenReturn < 0)
{
[self _recordError];
return;

635
configure vendored

File diff suppressed because it is too large Load diff

View file

@ -56,7 +56,12 @@ AC_CANONICAL_TARGET([])
#---------------------------------------------------------------------
AC_MSG_CHECKING([for GNUstep configuration file to use])
GNUSTEP_CONFIG_FILE=""
GNUSTEP_MAKE_CONFIG=`grep '^GNUSTEP_CONFIG_FILE *=' $GNUSTEP_MAKEFILES/config.make | sed -e 's/GNUSTEP_CONFIG_FILE *= *\(.*\)/\1/'`
if test -e $GNUSTEP_MAKEFILES/config-noarch.make
then
GNUSTEP_MAKE_CONFIG=`grep '^GNUSTEP_CONFIG_FILE *=' $GNUSTEP_MAKEFILES/config-noarch.make | sed -e 's/GNUSTEP_CONFIG_FILE *= *\(.*\)/\1/'`
else
GNUSTEP_MAKE_CONFIG=`grep '^GNUSTEP_CONFIG_FILE *=' $GNUSTEP_MAKEFILES/config.make | sed -e 's/GNUSTEP_CONFIG_FILE *= *\(.*\)/\1/'`
fi
AC_ARG_WITH(config-file,
[ --with-config-file=PATH Specify path to the GNUstep config file.
This is the location to be used by the base