parent
ad837e9df8
commit
72abf7c13a
@ -270,7 +270,7 @@ static CURLcode altsvc_out(struct altsvc *as, FILE *fp)
|
|||||||
"%s %s%s%s %u "
|
"%s %s%s%s %u "
|
||||||
"\"%d%02d%02d "
|
"\"%d%02d%02d "
|
||||||
"%02d:%02d:%02d\" "
|
"%02d:%02d:%02d\" "
|
||||||
"%u %d\n",
|
"%u %u\n",
|
||||||
Curl_alpnid2str(as->src.alpnid),
|
Curl_alpnid2str(as->src.alpnid),
|
||||||
src6_pre, as->src.host, src6_post,
|
src6_pre, as->src.host, src6_post,
|
||||||
as->src.port,
|
as->src.port,
|
||||||
@ -462,7 +462,7 @@ static time_t altsvc_debugtime(void *unused)
|
|||||||
char *timestr = getenv("CURL_TIME");
|
char *timestr = getenv("CURL_TIME");
|
||||||
(void)unused;
|
(void)unused;
|
||||||
if(timestr) {
|
if(timestr) {
|
||||||
unsigned long val = strtol(timestr, NULL, 10);
|
long val = strtol(timestr, NULL, 10);
|
||||||
return (time_t)val;
|
return (time_t)val;
|
||||||
}
|
}
|
||||||
return time(NULL);
|
return time(NULL);
|
||||||
@ -624,7 +624,7 @@ CURLcode Curl_altsvc_parse(struct Curl_easy *data,
|
|||||||
num = strtoul(value_ptr, &end_ptr, 10);
|
num = strtoul(value_ptr, &end_ptr, 10);
|
||||||
if((end_ptr != value_ptr) && (num < ULONG_MAX)) {
|
if((end_ptr != value_ptr) && (num < ULONG_MAX)) {
|
||||||
if(strcasecompare("ma", option))
|
if(strcasecompare("ma", option))
|
||||||
maxage = num;
|
maxage = (time_t)num;
|
||||||
else if(strcasecompare("persist", option) && (num == 1))
|
else if(strcasecompare("persist", option) && (num == 1))
|
||||||
persist = TRUE;
|
persist = TRUE;
|
||||||
}
|
}
|
||||||
@ -696,7 +696,7 @@ bool Curl_altsvc_lookup(struct altsvcinfo *asi,
|
|||||||
if((as->src.alpnid == srcalpnid) &&
|
if((as->src.alpnid == srcalpnid) &&
|
||||||
hostcompare(srchost, as->src.host) &&
|
hostcompare(srchost, as->src.host) &&
|
||||||
(as->src.port == srcport) &&
|
(as->src.port == srcport) &&
|
||||||
(versions & as->dst.alpnid)) {
|
(versions & (int)as->dst.alpnid)) {
|
||||||
/* match */
|
/* match */
|
||||||
*dstentry = as;
|
*dstentry = as;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|||||||
@ -47,7 +47,7 @@ struct altsvc {
|
|||||||
struct althost dst;
|
struct althost dst;
|
||||||
time_t expires;
|
time_t expires;
|
||||||
bool persist;
|
bool persist;
|
||||||
int prio;
|
unsigned int prio;
|
||||||
struct Curl_llist_element node;
|
struct Curl_llist_element node;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -350,7 +350,7 @@ static int waitperform(struct Curl_easy *data, timediff_t timeout_ms)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(num) {
|
if(num) {
|
||||||
nfds = Curl_poll(pfd, num, timeout_ms);
|
nfds = Curl_poll(pfd, (unsigned int)num, timeout_ms);
|
||||||
if(nfds < 0)
|
if(nfds < 0)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -697,7 +697,7 @@ static bool init_resolve_thread(struct Curl_easy *data,
|
|||||||
NULL, &td->tsd.w8.overlapped,
|
NULL, &td->tsd.w8.overlapped,
|
||||||
&query_complete, &td->tsd.w8.cancel_ev);
|
&query_complete, &td->tsd.w8.cancel_ev);
|
||||||
if(err != WSA_IO_PENDING)
|
if(err != WSA_IO_PENDING)
|
||||||
query_complete(err, 0, &td->tsd.w8.overlapped);
|
query_complete((DWORD)err, 0, &td->tsd.w8.overlapped);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1418,7 +1418,7 @@ static ssize_t cf_h2_proxy_send(struct Curl_cfilter *cf,
|
|||||||
/* Unable to send all data, due to connection blocked or H2 window
|
/* Unable to send all data, due to connection blocked or H2 window
|
||||||
* exhaustion. Data is left in our stream buffer, or nghttp2's internal
|
* exhaustion. Data is left in our stream buffer, or nghttp2's internal
|
||||||
* frame buffer or our network out buffer. */
|
* frame buffer or our network out buffer. */
|
||||||
size_t rwin = nghttp2_session_get_stream_remote_window_size(
|
size_t rwin = (size_t)nghttp2_session_get_stream_remote_window_size(
|
||||||
ctx->h2, ctx->tunnel.stream_id);
|
ctx->h2, ctx->tunnel.stream_id);
|
||||||
if(rwin == 0) {
|
if(rwin == 0) {
|
||||||
/* H2 flow window exhaustion.
|
/* H2 flow window exhaustion.
|
||||||
|
|||||||
@ -183,10 +183,10 @@ tcpkeepalive(struct Curl_easy *data,
|
|||||||
vals.onoff = 1;
|
vals.onoff = 1;
|
||||||
optval = curlx_sltosi(data->set.tcp_keepidle);
|
optval = curlx_sltosi(data->set.tcp_keepidle);
|
||||||
KEEPALIVE_FACTOR(optval);
|
KEEPALIVE_FACTOR(optval);
|
||||||
vals.keepalivetime = optval;
|
vals.keepalivetime = (u_long)optval;
|
||||||
optval = curlx_sltosi(data->set.tcp_keepintvl);
|
optval = curlx_sltosi(data->set.tcp_keepintvl);
|
||||||
KEEPALIVE_FACTOR(optval);
|
KEEPALIVE_FACTOR(optval);
|
||||||
vals.keepaliveinterval = optval;
|
vals.keepaliveinterval = (u_long)optval;
|
||||||
if(WSAIoctl(sockfd, SIO_KEEPALIVE_VALS, (LPVOID) &vals, sizeof(vals),
|
if(WSAIoctl(sockfd, SIO_KEEPALIVE_VALS, (LPVOID) &vals, sizeof(vals),
|
||||||
NULL, 0, &dummy, NULL, NULL) != 0) {
|
NULL, 0, &dummy, NULL, NULL) != 0) {
|
||||||
infof(data, "Failed to set SIO_KEEPALIVE_VALS on fd "
|
infof(data, "Failed to set SIO_KEEPALIVE_VALS on fd "
|
||||||
@ -288,7 +288,7 @@ void Curl_sock_assign_addr(struct Curl_sockaddr_ex *dest,
|
|||||||
dest->protocol = IPPROTO_UDP;
|
dest->protocol = IPPROTO_UDP;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
dest->addrlen = ai->ai_addrlen;
|
dest->addrlen = (unsigned int)ai->ai_addrlen;
|
||||||
|
|
||||||
if(dest->addrlen > sizeof(struct Curl_sockaddr_storage))
|
if(dest->addrlen > sizeof(struct Curl_sockaddr_storage))
|
||||||
dest->addrlen = sizeof(struct Curl_sockaddr_storage);
|
dest->addrlen = sizeof(struct Curl_sockaddr_storage);
|
||||||
@ -1063,7 +1063,7 @@ static CURLcode set_remote_ip(struct Curl_cfilter *cf,
|
|||||||
struct cf_socket_ctx *ctx = cf->ctx;
|
struct cf_socket_ctx *ctx = cf->ctx;
|
||||||
|
|
||||||
/* store remote address and port used in this connection attempt */
|
/* store remote address and port used in this connection attempt */
|
||||||
if(!Curl_addr2string(&ctx->addr.sa_addr, ctx->addr.addrlen,
|
if(!Curl_addr2string(&ctx->addr.sa_addr, (curl_socklen_t)ctx->addr.addrlen,
|
||||||
ctx->ip.remote_ip, &ctx->ip.remote_port)) {
|
ctx->ip.remote_ip, &ctx->ip.remote_port)) {
|
||||||
char buffer[STRERROR_LEN];
|
char buffer[STRERROR_LEN];
|
||||||
|
|
||||||
@ -1247,7 +1247,8 @@ static int do_connect(struct Curl_cfilter *cf, struct Curl_easy *data,
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
rc = connect(ctx->sock, &ctx->addr.sa_addr, ctx->addr.addrlen);
|
rc = connect(ctx->sock, &ctx->addr.sa_addr,
|
||||||
|
(curl_socklen_t)ctx->addr.addrlen);
|
||||||
}
|
}
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@ -1785,7 +1786,8 @@ static CURLcode cf_udp_setup_quic(struct Curl_cfilter *cf,
|
|||||||
/* On macOS OpenSSL QUIC fails on connected sockets.
|
/* On macOS OpenSSL QUIC fails on connected sockets.
|
||||||
* see: <https://github.com/openssl/openssl/issues/23251> */
|
* see: <https://github.com/openssl/openssl/issues/23251> */
|
||||||
#else
|
#else
|
||||||
rc = connect(ctx->sock, &ctx->addr.sa_addr, ctx->addr.addrlen);
|
rc = connect(ctx->sock, &ctx->addr.sa_addr,
|
||||||
|
(curl_socklen_t)ctx->addr.addrlen);
|
||||||
if(-1 == rc) {
|
if(-1 == rc) {
|
||||||
return socket_connect_result(data, ctx->ip.remote_ip, SOCKERRNO);
|
return socket_connect_result(data, ctx->ip.remote_ip, SOCKERRNO);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -536,13 +536,13 @@ static CURLcode gzip_do_write(struct Curl_easy *data,
|
|||||||
/* Append the new block of data to the previous one */
|
/* Append the new block of data to the previous one */
|
||||||
memcpy(z->next_in + z->avail_in - nbytes, buf, nbytes);
|
memcpy(z->next_in + z->avail_in - nbytes, buf, nbytes);
|
||||||
|
|
||||||
switch(check_gzip_header(z->next_in, z->avail_in, &hlen)) {
|
switch(check_gzip_header(z->next_in, (ssize_t)z->avail_in, &hlen)) {
|
||||||
case GZIP_OK:
|
case GZIP_OK:
|
||||||
/* This is the zlib stream data */
|
/* This is the zlib stream data */
|
||||||
free(z->next_in);
|
free(z->next_in);
|
||||||
/* Don't point into the malloced block since we just freed it */
|
/* Don't point into the malloced block since we just freed it */
|
||||||
z->next_in = (Bytef *) buf + hlen + nbytes - z->avail_in;
|
z->next_in = (Bytef *) buf + hlen + nbytes - z->avail_in;
|
||||||
z->avail_in = (uInt) (z->avail_in - hlen);
|
z->avail_in = z->avail_in - (uInt)hlen;
|
||||||
zp->zlib_init = ZLIB_GZIP_INFLATING; /* Inflating stream state */
|
zp->zlib_init = ZLIB_GZIP_INFLATING; /* Inflating stream state */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@ -262,8 +262,9 @@ static size_t cookie_hash_domain(const char *domain, const size_t len)
|
|||||||
size_t h = 5381;
|
size_t h = 5381;
|
||||||
|
|
||||||
while(domain < end) {
|
while(domain < end) {
|
||||||
|
size_t j = (size_t)Curl_raw_toupper(*domain++);
|
||||||
h += h << 5;
|
h += h << 5;
|
||||||
h ^= Curl_raw_toupper(*domain++);
|
h ^= j;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (h % COOKIE_HASH_SIZE);
|
return (h % COOKIE_HASH_SIZE);
|
||||||
|
|||||||
@ -317,7 +317,11 @@ Curl_he2ai(const struct hostent *he, int port)
|
|||||||
addr = (void *)ai->ai_addr; /* storage area for this info */
|
addr = (void *)ai->ai_addr; /* storage area for this info */
|
||||||
|
|
||||||
memcpy(&addr->sin_addr, curr, sizeof(struct in_addr));
|
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);
|
addr->sin_family = (CURL_SA_FAMILY_T)(he->h_addrtype);
|
||||||
|
#endif
|
||||||
addr->sin_port = htons((unsigned short)port);
|
addr->sin_port = htons((unsigned short)port);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -326,7 +330,11 @@ Curl_he2ai(const struct hostent *he, int port)
|
|||||||
addr6 = (void *)ai->ai_addr; /* storage area for this info */
|
addr6 = (void *)ai->ai_addr; /* storage area for this info */
|
||||||
|
|
||||||
memcpy(&addr6->sin6_addr, curr, sizeof(struct in6_addr));
|
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);
|
addr6->sin6_family = (CURL_SA_FAMILY_T)(he->h_addrtype);
|
||||||
|
#endif
|
||||||
addr6->sin6_port = htons((unsigned short)port);
|
addr6->sin6_port = htons((unsigned short)port);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -80,7 +80,7 @@ static int parsekeyword(unsigned char **pattern, unsigned char *charset)
|
|||||||
unsigned char *p = *pattern;
|
unsigned char *p = *pattern;
|
||||||
bool found = FALSE;
|
bool found = FALSE;
|
||||||
for(i = 0; !found; i++) {
|
for(i = 0; !found; i++) {
|
||||||
char c = *p++;
|
char c = (char)*p++;
|
||||||
if(i >= KEYLEN)
|
if(i >= KEYLEN)
|
||||||
return SETCHARSET_FAIL;
|
return SETCHARSET_FAIL;
|
||||||
switch(state) {
|
switch(state) {
|
||||||
|
|||||||
@ -137,14 +137,14 @@
|
|||||||
*/
|
*/
|
||||||
static void extend_key_56_to_64(const unsigned char *key_56, char *key)
|
static void extend_key_56_to_64(const unsigned char *key_56, char *key)
|
||||||
{
|
{
|
||||||
key[0] = key_56[0];
|
key[0] = (char)key_56[0];
|
||||||
key[1] = (unsigned char)(((key_56[0] << 7) & 0xFF) | (key_56[1] >> 1));
|
key[1] = (char)(((key_56[0] << 7) & 0xFF) | (key_56[1] >> 1));
|
||||||
key[2] = (unsigned char)(((key_56[1] << 6) & 0xFF) | (key_56[2] >> 2));
|
key[2] = (char)(((key_56[1] << 6) & 0xFF) | (key_56[2] >> 2));
|
||||||
key[3] = (unsigned char)(((key_56[2] << 5) & 0xFF) | (key_56[3] >> 3));
|
key[3] = (char)(((key_56[2] << 5) & 0xFF) | (key_56[3] >> 3));
|
||||||
key[4] = (unsigned char)(((key_56[3] << 4) & 0xFF) | (key_56[4] >> 4));
|
key[4] = (char)(((key_56[3] << 4) & 0xFF) | (key_56[4] >> 4));
|
||||||
key[5] = (unsigned char)(((key_56[4] << 3) & 0xFF) | (key_56[5] >> 5));
|
key[5] = (char)(((key_56[4] << 3) & 0xFF) | (key_56[5] >> 5));
|
||||||
key[6] = (unsigned char)(((key_56[5] << 2) & 0xFF) | (key_56[6] >> 6));
|
key[6] = (char)(((key_56[5] << 2) & 0xFF) | (key_56[6] >> 6));
|
||||||
key[7] = (unsigned char) ((key_56[6] << 1) & 0xFF);
|
key[7] = (char) ((key_56[6] << 1) & 0xFF);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -466,13 +466,13 @@ static void time2filetime(struct ms_filetime *ft, time_t t)
|
|||||||
unsigned int r, s;
|
unsigned int r, s;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
ft->dwLowDateTime = t & 0xFFFFFFFF;
|
ft->dwLowDateTime = (unsigned int)t & 0xFFFFFFFF;
|
||||||
ft->dwHighDateTime = 0;
|
ft->dwHighDateTime = 0;
|
||||||
|
|
||||||
# ifndef HAVE_TIME_T_UNSIGNED
|
# ifndef HAVE_TIME_T_UNSIGNED
|
||||||
/* Extend sign if needed. */
|
/* Extend sign if needed. */
|
||||||
if(ft->dwLowDateTime & 0x80000000)
|
if(ft->dwLowDateTime & 0x80000000)
|
||||||
ft->dwHighDateTime = ~0;
|
ft->dwHighDateTime = ~(unsigned int)0;
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
/* Bias seconds to Jan 1, 1601.
|
/* Bias seconds to Jan 1, 1601.
|
||||||
|
|||||||
18
lib/doh.c
18
lib/doh.c
@ -518,12 +518,12 @@ static DOHcode skipqname(const unsigned char *doh, size_t dohlen,
|
|||||||
return DOH_OK;
|
return DOH_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned short get16bit(const unsigned char *doh, int index)
|
static unsigned short get16bit(const unsigned char *doh, unsigned int index)
|
||||||
{
|
{
|
||||||
return (unsigned short)((doh[index] << 8) | doh[index + 1]);
|
return (unsigned short)((doh[index] << 8) | doh[index + 1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned int get32bit(const unsigned char *doh, int index)
|
static unsigned int get32bit(const unsigned char *doh, unsigned int index)
|
||||||
{
|
{
|
||||||
/* make clang and gcc optimize this to bswap by incrementing
|
/* make clang and gcc optimize this to bswap by incrementing
|
||||||
the pointer first. */
|
the pointer first. */
|
||||||
@ -606,7 +606,7 @@ static DOHcode store_cname(const unsigned char *doh,
|
|||||||
|
|
||||||
/* move to the new index */
|
/* move to the new index */
|
||||||
newpos = (length & 0x3f) << 8 | doh[index + 1];
|
newpos = (length & 0x3f) << 8 | doh[index + 1];
|
||||||
index = newpos;
|
index = (unsigned int)newpos;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if(length & 0xc0)
|
else if(length & 0xc0)
|
||||||
@ -670,7 +670,7 @@ static DOHcode rdata(const unsigned char *doh,
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case DNS_TYPE_CNAME:
|
case DNS_TYPE_CNAME:
|
||||||
rc = store_cname(doh, dohlen, index, d);
|
rc = store_cname(doh, dohlen, (unsigned int)index, d);
|
||||||
if(rc)
|
if(rc)
|
||||||
return rc;
|
return rc;
|
||||||
break;
|
break;
|
||||||
@ -771,7 +771,7 @@ UNITTEST DOHcode doh_decode(const unsigned char *doh,
|
|||||||
if(dohlen < (index + rdlength))
|
if(dohlen < (index + rdlength))
|
||||||
return DOH_DNS_OUT_OF_RANGE;
|
return DOH_DNS_OUT_OF_RANGE;
|
||||||
|
|
||||||
rc = rdata(doh, dohlen, rdlength, type, index, d);
|
rc = rdata(doh, dohlen, rdlength, type, (int)index, d);
|
||||||
if(rc)
|
if(rc)
|
||||||
return rc; /* bad rdata */
|
return rc; /* bad rdata */
|
||||||
index += rdlength;
|
index += rdlength;
|
||||||
@ -967,7 +967,11 @@ static CURLcode doh2ai(const struct dohentry *de, const char *hostname,
|
|||||||
addr = (void *)ai->ai_addr; /* storage area for this info */
|
addr = (void *)ai->ai_addr; /* storage area for this info */
|
||||||
DEBUGASSERT(sizeof(struct in_addr) == sizeof(de->addr[i].ip.v4));
|
DEBUGASSERT(sizeof(struct in_addr) == sizeof(de->addr[i].ip.v4));
|
||||||
memcpy(&addr->sin_addr, &de->addr[i].ip.v4, sizeof(struct in_addr));
|
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;
|
addr->sin_family = addrtype;
|
||||||
|
#endif
|
||||||
addr->sin_port = htons((unsigned short)port);
|
addr->sin_port = htons((unsigned short)port);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -976,7 +980,11 @@ static CURLcode doh2ai(const struct dohentry *de, const char *hostname,
|
|||||||
addr6 = (void *)ai->ai_addr; /* storage area for this info */
|
addr6 = (void *)ai->ai_addr; /* storage area for this info */
|
||||||
DEBUGASSERT(sizeof(struct in6_addr) == sizeof(de->addr[i].ip.v6));
|
DEBUGASSERT(sizeof(struct in6_addr) == sizeof(de->addr[i].ip.v6));
|
||||||
memcpy(&addr6->sin6_addr, &de->addr[i].ip.v6, sizeof(struct in6_addr));
|
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;
|
addr6->sin6_family = addrtype;
|
||||||
|
#endif
|
||||||
addr6->sin6_port = htons((unsigned short)port);
|
addr6->sin6_port = htons((unsigned short)port);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -579,7 +579,7 @@ static CURLcode wait_or_timeout(struct Curl_multi *multi, struct events *ev)
|
|||||||
before = Curl_now();
|
before = Curl_now();
|
||||||
|
|
||||||
/* wait for activity or timeout */
|
/* wait for activity or timeout */
|
||||||
pollrc = Curl_poll(fds, numfds, ev->ms);
|
pollrc = Curl_poll(fds, (unsigned int)numfds, ev->ms);
|
||||||
if(pollrc < 0)
|
if(pollrc < 0)
|
||||||
return CURLE_UNRECOVERABLE_POLL;
|
return CURLE_UNRECOVERABLE_POLL;
|
||||||
|
|
||||||
|
|||||||
11
lib/escape.c
11
lib/escape.c
@ -70,7 +70,8 @@ char *curl_easy_escape(struct Curl_easy *data, const char *string,
|
|||||||
return strdup("");
|
return strdup("");
|
||||||
|
|
||||||
while(length--) {
|
while(length--) {
|
||||||
unsigned char in = *string++; /* treat the characters unsigned */
|
/* treat the characters unsigned */
|
||||||
|
unsigned char in = (unsigned char)*string++;
|
||||||
|
|
||||||
if(ISUNRESERVED(in)) {
|
if(ISUNRESERVED(in)) {
|
||||||
/* append this */
|
/* append this */
|
||||||
@ -137,7 +138,7 @@ CURLcode Curl_urldecode(const char *string, size_t length,
|
|||||||
*ostring = ns;
|
*ostring = ns;
|
||||||
|
|
||||||
while(alloc) {
|
while(alloc) {
|
||||||
unsigned char in = *string;
|
unsigned char in = (unsigned char)*string;
|
||||||
if(('%' == in) && (alloc > 2) &&
|
if(('%' == in) && (alloc > 2) &&
|
||||||
ISXDIGIT(string[1]) && ISXDIGIT(string[2])) {
|
ISXDIGIT(string[1]) && ISXDIGIT(string[2])) {
|
||||||
/* this is two hexadecimal digits following a '%' */
|
/* this is two hexadecimal digits following a '%' */
|
||||||
@ -157,7 +158,7 @@ CURLcode Curl_urldecode(const char *string, size_t length,
|
|||||||
return CURLE_URL_MALFORMAT;
|
return CURLE_URL_MALFORMAT;
|
||||||
}
|
}
|
||||||
|
|
||||||
*ns++ = in;
|
*ns++ = (char)in;
|
||||||
}
|
}
|
||||||
*ns = 0; /* terminate it */
|
*ns = 0; /* terminate it */
|
||||||
|
|
||||||
@ -222,8 +223,8 @@ void Curl_hexencode(const unsigned char *src, size_t len, /* input length */
|
|||||||
while(len-- && (olen >= 3)) {
|
while(len-- && (olen >= 3)) {
|
||||||
/* clang-tidy warns on this line without this comment: */
|
/* clang-tidy warns on this line without this comment: */
|
||||||
/* NOLINTNEXTLINE(clang-analyzer-core.UndefinedBinaryOperatorResult) */
|
/* NOLINTNEXTLINE(clang-analyzer-core.UndefinedBinaryOperatorResult) */
|
||||||
*out++ = hex[(*src & 0xF0)>>4];
|
*out++ = (unsigned char)hex[(*src & 0xF0)>>4];
|
||||||
*out++ = hex[*src & 0x0F];
|
*out++ = (unsigned char)hex[*src & 0x0F];
|
||||||
++src;
|
++src;
|
||||||
olen -= 2;
|
olen -= 2;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -204,7 +204,7 @@ static CURLcode getinfo_long(struct Curl_easy *data, CURLINFO info,
|
|||||||
#ifdef DEBUGBUILD
|
#ifdef DEBUGBUILD
|
||||||
char *timestr = getenv("CURL_TIME");
|
char *timestr = getenv("CURL_TIME");
|
||||||
if(timestr) {
|
if(timestr) {
|
||||||
unsigned long val = strtol(timestr, NULL, 10);
|
unsigned long val = strtoul(timestr, NULL, 10);
|
||||||
switch(info) {
|
switch(info) {
|
||||||
case CURLINFO_LOCAL_PORT:
|
case CURLINFO_LOCAL_PORT:
|
||||||
*param_longp = (long)val;
|
*param_longp = (long)val;
|
||||||
@ -216,7 +216,7 @@ static CURLcode getinfo_long(struct Curl_easy *data, CURLINFO info,
|
|||||||
/* use another variable for this to allow different values */
|
/* use another variable for this to allow different values */
|
||||||
timestr = getenv("CURL_DEBUG_SIZE");
|
timestr = getenv("CURL_DEBUG_SIZE");
|
||||||
if(timestr) {
|
if(timestr) {
|
||||||
unsigned long val = strtol(timestr, NULL, 10);
|
unsigned long val = strtoul(timestr, NULL, 10);
|
||||||
switch(info) {
|
switch(info) {
|
||||||
case CURLINFO_HEADER_SIZE:
|
case CURLINFO_HEADER_SIZE:
|
||||||
case CURLINFO_REQUEST_SIZE:
|
case CURLINFO_REQUEST_SIZE:
|
||||||
@ -335,7 +335,7 @@ static CURLcode getinfo_long(struct Curl_easy *data, CURLINFO info,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CURLINFO_PROTOCOL:
|
case CURLINFO_PROTOCOL:
|
||||||
*param_longp = data->info.conn_protocol;
|
*param_longp = (long)data->info.conn_protocol;
|
||||||
break;
|
break;
|
||||||
case CURLINFO_USED_PROXY:
|
case CURLINFO_USED_PROXY:
|
||||||
*param_longp =
|
*param_longp =
|
||||||
@ -361,7 +361,7 @@ static CURLcode getinfo_offt(struct Curl_easy *data, CURLINFO info,
|
|||||||
#ifdef DEBUGBUILD
|
#ifdef DEBUGBUILD
|
||||||
char *timestr = getenv("CURL_TIME");
|
char *timestr = getenv("CURL_TIME");
|
||||||
if(timestr) {
|
if(timestr) {
|
||||||
unsigned long val = strtol(timestr, NULL, 10);
|
unsigned long val = strtoul(timestr, NULL, 10);
|
||||||
switch(info) {
|
switch(info) {
|
||||||
case CURLINFO_TOTAL_TIME_T:
|
case CURLINFO_TOTAL_TIME_T:
|
||||||
case CURLINFO_NAMELOOKUP_TIME_T:
|
case CURLINFO_NAMELOOKUP_TIME_T:
|
||||||
@ -450,7 +450,7 @@ static CURLcode getinfo_double(struct Curl_easy *data, CURLINFO info,
|
|||||||
#ifdef DEBUGBUILD
|
#ifdef DEBUGBUILD
|
||||||
char *timestr = getenv("CURL_TIME");
|
char *timestr = getenv("CURL_TIME");
|
||||||
if(timestr) {
|
if(timestr) {
|
||||||
unsigned long val = strtol(timestr, NULL, 10);
|
unsigned long val = strtoul(timestr, NULL, 10);
|
||||||
switch(info) {
|
switch(info) {
|
||||||
case CURLINFO_TOTAL_TIME:
|
case CURLINFO_TOTAL_TIME:
|
||||||
case CURLINFO_NAMELOOKUP_TIME:
|
case CURLINFO_NAMELOOKUP_TIME:
|
||||||
|
|||||||
@ -270,8 +270,9 @@ size_t Curl_hash_str(void *key, size_t key_length, size_t slots_num)
|
|||||||
size_t h = 5381;
|
size_t h = 5381;
|
||||||
|
|
||||||
while(key_str < end) {
|
while(key_str < end) {
|
||||||
|
size_t j = (size_t)*key_str++;
|
||||||
h += h << 5;
|
h += h << 5;
|
||||||
h ^= *key_str++;
|
h ^= j;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (h % slots_num);
|
return (h % slots_num);
|
||||||
|
|||||||
@ -54,7 +54,7 @@ static void copy_header_external(struct Curl_header_store *hs,
|
|||||||
impossible for applications to do == comparisons, as that would otherwise
|
impossible for applications to do == comparisons, as that would otherwise
|
||||||
be very tempting and then lead to the reserved bits not being reserved
|
be very tempting and then lead to the reserved bits not being reserved
|
||||||
anymore. */
|
anymore. */
|
||||||
h->origin = hs->type | (1<<27);
|
h->origin = (unsigned int)(hs->type | (1<<27));
|
||||||
h->anchor = e;
|
h->anchor = e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -428,8 +428,8 @@ UNITTEST CURLcode Curl_shuffle_addr(struct Curl_easy *data,
|
|||||||
if(Curl_rand(data, (unsigned char *)rnd, rnd_size) == CURLE_OK) {
|
if(Curl_rand(data, (unsigned char *)rnd, rnd_size) == CURLE_OK) {
|
||||||
struct Curl_addrinfo *swap_tmp;
|
struct Curl_addrinfo *swap_tmp;
|
||||||
for(i = num_addrs - 1; i > 0; i--) {
|
for(i = num_addrs - 1; i > 0; i--) {
|
||||||
swap_tmp = nodes[rnd[i] % (i + 1)];
|
swap_tmp = nodes[rnd[i] % (unsigned int)(i + 1)];
|
||||||
nodes[rnd[i] % (i + 1)] = nodes[i];
|
nodes[rnd[i] % (unsigned int)(i + 1)] = nodes[i];
|
||||||
nodes[i] = swap_tmp;
|
nodes[i] = swap_tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -217,7 +217,7 @@ static CURLcode start_req(struct h1_req_parser *parser,
|
|||||||
tmp[target_len] = '\0';
|
tmp[target_len] = '\0';
|
||||||
/* See if treating TARGET as an absolute URL makes sense */
|
/* See if treating TARGET as an absolute URL makes sense */
|
||||||
if(Curl_is_absolute_url(tmp, NULL, 0, FALSE)) {
|
if(Curl_is_absolute_url(tmp, NULL, 0, FALSE)) {
|
||||||
int url_options;
|
unsigned int url_options;
|
||||||
|
|
||||||
url = curl_url();
|
url = curl_url();
|
||||||
if(!url) {
|
if(!url) {
|
||||||
|
|||||||
26
lib/http2.c
26
lib/http2.c
@ -93,7 +93,7 @@
|
|||||||
#define H2_SETTINGS_IV_LEN 3
|
#define H2_SETTINGS_IV_LEN 3
|
||||||
#define H2_BINSETTINGS_LEN 80
|
#define H2_BINSETTINGS_LEN 80
|
||||||
|
|
||||||
static int populate_settings(nghttp2_settings_entry *iv,
|
static size_t populate_settings(nghttp2_settings_entry *iv,
|
||||||
struct Curl_easy *data)
|
struct Curl_easy *data)
|
||||||
{
|
{
|
||||||
iv[0].settings_id = NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS;
|
iv[0].settings_id = NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS;
|
||||||
@ -112,7 +112,7 @@ static ssize_t populate_binsettings(uint8_t *binsettings,
|
|||||||
struct Curl_easy *data)
|
struct Curl_easy *data)
|
||||||
{
|
{
|
||||||
nghttp2_settings_entry iv[H2_SETTINGS_IV_LEN];
|
nghttp2_settings_entry iv[H2_SETTINGS_IV_LEN];
|
||||||
int ivlen;
|
size_t ivlen;
|
||||||
|
|
||||||
ivlen = populate_settings(iv, data);
|
ivlen = populate_settings(iv, data);
|
||||||
/* this returns number of bytes it wrote or a negative number on error. */
|
/* this returns number of bytes it wrote or a negative number on error. */
|
||||||
@ -133,7 +133,7 @@ struct cf_h2_ctx {
|
|||||||
struct Curl_hash streams; /* hash of `data->id` to `h2_stream_ctx` */
|
struct Curl_hash streams; /* hash of `data->id` to `h2_stream_ctx` */
|
||||||
size_t drain_total; /* sum of all stream's UrlState drain */
|
size_t drain_total; /* sum of all stream's UrlState drain */
|
||||||
uint32_t max_concurrent_streams;
|
uint32_t max_concurrent_streams;
|
||||||
int32_t goaway_error;
|
uint32_t goaway_error;
|
||||||
int32_t last_stream_id;
|
int32_t last_stream_id;
|
||||||
BIT(conn_closed);
|
BIT(conn_closed);
|
||||||
BIT(goaway);
|
BIT(goaway);
|
||||||
@ -486,7 +486,7 @@ static CURLcode cf_h2_ctx_init(struct Curl_cfilter *cf,
|
|||||||
DEBUGASSERT(stream);
|
DEBUGASSERT(stream);
|
||||||
stream->id = 1;
|
stream->id = 1;
|
||||||
/* queue SETTINGS frame (again) */
|
/* queue SETTINGS frame (again) */
|
||||||
rc = nghttp2_session_upgrade2(ctx->h2, binsettings, binlen,
|
rc = nghttp2_session_upgrade2(ctx->h2, binsettings, (size_t)binlen,
|
||||||
data->state.httpreq == HTTPREQ_HEAD,
|
data->state.httpreq == HTTPREQ_HEAD,
|
||||||
NULL);
|
NULL);
|
||||||
if(rc) {
|
if(rc) {
|
||||||
@ -507,7 +507,7 @@ static CURLcode cf_h2_ctx_init(struct Curl_cfilter *cf,
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
nghttp2_settings_entry iv[H2_SETTINGS_IV_LEN];
|
nghttp2_settings_entry iv[H2_SETTINGS_IV_LEN];
|
||||||
int ivlen;
|
size_t ivlen;
|
||||||
|
|
||||||
ivlen = populate_settings(iv, data);
|
ivlen = populate_settings(iv, data);
|
||||||
rc = nghttp2_submit_settings(ctx->h2, NGHTTP2_FLAG_NONE,
|
rc = nghttp2_submit_settings(ctx->h2, NGHTTP2_FLAG_NONE,
|
||||||
@ -1007,7 +1007,7 @@ static void h2_xfer_write_resp(struct Curl_cfilter *cf,
|
|||||||
"RST-ing stream",
|
"RST-ing stream",
|
||||||
stream->id, stream->xfer_result, blen);
|
stream->id, stream->xfer_result, blen);
|
||||||
nghttp2_submit_rst_stream(ctx->h2, 0, stream->id,
|
nghttp2_submit_rst_stream(ctx->h2, 0, stream->id,
|
||||||
NGHTTP2_ERR_CALLBACK_FAILURE);
|
(uint32_t)NGHTTP2_ERR_CALLBACK_FAILURE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1256,7 +1256,7 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame,
|
|||||||
ctx->goaway_error = frame->goaway.error_code;
|
ctx->goaway_error = frame->goaway.error_code;
|
||||||
ctx->last_stream_id = frame->goaway.last_stream_id;
|
ctx->last_stream_id = frame->goaway.last_stream_id;
|
||||||
if(data) {
|
if(data) {
|
||||||
infof(data, "received GOAWAY, error=%d, last_stream=%u",
|
infof(data, "received GOAWAY, error=%u, last_stream=%u",
|
||||||
ctx->goaway_error, ctx->last_stream_id);
|
ctx->goaway_error, ctx->last_stream_id);
|
||||||
Curl_multi_connchanged(data->multi);
|
Curl_multi_connchanged(data->multi);
|
||||||
}
|
}
|
||||||
@ -1654,7 +1654,7 @@ CURLcode Curl_http2_request_upgrade(struct dynbuf *req,
|
|||||||
return CURLE_FAILED_INIT;
|
return CURLE_FAILED_INIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = Curl_base64url_encode((const char *)binsettings, binlen,
|
result = Curl_base64url_encode((const char *)binsettings, (size_t)binlen,
|
||||||
&base64, &blen);
|
&base64, &blen);
|
||||||
if(result) {
|
if(result) {
|
||||||
Curl_dyn_free(req);
|
Curl_dyn_free(req);
|
||||||
@ -2292,8 +2292,8 @@ static ssize_t cf_h2_send(struct Curl_cfilter *cf, struct Curl_easy *data,
|
|||||||
/* Unable to send all data, due to connection blocked or H2 window
|
/* Unable to send all data, due to connection blocked or H2 window
|
||||||
* exhaustion. Data is left in our stream buffer, or nghttp2's internal
|
* exhaustion. Data is left in our stream buffer, or nghttp2's internal
|
||||||
* frame buffer or our network out buffer. */
|
* frame buffer or our network out buffer. */
|
||||||
size_t rwin = nghttp2_session_get_stream_remote_window_size(ctx->h2,
|
size_t rwin = (size_t)nghttp2_session_get_stream_remote_window_size(
|
||||||
stream->id);
|
ctx->h2, stream->id);
|
||||||
/* At the start of a stream, we are called with request headers
|
/* At the start of a stream, we are called with request headers
|
||||||
* and, possibly, parts of the body. Later, only body data.
|
* and, possibly, parts of the body. Later, only body data.
|
||||||
* If we cannot send pure body data, we EAGAIN. If there had been
|
* If we cannot send pure body data, we EAGAIN. If there had been
|
||||||
@ -2474,10 +2474,10 @@ static CURLcode http2_data_pause(struct Curl_cfilter *cf,
|
|||||||
if(ctx && ctx->h2 && stream) {
|
if(ctx && ctx->h2 && stream) {
|
||||||
uint32_t window = pause? 0 : stream->local_window_size;
|
uint32_t window = pause? 0 : stream->local_window_size;
|
||||||
|
|
||||||
int rv = nghttp2_session_set_local_window_size(ctx->h2,
|
int rv = (int)nghttp2_session_set_local_window_size(ctx->h2,
|
||||||
NGHTTP2_FLAG_NONE,
|
NGHTTP2_FLAG_NONE,
|
||||||
stream->id,
|
stream->id,
|
||||||
window);
|
(int32_t)window);
|
||||||
if(rv) {
|
if(rv) {
|
||||||
failf(data, "nghttp2_session_set_local_window_size() failed: %s(%d)",
|
failf(data, "nghttp2_session_set_local_window_size() failed: %s(%d)",
|
||||||
nghttp2_strerror(rv), rv);
|
nghttp2_strerror(rv), rv);
|
||||||
@ -2505,7 +2505,7 @@ static CURLcode http2_data_pause(struct Curl_cfilter *cf,
|
|||||||
#ifdef DEBUGBUILD
|
#ifdef DEBUGBUILD
|
||||||
{
|
{
|
||||||
/* read out the stream local window again */
|
/* read out the stream local window again */
|
||||||
uint32_t window2 =
|
uint32_t window2 = (uint32_t)
|
||||||
nghttp2_session_get_stream_local_window_size(ctx->h2,
|
nghttp2_session_get_stream_local_window_size(ctx->h2,
|
||||||
stream->id);
|
stream->id);
|
||||||
DEBUGF(infof(data, "HTTP/2 window size is now %u for stream %u",
|
DEBUGF(infof(data, "HTTP/2 window size is now %u for stream %u",
|
||||||
|
|||||||
@ -776,7 +776,7 @@ static CURLcode imap_perform_append(struct Curl_easy *data)
|
|||||||
/* Prepare the mime data if some. */
|
/* Prepare the mime data if some. */
|
||||||
if(data->set.mimepost.kind != MIMEKIND_NONE) {
|
if(data->set.mimepost.kind != MIMEKIND_NONE) {
|
||||||
/* Use the whole structure as data. */
|
/* Use the whole structure as data. */
|
||||||
data->set.mimepost.flags &= ~MIME_BODY_ONLY;
|
data->set.mimepost.flags &= ~(unsigned int)MIME_BODY_ONLY;
|
||||||
|
|
||||||
/* Add external headers and mime version. */
|
/* Add external headers and mime version. */
|
||||||
curl_mime_headers(&data->set.mimepost, data->set.headers, 0);
|
curl_mime_headers(&data->set.mimepost, data->set.headers, 0);
|
||||||
|
|||||||
@ -32,8 +32,13 @@ char *Curl_inet_ntop(int af, const void *addr, char *buf, size_t size);
|
|||||||
#ifdef HAVE_ARPA_INET_H
|
#ifdef HAVE_ARPA_INET_H
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef _WIN32
|
||||||
#define Curl_inet_ntop(af,addr,buf,size) \
|
#define Curl_inet_ntop(af,addr,buf,size) \
|
||||||
inet_ntop(af, addr, buf, (curl_socklen_t)size)
|
inet_ntop(af, addr, buf, size)
|
||||||
|
#else
|
||||||
|
#define Curl_inet_ntop(af,addr,buf,size) \
|
||||||
|
inet_ntop(af, addr, buf, (curl_socklen_t)(size))
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* HEADER_CURL_INET_NTOP_H */
|
#endif /* HEADER_CURL_INET_NTOP_H */
|
||||||
|
|||||||
14
lib/krb5.c
14
lib/krb5.c
@ -169,7 +169,7 @@ krb5_encode(void *app_data, const void *from, int length, int level, void **to)
|
|||||||
* libraries modify the input buffer in gss_wrap()
|
* libraries modify the input buffer in gss_wrap()
|
||||||
*/
|
*/
|
||||||
dec.value = (void *)from;
|
dec.value = (void *)from;
|
||||||
dec.length = length;
|
dec.length = (size_t)length;
|
||||||
maj = gss_wrap(&min, *context,
|
maj = gss_wrap(&min, *context,
|
||||||
level == PROT_PRIVATE,
|
level == PROT_PRIVATE,
|
||||||
GSS_C_QOP_DEFAULT,
|
GSS_C_QOP_DEFAULT,
|
||||||
@ -524,7 +524,7 @@ static CURLcode read_data(struct Curl_easy *data, int sockindex,
|
|||||||
return result;
|
return result;
|
||||||
|
|
||||||
if(len) {
|
if(len) {
|
||||||
len = ntohl(len);
|
len = (int)ntohl((uint32_t)len);
|
||||||
if(len > CURL_MAX_INPUT_LENGTH)
|
if(len > CURL_MAX_INPUT_LENGTH)
|
||||||
return CURLE_TOO_LARGE;
|
return CURLE_TOO_LARGE;
|
||||||
|
|
||||||
@ -536,7 +536,7 @@ static CURLcode read_data(struct Curl_easy *data, int sockindex,
|
|||||||
do {
|
do {
|
||||||
char buffer[1024];
|
char buffer[1024];
|
||||||
nread = CURLMIN(len, (int)sizeof(buffer));
|
nread = CURLMIN(len, (int)sizeof(buffer));
|
||||||
result = socket_read(data, sockindex, buffer, nread);
|
result = socket_read(data, sockindex, buffer, (size_t)nread);
|
||||||
if(result)
|
if(result)
|
||||||
return result;
|
return result;
|
||||||
result = Curl_dyn_addn(&buf->buf, buffer, nread);
|
result = Curl_dyn_addn(&buf->buf, buffer, nread);
|
||||||
@ -630,7 +630,7 @@ static void do_sec_send(struct Curl_easy *data, struct connectdata *conn,
|
|||||||
else
|
else
|
||||||
prot_level = conn->command_prot;
|
prot_level = conn->command_prot;
|
||||||
}
|
}
|
||||||
bytes = conn->mech->encode(conn->app_data, from, length, prot_level,
|
bytes = conn->mech->encode(conn->app_data, from, length, (int)prot_level,
|
||||||
(void **)&buffer);
|
(void **)&buffer);
|
||||||
if(!buffer || bytes <= 0)
|
if(!buffer || bytes <= 0)
|
||||||
return; /* error */
|
return; /* error */
|
||||||
@ -658,7 +658,7 @@ static void do_sec_send(struct Curl_easy *data, struct connectdata *conn,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
htonl_bytes = htonl(bytes);
|
htonl_bytes = (int)htonl((OM_uint32)bytes);
|
||||||
socket_write(data, fd, &htonl_bytes, sizeof(htonl_bytes));
|
socket_write(data, fd, &htonl_bytes, sizeof(htonl_bytes));
|
||||||
socket_write(data, fd, buffer, curlx_sitouz(bytes));
|
socket_write(data, fd, buffer, curlx_sitouz(bytes));
|
||||||
}
|
}
|
||||||
@ -724,7 +724,7 @@ int Curl_sec_read_msg(struct Curl_easy *data, struct connectdata *conn,
|
|||||||
decoded_len = curlx_uztosi(decoded_sz);
|
decoded_len = curlx_uztosi(decoded_sz);
|
||||||
|
|
||||||
decoded_len = conn->mech->decode(conn->app_data, buf, decoded_len,
|
decoded_len = conn->mech->decode(conn->app_data, buf, decoded_len,
|
||||||
level, conn);
|
(int)level, conn);
|
||||||
if(decoded_len <= 0) {
|
if(decoded_len <= 0) {
|
||||||
free(buf);
|
free(buf);
|
||||||
return -1;
|
return -1;
|
||||||
@ -789,7 +789,7 @@ static int sec_set_protection_level(struct Curl_easy *data)
|
|||||||
if(pbsz) {
|
if(pbsz) {
|
||||||
/* stick to default value if the check fails */
|
/* stick to default value if the check fails */
|
||||||
if(ISDIGIT(pbsz[5]))
|
if(ISDIGIT(pbsz[5]))
|
||||||
buffer_size = atoi(&pbsz[5]);
|
buffer_size = (unsigned int)atoi(&pbsz[5]);
|
||||||
if(buffer_size < conn->buffer_size)
|
if(buffer_size < conn->buffer_size)
|
||||||
conn->buffer_size = buffer_size;
|
conn->buffer_size = buffer_size;
|
||||||
}
|
}
|
||||||
|
|||||||
26
lib/ldap.c
26
lib/ldap.c
@ -252,16 +252,17 @@ static int ldap_win_bind_auth(LDAP *server, const char *user,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(method && user && passwd) {
|
if(method && user && passwd) {
|
||||||
rc = Curl_create_sspi_identity(user, passwd, &cred);
|
CURLcode res = Curl_create_sspi_identity(user, passwd, &cred);
|
||||||
|
rc = (int)res;
|
||||||
if(!rc) {
|
if(!rc) {
|
||||||
rc = ldap_bind_s(server, NULL, (TCHAR *)&cred, method);
|
rc = (int)ldap_bind_s(server, NULL, (TCHAR *)&cred, method);
|
||||||
Curl_sspi_free_identity(&cred);
|
Curl_sspi_free_identity(&cred);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/* proceed with current user credentials */
|
/* proceed with current user credentials */
|
||||||
method = LDAP_AUTH_NEGOTIATE;
|
method = LDAP_AUTH_NEGOTIATE;
|
||||||
rc = ldap_bind_s(server, NULL, NULL, method);
|
rc = (int)ldap_bind_s(server, NULL, NULL, method);
|
||||||
}
|
}
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@ -279,14 +280,14 @@ static int ldap_win_bind(struct Curl_easy *data, LDAP *server,
|
|||||||
inuser = curlx_convert_UTF8_to_tchar((char *) user);
|
inuser = curlx_convert_UTF8_to_tchar((char *) user);
|
||||||
inpass = curlx_convert_UTF8_to_tchar((char *) passwd);
|
inpass = curlx_convert_UTF8_to_tchar((char *) passwd);
|
||||||
|
|
||||||
rc = ldap_simple_bind_s(server, inuser, inpass);
|
rc = (int)ldap_simple_bind_s(server, inuser, inpass);
|
||||||
|
|
||||||
curlx_unicodefree(inuser);
|
curlx_unicodefree(inuser);
|
||||||
curlx_unicodefree(inpass);
|
curlx_unicodefree(inpass);
|
||||||
}
|
}
|
||||||
#if defined(USE_WINDOWS_SSPI)
|
#if defined(USE_WINDOWS_SSPI)
|
||||||
else {
|
else {
|
||||||
rc = ldap_win_bind_auth(server, user, passwd, data->set.httpauth);
|
rc = (int)ldap_win_bind_auth(server, user, passwd, data->set.httpauth);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -296,8 +297,10 @@ static int ldap_win_bind(struct Curl_easy *data, LDAP *server,
|
|||||||
|
|
||||||
#if defined(USE_WIN32_LDAP)
|
#if defined(USE_WIN32_LDAP)
|
||||||
#define FREE_ON_WINLDAP(x) curlx_unicodefree(x)
|
#define FREE_ON_WINLDAP(x) curlx_unicodefree(x)
|
||||||
|
#define curl_ldap_num_t ULONG
|
||||||
#else
|
#else
|
||||||
#define FREE_ON_WINLDAP(x)
|
#define FREE_ON_WINLDAP(x)
|
||||||
|
#define curl_ldap_num_t int
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -337,7 +340,7 @@ static CURLcode ldap_do(struct Curl_easy *data, bool *done)
|
|||||||
rc = _ldap_url_parse(data, conn, &ludp);
|
rc = _ldap_url_parse(data, conn, &ludp);
|
||||||
#endif
|
#endif
|
||||||
if(rc) {
|
if(rc) {
|
||||||
failf(data, "Bad LDAP URL: %s", ldap_err2string(rc));
|
failf(data, "Bad LDAP URL: %s", ldap_err2string((curl_ldap_num_t)rc));
|
||||||
result = CURLE_URL_MALFORMAT;
|
result = CURLE_URL_MALFORMAT;
|
||||||
goto quit;
|
goto quit;
|
||||||
}
|
}
|
||||||
@ -373,7 +376,7 @@ static CURLcode ldap_do(struct Curl_easy *data, bool *done)
|
|||||||
#ifdef HAVE_LDAP_SSL
|
#ifdef HAVE_LDAP_SSL
|
||||||
#ifdef USE_WIN32_LDAP
|
#ifdef USE_WIN32_LDAP
|
||||||
/* Win32 LDAP SDK doesn't support insecure mode without CA! */
|
/* Win32 LDAP SDK doesn't support insecure mode without CA! */
|
||||||
server = ldap_sslinit(host, conn->primary.remote_port, 1);
|
server = ldap_sslinit(host, (curl_ldap_num_t)conn->primary.remote_port, 1);
|
||||||
ldap_set_option(server, LDAP_OPT_SSL, LDAP_OPT_ON);
|
ldap_set_option(server, LDAP_OPT_SSL, LDAP_OPT_ON);
|
||||||
#else
|
#else
|
||||||
int ldap_option;
|
int ldap_option;
|
||||||
@ -503,7 +506,7 @@ static CURLcode ldap_do(struct Curl_easy *data, bool *done)
|
|||||||
goto quit;
|
goto quit;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
server = ldap_init(host, conn->primary.remote_port);
|
server = ldap_init(host, (curl_ldap_num_t)conn->primary.remote_port);
|
||||||
if(!server) {
|
if(!server) {
|
||||||
failf(data, "LDAP local: Cannot connect to %s:%u",
|
failf(data, "LDAP local: Cannot connect to %s:%u",
|
||||||
conn->host.dispname, conn->primary.remote_port);
|
conn->host.dispname, conn->primary.remote_port);
|
||||||
@ -529,7 +532,7 @@ static CURLcode ldap_do(struct Curl_easy *data, bool *done)
|
|||||||
if(rc) {
|
if(rc) {
|
||||||
#ifdef USE_WIN32_LDAP
|
#ifdef USE_WIN32_LDAP
|
||||||
failf(data, "LDAP local: bind via ldap_win_bind %s",
|
failf(data, "LDAP local: bind via ldap_win_bind %s",
|
||||||
ldap_err2string(rc));
|
ldap_err2string((ULONG)rc));
|
||||||
#else
|
#else
|
||||||
failf(data, "LDAP local: bind via ldap_simple_bind_s %s",
|
failf(data, "LDAP local: bind via ldap_simple_bind_s %s",
|
||||||
ldap_err2string(rc));
|
ldap_err2string(rc));
|
||||||
@ -539,11 +542,12 @@ static CURLcode ldap_do(struct Curl_easy *data, bool *done)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Curl_pgrsSetDownloadCounter(data, 0);
|
Curl_pgrsSetDownloadCounter(data, 0);
|
||||||
rc = ldap_search_s(server, ludp->lud_dn, ludp->lud_scope,
|
rc = (int)ldap_search_s(server, ludp->lud_dn,
|
||||||
|
(curl_ldap_num_t)ludp->lud_scope,
|
||||||
ludp->lud_filter, ludp->lud_attrs, 0, &ldapmsg);
|
ludp->lud_filter, ludp->lud_attrs, 0, &ldapmsg);
|
||||||
|
|
||||||
if(rc && rc != LDAP_SIZELIMIT_EXCEEDED) {
|
if(rc && rc != LDAP_SIZELIMIT_EXCEEDED) {
|
||||||
failf(data, "LDAP remote: %s", ldap_err2string(rc));
|
failf(data, "LDAP remote: %s", ldap_err2string((curl_ldap_num_t)rc));
|
||||||
result = CURLE_LDAP_SEARCH_FAILED;
|
result = CURLE_LDAP_SEARCH_FAILED;
|
||||||
goto quit;
|
goto quit;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -137,13 +137,14 @@ CURL_EXTERN int curl_dbg_fclose(FILE *file, int line, const char *source);
|
|||||||
|
|
||||||
#undef socket
|
#undef socket
|
||||||
#define socket(domain,type,protocol)\
|
#define socket(domain,type,protocol)\
|
||||||
curl_dbg_socket(domain, type, protocol, __LINE__, __FILE__)
|
curl_dbg_socket((int)domain, type, protocol, __LINE__, __FILE__)
|
||||||
#undef accept /* for those with accept as a macro */
|
#undef accept /* for those with accept as a macro */
|
||||||
#define accept(sock,addr,len)\
|
#define accept(sock,addr,len)\
|
||||||
curl_dbg_accept(sock, addr, len, __LINE__, __FILE__)
|
curl_dbg_accept(sock, addr, len, __LINE__, __FILE__)
|
||||||
#ifdef HAVE_SOCKETPAIR
|
#ifdef HAVE_SOCKETPAIR
|
||||||
#define socketpair(domain,type,protocol,socket_vector)\
|
#define socketpair(domain,type,protocol,socket_vector)\
|
||||||
curl_dbg_socketpair(domain, type, protocol, socket_vector, __LINE__, __FILE__)
|
curl_dbg_socketpair((int)domain, type, protocol, socket_vector, \
|
||||||
|
__LINE__, __FILE__)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_GETADDRINFO
|
#ifdef HAVE_GETADDRINFO
|
||||||
|
|||||||
@ -1137,7 +1137,7 @@ static void cleanup_part_content(curl_mimepart *part)
|
|||||||
part->datasize = (curl_off_t) 0; /* No size yet. */
|
part->datasize = (curl_off_t) 0; /* No size yet. */
|
||||||
cleanup_encoder_state(&part->encstate);
|
cleanup_encoder_state(&part->encstate);
|
||||||
part->kind = MIMEKIND_NONE;
|
part->kind = MIMEKIND_NONE;
|
||||||
part->flags &= ~MIME_FAST_READ;
|
part->flags &= ~(unsigned int)MIME_FAST_READ;
|
||||||
part->lastreadstatus = 1; /* Successful read status. */
|
part->lastreadstatus = 1; /* Successful read status. */
|
||||||
part->state.state = MIMESTATE_BEGIN;
|
part->state.state = MIMESTATE_BEGIN;
|
||||||
}
|
}
|
||||||
@ -1497,7 +1497,7 @@ CURLcode curl_mime_headers(curl_mimepart *part,
|
|||||||
if(part->flags & MIME_USERHEADERS_OWNER) {
|
if(part->flags & MIME_USERHEADERS_OWNER) {
|
||||||
if(part->userheaders != headers) /* Allow setting twice the same list. */
|
if(part->userheaders != headers) /* Allow setting twice the same list. */
|
||||||
curl_slist_free_all(part->userheaders);
|
curl_slist_free_all(part->userheaders);
|
||||||
part->flags &= ~MIME_USERHEADERS_OWNER;
|
part->flags &= ~(unsigned int)MIME_USERHEADERS_OWNER;
|
||||||
}
|
}
|
||||||
part->userheaders = headers;
|
part->userheaders = headers;
|
||||||
if(headers && take_ownership)
|
if(headers && take_ownership)
|
||||||
@ -1662,7 +1662,8 @@ static curl_off_t mime_size(curl_mimepart *part)
|
|||||||
if(size >= 0 && !(part->flags & MIME_BODY_ONLY)) {
|
if(size >= 0 && !(part->flags & MIME_BODY_ONLY)) {
|
||||||
/* Compute total part size. */
|
/* Compute total part size. */
|
||||||
size += slist_size(part->curlheaders, 2, NULL, 0);
|
size += slist_size(part->curlheaders, 2, NULL, 0);
|
||||||
size += slist_size(part->userheaders, 2, STRCONST("Content-Type"));
|
size += slist_size(part->userheaders, 2,
|
||||||
|
STRCONST("Content-Type"));
|
||||||
size += 2; /* CRLF after headers. */
|
size += 2; /* CRLF after headers. */
|
||||||
}
|
}
|
||||||
return size;
|
return size;
|
||||||
|
|||||||
@ -154,15 +154,15 @@ static int mqtt_getsock(struct Curl_easy *data,
|
|||||||
|
|
||||||
static int mqtt_encode_len(char *buf, size_t len)
|
static int mqtt_encode_len(char *buf, size_t len)
|
||||||
{
|
{
|
||||||
unsigned char encoded;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for(i = 0; (len > 0) && (i<4); i++) {
|
for(i = 0; (len > 0) && (i<4); i++) {
|
||||||
|
unsigned char encoded;
|
||||||
encoded = len % 0x80;
|
encoded = len % 0x80;
|
||||||
len /= 0x80;
|
len /= 0x80;
|
||||||
if(len)
|
if(len)
|
||||||
encoded |= 0x80;
|
encoded |= 0x80;
|
||||||
buf[i] = encoded;
|
buf[i] = (char)encoded;
|
||||||
}
|
}
|
||||||
|
|
||||||
return i;
|
return i;
|
||||||
|
|||||||
24
lib/multi.c
24
lib/multi.c
@ -343,7 +343,7 @@ static size_t hash_fd(void *key, size_t key_length, size_t slots_num)
|
|||||||
curl_socket_t fd = *((curl_socket_t *) key);
|
curl_socket_t fd = *((curl_socket_t *) key);
|
||||||
(void) key_length;
|
(void) key_length;
|
||||||
|
|
||||||
return (fd % slots_num);
|
return (fd % (curl_socket_t)slots_num);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1492,7 +1492,8 @@ static CURLMcode multi_wait(struct Curl_multi *multi,
|
|||||||
#ifdef USE_WINSOCK
|
#ifdef USE_WINSOCK
|
||||||
}
|
}
|
||||||
else { /* now wait... if not ready during the pre-check (pollrc == 0) */
|
else { /* now wait... if not ready during the pre-check (pollrc == 0) */
|
||||||
WSAWaitForMultipleEvents(1, &multi->wsa_event, FALSE, timeout_ms, FALSE);
|
WSAWaitForMultipleEvents(1, &multi->wsa_event, FALSE, (DWORD)timeout_ms,
|
||||||
|
FALSE);
|
||||||
}
|
}
|
||||||
/* With WinSock, we have to run the following section unconditionally
|
/* With WinSock, we have to run the following section unconditionally
|
||||||
to call WSAEventSelect(fd, event, 0) on all the sockets */
|
to call WSAEventSelect(fd, event, 0) on all the sockets */
|
||||||
@ -1502,7 +1503,7 @@ static CURLMcode multi_wait(struct Curl_multi *multi,
|
|||||||
struct, the bit values of the actual underlying poll() implementation
|
struct, the bit values of the actual underlying poll() implementation
|
||||||
may not be the same as the ones in the public libcurl API! */
|
may not be the same as the ones in the public libcurl API! */
|
||||||
for(i = 0; i < extra_nfds; i++) {
|
for(i = 0; i < extra_nfds; i++) {
|
||||||
unsigned r = ufds[curl_nfds + i].revents;
|
unsigned r = (unsigned)ufds[curl_nfds + i].revents;
|
||||||
unsigned short mask = 0;
|
unsigned short mask = 0;
|
||||||
#ifdef USE_WINSOCK
|
#ifdef USE_WINSOCK
|
||||||
curl_socket_t s = extra_fds[i].fd;
|
curl_socket_t s = extra_fds[i].fd;
|
||||||
@ -1519,7 +1520,7 @@ static CURLMcode multi_wait(struct Curl_multi *multi,
|
|||||||
}
|
}
|
||||||
WSAEventSelect(s, multi->wsa_event, 0);
|
WSAEventSelect(s, multi->wsa_event, 0);
|
||||||
if(!pollrc) {
|
if(!pollrc) {
|
||||||
extra_fds[i].revents = mask;
|
extra_fds[i].revents = (short)mask;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -1529,7 +1530,7 @@ static CURLMcode multi_wait(struct Curl_multi *multi,
|
|||||||
mask |= CURL_WAIT_POLLOUT;
|
mask |= CURL_WAIT_POLLOUT;
|
||||||
if(r & POLLPRI)
|
if(r & POLLPRI)
|
||||||
mask |= CURL_WAIT_POLLPRI;
|
mask |= CURL_WAIT_POLLPRI;
|
||||||
extra_fds[i].revents = mask;
|
extra_fds[i].revents = (short)mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_WINSOCK
|
#ifdef USE_WINSOCK
|
||||||
@ -2814,7 +2815,7 @@ CURLMcode curl_multi_perform(struct Curl_multi *multi, int *running_handles)
|
|||||||
}
|
}
|
||||||
} while(t);
|
} while(t);
|
||||||
|
|
||||||
*running_handles = multi->num_alive;
|
*running_handles = (int)multi->num_alive;
|
||||||
|
|
||||||
if(CURLM_OK >= returncode)
|
if(CURLM_OK >= returncode)
|
||||||
returncode = Curl_update_timer(multi);
|
returncode = Curl_update_timer(multi);
|
||||||
@ -3034,7 +3035,8 @@ static CURLMcode singlesocket(struct Curl_multi *multi,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
entry->action = comboaction; /* store the current action state */
|
/* store the current action state */
|
||||||
|
entry->action = (unsigned int)comboaction;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check for last_poll.sockets that no longer appear in cur_poll.sockets.
|
/* Check for last_poll.sockets that no longer appear in cur_poll.sockets.
|
||||||
@ -3319,7 +3321,7 @@ static CURLMcode multi_socket(struct Curl_multi *multi,
|
|||||||
if(first)
|
if(first)
|
||||||
sigpipe_restore(&pipe_st);
|
sigpipe_restore(&pipe_st);
|
||||||
|
|
||||||
*running_handles = multi->num_alive;
|
*running_handles = (int)multi->num_alive;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3624,7 +3626,7 @@ void Curl_expire(struct Curl_easy *data, timediff_t milli, expire_id id)
|
|||||||
|
|
||||||
set = Curl_now();
|
set = Curl_now();
|
||||||
set.tv_sec += (time_t)(milli/1000); /* might be a 64 to 32 bit conversion */
|
set.tv_sec += (time_t)(milli/1000); /* might be a 64 to 32 bit conversion */
|
||||||
set.tv_usec += (unsigned int)(milli%1000)*1000;
|
set.tv_usec += (int)(milli%1000)*1000;
|
||||||
|
|
||||||
if(set.tv_usec >= 1000000) {
|
if(set.tv_usec >= 1000000) {
|
||||||
set.tv_sec++;
|
set.tv_sec++;
|
||||||
@ -3738,12 +3740,12 @@ CURLMcode curl_multi_assign(struct Curl_multi *multi, curl_socket_t s,
|
|||||||
|
|
||||||
size_t Curl_multi_max_host_connections(struct Curl_multi *multi)
|
size_t Curl_multi_max_host_connections(struct Curl_multi *multi)
|
||||||
{
|
{
|
||||||
return multi ? multi->max_host_connections : 0;
|
return multi ? (size_t)multi->max_host_connections : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t Curl_multi_max_total_connections(struct Curl_multi *multi)
|
size_t Curl_multi_max_total_connections(struct Curl_multi *multi)
|
||||||
{
|
{
|
||||||
return multi ? multi->max_total_connections : 0;
|
return multi ? (size_t)multi->max_total_connections : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -64,7 +64,7 @@ int curlx_nonblock(curl_socket_t sockfd, /* operate on this */
|
|||||||
|
|
||||||
/* Windows */
|
/* Windows */
|
||||||
unsigned long flags = nonblock ? 1UL : 0UL;
|
unsigned long flags = nonblock ? 1UL : 0UL;
|
||||||
return ioctlsocket(sockfd, FIONBIO, &flags);
|
return ioctlsocket(sockfd, (long)FIONBIO, &flags);
|
||||||
|
|
||||||
#elif defined(HAVE_IOCTLSOCKET_CAMEL_FIONBIO)
|
#elif defined(HAVE_IOCTLSOCKET_CAMEL_FIONBIO)
|
||||||
|
|
||||||
|
|||||||
@ -79,8 +79,8 @@ UNITTEST bool Curl_cidr6_match(const char *ipv6,
|
|||||||
unsigned int bits)
|
unsigned int bits)
|
||||||
{
|
{
|
||||||
#ifdef USE_IPV6
|
#ifdef USE_IPV6
|
||||||
int bytes;
|
unsigned int bytes;
|
||||||
int rest;
|
unsigned int rest;
|
||||||
unsigned char address[16];
|
unsigned char address[16];
|
||||||
unsigned char check[16];
|
unsigned char check[16];
|
||||||
|
|
||||||
@ -231,7 +231,7 @@ bool Curl_check_noproxy(const char *name, const char *no_proxy)
|
|||||||
slash = strchr(check, '/');
|
slash = strchr(check, '/');
|
||||||
/* if the slash is part of this token, use it */
|
/* if the slash is part of this token, use it */
|
||||||
if(slash) {
|
if(slash) {
|
||||||
bits = atoi(slash + 1);
|
bits = (unsigned int)atoi(slash + 1);
|
||||||
*slash = 0; /* null terminate there */
|
*slash = 0; /* null terminate there */
|
||||||
}
|
}
|
||||||
if(type == TYPE_IPV6)
|
if(type == TYPE_IPV6)
|
||||||
|
|||||||
@ -270,7 +270,7 @@ CURLcode Curl_rand_alnum(struct Curl_easy *data, unsigned char *rnd,
|
|||||||
size_t num)
|
size_t num)
|
||||||
{
|
{
|
||||||
CURLcode result = CURLE_OK;
|
CURLcode result = CURLE_OK;
|
||||||
const int alnumspace = sizeof(alnum) - 1;
|
const unsigned int alnumspace = sizeof(alnum) - 1;
|
||||||
unsigned int r;
|
unsigned int r;
|
||||||
DEBUGASSERT(num > 1);
|
DEBUGASSERT(num > 1);
|
||||||
|
|
||||||
@ -283,7 +283,7 @@ CURLcode Curl_rand_alnum(struct Curl_easy *data, unsigned char *rnd,
|
|||||||
return result;
|
return result;
|
||||||
} while(r >= (UINT_MAX - UINT_MAX % alnumspace));
|
} while(r >= (UINT_MAX - UINT_MAX % alnumspace));
|
||||||
|
|
||||||
*rnd++ = alnum[r % alnumspace];
|
*rnd++ = (unsigned char)alnum[r % alnumspace];
|
||||||
num--;
|
num--;
|
||||||
}
|
}
|
||||||
*rnd = 0;
|
*rnd = 0;
|
||||||
|
|||||||
@ -316,7 +316,9 @@ static CURLcode rtsp_do(struct Curl_easy *data, bool *done)
|
|||||||
|
|
||||||
p_session_id = data->set.str[STRING_RTSP_SESSION_ID];
|
p_session_id = data->set.str[STRING_RTSP_SESSION_ID];
|
||||||
if(!p_session_id &&
|
if(!p_session_id &&
|
||||||
(rtspreq & ~(RTSPREQ_OPTIONS | RTSPREQ_DESCRIBE | RTSPREQ_SETUP))) {
|
(rtspreq & ~(Curl_RtspReq)(RTSPREQ_OPTIONS |
|
||||||
|
RTSPREQ_DESCRIBE |
|
||||||
|
RTSPREQ_SETUP))) {
|
||||||
failf(data, "Refusing to issue an RTSP request [%s] without a session ID.",
|
failf(data, "Refusing to issue an RTSP request [%s] without a session ID.",
|
||||||
p_request);
|
p_request);
|
||||||
result = CURLE_BAD_FUNCTION_ARGUMENT;
|
result = CURLE_BAD_FUNCTION_ARGUMENT;
|
||||||
|
|||||||
@ -226,7 +226,7 @@ int Curl_socket_check(curl_socket_t readfd0, /* two sockets to read from */
|
|||||||
num++;
|
num++;
|
||||||
}
|
}
|
||||||
|
|
||||||
r = Curl_poll(pfd, num, timeout_ms);
|
r = Curl_poll(pfd, (unsigned int)num, timeout_ms);
|
||||||
if(r <= 0)
|
if(r <= 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
|||||||
@ -176,7 +176,7 @@ static CURLcode setstropt_interface(
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define C_SSLVERSION_VALUE(x) (x & 0xffff)
|
#define C_SSLVERSION_VALUE(x) (x & 0xffff)
|
||||||
#define C_SSLVERSION_MAX_VALUE(x) (x & 0xffff0000)
|
#define C_SSLVERSION_MAX_VALUE(x) ((unsigned long)x & 0xffff0000)
|
||||||
|
|
||||||
static CURLcode protocol2num(const char *str, curl_prot_t *val)
|
static CURLcode protocol2num(const char *str, curl_prot_t *val)
|
||||||
{
|
{
|
||||||
@ -501,7 +501,7 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
|
|||||||
arg = va_arg(param, long);
|
arg = va_arg(param, long);
|
||||||
|
|
||||||
version = C_SSLVERSION_VALUE(arg);
|
version = C_SSLVERSION_VALUE(arg);
|
||||||
version_max = C_SSLVERSION_MAX_VALUE(arg);
|
version_max = (long)C_SSLVERSION_MAX_VALUE(arg);
|
||||||
|
|
||||||
if(version < CURL_SSLVERSION_DEFAULT ||
|
if(version < CURL_SSLVERSION_DEFAULT ||
|
||||||
version == CURL_SSLVERSION_SSLv2 ||
|
version == CURL_SSLVERSION_SSLv2 ||
|
||||||
@ -968,7 +968,7 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case CURLOPT_HTTP09_ALLOWED:
|
case CURLOPT_HTTP09_ALLOWED:
|
||||||
arg = va_arg(param, unsigned long);
|
arg = (long)va_arg(param, unsigned long);
|
||||||
if(arg > 1L)
|
if(arg > 1L)
|
||||||
return CURLE_BAD_FUNCTION_ARGUMENT;
|
return CURLE_BAD_FUNCTION_ARGUMENT;
|
||||||
#ifdef USE_HYPER
|
#ifdef USE_HYPER
|
||||||
@ -2546,7 +2546,7 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
|
|||||||
#ifdef USE_SSH
|
#ifdef USE_SSH
|
||||||
/* we only include SSH options if explicitly built to support SSH */
|
/* we only include SSH options if explicitly built to support SSH */
|
||||||
case CURLOPT_SSH_AUTH_TYPES:
|
case CURLOPT_SSH_AUTH_TYPES:
|
||||||
data->set.ssh_auth_types = (unsigned int)va_arg(param, long);
|
data->set.ssh_auth_types = (int)va_arg(param, long);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CURLOPT_SSH_PUBLIC_KEYFILE:
|
case CURLOPT_SSH_PUBLIC_KEYFILE:
|
||||||
|
|||||||
@ -559,7 +559,7 @@ static void smb_format_message(struct Curl_easy *data, struct smb_header *h,
|
|||||||
h->flags2 = smb_swap16(SMB_FLAGS2_IS_LONG_NAME | SMB_FLAGS2_KNOWS_LONG_NAME);
|
h->flags2 = smb_swap16(SMB_FLAGS2_IS_LONG_NAME | SMB_FLAGS2_KNOWS_LONG_NAME);
|
||||||
h->uid = smb_swap16(smbc->uid);
|
h->uid = smb_swap16(smbc->uid);
|
||||||
h->tid = smb_swap16(req->tid);
|
h->tid = smb_swap16(req->tid);
|
||||||
pid = getpid();
|
pid = (unsigned int)getpid();
|
||||||
h->pid_high = smb_swap16((unsigned short)(pid >> 16));
|
h->pid_high = smb_swap16((unsigned short)(pid >> 16));
|
||||||
h->pid = smb_swap16((unsigned short) pid);
|
h->pid = smb_swap16((unsigned short) pid);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -695,7 +695,7 @@ static CURLcode smtp_perform_mail(struct Curl_easy *data)
|
|||||||
/* Prepare the mime data if some. */
|
/* Prepare the mime data if some. */
|
||||||
if(data->set.mimepost.kind != MIMEKIND_NONE) {
|
if(data->set.mimepost.kind != MIMEKIND_NONE) {
|
||||||
/* Use the whole structure as data. */
|
/* Use the whole structure as data. */
|
||||||
data->set.mimepost.flags &= ~MIME_BODY_ONLY;
|
data->set.mimepost.flags &= ~(unsigned int)MIME_BODY_ONLY;
|
||||||
|
|
||||||
/* Add external headers and mime version. */
|
/* Add external headers and mime version. */
|
||||||
curl_mime_headers(&data->set.mimepost, data->set.headers, 0);
|
curl_mime_headers(&data->set.mimepost, data->set.headers, 0);
|
||||||
|
|||||||
@ -125,7 +125,7 @@ int Curl_blockread_all(struct Curl_cfilter *cf,
|
|||||||
}
|
}
|
||||||
nread = Curl_conn_cf_recv(cf->next, data, buf, buffersize, &err);
|
nread = Curl_conn_cf_recv(cf->next, data, buf, buffersize, &err);
|
||||||
if(nread <= 0) {
|
if(nread <= 0) {
|
||||||
result = err;
|
result = (int)err;
|
||||||
if(CURLE_AGAIN == err)
|
if(CURLE_AGAIN == err)
|
||||||
continue;
|
continue;
|
||||||
if(err) {
|
if(err) {
|
||||||
|
|||||||
@ -201,7 +201,7 @@ CURLcode Curl_SOCKS5_gssapi_negotiate(struct Curl_cfilter *cf,
|
|||||||
if(gss_send_token.length) {
|
if(gss_send_token.length) {
|
||||||
socksreq[0] = 1; /* GSS-API subnegotiation version */
|
socksreq[0] = 1; /* GSS-API subnegotiation version */
|
||||||
socksreq[1] = 1; /* authentication message type */
|
socksreq[1] = 1; /* authentication message type */
|
||||||
us_length = htons((short)gss_send_token.length);
|
us_length = htons((unsigned short)gss_send_token.length);
|
||||||
memcpy(socksreq + 2, &us_length, sizeof(short));
|
memcpy(socksreq + 2, &us_length, sizeof(short));
|
||||||
|
|
||||||
nwritten = Curl_conn_cf_send(cf->next, data, (char *)socksreq, 4, &code);
|
nwritten = Curl_conn_cf_send(cf->next, data, (char *)socksreq, 4, &code);
|
||||||
@ -406,7 +406,7 @@ CURLcode Curl_SOCKS5_gssapi_negotiate(struct Curl_cfilter *cf,
|
|||||||
}
|
}
|
||||||
gss_release_buffer(&gss_status, &gss_send_token);
|
gss_release_buffer(&gss_status, &gss_send_token);
|
||||||
|
|
||||||
us_length = htons((short)gss_w_token.length);
|
us_length = htons((unsigned short)gss_w_token.length);
|
||||||
memcpy(socksreq + 2, &us_length, sizeof(short));
|
memcpy(socksreq + 2, &us_length, sizeof(short));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -204,7 +204,7 @@ CURLcode Curl_SOCKS5_gssapi_negotiate(struct Curl_cfilter *cf,
|
|||||||
if(sspi_send_token.cbBuffer) {
|
if(sspi_send_token.cbBuffer) {
|
||||||
socksreq[0] = 1; /* GSS-API subnegotiation version */
|
socksreq[0] = 1; /* GSS-API subnegotiation version */
|
||||||
socksreq[1] = 1; /* authentication message type */
|
socksreq[1] = 1; /* authentication message type */
|
||||||
us_length = htons((short)sspi_send_token.cbBuffer);
|
us_length = htons((unsigned short)sspi_send_token.cbBuffer);
|
||||||
memcpy(socksreq + 2, &us_length, sizeof(short));
|
memcpy(socksreq + 2, &us_length, sizeof(short));
|
||||||
|
|
||||||
written = Curl_conn_cf_send(cf->next, data, (char *)socksreq, 4, &code);
|
written = Curl_conn_cf_send(cf->next, data, (char *)socksreq, 4, &code);
|
||||||
@ -389,7 +389,7 @@ CURLcode Curl_SOCKS5_gssapi_negotiate(struct Curl_cfilter *cf,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
if(data->set.socks5_gssapi_nec) {
|
if(data->set.socks5_gssapi_nec) {
|
||||||
us_length = htons((short)1);
|
us_length = htons((unsigned short)1);
|
||||||
memcpy(socksreq + 2, &us_length, sizeof(short));
|
memcpy(socksreq + 2, &us_length, sizeof(short));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -472,7 +472,7 @@ CURLcode Curl_SOCKS5_gssapi_negotiate(struct Curl_cfilter *cf,
|
|||||||
sspi_w_token[2].pvBuffer = NULL;
|
sspi_w_token[2].pvBuffer = NULL;
|
||||||
sspi_w_token[2].cbBuffer = 0;
|
sspi_w_token[2].cbBuffer = 0;
|
||||||
|
|
||||||
us_length = htons((short)sspi_send_token.cbBuffer);
|
us_length = htons((unsigned short)sspi_send_token.cbBuffer);
|
||||||
memcpy(socksreq + 2, &us_length, sizeof(short));
|
memcpy(socksreq + 2, &us_length, sizeof(short));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -795,7 +795,7 @@ get_winapi_error(int err, char *buf, size_t buflen)
|
|||||||
expect the local codepage (eg fprintf, failf, infof).
|
expect the local codepage (eg fprintf, failf, infof).
|
||||||
FormatMessageW -> wcstombs is used for Windows CE compatibility. */
|
FormatMessageW -> wcstombs is used for Windows CE compatibility. */
|
||||||
if(FormatMessageW((FORMAT_MESSAGE_FROM_SYSTEM |
|
if(FormatMessageW((FORMAT_MESSAGE_FROM_SYSTEM |
|
||||||
FORMAT_MESSAGE_IGNORE_INSERTS), NULL, err,
|
FORMAT_MESSAGE_IGNORE_INSERTS), NULL, (DWORD)err,
|
||||||
LANG_NEUTRAL, wbuf, sizeof(wbuf)/sizeof(wchar_t), NULL)) {
|
LANG_NEUTRAL, wbuf, sizeof(wbuf)/sizeof(wchar_t), NULL)) {
|
||||||
size_t written = wcstombs(buf, wbuf, buflen - 1);
|
size_t written = wcstombs(buf, wbuf, buflen - 1);
|
||||||
if(written != (size_t)-1)
|
if(written != (size_t)-1)
|
||||||
@ -865,7 +865,7 @@ const char *Curl_strerror(int err, char *buf, size_t buflen)
|
|||||||
#ifdef USE_WINSOCK
|
#ifdef USE_WINSOCK
|
||||||
!get_winsock_error(err, buf, buflen) &&
|
!get_winsock_error(err, buf, buflen) &&
|
||||||
#endif
|
#endif
|
||||||
!get_winapi_error((DWORD)err, buf, buflen))
|
!get_winapi_error(err, buf, buflen))
|
||||||
msnprintf(buf, buflen, "Unknown error %d (%#x)", err, err);
|
msnprintf(buf, buflen, "Unknown error %d (%#x)", err, err);
|
||||||
}
|
}
|
||||||
#else /* not Windows coming up */
|
#else /* not Windows coming up */
|
||||||
@ -944,7 +944,7 @@ const char *Curl_winapi_strerror(DWORD err, char *buf, size_t buflen)
|
|||||||
*buf = '\0';
|
*buf = '\0';
|
||||||
|
|
||||||
#ifndef CURL_DISABLE_VERBOSE_STRINGS
|
#ifndef CURL_DISABLE_VERBOSE_STRINGS
|
||||||
if(!get_winapi_error(err, buf, buflen)) {
|
if(!get_winapi_error((int)err, buf, buflen)) {
|
||||||
msnprintf(buf, buflen, "Unknown error %lu (0x%08lX)", err, err);
|
msnprintf(buf, buflen, "Unknown error %lu (0x%08lX)", err, err);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
|||||||
@ -1544,7 +1544,7 @@ static CURLcode telnet_do(struct Curl_easy *data, bool *done)
|
|||||||
|
|
||||||
while(keepon) {
|
while(keepon) {
|
||||||
DEBUGF(infof(data, "telnet_do, poll %d fds", poll_cnt));
|
DEBUGF(infof(data, "telnet_do, poll %d fds", poll_cnt));
|
||||||
switch(Curl_poll(pfd, poll_cnt, interval_ms)) {
|
switch(Curl_poll(pfd, (unsigned int)poll_cnt, interval_ms)) {
|
||||||
case -1: /* error, stop reading */
|
case -1: /* error, stop reading */
|
||||||
keepon = FALSE;
|
keepon = FALSE;
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
12
lib/tftp.c
12
lib/tftp.c
@ -528,7 +528,7 @@ static CURLcode tftp_send_first(struct tftp_state_data *state,
|
|||||||
senddata = sendto(state->sockfd, (void *)state->spacket.data,
|
senddata = sendto(state->sockfd, (void *)state->spacket.data,
|
||||||
(SEND_TYPE_ARG3)sbytes, 0,
|
(SEND_TYPE_ARG3)sbytes, 0,
|
||||||
&data->conn->remote_addr->sa_addr,
|
&data->conn->remote_addr->sa_addr,
|
||||||
data->conn->remote_addr->addrlen);
|
(curl_socklen_t)data->conn->remote_addr->addrlen);
|
||||||
if(senddata != (ssize_t)sbytes) {
|
if(senddata != (ssize_t)sbytes) {
|
||||||
char buffer[STRERROR_LEN];
|
char buffer[STRERROR_LEN];
|
||||||
failf(data, "%s", Curl_strerror(SOCKERRNO, buffer, sizeof(buffer)));
|
failf(data, "%s", Curl_strerror(SOCKERRNO, buffer, sizeof(buffer)));
|
||||||
@ -738,7 +738,7 @@ static CURLcode tftp_tx(struct tftp_state_data *state, tftp_event_t event)
|
|||||||
else {
|
else {
|
||||||
/* Re-send the data packet */
|
/* Re-send the data packet */
|
||||||
sbytes = sendto(state->sockfd, (void *)state->spacket.data,
|
sbytes = sendto(state->sockfd, (void *)state->spacket.data,
|
||||||
4 + state->sbytes, SEND_4TH_ARG,
|
4 + (SEND_TYPE_ARG3)state->sbytes, SEND_4TH_ARG,
|
||||||
(struct sockaddr *)&state->remote_addr,
|
(struct sockaddr *)&state->remote_addr,
|
||||||
state->remote_addrlen);
|
state->remote_addrlen);
|
||||||
/* Check all sbytes were sent */
|
/* Check all sbytes were sent */
|
||||||
@ -783,7 +783,7 @@ static CURLcode tftp_tx(struct tftp_state_data *state, tftp_event_t event)
|
|||||||
} while(state->sbytes < state->blksize && cb);
|
} while(state->sbytes < state->blksize && cb);
|
||||||
|
|
||||||
sbytes = sendto(state->sockfd, (void *) state->spacket.data,
|
sbytes = sendto(state->sockfd, (void *) state->spacket.data,
|
||||||
4 + state->sbytes, SEND_4TH_ARG,
|
4 + (SEND_TYPE_ARG3)state->sbytes, SEND_4TH_ARG,
|
||||||
(struct sockaddr *)&state->remote_addr,
|
(struct sockaddr *)&state->remote_addr,
|
||||||
state->remote_addrlen);
|
state->remote_addrlen);
|
||||||
/* Check all sbytes were sent */
|
/* Check all sbytes were sent */
|
||||||
@ -809,7 +809,7 @@ static CURLcode tftp_tx(struct tftp_state_data *state, tftp_event_t event)
|
|||||||
else {
|
else {
|
||||||
/* Re-send the data packet */
|
/* Re-send the data packet */
|
||||||
sbytes = sendto(state->sockfd, (void *)state->spacket.data,
|
sbytes = sendto(state->sockfd, (void *)state->spacket.data,
|
||||||
4 + state->sbytes, SEND_4TH_ARG,
|
4 + (SEND_TYPE_ARG3)state->sbytes, SEND_4TH_ARG,
|
||||||
(struct sockaddr *)&state->remote_addr,
|
(struct sockaddr *)&state->remote_addr,
|
||||||
state->remote_addrlen);
|
state->remote_addrlen);
|
||||||
/* Check all sbytes were sent */
|
/* Check all sbytes were sent */
|
||||||
@ -1032,7 +1032,7 @@ static CURLcode tftp_connect(struct Curl_easy *data, bool *done)
|
|||||||
* IPv4 and IPv6...
|
* IPv4 and IPv6...
|
||||||
*/
|
*/
|
||||||
int rc = bind(state->sockfd, (struct sockaddr *)&state->local_addr,
|
int rc = bind(state->sockfd, (struct sockaddr *)&state->local_addr,
|
||||||
conn->remote_addr->addrlen);
|
(curl_socklen_t)conn->remote_addr->addrlen);
|
||||||
if(rc) {
|
if(rc) {
|
||||||
char buffer[STRERROR_LEN];
|
char buffer[STRERROR_LEN];
|
||||||
failf(data, "bind() failed; %s",
|
failf(data, "bind() failed; %s",
|
||||||
@ -1110,7 +1110,7 @@ static CURLcode tftp_receive_packet(struct Curl_easy *data)
|
|||||||
fromlen = sizeof(fromaddr);
|
fromlen = sizeof(fromaddr);
|
||||||
state->rbytes = (int)recvfrom(state->sockfd,
|
state->rbytes = (int)recvfrom(state->sockfd,
|
||||||
(void *)state->rpacket.data,
|
(void *)state->rpacket.data,
|
||||||
state->blksize + 4,
|
(RECV_TYPE_ARG3)state->blksize + 4,
|
||||||
0,
|
0,
|
||||||
(struct sockaddr *)&fromaddr,
|
(struct sockaddr *)&fromaddr,
|
||||||
&fromlen);
|
&fromlen);
|
||||||
|
|||||||
@ -51,8 +51,8 @@ struct curltime Curl_now(void)
|
|||||||
#pragma warning(pop)
|
#pragma warning(pop)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
now.tv_sec = milliseconds / 1000;
|
now.tv_sec = (time_t)(milliseconds / 1000);
|
||||||
now.tv_usec = (milliseconds % 1000) * 1000;
|
now.tv_usec = (int)((milliseconds % 1000) * 1000);
|
||||||
}
|
}
|
||||||
return now;
|
return now;
|
||||||
}
|
}
|
||||||
@ -95,7 +95,7 @@ struct curltime Curl_now(void)
|
|||||||
#endif
|
#endif
|
||||||
(0 == clock_gettime(CLOCK_MONOTONIC_RAW, &tsnow))) {
|
(0 == clock_gettime(CLOCK_MONOTONIC_RAW, &tsnow))) {
|
||||||
cnow.tv_sec = tsnow.tv_sec;
|
cnow.tv_sec = tsnow.tv_sec;
|
||||||
cnow.tv_usec = (unsigned int)(tsnow.tv_nsec / 1000);
|
cnow.tv_usec = (int)(tsnow.tv_nsec / 1000);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
@ -107,7 +107,7 @@ struct curltime Curl_now(void)
|
|||||||
#endif
|
#endif
|
||||||
(0 == clock_gettime(CLOCK_MONOTONIC, &tsnow))) {
|
(0 == clock_gettime(CLOCK_MONOTONIC, &tsnow))) {
|
||||||
cnow.tv_sec = tsnow.tv_sec;
|
cnow.tv_sec = tsnow.tv_sec;
|
||||||
cnow.tv_usec = (unsigned int)(tsnow.tv_nsec / 1000);
|
cnow.tv_usec = (int)(tsnow.tv_nsec / 1000);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
** Even when the configure process has truly detected monotonic clock
|
** Even when the configure process has truly detected monotonic clock
|
||||||
@ -118,7 +118,7 @@ struct curltime Curl_now(void)
|
|||||||
else {
|
else {
|
||||||
(void)gettimeofday(&now, NULL);
|
(void)gettimeofday(&now, NULL);
|
||||||
cnow.tv_sec = now.tv_sec;
|
cnow.tv_sec = now.tv_sec;
|
||||||
cnow.tv_usec = (unsigned int)now.tv_usec;
|
cnow.tv_usec = (int)now.tv_usec;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
else {
|
else {
|
||||||
|
|||||||
@ -791,11 +791,11 @@ CURLcode Curl_follow(struct Curl_easy *data,
|
|||||||
}
|
}
|
||||||
|
|
||||||
DEBUGASSERT(data->state.uh);
|
DEBUGASSERT(data->state.uh);
|
||||||
uc = curl_url_set(data->state.uh, CURLUPART_URL, newurl,
|
uc = curl_url_set(data->state.uh, CURLUPART_URL, newurl, (unsigned int)
|
||||||
(type == FOLLOW_FAKE) ? CURLU_NON_SUPPORT_SCHEME :
|
((type == FOLLOW_FAKE) ? CURLU_NON_SUPPORT_SCHEME :
|
||||||
((type == FOLLOW_REDIR) ? CURLU_URLENCODE : 0) |
|
((type == FOLLOW_REDIR) ? CURLU_URLENCODE : 0) |
|
||||||
CURLU_ALLOW_SPACE |
|
CURLU_ALLOW_SPACE |
|
||||||
(data->set.path_as_is ? CURLU_PATH_AS_IS : 0));
|
(data->set.path_as_is ? CURLU_PATH_AS_IS : 0)));
|
||||||
if(uc) {
|
if(uc) {
|
||||||
if(type != FOLLOW_FAKE) {
|
if(type != FOLLOW_FAKE) {
|
||||||
failf(data, "The redirect target URL could not be parsed: %s",
|
failf(data, "The redirect target URL could not be parsed: %s",
|
||||||
|
|||||||
@ -1643,7 +1643,7 @@ const struct Curl_handler *Curl_getn_scheme_handler(const char *scheme,
|
|||||||
unsigned int c = 978;
|
unsigned int c = 978;
|
||||||
while(l) {
|
while(l) {
|
||||||
c <<= 5;
|
c <<= 5;
|
||||||
c += Curl_raw_tolower(*s);
|
c += (unsigned int)Curl_raw_tolower(*s);
|
||||||
s++;
|
s++;
|
||||||
l--;
|
l--;
|
||||||
}
|
}
|
||||||
@ -1796,12 +1796,12 @@ static CURLcode parseurlandfillconn(struct Curl_easy *data,
|
|||||||
|
|
||||||
if(!use_set_uh) {
|
if(!use_set_uh) {
|
||||||
char *newurl;
|
char *newurl;
|
||||||
uc = curl_url_set(uh, CURLUPART_URL, data->state.url,
|
uc = curl_url_set(uh, CURLUPART_URL, data->state.url, (unsigned int)
|
||||||
CURLU_GUESS_SCHEME |
|
(CURLU_GUESS_SCHEME |
|
||||||
CURLU_NON_SUPPORT_SCHEME |
|
CURLU_NON_SUPPORT_SCHEME |
|
||||||
(data->set.disallow_username_in_url ?
|
(data->set.disallow_username_in_url ?
|
||||||
CURLU_DISALLOW_USER : 0) |
|
CURLU_DISALLOW_USER : 0) |
|
||||||
(data->set.path_as_is ? CURLU_PATH_AS_IS : 0));
|
(data->set.path_as_is ? CURLU_PATH_AS_IS : 0)));
|
||||||
if(uc) {
|
if(uc) {
|
||||||
failf(data, "URL rejected: %s", curl_url_strerror(uc));
|
failf(data, "URL rejected: %s", curl_url_strerror(uc));
|
||||||
return Curl_uc_to_curlcode(uc);
|
return Curl_uc_to_curlcode(uc);
|
||||||
|
|||||||
@ -206,7 +206,7 @@ static CURLUcode urlencode_str(struct dynbuf *o, const char *url,
|
|||||||
size_t Curl_is_absolute_url(const char *url, char *buf, size_t buflen,
|
size_t Curl_is_absolute_url(const char *url, char *buf, size_t buflen,
|
||||||
bool guess_scheme)
|
bool guess_scheme)
|
||||||
{
|
{
|
||||||
int i = 0;
|
size_t i = 0;
|
||||||
DEBUGASSERT(!buf || (buflen > MAX_SCHEME_LEN));
|
DEBUGASSERT(!buf || (buflen > MAX_SCHEME_LEN));
|
||||||
(void)buflen; /* only used in debug-builds */
|
(void)buflen; /* only used in debug-builds */
|
||||||
if(buf)
|
if(buf)
|
||||||
|
|||||||
@ -258,10 +258,11 @@ char *curl_version(void)
|
|||||||
api.ldapai_info_version = LDAP_API_INFO_VERSION;
|
api.ldapai_info_version = LDAP_API_INFO_VERSION;
|
||||||
|
|
||||||
if(ldap_get_option(NULL, LDAP_OPT_API_INFO, &api) == LDAP_OPT_SUCCESS) {
|
if(ldap_get_option(NULL, LDAP_OPT_API_INFO, &api) == LDAP_OPT_SUCCESS) {
|
||||||
unsigned int patch = api.ldapai_vendor_version % 100;
|
unsigned int patch = (unsigned int)(api.ldapai_vendor_version % 100);
|
||||||
unsigned int major = api.ldapai_vendor_version / 10000;
|
unsigned int major = (unsigned int)(api.ldapai_vendor_version / 10000);
|
||||||
unsigned int minor =
|
unsigned int minor =
|
||||||
((api.ldapai_vendor_version - major * 10000) - patch) / 100;
|
(((unsigned int)api.ldapai_vendor_version - major * 10000)
|
||||||
|
- patch) / 100;
|
||||||
msnprintf(ldap_buf, sizeof(ldap_buf), "%s/%u.%u.%u",
|
msnprintf(ldap_buf, sizeof(ldap_buf), "%s/%u.%u.%u",
|
||||||
api.ldapai_vendor_name, major, minor, patch);
|
api.ldapai_vendor_name, major, minor, patch);
|
||||||
src[i++] = ldap_buf;
|
src[i++] = ldap_buf;
|
||||||
@ -640,7 +641,7 @@ curl_version_info_data *curl_version_info(CURLversion stamp)
|
|||||||
#ifdef USE_NGHTTP2
|
#ifdef USE_NGHTTP2
|
||||||
{
|
{
|
||||||
nghttp2_info *h2 = nghttp2_version(0);
|
nghttp2_info *h2 = nghttp2_version(0);
|
||||||
version_info.nghttp2_ver_num = h2->version_num;
|
version_info.nghttp2_ver_num = (unsigned int)h2->version_num;
|
||||||
version_info.nghttp2_version = h2->version_str;
|
version_info.nghttp2_version = h2->version_str;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
4
lib/ws.c
4
lib/ws.c
@ -102,7 +102,7 @@ static unsigned char ws_frame_flags2op(int flags)
|
|||||||
size_t i;
|
size_t i;
|
||||||
for(i = 0; i < sizeof(WS_FRAMES)/sizeof(WS_FRAMES[0]); ++i) {
|
for(i = 0; i < sizeof(WS_FRAMES)/sizeof(WS_FRAMES[0]); ++i) {
|
||||||
if(WS_FRAMES[i].flags & flags)
|
if(WS_FRAMES[i].flags & flags)
|
||||||
return WS_FRAMES[i].proto_opcode;
|
return (unsigned char)WS_FRAMES[i].proto_opcode;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -560,7 +560,7 @@ static ssize_t ws_enc_write_head(struct Curl_easy *data,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
opcode = ws_frame_flags2op(flags);
|
opcode = ws_frame_flags2op((int)flags);
|
||||||
if(!opcode) {
|
if(!opcode) {
|
||||||
failf(data, "WS: provided flags not recognized '%x'", flags);
|
failf(data, "WS: provided flags not recognized '%x'", flags);
|
||||||
*err = CURLE_SEND_ERROR;
|
*err = CURLE_SEND_ERROR;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user