summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2014-09-17 10:04:36 +0200
committerAraq <rumpf_a@web.de>2014-09-17 10:04:36 +0200
commit17ce01c3e1268a6bdcc4504aa2d0591e6047bd7f (patch)
tree65af67e3a8adb1b8b58c0cb5a0312189a9e03137 /lib
parent0c25f7e2027121b2184b6e993b0d78631296b777 (diff)
downloadNim-17ce01c3e1268a6bdcc4504aa2d0591e6047bd7f.tar.gz
some progress on documentation building
Diffstat (limited to 'lib')
-rw-r--r--lib/impure/ssl.nim32
-rw-r--r--lib/wrappers/openssl.nim4
2 files changed, 18 insertions, 18 deletions
diff --git a/lib/impure/ssl.nim b/lib/impure/ssl.nim
index cae9990b9..bb7cfc0d3 100644
--- a/lib/impure/ssl.nim
+++ b/lib/impure/ssl.nim
@@ -15,24 +15,24 @@
 import openssl, strutils, os
 
 type
-  TSecureSocket* {.final.} = object
-    ssl: PSSL
-    bio: PBIO
+  TSecureSocket* = object
+    ssl: SslPtr
+    bio: BIO
 
 proc connect*(sock: var TSecureSocket, address: string, 
-    port: int): Int =
+    port: int): int =
   ## Connects to the specified `address` on the specified `port`.
   ## Returns the result of the certificate validation.
   SslLoadErrorStrings()
   ERR_load_BIO_strings()
   
   if SSL_library_init() != 1:
-    OSError()
+    raiseOSError(osLastError())
   
   var ctx = SSL_CTX_new(SSLv23_client_method())
   if ctx == nil:
     ERR_print_errors_fp(stderr)
-    OSError()
+    raiseOSError(osLastError())
     
   #if SSL_CTX_load_verify_locations(ctx, 
   #   "/tmp/openssl-0.9.8e/certs/vsign1.pem", NIL) == 0:
@@ -41,14 +41,14 @@ proc connect*(sock: var TSecureSocket, address: string,
   
   sock.bio = BIO_new_ssl_connect(ctx)
   if BIO_get_ssl(sock.bio, addr(sock.ssl)) == 0:
-    OSError()
+    raiseOSError(osLastError())
 
   if BIO_set_conn_hostname(sock.bio, address & ":" & $port) != 1:
-    OSError()
+    raiseOSError(osLastError())
   
   if BIO_do_connect(sock.bio) <= 0:
     ERR_print_errors_fp(stderr)
-    OSError()
+    raiseOSError(osLastError())
   
   result = SSL_get_verify_result(sock.ssl)
 
@@ -57,30 +57,30 @@ proc recvLine*(sock: TSecureSocket, line: var TaintedString): bool =
   ## Returns false when no data is available to be read.
   ## `Line` must be initialized and not nil!
   setLen(line.string, 0)
-  while True:
+  while true:
     var c: array[0..0, char]
     var n = BIO_read(sock.bio, c, c.len.cint)
-    if n <= 0: return False
+    if n <= 0: return false
     if c[0] == '\r':
       n = BIO_read(sock.bio, c, c.len.cint)
       if n > 0 and c[0] == '\L':
-        return True
+        return true
       elif n <= 0:
-        return False
-    elif c[0] == '\L': return True
+        return false
+    elif c[0] == '\L': return true
     add(line.string, c)
 
 
 proc send*(sock: TSecureSocket, data: string) =
   ## Writes `data` to the socket.
   if BIO_write(sock.bio, data, data.len.cint) <= 0:
-    OSError()
+    raiseOSError(osLastError())
 
 proc close*(sock: TSecureSocket) =
   ## Closes the socket
   if BIO_free(sock.bio) <= 0:
     ERR_print_errors_fp(stderr)
-    OSError()
+    raiseOSError(osLastError())
 
 when isMainModule:
   var s: TSecureSocket
diff --git a/lib/wrappers/openssl.nim b/lib/wrappers/openssl.nim
index 7f24507ba..a668f3526 100644
--- a/lib/wrappers/openssl.nim
+++ b/lib/wrappers/openssl.nim
@@ -480,7 +480,7 @@ proc hexStr (buf:cstring): string =
   for i in 0 .. <16:
     result.add toHex(buf[i].ord, 2).toLower
 
-proc md5_File* (file: string): string {.raises:[EIO,Ebase].} =
+proc md5_File* (file: string): string {.raises: [IOError,Exception].} =
   ## Generate MD5 hash for a file. Result is a 32 character
   # hex string with lowercase characters (like the output
   # of `md5sum`
@@ -500,7 +500,7 @@ proc md5_File* (file: string): string {.raises:[EIO,Ebase].} =
   
   result = hexStr(buf)
 
-proc md5_Str* (str:string): string {.raises:[EIO].} =
+proc md5_Str* (str:string): string {.raises:[IOError].} =
   ##Generate MD5 hash for a string. Result is a 32 character
   #hex string with lowercase characters
   var