mirror of
https://github.com/mpv-player/mpv
synced 2025-01-03 05:22:23 +00:00
Fix base64 encoding for basic auth according to RFC.
Patch by Jeff D'Angelo (jcd+mplayer at psu edu). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17779 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
5b3801e774
commit
dddd5404a5
@ -659,7 +659,7 @@ http_debug_hdr( HTTP_header_t *http_hdr ) {
|
||||
|
||||
int
|
||||
base64_encode(const void *enc, int encLen, char *out, int outMax) {
|
||||
static const char b64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
|
||||
static const char b64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
|
||||
unsigned char *encBuf;
|
||||
int outLen;
|
||||
@ -670,6 +670,7 @@ base64_encode(const void *enc, int encLen, char *out, int outMax) {
|
||||
outLen = 0;
|
||||
bits = 0;
|
||||
shift = 0;
|
||||
outMax &= ~3;
|
||||
|
||||
while( outLen<outMax ) {
|
||||
if( encLen>0 ) {
|
||||
@ -685,9 +686,12 @@ base64_encode(const void *enc, int encLen, char *out, int outMax) {
|
||||
bits <<= 6 - shift;
|
||||
shift = 6;
|
||||
} else {
|
||||
// Terminate with Mime style '='
|
||||
*out = '=';
|
||||
outLen++;
|
||||
// As per RFC 2045, section 6.8,
|
||||
// pad output as necessary: 0 to 2 '=' chars.
|
||||
while( outLen & 3 ){
|
||||
*out++ = '=';
|
||||
outLen++;
|
||||
}
|
||||
|
||||
return outLen;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user