summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/net/tcp/http.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/net/tcp/http.c b/src/net/tcp/http.c
index 0191750b..93ccfd3b 100644
--- a/src/net/tcp/http.c
+++ b/src/net/tcp/http.c
@@ -391,10 +391,10 @@ static void http_step ( struct process *process ) {
const char *host = http->uri->host;
const char *query = http->uri->query;
const char *user = http->uri->user;
- const char *password = http->uri->password;
- size_t user_pw_len = ( ( user && password ) ?
- ( strlen ( user ) + 1 /* ":" */ +
- strlen ( password ) ) : 0 );
+ const char *password =
+ ( http->uri->password ? http->uri->password : "" );
+ size_t user_pw_len = ( user ? ( strlen ( user ) + 1 /* ":" */ +
+ strlen ( password ) ) : 0 );
size_t user_pw_base64_len = base64_encoded_len ( user_pw_len );
char user_pw[ user_pw_len + 1 /* NUL */ ];
char user_pw_base64[ user_pw_base64_len + 1 /* NUL */ ];
@@ -406,7 +406,7 @@ static void http_step ( struct process *process ) {
process_del ( &http->process );
/* Construct authorisation, if applicable */
- if ( user_pw_len ) {
+ if ( user ) {
char *buf = user_pw;
ssize_t remaining = sizeof ( user_pw );
size_t len;
@@ -435,11 +435,10 @@ static void http_step ( struct process *process ) {
( path ? path : "/" ),
( query ? "?" : "" ),
( query ? query : "" ),
- ( user_pw_len ?
+ ( user ?
"Authorization: Basic " : "" ),
- ( user_pw_len ?
- user_pw_base64 : "" ),
- ( user_pw_len ? "\r\n" : "" ),
+ ( user ? user_pw_base64 : "" ),
+ ( user ? "\r\n" : "" ),
host ) ) != 0 ) {
http_done ( http, rc );
}