#85 Added support for IPv6

This commit is contained in:
Pierre-Olivier Latour
2014-10-14 00:45:08 -07:00
parent 4449e42601
commit 75d018a375
7 changed files with 224 additions and 174 deletions
+7 -15
View File
@@ -365,6 +365,11 @@ static inline NSUInteger _ScanHexNumber(const void* bytes, NSUInteger size) {
}
}
- (BOOL)isUsingIPv6 {
const struct sockaddr* localSockAddr = _localAddress.bytes;
return (localSockAddr->sa_family == AF_INET6);
}
- (void)_initializeResponseHeadersWithStatusCode:(NSInteger)statusCode {
_statusCode = statusCode;
_responseMessage = CFHTTPMessageCreateResponse(kCFAllocatorDefault, statusCode, NULL, kCFHTTPVersion1_1);
@@ -622,25 +627,12 @@ static inline NSUInteger _ScanHexNumber(const void* bytes, NSUInteger size) {
return self;
}
static NSString* _StringFromAddressData(NSData* data) {
NSString* string = nil;
const struct sockaddr* addr = data.bytes;
char hostBuffer[NI_MAXHOST];
char serviceBuffer[NI_MAXSERV];
if (getnameinfo(addr, addr->sa_len, hostBuffer, sizeof(hostBuffer), serviceBuffer, sizeof(serviceBuffer), NI_NUMERICHOST | NI_NUMERICSERV | NI_NOFQDN) >= 0) {
string = [NSString stringWithFormat:@"%s:%s", hostBuffer, serviceBuffer];
} else {
GWS_DNOT_REACHED();
}
return string;
}
- (NSString*)localAddressString {
return _StringFromAddressData(_localAddress);
return GCDWebServerStringFromSockAddr(_localAddress.bytes, YES);
}
- (NSString*)remoteAddressString {
return _StringFromAddressData(_remoteAddress);
return GCDWebServerStringFromSockAddr(_remoteAddress.bytes, YES);
}
- (void)dealloc {