ChangeSet ID: 13632 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard@wine.codeweavers.com 2004/09/03 13:57:20 Modified files: include : winsock.h dlls/wininet : netconnection.c internet.h ftp.c Makefile.in . : configure.ac configure Log message: Steven Edwards Use Windows sockets when building Wininet on Mingw. Patch: http://cvs.winehq.org/patch.py?id=13632 Old revision New revision Changes Path 1.66 1.67 +3 -0 wine/include/winsock.h 1.8 1.9 +3 -3 wine/dlls/wininet/netconnection.c 1.28 1.29 +6 -0 wine/dlls/wininet/internet.h 1.45 1.46 +15 -15 wine/dlls/wininet/ftp.c 1.26 1.27 +1 -1 wine/dlls/wininet/Makefile.in 1.305 1.306 +4 -2 wine/configure.ac 1.594 1.595 +6 -2 wine/configure Index: wine/include/winsock.h diff -u -p wine/include/winsock.h:1.66 wine/include/winsock.h:1.67 --- wine/include/winsock.h:1.66 Fri May 24 09:52:31 2013 +++ wine/include/winsock.h Fri May 24 09:52:31 2013 @@ -408,11 +408,14 @@ typedef struct WS(fd_set) # endif } WS(fd_set), FD_SET, *PFD_SET, *LPFD_SET; +#ifndef _TIMEVAL_DEFINED +#define _TIMEVAL_DEFINED typedef struct WS(timeval) { long tv_sec; /* seconds */ long tv_usec; /* and microseconds */ } TIMEVAL, *PTIMEVAL, *LPTIMEVAL; +#endif #define WINE_FD_CLR(fd, set, cast) do { \ u_int __i; \ Index: wine/dlls/wininet/netconnection.c diff -u -p wine/dlls/wininet/netconnection.c:1.8 wine/dlls/wininet/netconnection.c:1.9 --- wine/dlls/wininet/netconnection.c:1.8 Fri May 24 09:52:31 2013 +++ wine/dlls/wininet/netconnection.c Fri May 24 09:52:31 2013 @@ -228,7 +228,7 @@ BOOL NETCON_close(WININET_NETCONNECTION if (!connection->useSSL) { int result; - result = close(connection->socketFD); + result = closesocket(connection->socketFD); connection->socketFD = -1; if (result == -1) return FALSE; @@ -237,7 +237,7 @@ BOOL NETCON_close(WININET_NETCONNECTION else { #ifdef HAVE_OPENSSL_SSL_H - close(connection->ssl_sock); + closesocket(connection->ssl_sock); connection->ssl_sock = -1; /* FIXME should we call SSL_shutdown here?? Probably on whatever is the * opposite of NETCON_init.... */ @@ -262,7 +262,7 @@ BOOL NETCON_connect(WININET_NETCONNECTIO result = connect(connection->socketFD, serv_addr, addrlen); if (result == -1) { - close(connection->socketFD); + closesocket(connection->socketFD); connection->socketFD = -1; return FALSE; } Index: wine/dlls/wininet/internet.h diff -u -p wine/dlls/wininet/internet.h:1.28 wine/dlls/wininet/internet.h:1.29 --- wine/dlls/wininet/internet.h:1.28 Fri May 24 09:52:31 2013 +++ wine/dlls/wininet/internet.h Fri May 24 09:52:31 2013 @@ -45,6 +45,12 @@ # include #endif +#ifdef __MINGW32__ +#include "winsock2.h" +#else +#define closesocket close +#endif /* __MINGW32__ */ + /* used for netconnection.c stuff */ typedef struct { Index: wine/dlls/wininet/ftp.c diff -u -p wine/dlls/wininet/ftp.c:1.45 wine/dlls/wininet/ftp.c:1.46 --- wine/dlls/wininet/ftp.c:1.45 Fri May 24 09:52:31 2013 +++ wine/dlls/wininet/ftp.c Fri May 24 09:52:31 2013 @@ -272,7 +272,7 @@ BOOL WINAPI FTP_FtpPutFileW(LPWININETFTP if (FTP_GetDataSocket(lpwfs, &nDataSocket)) { FTP_SendData(lpwfs, nDataSocket, hFile); - close(nDataSocket); + closesocket(nDataSocket); nResCode = FTP_ReceiveResponse(lpwfs, dwContext); if (nResCode) { @@ -286,7 +286,7 @@ BOOL WINAPI FTP_FtpPutFileW(LPWININETFTP lend: if (lpwfs->lstnSocket != -1) - close(lpwfs->lstnSocket); + closesocket(lpwfs->lstnSocket); if (hIC->hdr.dwFlags & INTERNET_FLAG_ASYNC && hIC->lpfnStatusCB) { @@ -691,7 +691,7 @@ HINTERNET WINAPI FTP_FtpFindFirstFileW(L if (FTP_GetDataSocket(lpwfs, &nDataSocket)) { hFindNext = FTP_ReceiveFileList(lpwfs, nDataSocket, lpszSearchFile, lpFindFileData, dwContext); - close(nDataSocket); + closesocket(nDataSocket); nResCode = FTP_ReceiveResponse(lpwfs, lpwfs->hdr.dwContext); if (nResCode != 226 && nResCode != 250) INTERNET_SetLastError(ERROR_NO_MORE_FILES); @@ -703,7 +703,7 @@ HINTERNET WINAPI FTP_FtpFindFirstFileW(L lend: if (lpwfs->lstnSocket != -1) - close(lpwfs->lstnSocket); + closesocket(lpwfs->lstnSocket); if (hIC->hdr.dwFlags & INTERNET_FLAG_ASYNC && hIC->lpfnStatusCB) { @@ -1034,7 +1034,7 @@ HINTERNET FTP_FtpOpenFileW(LPWININETFTPS } if (lpwfs->lstnSocket != -1) - close(lpwfs->lstnSocket); + closesocket(lpwfs->lstnSocket); hIC = (LPWININETAPPINFOW) lpwfs->hdr.lpwhparent; if (hIC->hdr.dwFlags & INTERNET_FLAG_ASYNC && hIC->lpfnStatusCB) @@ -1207,13 +1207,13 @@ BOOL WINAPI FTP_FtpGetFileW(LPWININETFTP else FTP_SetResponseError(nResCode); } - close(nDataSocket); + closesocket(nDataSocket); } } lend: if (lpwfs->lstnSocket != -1) - close(lpwfs->lstnSocket); + closesocket(lpwfs->lstnSocket); if (hFile) CloseHandle(hFile); @@ -1741,7 +1741,7 @@ HINTERNET FTP_Connect(LPWININETAPPINFOW lerror: if (!bSuccess && nsocket == -1) - close(nsocket); + closesocket(nsocket); if (!bSuccess && lpwfs) { @@ -2066,7 +2066,7 @@ BOOL FTP_SendStore(LPWININETFTPSESSIONW lend: if (!bSuccess && lpwfs->lstnSocket != -1) { - close(lpwfs->lstnSocket); + closesocket(lpwfs->lstnSocket); lpwfs->lstnSocket = -1; } @@ -2122,7 +2122,7 @@ BOOL FTP_InitListenSocket(LPWININETFTPSE lend: if (!bSuccess && lpwfs->lstnSocket == -1) { - close(lpwfs->lstnSocket); + closesocket(lpwfs->lstnSocket); lpwfs->lstnSocket = -1; } @@ -2386,7 +2386,7 @@ BOOL FTP_GetDataSocket(LPWININETFTPSESSI else { *nDataSocket = accept(lpwfs->lstnSocket, (struct sockaddr *) &saddr, &addrlen); - close(lpwfs->lstnSocket); + closesocket(lpwfs->lstnSocket); lpwfs->lstnSocket = -1; } return *nDataSocket != -1; @@ -2518,7 +2518,7 @@ DWORD FTP_SendRetrieve(LPWININETFTPSESSI lend: if (0 == nResult && lpwfs->lstnSocket != -1) { - close(lpwfs->lstnSocket); + closesocket(lpwfs->lstnSocket); lpwfs->lstnSocket = -1; } @@ -2600,10 +2600,10 @@ static void FTP_CloseSessionHandle(LPWIN lpwfs->download_in_progress->session_deleted = TRUE; if (lpwfs->sndSocket != -1) - close(lpwfs->sndSocket); + closesocket(lpwfs->sndSocket); if (lpwfs->lstnSocket != -1) - close(lpwfs->lstnSocket); + closesocket(lpwfs->lstnSocket); if (lpwfs->lpszPassword) HeapFree(GetProcessHeap(), 0, lpwfs->lpszPassword); @@ -2668,7 +2668,7 @@ static void FTP_CloseFileTransferHandle( nResCode = FTP_ReceiveResponse(lpwfs, lpwfs->hdr.dwContext); if (lpwh->nDataSocket != -1) - close(lpwh->nDataSocket); + closesocket(lpwh->nDataSocket); HeapFree(GetProcessHeap(), 0, lpwh); } Index: wine/dlls/wininet/Makefile.in diff -u -p wine/dlls/wininet/Makefile.in:1.26 wine/dlls/wininet/Makefile.in:1.27 --- wine/dlls/wininet/Makefile.in:1.26 Fri May 24 09:52:31 2013 +++ wine/dlls/wininet/Makefile.in Fri May 24 09:52:31 2013 @@ -5,7 +5,7 @@ SRCDIR = @srcdir@ VPATH = @srcdir@ MODULE = wininet.dll IMPORTS = mpr shlwapi shell32 user32 advapi32 kernel32 ntdll -EXTRALIBS = $(LIBUNICODE) +EXTRALIBS = $(LIBUNICODE) @SOCKETLIBS@ C_SRCS = \ cookie.c \ Index: wine/configure.ac diff -u -p wine/configure.ac:1.305 wine/configure.ac:1.306 --- wine/configure.ac:1.305 Fri May 24 09:52:31 2013 +++ wine/configure.ac Fri May 24 09:52:31 2013 @@ -984,10 +984,12 @@ case $build_os in AC_SUBST(LDPATH,"LD_LIBRARY_PATH=\"\$(TOOLSDIR)/libs/unicode:\$\$LD_LIBRARY_PATH\"") ;; esac -dnl Mingw needs explicit msvcrt for linking libwine +dnl Mingw needs explicit msvcrt for linking libwine and winsock for wininet case $host_os in mingw32*) - AC_SUBST(CRTLIBS,"-lmsvcrt") ;; + AC_SUBST(CRTLIBS,"-lmsvcrt") + AC_SUBST(SOCKETLIBS,"-lws2_32") + ;; esac case $host_os in Index: wine/configure diff -u -p wine/configure:1.594 wine/configure:1.595 --- wine/configure:1.594 Fri May 24 09:52:32 2013 +++ wine/configure Fri May 24 09:52:32 2013 @@ -311,7 +311,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS WIN16_FILES WIN16_INSTALL build build_cpu build_vendor build_os host host_cpu host_vendor host_os SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPPBIN ac_ct_CPPBIN TOOLSDIR CPP X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS LEX LEXLIB LEX_OUTPUT_ROOT XLEX BISON AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP WINDRES ac_ct_WINDRES LN_S LN EGREP LDCONFIG INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LINT LINTFLAGS DB2HTML DB2PDF DB2PS DB2TXT FONTFORGE LIBPTHREAD XLIB XFILES OPENGLFILES GLU32FILES OPENGL_LIBS GLUT_LIBS GLUT32FILES NASLIBS CURSESLIBS sane_devel SANELIBS SANEINCL ICULIBS ft_devel ft_devel2 FREETYPELIBS FREETYPEINCL FONTSSUBDIRS ARTSCCONFIG ARTSLIBS ARTSINCL ALSALIBS AUDIOIOLIBS CAPI4LINUXLIBS EXTRACFLAGS DLLEXT DLLFLAGS DLLIBS LDSHARED LDDLLFLAGS LIBEXT IMPLIBEXT DLLTOOL ac_ct_DLLTOOL DLLWRAP ac_ct_DLLWRAP LDEXECFLAGS LDLIBWINEFLAGS COREFOUNDATIONLIB IOKITLIB CROSSTEST CROSSCC CROSSWINDRES LDPATH CRTLIBS WINE_BINARIES MAIN_BINARY LDD ALLOCA LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS WIN16_FILES WIN16_INSTALL build build_cpu build_vendor build_os host host_cpu host_vendor host_os SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPPBIN ac_ct_CPPBIN TOOLSDIR CPP X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS LEX LEXLIB LEX_OUTPUT_ROOT XLEX BISON AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP WINDRES ac_ct_WINDRES LN_S LN EGREP LDCONFIG INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LINT LINTFLAGS DB2HTML DB2PDF DB2PS DB2TXT FONTFORGE LIBPTHREAD XLIB XFILES OPENGLFILES GLU32FILES OPENGL_LIBS GLUT_LIBS GLUT32FILES NASLIBS CURSESLIBS sane_devel SANELIBS SANEINCL ICULIBS ft_devel ft_devel2 FREETYPELIBS FREETYPEINCL FONTSSUBDIRS ARTSCCONFIG ARTSLIBS ARTSINCL ALSALIBS AUDIOIOLIBS CAPI4LINUXLIBS EXTRACFLAGS DLLEXT DLLFLAGS DLLIBS LDSHARED LDDLLFLAGS LIBEXT IMPLIBEXT DLLTOOL ac_ct_DLLTOOL DLLWRAP ac_ct_DLLWRAP LDEXECFLAGS LDLIBWINEFLAGS COREFOUNDATIONLIB IOKITLIB CROSSTEST CROSSCC CROSSWINDRES LDPATH CRTLIBS SOCKETLIBS WINE_BINARIES MAIN_BINARY LDD ALLOCA LIBOBJS LTLIBOBJS' ac_subst_files='MAKE_RULES MAKE_DLL_RULES MAKE_TEST_RULES MAKE_LIB_RULES MAKE_PROG_RULES' # Initialize some variables set by options. @@ -14217,7 +14217,10 @@ esac case $host_os in mingw32*) CRTLIBS="-lmsvcrt" - ;; + + SOCKETLIBS="-lws2_32" + + ;; esac case $host_os in @@ -20998,6 +21001,7 @@ s,@CROSSCC@,$CROSSCC,;t t s,@CROSSWINDRES@,$CROSSWINDRES,;t t s,@LDPATH@,$LDPATH,;t t s,@CRTLIBS@,$CRTLIBS,;t t +s,@SOCKETLIBS@,$SOCKETLIBS,;t t s,@WINE_BINARIES@,$WINE_BINARIES,;t t s,@MAIN_BINARY@,$MAIN_BINARY,;t t s,@LDD@,$LDD,;t t