* Source/NSURLConnection.m (initWithRequest:delegate:): Add cookies to outgoing requests. --- Source/NSURLConnection.m | 23 +++++++++++++++++++++-- 1 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/Source/NSURLConnection.m b/Source/NSURLConnection.m index 914d1b1..36a8553 100644 --- a/Source/NSURLConnection.m +++ b/Source/NSURLConnection.m @@ -118,7 +118,7 @@ typedef struct { - NSURLRequest *_request; + NSMutableURLRequest *_request; NSURLProtocol *_protocol; id _delegate; // Not retained BOOL _debug; @@ -190,7 +190,26 @@ typedef struct { if ((self = [super init]) != nil) { - this->_request = [request copy]; + this->_request = [request mutableCopyWithZone:NULL]; + + /* Enrich the request with appropriate HTTP cookies, + * if desired. + */ + if ([this->_request HTTPShouldHandleCookies] == YES) + { + NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL: [this->_request URL]]; + if ([cookies count] > 0) + { + NSDictionary *headers = [NSHTTPCookie requestHeaderFieldsWithCookies:cookies]; + NSEnumerator *enumerator = [headers keyEnumerator]; + NSString *header; + while ((header = [enumerator nextObject])) + { + [this->_request addValue:[headers valueForKey:header] forHTTPHeaderField:header]; + } + } + } + this->_delegate = delegate; this->_protocol = [[NSURLProtocol alloc] initWithRequest: this->_request -- 1.7.1 _______________________________________________ Bug-gnustep mailing list Bug-gnustep@gnu.org https://lists.gnu.org/mailman/listinfo/bug-gnustep