Implement SSL SNI hostname setting for asyncnet.
This commit is contained in:
parent
4ef86042f2
commit
0535b6b6bf
1 changed files with 5 additions and 0 deletions
|
|
@ -253,6 +253,11 @@ proc connect*(socket: AsyncSocket, address: string, port: Port) {.async.} =
|
||||||
await connect(socket.fd.AsyncFD, address, port, socket.domain)
|
await connect(socket.fd.AsyncFD, address, port, socket.domain)
|
||||||
if socket.isSsl:
|
if socket.isSsl:
|
||||||
when defineSsl:
|
when defineSsl:
|
||||||
|
if not isIpAddress(address):
|
||||||
|
# Set the SNI address for this connection. This call can fail if
|
||||||
|
# we're not using TLSv1+.
|
||||||
|
discard SSL_set_tlsext_host_name(socket.sslHandle, address)
|
||||||
|
|
||||||
let flags = {SocketFlag.SafeDisconn}
|
let flags = {SocketFlag.SafeDisconn}
|
||||||
sslSetConnectState(socket.sslHandle)
|
sslSetConnectState(socket.sslHandle)
|
||||||
sslLoop(socket, flags, sslDoHandshake(socket.sslHandle))
|
sslLoop(socket, flags, sslDoHandshake(socket.sslHandle))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue