mirror of
https://github.com/curl/curl.git
synced 2026-04-11 12:01:42 +08:00
lib: drop two interim macros in favor of native libcurl API calls
Drop `strcasecompare` and `strncasecompare` in favor of libcurl API calls `curl_strequal` and `curl_strnequal` respectively. Also drop unnecessary `strcase.h` includes. Include `curl/curl.h` instead where it wasn't included before. Closes #17772
This commit is contained in:
parent
d553f7e9f0
commit
a3787f98ac
@ -32,7 +32,6 @@
|
||||
#include "urldata.h"
|
||||
#include "altsvc.h"
|
||||
#include "curl_get_line.h"
|
||||
#include "strcase.h"
|
||||
#include "parsedate.h"
|
||||
#include "sendf.h"
|
||||
#include "curlx/warnless.h"
|
||||
@ -416,7 +415,7 @@ static bool hostcompare(const char *host, const char *check)
|
||||
if(hlen != clen)
|
||||
/* they cannot match if they have different lengths */
|
||||
return FALSE;
|
||||
return strncasecompare(host, check, hlen);
|
||||
return curl_strnequal(host, check, hlen);
|
||||
}
|
||||
|
||||
/* altsvc_flush() removes all alternatives for this source origin from the
|
||||
|
||||
@ -42,7 +42,6 @@
|
||||
#include "sigpipe.h"
|
||||
#include "connect.h"
|
||||
#include "select.h"
|
||||
#include "strcase.h"
|
||||
#include "curlx/strparse.h"
|
||||
#include "uint-table.h"
|
||||
|
||||
|
||||
@ -78,7 +78,6 @@
|
||||
#include "vquic/vquic.h" /* for quic cfilters */
|
||||
#include "http_proxy.h"
|
||||
#include "socks.h"
|
||||
#include "strcase.h"
|
||||
|
||||
/* The last 3 #include files should be in this order */
|
||||
#include "curl_printf.h"
|
||||
@ -90,15 +89,15 @@
|
||||
enum alpnid Curl_alpn2alpnid(const char *name, size_t len)
|
||||
{
|
||||
if(len == 2) {
|
||||
if(strncasecompare(name, "h1", 2))
|
||||
if(curl_strnequal(name, "h1", 2))
|
||||
return ALPN_h1;
|
||||
if(strncasecompare(name, "h2", 2))
|
||||
if(curl_strnequal(name, "h2", 2))
|
||||
return ALPN_h2;
|
||||
if(strncasecompare(name, "h3", 2))
|
||||
if(curl_strnequal(name, "h3", 2))
|
||||
return ALPN_h3;
|
||||
}
|
||||
else if(len == 8) {
|
||||
if(strncasecompare(name, "http/1.1", 8))
|
||||
if(curl_strnequal(name, "http/1.1", 8))
|
||||
return ALPN_h1;
|
||||
}
|
||||
return ALPN_none; /* unknown, probably rubbish input */
|
||||
|
||||
@ -52,7 +52,6 @@
|
||||
#include "http.h"
|
||||
#include "content_encoding.h"
|
||||
#include "strdup.h"
|
||||
#include "strcase.h"
|
||||
|
||||
/* The last 3 #include files should be in this order */
|
||||
#include "curl_printf.h"
|
||||
@ -636,7 +635,7 @@ void Curl_all_content_encodings(char *buf, size_t blen)
|
||||
|
||||
for(cep = general_unencoders; *cep; cep++) {
|
||||
ce = *cep;
|
||||
if(!strcasecompare(ce->name, CONTENT_ENCODING_DEFAULT))
|
||||
if(!curl_strequal(ce->name, CONTENT_ENCODING_DEFAULT))
|
||||
len += strlen(ce->name) + 2;
|
||||
}
|
||||
|
||||
@ -648,7 +647,7 @@ void Curl_all_content_encodings(char *buf, size_t blen)
|
||||
char *p = buf;
|
||||
for(cep = general_unencoders; *cep; cep++) {
|
||||
ce = *cep;
|
||||
if(!strcasecompare(ce->name, CONTENT_ENCODING_DEFAULT)) {
|
||||
if(!curl_strequal(ce->name, CONTENT_ENCODING_DEFAULT)) {
|
||||
strcpy(p, ce->name);
|
||||
p += strlen(p);
|
||||
*p++ = ',';
|
||||
@ -713,8 +712,8 @@ static const struct Curl_cwtype *find_unencode_writer(const char *name,
|
||||
if(phase == CURL_CW_TRANSFER_DECODE) {
|
||||
for(cep = transfer_unencoders; *cep; cep++) {
|
||||
const struct Curl_cwtype *ce = *cep;
|
||||
if((strncasecompare(name, ce->name, len) && !ce->name[len]) ||
|
||||
(ce->alias && strncasecompare(name, ce->alias, len)
|
||||
if((curl_strnequal(name, ce->name, len) && !ce->name[len]) ||
|
||||
(ce->alias && curl_strnequal(name, ce->alias, len)
|
||||
&& !ce->alias[len]))
|
||||
return ce;
|
||||
}
|
||||
@ -722,8 +721,8 @@ static const struct Curl_cwtype *find_unencode_writer(const char *name,
|
||||
/* look among the general decoders */
|
||||
for(cep = general_unencoders; *cep; cep++) {
|
||||
const struct Curl_cwtype *ce = *cep;
|
||||
if((strncasecompare(name, ce->name, len) && !ce->name[len]) ||
|
||||
(ce->alias && strncasecompare(name, ce->alias, len) && !ce->alias[len]))
|
||||
if((curl_strnequal(name, ce->name, len) && !ce->name[len]) ||
|
||||
(ce->alias && curl_strnequal(name, ce->alias, len) && !ce->alias[len]))
|
||||
return ce;
|
||||
}
|
||||
return NULL;
|
||||
@ -761,12 +760,12 @@ CURLcode Curl_build_unencoding_stack(struct Curl_easy *data,
|
||||
CURL_TRC_WRITE(data, "looking for %s decoder: %.*s",
|
||||
is_transfer ? "transfer" : "content", (int)namelen, name);
|
||||
is_chunked = (is_transfer && (namelen == 7) &&
|
||||
strncasecompare(name, "chunked", 7));
|
||||
curl_strnequal(name, "chunked", 7));
|
||||
/* if we skip the decoding in this phase, do not look further.
|
||||
* Exception is "chunked" transfer-encoding which always must happen */
|
||||
if((is_transfer && !data->set.http_transfer_encoding && !is_chunked) ||
|
||||
(!is_transfer && data->set.http_ce_skip)) {
|
||||
bool is_identity = strncasecompare(name, "identity", 8);
|
||||
bool is_identity = curl_strnequal(name, "identity", 8);
|
||||
/* not requested, ignore */
|
||||
CURL_TRC_WRITE(data, "decoder not requested, ignored: %.*s",
|
||||
(int)namelen, name);
|
||||
|
||||
26
lib/cookie.c
26
lib/cookie.c
@ -135,9 +135,9 @@ static bool cookie_tailmatch(const char *cookie_domain,
|
||||
if(hostname_len < cookie_domain_len)
|
||||
return FALSE;
|
||||
|
||||
if(!strncasecompare(cookie_domain,
|
||||
hostname + hostname_len-cookie_domain_len,
|
||||
cookie_domain_len))
|
||||
if(!curl_strnequal(cookie_domain,
|
||||
hostname + hostname_len-cookie_domain_len,
|
||||
cookie_domain_len))
|
||||
return FALSE;
|
||||
|
||||
/*
|
||||
@ -409,7 +409,7 @@ static void remove_expired(struct CookieInfo *ci)
|
||||
/* Make sure domain contains a dot or is localhost. */
|
||||
static bool bad_domain(const char *domain, size_t len)
|
||||
{
|
||||
if((len == 9) && strncasecompare(domain, "localhost", 9))
|
||||
if((len == 9) && curl_strnequal(domain, "localhost", 9))
|
||||
return FALSE;
|
||||
else {
|
||||
/* there must be a dot present, but that dot must not be a trailing dot */
|
||||
@ -815,7 +815,7 @@ parse_netscape(struct Cookie *co,
|
||||
* domain can access the variable. Set TRUE when the cookie says
|
||||
* .example.com and to false when the domain is complete www.example.com
|
||||
*/
|
||||
co->tailmatch = !!strncasecompare(ptr, "TRUE", len);
|
||||
co->tailmatch = !!curl_strnequal(ptr, "TRUE", len);
|
||||
break;
|
||||
case 2:
|
||||
/* The file format allows the path field to remain not filled in */
|
||||
@ -842,7 +842,7 @@ parse_netscape(struct Cookie *co,
|
||||
FALLTHROUGH();
|
||||
case 3:
|
||||
co->secure = FALSE;
|
||||
if(strncasecompare(ptr, "TRUE", len)) {
|
||||
if(curl_strnequal(ptr, "TRUE", len)) {
|
||||
if(secure || ci->running)
|
||||
co->secure = TRUE;
|
||||
else
|
||||
@ -859,9 +859,9 @@ parse_netscape(struct Cookie *co,
|
||||
return CERR_OUT_OF_MEMORY;
|
||||
else {
|
||||
/* For Netscape file format cookies we check prefix on the name */
|
||||
if(strncasecompare("__Secure-", co->name, 9))
|
||||
if(curl_strnequal("__Secure-", co->name, 9))
|
||||
co->prefix_secure = TRUE;
|
||||
else if(strncasecompare("__Host-", co->name, 7))
|
||||
else if(curl_strnequal("__Host-", co->name, 7))
|
||||
co->prefix_host = TRUE;
|
||||
}
|
||||
break;
|
||||
@ -954,7 +954,7 @@ replace_existing(struct Curl_easy *data,
|
||||
bool matching_domains = FALSE;
|
||||
|
||||
if(clist->domain && co->domain) {
|
||||
if(strcasecompare(clist->domain, co->domain))
|
||||
if(curl_strequal(clist->domain, co->domain))
|
||||
/* The domains are identical */
|
||||
matching_domains = TRUE;
|
||||
}
|
||||
@ -981,7 +981,7 @@ replace_existing(struct Curl_easy *data,
|
||||
else
|
||||
cllen = strlen(clist->spath);
|
||||
|
||||
if(strncasecompare(clist->spath, co->spath, cllen)) {
|
||||
if(curl_strnequal(clist->spath, co->spath, cllen)) {
|
||||
infof(data, "cookie '%s' for domain '%s' dropped, would "
|
||||
"overlay an existing cookie", co->name, co->domain);
|
||||
return CERR_BAD_SECURE;
|
||||
@ -993,7 +993,7 @@ replace_existing(struct Curl_easy *data,
|
||||
/* the names are identical */
|
||||
|
||||
if(clist->domain && co->domain) {
|
||||
if(strcasecompare(clist->domain, co->domain) &&
|
||||
if(curl_strequal(clist->domain, co->domain) &&
|
||||
(clist->tailmatch == co->tailmatch))
|
||||
/* The domains are identical */
|
||||
replace_old = TRUE;
|
||||
@ -1005,7 +1005,7 @@ replace_existing(struct Curl_easy *data,
|
||||
/* the domains were identical */
|
||||
|
||||
if(clist->spath && co->spath &&
|
||||
!strcasecompare(clist->spath, co->spath))
|
||||
!curl_strequal(clist->spath, co->spath))
|
||||
replace_old = FALSE;
|
||||
else if(!clist->spath != !co->spath)
|
||||
replace_old = FALSE;
|
||||
@ -1337,7 +1337,7 @@ int Curl_cookie_getlist(struct Curl_easy *data,
|
||||
if(!co->domain ||
|
||||
(co->tailmatch && !is_ip &&
|
||||
cookie_tailmatch(co->domain, strlen(co->domain), host)) ||
|
||||
((!co->tailmatch || is_ip) && strcasecompare(host, co->domain)) ) {
|
||||
((!co->tailmatch || is_ip) && curl_strequal(host, co->domain)) ) {
|
||||
/*
|
||||
* the right part of the host matches the domain stuff in the
|
||||
* cookie data
|
||||
|
||||
@ -40,7 +40,6 @@
|
||||
#include "sigpipe.h"
|
||||
#include "connect.h"
|
||||
#include "select.h"
|
||||
#include "strcase.h"
|
||||
#include "curlx/strparse.h"
|
||||
|
||||
/* The last 3 #include files should be in this order */
|
||||
|
||||
@ -31,7 +31,6 @@
|
||||
#include "easyif.h"
|
||||
#include "cfilters.h"
|
||||
#include "multiif.h"
|
||||
#include "strcase.h"
|
||||
|
||||
#include "cf-socket.h"
|
||||
#include "connect.h"
|
||||
|
||||
@ -23,7 +23,10 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "strparse.h"
|
||||
#include "../strcase.h"
|
||||
|
||||
#ifndef WITHOUT_LIBCURL
|
||||
#include <curl/curl.h> /* for curl_strnequal() */
|
||||
#endif
|
||||
|
||||
void curlx_str_init(struct Curl_str *out)
|
||||
{
|
||||
@ -238,7 +241,7 @@ int curlx_str_newline(const char **linep)
|
||||
int curlx_str_casecompare(struct Curl_str *str, const char *check)
|
||||
{
|
||||
size_t clen = check ? strlen(check) : 0;
|
||||
return ((str->len == clen) && strncasecompare(str->str, check, clen));
|
||||
return ((str->len == clen) && curl_strnequal(str->str, check, clen));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
13
lib/dict.c
13
lib/dict.c
@ -60,7 +60,6 @@
|
||||
#include "progress.h"
|
||||
#include "dict.h"
|
||||
#include "curl_printf.h"
|
||||
#include "strcase.h"
|
||||
#include "curl_memory.h"
|
||||
/* The last #include file should be: */
|
||||
#include "memdebug.h"
|
||||
@ -198,9 +197,9 @@ static CURLcode dict_do(struct Curl_easy *data, bool *done)
|
||||
if(result)
|
||||
return result;
|
||||
|
||||
if(strncasecompare(path, DICT_MATCH, sizeof(DICT_MATCH)-1) ||
|
||||
strncasecompare(path, DICT_MATCH2, sizeof(DICT_MATCH2)-1) ||
|
||||
strncasecompare(path, DICT_MATCH3, sizeof(DICT_MATCH3)-1)) {
|
||||
if(curl_strnequal(path, DICT_MATCH, sizeof(DICT_MATCH)-1) ||
|
||||
curl_strnequal(path, DICT_MATCH2, sizeof(DICT_MATCH2)-1) ||
|
||||
curl_strnequal(path, DICT_MATCH3, sizeof(DICT_MATCH3)-1)) {
|
||||
|
||||
word = strchr(path, ':');
|
||||
if(word) {
|
||||
@ -245,9 +244,9 @@ static CURLcode dict_do(struct Curl_easy *data, bool *done)
|
||||
}
|
||||
Curl_xfer_setup1(data, CURL_XFER_RECV, -1, FALSE); /* no upload */
|
||||
}
|
||||
else if(strncasecompare(path, DICT_DEFINE, sizeof(DICT_DEFINE)-1) ||
|
||||
strncasecompare(path, DICT_DEFINE2, sizeof(DICT_DEFINE2)-1) ||
|
||||
strncasecompare(path, DICT_DEFINE3, sizeof(DICT_DEFINE3)-1)) {
|
||||
else if(curl_strnequal(path, DICT_DEFINE, sizeof(DICT_DEFINE)-1) ||
|
||||
curl_strnequal(path, DICT_DEFINE2, sizeof(DICT_DEFINE2)-1) ||
|
||||
curl_strnequal(path, DICT_DEFINE3, sizeof(DICT_DEFINE3)-1)) {
|
||||
|
||||
word = strchr(path, ':');
|
||||
if(word) {
|
||||
|
||||
@ -150,7 +150,7 @@ struct dynhds_entry *Curl_dynhds_get(struct dynhds *dynhds, const char *name,
|
||||
size_t i;
|
||||
for(i = 0; i < dynhds->hds_len; ++i) {
|
||||
if(dynhds->hds[i]->namelen == namelen &&
|
||||
strncasecompare(dynhds->hds[i]->name, name, namelen)) {
|
||||
curl_strnequal(dynhds->hds[i]->name, name, namelen)) {
|
||||
return dynhds->hds[i];
|
||||
}
|
||||
}
|
||||
@ -297,7 +297,7 @@ size_t Curl_dynhds_count_name(struct dynhds *dynhds,
|
||||
size_t i;
|
||||
for(i = 0; i < dynhds->hds_len; ++i) {
|
||||
if((namelen == dynhds->hds[i]->namelen) &&
|
||||
strncasecompare(name, dynhds->hds[i]->name, namelen))
|
||||
curl_strnequal(name, dynhds->hds[i]->name, namelen))
|
||||
++n;
|
||||
}
|
||||
}
|
||||
@ -325,7 +325,7 @@ size_t Curl_dynhds_remove(struct dynhds *dynhds,
|
||||
size_t i, len;
|
||||
for(i = 0; i < dynhds->hds_len; ++i) {
|
||||
if((namelen == dynhds->hds[i]->namelen) &&
|
||||
strncasecompare(name, dynhds->hds[i]->name, namelen)) {
|
||||
curl_strnequal(name, dynhds->hds[i]->name, namelen)) {
|
||||
++n;
|
||||
--dynhds->hds_len;
|
||||
dynhds->strs_len -= (dynhds->hds[i]->namelen +
|
||||
|
||||
@ -23,7 +23,6 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "curl_setup.h"
|
||||
#include "strcase.h"
|
||||
#include "easyoptions.h"
|
||||
|
||||
#ifndef CURL_DISABLE_GETOPTIONS
|
||||
@ -37,7 +36,7 @@ static const struct curl_easyoption *lookup(const char *name, CURLoption id)
|
||||
const struct curl_easyoption *o = &Curl_easyopts[0];
|
||||
do {
|
||||
if(name) {
|
||||
if(strcasecompare(o->name, name))
|
||||
if(curl_strequal(o->name, name))
|
||||
return o;
|
||||
}
|
||||
else {
|
||||
|
||||
@ -34,7 +34,6 @@ struct Curl_easy;
|
||||
#include "urldata.h" /* for struct Curl_easy */
|
||||
#include "mime.h"
|
||||
#include "vtls/vtls.h"
|
||||
#include "strcase.h"
|
||||
#include "sendf.h"
|
||||
#include "strdup.h"
|
||||
#include "rand.h"
|
||||
|
||||
@ -2989,7 +2989,7 @@ static CURLcode ftp_pp_statemachine(struct Curl_easy *data,
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
|
||||
/* Check for special servers here. */
|
||||
if(strcasecompare(os, "OS/400")) {
|
||||
if(curl_strequal(os, "OS/400")) {
|
||||
/* Force OS400 name format 1. */
|
||||
result = Curl_pp_sendf(data, &ftpc->pp, "%s", "SITE NAMEFMT 1");
|
||||
if(result) {
|
||||
|
||||
@ -26,7 +26,6 @@
|
||||
|
||||
#include "urldata.h"
|
||||
#include "strdup.h"
|
||||
#include "strcase.h"
|
||||
#include "sendf.h"
|
||||
#include "headers.h"
|
||||
#include "curlx/strparse.h"
|
||||
@ -88,7 +87,7 @@ CURLHcode curl_easy_header(CURL *easy,
|
||||
/* we need a first round to count amount of this header */
|
||||
for(e = Curl_llist_head(&data->state.httphdrs); e; e = Curl_node_next(e)) {
|
||||
hs = Curl_node_elem(e);
|
||||
if(strcasecompare(hs->name, name) &&
|
||||
if(curl_strequal(hs->name, name) &&
|
||||
(hs->type & type) &&
|
||||
(hs->request == request)) {
|
||||
amount++;
|
||||
@ -107,7 +106,7 @@ CURLHcode curl_easy_header(CURL *easy,
|
||||
else {
|
||||
for(e = Curl_llist_head(&data->state.httphdrs); e; e = Curl_node_next(e)) {
|
||||
hs = Curl_node_elem(e);
|
||||
if(strcasecompare(hs->name, name) &&
|
||||
if(curl_strequal(hs->name, name) &&
|
||||
(hs->type & type) &&
|
||||
(hs->request == request) &&
|
||||
(match++ == nameindex)) {
|
||||
@ -173,7 +172,7 @@ struct curl_header *curl_easy_nextheader(CURL *easy,
|
||||
the index for the currently selected entry */
|
||||
for(e = Curl_llist_head(&data->state.httphdrs); e; e = Curl_node_next(e)) {
|
||||
struct Curl_header_store *check = Curl_node_elem(e);
|
||||
if(strcasecompare(hs->name, check->name) &&
|
||||
if(curl_strequal(hs->name, check->name) &&
|
||||
(check->request == request) &&
|
||||
(check->type & type))
|
||||
amount++;
|
||||
|
||||
@ -730,7 +730,7 @@ static bool tailmatch(const char *full, size_t flen,
|
||||
{
|
||||
if(plen > flen)
|
||||
return FALSE;
|
||||
return strncasecompare(part, &full[flen - plen], plen);
|
||||
return curl_strnequal(part, &full[flen - plen], plen);
|
||||
}
|
||||
|
||||
static struct Curl_addrinfo *
|
||||
@ -872,8 +872,8 @@ CURLcode Curl_resolv(struct Curl_easy *data,
|
||||
goto error;
|
||||
|
||||
if(!is_ipaddr &&
|
||||
(strcasecompare(hostname, "localhost") ||
|
||||
strcasecompare(hostname, "localhost.") ||
|
||||
(curl_strequal(hostname, "localhost") ||
|
||||
curl_strequal(hostname, "localhost.") ||
|
||||
tailmatch(hostname, hostname_len, STRCONST(".localhost")) ||
|
||||
tailmatch(hostname, hostname_len, STRCONST(".localhost.")))) {
|
||||
addr = get_localhost(port, hostname);
|
||||
|
||||
11
lib/hsts.c
11
lib/hsts.c
@ -33,7 +33,6 @@
|
||||
#include "llist.h"
|
||||
#include "hsts.h"
|
||||
#include "curl_get_line.h"
|
||||
#include "strcase.h"
|
||||
#include "sendf.h"
|
||||
#include "parsedate.h"
|
||||
#include "fopen.h"
|
||||
@ -155,7 +154,7 @@ CURLcode Curl_hsts_parse(struct hsts *h, const char *hostname,
|
||||
|
||||
do {
|
||||
curlx_str_passblanks(&p);
|
||||
if(strncasecompare("max-age", p, 7)) {
|
||||
if(curl_strnequal("max-age", p, 7)) {
|
||||
bool quoted = FALSE;
|
||||
int rc;
|
||||
|
||||
@ -185,7 +184,7 @@ CURLcode Curl_hsts_parse(struct hsts *h, const char *hostname,
|
||||
}
|
||||
gotma = TRUE;
|
||||
}
|
||||
else if(strncasecompare("includesubdomains", p, 17)) {
|
||||
else if(curl_strnequal("includesubdomains", p, 17)) {
|
||||
if(gotinc)
|
||||
return CURLE_BAD_FUNCTION_ARGUMENT;
|
||||
subdomains = TRUE;
|
||||
@ -272,15 +271,15 @@ struct stsentry *Curl_hsts(struct hsts *h, const char *hostname,
|
||||
if((subdomain && sts->includeSubDomains) && (ntail < hlen)) {
|
||||
size_t offs = hlen - ntail;
|
||||
if((hostname[offs-1] == '.') &&
|
||||
strncasecompare(&hostname[offs], sts->host, ntail) &&
|
||||
curl_strnequal(&hostname[offs], sts->host, ntail) &&
|
||||
(ntail > blen)) {
|
||||
/* save the tail match with the longest tail */
|
||||
bestsub = sts;
|
||||
blen = ntail;
|
||||
}
|
||||
}
|
||||
/* avoid strcasecompare because the host name is not null-terminated */
|
||||
if((hlen == ntail) && strncasecompare(hostname, sts->host, hlen))
|
||||
/* avoid curl_strequal because the host name is not null-terminated */
|
||||
if((hlen == ntail) && curl_strnequal(hostname, sts->host, hlen))
|
||||
return sts;
|
||||
}
|
||||
}
|
||||
|
||||
24
lib/http.c
24
lib/http.c
@ -259,7 +259,7 @@ char *Curl_checkProxyheaders(struct Curl_easy *data,
|
||||
for(head = (conn->bits.proxy && data->set.sep_headers) ?
|
||||
data->set.proxyheaders : data->set.headers;
|
||||
head; head = head->next) {
|
||||
if(strncasecompare(head->data, thisheader, thislen) &&
|
||||
if(curl_strnequal(head->data, thisheader, thislen) &&
|
||||
Curl_headersep(head->data[thislen]))
|
||||
return head->data;
|
||||
}
|
||||
@ -862,7 +862,7 @@ static bool authcmp(const char *auth, const char *line)
|
||||
{
|
||||
/* the auth string must not have an alnum following */
|
||||
size_t n = strlen(auth);
|
||||
return strncasecompare(auth, line, n) && !ISALNUM(line[n]);
|
||||
return curl_strnequal(auth, line, n) && !ISALNUM(line[n]);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -1482,7 +1482,7 @@ Curl_compareheader(const char *headerline, /* line to check */
|
||||
DEBUGASSERT(header);
|
||||
DEBUGASSERT(content);
|
||||
|
||||
if(!strncasecompare(headerline, header, hlen))
|
||||
if(!curl_strnequal(headerline, header, hlen))
|
||||
return FALSE; /* does not start with header */
|
||||
|
||||
/* pass the header */
|
||||
@ -1497,7 +1497,7 @@ Curl_compareheader(const char *headerline, /* line to check */
|
||||
size_t len;
|
||||
p = curlx_str(&val);
|
||||
for(len = curlx_strlen(&val); len >= curlx_strlen(&val); len--, p++) {
|
||||
if(strncasecompare(p, content, clen))
|
||||
if(curl_strnequal(p, content, clen))
|
||||
return TRUE; /* match! */
|
||||
}
|
||||
}
|
||||
@ -1893,7 +1893,7 @@ static CURLcode http_host(struct Curl_easy *data, struct connectdata *conn)
|
||||
|
||||
ptr = Curl_checkheaders(data, STRCONST("Host"));
|
||||
if(ptr && (!data->state.this_is_a_follow ||
|
||||
strcasecompare(data->state.first_host, conn->host.name))) {
|
||||
curl_strequal(data->state.first_host, conn->host.name))) {
|
||||
#if !defined(CURL_DISABLE_COOKIES)
|
||||
/* If we have a given custom Host: header, we extract the hostname in
|
||||
order to possibly use it for cookie reasons later on. We only allow the
|
||||
@ -1929,7 +1929,7 @@ static CURLcode http_host(struct Curl_easy *data, struct connectdata *conn)
|
||||
}
|
||||
#endif
|
||||
|
||||
if(!strcasecompare("Host:", ptr)) {
|
||||
if(!curl_strequal("Host:", ptr)) {
|
||||
aptr->host = aprintf("Host:%s\r\n", &ptr[5]);
|
||||
if(!aptr->host)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
@ -2005,7 +2005,7 @@ static CURLcode http_target(struct Curl_easy *data,
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
if(strcasecompare("http", data->state.up.scheme)) {
|
||||
if(curl_strequal("http", data->state.up.scheme)) {
|
||||
/* when getting HTTP, we do not want the userinfo the URL */
|
||||
uc = curl_url_set(h, CURLUPART_USER, NULL, 0);
|
||||
if(uc) {
|
||||
@ -2034,7 +2034,7 @@ static CURLcode http_target(struct Curl_easy *data,
|
||||
if(result)
|
||||
return result;
|
||||
|
||||
if(strcasecompare("ftp", data->state.up.scheme)) {
|
||||
if(curl_strequal("ftp", data->state.up.scheme)) {
|
||||
if(data->set.proxy_transfer_mode) {
|
||||
/* when doing ftp, append ;type=<a|i> if not present */
|
||||
char *type = strstr(path, ";type=");
|
||||
@ -2443,7 +2443,7 @@ static CURLcode http_cookies(struct Curl_easy *data,
|
||||
data->state.aptr.cookiehost : conn->host.name;
|
||||
const bool secure_context =
|
||||
conn->handler->protocol&(CURLPROTO_HTTPS|CURLPROTO_WSS) ||
|
||||
strcasecompare("localhost", host) ||
|
||||
curl_strequal("localhost", host) ||
|
||||
!strcmp(host, "127.0.0.1") ||
|
||||
!strcmp(host, "::1");
|
||||
Curl_share_lock(data, CURL_LOCK_DATA_COOKIE, CURL_LOCK_ACCESS_SINGLE);
|
||||
@ -3329,7 +3329,7 @@ static CURLcode http_header_s(struct Curl_easy *data,
|
||||
data->state.aptr.cookiehost : conn->host.name;
|
||||
const bool secure_context =
|
||||
conn->handler->protocol&(CURLPROTO_HTTPS|CURLPROTO_WSS) ||
|
||||
strcasecompare("localhost", host) ||
|
||||
curl_strequal("localhost", host) ||
|
||||
!strcmp(host, "127.0.0.1") ||
|
||||
!strcmp(host, "::1");
|
||||
|
||||
@ -4586,7 +4586,7 @@ static bool h2_permissible_field(struct dynhds_entry *e)
|
||||
if(e->namelen < H2_NON_FIELD[i].namelen)
|
||||
return TRUE;
|
||||
if(e->namelen == H2_NON_FIELD[i].namelen &&
|
||||
strcasecompare(H2_NON_FIELD[i].name, e->name))
|
||||
curl_strequal(H2_NON_FIELD[i].name, e->name))
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
@ -4677,7 +4677,7 @@ CURLcode Curl_http_req_to_h2(struct dynhds *h2_headers,
|
||||
e = Curl_dynhds_getn(&req->headers, i);
|
||||
/* "TE" is special in that it is only permissible when it
|
||||
* has only value "trailers". RFC 9113 ch. 8.2.2 */
|
||||
if(e->namelen == 2 && strcasecompare("TE", e->name)) {
|
||||
if(e->namelen == 2 && curl_strequal("TE", e->name)) {
|
||||
if(http_TE_has_token(e->value, "trailers"))
|
||||
result = Curl_dynhds_add(h2_headers, e->name, e->namelen,
|
||||
"trailers", sizeof("trailers") - 1);
|
||||
|
||||
@ -36,7 +36,6 @@
|
||||
#include "sendf.h"
|
||||
#include "select.h"
|
||||
#include "curlx/base64.h"
|
||||
#include "strcase.h"
|
||||
#include "multiif.h"
|
||||
#include "url.h"
|
||||
#include "urlapi-int.h"
|
||||
@ -1598,9 +1597,9 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
|
||||
if(!check)
|
||||
/* no memory */
|
||||
return NGHTTP2_ERR_CALLBACK_FAILURE;
|
||||
if(!strcasecompare(check, (const char *)value) &&
|
||||
if(!curl_strequal(check, (const char *)value) &&
|
||||
((cf->conn->remote_port != cf->conn->given->defport) ||
|
||||
!strcasecompare(cf->conn->host.name, (const char *)value))) {
|
||||
!curl_strequal(cf->conn->host.name, (const char *)value))) {
|
||||
/* This is push is not for the same authority that was asked for in
|
||||
* the URL. RFC 7540 section 8.2 says: "A client MUST treat a
|
||||
* PUSH_PROMISE for which the server is not authoritative as a stream
|
||||
|
||||
@ -38,7 +38,6 @@
|
||||
#include "cf-h1-proxy.h"
|
||||
#include "cf-h2-proxy.h"
|
||||
#include "connect.h"
|
||||
#include "strcase.h"
|
||||
#include "vtls/vtls.h"
|
||||
#include "transfer.h"
|
||||
#include "multiif.h"
|
||||
@ -53,7 +52,7 @@
|
||||
static bool hd_name_eq(const char *n1, size_t n1len,
|
||||
const char *n2, size_t n2len)
|
||||
{
|
||||
return (n1len == n2len) ? strncasecompare(n1, n2, n1len) : FALSE;
|
||||
return (n1len == n2len) ? curl_strnequal(n1, n2, n1len) : FALSE;
|
||||
}
|
||||
|
||||
static CURLcode dynhds_add_custom(struct Curl_easy *data,
|
||||
|
||||
@ -53,7 +53,6 @@
|
||||
#endif
|
||||
|
||||
#include "curlx/inet_ntop.h"
|
||||
#include "strcase.h"
|
||||
#include "if2ip.h"
|
||||
/* The last 3 #include files should be in this order */
|
||||
#include "curl_printf.h"
|
||||
@ -117,7 +116,7 @@ if2ip_result_t Curl_if2ip(int af,
|
||||
for(iface = head; iface != NULL; iface = iface->ifa_next) {
|
||||
if(iface->ifa_addr) {
|
||||
if(iface->ifa_addr->sa_family == af) {
|
||||
if(strcasecompare(iface->ifa_name, interf)) {
|
||||
if(curl_strequal(iface->ifa_name, interf)) {
|
||||
void *addr;
|
||||
const char *ip;
|
||||
char scope[12] = "";
|
||||
@ -168,7 +167,7 @@ if2ip_result_t Curl_if2ip(int af,
|
||||
}
|
||||
}
|
||||
else if((res == IF2IP_NOT_FOUND) &&
|
||||
strcasecompare(iface->ifa_name, interf)) {
|
||||
curl_strequal(iface->ifa_name, interf)) {
|
||||
res = IF2IP_AF_NOT_SUPPORTED;
|
||||
}
|
||||
}
|
||||
|
||||
40
lib/imap.c
40
lib/imap.c
@ -302,7 +302,7 @@ static bool imap_matchresp(const char *line, size_t len, const char *cmd)
|
||||
|
||||
/* Does the command name match and is it followed by a space character or at
|
||||
the end of line? */
|
||||
if(line + cmd_len <= end && strncasecompare(line, cmd, cmd_len) &&
|
||||
if(line + cmd_len <= end && curl_strnequal(line, cmd, cmd_len) &&
|
||||
(line[cmd_len] == ' ' || line + cmd_len + 2 == end))
|
||||
return TRUE;
|
||||
|
||||
@ -358,16 +358,16 @@ static bool imap_endofresp(struct Curl_easy *data, struct connectdata *conn,
|
||||
case IMAP_LIST:
|
||||
if((!imap->custom && !imap_matchresp(line, len, "LIST")) ||
|
||||
(imap->custom && !imap_matchresp(line, len, imap->custom) &&
|
||||
(!strcasecompare(imap->custom, "STORE") ||
|
||||
(!curl_strequal(imap->custom, "STORE") ||
|
||||
!imap_matchresp(line, len, "FETCH")) &&
|
||||
!strcasecompare(imap->custom, "SELECT") &&
|
||||
!strcasecompare(imap->custom, "EXAMINE") &&
|
||||
!strcasecompare(imap->custom, "SEARCH") &&
|
||||
!strcasecompare(imap->custom, "EXPUNGE") &&
|
||||
!strcasecompare(imap->custom, "LSUB") &&
|
||||
!strcasecompare(imap->custom, "UID") &&
|
||||
!strcasecompare(imap->custom, "GETQUOTAROOT") &&
|
||||
!strcasecompare(imap->custom, "NOOP")))
|
||||
!curl_strequal(imap->custom, "SELECT") &&
|
||||
!curl_strequal(imap->custom, "EXAMINE") &&
|
||||
!curl_strequal(imap->custom, "SEARCH") &&
|
||||
!curl_strequal(imap->custom, "EXPUNGE") &&
|
||||
!curl_strequal(imap->custom, "LSUB") &&
|
||||
!curl_strequal(imap->custom, "UID") &&
|
||||
!curl_strequal(imap->custom, "GETQUOTAROOT") &&
|
||||
!curl_strequal(imap->custom, "NOOP")))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
@ -1239,7 +1239,7 @@ static CURLcode imap_state_select_resp(struct Curl_easy *data,
|
||||
else if(imapcode == IMAP_RESP_OK) {
|
||||
/* Check if the UIDVALIDITY has been specified and matches */
|
||||
if(imap->uidvalidity && imapc->mailbox_uidvalidity &&
|
||||
!strcasecompare(imap->uidvalidity, imapc->mailbox_uidvalidity)) {
|
||||
!curl_strequal(imap->uidvalidity, imapc->mailbox_uidvalidity)) {
|
||||
failf(data, "Mailbox UIDVALIDITY has changed");
|
||||
result = CURLE_REMOTE_FILE_NOT_FOUND;
|
||||
}
|
||||
@ -1690,9 +1690,9 @@ static CURLcode imap_perform(struct Curl_easy *data, bool *connected,
|
||||
/* Determine if the requested mailbox (with the same UIDVALIDITY if set)
|
||||
has already been selected on this connection */
|
||||
if(imap->mailbox && imapc->mailbox &&
|
||||
strcasecompare(imap->mailbox, imapc->mailbox) &&
|
||||
curl_strequal(imap->mailbox, imapc->mailbox) &&
|
||||
(!imap->uidvalidity || !imapc->mailbox_uidvalidity ||
|
||||
strcasecompare(imap->uidvalidity, imapc->mailbox_uidvalidity)))
|
||||
curl_strequal(imap->uidvalidity, imapc->mailbox_uidvalidity)))
|
||||
selected = TRUE;
|
||||
|
||||
/* Start the first command in the DO phase */
|
||||
@ -2072,12 +2072,12 @@ static CURLcode imap_parse_url_options(struct connectdata *conn,
|
||||
while(*ptr && *ptr != ';')
|
||||
ptr++;
|
||||
|
||||
if(strncasecompare(key, "AUTH=+LOGIN", 11)) {
|
||||
if(curl_strnequal(key, "AUTH=+LOGIN", 11)) {
|
||||
/* User prefers plaintext LOGIN over any SASL, including SASL LOGIN */
|
||||
prefer_login = TRUE;
|
||||
imapc->sasl.prefmech = SASL_AUTH_NONE;
|
||||
}
|
||||
else if(strncasecompare(key, "AUTH=", 5)) {
|
||||
else if(curl_strnequal(key, "AUTH=", 5)) {
|
||||
prefer_login = FALSE;
|
||||
result = Curl_sasl_parse_url_auth_option(&imapc->sasl,
|
||||
value, ptr - value);
|
||||
@ -2182,35 +2182,35 @@ static CURLcode imap_parse_url_path(struct Curl_easy *data,
|
||||
PARTIAL) stripping of the trailing slash character if it is present.
|
||||
|
||||
Note: Unknown parameters trigger a URL_MALFORMAT error. */
|
||||
if(strcasecompare(name, "UIDVALIDITY") && !imap->uidvalidity) {
|
||||
if(curl_strequal(name, "UIDVALIDITY") && !imap->uidvalidity) {
|
||||
if(valuelen > 0 && value[valuelen - 1] == '/')
|
||||
value[valuelen - 1] = '\0';
|
||||
|
||||
imap->uidvalidity = value;
|
||||
value = NULL;
|
||||
}
|
||||
else if(strcasecompare(name, "UID") && !imap->uid) {
|
||||
else if(curl_strequal(name, "UID") && !imap->uid) {
|
||||
if(valuelen > 0 && value[valuelen - 1] == '/')
|
||||
value[valuelen - 1] = '\0';
|
||||
|
||||
imap->uid = value;
|
||||
value = NULL;
|
||||
}
|
||||
else if(strcasecompare(name, "MAILINDEX") && !imap->mindex) {
|
||||
else if(curl_strequal(name, "MAILINDEX") && !imap->mindex) {
|
||||
if(valuelen > 0 && value[valuelen - 1] == '/')
|
||||
value[valuelen - 1] = '\0';
|
||||
|
||||
imap->mindex = value;
|
||||
value = NULL;
|
||||
}
|
||||
else if(strcasecompare(name, "SECTION") && !imap->section) {
|
||||
else if(curl_strequal(name, "SECTION") && !imap->section) {
|
||||
if(valuelen > 0 && value[valuelen - 1] == '/')
|
||||
value[valuelen - 1] = '\0';
|
||||
|
||||
imap->section = value;
|
||||
value = NULL;
|
||||
}
|
||||
else if(strcasecompare(name, "PARTIAL") && !imap->partial) {
|
||||
else if(curl_strequal(name, "PARTIAL") && !imap->partial) {
|
||||
if(valuelen > 0 && value[valuelen - 1] == '/')
|
||||
value[valuelen - 1] = '\0';
|
||||
|
||||
|
||||
@ -56,7 +56,6 @@
|
||||
#include "transfer.h"
|
||||
#include "curl_krb5.h"
|
||||
#include "curlx/warnless.h"
|
||||
#include "strcase.h"
|
||||
#include "strdup.h"
|
||||
|
||||
/* The last 3 #include files should be in this order */
|
||||
|
||||
15
lib/ldap.c
15
lib/ldap.c
@ -88,7 +88,6 @@
|
||||
#include "escape.h"
|
||||
#include "progress.h"
|
||||
#include "transfer.h"
|
||||
#include "strcase.h"
|
||||
#include "curlx/strparse.h"
|
||||
#include "curl_ldap.h"
|
||||
#include "curlx/multibyte.h"
|
||||
@ -393,7 +392,7 @@ static CURLcode ldap_do(struct Curl_easy *data, bool *done)
|
||||
if(conn->ssl_config.verifypeer) {
|
||||
/* OpenLDAP SDK supports BASE64 files. */
|
||||
if((data->set.ssl.cert_type) &&
|
||||
(!strcasecompare(data->set.ssl.cert_type, "PEM"))) {
|
||||
(!curl_strequal(data->set.ssl.cert_type, "PEM"))) {
|
||||
failf(data, "LDAP local: ERROR OpenLDAP only supports PEM cert-type");
|
||||
result = CURLE_SSL_CERTPROBLEM;
|
||||
goto quit;
|
||||
@ -748,15 +747,15 @@ static void _ldap_trace(const char *fmt, ...)
|
||||
*/
|
||||
static int str2scope(const char *p)
|
||||
{
|
||||
if(strcasecompare(p, "one"))
|
||||
if(curl_strequal(p, "one"))
|
||||
return LDAP_SCOPE_ONELEVEL;
|
||||
if(strcasecompare(p, "onetree"))
|
||||
if(curl_strequal(p, "onetree"))
|
||||
return LDAP_SCOPE_ONELEVEL;
|
||||
if(strcasecompare(p, "base"))
|
||||
if(curl_strequal(p, "base"))
|
||||
return LDAP_SCOPE_BASE;
|
||||
if(strcasecompare(p, "sub"))
|
||||
if(curl_strequal(p, "sub"))
|
||||
return LDAP_SCOPE_SUBTREE;
|
||||
if(strcasecompare(p, "subtree"))
|
||||
if(curl_strequal(p, "subtree"))
|
||||
return LDAP_SCOPE_SUBTREE;
|
||||
return -1;
|
||||
}
|
||||
@ -801,7 +800,7 @@ static int _ldap_url_parse2(struct Curl_easy *data,
|
||||
if(!data ||
|
||||
!data->state.up.path ||
|
||||
data->state.up.path[0] != '/' ||
|
||||
!strncasecompare("LDAP", data->state.up.scheme, 4))
|
||||
!curl_strnequal("LDAP", data->state.up.scheme, 4))
|
||||
return LDAP_INVALID_SYNTAX;
|
||||
|
||||
ludp->lud_scope = LDAP_SCOPE_BASE;
|
||||
|
||||
11
lib/mime.c
11
lib/mime.c
@ -46,7 +46,6 @@ struct Curl_easy;
|
||||
|
||||
#include "rand.h"
|
||||
#include "slist.h"
|
||||
#include "strcase.h"
|
||||
#include "curlx/dynbuf.h"
|
||||
/* The last 3 #include files should be in this order */
|
||||
#include "curl_printf.h"
|
||||
@ -336,7 +335,7 @@ static char *match_header(struct curl_slist *hdr, const char *lbl, size_t len)
|
||||
{
|
||||
char *value = NULL;
|
||||
|
||||
if(strncasecompare(hdr->data, lbl, len) && hdr->data[len] == ':')
|
||||
if(curl_strnequal(hdr->data, lbl, len) && hdr->data[len] == ':')
|
||||
for(value = hdr->data + len + 1; *value == ' '; value++)
|
||||
;
|
||||
return value;
|
||||
@ -1479,7 +1478,7 @@ CURLcode curl_mime_encoder(curl_mimepart *part, const char *encoding)
|
||||
return CURLE_OK; /* Removing current encoder. */
|
||||
|
||||
for(mep = encoders; mep->name; mep++)
|
||||
if(strcasecompare(encoding, mep->name)) {
|
||||
if(curl_strequal(encoding, mep->name)) {
|
||||
part->encoder = mep;
|
||||
result = CURLE_OK;
|
||||
}
|
||||
@ -1743,7 +1742,7 @@ const char *Curl_mime_contenttype(const char *filename)
|
||||
for(i = 0; i < CURL_ARRAYSIZE(ctts); i++) {
|
||||
size_t len2 = strlen(ctts[i].extension);
|
||||
|
||||
if(len1 >= len2 && strcasecompare(nameend - len2, ctts[i].extension))
|
||||
if(len1 >= len2 && curl_strequal(nameend - len2, ctts[i].extension))
|
||||
return ctts[i].type;
|
||||
}
|
||||
}
|
||||
@ -1753,7 +1752,7 @@ const char *Curl_mime_contenttype(const char *filename)
|
||||
static bool content_type_match(const char *contenttype,
|
||||
const char *target, size_t len)
|
||||
{
|
||||
if(contenttype && strncasecompare(contenttype, target, len))
|
||||
if(contenttype && curl_strnequal(contenttype, target, len))
|
||||
switch(contenttype[len]) {
|
||||
case '\0':
|
||||
case '\t':
|
||||
@ -1826,7 +1825,7 @@ CURLcode Curl_mime_prepare_headers(struct Curl_easy *data,
|
||||
if(!search_header(part->userheaders, STRCONST("Content-Disposition"))) {
|
||||
if(!disposition)
|
||||
if(part->filename || part->name ||
|
||||
(contenttype && !strncasecompare(contenttype, "multipart/", 10)))
|
||||
(contenttype && !curl_strnequal(contenttype, "multipart/", 10)))
|
||||
disposition = DISPOSITION_DEFAULT;
|
||||
if(disposition && curl_strequal(disposition, "attachment") &&
|
||||
!part->name && !part->filename)
|
||||
|
||||
16
lib/netrc.c
16
lib/netrc.c
@ -229,12 +229,12 @@ static NETRCcode parsenetrc(struct store_netrc *store,
|
||||
|
||||
switch(state) {
|
||||
case NOTHING:
|
||||
if(strcasecompare("macdef", tok))
|
||||
if(curl_strequal("macdef", tok))
|
||||
/* Define a macro. A macro is defined with the specified name; its
|
||||
contents begin with the next .netrc line and continue until a
|
||||
null line (consecutive new-line characters) is encountered. */
|
||||
state = MACDEF;
|
||||
else if(strcasecompare("machine", tok)) {
|
||||
else if(curl_strequal("machine", tok)) {
|
||||
/* the next tok is the machine name, this is in itself the delimiter
|
||||
that starts the stuff entered for this machine, after this we
|
||||
need to search for 'login' and 'password'. */
|
||||
@ -246,7 +246,7 @@ static NETRCcode parsenetrc(struct store_netrc *store,
|
||||
if(!specific_login)
|
||||
Curl_safefree(login);
|
||||
}
|
||||
else if(strcasecompare("default", tok)) {
|
||||
else if(curl_strequal("default", tok)) {
|
||||
state = HOSTVALID;
|
||||
retcode = NETRC_OK; /* we did find our host */
|
||||
}
|
||||
@ -256,7 +256,7 @@ static NETRCcode parsenetrc(struct store_netrc *store,
|
||||
state = NOTHING;
|
||||
break;
|
||||
case HOSTFOUND:
|
||||
if(strcasecompare(host, tok)) {
|
||||
if(curl_strequal(host, tok)) {
|
||||
/* and yes, this is our host! */
|
||||
state = HOSTVALID;
|
||||
retcode = NETRC_OK; /* we did find our host */
|
||||
@ -293,11 +293,11 @@ static NETRCcode parsenetrc(struct store_netrc *store,
|
||||
found |= FOUND_PASSWORD;
|
||||
keyword = NONE;
|
||||
}
|
||||
else if(strcasecompare("login", tok))
|
||||
else if(curl_strequal("login", tok))
|
||||
keyword = LOGIN;
|
||||
else if(strcasecompare("password", tok))
|
||||
else if(curl_strequal("password", tok))
|
||||
keyword = PASSWORD;
|
||||
else if(strcasecompare("machine", tok)) {
|
||||
else if(curl_strequal("machine", tok)) {
|
||||
/* a new machine here */
|
||||
if(found & FOUND_PASSWORD) {
|
||||
done = TRUE;
|
||||
@ -310,7 +310,7 @@ static NETRCcode parsenetrc(struct store_netrc *store,
|
||||
if(!specific_login)
|
||||
Curl_safefree(login);
|
||||
}
|
||||
else if(strcasecompare("default", tok)) {
|
||||
else if(curl_strequal("default", tok)) {
|
||||
state = HOSTVALID;
|
||||
retcode = NETRC_OK; /* we did find our host */
|
||||
Curl_safefree(password);
|
||||
|
||||
@ -26,8 +26,8 @@
|
||||
|
||||
#ifndef CURL_DISABLE_PROXY
|
||||
|
||||
#include <curl/curl.h> /* for curl_strnequal() */
|
||||
#include "curlx/inet_pton.h"
|
||||
#include "strcase.h"
|
||||
#include "noproxy.h"
|
||||
#include "curlx/strparse.h"
|
||||
|
||||
@ -205,12 +205,12 @@ bool Curl_check_noproxy(const char *name, const char *no_proxy)
|
||||
*/
|
||||
if(tokenlen == namelen)
|
||||
/* case A, exact match */
|
||||
match = strncasecompare(token, name, namelen);
|
||||
match = curl_strnequal(token, name, namelen);
|
||||
else if(tokenlen < namelen) {
|
||||
/* case B, tailmatch domain */
|
||||
match = (name[namelen - tokenlen - 1] == '.') &&
|
||||
strncasecompare(token, name + (namelen - tokenlen),
|
||||
tokenlen);
|
||||
curl_strnequal(token, name + (namelen - tokenlen),
|
||||
tokenlen);
|
||||
}
|
||||
/* case C passes through, not a match */
|
||||
break;
|
||||
|
||||
@ -80,7 +80,6 @@
|
||||
#include <limits.h>
|
||||
|
||||
#include <curl/curl.h>
|
||||
#include "strcase.h"
|
||||
#include "curlx/warnless.h"
|
||||
#include "parsedate.h"
|
||||
#include "curlx/strparse.h"
|
||||
@ -224,7 +223,7 @@ static int checkday(const char *check, size_t len)
|
||||
for(i = 0; i < 7; i++) {
|
||||
size_t ilen = strlen(what[0]);
|
||||
if((ilen == len) &&
|
||||
strncasecompare(check, what[0], len))
|
||||
curl_strnequal(check, what[0], len))
|
||||
return i;
|
||||
what++;
|
||||
}
|
||||
@ -239,7 +238,7 @@ static int checkmonth(const char *check, size_t len)
|
||||
return -1; /* not a month */
|
||||
|
||||
for(i = 0; i < 12; i++) {
|
||||
if(strncasecompare(check, what[0], 3))
|
||||
if(curl_strnequal(check, what[0], 3))
|
||||
return i;
|
||||
what++;
|
||||
}
|
||||
@ -259,7 +258,7 @@ static int checktz(const char *check, size_t len)
|
||||
for(i = 0; i < CURL_ARRAYSIZE(tz); i++) {
|
||||
size_t ilen = strlen(what->name);
|
||||
if((ilen == len) &&
|
||||
strncasecompare(check, what->name, len))
|
||||
curl_strnequal(check, what->name, len))
|
||||
return what->offset*60;
|
||||
what++;
|
||||
}
|
||||
|
||||
@ -66,7 +66,6 @@
|
||||
#include "socks.h"
|
||||
#include "pingpong.h"
|
||||
#include "pop3.h"
|
||||
#include "strcase.h"
|
||||
#include "vtls/vtls.h"
|
||||
#include "cfilters.h"
|
||||
#include "connect.h"
|
||||
@ -285,7 +284,7 @@ static bool pop3_is_multiline(const char *cmdline)
|
||||
{
|
||||
size_t i;
|
||||
for(i = 0; i < CURL_ARRAYSIZE(pop3cmds); ++i) {
|
||||
if(strncasecompare(pop3cmds[i].name, cmdline, pop3cmds[i].nlen)) {
|
||||
if(curl_strnequal(pop3cmds[i].name, cmdline, pop3cmds[i].nlen)) {
|
||||
if(!cmdline[pop3cmds[i].nlen])
|
||||
return pop3cmds[i].multiline;
|
||||
else if(cmdline[pop3cmds[i].nlen] == ' ')
|
||||
@ -1591,11 +1590,11 @@ static CURLcode pop3_parse_url_options(struct connectdata *conn)
|
||||
while(*ptr && *ptr != ';')
|
||||
ptr++;
|
||||
|
||||
if(strncasecompare(key, "AUTH=", 5)) {
|
||||
if(curl_strnequal(key, "AUTH=", 5)) {
|
||||
result = Curl_sasl_parse_url_auth_option(&pop3c->sasl,
|
||||
value, ptr - value);
|
||||
|
||||
if(result && strncasecompare(value, "+APOP", ptr - value)) {
|
||||
if(result && curl_strnequal(value, "+APOP", ptr - value)) {
|
||||
pop3c->preftype = POP3_TYPE_APOP;
|
||||
pop3c->sasl.prefmech = SASL_AUTH_NONE;
|
||||
result = CURLE_OK;
|
||||
|
||||
12
lib/setopt.c
12
lib/setopt.c
@ -1874,23 +1874,23 @@ static CURLcode setopt_cptr(struct Curl_easy *data, CURLoption option,
|
||||
if(!ptr)
|
||||
break;
|
||||
|
||||
if(strcasecompare(ptr, "ALL")) {
|
||||
if(curl_strequal(ptr, "ALL")) {
|
||||
/* clear all cookies */
|
||||
Curl_share_lock(data, CURL_LOCK_DATA_COOKIE, CURL_LOCK_ACCESS_SINGLE);
|
||||
Curl_cookie_clearall(data->cookies);
|
||||
Curl_share_unlock(data, CURL_LOCK_DATA_COOKIE);
|
||||
}
|
||||
else if(strcasecompare(ptr, "SESS")) {
|
||||
else if(curl_strequal(ptr, "SESS")) {
|
||||
/* clear session cookies */
|
||||
Curl_share_lock(data, CURL_LOCK_DATA_COOKIE, CURL_LOCK_ACCESS_SINGLE);
|
||||
Curl_cookie_clearsess(data->cookies);
|
||||
Curl_share_unlock(data, CURL_LOCK_DATA_COOKIE);
|
||||
}
|
||||
else if(strcasecompare(ptr, "FLUSH")) {
|
||||
else if(curl_strequal(ptr, "FLUSH")) {
|
||||
/* flush cookies to file, takes care of the locking */
|
||||
Curl_flush_cookies(data, FALSE);
|
||||
}
|
||||
else if(strcasecompare(ptr, "RELOAD")) {
|
||||
else if(curl_strequal(ptr, "RELOAD")) {
|
||||
/* reload cookies from file */
|
||||
Curl_cookie_loadfiles(data);
|
||||
break;
|
||||
@ -2554,12 +2554,12 @@ static CURLcode setopt_cptr(struct Curl_easy *data, CURLoption option,
|
||||
return Curl_setstropt(&data->set.str[STRING_TLSAUTH_PASSWORD_PROXY], ptr);
|
||||
#endif
|
||||
case CURLOPT_TLSAUTH_TYPE:
|
||||
if(ptr && !strcasecompare(ptr, "SRP"))
|
||||
if(ptr && !curl_strequal(ptr, "SRP"))
|
||||
return CURLE_BAD_FUNCTION_ARGUMENT;
|
||||
break;
|
||||
#ifndef CURL_DISABLE_PROXY
|
||||
case CURLOPT_PROXY_TLSAUTH_TYPE:
|
||||
if(ptr && !strcasecompare(ptr, "SRP"))
|
||||
if(ptr && !curl_strequal(ptr, "SRP"))
|
||||
return CURLE_BAD_FUNCTION_ARGUMENT;
|
||||
break;
|
||||
#endif
|
||||
|
||||
@ -68,7 +68,6 @@
|
||||
#include "mime.h"
|
||||
#include "socks.h"
|
||||
#include "smtp.h"
|
||||
#include "strcase.h"
|
||||
#include "vtls/vtls.h"
|
||||
#include "cfilters.h"
|
||||
#include "connect.h"
|
||||
@ -1775,7 +1774,7 @@ static CURLcode smtp_parse_url_options(struct connectdata *conn,
|
||||
while(*ptr && *ptr != ';')
|
||||
ptr++;
|
||||
|
||||
if(strncasecompare(key, "AUTH=", 5))
|
||||
if(curl_strnequal(key, "AUTH=", 5))
|
||||
result = Curl_sasl_parse_url_auth_option(&smtpc->sasl,
|
||||
value, ptr - value);
|
||||
else
|
||||
|
||||
@ -26,18 +26,6 @@
|
||||
|
||||
#include <curl/curl.h>
|
||||
|
||||
/*
|
||||
* Only "raw" case insensitive strings. This is meant to be locale independent
|
||||
* and only compare strings we know are safe for this.
|
||||
*
|
||||
* The function is capable of comparing a-z case insensitively.
|
||||
*
|
||||
* Result is 1 if text matches and 0 if not.
|
||||
*/
|
||||
|
||||
#define strcasecompare(a,b) curl_strequal(a,b)
|
||||
#define strncasecompare(a,b,c) curl_strnequal(a,b,c)
|
||||
|
||||
char Curl_raw_toupper(char in);
|
||||
char Curl_raw_tolower(char in);
|
||||
|
||||
|
||||
@ -65,6 +65,15 @@ static int ncasecompare(const char *first, const char *second, size_t max)
|
||||
return Curl_raw_toupper(*first) == Curl_raw_toupper(*second);
|
||||
}
|
||||
|
||||
/*
|
||||
* Only "raw" case insensitive strings. This is meant to be locale independent
|
||||
* and only compare strings we know are safe for this.
|
||||
*
|
||||
* The function is capable of comparing a-z case insensitively.
|
||||
*
|
||||
* Result is 1 if text matches and 0 if not.
|
||||
*/
|
||||
|
||||
/* --- public function --- */
|
||||
int curl_strequal(const char *first, const char *second)
|
||||
{
|
||||
|
||||
11
lib/telnet.c
11
lib/telnet.c
@ -57,7 +57,6 @@
|
||||
#include "system_win32.h"
|
||||
#include "arpa_telnet.h"
|
||||
#include "select.h"
|
||||
#include "strcase.h"
|
||||
#include "curlx/warnless.h"
|
||||
#include "curlx/strparse.h"
|
||||
|
||||
@ -839,7 +838,7 @@ static CURLcode check_telnet_options(struct Curl_easy *data,
|
||||
switch(olen) {
|
||||
case 5:
|
||||
/* Terminal type */
|
||||
if(strncasecompare(option, "TTYPE", 5)) {
|
||||
if(curl_strnequal(option, "TTYPE", 5)) {
|
||||
tn->subopt_ttype = arg;
|
||||
tn->us_preferred[CURL_TELOPT_TTYPE] = CURL_YES;
|
||||
break;
|
||||
@ -849,7 +848,7 @@ static CURLcode check_telnet_options(struct Curl_easy *data,
|
||||
|
||||
case 8:
|
||||
/* Display variable */
|
||||
if(strncasecompare(option, "XDISPLOC", 8)) {
|
||||
if(curl_strnequal(option, "XDISPLOC", 8)) {
|
||||
tn->subopt_xdisploc = arg;
|
||||
tn->us_preferred[CURL_TELOPT_XDISPLOC] = CURL_YES;
|
||||
break;
|
||||
@ -859,7 +858,7 @@ static CURLcode check_telnet_options(struct Curl_easy *data,
|
||||
|
||||
case 7:
|
||||
/* Environment variable */
|
||||
if(strncasecompare(option, "NEW_ENV", 7)) {
|
||||
if(curl_strnequal(option, "NEW_ENV", 7)) {
|
||||
beg = curl_slist_append(tn->telnet_vars, arg);
|
||||
if(!beg) {
|
||||
result = CURLE_OUT_OF_MEMORY;
|
||||
@ -874,7 +873,7 @@ static CURLcode check_telnet_options(struct Curl_easy *data,
|
||||
|
||||
case 2:
|
||||
/* Window Size */
|
||||
if(strncasecompare(option, "WS", 2)) {
|
||||
if(curl_strnequal(option, "WS", 2)) {
|
||||
const char *p = arg;
|
||||
curl_off_t x = 0;
|
||||
curl_off_t y = 0;
|
||||
@ -896,7 +895,7 @@ static CURLcode check_telnet_options(struct Curl_easy *data,
|
||||
|
||||
case 6:
|
||||
/* To take care or not of the 8th bit in data exchange */
|
||||
if(strncasecompare(option, "BINARY", 6)) {
|
||||
if(curl_strnequal(option, "BINARY", 6)) {
|
||||
int binary_option = atoi(arg);
|
||||
if(binary_option != 1) {
|
||||
tn->us_preferred[CURL_TELOPT_BINARY] = CURL_NO;
|
||||
|
||||
@ -79,7 +79,6 @@
|
||||
#include "connect.h"
|
||||
#include "http2.h"
|
||||
#include "mime.h"
|
||||
#include "strcase.h"
|
||||
#include "hsts.h"
|
||||
#include "setopt.h"
|
||||
#include "headers.h"
|
||||
@ -106,7 +105,7 @@ char *Curl_checkheaders(const struct Curl_easy *data,
|
||||
DEBUGASSERT(thisheader[thislen-1] != ':');
|
||||
|
||||
for(head = data->set.headers; head; head = head->next) {
|
||||
if(strncasecompare(head->data, thisheader, thislen) &&
|
||||
if(curl_strnequal(head->data, thisheader, thislen) &&
|
||||
Curl_headersep(head->data[thislen]) )
|
||||
return head->data;
|
||||
}
|
||||
|
||||
44
lib/url.c
44
lib/url.c
@ -643,7 +643,7 @@ proxy_info_matches(const struct proxy_info *data,
|
||||
{
|
||||
if((data->proxytype == needle->proxytype) &&
|
||||
(data->port == needle->port) &&
|
||||
strcasecompare(data->host.name, needle->host.name))
|
||||
curl_strequal(data->host.name, needle->host.name))
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
@ -1128,7 +1128,7 @@ static bool url_match_destination(struct connectdata *conn,
|
||||
|| !m->needle->bits.httpproxy || m->needle->bits.tunnel_proxy
|
||||
#endif
|
||||
) {
|
||||
if(!strcasecompare(m->needle->handler->scheme, conn->handler->scheme)) {
|
||||
if(!curl_strequal(m->needle->handler->scheme, conn->handler->scheme)) {
|
||||
/* `needle` and `conn` do not have the same scheme... */
|
||||
if(get_protocol_family(conn->handler) != m->needle->handler->protocol) {
|
||||
/* and `conn`s protocol family is not the protocol `needle` wants.
|
||||
@ -1145,14 +1145,14 @@ static bool url_match_destination(struct connectdata *conn,
|
||||
}
|
||||
|
||||
/* If needle has "conn_to_*" set, conn must match this */
|
||||
if((m->needle->bits.conn_to_host && !strcasecompare(
|
||||
if((m->needle->bits.conn_to_host && !curl_strequal(
|
||||
m->needle->conn_to_host.name, conn->conn_to_host.name)) ||
|
||||
(m->needle->bits.conn_to_port &&
|
||||
m->needle->conn_to_port != conn->conn_to_port))
|
||||
return FALSE;
|
||||
|
||||
/* hostname and port must match */
|
||||
if(!strcasecompare(m->needle->host.name, conn->host.name) ||
|
||||
if(!curl_strequal(m->needle->host.name, conn->host.name) ||
|
||||
m->needle->remote_port != conn->remote_port)
|
||||
return FALSE;
|
||||
}
|
||||
@ -1714,7 +1714,7 @@ const struct Curl_handler *Curl_getn_scheme_handler(const char *scheme,
|
||||
}
|
||||
|
||||
h = protocols[c % 67];
|
||||
if(h && strncasecompare(scheme, h->scheme, len) && !h->scheme[len])
|
||||
if(h && curl_strnequal(scheme, h->scheme, len) && !h->scheme[len])
|
||||
return h;
|
||||
}
|
||||
return NULL;
|
||||
@ -1888,7 +1888,7 @@ static CURLcode parseurlandfillconn(struct Curl_easy *data,
|
||||
|
||||
uc = curl_url_get(uh, CURLUPART_HOST, &data->state.up.hostname, 0);
|
||||
if(uc) {
|
||||
if(!strcasecompare("file", data->state.up.scheme))
|
||||
if(!curl_strequal("file", data->state.up.scheme))
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
}
|
||||
else if(strlen(data->state.up.hostname) > MAX_URL_LEN) {
|
||||
@ -1925,7 +1925,7 @@ static CURLcode parseurlandfillconn(struct Curl_easy *data,
|
||||
|
||||
#ifndef CURL_DISABLE_HSTS
|
||||
/* HSTS upgrade */
|
||||
if(data->hsts && strcasecompare("http", data->state.up.scheme)) {
|
||||
if(data->hsts && curl_strequal("http", data->state.up.scheme)) {
|
||||
/* This MUST use the IDN decoded name */
|
||||
if(Curl_hsts(data->hsts, conn->host.name, strlen(conn->host.name), TRUE)) {
|
||||
char *url;
|
||||
@ -2019,7 +2019,7 @@ static CURLcode parseurlandfillconn(struct Curl_easy *data,
|
||||
uc = curl_url_get(uh, CURLUPART_PORT, &data->state.up.port,
|
||||
CURLU_DEFAULT_PORT);
|
||||
if(uc) {
|
||||
if(!strcasecompare("file", data->state.up.scheme))
|
||||
if(!curl_strequal("file", data->state.up.scheme))
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
}
|
||||
else {
|
||||
@ -2198,7 +2198,7 @@ static char *detect_proxy(struct Curl_easy *data,
|
||||
* This can cause 'internal' http/ftp requests to be
|
||||
* arbitrarily redirected by any external attacker.
|
||||
*/
|
||||
if(!proxy && !strcasecompare("http_proxy", proxy_env)) {
|
||||
if(!proxy && !curl_strequal("http_proxy", proxy_env)) {
|
||||
/* There was no lowercase variable, try the uppercase version: */
|
||||
Curl_strntoupper(proxy_env, proxy_env, sizeof(proxy_env));
|
||||
proxy = curl_getenv(proxy_env);
|
||||
@ -2207,10 +2207,10 @@ static char *detect_proxy(struct Curl_easy *data,
|
||||
if(!proxy) {
|
||||
#ifndef CURL_DISABLE_WEBSOCKETS
|
||||
/* websocket proxy fallbacks */
|
||||
if(strcasecompare("ws_proxy", proxy_env)) {
|
||||
if(curl_strequal("ws_proxy", proxy_env)) {
|
||||
proxy = curl_getenv("http_proxy");
|
||||
}
|
||||
else if(strcasecompare("wss_proxy", proxy_env)) {
|
||||
else if(curl_strequal("wss_proxy", proxy_env)) {
|
||||
proxy = curl_getenv("https_proxy");
|
||||
if(!proxy)
|
||||
proxy = curl_getenv("HTTPS_PROXY");
|
||||
@ -2277,22 +2277,22 @@ static CURLcode parse_proxy(struct Curl_easy *data,
|
||||
goto error;
|
||||
}
|
||||
|
||||
if(strcasecompare("https", scheme)) {
|
||||
if(curl_strequal("https", scheme)) {
|
||||
if(proxytype != CURLPROXY_HTTPS2)
|
||||
proxytype = CURLPROXY_HTTPS;
|
||||
else
|
||||
proxytype = CURLPROXY_HTTPS2;
|
||||
}
|
||||
else if(strcasecompare("socks5h", scheme))
|
||||
else if(curl_strequal("socks5h", scheme))
|
||||
proxytype = CURLPROXY_SOCKS5_HOSTNAME;
|
||||
else if(strcasecompare("socks5", scheme))
|
||||
else if(curl_strequal("socks5", scheme))
|
||||
proxytype = CURLPROXY_SOCKS5;
|
||||
else if(strcasecompare("socks4a", scheme))
|
||||
else if(curl_strequal("socks4a", scheme))
|
||||
proxytype = CURLPROXY_SOCKS4A;
|
||||
else if(strcasecompare("socks4", scheme) ||
|
||||
strcasecompare("socks", scheme))
|
||||
else if(curl_strequal("socks4", scheme) ||
|
||||
curl_strequal("socks", scheme))
|
||||
proxytype = CURLPROXY_SOCKS4;
|
||||
else if(strcasecompare("http", scheme))
|
||||
else if(curl_strequal("http", scheme))
|
||||
; /* leave it as HTTP or HTTP/1.0 */
|
||||
else {
|
||||
/* Any other xxx:// reject! */
|
||||
@ -2393,7 +2393,7 @@ static CURLcode parse_proxy(struct Curl_easy *data,
|
||||
goto error;
|
||||
}
|
||||
#ifdef USE_UNIX_SOCKETS
|
||||
if(sockstype && strcasecompare(UNIX_SOCKET_PREFIX, host)) {
|
||||
if(sockstype && curl_strequal(UNIX_SOCKET_PREFIX, host)) {
|
||||
uc = curl_url_get(uhp, CURLUPART_PATH, &path, CURLU_URLDECODE);
|
||||
if(uc) {
|
||||
result = CURLE_OUT_OF_MEMORY;
|
||||
@ -3067,8 +3067,8 @@ static CURLcode parse_connect_to_string(struct Curl_easy *data,
|
||||
if(!hostname_to_match)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
hostname_to_match_len = strlen(hostname_to_match);
|
||||
host_match = strncasecompare(ptr, hostname_to_match,
|
||||
hostname_to_match_len);
|
||||
host_match = curl_strnequal(ptr, hostname_to_match,
|
||||
hostname_to_match_len);
|
||||
free(hostname_to_match);
|
||||
ptr += hostname_to_match_len;
|
||||
|
||||
@ -3601,7 +3601,7 @@ static CURLcode create_conn(struct Curl_easy *data,
|
||||
* Do this after the hostnames have been IDN-converted.
|
||||
*************************************************************/
|
||||
if(conn->bits.conn_to_host &&
|
||||
strcasecompare(conn->conn_to_host.name, conn->host.name)) {
|
||||
curl_strequal(conn->conn_to_host.name, conn->host.name)) {
|
||||
conn->bits.conn_to_host = FALSE;
|
||||
}
|
||||
|
||||
|
||||
@ -1427,7 +1427,7 @@ static CURLUcode urlget_url(const CURLU *u, char **part, unsigned int flags)
|
||||
bool depunyfy = (flags & CURLU_PUNY2IDN) ? 1 : 0;
|
||||
bool urlencode = (flags & CURLU_URLENCODE) ? 1 : 0;
|
||||
char portbuf[7];
|
||||
if(u->scheme && strcasecompare("file", u->scheme)) {
|
||||
if(u->scheme && curl_strequal("file", u->scheme)) {
|
||||
url = aprintf("file://%s%s%s%s%s",
|
||||
u->path,
|
||||
show_query ? "?": "",
|
||||
|
||||
@ -42,7 +42,6 @@
|
||||
#include "../vtls/vtls.h"
|
||||
#include "../curlx/warnless.h"
|
||||
#include "../curlx/strparse.h"
|
||||
#include "../strcase.h"
|
||||
#include "../curl_printf.h"
|
||||
#include "../rand.h"
|
||||
|
||||
@ -510,31 +509,31 @@ CURLcode Curl_auth_decode_digest_http_message(const char *chlg,
|
||||
|
||||
/* Extract a value=content pair */
|
||||
if(Curl_auth_digest_get_pair(chlg, value, content, &chlg)) {
|
||||
if(strcasecompare(value, "nonce")) {
|
||||
if(curl_strequal(value, "nonce")) {
|
||||
free(digest->nonce);
|
||||
digest->nonce = strdup(content);
|
||||
if(!digest->nonce)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
}
|
||||
else if(strcasecompare(value, "stale")) {
|
||||
if(strcasecompare(content, "true")) {
|
||||
else if(curl_strequal(value, "stale")) {
|
||||
if(curl_strequal(content, "true")) {
|
||||
digest->stale = TRUE;
|
||||
digest->nc = 1; /* we make a new nonce now */
|
||||
}
|
||||
}
|
||||
else if(strcasecompare(value, "realm")) {
|
||||
else if(curl_strequal(value, "realm")) {
|
||||
free(digest->realm);
|
||||
digest->realm = strdup(content);
|
||||
if(!digest->realm)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
}
|
||||
else if(strcasecompare(value, "opaque")) {
|
||||
else if(curl_strequal(value, "opaque")) {
|
||||
free(digest->opaque);
|
||||
digest->opaque = strdup(content);
|
||||
if(!digest->opaque)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
}
|
||||
else if(strcasecompare(value, "qop")) {
|
||||
else if(curl_strequal(value, "qop")) {
|
||||
const char *token = content;
|
||||
struct Curl_str out;
|
||||
bool foundAuth = FALSE;
|
||||
@ -568,28 +567,28 @@ CURLcode Curl_auth_decode_digest_http_message(const char *chlg,
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
}
|
||||
}
|
||||
else if(strcasecompare(value, "algorithm")) {
|
||||
else if(curl_strequal(value, "algorithm")) {
|
||||
free(digest->algorithm);
|
||||
digest->algorithm = strdup(content);
|
||||
if(!digest->algorithm)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
|
||||
if(strcasecompare(content, "MD5-sess"))
|
||||
if(curl_strequal(content, "MD5-sess"))
|
||||
digest->algo = ALGO_MD5SESS;
|
||||
else if(strcasecompare(content, "MD5"))
|
||||
else if(curl_strequal(content, "MD5"))
|
||||
digest->algo = ALGO_MD5;
|
||||
else if(strcasecompare(content, "SHA-256"))
|
||||
else if(curl_strequal(content, "SHA-256"))
|
||||
digest->algo = ALGO_SHA256;
|
||||
else if(strcasecompare(content, "SHA-256-SESS"))
|
||||
else if(curl_strequal(content, "SHA-256-SESS"))
|
||||
digest->algo = ALGO_SHA256SESS;
|
||||
else if(strcasecompare(content, "SHA-512-256")) {
|
||||
else if(curl_strequal(content, "SHA-512-256")) {
|
||||
#ifdef CURL_HAVE_SHA512_256
|
||||
digest->algo = ALGO_SHA512_256;
|
||||
#else /* ! CURL_HAVE_SHA512_256 */
|
||||
return CURLE_NOT_BUILT_IN;
|
||||
#endif /* ! CURL_HAVE_SHA512_256 */
|
||||
}
|
||||
else if(strcasecompare(content, "SHA-512-256-SESS")) {
|
||||
else if(curl_strequal(content, "SHA-512-256-SESS")) {
|
||||
#ifdef CURL_HAVE_SHA512_256
|
||||
digest->algo = ALGO_SHA512_256SESS;
|
||||
#else /* ! CURL_HAVE_SHA512_256 */
|
||||
@ -599,8 +598,8 @@ CURLcode Curl_auth_decode_digest_http_message(const char *chlg,
|
||||
else
|
||||
return CURLE_BAD_CONTENT_ENCODING;
|
||||
}
|
||||
else if(strcasecompare(value, "userhash")) {
|
||||
if(strcasecompare(content, "true")) {
|
||||
else if(curl_strequal(value, "userhash")) {
|
||||
if(curl_strequal(content, "true")) {
|
||||
digest->userhash = TRUE;
|
||||
}
|
||||
}
|
||||
@ -771,7 +770,7 @@ static CURLcode auth_create_digest_http_message(
|
||||
if(!hashthis)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
|
||||
if(digest->qop && strcasecompare(digest->qop, "auth-int")) {
|
||||
if(digest->qop && curl_strequal(digest->qop, "auth-int")) {
|
||||
/* We do not support auth-int for PUT or POST */
|
||||
char hashed[65];
|
||||
char *hashthis2;
|
||||
|
||||
@ -270,7 +270,7 @@ CURLcode Curl_override_sspi_http_realm(const char *chlg,
|
||||
|
||||
/* Extract a value=content pair */
|
||||
if(Curl_auth_digest_get_pair(chlg, value, content, &chlg)) {
|
||||
if(strcasecompare(value, "realm")) {
|
||||
if(curl_strequal(value, "realm")) {
|
||||
|
||||
/* Setup identity's domain and length */
|
||||
domain.tchar_ptr = curlx_convert_UTF8_to_tchar(content);
|
||||
@ -345,8 +345,8 @@ CURLcode Curl_auth_decode_digest_http_message(const char *chlg,
|
||||
if(!Curl_auth_digest_get_pair(p, value, content, &p))
|
||||
break;
|
||||
|
||||
if(strcasecompare(value, "stale") &&
|
||||
strcasecompare(content, "true")) {
|
||||
if(curl_strequal(value, "stale") &&
|
||||
curl_strequal(content, "true")) {
|
||||
stale = TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -28,7 +28,6 @@
|
||||
|
||||
#include "vauth.h"
|
||||
#include "../urldata.h"
|
||||
#include "../strcase.h"
|
||||
#include "../curlx/multibyte.h"
|
||||
#include "../curl_printf.h"
|
||||
#include "../url.h"
|
||||
@ -157,7 +156,7 @@ bool Curl_auth_allowed_to_host(struct Curl_easy *data)
|
||||
return !data->state.this_is_a_follow ||
|
||||
data->set.allow_auth_to_other_hosts ||
|
||||
(data->state.first_host &&
|
||||
strcasecompare(data->state.first_host, conn->host.name) &&
|
||||
curl_strequal(data->state.first_host, conn->host.name) &&
|
||||
(data->state.first_remote_port == conn->remote_port) &&
|
||||
(data->state.first_remote_protocol == conn->handler->protocol));
|
||||
}
|
||||
|
||||
@ -52,7 +52,6 @@
|
||||
#include "../strdup.h"
|
||||
#include "../rand.h"
|
||||
#include "../multiif.h"
|
||||
#include "../strcase.h"
|
||||
#include "../cfilters.h"
|
||||
#include "../cf-socket.h"
|
||||
#include "../connect.h"
|
||||
|
||||
@ -37,7 +37,6 @@
|
||||
#include "../strdup.h"
|
||||
#include "../rand.h"
|
||||
#include "../multiif.h"
|
||||
#include "../strcase.h"
|
||||
#include "../cfilters.h"
|
||||
#include "../cf-socket.h"
|
||||
#include "../connect.h"
|
||||
|
||||
@ -36,7 +36,6 @@
|
||||
#include "../sendf.h"
|
||||
#include "../strdup.h"
|
||||
#include "../rand.h"
|
||||
#include "../strcase.h"
|
||||
#include "../multiif.h"
|
||||
#include "../connect.h"
|
||||
#include "../progress.h"
|
||||
|
||||
@ -58,7 +58,6 @@
|
||||
#include "../speedcheck.h"
|
||||
#include "../getinfo.h"
|
||||
#include "../strdup.h"
|
||||
#include "../strcase.h"
|
||||
#include "../vtls/vtls.h"
|
||||
#include "../cfilters.h"
|
||||
#include "../connect.h"
|
||||
@ -363,7 +362,7 @@ static int myssh_is_known(struct Curl_easy *data, struct ssh_conn *sshc)
|
||||
|
||||
infof(data, "SSH MD5 fingerprint: %s", md5buffer);
|
||||
|
||||
if(!strcasecompare(md5buffer, pubkey_md5)) {
|
||||
if(!curl_strequal(md5buffer, pubkey_md5)) {
|
||||
failf(data,
|
||||
"Denied establishing ssh session: mismatch md5 fingerprint. "
|
||||
"Remote %s is not equal to %s", md5buffer, pubkey_md5);
|
||||
@ -1584,7 +1583,7 @@ static int myssh_in_SFTP_QUOTE(struct Curl_easy *data,
|
||||
sshc->acceptfail = TRUE;
|
||||
}
|
||||
|
||||
if(strcasecompare("pwd", cmd)) {
|
||||
if(curl_strequal("pwd", cmd)) {
|
||||
/* output debug output if that is requested */
|
||||
char *tmp = aprintf("257 \"%s\" is current directory.\n", sshp->path);
|
||||
if(!tmp) {
|
||||
|
||||
@ -61,7 +61,6 @@
|
||||
#include "../speedcheck.h"
|
||||
#include "../getinfo.h"
|
||||
#include "../strdup.h"
|
||||
#include "../strcase.h"
|
||||
#include "../vtls/vtls.h"
|
||||
#include "../cfilters.h"
|
||||
#include "../connect.h"
|
||||
@ -695,7 +694,7 @@ static CURLcode ssh_check_fingerprint(struct Curl_easy *data,
|
||||
|
||||
/* This does NOT verify the length of 'pubkey_md5' separately, which will
|
||||
make the comparison below fail unless it is exactly 32 characters */
|
||||
if(!fingerprint || !strcasecompare(md5buffer, pubkey_md5)) {
|
||||
if(!fingerprint || !curl_strequal(md5buffer, pubkey_md5)) {
|
||||
if(fingerprint) {
|
||||
failf(data,
|
||||
"Denied establishing ssh session: mismatch md5 fingerprint. "
|
||||
@ -919,7 +918,7 @@ static CURLcode sftp_quote(struct Curl_easy *data,
|
||||
sshc->acceptfail = TRUE;
|
||||
}
|
||||
|
||||
if(strcasecompare("pwd", cmd)) {
|
||||
if(curl_strequal("pwd", cmd)) {
|
||||
/* output debug output if that is requested */
|
||||
char *tmp = aprintf("257 \"%s\" is current directory.\n", sshp->path);
|
||||
if(!tmp)
|
||||
|
||||
@ -26,7 +26,6 @@
|
||||
#if defined(USE_MBEDTLS) || defined(USE_RUSTLS)
|
||||
#include "cipher_suite.h"
|
||||
#include "../curl_printf.h"
|
||||
#include "../strcase.h"
|
||||
#include <string.h>
|
||||
|
||||
/*
|
||||
@ -561,7 +560,7 @@ static int cs_str_to_zip(const char *cs_str, size_t cs_len,
|
||||
size_t len;
|
||||
|
||||
/* split the cipher string by '-' or '_' */
|
||||
if(strncasecompare(cs_str, "TLS", 3))
|
||||
if(curl_strnequal(cs_str, "TLS", 3))
|
||||
separator = '_';
|
||||
|
||||
do {
|
||||
@ -576,7 +575,7 @@ static int cs_str_to_zip(const char *cs_str, size_t cs_len,
|
||||
/* lookup index for the part (skip empty string at 0) */
|
||||
for(idx = 1, entry = cs_txt + 1; idx < CS_TXT_LEN; idx++) {
|
||||
size_t elen = strlen(entry);
|
||||
if(elen == len && strncasecompare(entry, cur, len))
|
||||
if(elen == len && curl_strnequal(entry, cur, len))
|
||||
break;
|
||||
entry += elen + 1;
|
||||
}
|
||||
|
||||
@ -53,7 +53,6 @@
|
||||
#include "../connect.h" /* for the connect timeout */
|
||||
#include "../progress.h"
|
||||
#include "../select.h"
|
||||
#include "../strcase.h"
|
||||
#include "../strdup.h"
|
||||
#include "../curlx/warnless.h"
|
||||
#include "x509asn1.h"
|
||||
@ -303,9 +302,9 @@ static gnutls_x509_crt_fmt_t gnutls_do_file_type(const char *type)
|
||||
{
|
||||
if(!type || !type[0])
|
||||
return GNUTLS_X509_FMT_PEM;
|
||||
if(strcasecompare(type, "PEM"))
|
||||
if(curl_strequal(type, "PEM"))
|
||||
return GNUTLS_X509_FMT_PEM;
|
||||
if(strcasecompare(type, "DER"))
|
||||
if(curl_strequal(type, "DER"))
|
||||
return GNUTLS_X509_FMT_DER;
|
||||
return GNUTLS_X509_FMT_PEM; /* default to PEM */
|
||||
}
|
||||
@ -982,7 +981,7 @@ static CURLcode gtls_client_init(struct Curl_cfilter *cf,
|
||||
if(result)
|
||||
return result;
|
||||
}
|
||||
if(ssl_config->cert_type && strcasecompare(ssl_config->cert_type, "P12")) {
|
||||
if(ssl_config->cert_type && curl_strequal(ssl_config->cert_type, "P12")) {
|
||||
rc = gnutls_certificate_set_x509_simple_pkcs12_file(
|
||||
gtls->shared_creds->creds, config->clientcert, GNUTLS_X509_FMT_DER,
|
||||
ssl_config->key_passwd ? ssl_config->key_passwd : "");
|
||||
|
||||
@ -36,7 +36,6 @@
|
||||
#endif
|
||||
#include "../curl_memrchr.h"
|
||||
#include "hostcheck.h"
|
||||
#include "../strcase.h"
|
||||
#include "../hostip.h"
|
||||
|
||||
#include "../curl_memory.h"
|
||||
@ -50,7 +49,7 @@ static bool pmatch(const char *hostname, size_t hostlen,
|
||||
{
|
||||
if(hostlen != patternlen)
|
||||
return FALSE;
|
||||
return strncasecompare(hostname, pattern, hostlen);
|
||||
return curl_strnequal(hostname, pattern, hostlen);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -57,7 +57,6 @@
|
||||
#endif /* MBEDTLS_VERSION_MAJOR >= 2 */
|
||||
|
||||
#include "cipher_suite.h"
|
||||
#include "../strcase.h"
|
||||
#include "../urldata.h"
|
||||
#include "../sendf.h"
|
||||
#include "../curlx/inet_pton.h"
|
||||
@ -382,7 +381,7 @@ mbed_cipher_suite_walk_str(const char **str, const char **end)
|
||||
size_t len = *end - *str;
|
||||
|
||||
if(!id) {
|
||||
if(strncasecompare("TLS_ECJPAKE_WITH_AES_128_CCM_8", *str, len))
|
||||
if(curl_strnequal("TLS_ECJPAKE_WITH_AES_128_CCM_8", *str, len))
|
||||
id = MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8;
|
||||
}
|
||||
return id;
|
||||
|
||||
@ -60,7 +60,6 @@
|
||||
#include "vtls_scache.h"
|
||||
#include "../vauth/vauth.h"
|
||||
#include "keylog.h"
|
||||
#include "../strcase.h"
|
||||
#include "hostcheck.h"
|
||||
#include "../multiif.h"
|
||||
#include "../curlx/strparse.h"
|
||||
@ -1058,15 +1057,15 @@ static int ossl_do_file_type(const char *type)
|
||||
{
|
||||
if(!type || !type[0])
|
||||
return SSL_FILETYPE_PEM;
|
||||
if(strcasecompare(type, "PEM"))
|
||||
if(curl_strequal(type, "PEM"))
|
||||
return SSL_FILETYPE_PEM;
|
||||
if(strcasecompare(type, "DER"))
|
||||
if(curl_strequal(type, "DER"))
|
||||
return SSL_FILETYPE_ASN1;
|
||||
if(strcasecompare(type, "PROV"))
|
||||
if(curl_strequal(type, "PROV"))
|
||||
return SSL_FILETYPE_PROVIDER;
|
||||
if(strcasecompare(type, "ENG"))
|
||||
if(curl_strequal(type, "ENG"))
|
||||
return SSL_FILETYPE_ENGINE;
|
||||
if(strcasecompare(type, "P12"))
|
||||
if(curl_strequal(type, "P12"))
|
||||
return SSL_FILETYPE_PKCS12;
|
||||
return -1;
|
||||
}
|
||||
@ -1119,7 +1118,7 @@ static int ssl_ui_writer(UI *ui, UI_STRING *uis)
|
||||
*/
|
||||
static bool is_pkcs11_uri(const char *string)
|
||||
{
|
||||
return string && strncasecompare(string, "pkcs11:", 7);
|
||||
return string && curl_strnequal(string, "pkcs11:", 7);
|
||||
}
|
||||
|
||||
#endif
|
||||
@ -5520,7 +5519,7 @@ size_t Curl_ossl_version(char *buffer, size_t size)
|
||||
size_t count;
|
||||
const char *ver = OpenSSL_version(OPENSSL_VERSION);
|
||||
const char expected[] = OSSL_PACKAGE " "; /* ie "LibreSSL " */
|
||||
if(strncasecompare(ver, expected, sizeof(expected) - 1)) {
|
||||
if(curl_strnequal(ver, expected, sizeof(expected) - 1)) {
|
||||
ver += sizeof(expected) - 1;
|
||||
}
|
||||
count = msnprintf(buffer, size, "%s/%s", OSSL_PACKAGE, ver);
|
||||
|
||||
@ -42,7 +42,6 @@
|
||||
#include "vtls.h"
|
||||
#include "vtls_int.h"
|
||||
#include "vtls_scache.h"
|
||||
#include "../strcase.h"
|
||||
#include "../sendf.h"
|
||||
#include "../connect.h" /* for the connect timeout */
|
||||
#include "../strerror.h"
|
||||
@ -598,7 +597,7 @@ schannel_acquire_credential_handle(struct Curl_cfilter *cf,
|
||||
}
|
||||
|
||||
if((fInCert || blob) && (data->set.ssl.cert_type) &&
|
||||
(!strcasecompare(data->set.ssl.cert_type, "P12"))) {
|
||||
(!curl_strequal(data->set.ssl.cert_type, "P12"))) {
|
||||
failf(data, "schannel: certificate format compatibility error "
|
||||
" for %s",
|
||||
blob ? "(memory blob)" : data->set.ssl.primary.clientcert);
|
||||
|
||||
@ -207,12 +207,12 @@ match_ssl_primary_config(struct Curl_easy *data,
|
||||
!Curl_timestrcmp(c1->username, c2->username) &&
|
||||
!Curl_timestrcmp(c1->password, c2->password) &&
|
||||
#endif
|
||||
strcasecompare(c1->cipher_list, c2->cipher_list) &&
|
||||
strcasecompare(c1->cipher_list13, c2->cipher_list13) &&
|
||||
strcasecompare(c1->curves, c2->curves) &&
|
||||
strcasecompare(c1->signature_algorithms, c2->signature_algorithms) &&
|
||||
strcasecompare(c1->CRLfile, c2->CRLfile) &&
|
||||
strcasecompare(c1->pinned_key, c2->pinned_key))
|
||||
curl_strequal(c1->cipher_list, c2->cipher_list) &&
|
||||
curl_strequal(c1->cipher_list13, c2->cipher_list13) &&
|
||||
curl_strequal(c1->curves, c2->curves) &&
|
||||
curl_strequal(c1->signature_algorithms, c2->signature_algorithms) &&
|
||||
curl_strequal(c1->CRLfile, c2->CRLfile) &&
|
||||
curl_strequal(c1->pinned_key, c2->pinned_key))
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
@ -1073,7 +1073,7 @@ static int multissl_setup(const struct Curl_ssl *backend)
|
||||
env = curl_getenv("CURL_SSL_BACKEND");
|
||||
if(env) {
|
||||
for(i = 0; available_backends[i]; i++) {
|
||||
if(strcasecompare(env, available_backends[i]->info.name)) {
|
||||
if(curl_strequal(env, available_backends[i]->info.name)) {
|
||||
Curl_ssl = available_backends[i];
|
||||
free(env);
|
||||
return 0;
|
||||
@ -1083,8 +1083,8 @@ static int multissl_setup(const struct Curl_ssl *backend)
|
||||
|
||||
#ifdef CURL_DEFAULT_SSL_BACKEND
|
||||
for(i = 0; available_backends[i]; i++) {
|
||||
if(strcasecompare(CURL_DEFAULT_SSL_BACKEND,
|
||||
available_backends[i]->info.name)) {
|
||||
if(curl_strequal(CURL_DEFAULT_SSL_BACKEND,
|
||||
available_backends[i]->info.name)) {
|
||||
Curl_ssl = available_backends[i];
|
||||
free(env);
|
||||
return 0;
|
||||
@ -1110,7 +1110,7 @@ CURLsslset Curl_init_sslset_nolock(curl_sslbackend id, const char *name,
|
||||
|
||||
if(Curl_ssl != &Curl_ssl_multi)
|
||||
return id == Curl_ssl->info.id ||
|
||||
(name && strcasecompare(name, Curl_ssl->info.name)) ?
|
||||
(name && curl_strequal(name, Curl_ssl->info.name)) ?
|
||||
CURLSSLSET_OK :
|
||||
#if defined(CURL_WITH_MULTI_SSL)
|
||||
CURLSSLSET_TOO_LATE;
|
||||
@ -1120,7 +1120,7 @@ CURLsslset Curl_init_sslset_nolock(curl_sslbackend id, const char *name,
|
||||
|
||||
for(i = 0; available_backends[i]; i++) {
|
||||
if(available_backends[i]->info.id == id ||
|
||||
(name && strcasecompare(available_backends[i]->info.name, name))) {
|
||||
(name && curl_strequal(available_backends[i]->info.name, name))) {
|
||||
multissl_setup(available_backends[i]);
|
||||
return CURLSSLSET_OK;
|
||||
}
|
||||
|
||||
@ -646,7 +646,7 @@ cf_ssl_find_peer_by_key(struct Curl_easy *data,
|
||||
/* check for entries with known peer_key */
|
||||
for(i = 0; scache && i < scache->peer_count; i++) {
|
||||
if(scache->peers[i].ssl_peer_key &&
|
||||
strcasecompare(ssl_peer_key, scache->peers[i].ssl_peer_key) &&
|
||||
curl_strequal(ssl_peer_key, scache->peers[i].ssl_peer_key) &&
|
||||
cf_ssl_scache_match_auth(&scache->peers[i], conn_config)) {
|
||||
/* yes, we have a cached session for this! */
|
||||
*ppeer = &scache->peers[i];
|
||||
|
||||
@ -67,7 +67,6 @@
|
||||
#include "../connect.h" /* for the connect timeout */
|
||||
#include "../progress.h"
|
||||
#include "../select.h"
|
||||
#include "../strcase.h"
|
||||
#include "../strdup.h"
|
||||
#include "x509asn1.h"
|
||||
#include "../curl_printf.h"
|
||||
@ -227,9 +226,9 @@ static int wssl_do_file_type(const char *type)
|
||||
{
|
||||
if(!type || !type[0])
|
||||
return WOLFSSL_FILETYPE_PEM;
|
||||
if(strcasecompare(type, "PEM"))
|
||||
if(curl_strequal(type, "PEM"))
|
||||
return WOLFSSL_FILETYPE_PEM;
|
||||
if(strcasecompare(type, "DER"))
|
||||
if(curl_strequal(type, "DER"))
|
||||
return WOLFSSL_FILETYPE_ASN1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -39,7 +39,6 @@
|
||||
|
||||
#include <curl/curl.h>
|
||||
#include "../urldata.h"
|
||||
#include "../strcase.h"
|
||||
#include "../curl_ctype.h"
|
||||
#include "hostcheck.h"
|
||||
#include "vtls.h"
|
||||
@ -262,7 +261,7 @@ static const struct Curl_OID *searchOID(const char *oid)
|
||||
{
|
||||
const struct Curl_OID *op;
|
||||
for(op = OIDtable; op->numoid; op++)
|
||||
if(!strcmp(op->numoid, oid) || strcasecompare(op->textoid, oid))
|
||||
if(!strcmp(op->numoid, oid) || curl_strequal(op->textoid, oid))
|
||||
return op;
|
||||
|
||||
return NULL;
|
||||
@ -989,7 +988,7 @@ static int do_pubkey(struct Curl_easy *data, int certnum,
|
||||
|
||||
/* Generate all information records for the public key. */
|
||||
|
||||
if(strcasecompare(algo, "ecPublicKey")) {
|
||||
if(curl_strequal(algo, "ecPublicKey")) {
|
||||
/*
|
||||
* ECC public key is all the data, a value of type BIT STRING mapped to
|
||||
* OCTET STRING and should not be parsed as an ASN.1 value.
|
||||
@ -1011,7 +1010,7 @@ static int do_pubkey(struct Curl_easy *data, int certnum,
|
||||
if(!getASN1Element(&pk, pubkey->beg + 1, pubkey->end))
|
||||
return 1;
|
||||
|
||||
if(strcasecompare(algo, "rsaEncryption")) {
|
||||
if(curl_strequal(algo, "rsaEncryption")) {
|
||||
const char *q;
|
||||
size_t len;
|
||||
|
||||
@ -1046,7 +1045,7 @@ static int do_pubkey(struct Curl_easy *data, int certnum,
|
||||
if(do_pubkey_field(data, certnum, "rsa(e)", &elem))
|
||||
return 1;
|
||||
}
|
||||
else if(strcasecompare(algo, "dsa")) {
|
||||
else if(curl_strequal(algo, "dsa")) {
|
||||
p = getASN1Element(&elem, param->beg, param->end);
|
||||
if(p) {
|
||||
if(do_pubkey_field(data, certnum, "dsa(p)", &elem))
|
||||
@ -1064,7 +1063,7 @@ static int do_pubkey(struct Curl_easy *data, int certnum,
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(strcasecompare(algo, "dhpublicnumber")) {
|
||||
else if(curl_strequal(algo, "dhpublicnumber")) {
|
||||
p = getASN1Element(&elem, param->beg, param->end);
|
||||
if(p) {
|
||||
if(do_pubkey_field(data, certnum, "dh(p)", &elem))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user