Changeset 6613
- Timestamp:
- Aug 21, 2008, 4:12:17 PM (15 years ago)
- Location:
- trunk/libtransmission
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libtransmission/bencode.c
r6612 r6613 913 913 if( len ) 914 914 *len = EVBUFFER_LENGTH( out ); 915 ret = tr_strndup( (char*)EVBUFFER_DATA( out ), EVBUFFER_LENGTH( out ) );915 ret = tr_strndup( EVBUFFER_DATA( out ), EVBUFFER_LENGTH( out ) ); 916 916 evbuffer_free( out ); 917 917 return ret; … … 1222 1222 if( len ) 1223 1223 *len = EVBUFFER_LENGTH( data.out ); 1224 ret = tr_strndup( (char*)EVBUFFER_DATA( data.out ), EVBUFFER_LENGTH( data.out ) );1224 ret = tr_strndup( EVBUFFER_DATA( data.out ), EVBUFFER_LENGTH( data.out ) ); 1225 1225 evbuffer_free( data.out ); 1226 1226 return ret; -
trunk/libtransmission/clients.c
r6499 r6613 376 376 } 377 377 378 tr_strlcpy( buf, (const char*)EVBUFFER_DATA(out), buflen );378 tr_strlcpy( buf, EVBUFFER_DATA( out ), buflen ); 379 379 evbuffer_free( out ); 380 380 } -
trunk/libtransmission/metainfo.c
r6612 r6613 79 79 { 80 80 struct stat new_sb; 81 char * n ew_name = getTorrentFilename( handle, inf );82 83 if( stat( n ew_name, &new_sb ) || ( ( new_sb.st_mode & S_IFMT ) != S_IFREG ) )81 char * name = getTorrentFilename( handle, inf ); 82 83 if( stat( name, &new_sb ) || ( ( new_sb.st_mode & S_IFMT ) != S_IFREG ) ) 84 84 { 85 85 char * old_name = getOldTorrentFilename( handle, inf ); … … 92 92 FILE * out; 93 93 errno = 0; 94 out = fopen( n ew_name, "wb+" );94 out = fopen( name, "wb+" ); 95 95 if( !out ) 96 96 { 97 tr_nerr( inf->name, _( "Couldn't create \"%1$s\": %2$s" ), new_name, tr_strerror( errno ) ); 97 tr_nerr( inf->name, _( "Couldn't create \"%1$s\": %2$s" ), 98 name, tr_strerror( errno ) ); 98 99 } 99 100 else 100 101 { 101 if( fwrite( content, sizeof( uint8_t ), contentLen, out ) == contentLen ) 102 if( fwrite( content, sizeof( uint8_t ), contentLen, out ) 103 == contentLen ) 102 104 { 103 105 tr_free( inf->torrent ); 104 inf->torrent = tr_strdup( n ew_name );105 tr_sessionSetTorrentFile( handle, inf->hashString, n ew_name );106 inf->torrent = tr_strdup( name ); 107 tr_sessionSetTorrentFile( handle, inf->hashString, name ); 106 108 unlink( old_name ); 107 109 } … … 114 116 } 115 117 116 tr_free( n ew_name );118 tr_free( name ); 117 119 } 118 120 … … 139 141 for( i=0; i<n; ++i ) { 140 142 const char * str; 141 if( tr_bencGetStr( tr_bencListChild( path, i ), &str ) && strcmp( str, ".." ) ) { 143 if( tr_bencGetStr( tr_bencListChild( path, i ), &str ) 144 && strcmp( str, ".." ) ) { 142 145 evbuffer_add( buf, TR_PATH_DELIMITER_STR, 1 ); 143 146 evbuffer_add( buf, str, strlen( str ) ); … … 155 158 156 159 static const char* 157 parseFiles( tr_info * inf, tr_benc * files, tr_benc * length )158 { 159 tr_file_index_t i;160 parseFiles( tr_info * inf, tr_benc * files, const tr_benc * length ) 161 { 162 int64_t len; 160 163 161 164 inf->totalSize = 0; … … 163 166 if( tr_bencIsList( files ) ) /* multi-file mode */ 164 167 { 168 tr_file_index_t i; 169 165 170 inf->isMultifile = 1; 166 171 inf->fileCount = tr_bencListSize( files ); … … 191 196 } 192 197 } 193 else if( tr_benc IsInt( length) ) /* single-file mode */198 else if( tr_bencGetInt( length, &len ) ) /* single-file mode */ 194 199 { 195 200 inf->isMultifile = 0; … … 197 202 inf->files = tr_new0( tr_file, 1 ); 198 203 inf->files[0].name = tr_strdup( inf->name ); 199 inf->files[0].length = len gth->val.i;200 inf->totalSize += len gth->val.i;204 inf->files[0].length = len; 205 inf->totalSize += len; 201 206 } 202 207 else … … 226 231 evbuffer_add( buf, "scrape", 6 ); 227 232 evbuffer_add_printf( buf, "%s", s+8 ); 228 scrape = tr_strdup( ( char * )EVBUFFER_DATA( buf ) );233 scrape = tr_strdup( EVBUFFER_DATA( buf ) ); 229 234 evbuffer_free( buf ); 230 235 } … … 246 251 int n; 247 252 int i, j; 253 const int numTiers = tr_bencListSize( tiers ); 248 254 249 255 n = 0; 250 for( i=0; i< tiers->val.l.count; ++i )251 n += t iers->val.l.vals[i].val.l.count;256 for( i=0; i<numTiers; ++i ) 257 n += tr_bencListSize( tr_bencListChild( tiers, i ) ); 252 258 253 259 trackers = tr_new0( tr_tracker_info, n ); 254 260 trackerCount = 0; 255 261 256 for( i=0; i<tiers->val.l.count; ++i ) { 257 const tr_benc * tier = &tiers->val.l.vals[i]; 258 for( j=0; tr_bencIsList(tier) && j<tier->val.l.count; ++j ) { 259 const tr_benc * a = &tier->val.l.vals[j]; 260 if( tr_bencIsString( a ) && tr_httpIsValidURL( a->val.s.s ) ) { 262 for( i=0; i<numTiers; ++i ) { 263 tr_benc * tier = tr_bencListChild( tiers, i ); 264 const int tierSize = tr_bencListSize( tier ); 265 for( j=0; j<tierSize; ++j ) { 266 const char * str; 267 if( tr_bencGetStr( tr_bencListChild( tier, j ), &str ) 268 && tr_httpIsValidURL( str ) ) { 261 269 tr_tracker_info * t = trackers + trackerCount++; 262 270 t->tier = i; 263 t->announce = tr_str ndup( a->val.s.s, a->val.s.i);264 t->scrape = announceToScrape( a->val.s.s);265 /*fprintf( stderr, "tier %d: %s\n", i, a->val.s.s);*/271 t->announce = tr_strdup( str ); 272 t->scrape = announceToScrape( str ); 273 /*fprintf( stderr, "tier %d: %s\n", i, str );*/ 266 274 } 267 275 } -
trunk/libtransmission/rpc-server.c
r6566 r6613 559 559 560 560 /* the -1 is to eat the final ", " */ 561 ret = tr_strndup( (char*) EVBUFFER_DATA(out), EVBUFFER_LENGTH(out)-1 );561 ret = tr_strndup( EVBUFFER_DATA( out ), EVBUFFER_LENGTH( out ) - 1 ); 562 562 evbuffer_free( out ); 563 563 return ret; -
trunk/libtransmission/session.c
r6556 r6613 104 104 **** 105 105 ***/ 106 107 static int 108 tr_stringEndsWith( const char * str, const char * end ) 109 { 110 const size_t slen = strlen( str ); 111 const size_t elen = strlen( end ); 112 return slen>=elen && !memcmp( &str[slen-elen], end, elen ); 113 } 106 114 107 115 static void -
trunk/libtransmission/tracker.c
r6517 r6613 634 634 req->reqtype = reqtype; 635 635 req->done_func = isStopping ? onStoppedResponse : onTrackerResponse; 636 req->url = tr_strdup( ( char * )EVBUFFER_DATA( url ) );636 req->url = tr_strdup( EVBUFFER_DATA( url ) ); 637 637 memcpy( req->torrent_hash, tracker->hash, SHA_DIGEST_LENGTH ); 638 638 … … 655 655 req->session = session; 656 656 req->reqtype = TR_REQ_SCRAPE; 657 req->url = tr_strdup( ( char * )EVBUFFER_DATA( url ) );657 req->url = tr_strdup( EVBUFFER_DATA( url ) ); 658 658 req->done_func = onScrapeResponse; 659 659 memcpy( req->torrent_hash, tracker->hash, SHA_DIGEST_LENGTH ); -
trunk/libtransmission/utils-test.c
r6595 r6613 107 107 tr_free( out ); 108 108 109 /* tr_stringEndsWith */110 check( tr_stringEndsWith( "the", "the" ) );111 check( tr_stringEndsWith( "dress", "dress" ) );112 check( tr_stringEndsWith( "address", "dress" ) );113 check( !tr_stringEndsWith( "foo.bin", "gfoo.bin" ) );114 check( !tr_stringEndsWith( "xyz", "xyw" ) );115 116 109 /* simple bitfield tests */ 117 110 for( l=0; l<NUM_LOOPS; ++l ) -
trunk/libtransmission/utils.c
r6595 r6613 191 191 va_end( args ); 192 192 evbuffer_add_printf( buf, " (%s:%d)\n", basename(myfile), line ); 193 fwrite( EVBUFFER_DATA( buf), 1, EVBUFFER_LENGTH(buf), fp );193 fwrite( EVBUFFER_DATA( buf ), 1, EVBUFFER_LENGTH( buf ), fp ); 194 194 195 195 tr_free( myfile ); … … 544 544 } 545 545 if( EVBUFFER_LENGTH(evbuf) ) 546 tr_strlcpy( buf, (char*)EVBUFFER_DATA(evbuf), buflen );546 tr_strlcpy( buf, EVBUFFER_DATA( evbuf ), buflen ); 547 547 else 548 548 *buf = '\0'; … … 665 665 666 666 if( evbuffer_add_vprintf( buf, fmt, ap ) != -1 ) 667 ret = tr_strdup( (char*)EVBUFFER_DATA( buf ) );667 ret = tr_strdup( EVBUFFER_DATA( buf ) ); 668 668 669 669 va_end( ap ); … … 939 939 940 940 int 941 tr_stringEndsWith( const char * str, const char * end )942 {943 const size_t slen = strlen( str );944 const size_t elen = strlen( end );945 return slen>=elen && !memcmp( &str[slen-elen], end, elen );946 }947 948 int949 941 tr_snprintf( char * buf, size_t buflen, const char * fmt, ... ) 950 942 { … … 964 956 */ 965 957 size_t 966 tr_strlcpy(char *dst, const char *src, size_t siz)958 tr_strlcpy(char *dst, const void * src, size_t siz) 967 959 { 968 960 #ifdef HAVE_STRLCPY … … 992 984 } 993 985 994 return(s - src - 1); /* count does not include NUL */986 return(s - (char*)src - 1); /* count does not include NUL */ 995 987 #endif 996 988 } -
trunk/libtransmission/utils.h
r6595 r6613 194 194 char* tr_base64_decode( const void * input, int inlen, int *outlen ) TR_GNUC_MALLOC; 195 195 196 size_t tr_strlcpy( char * dst, const char* src, size_t siz );196 size_t tr_strlcpy( char * dst, const void * src, size_t siz ); 197 197 int tr_snprintf( char * buf, size_t buflen, const char * fmt, ... ); 198 199 int tr_stringEndsWith( const char * string, const char * end );200 198 201 199 const char* tr_strerror( int );
Note: See TracChangeset
for help on using the changeset viewer.