strcasecompare: is the new name for strequal()

... to make it less likely that we forget that the function actually
does case insentive compares. Also replaced several invokes of the
function with a plain strcmp when case sensitivity is not an issue (like
comparing with "-").
This commit is contained in:
Daniel Stenberg 2016-09-30 17:15:05 +02:00
parent 1833a45dde
commit 502acba2af
36 changed files with 98 additions and 111 deletions

View File

@ -40,7 +40,7 @@ LIB_VTLS_HFILES = vtls/openssl.h vtls/vtls.h vtls/gtls.h \
LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \ LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \
cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c \ cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c \
ldap.c version.c getenv.c escape.c mprintf.c telnet.c netrc.c \ ldap.c version.c getenv.c escape.c mprintf.c telnet.c netrc.c \
getinfo.c transfer.c strequal.c easy.c security.c curl_fnmatch.c \ getinfo.c transfer.c strcase.c easy.c security.c curl_fnmatch.c \
fileinfo.c ftplistparser.c wildcard.c krb5.c memdebug.c http_chunks.c \ fileinfo.c ftplistparser.c wildcard.c krb5.c memdebug.c http_chunks.c \
strtok.c connect.c llist.c hash.c multi.c content_encoding.c share.c \ strtok.c connect.c llist.c hash.c multi.c content_encoding.c share.c \
http_digest.c md4.c md5.c http_negotiate.c inet_pton.c strtoofft.c \ http_digest.c md4.c md5.c http_negotiate.c inet_pton.c strtoofft.c \
@ -58,7 +58,7 @@ LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \
LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \ LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \
formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h if2ip.h \ formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h if2ip.h \
speedcheck.h urldata.h curl_ldap.h escape.h telnet.h getinfo.h \ speedcheck.h urldata.h curl_ldap.h escape.h telnet.h getinfo.h \
strequal.h curl_sec.h memdebug.h http_chunks.h curl_fnmatch.h \ strcase.h curl_sec.h memdebug.h http_chunks.h curl_fnmatch.h \
wildcard.h fileinfo.h ftplistparser.h strtok.h connect.h llist.h \ wildcard.h fileinfo.h ftplistparser.h strtok.h connect.h llist.h \
hash.h content_encoding.h share.h curl_md4.h curl_md5.h http_digest.h \ hash.h content_encoding.h share.h curl_md4.h curl_md5.h http_digest.h \
http_negotiate.h inet_pton.h amigaos.h strtoofft.h strerror.h \ http_negotiate.h inet_pton.h amigaos.h strtoofft.h strerror.h \

View File

@ -90,7 +90,6 @@ Example set of cookies:
#include "urldata.h" #include "urldata.h"
#include "cookie.h" #include "cookie.h"
#include "strequal.h"
#include "strtok.h" #include "strtok.h"
#include "sendf.h" #include "sendf.h"
#include "slist.h" #include "slist.h"
@ -939,7 +938,7 @@ struct CookieInfo *Curl_cookie_init(struct Curl_easy *data,
} }
c->running = FALSE; /* this is not running, this is init */ c->running = FALSE; /* this is not running, this is init */
if(file && strequal(file, "-")) { if(file && !strcmp(file, "-")) {
fp = stdin; fp = stdin;
fromfile=FALSE; fromfile=FALSE;
} }
@ -1310,7 +1309,7 @@ static int cookie_output(struct CookieInfo *c, const char *dumphere)
/* at first, remove expired cookies */ /* at first, remove expired cookies */
remove_expired(c); remove_expired(c);
if(strequal("-", dumphere)) { if(!strcmp("-", dumphere)) {
/* use stdout */ /* use stdout */
out = stdout; out = stdout;
use_stdout=TRUE; use_stdout=TRUE;

View File

@ -42,7 +42,6 @@
#include "curl_sasl.h" #include "curl_sasl.h"
#include "warnless.h" #include "warnless.h"
#include "strtok.h" #include "strtok.h"
#include "strequal.h"
#include "rawstr.h" #include "rawstr.h"
#include "sendf.h" #include "sendf.h"
#include "non-ascii.h" /* included for Curl_convert_... prototypes */ #include "non-ascii.h" /* included for Curl_convert_... prototypes */
@ -159,7 +158,7 @@ CURLcode Curl_sasl_parse_url_auth_option(struct SASL *sasl,
sasl->prefmech = SASL_AUTH_NONE; sasl->prefmech = SASL_AUTH_NONE;
} }
if(strnequal(value, "*", len)) if(!strncmp(value, "*", len))
sasl->prefmech = SASL_AUTH_DEFAULT; sasl->prefmech = SASL_AUTH_DEFAULT;
else { else {
mechbit = Curl_sasl_decode_mech(value, len, &mechlen); mechbit = Curl_sasl_decode_mech(value, len, &mechlen);

View File

@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -34,8 +34,8 @@
functions while they still are offered publicly. They will be made library- functions while they still are offered publicly. They will be made library-
private one day */ private one day */
#include "strequal.h" #include "strcase.h"
/* "strequal.h" provides the strequal protos */ /* "strcase.h" provides the strcasecompare protos */
#include "strtoofft.h" #include "strtoofft.h"
/* "strtoofft.h" provides this function: curlx_strtoofft(), returns a /* "strtoofft.h" provides this function: curlx_strtoofft(), returns a
@ -73,8 +73,8 @@
*/ */
#define curlx_getenv curl_getenv #define curlx_getenv curl_getenv
#define curlx_strequal curl_strequal #define curlx_strcasecompare curl_strcasecompare
#define curlx_strnequal curl_strnequal #define curlx_strncasecompare curl_strncasecompare
#define curlx_raw_equal Curl_raw_equal #define curlx_raw_equal Curl_raw_equal
#define curlx_mvsnprintf curl_mvsnprintf #define curlx_mvsnprintf curl_mvsnprintf
#define curlx_msnprintf curl_msnprintf #define curlx_msnprintf curl_msnprintf

View File

@ -54,7 +54,6 @@
#include "sendf.h" #include "sendf.h"
#include "escape.h" #include "escape.h"
#include "progress.h" #include "progress.h"
#include "strequal.h"
#include "dict.h" #include "dict.h"
#include "rawstr.h" #include "rawstr.h"
#include "curl_memory.h" #include "curl_memory.h"

View File

@ -50,7 +50,6 @@
#include <sys/param.h> #include <sys/param.h>
#endif #endif
#include "strequal.h"
#include "urldata.h" #include "urldata.h"
#include <curl/curl.h> #include <curl/curl.h>
#include "transfer.h" #include "transfer.h"

View File

@ -33,7 +33,7 @@
#include "urldata.h" /* for struct Curl_easy */ #include "urldata.h" /* for struct Curl_easy */
#include "formdata.h" #include "formdata.h"
#include "vtls/vtls.h" #include "vtls/vtls.h"
#include "strequal.h" #include "strcase.h"
#include "sendf.h" #include "sendf.h"
#include "strdup.h" #include "strdup.h"
/* The last 3 #include files should be in this order */ /* The last 3 #include files should be in this order */
@ -201,9 +201,9 @@ static const char *ContentTypeForFilename(const char *filename,
if(filename) { /* in case a NULL was passed in */ if(filename) { /* in case a NULL was passed in */
for(i=0; i<sizeof(ctts)/sizeof(ctts[0]); i++) { for(i=0; i<sizeof(ctts)/sizeof(ctts[0]); i++) {
if(strlen(filename) >= strlen(ctts[i].extension)) { if(strlen(filename) >= strlen(ctts[i].extension)) {
if(strequal(filename + if(strcasecompare(filename +
strlen(filename) - strlen(ctts[i].extension), strlen(filename) - strlen(ctts[i].extension),
ctts[i].extension)) { ctts[i].extension)) {
contenttype = ctts[i].type; contenttype = ctts[i].type;
break; break;
} }
@ -878,7 +878,7 @@ static CURLcode AddFormData(struct FormData **formp,
else { else {
/* Since this is a file to be uploaded here, add the size of the actual /* Since this is a file to be uploaded here, add the size of the actual
file */ file */
if(!strequal("-", newform->line)) { if(strcmp("-", newform->line)) {
struct_stat file; struct_stat file;
if(!stat(newform->line, &file) && !S_ISDIR(file.st_mode)) if(!stat(newform->line, &file) && !S_ISDIR(file.st_mode))
*size += filesize(newform->line, file); *size += filesize(newform->line, file);
@ -1305,7 +1305,7 @@ CURLcode Curl_getformdata(struct Curl_easy *data,
/* we should include the contents from the specified file */ /* we should include the contents from the specified file */
FILE *fileread; FILE *fileread;
fileread = strequal("-", file->contents)? fileread = !strcmp("-", file->contents)?
stdin:fopen(file->contents, "rb"); /* binary read for win32 */ stdin:fopen(file->contents, "rb"); /* binary read for win32 */
/* /*

View File

@ -61,7 +61,7 @@
#include "ftplistparser.h" #include "ftplistparser.h"
#include "curl_sec.h" #include "curl_sec.h"
#include "strtoofft.h" #include "strtoofft.h"
#include "strequal.h" #include "strcase.h"
#include "vtls/vtls.h" #include "vtls/vtls.h"
#include "connect.h" #include "connect.h"
#include "strerror.h" #include "strerror.h"
@ -2999,7 +2999,7 @@ static CURLcode ftp_statemach_act(struct connectdata *conn)
/* Check for special servers here. */ /* Check for special servers here. */
if(strequal(os, "OS/400")) { if(strcasecompare(os, "OS/400")) {
/* Force OS400 name format 1. */ /* Force OS400 name format 1. */
result = Curl_pp_sendf(&ftpc->pp, "%s", "SITE NAMEFMT 1"); result = Curl_pp_sendf(&ftpc->pp, "%s", "SITE NAMEFMT 1");
if(result) { if(result) {
@ -4320,7 +4320,7 @@ CURLcode ftp_parse_url_path(struct connectdata *conn)
return CURLE_OUT_OF_MEMORY; return CURLE_OUT_OF_MEMORY;
/* we have a special case for listing the root dir only */ /* we have a special case for listing the root dir only */
if(strequal(path_to_use, "/")) { if(!strcmp(path_to_use, "/")) {
cur_pos++; /* make it point to the zero byte */ cur_pos++; /* make it point to the zero byte */
ftpc->dirs[0] = strdup("/"); ftpc->dirs[0] = strdup("/");
ftpc->dirdepth++; ftpc->dirdepth++;

View File

@ -30,7 +30,6 @@
#include "sendf.h" #include "sendf.h"
#include "progress.h" #include "progress.h"
#include "strequal.h"
#include "gopher.h" #include "gopher.h"
#include "rawstr.h" #include "rawstr.h"
#include "select.h" #include "select.h"

View File

@ -53,7 +53,6 @@
#include "progress.h" #include "progress.h"
#include "curl_base64.h" #include "curl_base64.h"
#include "cookie.h" #include "cookie.h"
#include "strequal.h"
#include "vauth/vauth.h" #include "vauth/vauth.h"
#include "vtls/vtls.h" #include "vtls/vtls.h"
#include "http_digest.h" #include "http_digest.h"

View File

@ -51,7 +51,7 @@
#endif #endif
#include "inet_ntop.h" #include "inet_ntop.h"
#include "strequal.h" #include "strcase.h"
#include "if2ip.h" #include "if2ip.h"
/* The last 3 #include files should be in this order */ /* The last 3 #include files should be in this order */
#include "curl_printf.h" #include "curl_printf.h"
@ -102,7 +102,7 @@ bool Curl_if_is_interface_name(const char *interf)
if(getifaddrs(&head) >= 0) { if(getifaddrs(&head) >= 0) {
for(iface=head; iface != NULL; iface=iface->ifa_next) { for(iface=head; iface != NULL; iface=iface->ifa_next) {
if(curl_strequal(iface->ifa_name, interf)) { if(strcasecompare(iface->ifa_name, interf)) {
result = TRUE; result = TRUE;
break; break;
} }
@ -132,7 +132,7 @@ if2ip_result_t Curl_if2ip(int af, unsigned int remote_scope,
for(iface = head; iface != NULL; iface=iface->ifa_next) { for(iface = head; iface != NULL; iface=iface->ifa_next) {
if(iface->ifa_addr != NULL) { if(iface->ifa_addr != NULL) {
if(iface->ifa_addr->sa_family == af) { if(iface->ifa_addr->sa_family == af) {
if(curl_strequal(iface->ifa_name, interf)) { if(strcasecompare(iface->ifa_name, interf)) {
void *addr; void *addr;
char *ip; char *ip;
char scope[12] = ""; char scope[12] = "";
@ -180,7 +180,7 @@ if2ip_result_t Curl_if2ip(int af, unsigned int remote_scope,
} }
} }
else if((res == IF2IP_NOT_FOUND) && else if((res == IF2IP_NOT_FOUND) &&
curl_strequal(iface->ifa_name, interf)) { strcasecompare(iface->ifa_name, interf)) {
res = IF2IP_AF_NOT_SUPPORTED; res = IF2IP_AF_NOT_SUPPORTED;
} }
} }

View File

@ -68,9 +68,8 @@
#include "http.h" /* for HTTP proxy tunnel stuff */ #include "http.h" /* for HTTP proxy tunnel stuff */
#include "socks.h" #include "socks.h"
#include "imap.h" #include "imap.h"
#include "strtoofft.h" #include "strtoofft.h"
#include "strequal.h" #include "strcase.h"
#include "vtls/vtls.h" #include "vtls/vtls.h"
#include "connect.h" #include "connect.h"
#include "strerror.h" #include "strerror.h"
@ -1935,7 +1934,7 @@ static CURLcode imap_parse_url_options(struct connectdata *conn)
while(*ptr && *ptr != ';') while(*ptr && *ptr != ';')
ptr++; ptr++;
if(strnequal(key, "AUTH=", 5)) if(strncasecompare(key, "AUTH=", 5))
result = Curl_sasl_parse_url_auth_option(&imapc->sasl, result = Curl_sasl_parse_url_auth_option(&imapc->sasl,
value, ptr - value); value, ptr - value);
else else

View File

@ -28,8 +28,6 @@
#include <curl/curl.h> #include <curl/curl.h>
#include "netrc.h" #include "netrc.h"
#include "strequal.h"
#include "strtok.h" #include "strtok.h"
#include "rawstr.h" #include "rawstr.h"

View File

@ -70,9 +70,8 @@
#include "http.h" /* for HTTP proxy tunnel stuff */ #include "http.h" /* for HTTP proxy tunnel stuff */
#include "socks.h" #include "socks.h"
#include "pop3.h" #include "pop3.h"
#include "strtoofft.h" #include "strtoofft.h"
#include "strequal.h" #include "strcase.h"
#include "vtls/vtls.h" #include "vtls/vtls.h"
#include "connect.h" #include "connect.h"
#include "strerror.h" #include "strerror.h"
@ -1412,11 +1411,11 @@ static CURLcode pop3_parse_url_options(struct connectdata *conn)
while(*ptr && *ptr != ';') while(*ptr && *ptr != ';')
ptr++; ptr++;
if(strnequal(key, "AUTH=", 5)) { if(strncasecompare(key, "AUTH=", 5)) {
result = Curl_sasl_parse_url_auth_option(&pop3c->sasl, result = Curl_sasl_parse_url_auth_option(&pop3c->sasl,
value, ptr - value); value, ptr - value);
if(result && strnequal(value, "+APOP", ptr - value)) { if(result && strncasecompare(value, "+APOP", ptr - value)) {
pop3c->preftype = POP3_TYPE_APOP; pop3c->preftype = POP3_TYPE_APOP;
pop3c->sasl.prefmech = SASL_AUTH_NONE; pop3c->sasl.prefmech = SASL_AUTH_NONE;
result = CURLE_OK; result = CURLE_OK;

View File

@ -69,9 +69,8 @@
#include "http.h" /* for HTTP proxy tunnel stuff */ #include "http.h" /* for HTTP proxy tunnel stuff */
#include "socks.h" #include "socks.h"
#include "smtp.h" #include "smtp.h"
#include "strtoofft.h" #include "strtoofft.h"
#include "strequal.h" #include "strcase.h"
#include "vtls/vtls.h" #include "vtls/vtls.h"
#include "connect.h" #include "connect.h"
#include "strerror.h" #include "strerror.h"
@ -1512,7 +1511,7 @@ static CURLcode smtp_parse_url_options(struct connectdata *conn)
while(*ptr && *ptr != ';') while(*ptr && *ptr != ';')
ptr++; ptr++;
if(strnequal(key, "AUTH=", 5)) if(strncasecompare(key, "AUTH=", 5))
result = Curl_sasl_parse_url_auth_option(&smtpc->sasl, result = Curl_sasl_parse_url_auth_option(&smtpc->sasl,
value, ptr - value); value, ptr - value);
else else

View File

@ -33,7 +33,6 @@
#include "urldata.h" #include "urldata.h"
#include "sendf.h" #include "sendf.h"
#include "strequal.h"
#include "select.h" #include "select.h"
#include "connect.h" #include "connect.h"
#include "timeval.h" #include "timeval.h"

View File

@ -1233,7 +1233,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
sshc->acceptfail = TRUE; sshc->acceptfail = TRUE;
} }
if(curl_strequal("pwd", cmd)) { if(strcasecompare("pwd", cmd)) {
/* output debug output if that is requested */ /* output debug output if that is requested */
char *tmp = aprintf("257 \"%s\" is current directory.\n", char *tmp = aprintf("257 \"%s\" is current directory.\n",
sftp_scp->path); sftp_scp->path);

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -26,12 +26,12 @@
#include <strings.h> #include <strings.h>
#endif #endif
#include "strequal.h" #include "strcase.h"
/* /*
* @unittest: 1301 * @unittest: 1301
*/ */
int curl_strequal(const char *first, const char *second) int curl_strcasecompare(const char *first, const char *second)
{ {
#if defined(HAVE_STRCASECMP) #if defined(HAVE_STRCASECMP)
return !(strcasecmp)(first, second); return !(strcasecmp)(first, second);
@ -54,7 +54,7 @@ int curl_strequal(const char *first, const char *second)
/* /*
* @unittest: 1301 * @unittest: 1301
*/ */
int curl_strnequal(const char *first, const char *second, size_t max) int curl_strncasecompare(const char *first, const char *second, size_t max)
{ {
#if defined(HAVE_STRNCASECMP) #if defined(HAVE_STRNCASECMP)
return !strncasecmp(first, second, max); return !strncasecmp(first, second, max);

View File

@ -1,5 +1,5 @@
#ifndef HEADER_CURL_STREQUAL_H #ifndef HEADER_CURL_STRCASE_H
#define HEADER_CURL_STREQUAL_H #define HEADER_CURL_STRCASE_H
/*************************************************************************** /***************************************************************************
* _ _ ____ _ * _ _ ____ _
* Project ___| | | | _ \| | * Project ___| | | | _ \| |
@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -24,8 +24,11 @@
#include <curl/curl.h> #include <curl/curl.h>
#define strequal(a,b) curl_strequal(a,b) #define strcasecompare(a,b) curl_strcasecompare(a,b)
#define strnequal(a,b,c) curl_strnequal(a,b,c) #define strncasecompare(a,b,c) curl_strncasecompare(a,b,c)
#endif /* HEADER_CURL_STREQUAL_H */ int curl_strcasecompare(const char *first, const char *second);
int curl_strncasecompare(const char *first, const char *second, size_t max);
#endif /* HEADER_CURL_STRCASE_H */

View File

@ -58,7 +58,6 @@
#include "arpa_telnet.h" #include "arpa_telnet.h"
#include "select.h" #include "select.h"
#include "strequal.h"
#include "rawstr.h" #include "rawstr.h"
#include "warnless.h" #include "warnless.h"

View File

@ -21,9 +21,7 @@
***************************************************************************/ ***************************************************************************/
#include "curl_setup.h" #include "curl_setup.h"
#include "strtoofft.h" #include "strtoofft.h"
#include "strequal.h"
#include "rawstr.h" #include "rawstr.h"
#ifdef HAVE_NETINET_IN_H #ifdef HAVE_NETINET_IN_H

View File

@ -79,7 +79,7 @@ bool curl_win32_idn_to_ascii(const char *in, char **out);
#include "sendf.h" #include "sendf.h"
#include "progress.h" #include "progress.h"
#include "cookie.h" #include "cookie.h"
#include "strequal.h" #include "strcase.h"
#include "strerror.h" #include "strerror.h"
#include "escape.h" #include "escape.h"
#include "strtok.h" #include "strtok.h"
@ -2610,7 +2610,7 @@ CURLcode Curl_setopt(struct Curl_easy *data, CURLoption option,
data->set.ssl.authtype = CURL_TLSAUTH_SRP; /* default to SRP */ data->set.ssl.authtype = CURL_TLSAUTH_SRP; /* default to SRP */
break; break;
case CURLOPT_TLSAUTH_TYPE: case CURLOPT_TLSAUTH_TYPE:
if(strnequal((char *)va_arg(param, char *), "SRP", strlen("SRP"))) if(strncasecompare((char *)va_arg(param, char *), "SRP", strlen("SRP")))
data->set.ssl.authtype = CURL_TLSAUTH_SRP; data->set.ssl.authtype = CURL_TLSAUTH_SRP;
else else
data->set.ssl.authtype = CURL_TLSAUTH_NONE; data->set.ssl.authtype = CURL_TLSAUTH_NONE;
@ -5422,7 +5422,8 @@ static CURLcode parse_connect_to_string(struct Curl_easy *data,
if(!hostname_to_match) if(!hostname_to_match)
return CURLE_OUT_OF_MEMORY; return CURLE_OUT_OF_MEMORY;
hostname_to_match_len = strlen(hostname_to_match); hostname_to_match_len = strlen(hostname_to_match);
host_match = curl_strnequal(ptr, hostname_to_match, hostname_to_match_len); host_match = strncasecompare(ptr, hostname_to_match,
hostname_to_match_len);
free(hostname_to_match); free(hostname_to_match);
ptr += hostname_to_match_len; ptr += hostname_to_match_len;

View File

@ -33,7 +33,6 @@
#include "curl_md5.h" #include "curl_md5.h"
#include "warnless.h" #include "warnless.h"
#include "strtok.h" #include "strtok.h"
#include "strequal.h"
#include "rawstr.h" #include "rawstr.h"
#include "sendf.h" #include "sendf.h"
#include "curl_printf.h" #include "curl_printf.h"

View File

@ -46,7 +46,6 @@
#include "openssl.h" #include "openssl.h"
#include "connect.h" #include "connect.h"
#include "slist.h" #include "slist.h"
#include "strequal.h"
#include "select.h" #include "select.h"
#include "vtls.h" #include "vtls.h"
#include "rawstr.h" #include "rawstr.h"

View File

@ -178,7 +178,7 @@ static const curl_OID * searchOID(const char * oid)
Return the table entry pointer or NULL if not found. */ Return the table entry pointer or NULL if not found. */
for(op = OIDtable; op->numoid; op++) for(op = OIDtable; op->numoid; op++)
if(!strcmp(op->numoid, oid) || curl_strequal(op->textoid, oid)) if(!strcmp(op->numoid, oid) || strcasecompare(op->textoid, oid))
return op; return op;
return (const curl_OID *) NULL; return (const curl_OID *) NULL;
@ -817,7 +817,7 @@ static void do_pubkey(struct Curl_easy * data, int certnum,
/* Get the public key (single element). */ /* Get the public key (single element). */
Curl_getASN1Element(&pk, pubkey->beg + 1, pubkey->end); Curl_getASN1Element(&pk, pubkey->beg + 1, pubkey->end);
if(curl_strequal(algo, "rsaEncryption")) { if(strcasecompare(algo, "rsaEncryption")) {
p = Curl_getASN1Element(&elem, pk.beg, pk.end); p = Curl_getASN1Element(&elem, pk.beg, pk.end);
/* Compute key length. */ /* Compute key length. */
for(q = elem.beg; !*q && q < elem.end; q++) for(q = elem.beg; !*q && q < elem.end; q++)
@ -842,7 +842,7 @@ static void do_pubkey(struct Curl_easy * data, int certnum,
Curl_getASN1Element(&elem, p, pk.end); Curl_getASN1Element(&elem, p, pk.end);
do_pubkey_field(data, certnum, "rsa(e)", &elem); do_pubkey_field(data, certnum, "rsa(e)", &elem);
} }
else if(curl_strequal(algo, "dsa")) { else if(strcasecompare(algo, "dsa")) {
p = Curl_getASN1Element(&elem, param->beg, param->end); p = Curl_getASN1Element(&elem, param->beg, param->end);
do_pubkey_field(data, certnum, "dsa(p)", &elem); do_pubkey_field(data, certnum, "dsa(p)", &elem);
p = Curl_getASN1Element(&elem, p, param->end); p = Curl_getASN1Element(&elem, p, param->end);
@ -851,7 +851,7 @@ static void do_pubkey(struct Curl_easy * data, int certnum,
do_pubkey_field(data, certnum, "dsa(g)", &elem); do_pubkey_field(data, certnum, "dsa(g)", &elem);
do_pubkey_field(data, certnum, "dsa(pub_key)", &pk); do_pubkey_field(data, certnum, "dsa(pub_key)", &pk);
} }
else if(curl_strequal(algo, "dhpublicnumber")) { else if(strcasecompare(algo, "dhpublicnumber")) {
p = Curl_getASN1Element(&elem, param->beg, param->end); p = Curl_getASN1Element(&elem, param->beg, param->end);
do_pubkey_field(data, certnum, "dh(p)", &elem); do_pubkey_field(data, certnum, "dh(p)", &elem);
Curl_getASN1Element(&elem, param->beg, param->end); Curl_getASN1Element(&elem, param->beg, param->end);
@ -859,7 +859,7 @@ static void do_pubkey(struct Curl_easy * data, int certnum,
do_pubkey_field(data, certnum, "dh(pub_key)", &pk); do_pubkey_field(data, certnum, "dh(pub_key)", &pk);
} }
#if 0 /* Patent-encumbered. */ #if 0 /* Patent-encumbered. */
else if(curl_strequal(algo, "ecPublicKey")) { else if(strcasecompare(algo, "ecPublicKey")) {
/* Left TODO. */ /* Left TODO. */
} }
#endif #endif

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -73,9 +73,9 @@ int tool_debug_cb(CURL *handle, curl_infotype type,
if(!config->trace_stream) { if(!config->trace_stream) {
/* open for append */ /* open for append */
if(curlx_strequal("-", config->trace_dump)) if(!strcmp("-", config->trace_dump))
config->trace_stream = stdout; config->trace_stream = stdout;
else if(curlx_strequal("%", config->trace_dump)) else if(!strcmp("%", config->trace_dump))
/* Ok, this is somewhat hackish but we do it undocumented for now */ /* Ok, this is somewhat hackish but we do it undocumented for now */
config->trace_stream = config->errors; /* aka stderr */ config->trace_stream = config->errors; /* aka stderr */
else { else {

View File

@ -416,7 +416,7 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
} }
for(j = 0; j < sizeof(aliases)/sizeof(aliases[0]); j++) { for(j = 0; j < sizeof(aliases)/sizeof(aliases[0]); j++) {
if(curlx_strnequal(aliases[j].lname, word, fnam)) { if(curlx_strncasecompare(aliases[j].lname, word, fnam)) {
longopt = TRUE; longopt = TRUE;
numhits++; numhits++;
if(curlx_raw_equal(aliases[j].lname, word)) { if(curlx_raw_equal(aliases[j].lname, word)) {
@ -1109,7 +1109,7 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
break; break;
case 'C': case 'C':
/* This makes us continue an ftp transfer at given position */ /* This makes us continue an ftp transfer at given position */
if(!curlx_strequal(nextarg, "-")) { if(strcmp(nextarg, "-")) {
err = str2offset(&config->resume_from, nextarg); err = str2offset(&config->resume_from, nextarg);
if(err) if(err)
return err; return err;
@ -1153,7 +1153,7 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
} }
if('@' == is_file) { if('@' == is_file) {
/* a '@' letter, it means that a file name or - (stdin) follows */ /* a '@' letter, it means that a file name or - (stdin) follows */
if(curlx_strequal("-", p)) { if(!strcmp("-", p)) {
file = stdin; file = stdin;
set_binmode(stdin); set_binmode(stdin);
} }
@ -1218,7 +1218,7 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
or - (stdin) follows */ or - (stdin) follows */
nextarg++; /* pass the @ */ nextarg++; /* pass the @ */
if(curlx_strequal("-", nextarg)) { if(!strcmp("-", nextarg)) {
file = stdin; file = stdin;
if(subletter == 'b') /* forced data-binary */ if(subletter == 'b') /* forced data-binary */
set_binmode(stdin); set_binmode(stdin);
@ -1377,7 +1377,7 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
case 'm': /* TLS authentication type */ case 'm': /* TLS authentication type */
if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP) { if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP) {
GetStr(&config->tls_authtype, nextarg); GetStr(&config->tls_authtype, nextarg);
if(!strequal(config->tls_authtype, "SRP")) if(!strcasecompare(config->tls_authtype, "SRP"))
return PARAM_LIBCURL_DOESNT_SUPPORT; /* only support TLS-SRP */ return PARAM_LIBCURL_DOESNT_SUPPORT; /* only support TLS-SRP */
} }
else else
@ -1770,7 +1770,7 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
FILE *file; FILE *file;
const char *fname; const char *fname;
nextarg++; /* pass the @ */ nextarg++; /* pass the @ */
if(curlx_strequal("-", nextarg)) { if(!strcmp("-", nextarg)) {
fname = "<stdin>"; fname = "<stdin>";
file = stdin; file = stdin;
} }
@ -1880,7 +1880,7 @@ ParameterError parse_args(struct GlobalConfig *config, int argc,
bool passarg; bool passarg;
char *flag = argv[i]; char *flag = argv[i];
if(curlx_strequal("--", argv[i])) if(!strcmp("--", argv[i]))
/* This indicates the end of the flags and thus enables the /* This indicates the end of the flags and thus enables the
following (URL) argument to start with -. */ following (URL) argument to start with -. */
stillflags = FALSE; stillflags = FALSE;
@ -1936,7 +1936,7 @@ ParameterError parse_args(struct GlobalConfig *config, int argc,
result != PARAM_ENGINES_REQUESTED) { result != PARAM_ENGINES_REQUESTED) {
const char *reason = param2text(result); const char *reason = param2text(result);
if(orig_opt && !curlx_strequal(":", orig_opt)) if(orig_opt && strcmp(":", orig_opt))
helpf(config->errors, "option %s: %s\n", orig_opt, reason); helpf(config->errors, "option %s: %s\n", orig_opt, reason);
else else
helpf(config->errors, "%s\n", reason); helpf(config->errors, "%s\n", reason);

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -104,11 +104,11 @@ void customrequest_helper(struct OperationConfig *config, HttpReq req,
if(!method) if(!method)
; ;
else if(curl_strequal(method, dflt[req])) { else if(curlx_strcasecompare(method, dflt[req])) {
notef(config->global, "Unnecessary use of -X or --request, %s is already " notef(config->global, "Unnecessary use of -X or --request, %s is already "
"inferred.\n", dflt[req]); "inferred.\n", dflt[req]);
} }
else if(curl_strequal(method, "head")) { else if(curlx_strcasecompare(method, "head")) {
warnf(config->global, warnf(config->global,
"Setting custom HTTP method to HEAD with -X/--request may not work " "Setting custom HTTP method to HEAD with -X/--request may not work "
"the way you want. Consider using -I/--head instead.\n"); "the way you want. Consider using -I/--head instead.\n");

View File

@ -321,7 +321,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
/* Single header file for all URLs */ /* Single header file for all URLs */
if(config->headerfile) { if(config->headerfile) {
/* open file for output: */ /* open file for output: */
if(!curlx_strequal(config->headerfile, "-")) { if(strcmp(config->headerfile, "-")) {
FILE *newfile = fopen(config->headerfile, "wb"); FILE *newfile = fopen(config->headerfile, "wb");
if(!newfile) { if(!newfile) {
warnf(config->global, "Failed to open %s\n", config->headerfile); warnf(config->global, "Failed to open %s\n", config->headerfile);
@ -464,7 +464,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
urlnum = 1; /* without globbing, this is a single URL */ urlnum = 1; /* without globbing, this is a single URL */
/* if multiple files extracted to stdout, insert separators! */ /* if multiple files extracted to stdout, insert separators! */
separator= ((!outfiles || curlx_strequal(outfiles, "-")) && urlnum > 1); separator= ((!outfiles || !strcmp(outfiles, "-")) && urlnum > 1);
/* Here's looping around each globbed URL */ /* Here's looping around each globbed URL */
for(li = 0 ; li < urlnum; li++) { for(li = 0 ; li < urlnum; li++) {
@ -534,7 +534,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
} }
if(((urlnode->flags&GETOUT_USEREMOTE) || if(((urlnode->flags&GETOUT_USEREMOTE) ||
(outfile && !curlx_strequal("-", outfile))) && (outfile && strcmp("-", outfile))) &&
(metalink || !config->use_metalink)) { (metalink || !config->use_metalink)) {
/* /*
@ -715,7 +715,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
DEBUGASSERT(infd == STDIN_FILENO); DEBUGASSERT(infd == STDIN_FILENO);
set_binmode(stdin); set_binmode(stdin);
if(curlx_strequal(uploadfile, ".")) { if(!strcmp(uploadfile, ".")) {
if(curlx_nonblock((curl_socket_t)infd, TRUE) < 0) if(curlx_nonblock((curl_socket_t)infd, TRUE) < 0)
warnf(config->global, warnf(config->global,
"fcntl failed on fd=%d: %s\n", infd, strerror(errno)); "fcntl failed on fd=%d: %s\n", infd, strerror(errno));
@ -1559,7 +1559,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
char *effective_url = NULL; char *effective_url = NULL;
curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &effective_url); curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &effective_url);
if(effective_url && if(effective_url &&
curlx_strnequal(effective_url, "http", 4)) { curlx_strncasecompare(effective_url, "http", 4)) {
/* This was HTTP(S) */ /* This was HTTP(S) */
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response); curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response);
if(response != 200 && response != 206) { if(response != 200 && response != 206) {
@ -1842,8 +1842,8 @@ CURLcode operate(struct GlobalConfig *config, int argc, argv_item_t argv[])
/* Parse .curlrc if necessary */ /* Parse .curlrc if necessary */
if((argc == 1) || if((argc == 1) ||
(!curlx_strequal(argv[1], "-q") && (!curlx_strcasecompare(argv[1], "-q") &&
!curlx_strequal(argv[1], "--disable"))) { !curlx_strcasecompare(argv[1], "--disable"))) {
parseconfig(NULL, config); /* ignore possible failure */ parseconfig(NULL, config); /* ignore possible failure */
/* If we had no arguments then make sure a url was specified in .curlrc */ /* If we had no arguments then make sure a url was specified in .curlrc */

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2014, 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -63,8 +63,8 @@ bool output_expected(const char *url, const char *uploadfile)
bool stdin_upload(const char *uploadfile) bool stdin_upload(const char *uploadfile)
{ {
return (curlx_strequal(uploadfile, "-") || return (!strcmp(uploadfile, "-") ||
curlx_strequal(uploadfile, ".")) ? TRUE : FALSE; !strcmp(uploadfile, ".")) ? TRUE : FALSE;
} }
/* /*

View File

@ -126,7 +126,7 @@ void ourWriteOut(CURL *curl, struct OutStruct *outs, const char *writeinfo)
keepit = *end; keepit = *end;
*end = 0; /* zero terminate */ *end = 0; /* zero terminate */
for(i = 0; replacements[i].name; i++) { for(i = 0; replacements[i].name; i++) {
if(curl_strequal(ptr, replacements[i].name)) { if(curl_strcasecompare(ptr, replacements[i].name)) {
match = TRUE; match = TRUE;
switch(replacements[i].id) { switch(replacements[i].id) {
case VAR_EFFECTIVE_URL: case VAR_EFFECTIVE_URL:

View File

@ -25,7 +25,7 @@
*/ */
#include "test.h" #include "test.h"
#include "strequal.h" #include "strcase.h"
#include "memdebug.h" #include "memdebug.h"
static CURLcode send_request(CURL *curl, const char *url, int seq, static CURLcode send_request(CURL *curl, const char *url, int seq,
@ -72,11 +72,11 @@ static long parse_auth_name(const char *arg)
{ {
if(!arg) if(!arg)
return CURLAUTH_NONE; return CURLAUTH_NONE;
if(strequal(arg, "basic")) if(strcasecompare(arg, "basic"))
return CURLAUTH_BASIC; return CURLAUTH_BASIC;
if(strequal(arg, "digest")) if(strcasecompare(arg, "digest"))
return CURLAUTH_DIGEST; return CURLAUTH_DIGEST;
if(strequal(arg, "ntlm")) if(strcasecompare(arg, "ntlm"))
return CURLAUTH_NTLM; return CURLAUTH_NTLM;
return CURLAUTH_NONE; return CURLAUTH_NONE;
} }

View File

@ -3,7 +3,7 @@ noinst_PROGRAMS = getpart resolve rtspd sockfilt sws tftpd fake_ntlm
CURLX_SRCS = \ CURLX_SRCS = \
../../lib/mprintf.c \ ../../lib/mprintf.c \
../../lib/nonblock.c \ ../../lib/nonblock.c \
../../lib/strequal.c \ ../../lib/strcase.c \
../../lib/strtoofft.c \ ../../lib/strtoofft.c \
../../lib/timeval.c \ ../../lib/timeval.c \
../../lib/warnless.c ../../lib/warnless.c
@ -11,7 +11,7 @@ CURLX_SRCS = \
CURLX_HDRS = \ CURLX_HDRS = \
../../lib/curlx.h \ ../../lib/curlx.h \
../../lib/nonblock.h \ ../../lib/nonblock.h \
../../lib/strequal.h \ ../../lib/strcase.h \
../../lib/strtoofft.h \ ../../lib/strtoofft.h \
../../lib/timeval.h \ ../../lib/timeval.h \
../../lib/warnless.h ../../lib/warnless.h

View File

@ -590,7 +590,7 @@ static int ProcessRequest(struct httprequest *req)
if(got_exit_signal) if(got_exit_signal)
return 1; /* done */ return 1; /* done */
if((req->cl==0) && curlx_strnequal("Content-Length:", line, 15)) { if((req->cl==0) && curlx_strncasecompare("Content-Length:", line, 15)) {
/* If we don't ignore content-length, we read it and we read the whole /* If we don't ignore content-length, we read it and we read the whole
request including the body before we return. If we've been told to request including the body before we return. If we've been told to
ignore the content-length, we will return as soon as all headers ignore the content-length, we will return as soon as all headers
@ -616,8 +616,8 @@ static int ProcessRequest(struct httprequest *req)
logmsg("... but will abort after %zu bytes", req->cl); logmsg("... but will abort after %zu bytes", req->cl);
break; break;
} }
else if(curlx_strnequal("Transfer-Encoding: chunked", line, else if(curlx_strncasecompare("Transfer-Encoding: chunked", line,
strlen("Transfer-Encoding: chunked"))) { strlen("Transfer-Encoding: chunked"))) {
/* chunked data coming in */ /* chunked data coming in */
chunked = TRUE; chunked = TRUE;
} }

View File

@ -697,7 +697,7 @@ static int ProcessRequest(struct httprequest *req)
if(got_exit_signal) if(got_exit_signal)
return 1; /* done */ return 1; /* done */
if((req->cl==0) && curlx_strnequal("Content-Length:", line, 15)) { if((req->cl==0) && curlx_strncasecompare("Content-Length:", line, 15)) {
/* If we don't ignore content-length, we read it and we read the whole /* If we don't ignore content-length, we read it and we read the whole
request including the body before we return. If we've been told to request including the body before we return. If we've been told to
ignore the content-length, we will return as soon as all headers ignore the content-length, we will return as soon as all headers
@ -723,8 +723,8 @@ static int ProcessRequest(struct httprequest *req)
logmsg("... but will abort after %zu bytes", req->cl); logmsg("... but will abort after %zu bytes", req->cl);
break; break;
} }
else if(curlx_strnequal("Transfer-Encoding: chunked", line, else if(curlx_strncasecompare("Transfer-Encoding: chunked", line,
strlen("Transfer-Encoding: chunked"))) { strlen("Transfer-Encoding: chunked"))) {
/* chunked data coming in */ /* chunked data coming in */
chunked = TRUE; chunked = TRUE;
} }

View File

@ -21,7 +21,7 @@
***************************************************************************/ ***************************************************************************/
#include "curlcheck.h" #include "curlcheck.h"
#include "strequal.h" #include "strcase.h"
static CURLcode unit_setup(void) {return CURLE_OK;} static CURLcode unit_setup(void) {return CURLE_OK;}
static void unit_stop(void) {} static void unit_stop(void) {}
@ -30,25 +30,25 @@ UNITTEST_START
int rc; int rc;
rc = curl_strequal("iii", "III"); rc = curl_strcasecompare("iii", "III");
fail_unless(rc != 0, "return code should be zero"); fail_unless(rc != 0, "return code should be zero");
rc = curl_strequal("iiia", "III"); rc = curl_strcasecompare("iiia", "III");
fail_unless(rc == 0, "return code should be zero"); fail_unless(rc == 0, "return code should be zero");
rc = curl_strequal("iii", "IIIa"); rc = curl_strcasecompare("iii", "IIIa");
fail_unless(rc == 0, "return code should be zero"); fail_unless(rc == 0, "return code should be zero");
rc = curl_strequal("iiiA", "IIIa"); rc = curl_strcasecompare("iiiA", "IIIa");
fail_unless(rc != 0, "return code should be non-zero"); fail_unless(rc != 0, "return code should be non-zero");
rc = curl_strnequal("iii", "III", 3); rc = curl_strncasecompare("iii", "III", 3);
fail_unless(rc != 0, "return code should be non-zero"); fail_unless(rc != 0, "return code should be non-zero");
rc = curl_strnequal("iiiABC", "IIIcba", 3); rc = curl_strncasecompare("iiiABC", "IIIcba", 3);
fail_unless(rc != 0, "return code should be non-zero"); fail_unless(rc != 0, "return code should be non-zero");
rc = curl_strnequal("ii", "II", 3); rc = curl_strncasecompare("ii", "II", 3);
fail_unless(rc != 0, "return code should be non-zero"); fail_unless(rc != 0, "return code should be non-zero");
UNITTEST_STOP UNITTEST_STOP