1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-22 08:08:50 -05:00

metalink: simplify the hex parsing function

... and now it avoids using the libcurl toupper() function
This commit is contained in:
Daniel Stenberg 2016-11-02 00:08:36 +01:00
parent f9e51fb55d
commit 6b52b7eb2b

View File

@ -24,6 +24,7 @@
#ifdef USE_METALINK
#include <sys/stat.h>
#include <stdlib.h>
#ifdef HAVE_FCNTL_H
# include <fcntl.h>
@ -92,8 +93,6 @@ struct win32_crypto_hash {
# error "Can't compile METALINK support without a crypto library."
#endif
#include "strcase.h"
#define ENABLE_CURLX_PRINTF
/* use our own printf() functions */
#include "curlx.h"
@ -563,18 +562,13 @@ int Curl_digest_final(digest_context *context, unsigned char *result)
static unsigned char hex_to_uint(const char *s)
{
int v[2];
int i;
for(i = 0; i < 2; ++i) {
v[i] = Curl_raw_toupper(s[i]);
if('0' <= v[i] && v[i] <= '9') {
v[i] -= '0';
}
else if('A' <= v[i] && v[i] <= 'Z') {
v[i] -= 'A'-10;
}
}
return (unsigned char)((v[0] << 4) | v[1]);
char buf[3];
unsigned long val;
buf[0] = s[0];
buf[1] = s[1];
buf[2] = 0;
val = strtoul(buf, NULL, 16);
return (unsigned char)(val&0xff);
}
/*