mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 23:58:49 -05:00
Paul Nolan fix to make libcurl build nicely on Windows CE
This commit is contained in:
parent
8a66584db4
commit
24d47a6e07
3
CHANGES
3
CHANGES
@ -6,6 +6,9 @@
|
|||||||
|
|
||||||
Changelog
|
Changelog
|
||||||
|
|
||||||
|
Daniel (2 November 2004)
|
||||||
|
- Paul Nolan provided a patch to make libcurl build nicely on Windows CE.
|
||||||
|
|
||||||
Daniel (1 November 2004)
|
Daniel (1 November 2004)
|
||||||
- When cross-compiling, the configure script no longer attempts to use
|
- When cross-compiling, the configure script no longer attempts to use
|
||||||
pkg-config on the build host in order to detect OpenSSL compiler options.
|
pkg-config on the build host in order to detect OpenSSL compiler options.
|
||||||
|
@ -52,10 +52,16 @@ extern "C" {
|
|||||||
* platforms. We also provide a CURL_FORMAT_OFF_T define to use in *printf
|
* platforms. We also provide a CURL_FORMAT_OFF_T define to use in *printf
|
||||||
* format strings when outputting a variable of type curl_off_t.
|
* format strings when outputting a variable of type curl_off_t.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(_MSC_VER) || defined(__LCC__)
|
#if defined(_MSC_VER) || defined(__LCC__)
|
||||||
/* MSVC */
|
/* MSVC */
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
typedef long curl_off_t;
|
||||||
|
#define CURL_FORMAT_OFF_T "%ld"
|
||||||
|
#else
|
||||||
typedef signed __int64 curl_off_t;
|
typedef signed __int64 curl_off_t;
|
||||||
#define CURL_FORMAT_OFF_T "%I64d"
|
#define CURL_FORMAT_OFF_T "%I64d"
|
||||||
|
#endif
|
||||||
#else /* _MSC_VER || __LCC__ */
|
#else /* _MSC_VER || __LCC__ */
|
||||||
#if (defined(__GNUC__) && defined(WIN32)) || defined(__WATCOMC__)
|
#if (defined(__GNUC__) && defined(WIN32)) || defined(__WATCOMC__)
|
||||||
/* gcc on windows or Watcom */
|
/* gcc on windows or Watcom */
|
||||||
|
@ -51,7 +51,8 @@
|
|||||||
#define WIN32 1
|
#define WIN32 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(WIN32) && !defined(__GNUC__) || defined(__MINGW32__)
|
#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__GNUC__) || \
|
||||||
|
defined(__MINGW32__)
|
||||||
#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H))
|
#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H))
|
||||||
/* The check above prevents the winsock2 inclusion if winsock.h already was
|
/* The check above prevents the winsock2 inclusion if winsock.h already was
|
||||||
included, since they can't co-exist without problems */
|
included, since they can't co-exist without problems */
|
||||||
|
@ -24,14 +24,14 @@ AUTOMAKE_OPTIONS = foreign nostdinc
|
|||||||
|
|
||||||
DSP = curllib.dsp
|
DSP = curllib.dsp
|
||||||
|
|
||||||
EXTRA_DIST = Makefile.b32 Makefile.m32 \
|
EXTRA_DIST = Makefile.b32 Makefile.m32 \
|
||||||
Makefile.vc6 Makefile.riscos libcurl.def $(DSP) curllib.dsw \
|
Makefile.vc6 Makefile.riscos libcurl.def $(DSP) curllib.dsw \
|
||||||
config-vms.h config-win32.h config-riscos.h config-mac.h config.h.in \
|
config-vms.h config-win32.h config-riscos.h config-mac.h config.h.in \
|
||||||
ca-bundle.crt README.encoding README.memoryleak README.ares \
|
ca-bundle.crt README.encoding README.memoryleak README.ares \
|
||||||
README.curlx makefile.dj config.dj libcurl.framework.make \
|
README.curlx makefile.dj config.dj libcurl.framework.make \
|
||||||
libcurl.plist libcurl.rc config-amigaos.h amigaos.c amigaos.h \
|
libcurl.plist libcurl.rc config-amigaos.h amigaos.c amigaos.h \
|
||||||
makefile.amiga Makefile.netware nwlib.c libcurl.imp \
|
makefile.amiga Makefile.netware nwlib.c libcurl.imp \
|
||||||
msvcproj.head msvcproj.foot
|
msvcproj.head msvcproj.foot config-win32ce.h
|
||||||
|
|
||||||
CLEANFILES = $(DSP)
|
CLEANFILES = $(DSP)
|
||||||
|
|
||||||
|
258
lib/config-win32ce.h
Normal file
258
lib/config-win32ce.h
Normal file
@ -0,0 +1,258 @@
|
|||||||
|
/* config.h. Generated automatically by configure. */
|
||||||
|
/* config.h.in. Generated automatically from configure.in by autoheader. */
|
||||||
|
|
||||||
|
#ifndef __CONFIG_WIN32_H
|
||||||
|
#define __CONFIG_WIN32_H
|
||||||
|
|
||||||
|
/* Define if on AIX 3.
|
||||||
|
System headers sometimes define this.
|
||||||
|
We just want to avoid a redefinition error message. */
|
||||||
|
#ifndef _ALL_SOURCE
|
||||||
|
/* #undef _ALL_SOURCE */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define to empty if the keyword does not work. */
|
||||||
|
/* #undef const */
|
||||||
|
|
||||||
|
/* Define if you don't have vprintf but do have _doprnt. */
|
||||||
|
/* #undef HAVE_DOPRNT */
|
||||||
|
|
||||||
|
/* Define if you have the vprintf function. */
|
||||||
|
#define HAVE_VPRINTF 1
|
||||||
|
|
||||||
|
/* Define as the return type of signal handlers (int or void). */
|
||||||
|
/*#define RETSIGTYPE void */
|
||||||
|
|
||||||
|
/* Define to `unsigned' if <sys/types.h> doesn't define. */
|
||||||
|
/* #undef size_t */
|
||||||
|
|
||||||
|
/* Define this to 'int' if ssize_t is not an available typedefed type */
|
||||||
|
#define ssize_t int
|
||||||
|
|
||||||
|
/* Define this to 'int' if socklen_t is not an available typedefed type */
|
||||||
|
#if !defined(ENABLE_IPV6) && ((_MSC_VER < 1300) || !defined(USE_SSLEAY))
|
||||||
|
#define socklen_t int
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* The size of a `curl_off_t', as computed by sizeof. */
|
||||||
|
#ifdef SIZEOF_CURL_OFF_T
|
||||||
|
#undef SIZEOF_CURL_OFF_T
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Borland lacks _lseeki64(), so we don't support >2GB files */
|
||||||
|
#define SIZEOF_CURL_OFF_T 4
|
||||||
|
|
||||||
|
/* Define if you have the ANSI C header files. */
|
||||||
|
#define STDC_HEADERS 1
|
||||||
|
|
||||||
|
/* Define if you can safely include both <sys/time.h> and <time.h>. */
|
||||||
|
/* #define TIME_WITH_SYS_TIME 1 */
|
||||||
|
|
||||||
|
/* Define cpu-machine-OS */
|
||||||
|
#define OS "i386-pc-win32"
|
||||||
|
|
||||||
|
/* The number of bytes in a long double. */
|
||||||
|
#define SIZEOF_LONG_DOUBLE 16
|
||||||
|
|
||||||
|
/* The number of bytes in a long long. */
|
||||||
|
/* #define SIZEOF_LONG_LONG 8 */
|
||||||
|
|
||||||
|
/* Define if you have the gethostbyaddr function. */
|
||||||
|
#define HAVE_GETHOSTBYADDR 1
|
||||||
|
|
||||||
|
/* Define if you have the gethostname function. */
|
||||||
|
#define HAVE_GETHOSTNAME 1
|
||||||
|
|
||||||
|
/* Define if you have the getpass function. */
|
||||||
|
/*#define HAVE_GETPASS 1*/
|
||||||
|
|
||||||
|
/* Define if you have the getservbyname function. */
|
||||||
|
#define HAVE_GETSERVBYNAME 1
|
||||||
|
|
||||||
|
/* Define if you have the gettimeofday function. */
|
||||||
|
/* #define HAVE_GETTIMEOFDAY 1 */
|
||||||
|
|
||||||
|
/* Define if you have the inet_addr function. */
|
||||||
|
#define HAVE_INET_ADDR 1
|
||||||
|
|
||||||
|
/* Define if you have the inet_ntoa function. */
|
||||||
|
#define HAVE_INET_NTOA 1
|
||||||
|
|
||||||
|
/* Define if you have the perror function. */
|
||||||
|
#define HAVE_PERROR 1
|
||||||
|
|
||||||
|
/* Define if you have the select function. */
|
||||||
|
#define HAVE_SELECT 1
|
||||||
|
|
||||||
|
/* Define if you have the socket function. */
|
||||||
|
#define HAVE_SOCKET 1
|
||||||
|
|
||||||
|
/* Define if you have the strcasecmp function. */
|
||||||
|
/*#define HAVE_STRCASECMP 1*/
|
||||||
|
|
||||||
|
/* Define if you have the stricmp function. */
|
||||||
|
//#define HAVE_STRICMP 1
|
||||||
|
|
||||||
|
/* Define if you have the strdup function. */
|
||||||
|
//#define HAVE_STRDUP 1
|
||||||
|
|
||||||
|
/* Define if you have the strftime function. */
|
||||||
|
//#define HAVE_STRFTIME 1
|
||||||
|
|
||||||
|
/* Define if you have the strstr function. */
|
||||||
|
#define HAVE_STRSTR 1
|
||||||
|
|
||||||
|
/* Define if you have the strtoll function. */
|
||||||
|
#ifdef MINGW32
|
||||||
|
#define HAVE_STRTOLL 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define if you have the tcgetattr function. */
|
||||||
|
/*#define HAVE_TCGETATTR 1*/
|
||||||
|
|
||||||
|
/* Define if you have the tcsetattr function. */
|
||||||
|
/*#define HAVE_TCSETATTR 1*/
|
||||||
|
|
||||||
|
/* Define if you have the uname function. */
|
||||||
|
/*#define HAVE_UNAME 1*/
|
||||||
|
|
||||||
|
/* Define if you have utime() */
|
||||||
|
#define HAVE_UTIME 1
|
||||||
|
|
||||||
|
/* Define if you have the <alloca.h> header file. */
|
||||||
|
/*#define HAVE_ALLOCA_H 1*/
|
||||||
|
|
||||||
|
/* Define if you have the malloc.h file. */
|
||||||
|
#define HAVE_MALLOC_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <arpa/inet.h> header file. */
|
||||||
|
/* #define HAVE_ARPA_INET_H 1 */
|
||||||
|
|
||||||
|
/* Define if you have the <assert.h> header file. */
|
||||||
|
//#define HAVE_ASSERT_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <crypto.h> header file. */
|
||||||
|
/* #undef HAVE_CRYPTO_H */
|
||||||
|
|
||||||
|
/* Define if you have the <dlfcn.h> header file. */
|
||||||
|
/*#define HAVE_DLFCN_H 1*/
|
||||||
|
|
||||||
|
/* Define if you have the <err.h> header file. */
|
||||||
|
/* #undef HAVE_ERR_H */
|
||||||
|
|
||||||
|
/* Define if you have the <fcntl.h> header file. */
|
||||||
|
#define HAVE_FCNTL_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <getopt.h> header file. */
|
||||||
|
/* #undef HAVE_GETOPT_H */
|
||||||
|
|
||||||
|
/* Define if you have the <netdb.h> header file. */
|
||||||
|
/* #define HAVE_NETDB_H 1 */
|
||||||
|
|
||||||
|
/* Define if you have the <netinet/in.h> header file. */
|
||||||
|
/*#define HAVE_NETINET_IN_H 1*/
|
||||||
|
|
||||||
|
/* Define if you have the <sgtty.h> header file. */
|
||||||
|
/*#define HAVE_SGTTY_H 1*/
|
||||||
|
|
||||||
|
/* Define if you have the <ssl.h> header file. */
|
||||||
|
/* #undef HAVE_SSL_H */
|
||||||
|
|
||||||
|
/* Define if you have the <sys/param.h> header file. */
|
||||||
|
/*#define HAVE_SYS_PARAM_H 1*/
|
||||||
|
|
||||||
|
/* Define if you have the <sys/select.h> header file. */
|
||||||
|
/* #define HAVE_SYS_SELECT_H 1 */
|
||||||
|
|
||||||
|
/* Define if you have the <sys/socket.h> header file. */
|
||||||
|
/*#define HAVE_SYS_SOCKET_H 1*/
|
||||||
|
|
||||||
|
/* Define if you have the <sys/sockio.h> header file. */
|
||||||
|
/* #define HAVE_SYS_SOCKIO_H 1 */
|
||||||
|
|
||||||
|
/* Define if you have the <sys/stat.h> header file. */
|
||||||
|
//#define HAVE_SYS_STAT_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <sys/utime.h> header file */
|
||||||
|
#define HAVE_SYS_UTIME_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <sys/types.h> header file. */
|
||||||
|
//#define HAVE_SYS_TYPES_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <termio.h> header file. */
|
||||||
|
/* #define HAVE_TERMIO_H 1 */
|
||||||
|
|
||||||
|
/* Define if you have the <termios.h> header file. */
|
||||||
|
/* #define HAVE_TERMIOS_H 1 */
|
||||||
|
|
||||||
|
/* Name of package */
|
||||||
|
#define PACKAGE "curl"
|
||||||
|
|
||||||
|
/* Define if you have the <io.h> header file. */
|
||||||
|
#define HAVE_IO_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <time.h> header file. */
|
||||||
|
#define HAVE_TIME_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <winsock.h> header file. */
|
||||||
|
#define HAVE_WINSOCK_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <winsock2.h> header file. */
|
||||||
|
//#define HAVE_WINSOCK2_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <ws2tcpip.h> header file. */
|
||||||
|
//#define HAVE_WS2TCPIP_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <stdlib.h> header file. */
|
||||||
|
#define HAVE_STDLIB_H 1
|
||||||
|
|
||||||
|
/* Define if you have the closesocket function. */
|
||||||
|
#define HAVE_CLOSESOCKET 1
|
||||||
|
|
||||||
|
/* Define if you have the setvbuf function. */
|
||||||
|
#define HAVE_SETVBUF 1
|
||||||
|
|
||||||
|
/* Define if you have the RAND_screen function when using SSL */
|
||||||
|
#define HAVE_RAND_SCREEN 1
|
||||||
|
|
||||||
|
/* Define if you have the `RAND_status' function. */
|
||||||
|
#define HAVE_RAND_STATUS 1
|
||||||
|
|
||||||
|
/* Define this to if in_addr_t is not an available typedefed type */
|
||||||
|
#define in_addr_t unsigned long
|
||||||
|
|
||||||
|
/* use ioctlsocket() for non-blocking sockets */
|
||||||
|
#define HAVE_IOCTLSOCKET
|
||||||
|
|
||||||
|
/*************************************************
|
||||||
|
* This section is for compiler specific defines.*
|
||||||
|
*************************************************/
|
||||||
|
/* Borland and MS don't have this */
|
||||||
|
#if defined(MINGW32) || defined(__WATCOMC__) || defined(__LCC__)
|
||||||
|
|
||||||
|
/* Define if you have the <unistd.h> header file. */
|
||||||
|
#define HAVE_UNISTD_H 1
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* WinCE */
|
||||||
|
|
||||||
|
#define CURL_DISABLE_FILE
|
||||||
|
|
||||||
|
#define CURL_DISABLE_TELNET
|
||||||
|
#define CURL_DISABLE_LDAP
|
||||||
|
#define WITHOUT_MM_LIB
|
||||||
|
|
||||||
|
#include <winsock.h>
|
||||||
|
#include <process.h>
|
||||||
|
|
||||||
|
extern int errno;
|
||||||
|
|
||||||
|
#define ENOSPC 1
|
||||||
|
#define ENOMEM 2
|
||||||
|
|
||||||
|
extern int stat(const char *path,struct stat *buffer );
|
||||||
|
|
||||||
|
#endif
|
@ -156,6 +156,7 @@ int Curl_nonblock(curl_socket_t sockfd, /* operate on this */
|
|||||||
/* Windows? */
|
/* Windows? */
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
flags = nonblock;
|
flags = nonblock;
|
||||||
|
|
||||||
return ioctlsocket(sockfd, FIONBIO, &flags);
|
return ioctlsocket(sockfd, FIONBIO, &flags);
|
||||||
#define SETBLOCK 3
|
#define SETBLOCK 3
|
||||||
#endif
|
#endif
|
||||||
@ -406,13 +407,25 @@ static bool verifyconnect(curl_socket_t sockfd, int *error)
|
|||||||
*
|
*
|
||||||
* Someone got to verify this on Win-NT 4.0, 2000."
|
* Someone got to verify this on Win-NT 4.0, 2000."
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
Sleep(0);
|
||||||
|
#else
|
||||||
SleepEx(0, FALSE);
|
SleepEx(0, FALSE);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if( -1 == getsockopt(sockfd, SOL_SOCKET, SO_ERROR,
|
if( -1 == getsockopt(sockfd, SOL_SOCKET, SO_ERROR,
|
||||||
(void *)&err, &errSize))
|
(void *)&err, &errSize))
|
||||||
err = Curl_ourerrno();
|
err = Curl_ourerrno();
|
||||||
|
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
/* Always returns this error, bug in CE? */
|
||||||
|
if(WSAENOPROTOOPT==err)
|
||||||
|
err=0;
|
||||||
|
#endif
|
||||||
|
|
||||||
if ((0 == err) || (EISCONN == err))
|
if ((0 == err) || (EISCONN == err))
|
||||||
/* we are connected, awesome! */
|
/* we are connected, awesome! */
|
||||||
rc = TRUE;
|
rc = TRUE;
|
||||||
|
@ -29,8 +29,12 @@
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_SYS_STAT_H
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
@ -29,8 +29,12 @@
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_SYS_STAT_H
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
@ -168,6 +172,11 @@ static long init_flags = 0;
|
|||||||
* If a memory-using function (like curl_getenv) is used before
|
* If a memory-using function (like curl_getenv) is used before
|
||||||
* curl_global_init() is called, we need to have these pointers set already.
|
* curl_global_init() is called, we need to have these pointers set already.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
#define strdup _strdup
|
||||||
|
#endif
|
||||||
|
|
||||||
curl_malloc_callback Curl_cmalloc = (curl_malloc_callback)malloc;
|
curl_malloc_callback Curl_cmalloc = (curl_malloc_callback)malloc;
|
||||||
curl_free_callback Curl_cfree = (curl_free_callback)free;
|
curl_free_callback Curl_cfree = (curl_free_callback)free;
|
||||||
curl_realloc_callback Curl_crealloc = (curl_realloc_callback)realloc;
|
curl_realloc_callback Curl_crealloc = (curl_realloc_callback)realloc;
|
||||||
|
@ -30,8 +30,12 @@
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_SYS_STAT_H
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
@ -66,9 +70,6 @@
|
|||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_SYS_STAT_H
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#endif
|
|
||||||
#ifdef HAVE_FCNTL_H
|
#ifdef HAVE_FCNTL_H
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -112,7 +112,9 @@ Content-Disposition: form-data; name="FILECONTENT"
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
#ifdef HAVE_SYS_STAT_H
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#endif
|
||||||
#if defined(HAVE_LIBGEN_H) && defined(HAVE_BASENAME)
|
#if defined(HAVE_LIBGEN_H) && defined(HAVE_BASENAME)
|
||||||
#include <libgen.h>
|
#include <libgen.h>
|
||||||
#endif
|
#endif
|
||||||
|
13
lib/ftp.c
13
lib/ftp.c
@ -476,7 +476,7 @@ CURLcode Curl_ftp_connect(struct connectdata *conn)
|
|||||||
char *buf = data->state.buffer; /* this is our buffer */
|
char *buf = data->state.buffer; /* this is our buffer */
|
||||||
struct FTP *ftp;
|
struct FTP *ftp;
|
||||||
CURLcode result;
|
CURLcode result;
|
||||||
int ftpcode, try;
|
int ftpcode, trynum;
|
||||||
|
|
||||||
ftp = (struct FTP *)malloc(sizeof(struct FTP));
|
ftp = (struct FTP *)malloc(sizeof(struct FTP));
|
||||||
if(!ftp)
|
if(!ftp)
|
||||||
@ -564,9 +564,9 @@ CURLcode Curl_ftp_connect(struct connectdata *conn)
|
|||||||
return CURLE_FAILED_INIT; /* we don't know what to do */
|
return CURLE_FAILED_INIT; /* we don't know what to do */
|
||||||
}
|
}
|
||||||
|
|
||||||
for (try = start; ftpauth[count]; try=trynext, count++) {
|
for (trynum = start; ftpauth[count]; trynum=trynext, count++) {
|
||||||
|
|
||||||
FTPSENDF(conn, "AUTH %s", ftpauth[try]);
|
FTPSENDF(conn, "AUTH %s", ftpauth[trynum]);
|
||||||
|
|
||||||
result = Curl_GetFTPResponse(&nread, conn, &ftpcode);
|
result = Curl_GetFTPResponse(&nread, conn, &ftpcode);
|
||||||
|
|
||||||
@ -842,8 +842,15 @@ CURLcode Curl_ftp_done(struct connectdata *conn, CURLcode status)
|
|||||||
#ifdef HAVE_KRB4
|
#ifdef HAVE_KRB4
|
||||||
Curl_sec_fflush_fd(conn, conn->sock[SECONDARYSOCKET]);
|
Curl_sec_fflush_fd(conn, conn->sock[SECONDARYSOCKET]);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* shut down the socket to inform the server we're done */
|
/* shut down the socket to inform the server we're done */
|
||||||
|
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
shutdown(conn->sock[SECONDARYSOCKET],2); /* SD_BOTH */
|
||||||
|
#endif
|
||||||
|
|
||||||
sclose(conn->sock[SECONDARYSOCKET]);
|
sclose(conn->sock[SECONDARYSOCKET]);
|
||||||
|
|
||||||
conn->sock[SECONDARYSOCKET] = CURL_SOCKET_BAD;
|
conn->sock[SECONDARYSOCKET] = CURL_SOCKET_BAD;
|
||||||
|
|
||||||
if(!ftp->no_transfer && !status) {
|
if(!ftp->no_transfer && !status) {
|
||||||
|
@ -43,6 +43,9 @@
|
|||||||
static
|
static
|
||||||
char *GetEnv(const char *variable)
|
char *GetEnv(const char *variable)
|
||||||
{
|
{
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
return NULL;
|
||||||
|
#else
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
/* This shit requires windows.h (HUGE) to be included */
|
/* This shit requires windows.h (HUGE) to be included */
|
||||||
char env[MAX_PATH]; /* MAX_PATH is from windef.h */
|
char env[MAX_PATH]; /* MAX_PATH is from windef.h */
|
||||||
@ -62,6 +65,7 @@ char *GetEnv(const char *variable)
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
return (env && env[0])?strdup(env):NULL;
|
return (env && env[0])?strdup(env):NULL;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
char *curl_getenv(const char *v)
|
char *curl_getenv(const char *v)
|
||||||
|
@ -195,7 +195,9 @@ static unsigned __stdcall gethostbyname_thread (void *arg)
|
|||||||
* hopefully make printouts synchronised. I'm not sure it works
|
* hopefully make printouts synchronised. I'm not sure it works
|
||||||
* with a static runtime lib (MSVC's libc.lib).
|
* with a static runtime lib (MSVC's libc.lib).
|
||||||
*/
|
*/
|
||||||
|
#ifndef _WIN32_WCE
|
||||||
*stderr = *td->stderr_file;
|
*stderr = *td->stderr_file;
|
||||||
|
#endif
|
||||||
|
|
||||||
WSASetLastError (conn->async.status = NO_DATA); /* pending status */
|
WSASetLastError (conn->async.status = NO_DATA); /* pending status */
|
||||||
he = gethostbyname (conn->async.hostname);
|
he = gethostbyname (conn->async.hostname);
|
||||||
@ -375,8 +377,15 @@ static bool init_resolve_thread (struct connectdata *conn,
|
|||||||
}
|
}
|
||||||
|
|
||||||
td->stderr_file = stderr;
|
td->stderr_file = stderr;
|
||||||
|
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
td->thread_hnd=(HANDLE) CreateThread(NULL,0,(LPTHREAD_START_ROUTINE) THREAD_FUNC,conn,0,&td->thread_id);
|
||||||
|
#else
|
||||||
|
|
||||||
td->thread_hnd = (HANDLE) _beginthreadex(NULL, 0, THREAD_FUNC,
|
td->thread_hnd = (HANDLE) _beginthreadex(NULL, 0, THREAD_FUNC,
|
||||||
conn, 0, &td->thread_id);
|
conn, 0, &td->thread_id);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CURLRES_IPV6
|
#ifdef CURLRES_IPV6
|
||||||
curlassert(hints);
|
curlassert(hints);
|
||||||
td->hints = *hints;
|
td->hints = *hints;
|
||||||
|
@ -30,8 +30,12 @@
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_SYS_STAT_H
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
@ -127,9 +127,9 @@ char *Curl_if2ip(const char *interface, char *buf, int buf_size)
|
|||||||
|
|
||||||
/* -- end of if2ip() -- */
|
/* -- end of if2ip() -- */
|
||||||
#else
|
#else
|
||||||
char *Curl_if2ip(const char *interface, char *buf, int buf_size)
|
char *Curl_if2ip(const char *interf, char *buf, int buf_size)
|
||||||
{
|
{
|
||||||
(void) interface;
|
(void) interf;
|
||||||
(void) buf;
|
(void) buf;
|
||||||
(void) buf_size;
|
(void) buf_size;
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -30,8 +30,12 @@
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_SYS_STAT_H
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#endif
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#if defined(WIN32)
|
#if defined(WIN32)
|
||||||
|
@ -40,6 +40,12 @@
|
|||||||
|
|
||||||
#include <curl/mprintf.h>
|
#include <curl/mprintf.h>
|
||||||
|
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
#define CURL_CDECL __cdecl
|
||||||
|
#else
|
||||||
|
#define CURL_CDECL
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef SIZEOF_LONG_DOUBLE
|
#ifndef SIZEOF_LONG_DOUBLE
|
||||||
#define SIZEOF_LONG_DOUBLE 0
|
#define SIZEOF_LONG_DOUBLE 0
|
||||||
#endif
|
#endif
|
||||||
@ -583,7 +589,12 @@ static int dprintf_formatf(
|
|||||||
void *data, /* untouched by format(), just sent to the stream() function in
|
void *data, /* untouched by format(), just sent to the stream() function in
|
||||||
the second argument */
|
the second argument */
|
||||||
/* function pointer called for each output character */
|
/* function pointer called for each output character */
|
||||||
|
|
||||||
|
#if _WIN32_WCE
|
||||||
|
int (__cdecl *stream) (int, FILE *),
|
||||||
|
#else
|
||||||
int (*stream)(int, FILE *),
|
int (*stream)(int, FILE *),
|
||||||
|
#endif
|
||||||
const char *format, /* %-formatted string */
|
const char *format, /* %-formatted string */
|
||||||
va_list ap_save) /* list of parameters */
|
va_list ap_save) /* list of parameters */
|
||||||
{
|
{
|
||||||
@ -979,7 +990,7 @@ static int dprintf_formatf(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* fputc() look-alike */
|
/* fputc() look-alike */
|
||||||
static int addbyter(int output, FILE *data)
|
static int CURL_CDECL addbyter(int output, FILE *data)
|
||||||
{
|
{
|
||||||
struct nsprintf *infop=(struct nsprintf *)data;
|
struct nsprintf *infop=(struct nsprintf *)data;
|
||||||
unsigned char outc = (unsigned char)output;
|
unsigned char outc = (unsigned char)output;
|
||||||
@ -1027,7 +1038,7 @@ int curl_msnprintf(char *buffer, size_t maxlength, const char *format, ...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* fputc() look-alike */
|
/* fputc() look-alike */
|
||||||
static int alloc_addbyter(int output, FILE *data)
|
static int CURL_CDECL alloc_addbyter(int output, FILE *data)
|
||||||
{
|
{
|
||||||
struct asprintf *infop=(struct asprintf *)data;
|
struct asprintf *infop=(struct asprintf *)data;
|
||||||
unsigned char outc = (unsigned char)output;
|
unsigned char outc = (unsigned char)output;
|
||||||
@ -1113,7 +1124,7 @@ char *curl_mvaprintf(const char *format, va_list ap_save)
|
|||||||
return strdup("");
|
return strdup("");
|
||||||
}
|
}
|
||||||
|
|
||||||
static int storebuffer(int output, FILE *data)
|
static int CURL_CDECL storebuffer(int output, FILE *data)
|
||||||
{
|
{
|
||||||
char **buffer = (char **)data;
|
char **buffer = (char **)data;
|
||||||
unsigned char outc = (unsigned char)output;
|
unsigned char outc = (unsigned char)output;
|
||||||
@ -1142,6 +1153,7 @@ int curl_mprintf(const char *format, ...)
|
|||||||
int retcode;
|
int retcode;
|
||||||
va_list ap_save; /* argument pointer */
|
va_list ap_save; /* argument pointer */
|
||||||
va_start(ap_save, format);
|
va_start(ap_save, format);
|
||||||
|
|
||||||
retcode = dprintf_formatf(stdout, fputc, format, ap_save);
|
retcode = dprintf_formatf(stdout, fputc, format, ap_save);
|
||||||
va_end(ap_save);
|
va_end(ap_save);
|
||||||
return retcode;
|
return retcode;
|
||||||
|
@ -40,11 +40,15 @@
|
|||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include "config.h" /* the configure script results */
|
#include "config.h" /* the configure script results */
|
||||||
#else
|
#else
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
#include "config-win32ce.h"
|
||||||
|
#else
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
/* hand-modified win32 config.h! */
|
/* hand-modified win32 config.h! */
|
||||||
#include "config-win32.h"
|
#include "config-win32.h"
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef macintosh
|
#ifdef macintosh
|
||||||
/* hand-modified MacOS config.h! */
|
/* hand-modified MacOS config.h! */
|
||||||
@ -173,7 +177,9 @@ defined(HAVE_LIBSSL) && defined(HAVE_LIBCRYPTO)
|
|||||||
#define _WIN32_WINNT 0x0501
|
#define _WIN32_WINNT 0x0501
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if HAVE_WINSOCK2_H
|
||||||
#include <winsock2.h> /* required by telnet.c */
|
#include <winsock2.h> /* required by telnet.c */
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(ENABLE_IPV6) || defined(USE_SSLEAY)
|
#if defined(ENABLE_IPV6) || defined(USE_SSLEAY)
|
||||||
#include <ws2tcpip.h>
|
#include <ws2tcpip.h>
|
||||||
|
@ -515,15 +515,29 @@ const char *Curl_strerror(struct connectdata *conn, int err)
|
|||||||
*buf = '\0';
|
*buf = '\0';
|
||||||
|
|
||||||
#if defined(WIN32) && !defined(__CYGWIN__)
|
#if defined(WIN32) && !defined(__CYGWIN__)
|
||||||
|
|
||||||
|
#if _WIN32_WCE
|
||||||
|
buf[0]=0;
|
||||||
|
{
|
||||||
|
wchar_t wbuf[256];
|
||||||
|
|
||||||
|
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, err,
|
||||||
|
LANG_NEUTRAL, wbuf, sizeof(wbuf)/sizeof(wchar_t), NULL);
|
||||||
|
wcstombs(buf,wbuf,max);
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
/* 'sys_nerr' is the maximum errno number, it is not widely portable */
|
/* 'sys_nerr' is the maximum errno number, it is not widely portable */
|
||||||
if (err >= 0 && err < sys_nerr)
|
if (err >= 0 && err < sys_nerr)
|
||||||
strncpy(buf, strerror(err), max);
|
strncpy(buf, strerror(err), max);
|
||||||
else {
|
else {
|
||||||
if (!get_winsock_error (err, buf, max) &&
|
if (!get_winsock_error(err, buf, max) &&
|
||||||
!FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM, NULL, err,
|
!FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, err,
|
||||||
LANG_NEUTRAL, buf, max, NULL))
|
LANG_NEUTRAL, buf, max, NULL))
|
||||||
snprintf(buf, max, "Unknown error %d (%#x)", err, err);
|
snprintf(buf, max, "Unknown error %d (%#x)", err, err);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#else /* not native Windows coming up */
|
#else /* not native Windows coming up */
|
||||||
|
|
||||||
/* These should be atomic and hopefully thread-safe */
|
/* These should be atomic and hopefully thread-safe */
|
||||||
|
@ -30,9 +30,12 @@
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_SYS_STAT_H
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#endif
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#if defined(WIN32)
|
#if defined(WIN32)
|
||||||
|
@ -32,7 +32,9 @@
|
|||||||
#ifdef HAVE_SYS_TYPES_H
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef HAVE_SYS_STAT_H
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
@ -30,9 +30,12 @@
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_SYS_STAT_H
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#endif
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#if defined(WIN32) && !defined(__GNUC__) || defined(__MINGW32__)
|
#if defined(WIN32) && !defined(__GNUC__) || defined(__MINGW32__)
|
||||||
|
Loading…
Reference in New Issue
Block a user