in Sources/NIOSOCKS/Messages/SOCKSRequest.swift [131:148]
mutating func readAddressType() throws -> SOCKSAddress? {
return try self.parseUnwindingIfNeeded { buffer in
guard let type = buffer.readInteger(as: UInt8.self) else {
return nil
}
switch type {
case SOCKSAddress.ipv4IdentifierByte:
return try buffer.readIPv4Address()
case SOCKSAddress.domainIdentifierByte:
return buffer.readDomain()
case SOCKSAddress.ipv6IdentifierByte:
return try buffer.readIPv6Address()
default:
throw SOCKSError.InvalidAddressType(actual: type)
}
}
}