]> granicus.if.org Git - transmission/commitdiff
(trunk libT) #3969 "tr_base64_encode() has unnecessary overhead with linefeeds" ...
authorJordan Lee <jordan@transmissionbt.com>
Mon, 31 Jan 2011 22:47:07 +0000 (22:47 +0000)
committerJordan Lee <jordan@transmissionbt.com>
Mon, 31 Jan 2011 22:47:07 +0000 (22:47 +0000)
Don't add linefeeds to base64-encoded data. We don't need it and it just increases the length of the string, which is typically sent over the network to an RPC client.

libtransmission/utils-test.c
libtransmission/utils.c

index 34bc1cfc96a84a16294d05dedd6f79f83c4edce9..2e265061890632fe5976e4e149a9636fc3acb149 100644 (file)
@@ -417,8 +417,8 @@ main( void )
     /* base64 */
     out = tr_base64_encode( "YOYO!", -1, &len );
     check( out );
-    check( !strcmp( out, "WU9ZTyE=\n" ) );
-    check( len == 9 );
+    check( !strcmp( out, "WU9ZTyE=" ) );
+    check( len == 8 );
     in = tr_base64_decode( out, -1, &len );
     check( in );
     check( !strcmp( in, "YOYO!" ) );
index 507bfa83aff98ba0f9b8b161dfe4d60aa726ec99..f8fe9439f873bb92e95437a5f31501c6fe924496 100644 (file)
@@ -1154,6 +1154,7 @@ tr_base64_encode( const void * input, int length, int * setme_len )
 
         bmem = BIO_new( BIO_s_mem( ) );
         b64 = BIO_new( BIO_f_base64( ) );
+        BIO_set_flags( b64, BIO_FLAGS_BASE64_NO_NL );
         b64 = BIO_push( b64, bmem );
         BIO_write( b64, input, length );
         (void) BIO_flush( b64 );