mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-30 01:44:37 +00:00
Add bool to determine if socket has been closed.
This commit is contained in:
@@ -116,7 +116,7 @@ proc sendStatus(client: PAsyncSocket, status: string): Future[void] =
|
||||
proc processClient(client: PAsyncSocket, address: string,
|
||||
callback: proc (request: TRequest):
|
||||
Future[void] {.closure, gcsafe.}) {.async.} =
|
||||
while true:
|
||||
while not client.closed:
|
||||
# GET /path HTTP/1.1
|
||||
# Header: val
|
||||
# \n
|
||||
|
||||
@@ -67,7 +67,8 @@ type
|
||||
# PAsyncSocket* {.borrow: `.`.} = distinct PSocket. But that doesn't work.
|
||||
AsyncSocketDesc = object
|
||||
fd*: SocketHandle
|
||||
case isBuffered*: bool # determines whether this socket is buffered.
|
||||
closed*: bool ## determines whether this socket has been closed
|
||||
case isBuffered*: bool ## determines whether this socket is buffered.
|
||||
of true:
|
||||
buffer*: array[0..BufferSize, char]
|
||||
currPos*: int # current index in buffer
|
||||
@@ -400,6 +401,7 @@ proc close*(socket: PAsyncSocket) =
|
||||
raiseSslError()
|
||||
elif res != 1:
|
||||
raiseSslError()
|
||||
socket.closed = true # TODO: Add extra debugging checks for this.
|
||||
|
||||
when defined(ssl):
|
||||
proc wrapSocket*(ctx: SslContext, socket: AsyncSocket) =
|
||||
|
||||
Reference in New Issue
Block a user