Some URL handling fixes.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@13569 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-Macdonald 2002-05-02 06:10:51 +00:00
parent befcec9bf6
commit b0cfbec79c
3 changed files with 41 additions and 8 deletions

View file

@ -1,3 +1,11 @@
2002-05-02 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSURLHandle.m: Implement ([-hash]) and ([-isEqual:]) based on
([-absoluteString]) rather than simple pointer comparison.
* Source/GSHTTPURLHandle.m: ([-bgdConnect]) set host header
([-loadInBackGround]) use URL port if available.
More fixes thanks to lcampbel via savannah
2002-05-01 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSURLHandle.m: ([URLHandleClassForURL:]) Fix to return most

View file

@ -329,8 +329,18 @@ static void debugWrite(NSData *data)
contentLength = 0;
if ([[request objectForKey: GSHTTPPropertyProxyHostKey] length] == 0)
{
NSNumber *p;
host = [url host];
port = [url scheme];
p = [url port];
if (p != nil)
{
port = [NSString stringWithFormat: @"%u", [p unsignedIntValue]];
}
else
{
port = [url scheme];
}
if ([[url scheme] isEqualToString: @"https"])
{
if (sslClass == 0)
@ -575,6 +585,8 @@ static void debugWrite(NSData *data)
[s appendFormat: @" HTTP/%@\nHost: %@\r\n", httpVersion, [url host]];
}
[wProperties setObject: [url host] forKey: @"host"];
if ([wData length] > 0)
{
[wProperties setObject: [NSString stringWithFormat: @"%d", [wData length]]

View file

@ -158,12 +158,26 @@ NSString *NSURLPartKey_query = @"query";
return RETAIN(self);
}
- (NSString*) description
{
NSString *dscr = _urlString;
if (_baseURL != nil)
dscr = [dscr stringByAppendingFormat: @" -- %@", _baseURL];
return dscr;
}
- (void) encodeWithCoder: (NSCoder*)aCoder
{
[aCoder encodeObject: _urlString];
[aCoder encodeObject: _baseURL];
}
- (unsigned int) hash
{
return [[self absoluteString] hash];
}
- (id) initWithCoder: (NSCoder*)aCoder
{
[aCoder decodeValueOfObjCType: @encode(id) at: &_urlString];
@ -171,14 +185,13 @@ NSString *NSURLPartKey_query = @"query";
return self;
}
- (NSString*) description
- (BOOL) isEqual: (id)other
{
NSString *dscr = _urlString;
if (_baseURL != nil)
dscr = [dscr stringByAppendingFormat: @" -- %@", _baseURL];
return dscr;
if (other == nil || [other isKindOfClass: [NSURL class]] == NO)
{
return NO;
}
return [[self absoluteString] isEqualToString: [other absoluteString]];
}
// Non Standard Function