Add checks for invalid socket when creating sockets.
This commit is contained in:
parent
817337af30
commit
21d0cc8cdf
7 changed files with 9 additions and 0 deletions
|
|
@ -84,6 +84,7 @@ proc serve*(action: proc (){.nimcall.}) =
|
||||||
of "tcp", "":
|
of "tcp", "":
|
||||||
when useCaas:
|
when useCaas:
|
||||||
var server = socket()
|
var server = socket()
|
||||||
|
if server == invalidSocket: osError(osLastError())
|
||||||
let p = getConfigVar("server.port")
|
let p = getConfigVar("server.port")
|
||||||
let port = if p.len > 0: parseInt(p).TPort else: 6000.TPort
|
let port = if p.len > 0: parseInt(p).TPort else: 6000.TPort
|
||||||
server.bindAddr(port, getConfigVar("server.address"))
|
server.bindAddr(port, getConfigVar("server.address"))
|
||||||
|
|
|
||||||
|
|
@ -107,6 +107,7 @@ proc ftpClient*(address: string, port = TPort(21),
|
||||||
result.isAsync = false
|
result.isAsync = false
|
||||||
result.dsockConnected = false
|
result.dsockConnected = false
|
||||||
result.csock = socket()
|
result.csock = socket()
|
||||||
|
if result.csock == InvalidSocket: osError(osLastError())
|
||||||
|
|
||||||
proc getDSock(ftp: PFTPClient): TSocket =
|
proc getDSock(ftp: PFTPClient): TSocket =
|
||||||
if ftp.isAsync: return ftp.asyncDSock else: return ftp.dsock
|
if ftp.isAsync: return ftp.asyncDSock else: return ftp.dsock
|
||||||
|
|
@ -213,6 +214,7 @@ proc pasv(ftp: PFTPClient) =
|
||||||
## Negotiate a data connection.
|
## Negotiate a data connection.
|
||||||
if not ftp.isAsync:
|
if not ftp.isAsync:
|
||||||
ftp.dsock = socket()
|
ftp.dsock = socket()
|
||||||
|
if ftp.dsock == InvalidSocket: osError(osLastError())
|
||||||
else:
|
else:
|
||||||
ftp.asyncDSock = AsyncSocket()
|
ftp.asyncDSock = AsyncSocket()
|
||||||
ftp.asyncDSock.handleRead =
|
ftp.asyncDSock.handleRead =
|
||||||
|
|
|
||||||
|
|
@ -288,6 +288,7 @@ proc request*(url: string, httpMethod = httpGET, extraHeaders = "",
|
||||||
add(headers, "\c\L")
|
add(headers, "\c\L")
|
||||||
|
|
||||||
var s = socket()
|
var s = socket()
|
||||||
|
if s == InvalidSocket: osError(osLastError())
|
||||||
var port = sockets.TPort(80)
|
var port = sockets.TPort(80)
|
||||||
if r.scheme == "https":
|
if r.scheme == "https":
|
||||||
when defined(ssl):
|
when defined(ssl):
|
||||||
|
|
|
||||||
|
|
@ -249,6 +249,7 @@ proc reconnect*(irc: PIRC, timeout = 5000) =
|
||||||
if secSinceReconnect < timeout:
|
if secSinceReconnect < timeout:
|
||||||
sleep(timeout - secSinceReconnect)
|
sleep(timeout - secSinceReconnect)
|
||||||
irc.sock = socket()
|
irc.sock = socket()
|
||||||
|
if irc.sock == InvalidSocket: osError(osLastError())
|
||||||
irc.connect()
|
irc.connect()
|
||||||
irc.lastReconnect = epochTime()
|
irc.lastReconnect = epochTime()
|
||||||
|
|
||||||
|
|
@ -274,6 +275,7 @@ proc irc*(address: string, port: TPort = 6667.TPort,
|
||||||
result.messageBuffer = @[]
|
result.messageBuffer = @[]
|
||||||
result.status = SockIdle
|
result.status = SockIdle
|
||||||
result.sock = socket()
|
result.sock = socket()
|
||||||
|
if result.sock == InvalidSocket: osError(osLastError())
|
||||||
|
|
||||||
proc processLine(irc: PIRC, line: string): TIRCEvent =
|
proc processLine(irc: PIRC, line: string): TIRCEvent =
|
||||||
if line.len == 0:
|
if line.len == 0:
|
||||||
|
|
|
||||||
|
|
@ -102,6 +102,7 @@ proc open*(s: var TScgiState, port = TPort(4000), address = "127.0.0.1",
|
||||||
s.input = newString(s.buflen) # will be reused
|
s.input = newString(s.buflen) # will be reused
|
||||||
|
|
||||||
s.server = socket()
|
s.server = socket()
|
||||||
|
if s.server == InvalidSocket: osError(osLastError())
|
||||||
new(s.client) # Initialise s.client for `next`
|
new(s.client) # Initialise s.client for `next`
|
||||||
if s.server == InvalidSocket: scgiError("could not open socket")
|
if s.server == InvalidSocket: scgiError("could not open socket")
|
||||||
#s.server.connect(connectionName, port)
|
#s.server.connect(connectionName, port)
|
||||||
|
|
|
||||||
|
|
@ -238,6 +238,7 @@ when isMainModule:
|
||||||
sock: TSocket
|
sock: TSocket
|
||||||
|
|
||||||
var sock = socket()
|
var sock = socket()
|
||||||
|
if sock == InvalidSocket: osError(osLastError())
|
||||||
#sock.setBlocking(false)
|
#sock.setBlocking(false)
|
||||||
sock.connect("irc.freenode.net", TPort(6667))
|
sock.connect("irc.freenode.net", TPort(6667))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import sockets
|
import sockets
|
||||||
var s: TSocket
|
var s: TSocket
|
||||||
s = socket()
|
s = socket()
|
||||||
|
if s == InvalidSocket: osError(osLastError())
|
||||||
|
|
||||||
s.connect("www.google.com", TPort(80))
|
s.connect("www.google.com", TPort(80))
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue