]> granicus.if.org Git - transmission/commitdiff
(trunk libT) resolve "noslashes" vs "keep_slashes" variable name inconsistency betwee...
authorCharles Kerr <charles@transmissionbt.com>
Sun, 29 Nov 2009 08:05:47 +0000 (08:05 +0000)
committerCharles Kerr <charles@transmissionbt.com>
Sun, 29 Nov 2009 08:05:47 +0000 (08:05 +0000)
libtransmission/announcer.c
libtransmission/web.c
libtransmission/web.h
libtransmission/webseed.c

index 575a4390d2b6075381a39348c131bfd3112b2a9c..fa78060163f8c1f7bed98a6cac307f4754441b97 100644 (file)
@@ -703,7 +703,7 @@ createAnnounceURL( const tr_announcer     * announcer,
         char ipv6_readable[INET6_ADDRSTRLEN];
         inet_ntop( AF_INET6, ipv6, ipv6_readable, INET6_ADDRSTRLEN );
         evbuffer_add_printf( buf, "&ipv6=");
-        tr_http_escape( buf, ipv6_readable, strlen(ipv6_readable), 0 );
+        tr_http_escape( buf, ipv6_readable, strlen(ipv6_readable), TRUE );
     }
 
     ret = tr_strndup( EVBUFFER_DATA( buf ), EVBUFFER_LENGTH( buf ) );
index 4817a03e8ed36c948cf5c98b90744ac5a001ebf8..b3e84b48445ed90a9f33893d2150d30370df618d 100644 (file)
@@ -649,12 +649,18 @@ tr_webGetResponseStr( long code )
 }
 
 /* escapes a string to be URI-legal as per RFC 2396.
-   like curl_escape() but can optionally avoid munging slashes. */
+   like curl_escape() but can optionally avoid escaping slashes. */
 void
-tr_http_escape( struct evbuffer *out, const char *str, int len, int keep_slashes )
+tr_http_escape( struct evbuffer  * out,
+                const char       * str,
+                int                len,
+                tr_bool            escape_slashes )
 {
     int i;
 
+    if( ( len < 0 ) && ( str != NULL ) )
+        len = strlen( str );
+
     for( i = 0; i < len; i++ ) {
         switch( str[i] ) {
         case ',': case '-': case '.':
@@ -673,7 +679,7 @@ tr_http_escape( struct evbuffer *out, const char *str, int len, int keep_slashes
             evbuffer_add( out, &str[i], 1 );
             break;
         case '/':
-            if(keep_slashes) {
+            if(!escape_slashes) {
                 evbuffer_add( out, &str[i], 1 );
                 break;
             }
index 0d385fe9586a88f981bb1ef8ec633bb59f5cc584..f1e4b8eac1e6ef63da10c72cc7e9ba50f31765e4 100644 (file)
@@ -38,7 +38,7 @@ void         tr_webRun( tr_session        * session,
 
 struct evbuffer;
 
-void tr_http_escape( struct evbuffer *out, const char *str, int len, int noslashes );
+void tr_http_escape( struct evbuffer *out, const char *str, int len, tr_bool escape_slashes );
 
 char* tr_http_unescape( const char * str, int len );
 
index 9232f40e5e2daba8cd9d3fdbcdc8f6247c7eb937..2d5f1cf090bc61cef92b593110641faf23c8e17d 100644 (file)
@@ -109,7 +109,7 @@ makeURL( tr_webseed *    w,
 
     /* if url ends with a '/', add the torrent name */
     if( url[url_len - 1] == '/' && file->name )
-        tr_http_escape( out, file->name, strlen(file->name), 1 );
+        tr_http_escape( out, file->name, strlen(file->name), FALSE );
 
     ret = tr_strndup( EVBUFFER_DATA( out ), EVBUFFER_LENGTH( out ) );
     evbuffer_free( out );