lib: build fixups when built with most things disabled

Closes #11687
This commit is contained in:
Daniel Stenberg 2023-08-17 14:18:06 +02:00
parent 793157c51b
commit acca40c9b5
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
7 changed files with 63 additions and 28 deletions

View File

@ -722,8 +722,6 @@ static bool verifyconnect(curl_socket_t sockfd, int *error)
static CURLcode socket_connect_result(struct Curl_easy *data,
const char *ipaddress, int error)
{
char buffer[STRERROR_LEN];
switch(error) {
case EINPROGRESS:
case EWOULDBLOCK:
@ -740,8 +738,15 @@ static CURLcode socket_connect_result(struct Curl_easy *data,
default:
/* unknown error, fallthrough and try another address! */
infof(data, "Immediate connect fail for %s: %s",
ipaddress, Curl_strerror(error, buffer, sizeof(buffer)));
#ifdef CURL_DISABLE_VERBOSE_STRINGS
(void)ipaddress;
#else
{
char buffer[STRERROR_LEN];
infof(data, "Immediate connect fail for %s: %s",
ipaddress, Curl_strerror(error, buffer, sizeof(buffer)));
}
#endif
data->state.os_errno = error;
/* connect failed */
return CURLE_COULDNT_CONNECT;
@ -952,7 +957,6 @@ static CURLcode cf_socket_open(struct Curl_cfilter *cf,
bool isconnected = FALSE;
CURLcode result = CURLE_COULDNT_CONNECT;
bool is_tcp;
const char *ipmsg;
(void)data;
DEBUGASSERT(ctx->sock == CURL_SOCKET_BAD);
@ -965,15 +969,20 @@ static CURLcode cf_socket_open(struct Curl_cfilter *cf,
if(result)
goto out;
#ifndef CURL_DISABLE_VERBOSE_STRINGS
{
const char *ipmsg;
#ifdef ENABLE_IPV6
if(ctx->addr.family == AF_INET6) {
set_ipv6_v6only(ctx->sock, 0);
ipmsg = " Trying [%s]:%d...";
}
else
if(ctx->addr.family == AF_INET6) {
set_ipv6_v6only(ctx->sock, 0);
ipmsg = " Trying [%s]:%d...";
}
else
#endif
ipmsg = " Trying %s:%d...";
infof(data, ipmsg, ctx->r_ip, ctx->r_port);
}
#endif
ipmsg = " Trying %s:%d...";
infof(data, ipmsg, ctx->r_ip, ctx->r_port);
#ifdef ENABLE_IPV6
is_tcp = (ctx->addr.family == AF_INET
@ -1917,4 +1926,3 @@ CURLcode Curl_cf_socket_peek(struct Curl_cfilter *cf,
}
return CURLE_FAILED_INIT;
}

View File

@ -121,19 +121,6 @@
static void freednsentry(void *freethis);
/*
* Return # of addresses in a Curl_addrinfo struct
*/
static int num_addresses(const struct Curl_addrinfo *addr)
{
int i = 0;
while(addr) {
addr = addr->ai_next;
i++;
}
return i;
}
/*
* Curl_printable_address() stores a printable version of the 1st address
* given in the 'ai' argument. The result will be stored in the buf that is
@ -388,6 +375,19 @@ Curl_fetch_addr(struct Curl_easy *data,
}
#ifndef CURL_DISABLE_SHUFFLE_DNS
/*
* Return # of addresses in a Curl_addrinfo struct
*/
static int num_addresses(const struct Curl_addrinfo *addr)
{
int i = 0;
while(addr) {
addr = addr->ai_next;
i++;
}
return i;
}
UNITTEST CURLcode Curl_shuffle_addr(struct Curl_easy *data,
struct Curl_addrinfo **addr);
/*

View File

@ -459,7 +459,7 @@ struct Curl_multi *curl_multi_init(void)
CURL_DNS_HASH_SIZE);
}
#ifdef DEBUGBUILD
#if defined(DEBUGBUILD) && !defined(CURL_DISABLE_VERBOSE_STRINGS)
static void multi_warn_debug(struct Curl_multi *multi, struct Curl_easy *data)
{
if(!multi->warned) {

View File

@ -1237,6 +1237,7 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
data->set.out = va_arg(param, void *);
break;
#ifdef CURL_LIST_ONLY_PROTOCOL
case CURLOPT_DIRLISTONLY:
/*
* An option that changes the command to one that asks for a list only, no
@ -1244,7 +1245,7 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
*/
data->set.list_only = (0 != va_arg(param, long)) ? TRUE : FALSE;
break;
#endif
case CURLOPT_APPEND:
/*
* We want to upload and append to an existing file. Used for FTP and

View File

@ -1332,7 +1332,9 @@ CURLcode Curl_pretransfer(struct Curl_easy *data)
}
data->state.prefer_ascii = data->set.prefer_ascii;
#ifdef CURL_LIST_ONLY_PROTOCOL
data->state.list_only = data->set.list_only;
#endif
data->state.httpreq = data->set.method;
data->state.url = data->set.str[STRING_SET_URL];

View File

@ -101,6 +101,12 @@ typedef unsigned int curl_prot_t;
#define PROTO_FAMILY_SMTP (CURLPROTO_SMTP|CURLPROTO_SMTPS)
#define PROTO_FAMILY_SSH (CURLPROTO_SCP|CURLPROTO_SFTP)
#if !defined(CURL_DISABLE_FTP) || defined(USE_SSH) || \
!defined(CURL_DISABLE_POP3)
/* these protocols support CURLOPT_DIRLISTONLY */
#define CURL_LIST_ONLY_PROTOCOL 1
#endif
#define DEFAULT_CONNCACHE_SIZE 5
/* length of longest IPv6 address string including the trailing null */
@ -700,7 +706,9 @@ struct SingleRequest {
struct curltime last_sndbuf_update; /* last time readwrite_upload called
win_update_buffer_size */
#endif
#ifndef CURL_DISABLE_COOKIES
unsigned char setcookies;
#endif
unsigned char writer_stack_depth; /* Unencoding stack depth. */
BIT(header); /* incoming data has HTTP header */
BIT(content_range); /* set TRUE if Content-Range: was found */
@ -1023,14 +1031,19 @@ struct connectdata {
#ifndef CURL_DISABLE_SMB
struct smb_conn smbc;
#endif
#ifdef USE_LIBRTMP
void *rtmp;
#endif
#ifdef USE_OPENLDAP
struct ldapconninfo *ldapc;
#endif
#ifndef CURL_DISABLE_MQTT
struct mqtt_conn mqtt;
#endif
#ifdef USE_WEBSOCKETS
struct websocket *ws;
#endif
unsigned int unused:1; /* avoids empty union */
} proto;
struct connectbundle *bundle; /* The bundle we are member of */
@ -1463,9 +1476,13 @@ struct UrlState {
when multi_done() is called, to prevent multi_done() to get
invoked twice when the multi interface is used. */
BIT(previouslypending); /* this transfer WAS in the multi->pending queue */
#ifndef CURL_DISABLE_COOKIES
BIT(cookie_engine);
#endif
BIT(prefer_ascii); /* ASCII rather than binary */
#ifdef CURL_LIST_ONLY_PROTOCOL
BIT(list_only); /* list directory contents */
#endif
BIT(url_alloc); /* URL string is malloc()'ed */
BIT(referer_alloc); /* referer string is malloc()ed */
BIT(wildcard_resolve); /* Set to true if any resolve change is a wildcard */
@ -1813,7 +1830,9 @@ struct UserDefined {
BIT(tftp_no_options); /* do not send TFTP options requests */
#endif
BIT(sep_headers); /* handle host and proxy headers separately */
#ifndef CURL_DISABLE_COOKIES
BIT(cookiesession); /* new cookie session? */
#endif
BIT(crlf); /* convert crlf on ftp upload(?) */
BIT(ssh_compression); /* enable SSH compression */
@ -1828,7 +1847,9 @@ struct UserDefined {
BIT(tunnel_thru_httpproxy); /* use CONNECT through an HTTP proxy */
BIT(prefer_ascii); /* ASCII rather than binary */
BIT(remote_append); /* append, not overwrite, on upload */
#ifdef CURL_LIST_ONLY_PROTOCOL
BIT(list_only); /* list directory */
#endif
#ifndef CURL_DISABLE_FTP
BIT(ftp_use_port); /* use the FTP PORT command */
BIT(ftp_use_epsv); /* if EPSV is to be attempted or not */

View File

@ -880,6 +880,9 @@ CURLcode Curl_pin_peer_pubkey(struct Curl_easy *data,
FILE *fp;
unsigned char *buf = NULL, *pem_ptr = NULL;
CURLcode result = CURLE_SSL_PINNEDPUBKEYNOTMATCH;
#ifdef CURL_DISABLE_VERBOSE_STRINGS
(void)data;
#endif
/* if a path wasn't specified, don't pin */
if(!pinnedpubkey)