Attempt to fix www on arm
This commit is contained in:
parent
6f4769855e
commit
3fb8ecc934
2
deps/libb64-1.2/include/b64/cdecode.h
vendored
2
deps/libb64-1.2/include/b64/cdecode.h
vendored
@ -21,7 +21,7 @@ typedef struct
|
|||||||
|
|
||||||
void base64_init_decodestate(base64_decodestate* state_in);
|
void base64_init_decodestate(base64_decodestate* state_in);
|
||||||
|
|
||||||
int base64_decode_value(char value_in);
|
int base64_decode_value(signed char value_in);
|
||||||
|
|
||||||
int base64_decode_block(const char* code_in, const int length_in, char* plaintext_out, base64_decodestate* state_in);
|
int base64_decode_block(const char* code_in, const int length_in, char* plaintext_out, base64_decodestate* state_in);
|
||||||
|
|
||||||
|
4
deps/libb64-1.2/src/cdecode.c
vendored
4
deps/libb64-1.2/src/cdecode.c
vendored
@ -7,7 +7,7 @@ For details, see http://sourceforge.net/projects/libb64
|
|||||||
|
|
||||||
#include <b64/cdecode.h>
|
#include <b64/cdecode.h>
|
||||||
|
|
||||||
int base64_decode_value(char value_in)
|
int base64_decode_value(signed char value_in)
|
||||||
{
|
{
|
||||||
static const char decoding[] = {62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-2,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51};
|
static const char decoding[] = {62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-2,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51};
|
||||||
static const char decoding_size = sizeof(decoding);
|
static const char decoding_size = sizeof(decoding);
|
||||||
@ -26,7 +26,7 @@ int base64_decode_block(const char* code_in, const int length_in, char* plaintex
|
|||||||
{
|
{
|
||||||
const char* codechar = code_in;
|
const char* codechar = code_in;
|
||||||
char* plainchar = plaintext_out;
|
char* plainchar = plaintext_out;
|
||||||
char fragment;
|
signed char fragment;
|
||||||
|
|
||||||
*plainchar = state_in->plainchar;
|
*plainchar = state_in->plainchar;
|
||||||
|
|
||||||
|
15
src/www.c
15
src/www.c
@ -332,18 +332,22 @@ int www_403(char *header, char *footer, struct MHD_Connection * connection) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct user_record *www_auth_ok(struct MHD_Connection *connection, const char *url) {
|
struct user_record *www_auth_ok(struct MHD_Connection *connection, const char *url) {
|
||||||
char *user_password = MHD_lookup_connection_value(connection, MHD_HEADER_KIND, "Authorization");
|
char *ptr = MHD_lookup_connection_value(connection, MHD_HEADER_KIND, "Authorization");
|
||||||
|
char *user_password;
|
||||||
base64_decodestate state;
|
base64_decodestate state;
|
||||||
char decoded_pass[34];
|
char decoded_pass[34];
|
||||||
int len;
|
int len;
|
||||||
char *username;
|
char *username;
|
||||||
char *password;
|
char *password;
|
||||||
int i;
|
int i;
|
||||||
|
struct user_record *u;
|
||||||
|
|
||||||
if (user_password == NULL) {
|
if (ptr == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
user_password = strdup(ptr);
|
||||||
|
|
||||||
if (strncasecmp(user_password, "basic ", 6) == 0) {
|
if (strncasecmp(user_password, "basic ", 6) == 0) {
|
||||||
if (strlen(&user_password[6]) <= 48) {
|
if (strlen(&user_password[6]) <= 48) {
|
||||||
base64_init_decodestate(&state);
|
base64_init_decodestate(&state);
|
||||||
@ -358,10 +362,13 @@ struct user_record *www_auth_ok(struct MHD_Connection *connection, const char *u
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return check_user_pass(username, password);
|
u = check_user_pass(username, password);
|
||||||
|
free(user_password);
|
||||||
|
|
||||||
|
return u;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
free(user_password);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user