diff options
author | Federico Ceratto <federico.ceratto@gmail.com> | 2022-08-23 20:44:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-23 21:44:50 +0200 |
commit | 2dcfd732609a2cfa805e5a94cc105399a2f18632 (patch) | |
tree | 4b8752a4a96670d84f188ba85ef53fdd61a0dbce /tests | |
parent | d1d141b135a605f81935e89322549013e5be3863 (diff) | |
download | Nim-2dcfd732609a2cfa805e5a94cc105399a2f18632.tar.gz |
Add OpenSSL 3 support (#19814)
* Minor refactor * Add OpenSSL 3 support Remove symbols noOpenSSLHacksq and openssl10 * Drop loading of older openssl versions * Add library path * Use only versioned libssl soname os OSX * Update .github/workflows/ci_packages.yml Co-authored-by: Hein Thant <official.heinthanth@gmail.com> * On Mac OS X CI, link OpenSSL in /usr/local/lib/ * Install OpenSSL on Mac OS X on azure pipeline * Remove DYLD_LIBRARY_PATH Co-authored-by: Hein Thant <official.heinthanth@gmail.com> Co-authored-by: Andreas Rumpf <rumpf_a@web.de> Co-authored-by: Hein Thant <official.heinthanth@gmail.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/stdlib/tssl.nim | 44 |
1 files changed, 21 insertions, 23 deletions
diff --git a/tests/stdlib/tssl.nim b/tests/stdlib/tssl.nim index 379c1b1e5..fd85cb55b 100644 --- a/tests/stdlib/tssl.nim +++ b/tests/stdlib/tssl.nim @@ -16,9 +16,22 @@ when not defined(ssl): const DummyData = "dummy data\n" +proc createSocket(): Socket = + result = newSocket(buffered = false) + result.setSockOpt(OptReuseAddr, true) + result.setSockOpt(OptReusePort, true) + +proc createServer(serverContext: SslContext): (Socket, Port) = + var server = createSocket() + serverContext.wrapSocket(server) + server.bindAddr(address = "localhost") + let (_, port) = server.getLocalAddr() + server.listen() + return (server, port) + proc abruptShutdown(port: Port) {.thread.} = let clientContext = newContext(verifyMode = CVerifyNone) - var client = newSocket(buffered = false) + var client = createSocket() clientContext.wrapSocket(client) client.connect("localhost", port) @@ -27,7 +40,7 @@ proc abruptShutdown(port: Port) {.thread.} = proc notifiedShutdown(port: Port) {.thread.} = let clientContext = newContext(verifyMode = CVerifyNone) - var client = newSocket(buffered = false) + var client = createSocket() clientContext.wrapSocket(client) client.connect("localhost", port) @@ -49,13 +62,7 @@ proc main() = keyFile = "tests/testdata/mycert.pem") block peer_close_during_write_without_shutdown: - var server = newSocket(buffered = false) - defer: server.close() - serverContext.wrapSocket(server) - server.bindAddr(address = "localhost") - let (_, port) = server.getLocalAddr() - server.listen() - + var (server, port) = createServer(serverContext) var clientThread: Thread[Port] createThread(clientThread, abruptShutdown, port) @@ -73,19 +80,14 @@ proc main() = discard finally: peer.close() + server.close() when defined(posix): if sigaction(SIGPIPE, oldSigPipeHandler, nil) == -1: raiseOSError(osLastError(), "Couldn't restore SIGPIPE handler") block peer_close_before_received_shutdown: - var server = newSocket(buffered = false) - defer: server.close() - serverContext.wrapSocket(server) - server.bindAddr(address = "localhost") - let (_, port) = server.getLocalAddr() - server.listen() - + var (server, port) = createServer(serverContext) var clientThread: Thread[Port] createThread(clientThread, abruptShutdown, port) @@ -104,15 +106,10 @@ proc main() = discard peer.getFd.shutdown(SD_SEND) finally: peer.close() + server.close() block peer_close_after_received_shutdown: - var server = newSocket(buffered = false) - defer: server.close() - serverContext.wrapSocket(server) - server.bindAddr(address = "localhost") - let (_, port) = server.getLocalAddr() - server.listen() - + var (server, port) = createServer(serverContext) var clientThread: Thread[Port] createThread(clientThread, notifiedShutdown, port) @@ -132,5 +129,6 @@ proc main() = discard peer.getFd.shutdown(SD_SEND) finally: peer.close() + server.close() when isMainModule: main() |