Commit 852c7ae4 authored by David Hammerton's avatar David Hammerton Committed by Alexandre Julliard

- implemented support for https protocol

- fixes to the http protocol
parent 4ee8290b
......@@ -6672,7 +6672,6 @@ done
XFILES=""
OPENGLFILES=""
......@@ -12848,6 +12847,136 @@ cat >>confdefs.h <<_ACEOF
#define SONAME_LIBJACK "$ac_cv_lib_soname_jack"
_ACEOF
fi
echo "$as_me:$LINENO: checking for -lssl soname" >&5
echo $ECHO_N "checking for -lssl soname... $ECHO_C" >&6
if test "${ac_cv_lib_soname_ssl+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_get_soname_save_LIBS=$LIBS
LIBS="-lssl $LIBS"
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char SSL_library_init ();
int
main ()
{
SSL_library_init ();
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_soname_ssl=`$ac_cv_path_LDD conftest$ac_exeext | grep libssl\\.so | sed 's/^[ ]*\([^ ]*\)[ ]*=>.*$/\1/'`
if test "x$ac_cv_lib_soname_ssl" = "x"
then
ac_cv_lib_soname_ssl="libssl.so"
fi
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_lib_soname_ssl="libssl.so"
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_get_soname_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_soname_ssl" >&5
echo "${ECHO_T}$ac_cv_lib_soname_ssl" >&6
if test "x$ac_cv_lib_soname_ssl" != xNONE
then
cat >>confdefs.h <<_ACEOF
#define SONAME_LIBSSL "$ac_cv_lib_soname_ssl"
_ACEOF
fi
echo "$as_me:$LINENO: checking for -lcrypto soname" >&5
echo $ECHO_N "checking for -lcrypto soname... $ECHO_C" >&6
if test "${ac_cv_lib_soname_crypto+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_get_soname_save_LIBS=$LIBS
LIBS="-lcrypto $LIBS"
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char BIO_new_socket ();
int
main ()
{
BIO_new_socket ();
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_soname_crypto=`$ac_cv_path_LDD conftest$ac_exeext | grep libcrypto\\.so | sed 's/^[ ]*\([^ ]*\)[ ]*=>.*$/\1/'`
if test "x$ac_cv_lib_soname_crypto" = "x"
then
ac_cv_lib_soname_crypto="libcrypto.so"
fi
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_lib_soname_crypto="libcrypto.so"
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_get_soname_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_soname_crypto" >&5
echo "${ECHO_T}$ac_cv_lib_soname_crypto" >&6
if test "x$ac_cv_lib_soname_crypto" != xNONE
then
cat >>confdefs.h <<_ACEOF
#define SONAME_LIBCRYPTO "$ac_cv_lib_soname_crypto"
_ACEOF
fi
fi
......@@ -13445,6 +13574,7 @@ done
for ac_header in \
arpa/inet.h \
arpa/nameser.h \
......@@ -13473,6 +13603,7 @@ for ac_header in \
netinet/in_systm.h \
netinet/tcp.h \
netinet/tcp_fsm.h \
openssl/ssl.h \
pty.h \
pwd.h \
regex.h \
......
......@@ -161,7 +161,6 @@ AC_CHECK_HEADERS(gif_lib.h,
[AC_DEFINE(HAVE_LIBGIF,1)
GIFLIB="-lgif"])]))
AC_SUBST(XLIB)
AC_SUBST(XFILES)
XFILES=""
......@@ -910,6 +909,8 @@ then
WINE_GET_SONAME(GL,glXQueryExtension,[$X_LIBS $X_EXTRA_LIBS])
WINE_GET_SONAME(cups,cupsGetDefault)
WINE_GET_SONAME(jack,jack_client_new)
WINE_GET_SONAME(ssl,SSL_library_init)
WINE_GET_SONAME(crypto,BIO_new_socket)
fi
......@@ -1004,6 +1005,7 @@ AC_CHECK_HEADERS(\
netinet/in_systm.h \
netinet/tcp.h \
netinet/tcp_fsm.h \
openssl/ssl.h \
pty.h \
pwd.h \
regex.h \
......
......@@ -11,9 +11,11 @@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o
C_SRCS = \
cookie.c \
ftp.c \
http.c \
internet.c \
netconnection.c \
urlcache.c \
utility.c \
wininet_main.c
......
......@@ -31,6 +31,20 @@
# include <sys/types.h>
# include <netinet/in.h>
#endif
#ifdef HAVE_OPENSSL_SSL_H
# include <openssl/ssl.h>
#endif
/* used for netconnection.c stuff */
typedef struct
{
BOOL useSSL;
int socketFD;
#ifdef HAVE_OPENSSL_SSL_H
SSL *ssl_s;
int ssl_sock;
#endif
} WININET_NETCONNECTION;
typedef enum
{
......@@ -93,7 +107,7 @@ typedef struct
LPSTR lpszPath;
LPSTR lpszVerb;
LPSTR lpszHostName;
INT nSocketFD;
WININET_NETCONNECTION netConnection;
HTTPHEADERA StdHeaders[HTTP_QUERY_MAX+1];
HTTPHEADERA *pCustHeaders;
INT nCustHeaders;
......@@ -265,6 +279,19 @@ VOID SendAsyncCallbackInt(LPWININETAPPINFOA hIC, HINTERNET hHttpSession,
lpvStatusInfo , DWORD dwStatusInfoLength);
BOOL NETCON_connected(WININET_NETCONNECTION *connection);
void NETCON_init(WININET_NETCONNECTION *connnection, BOOL useSSL);
BOOL NETCON_create(WININET_NETCONNECTION *connection, int domain,
int type, int protocol);
BOOL NETCON_close(WININET_NETCONNECTION *connection);
BOOL NETCON_connect(WININET_NETCONNECTION *connection, const struct sockaddr *serv_addr,
socklen_t addrlen);
BOOL NETCON_send(WININET_NETCONNECTION *connection, const void *msg, size_t len, int flags,
int *sent /* out */);
BOOL NETCON_recv(WININET_NETCONNECTION *connection, void *buf, size_t len, int flags,
int *recvd /* out */);
BOOL NETCON_getNextLine(WININET_NETCONNECTION *connection, LPSTR lpszBuffer, LPDWORD dwBuffer);
#define MAX_REPLY_LEN 0x5B4
......
......@@ -371,6 +371,9 @@
/* Define if OpenGL is present on the system */
#undef HAVE_OPENGL
/* Define to 1 if you have the <openssl/ssl.h> header file. */
#undef HAVE_OPENSSL_SSL_H
/* Define if you have the Open Sound system */
#undef HAVE_OSS
......@@ -761,6 +764,9 @@
/* The size of a `long long', as computed by sizeof. */
#undef SIZEOF_LONG_LONG
/* Define to the soname of the libcrypto library. */
#undef SONAME_LIBCRYPTO
/* Define to the soname of the libcups library. */
#undef SONAME_LIBCUPS
......@@ -773,6 +779,9 @@
/* Define to the soname of the libjack library. */
#undef SONAME_LIBJACK
/* Define to the soname of the libssl library. */
#undef SONAME_LIBSSL
/* Define to the soname of the libX11 library. */
#undef SONAME_LIBX11
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment