wine/dlls/wininet netconnection.c internet.h

Alexandre Julliard julliard at wine.codeweavers.com
Tue Nov 15 06:01:40 CST 2005


ChangeSet ID:	21269
CVSROOT:	/opt/cvs-commit
Module name:	wine
Changes by:	julliard at winehq.org	2005/11/15 06:01:40

Modified files:
	dlls/wininet   : netconnection.c internet.h 

Log message:
	Robert Shearman <rob at codeweavers.com>
	SSL doesn't need to use a different socket to unsecure communications.

Patch: http://cvs.winehq.org/patch.py?id=21269

Old revision  New revision  Changes     Path
 1.14          1.15          +40 -69     wine/dlls/wininet/netconnection.c
 1.39          1.40          +0 -1       wine/dlls/wininet/internet.h

Index: wine/dlls/wininet/netconnection.c
diff -u -p wine/dlls/wininet/netconnection.c:1.14 wine/dlls/wininet/netconnection.c:1.15
--- wine/dlls/wininet/netconnection.c:1.14	15 Nov 2005 12: 1:40 -0000
+++ wine/dlls/wininet/netconnection.c	15 Nov 2005 12: 1:40 -0000
@@ -102,7 +102,6 @@ void NETCON_init(WININET_NETCONNECTION *
     {
 #ifdef HAVE_OPENSSL_SSL_H
         TRACE("using SSL connection\n");
-	connection->ssl_sock = -1;
 	if (OpenSSL_ssl_handle) /* already initilzed everything */
             return;
 	OpenSSL_ssl_handle = wine_dlopen(SONAME_LIBSSL, RTLD_NOW, NULL, 0);
@@ -174,22 +173,10 @@ void NETCON_init(WININET_NETCONNECTION *
 
 BOOL NETCON_connected(WININET_NETCONNECTION *connection)
 {
-    if (!connection->useSSL)
-    {
-	if (connection->socketFD == -1)
-	    return FALSE;
-	return TRUE;
-    }
+    if (connection->socketFD == -1)
+        return FALSE;
     else
-    {
-#ifdef HAVE_OPENSSL_SSL_H
-	if (connection->ssl_sock == -1)
-	    return FALSE;
         return TRUE;
-#else
-	return FALSE;
-#endif
-    }
 }
 
 /******************************************************************************
@@ -200,22 +187,15 @@ BOOL NETCON_connected(WININET_NETCONNECT
 BOOL NETCON_create(WININET_NETCONNECTION *connection, int domain,
 	      int type, int protocol)
 {
-    if (!connection->useSSL)
-    {
-	connection->socketFD = socket(domain, type, protocol);
-	if (connection->socketFD == -1)
-	    return FALSE;
-	return TRUE;
-    }
-    else
-    {
-#ifdef HAVE_OPENSSL_SSL_H
-        connection->ssl_sock = socket(domain, type, protocol);
-        return TRUE;
-#else
-	return FALSE;
+#ifndef HAVE_OPENSSL_SSL_H
+    if (connection->useSSL)
+        return FALSE;
 #endif
-    }
+
+    connection->socketFD = socket(domain, type, protocol);
+    if (connection->socketFD == -1)
+        return FALSE;
+    return TRUE;
 }
 
 /******************************************************************************
@@ -224,31 +204,27 @@ BOOL NETCON_create(WININET_NETCONNECTION
  */
 BOOL NETCON_close(WININET_NETCONNECTION *connection)
 {
+    int result;
+
     if (!NETCON_connected(connection)) return FALSE;
-    if (!connection->useSSL)
-    {
-        int result;
-	result = closesocket(connection->socketFD);
-        connection->socketFD = -1;
-	if (result == -1)
-	    return FALSE;
-        return TRUE;
-    }
-    else
-    {
+
+    result = closesocket(connection->socketFD);
+    connection->socketFD = -1;
+
 #ifdef HAVE_OPENSSL_SSL_H
-	closesocket(connection->ssl_sock);
-	connection->ssl_sock = -1;
+    if (connection->useSSL)
+    {
         HeapFree(GetProcessHeap(),0,connection->peek_msg_mem);
         connection->peek_msg = NULL;
         connection->peek_msg_mem = NULL;
-	/* FIXME should we call SSL_shutdown here?? Probably on whatever is the
-	 * opposite of NETCON_init.... */
-        return TRUE;
-#else
-	return FALSE;
-#endif
+        /* FIXME should we call SSL_shutdown here?? Probably on whatever is the
+         * opposite of NETCON_init.... */
     }
+#endif
+
+    if (result == -1)
+        return FALSE;
+    return TRUE;
 }
 
 /******************************************************************************
@@ -258,42 +234,37 @@ BOOL NETCON_close(WININET_NETCONNECTION 
 BOOL NETCON_connect(WININET_NETCONNECTION *connection, const struct sockaddr *serv_addr,
 		    unsigned int addrlen)
 {
+    int result;
+
     if (!NETCON_connected(connection)) return FALSE;
-    if (!connection->useSSL)
+
+    result = connect(connection->socketFD, serv_addr, addrlen);
+    if (result == -1)
     {
-	int result;
-	result = connect(connection->socketFD, serv_addr, addrlen);
-	if (result == -1)
-        {
-            closesocket(connection->socketFD);
-            connection->socketFD = -1;
-	    return FALSE;
-        }
-        return TRUE;
+        closesocket(connection->socketFD);
+        connection->socketFD = -1;
+        return FALSE;
     }
-    else
-    {
+
 #ifdef HAVE_OPENSSL_SSL_H
+    if (connection->useSSL)
+    {
         BIO *sbio;
 
         ctx = pSSL_CTX_new(meth);
 	connection->ssl_s = pSSL_new(ctx);
 
-	if (connect(connection->ssl_sock, serv_addr, addrlen) == -1)
-	    return FALSE;
-
-	sbio = pBIO_new_socket(connection->ssl_sock, BIO_NOCLOSE);
+	sbio = pBIO_new_socket(connection->socketFD, BIO_NOCLOSE);
         pSSL_set_bio(connection->ssl_s, sbio, sbio);
 	if (pSSL_connect(connection->ssl_s) <= 0)
 	{
             ERR("ssl couldn't connect\n");
 	    return FALSE;
 	}
-	return TRUE;
-#else
-	return FALSE;
-#endif
     }
+#endif
+
+    return TRUE;
 }
 
 /******************************************************************************
Index: wine/dlls/wininet/internet.h
diff -u -p wine/dlls/wininet/internet.h:1.39 wine/dlls/wininet/internet.h:1.40
--- wine/dlls/wininet/internet.h:1.39	15 Nov 2005 12: 1:40 -0000
+++ wine/dlls/wininet/internet.h	15 Nov 2005 12: 1:40 -0000
@@ -61,7 +61,6 @@ typedef struct
     int socketFD;
 #ifdef HAVE_OPENSSL_SSL_H
     SSL *ssl_s;
-    int ssl_sock;
     char *peek_msg;
     char *peek_msg_mem;
 #endif



More information about the wine-cvs mailing list