diff options
author | Michael Brown <mcb30@ipxe.org> | 2021-07-01 16:32:46 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2021-07-01 16:32:46 +0100 |
commit | 2690f730961e335875cac5fd9cf870a94eaef11a (patch) | |
tree | a995bdb321936ffdeb50dc57dd5845abe02741c9 | |
parent | 4aa03758210d861dacb0531062576287ac76e353 (diff) | |
download | ipxe-2690f730961e335875cac5fd9cf870a94eaef11a.zip ipxe-2690f730961e335875cac5fd9cf870a94eaef11a.tar.gz ipxe-2690f730961e335875cac5fd9cf870a94eaef11a.tar.bz2 |
[uri] Make URI schemes case-insensitive
RFC 3986 section 3.1 defines URI schemes as case-insensitive (though
the canonical form is always lowercase).
Use strcasecmp() rather than strcmp() to allow for case insensitivity
in URI schemes.
Requested-by: Andreas Hammarskjöld <junior@2PintSoftware.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
-rw-r--r-- | src/core/open.c | 3 | ||||
-rw-r--r-- | src/net/tcp/httpconn.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/core/open.c b/src/core/open.c index c27d8a0..f9198c9 100644 --- a/src/core/open.c +++ b/src/core/open.c @@ -25,6 +25,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include <stdarg.h> #include <string.h> +#include <strings.h> #include <errno.h> #include <ipxe/xfer.h> #include <ipxe/uri.h> @@ -47,7 +48,7 @@ struct uri_opener * xfer_uri_opener ( const char *scheme ) { struct uri_opener *opener; for_each_table_entry ( opener, URI_OPENERS ) { - if ( strcmp ( scheme, opener->scheme ) == 0 ) + if ( strcasecmp ( scheme, opener->scheme ) == 0 ) return opener; } return NULL; diff --git a/src/net/tcp/httpconn.c b/src/net/tcp/httpconn.c index f9221b2..538c4dc 100644 --- a/src/net/tcp/httpconn.c +++ b/src/net/tcp/httpconn.c @@ -32,6 +32,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include <stdlib.h> #include <string.h> +#include <strings.h> #include <errno.h> #include <byteswap.h> #include <ipxe/tcpip.h> @@ -63,7 +64,7 @@ static struct http_scheme * http_scheme ( struct uri *uri ) { /* Identify scheme */ for_each_table_entry ( scheme, HTTP_SCHEMES ) { - if ( strcmp ( uri->scheme, scheme->name ) == 0 ) + if ( strcasecmp ( uri->scheme, scheme->name ) == 0 ) return scheme; } |