mirror of
https://github.com/curl/curl.git
synced 2026-08-13 04:40:54 +03:00
Makefile.mk: drop in favour of autotools and cmake (MS-DOS, AmigaOS3)
`Makefile.mk` supported MS-DOS and Amiga, but `./configure` also
supported them in a better tested and more flexible way.
This patch also adds CMake support for MS-DOS/DJGPP and Amiga OS 3.
`Makefile.mk` was not maintained. Delete it in favour of first-tier
build methods.
Also include some non-MS-DOS/AmigaOS-specific tidy-up, see details at
the end of this message.
Details:
- fix/silence all MS-DOS/DJGPP build warnings and issues.
- add MS-DOS support to cmake.
- default to `ENABLE_THREADED_RESOLVER=OFF` for MS-DOS.
- add support for `WATT_ROOT`.
- use static libcurl with MS-DOS.
- fixup default CMake suffixes/prefixes for DJGPP.
- disable hidden symbols for MS-DOS. Not supported on MS-DOS.
- opt-in MS-DOS into `USE_UNIX_SOCKETS`.
- improve MS-DOS support in autotools.
- default to `--disable-threaded-resolver` for MS-DOS.
- make sure to use `close_s()` (from Watt-32) with autotools and cmake.
`Makefile.mk` used it before this patch.
- GHA: add DJGPP cmake (~30s) and autotools (~60s) build jobs.
Also build tests and examples with cmake.
- improve AmigaOS support in autotools:
- configure: detect `CloseSocket()` when it's a macro.
- configure: fix `IoctlSocket` detection on AmigaOS.
- curl-amissl.m4: pass AmiSSL libs to tests/servers.
- add AmigaOS3 support to cmake:
- cmake: fix `HAVE_IOCTLSOCKET_CAMEL` and
`HAVE_IOCTLSOCKET_CAMEL_FIONBIO` detections.
- set necessary system libs.
- add AmiSSL support.
- inet_ntop, inet_pton: fix using it for AmigaOS. cmake detects them,
and they did not compile with AmigaOS.
- cmake: better sync `gethostname` detection with autotools.
Fixes detection for AmigaOS, where `gethostname` is a macro.
- cmake: fix `sys/utime.h` detection on AmigaOS.
- cmake: force-disable `getaddrinfo` for AmigaOS.
- cmake: tweak threading and static/shared default for AmigaOS.
- cmake: rely on manual variable `AMIGA` to enable the platform.
- GHA: add AmigaOS cmake and autotools (~45s) jobs.
Also build tests and examples with cmake.
- INSTALL: update MS-DOS and AmigaOS build instructions.
- amigaos: fix `-Wpointer-sign` and
`zero or negative size array '_args'` in `Printf()`.
- amigaos: fix `-Wpointer-sign`
- amigaos: fix `-Wredundant-decls` `errno` and `h_errno`.
- amigaos: brute-force silence `lseek()` size warnings.
- amigaos: server/resolve: silence `-Wdiscarded-qualifiers`.
- amigaos: server/resolve: fix `-Wpointer-sign`.
- amigaos: fix `CURL_SA_FAMILY_T` type.
- nonblock: prefer `HAVE_IOCTLSOCKET_CAMEL_FIONBIO` for AmigaOS.
`ioctl` is also detected, but fails when used. Make the above override
it for a successful build.
Authored-by: Darren Banfi
Fixes #15537
Closes #15603
- tftpd: prefer `HAVE_IOCTLSOCKET_CAMEL_FIONBIO` for AmigaOS.
- tftpd: tidy-up conditional code.
- curl: set stack size to 16384 for AmigaOS3/4
Overriding the default 4096.
Suggested-by: Darren Banfi
Ref: https://github.com/curl/curl/pull/15543#issuecomment-2498783123
Ref: https://wiki.amigaos.net/wiki/Controlling_Application_Stack
- functypes.h: fix `SEND_QUAL_ARG2` for AmigaOS.
- tftp: add missing cast in sendto() call for AmigaOS.
- getinfo: fix warning with AmigaOS.
- tool_operate: silence warning with AmigaOS
- amigaos: fix building libtests due to missing `RLIMIT_NOFILE`.
- curl_gethostname: silence warning for AmigaOS.
- ftp: silence `-Wtype-limits` for AmigaOS.
- libtest: fix timeval initialization for AmigaOS.
- examples: fix `timeval` initialization for AmigaOS.
- examples: silence warning for AmigaOS.
- configure: fix IPv6 detection for cross-builds.
- netrc: fix to build with AmigaOS cleanly.
- buildinfo: detect and add `DOS` tag for MS-DOS builds.
- buildinfo: add `AMIGA` to buildinfo.txt in auttools.
- build: move `USE_WATT32` macro definition to cmake/configure.
Non-MS-DOS/AmigeOS-specific tidy-ups:
- configure: sync `sa_family_t` detection with cmake.
- configure: sync `ADDRESS_FAMILY` detection signals with cmake.
- doh: use `CURL_SA_FAMILY_T`.
- lib: drop mingw-specific `CURL_SA_FAMILY_T` workaround.
- cmake: extend instead of override check-specific
configurations/requirements.
This allows to honor global requirements added earlier.
Necessary for AmigaOS for example.
- cmake: omit warning on disabled IPv6 for MS-DOS and AmigaOS.
No IPv6 support on these platforms. Also sync with autotools.
- lib1960: use libcurl `inet_pton()` wrapper.
- cmake: detect LibreSSL (to match autotools).
- cmake: say the specific OpenSSL flavour detected.
- hostip: add missing `HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID` guard.
- lib: simplify classic mac feature guards.
Follow-up to a8861b6ccd #9764
Closes #15543
This commit is contained in:
parent
607bec04d9
commit
a3585c9576
74 changed files with 734 additions and 1019 deletions
|
|
@ -28,9 +28,9 @@ CMAKE_DIST = CMakeLists.txt curl_config.h.cmake
|
|||
CHECKSRC_DIST = .checksrc vauth/.checksrc vquic/.checksrc vssh/.checksrc \
|
||||
vtls/.checksrc
|
||||
|
||||
EXTRA_DIST = Makefile.mk config-win32.h config-win32ce.h config-plan9.h \
|
||||
config-riscos.h config-mac.h curl_config.h.in config-dos.h libcurl.rc \
|
||||
config-amigaos.h config-win32ce.h config-os400.h setup-os400.h \
|
||||
EXTRA_DIST = config-win32.h config-win32ce.h config-plan9.h \
|
||||
config-riscos.h config-mac.h curl_config.h.in libcurl.rc \
|
||||
config-win32ce.h config-os400.h setup-os400.h \
|
||||
$(CMAKE_DIST) setup-win32.h Makefile.soname optiontable.pl libcurl.def \
|
||||
$(CHECKSRC_DIST)
|
||||
|
||||
|
|
|
|||
340
lib/Makefile.mk
340
lib/Makefile.mk
|
|
@ -1,340 +0,0 @@
|
|||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
#***************************************************************************
|
||||
|
||||
# Makefile to build curl parts with GCC-like toolchains and optional features.
|
||||
#
|
||||
# Usage: make -f Makefile.mk CFG=-feat1[-feat2][-feat3][...]
|
||||
# Example: make -f Makefile.mk CFG=-zlib-ssl-libssh2-ipv6
|
||||
#
|
||||
# Look for ' ?=' to find accepted customization variables.
|
||||
|
||||
# This script is reused by 'src' and 'docs/examples' Makefile.mk scripts.
|
||||
|
||||
ifndef PROOT
|
||||
PROOT := ..
|
||||
LOCAL := 1
|
||||
endif
|
||||
|
||||
### Common
|
||||
|
||||
CFLAGS ?=
|
||||
CPPFLAGS ?=
|
||||
LDFLAGS ?=
|
||||
LIBS ?=
|
||||
|
||||
CROSSPREFIX ?=
|
||||
|
||||
ifeq ($(CC),cc)
|
||||
CC := gcc
|
||||
endif
|
||||
CC := $(CROSSPREFIX)$(CC)
|
||||
AR := $(CROSSPREFIX)$(AR)
|
||||
|
||||
TRIPLET ?= $(shell $(CC) -dumpmachine)
|
||||
|
||||
BIN_EXT :=
|
||||
|
||||
ifneq ($(findstring msdos,$(TRIPLET)),)
|
||||
# Cross-tools: https://github.com/andrewwutw/build-djgpp
|
||||
MSDOS := 1
|
||||
BIN_EXT := .exe
|
||||
else ifneq ($(findstring amigaos,$(TRIPLET)),)
|
||||
# Cross-tools: https://github.com/bebbo/amiga-gcc
|
||||
AMIGA := 1
|
||||
endif
|
||||
|
||||
CPPFLAGS += -I. -I$(PROOT)/include
|
||||
|
||||
### Deprecated settings. For compatibility.
|
||||
|
||||
ifdef WATT_ROOT
|
||||
WATT_PATH := $(realpath $(WATT_ROOT))
|
||||
endif
|
||||
|
||||
### Optional features
|
||||
|
||||
ifneq ($(findstring -debug,$(CFG)),)
|
||||
CFLAGS += -g
|
||||
CPPFLAGS += -DDEBUGBUILD
|
||||
else
|
||||
CPPFLAGS += -DNDEBUG
|
||||
endif
|
||||
ifneq ($(findstring -trackmem,$(CFG)),)
|
||||
CPPFLAGS += -DCURLDEBUG
|
||||
endif
|
||||
ifneq ($(findstring -map,$(CFG)),)
|
||||
MAP := 1
|
||||
endif
|
||||
|
||||
# CPPFLAGS below are only necessary when building libcurl via 'lib' (see
|
||||
# comments below about exceptions). Always include them anyway to match
|
||||
# behavior of other build systems.
|
||||
|
||||
ifneq ($(findstring -sync,$(CFG)),)
|
||||
CPPFLAGS += -DUSE_SYNC_DNS
|
||||
else ifneq ($(findstring -ares,$(CFG)),)
|
||||
LIBCARES_PATH ?= $(PROOT)/../c-ares
|
||||
CPPFLAGS += -DUSE_ARES
|
||||
CPPFLAGS += -isystem "$(LIBCARES_PATH)/include"
|
||||
LDFLAGS += -L"$(LIBCARES_PATH)/lib"
|
||||
LIBS += -lcares
|
||||
endif
|
||||
|
||||
ifneq ($(findstring -rtmp,$(CFG)),)
|
||||
LIBRTMP_PATH ?= $(PROOT)/../librtmp
|
||||
CPPFLAGS += -DUSE_LIBRTMP
|
||||
CPPFLAGS += -isystem "$(LIBRTMP_PATH)"
|
||||
LDFLAGS += -L"$(LIBRTMP_PATH)/librtmp"
|
||||
LIBS += -lrtmp
|
||||
ZLIB := 1
|
||||
endif
|
||||
|
||||
ifneq ($(findstring -ssh2,$(CFG)),)
|
||||
LIBSSH2_PATH ?= $(PROOT)/../libssh2
|
||||
CPPFLAGS += -DUSE_LIBSSH2
|
||||
CPPFLAGS += -isystem "$(LIBSSH2_PATH)/include"
|
||||
LDFLAGS += -L"$(LIBSSH2_PATH)/lib"
|
||||
LIBS += -lssh2
|
||||
else ifneq ($(findstring -libssh,$(CFG)),)
|
||||
LIBSSH_PATH ?= $(PROOT)/../libssh
|
||||
CPPFLAGS += -DUSE_LIBSSH
|
||||
CPPFLAGS += -isystem "$(LIBSSH_PATH)/include"
|
||||
LDFLAGS += -L"$(LIBSSH_PATH)/lib"
|
||||
LIBS += -lssh
|
||||
else ifneq ($(findstring -wolfssh,$(CFG)),)
|
||||
WOLFSSH_PATH ?= $(PROOT)/../wolfssh
|
||||
CPPFLAGS += -DUSE_WOLFSSH
|
||||
CPPFLAGS += -isystem "$(WOLFSSH_PATH)/include"
|
||||
LDFLAGS += -L"$(WOLFSSH_PATH)/lib"
|
||||
LIBS += -lwolfssh
|
||||
endif
|
||||
|
||||
ifneq ($(findstring -ssl,$(CFG)),)
|
||||
OPENSSL_PATH ?= $(PROOT)/../openssl
|
||||
CPPFLAGS += -DUSE_OPENSSL
|
||||
CPPFLAGS += -DCURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG
|
||||
OPENSSL_INCLUDE ?= $(OPENSSL_PATH)/include
|
||||
OPENSSL_LIBPATH ?= $(OPENSSL_PATH)/lib
|
||||
CPPFLAGS += -isystem "$(OPENSSL_INCLUDE)"
|
||||
LDFLAGS += -L"$(OPENSSL_LIBPATH)"
|
||||
OPENSSL_LIBS ?= -lssl -lcrypto
|
||||
LIBS += $(OPENSSL_LIBS)
|
||||
|
||||
ifneq ($(findstring -srp,$(CFG)),)
|
||||
ifneq ($(wildcard $(OPENSSL_INCLUDE)/openssl/srp.h),)
|
||||
# OpenSSL 1.0.1 and later.
|
||||
CPPFLAGS += -DHAVE_OPENSSL_SRP -DUSE_TLS_SRP
|
||||
endif
|
||||
endif
|
||||
SSLLIBS += 1
|
||||
endif
|
||||
ifneq ($(findstring -wolfssl,$(CFG)),)
|
||||
WOLFSSL_PATH ?= $(PROOT)/../wolfssl
|
||||
CPPFLAGS += -DUSE_WOLFSSL
|
||||
CPPFLAGS += -DSIZEOF_LONG_LONG=8
|
||||
CPPFLAGS += -isystem "$(WOLFSSL_PATH)/include"
|
||||
LDFLAGS += -L"$(WOLFSSL_PATH)/lib"
|
||||
LIBS += -lwolfssl
|
||||
SSLLIBS += 1
|
||||
endif
|
||||
ifneq ($(findstring -mbedtls,$(CFG)),)
|
||||
MBEDTLS_PATH ?= $(PROOT)/../mbedtls
|
||||
CPPFLAGS += -DUSE_MBEDTLS
|
||||
CPPFLAGS += -isystem "$(MBEDTLS_PATH)/include"
|
||||
LDFLAGS += -L"$(MBEDTLS_PATH)/lib"
|
||||
LIBS += -lmbedtls -lmbedx509 -lmbedcrypto
|
||||
SSLLIBS += 1
|
||||
endif
|
||||
ifneq ($(findstring -bearssl,$(CFG)),)
|
||||
BEARSSL_PATH ?= $(PROOT)/../bearssl
|
||||
CPPFLAGS += -DUSE_BEARSSL
|
||||
CPPFLAGS += -isystem "$(BEARSSL_PATH)/inc"
|
||||
LDFLAGS += -L"$(BEARSSL_PATH)/build"
|
||||
LIBS += -lbearssl
|
||||
SSLLIBS += 1
|
||||
endif
|
||||
|
||||
ifneq ($(findstring -nghttp2,$(CFG)),)
|
||||
NGHTTP2_PATH ?= $(PROOT)/../nghttp2
|
||||
CPPFLAGS += -DUSE_NGHTTP2
|
||||
CPPFLAGS += -isystem "$(NGHTTP2_PATH)/include"
|
||||
LDFLAGS += -L"$(NGHTTP2_PATH)/lib"
|
||||
LIBS += -lnghttp2
|
||||
endif
|
||||
|
||||
ifeq ($(findstring -nghttp3,$(CFG))$(findstring -ngtcp2,$(CFG)),-nghttp3-ngtcp2)
|
||||
NGHTTP3_PATH ?= $(PROOT)/../nghttp3
|
||||
CPPFLAGS += -DUSE_NGHTTP3
|
||||
CPPFLAGS += -isystem "$(NGHTTP3_PATH)/include"
|
||||
LDFLAGS += -L"$(NGHTTP3_PATH)/lib"
|
||||
LIBS += -lnghttp3
|
||||
|
||||
NGTCP2_PATH ?= $(PROOT)/../ngtcp2
|
||||
CPPFLAGS += -DUSE_NGTCP2
|
||||
CPPFLAGS += -isystem "$(NGTCP2_PATH)/include"
|
||||
LDFLAGS += -L"$(NGTCP2_PATH)/lib"
|
||||
|
||||
NGTCP2_LIBS ?=
|
||||
ifeq ($(NGTCP2_LIBS),)
|
||||
ifneq ($(findstring -ssl,$(CFG)),)
|
||||
ifneq ($(wildcard $(OPENSSL_INCLUDE)/openssl/aead.h),)
|
||||
NGTCP2_LIBS := -lngtcp2_crypto_boringssl
|
||||
else # including libressl
|
||||
NGTCP2_LIBS := -lngtcp2_crypto_quictls
|
||||
endif
|
||||
else ifneq ($(findstring -wolfssl,$(CFG)),)
|
||||
NGTCP2_LIBS := -lngtcp2_crypto_wolfssl
|
||||
endif
|
||||
endif
|
||||
|
||||
LIBS += -lngtcp2 $(NGTCP2_LIBS)
|
||||
endif
|
||||
|
||||
ifneq ($(findstring -zlib,$(CFG))$(ZLIB),)
|
||||
ZLIB_PATH ?= $(PROOT)/../zlib
|
||||
# These CPPFLAGS are also required when compiling the curl tool via 'src'.
|
||||
CPPFLAGS += -DHAVE_LIBZ
|
||||
CPPFLAGS += -isystem "$(ZLIB_PATH)/include"
|
||||
LDFLAGS += -L"$(ZLIB_PATH)/lib"
|
||||
ZLIB_LIBS ?= -lz
|
||||
LIBS += $(ZLIB_LIBS)
|
||||
ZLIB := 1
|
||||
endif
|
||||
ifneq ($(findstring -zstd,$(CFG)),)
|
||||
ZSTD_PATH ?= $(PROOT)/../zstd
|
||||
CPPFLAGS += -DHAVE_ZSTD
|
||||
CPPFLAGS += -isystem "$(ZSTD_PATH)/include"
|
||||
LDFLAGS += -L"$(ZSTD_PATH)/lib"
|
||||
ZSTD_LIBS ?= -lzstd
|
||||
LIBS += $(ZSTD_LIBS)
|
||||
endif
|
||||
ifneq ($(findstring -brotli,$(CFG)),)
|
||||
BROTLI_PATH ?= $(PROOT)/../brotli
|
||||
CPPFLAGS += -DHAVE_BROTLI
|
||||
CPPFLAGS += -isystem "$(BROTLI_PATH)/include"
|
||||
LDFLAGS += -L"$(BROTLI_PATH)/lib"
|
||||
BROTLI_LIBS ?= -lbrotlidec -lbrotlicommon
|
||||
LIBS += $(BROTLI_LIBS)
|
||||
endif
|
||||
ifneq ($(findstring -gsasl,$(CFG)),)
|
||||
LIBGSASL_PATH ?= $(PROOT)/../gsasl
|
||||
CPPFLAGS += -DUSE_GSASL
|
||||
CPPFLAGS += -isystem "$(LIBGSASL_PATH)/include"
|
||||
LDFLAGS += -L"$(LIBGSASL_PATH)/lib"
|
||||
LIBS += -lgsasl
|
||||
endif
|
||||
|
||||
ifneq ($(findstring -idn2,$(CFG)),)
|
||||
LIBIDN2_PATH ?= $(PROOT)/../libidn2
|
||||
CPPFLAGS += -DHAVE_LIBIDN2 -DHAVE_IDN2_H
|
||||
CPPFLAGS += -isystem "$(LIBIDN2_PATH)/include"
|
||||
LDFLAGS += -L"$(LIBIDN2_PATH)/lib"
|
||||
LIBS += -lidn2
|
||||
|
||||
ifneq ($(findstring -psl,$(CFG)),)
|
||||
LIBPSL_PATH ?= $(PROOT)/../libpsl
|
||||
CPPFLAGS += -DUSE_LIBPSL
|
||||
CPPFLAGS += -isystem "$(LIBPSL_PATH)/include"
|
||||
LDFLAGS += -L"$(LIBPSL_PATH)/lib"
|
||||
LIBS += -lpsl
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(findstring -ipv6,$(CFG)),)
|
||||
CPPFLAGS += -DUSE_IPV6
|
||||
endif
|
||||
|
||||
ifneq ($(findstring -watt,$(CFG))$(MSDOS),)
|
||||
WATT_PATH ?= $(PROOT)/../watt
|
||||
CPPFLAGS += -isystem "$(WATT_PATH)/inc"
|
||||
LDFLAGS += -L"$(WATT_PATH)/lib"
|
||||
LIBS += -lwatt
|
||||
endif
|
||||
|
||||
ifneq ($(findstring 11,$(subst $(subst ,, ),,$(SSLLIBS))),)
|
||||
CPPFLAGS += -DCURL_WITH_MULTI_SSL
|
||||
endif
|
||||
|
||||
### Common rules
|
||||
|
||||
OBJ_DIR := $(TRIPLET)
|
||||
|
||||
ifneq ($(findstring /sh,$(SHELL)),)
|
||||
DEL = rm -f $1
|
||||
COPY = -cp -afv $1 $2
|
||||
MKDIR = mkdir -p $1
|
||||
RMDIR = rm -fr $1
|
||||
else
|
||||
DEL = -del 2>NUL /q /f $(subst /,\,$1)
|
||||
COPY = -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2)
|
||||
MKDIR = -md 2>NUL $(subst /,\,$1)
|
||||
RMDIR = -rd 2>NUL /q /s $(subst /,\,$1)
|
||||
endif
|
||||
|
||||
all: $(TARGETS)
|
||||
|
||||
$(OBJ_DIR):
|
||||
-$(call MKDIR, $(OBJ_DIR))
|
||||
|
||||
$(OBJ_DIR)/%.o: %.c
|
||||
$(CC) -W -Wall $(CFLAGS) $(CPPFLAGS) -c $< -o $@
|
||||
|
||||
clean:
|
||||
@$(call DEL, $(TOCLEAN))
|
||||
@$(RMDIR) $(OBJ_DIR)
|
||||
|
||||
distclean vclean: clean
|
||||
@$(call DEL, $(TARGETS) $(TOVCLEAN))
|
||||
|
||||
### Local
|
||||
|
||||
ifdef LOCAL
|
||||
|
||||
CPPFLAGS += -DBUILDING_LIBCURL
|
||||
|
||||
### Sources and targets
|
||||
|
||||
# Provides CSOURCES, HHEADERS
|
||||
include Makefile.inc
|
||||
|
||||
vpath %.c vauth vquic vssh vtls
|
||||
|
||||
libcurl_a_LIBRARY := libcurl.a
|
||||
|
||||
TARGETS := $(libcurl_a_LIBRARY)
|
||||
|
||||
libcurl_a_OBJECTS := $(patsubst %.c,$(OBJ_DIR)/%.o,$(notdir $(strip $(CSOURCES))))
|
||||
libcurl_a_DEPENDENCIES := $(strip $(CSOURCES) $(HHEADERS))
|
||||
|
||||
TOCLEAN :=
|
||||
TOVCLEAN :=
|
||||
|
||||
### Rules
|
||||
|
||||
$(libcurl_a_LIBRARY): $(libcurl_a_OBJECTS) $(libcurl_a_DEPENDENCIES)
|
||||
@$(call DEL, $@)
|
||||
$(AR) rcs $@ $(libcurl_a_OBJECTS)
|
||||
|
||||
all: $(OBJ_DIR) $(TARGETS)
|
||||
endif
|
||||
|
|
@ -196,12 +196,11 @@ int Curl_amiga_select(int nfds, fd_set *readfds, fd_set *writefds,
|
|||
*/
|
||||
|
||||
struct Library *SocketBase = NULL;
|
||||
extern int errno, h_errno;
|
||||
|
||||
#ifdef __libnix__
|
||||
void __request(const char *msg);
|
||||
#else
|
||||
# define __request(msg) Printf(msg "\n\a")
|
||||
# define __request(msg) Printf((const unsigned char *)(msg "\n\a"), 0)
|
||||
#endif
|
||||
|
||||
void Curl_amiga_cleanup(void)
|
||||
|
|
@ -215,7 +214,7 @@ void Curl_amiga_cleanup(void)
|
|||
CURLcode Curl_amiga_init(void)
|
||||
{
|
||||
if(!SocketBase)
|
||||
SocketBase = OpenLibrary("bsdsocket.library", 4);
|
||||
SocketBase = OpenLibrary((const unsigned char *)"bsdsocket.library", 4);
|
||||
|
||||
if(!SocketBase) {
|
||||
__request("No TCP/IP Stack running!");
|
||||
|
|
|
|||
|
|
@ -1,127 +0,0 @@
|
|||
#ifndef HEADER_CURL_CONFIG_AMIGAOS_H
|
||||
#define HEADER_CURL_CONFIG_AMIGAOS_H
|
||||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/* ================================================================ */
|
||||
/* Hand crafted config file for AmigaOS */
|
||||
/* ================================================================ */
|
||||
|
||||
#ifdef __AMIGA__ /* Any AmigaOS flavour */
|
||||
|
||||
#define HAVE_ARPA_INET_H 1
|
||||
#define HAVE_CLOSESOCKET_CAMEL 1
|
||||
#define HAVE_IOCTLSOCKET_CAMEL 1
|
||||
#define HAVE_IOCTLSOCKET_CAMEL_FIONBIO 1
|
||||
#define HAVE_LONGLONG 1
|
||||
#define HAVE_NETDB_H 1
|
||||
#define HAVE_NETINET_IN_H 1
|
||||
#define HAVE_NET_IF_H 1
|
||||
#define HAVE_PWD_H 1
|
||||
#define HAVE_SELECT 1
|
||||
#define HAVE_SIGNAL 1
|
||||
#define HAVE_SOCKET 1
|
||||
#define HAVE_STRCASECMP 1
|
||||
#define HAVE_STRDUP 1
|
||||
#define HAVE_STRICMP 1
|
||||
#define HAVE_STRINGS_H 1
|
||||
#define HAVE_STRUCT_TIMEVAL 1
|
||||
#define HAVE_SYS_PARAM_H 1
|
||||
#define HAVE_SYS_SOCKET_H 1
|
||||
#define HAVE_SYS_SOCKIO_H 1
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
#define HAVE_SYS_TIME_H 1
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define HAVE_UTIME 1
|
||||
#define HAVE_UTIME_H 1
|
||||
#define HAVE_WRITABLE_ARGV 1
|
||||
#define HAVE_SYS_IOCTL_H 1
|
||||
|
||||
#define SIZEOF_INT 4
|
||||
#define SIZEOF_SIZE_T 4
|
||||
|
||||
#ifndef SIZEOF_CURL_OFF_T
|
||||
#define SIZEOF_CURL_OFF_T 8
|
||||
#endif
|
||||
|
||||
#define USE_MANUAL 1
|
||||
#define CURL_DISABLE_LDAP 1
|
||||
|
||||
#ifndef CURL_OS
|
||||
#define CURL_OS "AmigaOS"
|
||||
#endif
|
||||
|
||||
#define PACKAGE "curl"
|
||||
#define PACKAGE_BUGREPORT "a suitable mailing list: https://curl.se/mail/"
|
||||
#define PACKAGE_NAME "curl"
|
||||
#define PACKAGE_STRING "curl -"
|
||||
#define PACKAGE_TARNAME "curl"
|
||||
#define PACKAGE_VERSION "-"
|
||||
|
||||
#if defined(USE_AMISSL)
|
||||
#define CURL_CA_PATH "AmiSSL:Certs"
|
||||
#elif defined(__MORPHOS__)
|
||||
#define CURL_CA_BUNDLE "MOSSYS:Data/SSL/curl-ca-bundle.crt"
|
||||
#else
|
||||
#define CURL_CA_BUNDLE "s:curl-ca-bundle.crt"
|
||||
#endif
|
||||
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
#define in_addr_t int
|
||||
|
||||
#ifndef F_OK
|
||||
# define F_OK 0
|
||||
#endif
|
||||
|
||||
#ifndef O_RDONLY
|
||||
# define O_RDONLY 0x0000
|
||||
#endif
|
||||
|
||||
#ifndef LONG_MAX
|
||||
# define LONG_MAX 0x7fffffffL
|
||||
#endif
|
||||
|
||||
#ifndef LONG_MIN
|
||||
# define LONG_MIN (-0x7fffffffL-1)
|
||||
#endif
|
||||
|
||||
#define HAVE_RECV 1
|
||||
#define RECV_TYPE_ARG1 long
|
||||
#define RECV_TYPE_ARG2 char *
|
||||
#define RECV_TYPE_ARG3 long
|
||||
#define RECV_TYPE_ARG4 long
|
||||
#define RECV_TYPE_RETV long
|
||||
|
||||
#define HAVE_SEND 1
|
||||
#define SEND_TYPE_ARG1 int
|
||||
#define SEND_QUAL_ARG2 const
|
||||
#define SEND_TYPE_ARG2 char *
|
||||
#define SEND_TYPE_ARG3 int
|
||||
#define SEND_TYPE_ARG4 int
|
||||
#define SEND_TYPE_RETV int
|
||||
|
||||
#endif /* __AMIGA__ */
|
||||
#endif /* HEADER_CURL_CONFIG_AMIGAOS_H */
|
||||
136
lib/config-dos.h
136
lib/config-dos.h
|
|
@ -1,136 +0,0 @@
|
|||
#ifndef HEADER_CURL_CONFIG_DOS_H
|
||||
#define HEADER_CURL_CONFIG_DOS_H
|
||||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
/* ================================================================ */
|
||||
/* lib/config-dos.h - Hand crafted config file for DOS */
|
||||
/* ================================================================ */
|
||||
|
||||
#ifndef CURL_OS
|
||||
#if defined(DJGPP)
|
||||
#define CURL_OS "MSDOS/djgpp"
|
||||
#elif defined(__HIGHC__)
|
||||
#define CURL_OS "MSDOS/HighC"
|
||||
#else
|
||||
#define CURL_OS "MSDOS/?"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define PACKAGE "curl"
|
||||
|
||||
#define USE_MANUAL 1
|
||||
|
||||
#define HAVE_ARPA_INET_H 1
|
||||
#define HAVE_FCNTL_H 1
|
||||
#define HAVE_FREEADDRINFO 1
|
||||
#define HAVE_GETADDRINFO 1
|
||||
#define HAVE_GETTIMEOFDAY 1
|
||||
#define HAVE_IO_H 1
|
||||
#define HAVE_IOCTL_FIONBIO 1
|
||||
#define HAVE_IOCTLSOCKET 1
|
||||
#define HAVE_IOCTLSOCKET_FIONBIO 1
|
||||
#define HAVE_LOCALE_H 1
|
||||
#define HAVE_LONGLONG 1
|
||||
#define HAVE_NETDB_H 1
|
||||
#define HAVE_NETINET_IN_H 1
|
||||
#define HAVE_NETINET_TCP_H 1
|
||||
#define HAVE_NET_IF_H 1
|
||||
#define HAVE_RECV 1
|
||||
#define HAVE_SELECT 1
|
||||
#define HAVE_SEND 1
|
||||
#define HAVE_SETLOCALE 1
|
||||
#define HAVE_SETMODE 1
|
||||
#define HAVE_SIGNAL 1
|
||||
#define HAVE_SOCKET 1
|
||||
#define HAVE_STRDUP 1
|
||||
#define HAVE_STRICMP 1
|
||||
#define HAVE_STRTOLL 1
|
||||
#define HAVE_STRUCT_TIMEVAL 1
|
||||
#define HAVE_SYS_IOCTL_H 1
|
||||
#define HAVE_SYS_SOCKET_H 1
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
#define SIZEOF_INT 4
|
||||
#define SIZEOF_LONG 4
|
||||
#define SIZEOF_SIZE_T 4
|
||||
#define SIZEOF_CURL_OFF_T 8
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Qualifiers for send() and recv() */
|
||||
|
||||
#define SEND_TYPE_ARG1 int
|
||||
#define SEND_QUAL_ARG2 const
|
||||
#define SEND_TYPE_ARG2 void *
|
||||
#define SEND_TYPE_ARG3 int
|
||||
#define SEND_TYPE_ARG4 int
|
||||
#define SEND_TYPE_RETV int
|
||||
|
||||
#define RECV_TYPE_ARG1 int
|
||||
#define RECV_TYPE_ARG2 void *
|
||||
#define RECV_TYPE_ARG3 int
|
||||
#define RECV_TYPE_ARG4 int
|
||||
#define RECV_TYPE_RETV int
|
||||
|
||||
#define BSD
|
||||
|
||||
/* CURLDEBUG definition enables memory tracking */
|
||||
/* #define CURLDEBUG */
|
||||
|
||||
/* to disable LDAP */
|
||||
#define CURL_DISABLE_LDAP 1
|
||||
|
||||
#define in_addr_t u_long
|
||||
|
||||
#if defined(__HIGHC__) || \
|
||||
(defined(__GNUC__) && (__GNUC__ < 4))
|
||||
#define ssize_t int
|
||||
#endif
|
||||
|
||||
/* Target HAVE_x section */
|
||||
|
||||
#if defined(DJGPP)
|
||||
#define HAVE_BASENAME 1
|
||||
#define HAVE_STRCASECMP 1
|
||||
#define HAVE_SIGACTION 1
|
||||
#define HAVE_SIGSETJMP 1
|
||||
#define HAVE_SYS_TIME_H 1
|
||||
#define HAVE_TERMIOS_H 1
|
||||
|
||||
#elif defined(__HIGHC__)
|
||||
#define HAVE_SYS_TIME_H 1
|
||||
#define strerror(e) strerror_s_((e))
|
||||
#endif
|
||||
|
||||
#ifdef MSDOS /* Watt-32 */
|
||||
#define HAVE_CLOSE_S 1
|
||||
#endif
|
||||
|
||||
#undef word
|
||||
#undef byte
|
||||
|
||||
#endif /* HEADER_CURL_CONFIG_DOS_H */
|
||||
|
|
@ -318,11 +318,7 @@ Curl_he2ai(const struct hostent *he, int port)
|
|||
addr = (void *)ai->ai_addr; /* storage area for this info */
|
||||
|
||||
memcpy(&addr->sin_addr, curr, sizeof(struct in_addr));
|
||||
#ifdef __MINGW32__
|
||||
addr->sin_family = (short)(he->h_addrtype);
|
||||
#else
|
||||
addr->sin_family = (CURL_SA_FAMILY_T)(he->h_addrtype);
|
||||
#endif
|
||||
addr->sin_port = htons((unsigned short)port);
|
||||
break;
|
||||
|
||||
|
|
@ -331,11 +327,7 @@ Curl_he2ai(const struct hostent *he, int port)
|
|||
addr6 = (void *)ai->ai_addr; /* storage area for this info */
|
||||
|
||||
memcpy(&addr6->sin6_addr, curr, sizeof(struct in6_addr));
|
||||
#ifdef __MINGW32__
|
||||
addr6->sin6_family = (short)(he->h_addrtype);
|
||||
#else
|
||||
addr6->sin6_family = (CURL_SA_FAMILY_T)(he->h_addrtype);
|
||||
#endif
|
||||
addr6->sin6_port = htons((unsigned short)port);
|
||||
break;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -736,6 +736,9 @@ ${SIZEOF_TIME_T_CODE}
|
|||
/* if OpenSSL is in use */
|
||||
#cmakedefine USE_OPENSSL 1
|
||||
|
||||
/* if AmiSSL is in use */
|
||||
#cmakedefine USE_AMISSL 1
|
||||
|
||||
/* if librtmp/rtmpdump is in use */
|
||||
#cmakedefine USE_LIBRTMP 1
|
||||
|
||||
|
|
@ -785,6 +788,9 @@ ${SIZEOF_TIME_T_CODE}
|
|||
/* to enable Windows SSL */
|
||||
#cmakedefine USE_SCHANNEL 1
|
||||
|
||||
/* if Watt-32 is in use */
|
||||
#cmakedefine USE_WATT32 1
|
||||
|
||||
/* enable multiple SSL backends */
|
||||
#cmakedefine CURL_WITH_MULTI_SSL 1
|
||||
|
||||
|
|
|
|||
|
|
@ -73,7 +73,11 @@ int Curl_gethostname(char * const name, GETHOSTNAME_TYPE_ARG2 namelen)
|
|||
#else /* DEBUGBUILD */
|
||||
|
||||
name[0] = '\0';
|
||||
#ifdef __AMIGA__
|
||||
err = gethostname((unsigned char *)name, namelen);
|
||||
#else
|
||||
err = gethostname(name, namelen);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -149,10 +149,6 @@
|
|||
# include "config-riscos.h"
|
||||
#endif
|
||||
|
||||
#ifdef __AMIGA__
|
||||
# include "config-amigaos.h"
|
||||
#endif
|
||||
|
||||
#ifdef __OS400__
|
||||
# include "config-os400.h"
|
||||
#endif
|
||||
|
|
@ -161,10 +157,6 @@
|
|||
# include "config-plan9.h"
|
||||
#endif
|
||||
|
||||
#ifdef MSDOS
|
||||
# include "config-dos.h"
|
||||
#endif
|
||||
|
||||
#endif /* HAVE_CONFIG_H */
|
||||
|
||||
/* ================================================================ */
|
||||
|
|
@ -491,6 +483,14 @@
|
|||
FILE *curlx_win32_fopen(const char *filename, const char *mode);
|
||||
#endif
|
||||
|
||||
#ifdef __DJGPP__
|
||||
/* Requires DJGPP 2.04 */
|
||||
# include <unistd.h>
|
||||
# undef lseek
|
||||
# define lseek(fdes,offset,whence) llseek(fdes, offset, whence)
|
||||
# define LSEEK_ERROR (offset_t)-1
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Small file (<2Gb) support using Win32 functions.
|
||||
*/
|
||||
|
|
@ -908,6 +908,8 @@ endings either CRLF or LF so 't' is appropriate.
|
|||
# define CURL_SA_FAMILY_T sa_family_t
|
||||
# elif defined(HAVE_ADDRESS_FAMILY)
|
||||
# define CURL_SA_FAMILY_T ADDRESS_FAMILY
|
||||
# elif defined(__AMIGA__)
|
||||
# define CURL_SA_FAMILY_T unsigned char
|
||||
# else
|
||||
/* use a sensible default */
|
||||
# define CURL_SA_FAMILY_T unsigned short
|
||||
|
|
|
|||
|
|
@ -187,7 +187,7 @@ struct timeval {
|
|||
# define sclose(x) closesocket((x))
|
||||
#elif defined(HAVE_CLOSESOCKET_CAMEL)
|
||||
# define sclose(x) CloseSocket((x))
|
||||
#elif defined(HAVE_CLOSE_S)
|
||||
#elif defined(MSDOS) /* Watt-32 */
|
||||
# define sclose(x) close_s((x))
|
||||
#elif defined(USE_LWIPSOCK)
|
||||
# define sclose(x) lwip_close((x))
|
||||
|
|
|
|||
12
lib/doh.c
12
lib/doh.c
|
|
@ -961,11 +961,7 @@ static CURLcode doh2ai(const struct dohentry *de, const char *hostname,
|
|||
addr = (void *)ai->ai_addr; /* storage area for this info */
|
||||
DEBUGASSERT(sizeof(struct in_addr) == sizeof(de->addr[i].ip.v4));
|
||||
memcpy(&addr->sin_addr, &de->addr[i].ip.v4, sizeof(struct in_addr));
|
||||
#ifdef __MINGW32__
|
||||
addr->sin_family = (short)addrtype;
|
||||
#else
|
||||
addr->sin_family = addrtype;
|
||||
#endif
|
||||
addr->sin_family = (CURL_SA_FAMILY_T)addrtype;
|
||||
addr->sin_port = htons((unsigned short)port);
|
||||
break;
|
||||
|
||||
|
|
@ -974,11 +970,7 @@ static CURLcode doh2ai(const struct dohentry *de, const char *hostname,
|
|||
addr6 = (void *)ai->ai_addr; /* storage area for this info */
|
||||
DEBUGASSERT(sizeof(struct in6_addr) == sizeof(de->addr[i].ip.v6));
|
||||
memcpy(&addr6->sin6_addr, &de->addr[i].ip.v6, sizeof(struct in6_addr));
|
||||
#ifdef __MINGW32__
|
||||
addr6->sin6_family = (short)addrtype;
|
||||
#else
|
||||
addr6->sin6_family = addrtype;
|
||||
#endif
|
||||
addr6->sin6_family = (CURL_SA_FAMILY_T)addrtype;
|
||||
addr6->sin6_port = htons((unsigned short)port);
|
||||
break;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -553,8 +553,13 @@ static CURLcode file_do(struct Curl_easy *data, bool *done)
|
|||
|
||||
if(data->state.resume_from) {
|
||||
if(!S_ISDIR(statbuf.st_mode)) {
|
||||
#ifdef __AMIGA__
|
||||
if(data->state.resume_from !=
|
||||
lseek(fd, (off_t)data->state.resume_from, SEEK_SET))
|
||||
#else
|
||||
if(data->state.resume_from !=
|
||||
lseek(fd, data->state.resume_from, SEEK_SET))
|
||||
#endif
|
||||
return CURLE_BAD_DOWNLOAD_RESUME;
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
|
|
@ -2079,10 +2079,19 @@ static CURLcode ftp_state_mdtm_resp(struct Curl_easy *data,
|
|||
/* If we asked for a time of the file and we actually got one as well,
|
||||
we "emulate" an HTTP-style header in our output. */
|
||||
|
||||
#if defined(__GNUC__) && (defined(__DJGPP__) || defined(__AMIGA__))
|
||||
#pragma GCC diagnostic push
|
||||
/* 'time_t' is unsigned in MSDOS and AmigaOS. Silence:
|
||||
warning: comparison of unsigned expression in '>= 0' is always true */
|
||||
#pragma GCC diagnostic ignored "-Wtype-limits"
|
||||
#endif
|
||||
if(data->req.no_body &&
|
||||
ftpc->file &&
|
||||
data->set.get_filetime &&
|
||||
(data->info.filetime >= 0) ) {
|
||||
#if defined(__GNUC__) && (defined(__DJGPP__) || defined(__AMIGA__))
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
char headerbuf[128];
|
||||
int headerbuflen;
|
||||
time_t filetime = data->info.filetime;
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@
|
|||
|
||||
/* int send(int, const char *, int, int); */
|
||||
#define SEND_TYPE_ARG1 int
|
||||
#define SEND_QUAL_ARG2
|
||||
#define SEND_TYPE_ARG2 char *
|
||||
#define SEND_TYPE_ARG3 int
|
||||
#define SEND_TYPE_RETV int
|
||||
|
|
|
|||
|
|
@ -238,8 +238,10 @@ static CURLcode getinfo_long(struct Curl_easy *data, CURLINFO info,
|
|||
case CURLINFO_FILETIME:
|
||||
if(data->info.filetime > LONG_MAX)
|
||||
*param_longp = LONG_MAX;
|
||||
#if !defined(MSDOS) && !defined(__AMIGA__)
|
||||
else if(data->info.filetime < LONG_MIN)
|
||||
*param_longp = LONG_MIN;
|
||||
#endif
|
||||
else
|
||||
*param_longp = (long)data->info.filetime;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -198,7 +198,7 @@ hostcache_entry_is_stale(void *datap, void *hc)
|
|||
if(dns->timestamp) {
|
||||
/* age in seconds */
|
||||
time_t age = prune->now - dns->timestamp;
|
||||
if(age >= prune->max_age_sec)
|
||||
if(age >= (time_t)prune->max_age_sec)
|
||||
return TRUE;
|
||||
if(age > prune->oldest)
|
||||
prune->oldest = age;
|
||||
|
|
@ -541,7 +541,9 @@ static struct Curl_addrinfo *get_localhost6(int port, const char *name)
|
|||
sa6.sin6_family = AF_INET6;
|
||||
sa6.sin6_port = htons(port16);
|
||||
sa6.sin6_flowinfo = 0;
|
||||
#ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
|
||||
sa6.sin6_scope_id = 0;
|
||||
#endif
|
||||
|
||||
(void)Curl_inet_pton(AF_INET6, "::1", ipv6);
|
||||
memcpy(&sa6.sin6_addr, ipv6, sizeof(ipv6));
|
||||
|
|
|
|||
|
|
@ -2903,7 +2903,7 @@ CURLcode Curl_http_header(struct Curl_easy *data,
|
|||
(void)curlx_strtoofft(v, NULL, 10, &retry_after);
|
||||
if(!retry_after) {
|
||||
time_t date = Curl_getdate_capped(v);
|
||||
if(-1 != date)
|
||||
if((time_t)-1 != date)
|
||||
/* convert date to number of seconds into the future */
|
||||
retry_after = date - time(NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,10 @@ char *Curl_inet_ntop(int af, const void *addr, char *buf, size_t size);
|
|||
#ifdef _WIN32
|
||||
#define Curl_inet_ntop(af,addr,buf,size) \
|
||||
inet_ntop(af, addr, buf, size)
|
||||
#elif defined(__AMIGA__)
|
||||
#define Curl_inet_ntop(af,addr,buf,size) \
|
||||
(char *)inet_ntop(af, (void *)addr, (unsigned char *)buf, \
|
||||
(curl_socklen_t)(size))
|
||||
#else
|
||||
#define Curl_inet_ntop(af,addr,buf,size) \
|
||||
inet_ntop(af, addr, buf, (curl_socklen_t)(size))
|
||||
|
|
|
|||
|
|
@ -32,7 +32,11 @@ int Curl_inet_pton(int, const char *, void *);
|
|||
#ifdef HAVE_ARPA_INET_H
|
||||
#include <arpa/inet.h>
|
||||
#endif
|
||||
#if defined(__AMIGA__)
|
||||
#define Curl_inet_pton(x,y,z) inet_pton(x,(unsigned char *)y,z)
|
||||
#else
|
||||
#define Curl_inet_pton(x,y,z) inet_pton(x,y,z)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* HEADER_CURL_INET_PTON_H */
|
||||
|
|
|
|||
|
|
@ -1170,10 +1170,17 @@ CURLMcode curl_multi_fdset(CURLM *m,
|
|||
if(!FDSET_SOCK(data->last_poll.sockets[i]))
|
||||
/* pretend it does not exist */
|
||||
continue;
|
||||
#if defined(__DJGPP__)
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Warith-conversion"
|
||||
#endif
|
||||
if(data->last_poll.actions[i] & CURL_POLL_IN)
|
||||
FD_SET(data->last_poll.sockets[i], read_fd_set);
|
||||
if(data->last_poll.actions[i] & CURL_POLL_OUT)
|
||||
FD_SET(data->last_poll.sockets[i], write_fd_set);
|
||||
#if defined(__DJGPP__)
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
if((int)data->last_poll.sockets[i] > this_max_fd)
|
||||
this_max_fd = (int)data->last_poll.sockets[i];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,9 @@
|
|||
#ifndef CURL_DISABLE_NETRC
|
||||
|
||||
#ifdef HAVE_PWD_H
|
||||
#undef __NO_NET_API /* required for AmigaOS to declare getpwuid() */
|
||||
#include <pwd.h>
|
||||
#define __NO_NET_API
|
||||
#endif
|
||||
|
||||
#include <curl/curl.h>
|
||||
|
|
|
|||
|
|
@ -63,6 +63,12 @@ int curlx_nonblock(curl_socket_t sockfd, /* operate on this */
|
|||
flags &= ~O_NONBLOCK;
|
||||
return sfcntl(sockfd, F_SETFL, flags);
|
||||
|
||||
#elif defined(HAVE_IOCTLSOCKET_CAMEL_FIONBIO)
|
||||
|
||||
/* Amiga */
|
||||
long flags = nonblock ? 1L : 0L;
|
||||
return IoctlSocket(sockfd, FIONBIO, (char *)&flags);
|
||||
|
||||
#elif defined(HAVE_IOCTL_FIONBIO)
|
||||
|
||||
/* older Unix versions */
|
||||
|
|
@ -75,12 +81,6 @@ int curlx_nonblock(curl_socket_t sockfd, /* operate on this */
|
|||
unsigned long flags = nonblock ? 1UL : 0UL;
|
||||
return ioctlsocket(sockfd, (long)FIONBIO, &flags);
|
||||
|
||||
#elif defined(HAVE_IOCTLSOCKET_CAMEL_FIONBIO)
|
||||
|
||||
/* Amiga */
|
||||
long flags = nonblock ? 1L : 0L;
|
||||
return IoctlSocket(sockfd, FIONBIO, (char *)&flags);
|
||||
|
||||
#elif defined(HAVE_SETSOCKOPT_SO_NONBLOCK)
|
||||
|
||||
/* Orbis OS */
|
||||
|
|
|
|||
|
|
@ -558,7 +558,7 @@ static int parsedate(const char *date, time_t *output)
|
|||
if(tzoff == -1)
|
||||
tzoff = 0;
|
||||
|
||||
if((tzoff > 0) && (t > TIME_T_MAX - tzoff)) {
|
||||
if((tzoff > 0) && (t > (time_t)(TIME_T_MAX - tzoff))) {
|
||||
*output = TIME_T_MAX;
|
||||
return PARSEDATE_LATER; /* time_t overflow */
|
||||
}
|
||||
|
|
@ -586,7 +586,7 @@ time_t curl_getdate(const char *p, const time_t *now)
|
|||
(void)now; /* legacy argument from the past that we ignore */
|
||||
|
||||
if(rc == PARSEDATE_OK) {
|
||||
if(parsed == -1)
|
||||
if(parsed == (time_t)-1)
|
||||
/* avoid returning -1 for a working scenario */
|
||||
parsed++;
|
||||
return parsed;
|
||||
|
|
@ -606,7 +606,7 @@ time_t Curl_getdate_capped(const char *p)
|
|||
|
||||
switch(rc) {
|
||||
case PARSEDATE_OK:
|
||||
if(parsed == -1)
|
||||
if(parsed == (time_t)-1)
|
||||
/* avoid returning -1 for a working scenario */
|
||||
parsed++;
|
||||
return parsed;
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ int Curl_wait_ms(timediff_t timeout_ms)
|
|||
return -1;
|
||||
}
|
||||
#if defined(MSDOS)
|
||||
delay(timeout_ms);
|
||||
delay((unsigned int)timeout_ms);
|
||||
#elif defined(_WIN32)
|
||||
/* prevent overflow, timeout_ms is typecast to ULONG/DWORD. */
|
||||
#if TIMEDIFF_T_MAX >= ULONG_MAX
|
||||
|
|
|
|||
|
|
@ -524,7 +524,7 @@ static CURLcode tftp_send_first(struct tftp_state_data *state,
|
|||
not have a size_t argument, like older unixes that want an 'int' */
|
||||
senddata = sendto(state->sockfd, (void *)state->spacket.data,
|
||||
(SEND_TYPE_ARG3)sbytes, 0,
|
||||
&data->conn->remote_addr->curl_sa_addr,
|
||||
(struct sockaddr *)&data->conn->remote_addr->curl_sa_addr,
|
||||
(curl_socklen_t)data->conn->remote_addr->addrlen);
|
||||
if(senddata != (ssize_t)sbytes) {
|
||||
char buffer[STRERROR_LEN];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue