summary refs log tree commit diff stats
path: root/lib/impure/ssl.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/impure/ssl.nim')
-rw-r--r--lib/impure/ssl.nim39
1 files changed, 20 insertions, 19 deletions
diff --git a/lib/impure/ssl.nim b/lib/impure/ssl.nim
index bb7cfc0d3..721e5ce51 100644
--- a/lib/impure/ssl.nim
+++ b/lib/impure/ssl.nim
@@ -7,7 +7,7 @@
 #    distribution, for details about the copyright.
 #
 
-## This module provides an easy to use sockets-style 
+## This module provides an easy to use sockets-style
 ## nim interface to the OpenSSL library.
 
 {.deprecated.}
@@ -15,44 +15,45 @@
 import openssl, strutils, os
 
 type
-  TSecureSocket* = object
+  SecureSocket* = object
     ssl: SslPtr
     bio: BIO
+{.deprecated: [TSecureSocket: SecureSocket].}
 
-proc connect*(sock: var TSecureSocket, address: string, 
+proc connect*(sock: var SecureSocket, address: string,
     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:
     raiseOSError(osLastError())
-  
+
   var ctx = SSL_CTX_new(SSLv23_client_method())
   if ctx == nil:
     ERR_print_errors_fp(stderr)
     raiseOSError(osLastError())
-    
-  #if SSL_CTX_load_verify_locations(ctx, 
+
+  #if SSL_CTX_load_verify_locations(ctx,
   #   "/tmp/openssl-0.9.8e/certs/vsign1.pem", NIL) == 0:
   #  echo("Failed load verify locations")
   #  ERR_print_errors_fp(stderr)
-  
+
   sock.bio = BIO_new_ssl_connect(ctx)
   if BIO_get_ssl(sock.bio, addr(sock.ssl)) == 0:
     raiseOSError(osLastError())
 
   if BIO_set_conn_hostname(sock.bio, address & ":" & $port) != 1:
     raiseOSError(osLastError())
-  
+
   if BIO_do_connect(sock.bio) <= 0:
     ERR_print_errors_fp(stderr)
     raiseOSError(osLastError())
-  
+
   result = SSL_get_verify_result(sock.ssl)
 
-proc recvLine*(sock: TSecureSocket, line: var TaintedString): bool =
+proc recvLine*(sock: SecureSocket, line: var TaintedString): bool =
   ## Acts in a similar fashion to the `recvLine` in the sockets module.
   ## Returns false when no data is available to be read.
   ## `Line` must be initialized and not nil!
@@ -71,26 +72,26 @@ proc recvLine*(sock: TSecureSocket, line: var TaintedString): bool =
     add(line.string, c)
 
 
-proc send*(sock: TSecureSocket, data: string) =
+proc send*(sock: SecureSocket, data: string) =
   ## Writes `data` to the socket.
   if BIO_write(sock.bio, data, data.len.cint) <= 0:
     raiseOSError(osLastError())
 
-proc close*(sock: TSecureSocket) =
+proc close*(sock: SecureSocket) =
   ## Closes the socket
   if BIO_free(sock.bio) <= 0:
     ERR_print_errors_fp(stderr)
     raiseOSError(osLastError())
 
-when isMainModule:
-  var s: TSecureSocket
+when not defined(testing) and isMainModule:
+  var s: SecureSocket
   echo connect(s, "smtp.gmail.com", 465)
-  
+
   #var buffer: array[0..255, char]
   #echo BIO_read(bio, buffer, buffer.len)
   var buffer: string = ""
-  
+
   echo s.recvLine(buffer)
-  echo buffer 
+  echo buffer
   echo buffer.len
-  
+