Improve timeout handling when doing synchronous load

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@36759 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
rfm 2013-06-26 15:40:58 +00:00
parent b836b71df1
commit a0d8372eb8

View file

@ -26,6 +26,7 @@
#define EXPOSE_NSURLConnection_IVARS 1 #define EXPOSE_NSURLConnection_IVARS 1
#import "Foundation/NSError.h" #import "Foundation/NSError.h"
#import "Foundation/NSURLError.h"
#import "Foundation/NSRunLoop.h" #import "Foundation/NSRunLoop.h"
#import "GSURLPrivate.h" #import "GSURLPrivate.h"
@ -333,14 +334,31 @@ typedef struct
{ {
[loop runMode: NSDefaultRunLoopMode beforeDate: limit]; [loop runMode: NSDefaultRunLoopMode beforeDate: limit];
} }
data = [[[collector data] retain] autorelease]; if (NO == [collector done])
if (0 != response)
{ {
*response = [[[collector response] retain] autorelease]; data = nil;
if (0 != response)
{
*response = nil;
}
if (0 != error)
{
*error = [NSError errorWithDomain: NSURLErrorDomain
code: NSURLErrorTimedOut
userInfo: nil];
}
} }
if (0 != error) else
{ {
*error = [[[collector error] retain] autorelease]; data = [[[collector data] retain] autorelease];
if (0 != response)
{
*response = [[[collector response] retain] autorelease];
}
if (0 != error)
{
*error = [[[collector error] retain] autorelease];
}
} }
[conn release]; [conn release];
} }