Added HTTP basic authentication support

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6516 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
bertrand 2002-06-23 09:17:52 +00:00
parent f83fbf33c3
commit 9f6e8b1509
1 changed files with 37 additions and 0 deletions

View File

@ -275,6 +275,7 @@ http_send_request( URL_t *url ) {
http_set_field( http_hdr, str);
http_set_field( http_hdr, "User-Agent: MPlayer/"VERSION);
http_set_field( http_hdr, "Connection: closed");
http_add_basic_authentication( http_hdr, url->username, url->password );
if( http_build_request( http_hdr )==NULL ) {
return -1;
}
@ -492,6 +493,42 @@ extension=NULL;
redirect = 1;
}
break;
case 401: // Authorization required
{
char username[50], password[50];
char *aut;
aut = http_get_field(http_hdr, "WWW-Authenticate");
if( aut!=NULL ) {
char *aut_space;
aut_space = strstr(aut, "realm=");
if( aut_space!=NULL ) aut_space += 6;
mp_msg(MSGT_NETWORK,MSGL_ERR,"Authorization required for %s, please enter:\n", aut_space);
} else {
mp_msg(MSGT_NETWORK,MSGL_ERR,"Authorization required, please enter:\n");
}
mp_msg(MSGT_NETWORK,MSGL_ERR,"username: ");
// FIXME
scanf("%s", username);
printf("%s\n", username);
mp_msg(MSGT_NETWORK,MSGL_ERR,"password: ");
// FIXME
scanf("%s", password);
printf("%s\n", password);
url->username = (char*)malloc(strlen(username)+1);
if( url->username==NULL ) {
mp_msg(MSGT_NETWORK,MSGL_FATAL,"Memory allocation failed\n");
return -1;
}
strcpy(url->username, username);
url->password = (char*)malloc(strlen(password)+1);
if( url->password==NULL ) {
mp_msg(MSGT_NETWORK,MSGL_FATAL,"Memory allocation failed\n");
return -1;
}
strcpy(url->password, password);
redirect = 1;
break;
}
default:
mp_msg(MSGT_NETWORK,MSGL_ERR,"Server returned %d: %s\n", http_hdr->status_code, http_hdr->reason_phrase );
return -1;