diff options
author | Sloane Simmons <sloane.simmmons@rewardstyle.com> | 2015-07-03 18:03:28 -0500 |
---|---|---|
committer | Sloane Simmons <sloane.simmmons@rewardstyle.com> | 2015-07-04 09:29:37 -0500 |
commit | b124b8b4bba2bdcecfef634cc05d86676aa5f2c2 (patch) | |
tree | aca25fd1917de3fc04e097660985f7ccdd5f2a77 /lib | |
parent | 96839692430c9ba7e7e669457ac59bf6df8feeb6 (diff) | |
download | Nim-b124b8b4bba2bdcecfef634cc05d86676aa5f2c2.tar.gz |
Use raiseOSError with additionalInfo parameter from devel
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/net.nim | 10 | ||||
-rw-r--r-- | lib/pure/os.nim | 6 | ||||
-rw-r--r-- | lib/pure/rawsockets.nim | 16 | ||||
-rw-r--r-- | lib/pure/sockets.nim | 14 |
4 files changed, 22 insertions, 24 deletions
diff --git a/lib/pure/net.nim b/lib/pure/net.nim index d9f4845f3..141543c70 100644 --- a/lib/pure/net.nim +++ b/lib/pure/net.nim @@ -294,7 +294,7 @@ proc getSocketError*(socket: Socket): OSErrorCode = if result == 0.OSErrorCode: result = socket.lastError if result == 0.OSErrorCode: - raise newException(OSError, "No valid socket error code available") + raiseOSError(result, "No valid socket error code available") proc socketError*(socket: Socket, err: int = -1, async = false, lastError = (-1).OSErrorCode) = @@ -332,10 +332,8 @@ proc socketError*(socket: Socket, err: int = -1, async = false, else: let errStr = $ErrErrorString(sslErr, nil) raiseSSLError(errStr & ": " & errStr) - let osMsg = osErrorMsg osLastError() - if osMsg != "": - errStr.add ". The OS reports: " & osMsg - raise newException(OSError, errStr) + let osErr = osLastError() + raiseOSError(osErr, errStr) of SSL_ERROR_SSL: raiseSSLError() else: raiseSSLError("Unknown Error") @@ -921,7 +919,7 @@ proc send*(socket: Socket, data: string, socketError(socket, lastError = lastError) if sent != data.len: - raise newException(OSError, "Could not send all data.") + raiseOSError(osLastError(), "Could not send all data.") proc trySend*(socket: Socket, data: string): bool {.tags: [WriteIOEffect].} = ## Safe alternative to ``send``. Does not raise an EOS when an error occurs, diff --git a/lib/pure/os.nim b/lib/pure/os.nim index 59a56a1ab..eb7aaa6a6 100644 --- a/lib/pure/os.nim +++ b/lib/pure/os.nim @@ -1019,10 +1019,10 @@ proc moveFile*(source, dest: string) {.rtl, extern: "nos$1", let d = newWideCString(dest) if moveFileW(s, d, 0'i32) == 0'i32: raiseOSError(osLastError()) else: - if moveFileA(source, dest, 0'i32) == 0'i32: raiseOSError(osLastError()) + if moveFileA(source, dest, 0'i32) == 0'i32: raiseOSError(osLastError(),$strerror(errno)) else: if c_rename(source, dest) != 0'i32: - raise newException(OSError, $strerror(errno)) + raiseOSError(osLastError(), $strerror(errno)) when not declared(ENOENT) and not defined(Windows): when NoFakeVars: @@ -1057,7 +1057,7 @@ proc removeFile*(file: string) {.rtl, extern: "nos$1", tags: [WriteDirEffect].} raiseOSError(osLastError()) else: if c_remove(file) != 0'i32 and errno != ENOENT: - raise newException(OSError, $strerror(errno)) + raiseOSError(osLastError(), $strerror(errno)) proc execShellCmd*(command: string): int {.rtl, extern: "nos$1", tags: [ExecIOEffect].} = diff --git a/lib/pure/rawsockets.nim b/lib/pure/rawsockets.nim index 349b0d97a..7873e7226 100644 --- a/lib/pure/rawsockets.nim +++ b/lib/pure/rawsockets.nim @@ -207,7 +207,7 @@ proc getAddrInfo*(address: string, port: Port, domain: Domain = AF_INET, when useWinVersion: raiseOSError(osLastError()) else: - raise newException(OSError, $gai_strerror(gaiResult)) + raiseOSError(osLastError(), $gai_strerror(gaiResult)) proc dealloc*(ai: ptr AddrInfo) = freeaddrinfo(ai) @@ -251,7 +251,7 @@ proc getServByName*(name, proto: string): Servent {.tags: [ReadIOEffect].} = var s = winlean.getservbyname(name, proto) else: var s = posix.getservbyname(name, proto) - if s == nil: raise newException(OSError, "Service not found.") + if s == nil: raiseOSError(osLastError(), "Service not found.") result.name = $s.s_name result.aliases = cstringArrayToSeq(s.s_aliases) result.port = Port(s.s_port) @@ -267,7 +267,7 @@ proc getServByPort*(port: Port, proto: string): Servent {.tags: [ReadIOEffect].} var s = winlean.getservbyport(ze(int16(port)).cint, proto) else: var s = posix.getservbyport(ze(int16(port)).cint, proto) - if s == nil: raise newException(OSError, "Service not found.") + if s == nil: raiseOSError(osLastError(), "Service not found.") result.name = $s.s_name result.aliases = cstringArrayToSeq(s.s_aliases) result.port = Port(s.s_port) @@ -286,7 +286,7 @@ proc getHostByAddr*(ip: string): Hostent {.tags: [ReadIOEffect].} = var s = posix.gethostbyaddr(addr(myaddr), sizeof(myaddr).Socklen, cint(posix.AF_INET)) if s == nil: - raise newException(OSError, $hstrerror(h_errno)) + raiseOSError(osLastError(), $hstrerror(h_errno)) result.name = $s.h_name result.aliases = cstringArrayToSeq(s.h_aliases) @@ -298,7 +298,7 @@ proc getHostByAddr*(ip: string): Hostent {.tags: [ReadIOEffect].} = elif s.h_addrtype == posix.AF_INET6: result.addrtype = AF_INET6 else: - raise newException(OSError, "unknown h_addrtype") + raiseOSError(osLastError(), "unknown h_addrtype") result.addrList = cstringArrayToSeq(s.h_addr_list) result.length = int(s.h_length) @@ -319,7 +319,7 @@ proc getHostByName*(name: string): Hostent {.tags: [ReadIOEffect].} = elif s.h_addrtype == posix.AF_INET6: result.addrtype = AF_INET6 else: - raise newException(OSError, "unknown h_addrtype") + raiseOSError(osLastError(), "unknown h_addrtype") result.addrList = cstringArrayToSeq(s.h_addr_list) result.length = int(s.h_length) @@ -335,7 +335,7 @@ proc getSockDomain*(socket: SocketHandle): Domain = elif name.sa_family == rawAfInet6: result = AF_INET6 else: - raise newException(OSError, "unknown socket family in getSockFamily") + raiseOSError(osLastError(), "unknown socket family in getSockFamily") proc getAddrString*(sockAddr: ptr SockAddr): string = @@ -353,7 +353,7 @@ proc getAddrString*(sockAddr: ptr SockAddr): string = if posix.IN6_IS_ADDR_V4MAPPED(addr6) != 0: result = result.substr("::ffff:".len) else: - raise newException(OSError, "unknown socket family in getAddrString") + raiseOSError(osLastError(), "unknown socket family in getAddrString") proc getSockName*(socket: SocketHandle): Port = diff --git a/lib/pure/sockets.nim b/lib/pure/sockets.nim index a10255e5b..18b2ab1e9 100644 --- a/lib/pure/sockets.nim +++ b/lib/pure/sockets.nim @@ -441,7 +441,7 @@ template gaiNim(a, p, h, list: expr): stmt = when defined(windows): raiseOSError(osLastError()) else: - raise newException(OSError, $gai_strerror(gaiResult)) + raiseOSError(osLastError(), $gai_strerror(gaiResult)) proc bindAddr*(socket: Socket, port = Port(0), address = "") {. tags: [ReadIOEffect].} = @@ -671,7 +671,7 @@ proc getServByName*(name, proto: string): Servent {.tags: [ReadIOEffect].} = var s = winlean.getservbyname(name, proto) else: var s = posix.getservbyname(name, proto) - if s == nil: raise newException(OSError, "Service not found.") + if s == nil: raiseOSError(osLastError(), "Service not found.") result.name = $s.s_name result.aliases = cstringArrayToSeq(s.s_aliases) result.port = Port(s.s_port) @@ -687,7 +687,7 @@ proc getServByPort*(port: Port, proto: string): Servent {.tags: [ReadIOEffect].} var s = winlean.getservbyport(ze(int16(port)).cint, proto) else: var s = posix.getservbyport(ze(int16(port)).cint, proto) - if s == nil: raise newException(OSError, "Service not found.") + if s == nil: raiseOSError(osLastError(), "Service not found.") result.name = $s.s_name result.aliases = cstringArrayToSeq(s.s_aliases) result.port = Port(s.s_port) @@ -706,7 +706,7 @@ proc getHostByAddr*(ip: string): Hostent {.tags: [ReadIOEffect].} = var s = posix.gethostbyaddr(addr(myaddr), sizeof(myaddr).Socklen, cint(posix.AF_INET)) if s == nil: - raise newException(OSError, $hstrerror(h_errno)) + raiseOSError(osLastError(), $hstrerror(h_errno)) result.name = $s.h_name result.aliases = cstringArrayToSeq(s.h_aliases) @@ -718,7 +718,7 @@ proc getHostByAddr*(ip: string): Hostent {.tags: [ReadIOEffect].} = elif s.h_addrtype == posix.AF_INET6: result.addrtype = AF_INET6 else: - raise newException(OSError, "unknown h_addrtype") + raiseOSError(osLastError(), "unknown h_addrtype") result.addrList = cstringArrayToSeq(s.h_addr_list) result.length = int(s.h_length) @@ -739,7 +739,7 @@ proc getHostByName*(name: string): Hostent {.tags: [ReadIOEffect].} = elif s.h_addrtype == posix.AF_INET6: result.addrtype = AF_INET6 else: - raise newException(OSError, "unknown h_addrtype") + raiseOSError(osLastError(), "unknown h_addrtype") result.addrList = cstringArrayToSeq(s.h_addr_list) result.length = int(s.h_length) @@ -1594,7 +1594,7 @@ proc send*(socket: Socket, data: string) {.tags: [WriteIOEffect].} = raiseOSError(osLastError()) if sent != data.len: - raise newException(OSError, "Could not send all data.") + raiseOSError(osLastError(), "Could not send all data.") proc sendAsync*(socket: Socket, data: string): int {.tags: [WriteIOEffect].} = ## sends data to a non-blocking socket. |