diff options
author | Dominik Picheta <dominikpicheta@googlemail.com> | 2014-04-15 13:51:25 +0100 |
---|---|---|
committer | Dominik Picheta <dominikpicheta@googlemail.com> | 2014-04-15 13:51:25 +0100 |
commit | 21d0cc8cdf432b0eaf0bd6ea16d00070ab9dab89 (patch) | |
tree | b7a54e0ca35c336dce49f259b1f40b50a024b9be | |
parent | 817337af304b8cdf8b96754ae039044840333a02 (diff) | |
download | Nim-21d0cc8cdf432b0eaf0bd6ea16d00070ab9dab89.tar.gz |
Add checks for invalid socket when creating sockets.
-rw-r--r-- | compiler/service.nim | 1 | ||||
-rw-r--r-- | lib/pure/ftpclient.nim | 2 | ||||
-rw-r--r-- | lib/pure/httpclient.nim | 1 | ||||
-rw-r--r-- | lib/pure/irc.nim | 2 | ||||
-rw-r--r-- | lib/pure/scgi.nim | 1 | ||||
-rw-r--r-- | lib/pure/selectors.nim | 1 | ||||
-rw-r--r-- | tests/stdlib/tsockets.nim | 1 |
7 files changed, 9 insertions, 0 deletions
diff --git a/compiler/service.nim b/compiler/service.nim index 42c4aa9f4..2b861e1c7 100644 --- a/compiler/service.nim +++ b/compiler/service.nim @@ -84,6 +84,7 @@ proc serve*(action: proc (){.nimcall.}) = of "tcp", "": when useCaas: var server = socket() + if server == invalidSocket: osError(osLastError()) let p = getConfigVar("server.port") let port = if p.len > 0: parseInt(p).TPort else: 6000.TPort server.bindAddr(port, getConfigVar("server.address")) diff --git a/lib/pure/ftpclient.nim b/lib/pure/ftpclient.nim index f136e0016..3bb55239b 100644 --- a/lib/pure/ftpclient.nim +++ b/lib/pure/ftpclient.nim @@ -107,6 +107,7 @@ proc ftpClient*(address: string, port = TPort(21), result.isAsync = false result.dsockConnected = false result.csock = socket() + if result.csock == InvalidSocket: osError(osLastError()) proc getDSock(ftp: PFTPClient): TSocket = if ftp.isAsync: return ftp.asyncDSock else: return ftp.dsock @@ -213,6 +214,7 @@ proc pasv(ftp: PFTPClient) = ## Negotiate a data connection. if not ftp.isAsync: ftp.dsock = socket() + if ftp.dsock == InvalidSocket: osError(osLastError()) else: ftp.asyncDSock = AsyncSocket() ftp.asyncDSock.handleRead = diff --git a/lib/pure/httpclient.nim b/lib/pure/httpclient.nim index 2a145eb89..1a0d8c5e1 100644 --- a/lib/pure/httpclient.nim +++ b/lib/pure/httpclient.nim @@ -288,6 +288,7 @@ proc request*(url: string, httpMethod = httpGET, extraHeaders = "", add(headers, "\c\L") var s = socket() + if s == InvalidSocket: osError(osLastError()) var port = sockets.TPort(80) if r.scheme == "https": when defined(ssl): diff --git a/lib/pure/irc.nim b/lib/pure/irc.nim index 83fb231f6..31a673210 100644 --- a/lib/pure/irc.nim +++ b/lib/pure/irc.nim @@ -249,6 +249,7 @@ proc reconnect*(irc: PIRC, timeout = 5000) = if secSinceReconnect < timeout: sleep(timeout - secSinceReconnect) irc.sock = socket() + if irc.sock == InvalidSocket: osError(osLastError()) irc.connect() irc.lastReconnect = epochTime() @@ -274,6 +275,7 @@ proc irc*(address: string, port: TPort = 6667.TPort, result.messageBuffer = @[] result.status = SockIdle result.sock = socket() + if result.sock == InvalidSocket: osError(osLastError()) proc processLine(irc: PIRC, line: string): TIRCEvent = if line.len == 0: diff --git a/lib/pure/scgi.nim b/lib/pure/scgi.nim index 04b77fafe..a6a0faabc 100644 --- a/lib/pure/scgi.nim +++ b/lib/pure/scgi.nim @@ -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.server = socket() + if s.server == InvalidSocket: osError(osLastError()) new(s.client) # Initialise s.client for `next` if s.server == InvalidSocket: scgiError("could not open socket") #s.server.connect(connectionName, port) diff --git a/lib/pure/selectors.nim b/lib/pure/selectors.nim index a4a7b5afd..6b5381c36 100644 --- a/lib/pure/selectors.nim +++ b/lib/pure/selectors.nim @@ -238,6 +238,7 @@ when isMainModule: sock: TSocket var sock = socket() + if sock == InvalidSocket: osError(osLastError()) #sock.setBlocking(false) sock.connect("irc.freenode.net", TPort(6667)) diff --git a/tests/stdlib/tsockets.nim b/tests/stdlib/tsockets.nim index 6078504f5..2b282c80d 100644 --- a/tests/stdlib/tsockets.nim +++ b/tests/stdlib/tsockets.nim @@ -1,6 +1,7 @@ import sockets var s: TSocket s = socket() +if s == InvalidSocket: osError(osLastError()) s.connect("www.google.com", TPort(80)) |