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