Skip to content

Commit 1c5ac64

Browse files
committed
Log message when no TLS SNI extension value set
1 parent 68ab44c commit 1c5ac64

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

Sources/GRPC/ClientConnection.swift

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ extension ClientConnection {
361361
logger: Logger
362362
) -> ClientBootstrapProtocol {
363363
// Provide a server hostname if we're using TLS. Prefer the override.
364-
let serverHostname: String? = configuration.tls.map {
364+
var serverHostname: String? = configuration.tls.map {
365365
if let hostnameOverride = $0.hostnameOverride {
366366
logger.debug("using hostname override for TLS", metadata: ["server-hostname": "\(hostnameOverride)"])
367367
return hostnameOverride
@@ -371,6 +371,11 @@ extension ClientConnection {
371371
return host
372372
}
373373
}
374+
375+
if let hostname = serverHostname, hostname.isIPAddress {
376+
logger.debug("IP address cannot be used for TLS SNI extension. No host used", metadata: ["server-hostname": "nil"])
377+
serverHostname = nil
378+
}
374379

375380
let bootstrap = PlatformSupport.makeClientBootstrap(group: eventLoop)
376381
// Enable SO_REUSEADDR and TCP_NODELAY.
@@ -540,7 +545,7 @@ fileprivate extension Channel {
540545
do {
541546
let sslClientHandler = try NIOSSLClientHandler(
542547
context: try NIOSSLContext(configuration: configuration),
543-
serverHostname: serverHostname.flatMap { $0.isIPAddress ? nil : $0 }
548+
serverHostname: serverHostname
544549
)
545550

546551
return self.pipeline.addHandlers(sslClientHandler, TLSVerificationHandler())
@@ -578,14 +583,14 @@ extension HTTP2ToHTTP1ClientCodec.HTTPProtocol {
578583
}
579584

580585
fileprivate extension String {
581-
var isIPAddress: Bool {
582-
// We need some scratch space to let inet_pton write into.
583-
var ipv4Addr = in_addr()
584-
var ipv6Addr = in6_addr()
585-
586-
return self.withCString { ptr in
587-
return inet_pton(AF_INET, ptr, &ipv4Addr) == 1 ||
588-
inet_pton(AF_INET6, ptr, &ipv6Addr) == 1
589-
}
586+
var isIPAddress: Bool {
587+
// We need some scratch space to let inet_pton write into.
588+
var ipv4Addr = in_addr()
589+
var ipv6Addr = in6_addr()
590+
591+
return self.withCString { ptr in
592+
return inet_pton(AF_INET, ptr, &ipv4Addr) == 1 ||
593+
inet_pton(AF_INET6, ptr, &ipv6Addr) == 1
590594
}
595+
}
591596
}

0 commit comments

Comments
 (0)