Skip to content

Commit 71ce82a

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

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

Sources/GRPC/ClientConnection.swift

Lines changed: 17 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,12 @@ 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+
}
379+
374380

375381
let bootstrap = PlatformSupport.makeClientBootstrap(group: eventLoop)
376382
// Enable SO_REUSEADDR and TCP_NODELAY.
@@ -540,7 +546,7 @@ fileprivate extension Channel {
540546
do {
541547
let sslClientHandler = try NIOSSLClientHandler(
542548
context: try NIOSSLContext(configuration: configuration),
543-
serverHostname: serverHostname.flatMap { $0.isIPAddress ? nil : $0 }
549+
serverHostname: serverHostname
544550
)
545551

546552
return self.pipeline.addHandlers(sslClientHandler, TLSVerificationHandler())
@@ -578,14 +584,14 @@ extension HTTP2ToHTTP1ClientCodec.HTTPProtocol {
578584
}
579585

580586
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-
}
587+
var isIPAddress: Bool {
588+
// We need some scratch space to let inet_pton write into.
589+
var ipv4Addr = in_addr()
590+
var ipv6Addr = in6_addr()
591+
592+
return self.withCString { ptr in
593+
return inet_pton(AF_INET, ptr, &ipv4Addr) == 1 ||
594+
inet_pton(AF_INET6, ptr, &ipv6Addr) == 1
590595
}
596+
}
591597
}

0 commit comments

Comments
 (0)