partial revert and redesign of #19814, changelog (#20341)

* conservative partial revert of #19814

* fix

* revert tssl

* revert azure CI change

* keep azure, revert version range

* fully revert CI, add changelog

* useOpenssl3 as separate define, .3 is a version
This commit is contained in:
metagn
2022-09-14 21:14:58 +03:00
committed by GitHub
parent a73ae3e066
commit 79afee868d
6 changed files with 60 additions and 36 deletions

View File

@@ -16,22 +16,9 @@ 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 = createSocket()
var client = newSocket(buffered = false)
clientContext.wrapSocket(client)
client.connect("localhost", port)
@@ -40,7 +27,7 @@ proc abruptShutdown(port: Port) {.thread.} =
proc notifiedShutdown(port: Port) {.thread.} =
let clientContext = newContext(verifyMode = CVerifyNone)
var client = createSocket()
var client = newSocket(buffered = false)
clientContext.wrapSocket(client)
client.connect("localhost", port)
@@ -62,7 +49,13 @@ proc main() =
keyFile = "tests/testdata/mycert.pem")
block peer_close_during_write_without_shutdown:
var (server, port) = createServer(serverContext)
var server = newSocket(buffered = false)
defer: server.close()
serverContext.wrapSocket(server)
server.bindAddr(address = "localhost")
let (_, port) = server.getLocalAddr()
server.listen()
var clientThread: Thread[Port]
createThread(clientThread, abruptShutdown, port)
@@ -80,14 +73,19 @@ 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, port) = createServer(serverContext)
var server = newSocket(buffered = false)
defer: server.close()
serverContext.wrapSocket(server)
server.bindAddr(address = "localhost")
let (_, port) = server.getLocalAddr()
server.listen()
var clientThread: Thread[Port]
createThread(clientThread, abruptShutdown, port)
@@ -106,10 +104,15 @@ proc main() =
discard peer.getFd.shutdown(SD_SEND)
finally:
peer.close()
server.close()
block peer_close_after_received_shutdown:
var (server, port) = createServer(serverContext)
var server = newSocket(buffered = false)
defer: server.close()
serverContext.wrapSocket(server)
server.bindAddr(address = "localhost")
let (_, port) = server.getLocalAddr()
server.listen()
var clientThread: Thread[Port]
createThread(clientThread, notifiedShutdown, port)
@@ -129,6 +132,5 @@ proc main() =
discard peer.getFd.shutdown(SD_SEND)
finally:
peer.close()
server.close()
when isMainModule: main()