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,6 +334,22 @@ typedef struct
{ {
[loop runMode: NSDefaultRunLoopMode beforeDate: limit]; [loop runMode: NSDefaultRunLoopMode beforeDate: limit];
} }
if (NO == [collector done])
{
data = nil;
if (0 != response)
{
*response = nil;
}
if (0 != error)
{
*error = [NSError errorWithDomain: NSURLErrorDomain
code: NSURLErrorTimedOut
userInfo: nil];
}
}
else
{
data = [[[collector data] retain] autorelease]; data = [[[collector data] retain] autorelease];
if (0 != response) if (0 != response)
{ {
@ -342,6 +359,7 @@ typedef struct
{ {
*error = [[[collector error] retain] autorelease]; *error = [[[collector error] retain] autorelease];
} }
}
[conn release]; [conn release];
} }
[collector release]; [collector release];