Changeset 8588
- Timestamp:
- Jun 2, 2009, 1:48:48 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/daemon/daemon.c
r8414 r8588 299 299 if( dumpSettings ) 300 300 { 301 struct evbuffer * buf = tr_getBuffer( ); 302 303 tr_bencSaveAsJSON( &settings, buf, TRUE ); 304 fprintf( stderr, "%s", (char*)EVBUFFER_DATA(buf) ); 305 306 tr_releaseBuffer( buf ); 301 char * str = tr_bencToStr( &settings, TR_FMT_JSON, NULL ); 302 fprintf( stderr, "%s", str ); 303 tr_free( str ); 307 304 return 0; 308 305 } -
trunk/daemon/remote.c
r8585 r8588 633 633 if( addArg ) 634 634 { 635 struct evbuffer * buf = tr_getBuffer( ); 636 reqs[reqCount++] = tr_strdup( tr_bencSaveAsJSON( &top, buf, FALSE ) ); 637 tr_releaseBuffer( buf ); 635 reqs[reqCount++] = tr_bencToStr( &top, TR_FMT_JSON_LEAN, NULL ); 638 636 } 639 637 -
trunk/gtk/conf.c
r8580 r8588 429 429 430 430 g_key_file_free( keyfile ); 431 tr_benc SaveJSONFile( new_file, &dict);431 tr_bencToFile( &dict, TR_FMT_JSON, new_file ); 432 432 tr_bencFree( &dict ); 433 433 } -
trunk/gtk/tr-core.c
r8585 r8588 1445 1445 tr_core_exec( TrCore * core, const tr_benc * top ) 1446 1446 { 1447 char * json = tr_bencTo JSON( top, FALSE);1447 char * json = tr_bencToStr( top, TR_FMT_JSON_LEAN, NULL ); 1448 1448 tr_core_exec_json( core, json ); 1449 1449 tr_free( json ); -
trunk/libtransmission/bencode-test.c
r8414 r8588 174 174 #endif 175 175 check( end == (const uint8_t*)str + len ); 176 saved = tr_benc Save( &val, &savedLen );176 saved = tr_bencToStr( &val, TR_FMT_BENC, &savedLen ); 177 177 check( !strcmp( saved, str ) ); 178 178 check( len == (size_t)savedLen ); … … 215 215 check( tr_bencGetInt( &val.val.l.vals[2], &i ) ); 216 216 check( i == 16 ); 217 saved = tr_benc Save( &val, &len );217 saved = tr_bencToStr( &val, TR_FMT_BENC, &len ); 218 218 check( !strcmp( saved, (char*)buf ) ); 219 219 tr_free( saved ); … … 231 231 check( !err ); 232 232 check( end == buf + 2 ); 233 saved = tr_benc Save( &val, &len );233 saved = tr_bencToStr( &val, TR_FMT_BENC, &len ); 234 234 check( !strcmp( saved, "le" ) ); 235 235 tr_free( saved ); … … 274 274 check( ( child = tr_bencListChild( &val, 0 ) ) ); 275 275 check( ( child2 = tr_bencListChild( child, 0 ) ) ); 276 saved = tr_benc Save( &val, &len );276 saved = tr_bencToStr( &val, TR_FMT_BENC, &len ); 277 277 check( !strcmp( saved, "lld1:ai64e1:bi32eeee" ) ); 278 278 tr_free( saved ); … … 285 285 check( !err ); 286 286 check( end == buf + 2 ); 287 saved = tr_benc Save( &val, &len );287 saved = tr_bencToStr( &val, TR_FMT_BENC, &len ); 288 288 check( !strcmp( saved, "le" ) ); 289 289 tr_free( saved ); … … 325 325 326 326 tr_bencLoad( benc_str, strlen( benc_str ), &top, NULL ); 327 serialized = tr_bencSaveAsJSON( &top, buf, TRUE ); 327 tr_bencToBuf( &top, TR_FMT_JSON, buf ); 328 serialized = (char*) EVBUFFER_DATA( buf ); 328 329 stripWhitespace( serialized ); 329 330 #if 0 … … 444 445 check( !err ); 445 446 check( end == in + ( depth * 2 ) ); 446 saved = tr_benc Save( &val, &len );447 saved = tr_bencToStr( &val, TR_FMT_BENC, &len ); 447 448 check( !strcmp( saved, (char*)in ) ); 448 449 tr_free( in ); … … 505 506 tr_bencDictAddStr( &top, "this-is-a-string", "this-is-a-string" ); 506 507 507 benc = tr_benc Save( &top, &len );508 benc = tr_bencToStr( &top, TR_FMT_BENC, &len ); 508 509 check( !strcmp( benc, "d14:this-is-a-booli1e14:this-is-a-real8:0.50000016:this-is-a-string16:this-is-a-string14:this-is-an-inti1234ee" ) ) 509 510 check( !tr_bencParse( benc, benc+len, &top2, &end ) ) -
trunk/libtransmission/bencode.c
r8586 r8588 18 18 #include <stdlib.h> 19 19 #include <string.h> 20 #include <unistd.h> /* close() */ 20 21 21 22 #include <locale.h> … … 1135 1136 saveContainerEndFunc }; 1136 1137 1137 char*1138 tr_bencSave( const tr_benc * top,1139 int * len )1140 {1141 char * ret;1142 struct evbuffer * out = tr_getBuffer( );1143 1144 bencWalk( top, &saveFuncs, out );1145 1146 if( len )1147 *len = EVBUFFER_LENGTH( out );1148 ret = tr_strndup( EVBUFFER_DATA( out ), EVBUFFER_LENGTH( out ) );1149 1150 tr_releaseBuffer( out );1151 return ret;1152 }1153 1154 1138 /*** 1155 1139 **** … … 1241 1225 if( !( i % 2 ) ) 1242 1226 evbuffer_add( data->out, ": ", data->doIndent ? 2 : 1 ); 1243 else 1244 { 1227 else { 1228 const tr_bool isLast = parentState->childIndex == parentState->childCount; 1229 if( !isLast ) { 1230 evbuffer_add( data->out, ", ", data->doIndent ? 2 : 1 ); 1231 jsonIndent( data ); 1232 } 1233 } 1234 break; 1235 } 1236 1237 case TR_TYPE_LIST: 1238 { 1239 const tr_bool isLast = ++parentState->childIndex == parentState->childCount; 1240 if( !isLast ) { 1245 1241 evbuffer_add( data->out, ", ", data->doIndent ? 2 : 1 ); 1246 1242 jsonIndent( data ); 1247 1243 } 1248 break;1249 }1250 1251 case TR_TYPE_LIST:1252 {1253 ++parentState->childIndex;1254 evbuffer_add( data->out, ", ", data->doIndent ? 2 : 1 );1255 jsonIndent( data );1256 1244 break; 1257 1245 } … … 1396 1384 void * vdata ) 1397 1385 { 1398 size_t i;1399 1386 struct jsonWalk * data = vdata; 1400 char * str;1401 1387 int emptyContainer = FALSE; 1402 1403 /* trim out the trailing comma, if any */1404 str = (char*) EVBUFFER_DATA( data->out );1405 for( i = EVBUFFER_LENGTH( data->out ) - 1; i > 0; --i )1406 {1407 if( isspace( str[i] ) ) continue;1408 if( str[i] == ',' )1409 EVBUFFER_LENGTH( data->out ) = i;1410 if( str[i] == '{' || str[i] == '[' )1411 emptyContainer = TRUE;1412 break;1413 }1414 1388 1415 1389 jsonPopParent( data ); … … 1430 1404 jsonListBeginFunc, 1431 1405 jsonContainerEndFunc }; 1432 1433 static void1434 tr_bencSaveAsJSONImpl( const tr_benc * top, struct evbuffer * out, tr_bool doIndent )1435 {1436 struct jsonWalk data;1437 1438 evbuffer_drain( out, EVBUFFER_LENGTH( out ) );1439 1440 data.doIndent = doIndent;1441 data.out = out;1442 data.parents = NULL;1443 1444 bencWalk( top, &jsonWalkFuncs, &data );1445 1446 if( EVBUFFER_LENGTH( out ) )1447 evbuffer_add_printf( out, "\n" );1448 }1449 1450 char*1451 tr_bencSaveAsJSON( const tr_benc * top, struct evbuffer * out, tr_bool doIndent )1452 {1453 tr_bencSaveAsJSONImpl( top, out, doIndent );1454 return (char*) EVBUFFER_DATA( out );1455 }1456 1457 char*1458 tr_bencToJSON( const tr_benc * top, tr_bool doIndent )1459 {1460 char * ret;1461 struct evbuffer * buf = evbuffer_new( );1462 tr_bencSaveAsJSON( top, buf, doIndent );1463 ret = tr_strndup( EVBUFFER_DATA( buf ), EVBUFFER_LENGTH( buf ) );1464 evbuffer_free( buf );1465 return ret;1466 }1467 1406 1468 1407 /*** … … 1552 1491 } 1553 1492 1554 /*** 1555 **** 1556 ***/ 1557 1558 static int 1559 saveFile( const char * filename, struct evbuffer * buf ) 1493 /*** 1494 **** 1495 ***/ 1496 1497 void 1498 tr_bencToBuf( const tr_benc * top, tr_fmt_mode mode, struct evbuffer * buf ) 1499 { 1500 evbuffer_drain( buf, EVBUFFER_LENGTH( buf ) ); 1501 1502 switch( mode ) 1503 { 1504 case TR_FMT_BENC: 1505 bencWalk( top, &saveFuncs, buf ); 1506 break; 1507 1508 case TR_FMT_JSON: 1509 case TR_FMT_JSON_LEAN: { 1510 struct jsonWalk data; 1511 data.doIndent = mode==TR_FMT_JSON; 1512 data.out = buf; 1513 data.parents = NULL; 1514 bencWalk( top, &jsonWalkFuncs, &data ); 1515 if( EVBUFFER_LENGTH( buf ) ) 1516 evbuffer_add_printf( buf, "\n" ); 1517 break; 1518 } 1519 } 1520 } 1521 1522 char* 1523 tr_bencToStr( const tr_benc * top, tr_fmt_mode mode, int * len ) 1524 { 1525 char * ret; 1526 struct evbuffer * buf = evbuffer_new( ); 1527 tr_bencToBuf( top, mode, buf ); 1528 ret = tr_strndup( EVBUFFER_DATA( buf ), EVBUFFER_LENGTH( buf ) ); 1529 if( len != NULL ) 1530 *len = (int) EVBUFFER_LENGTH( buf ); 1531 evbuffer_free( buf ); 1532 return ret; 1533 } 1534 1535 int 1536 tr_bencToFile( const tr_benc * top, tr_fmt_mode mode, const char * filename ) 1560 1537 { 1561 1538 int err = 0; … … 1568 1545 filename, tr_strerror( errno ) ); 1569 1546 } 1570 else if( evbuffer_write( buf, fd ) == -1 ) 1571 { 1572 err = errno; 1573 tr_err( _( "Couldn't save file \"%1$s\": %2$s" ), 1574 filename, tr_strerror( errno ) ); 1575 } 1576 1577 if( !err ) 1578 tr_dbg( "tr_bencSaveFile saved \"%s\"", filename ); 1579 if( fd >= 0 ) 1547 else 1548 { 1549 struct evbuffer * buf = evbuffer_new( ); 1550 tr_bencToBuf( top, mode, buf ); 1551 if( evbuffer_write( buf, fd ) == -1 ) 1552 { 1553 err = errno; 1554 tr_err( _( "Couldn't save file \"%1$s\": %2$s" ), 1555 filename, tr_strerror( errno ) ); 1556 } 1557 1558 if( !err ) 1559 tr_dbg( "tr_bencToFile saved \"%s\"", filename ); 1580 1560 close( fd ); 1581 1582 return err; 1583 } 1584 1585 int 1586 tr_bencSaveFile( const char * filename, const tr_benc * top ) 1587 { 1588 int err; 1589 struct evbuffer * buf = evbuffer_new( ); 1590 bencWalk( top, &saveFuncs, buf ); 1591 err = saveFile( filename, buf ); 1592 evbuffer_free( buf ); 1593 return err; 1594 } 1595 1596 int 1597 tr_bencSaveJSONFile( const char * filename, const tr_benc * top ) 1598 { 1599 int err; 1600 struct evbuffer * buf = evbuffer_new( ); 1601 tr_bencSaveAsJSONImpl( top, buf, TRUE ); 1602 err = saveFile( filename, buf ); 1603 evbuffer_free( buf ); 1561 } 1562 1604 1563 return err; 1605 1564 } … … 1610 1569 1611 1570 int 1612 tr_bencLoadFile( const char * filename, tr_benc * b)1613 { 1614 int 1615 size_t 1571 tr_bencLoadFile( tr_benc * setme, tr_fmt_mode mode, const char * filename ) 1572 { 1573 int err; 1574 size_t contentLen; 1616 1575 uint8_t * content; 1617 1576 … … 1621 1580 else if( !content ) 1622 1581 err = ENODATA; 1623 else 1624 err = tr_bencLoad( content, contentLen, b, NULL ); 1582 else { 1583 if( mode == TR_FMT_BENC ) 1584 err = tr_bencLoad( content, contentLen, setme, NULL ); 1585 else 1586 err = tr_jsonParse( filename, content, contentLen, setme, NULL ); 1587 } 1625 1588 1626 1589 tr_free( content ); 1627 1590 return err; 1628 1591 } 1629 1630 int1631 tr_bencLoadJSONFile( const char * filename, tr_benc * b )1632 {1633 int err;1634 size_t contentLen;1635 uint8_t * content;1636 1637 content = tr_loadFile( filename, &contentLen );1638 if( !content && errno )1639 err = errno;1640 else if( !content )1641 err = ENODATA;1642 else1643 err = tr_jsonParse( filename, content, contentLen, b, NULL );1644 1645 tr_free( content );1646 return err;1647 } -
trunk/libtransmission/bencode.h
r8586 r8588 92 92 char ** setme_end ); 93 93 94 int tr_bencLoadFile( const char * filename, tr_benc * setme );95 96 int tr_bencLoadJSONFile( const char * filename, tr_benc * setme );97 98 94 void tr_bencFree( tr_benc * ); 99 95 100 char* tr_bencSave( const tr_benc * val, int * len );101 102 char* tr_bencSaveAsJSON( const tr_benc * top, struct evbuffer * out, tr_bool doIndent );103 104 char* tr_bencToJSON( const tr_benc * top, tr_bool doIndent );105 106 int tr_bencSaveFile( const char * filename, const tr_benc * );107 108 int tr_bencSaveJSONFile( const char * filename, const tr_benc * );109 110 96 void tr_bencInitStr( tr_benc *, const void * str, int str_len ); 111 97 … … 126 112 ***/ 127 113 128 int tr_bencListReserve( tr_benc *, size_t reserveCount ); 114 typedef enum 115 { 116 TR_FMT_BENC, 117 TR_FMT_JSON, 118 TR_FMT_JSON_LEAN /* saves bandwidth by omitting all whitespace. */ 119 } 120 tr_fmt_mode; 121 122 int tr_bencToFile( const tr_benc *, tr_fmt_mode, const char * filename ); 123 124 char* tr_bencToStr( const tr_benc *, tr_fmt_mode, int * len ); 125 126 void tr_bencToBuf( const tr_benc *, tr_fmt_mode, struct evbuffer * ); 127 128 /* TR_FMT_JSON_LEAN and TR_FMT_JSON are equivalent in this function. */ 129 int tr_bencLoadFile( tr_benc * setme, tr_fmt_mode, const char * filename ); 130 131 /*** 132 **** 133 ***/ 134 135 int tr_bencListReserve( tr_benc *, size_t reserveCount ); 129 136 130 137 tr_benc * tr_bencListAdd( tr_benc * ); -
trunk/libtransmission/json-test.c
r8585 r8588 42 42 char * json; 43 43 int err; 44 struct evbuffer * buf = tr_getBuffer( );45 44 46 45 err = tr_jsonParse( NULL, in, strlen( in ), &top, NULL ); … … 75 74 check( tr_bencDictFindStr( &top, "key", &str ) ); 76 75 check( !strcmp( str, "Letöltések" ) ); 77 json = tr_benc SaveAsJSON( &top, buf, TRUE);76 json = tr_bencToStr( &top, TR_FMT_JSON, NULL ); 78 77 if( !err ) 79 78 tr_bencFree( &top ); … … 90 89 tr_free( json ); 91 90 92 tr_releaseBuffer( buf );93 91 return 0; 94 92 } -
trunk/libtransmission/makemeta.c
r8181 r8588 418 418 if( !builder->result && !builder->abortFlag ) 419 419 { 420 if( tr_benc SaveFile( builder->outputFile, &top) )420 if( tr_bencToFile( &top, TR_FMT_BENC, builder->outputFile ) ) 421 421 { 422 422 builder->my_errno = errno; -
trunk/libtransmission/metainfo.c
r8465 r8588 367 367 else 368 368 { 369 int 370 char * bstr = tr_benc Save( beInfo, &len );369 int len; 370 char * bstr = tr_bencToStr( beInfo, TR_FMT_BENC, &len ); 371 371 tr_sha1( inf->hash, bstr, len, NULL ); 372 372 tr_sha1_to_hex( inf->hashString, inf->hash ); -
trunk/libtransmission/peer-msgs.c
r8576 r8588 992 992 if( pex ) 993 993 tr_bencDictAddInt( m, "ut_pex", TR_LTEP_PEX ); 994 buf = tr_benc Save( &val, &len );994 buf = tr_bencToStr( &val, TR_FMT_BENC, &len ); 995 995 996 996 tr_peerIoWriteUint32( msgs->peer->io, out, 2 * sizeof( uint8_t ) + len ); … … 2067 2067 2068 2068 /* write the pex message */ 2069 benc = tr_benc Save( &val, &bencLen );2069 benc = tr_bencToStr( &val, TR_FMT_BENC, &bencLen ); 2070 2070 tr_peerIoWriteUint32( io, out, 2 * sizeof( uint8_t ) + bencLen ); 2071 2071 tr_peerIoWriteUint8 ( io, out, BT_LTEP ); -
trunk/libtransmission/resume.c
r8254 r8588 513 513 514 514 filename = getResumeFilename( tor ); 515 tr_benc SaveFile( filename, &top);515 tr_bencToFile( &top, TR_FMT_BENC, filename ); 516 516 tr_free( filename ); 517 517 … … 532 532 filename = getResumeFilename( tor ); 533 533 534 if( tr_bencLoadFile( filename, &top) )534 if( tr_bencLoadFile( &top, TR_FMT_BENC, filename ) ) 535 535 { 536 536 tr_tordbg( tor, "Couldn't read \"%s\"; trying old format.", -
trunk/libtransmission/rpc-server.c
r8561 r8588 254 254 tr_bencDictAddStr( args, "metainfo", b64 ); 255 255 tr_bencDictAddBool( args, "paused", paused ); 256 tr_benc SaveAsJSON( &top, json, FALSE);256 tr_bencToBuf( &top, TR_FMT_JSON_LEAN, json ); 257 257 tr_rpc_request_exec_json( server->session, 258 258 EVBUFFER_DATA( json ), -
trunk/libtransmission/rpcimpl.c
r8585 r8588 87 87 tr_idle_function_done( struct tr_rpc_idle_data * data, const char * result ) 88 88 { 89 struct evbuffer * buf = tr_getBuffer( );89 struct evbuffer * buf = evbuffer_new( ); 90 90 91 91 if( result == NULL ) … … 93 93 tr_bencDictAddStr( data->response, "result", result ); 94 94 95 tr_benc SaveAsJSON( data->response, buf, FALSE);95 tr_bencToBuf( data->response, TR_FMT_JSON_LEAN, buf ); 96 96 (*data->callback)( data->session, (const char*)EVBUFFER_DATA(buf), 97 97 EVBUFFER_LENGTH(buf), data->callback_user_data ); 98 98 99 tr_releaseBuffer( buf );99 evbuffer_free( buf ); 100 100 tr_bencFree( data->response ); 101 101 tr_free( data->response ); … … 1333 1333 int64_t tag; 1334 1334 tr_benc response; 1335 struct evbuffer * buf = tr_getBuffer( );1335 struct evbuffer * buf = evbuffer_new( ); 1336 1336 1337 1337 tr_bencInitDict( &response, 3 ); … … 1340 1340 if( tr_bencDictFindInt( request, "tag", &tag ) ) 1341 1341 tr_bencDictAddInt( &response, "tag", tag ); 1342 tr_benc SaveAsJSON( &response, buf, FALSE);1342 tr_bencToBuf( &response, TR_FMT_JSON_LEAN, buf ); 1343 1343 (*callback)( session, (const char*)EVBUFFER_DATA(buf), 1344 1344 EVBUFFER_LENGTH( buf ), callback_user_data ); 1345 1345 1346 tr_releaseBuffer( buf );1346 evbuffer_free( buf ); 1347 1347 tr_bencFree( &response ); 1348 1348 } … … 1362 1362 if( tr_bencDictFindInt( request, "tag", &tag ) ) 1363 1363 tr_bencDictAddInt( &response, "tag", tag ); 1364 tr_benc SaveAsJSON( &response, buf, FALSE);1364 tr_bencToBuf( &response, TR_FMT_JSON_LEAN, buf ); 1365 1365 (*callback)( session, (const char*)EVBUFFER_DATA(buf), 1366 1366 EVBUFFER_LENGTH(buf), callback_user_data ); -
trunk/libtransmission/session.c
r8555 r8588 477 477 /* file settings override the defaults */ 478 478 filename = tr_buildPath( configDir, "settings.json", NULL ); 479 if( !tr_bencLoad JSONFile( filename, &fileSettings) ) {479 if( !tr_bencLoadFile( &fileSettings, TR_FMT_JSON, filename ) ) { 480 480 tr_bencMergeDicts( d, &fileSettings ); 481 481 tr_bencFree( &fileSettings ); … … 502 502 { 503 503 tr_benc fileSettings; 504 if( !tr_bencLoad JSONFile( filename, &fileSettings) )504 if( !tr_bencLoadFile( &fileSettings, TR_FMT_JSON, filename ) ) 505 505 { 506 506 tr_bencMergeDicts( &settings, &fileSettings ); … … 522 522 523 523 /* save the result */ 524 tr_benc SaveJSONFile( filename, &settings);524 tr_bencToFile( &settings, TR_FMT_JSON, filename ); 525 525 tr_inf( "Saved \"%s\"", filename ); 526 526 -
trunk/libtransmission/stats.c
r7658 r8588 52 52 53 53 filename = getFilename( session ); 54 loaded = !tr_bencLoad JSONFile( filename, &top);54 loaded = !tr_bencLoadFile( &top, TR_FMT_JSON, filename ); 55 55 tr_free( filename ); 56 56 … … 58 58 { 59 59 filename = getOldFilename( session ); 60 loaded = !tr_bencLoadFile( filename, &top);60 loaded = !tr_bencLoadFile( &top, TR_FMT_BENC, filename ); 61 61 tr_free( filename ); 62 62 } … … 97 97 filename = getFilename( session ); 98 98 tr_deepLog( __FILE__, __LINE__, NULL, "Saving stats to \"%s\"", filename ); 99 tr_benc SaveJSONFile( filename, &top);99 tr_bencToFile( &top, TR_FMT_JSON, filename ); 100 100 101 101 tr_free( filename ); -
trunk/libtransmission/torrent.c
r8559 r8588 661 661 { 662 662 const char * filename = tor->info.torrent; 663 tr_bencSaveFile( filename, val ); 664 tr_sessionSetTorrentFile( tor->session, tor->info.hashString, 665 filename ); 663 tr_bencToFile( val, TR_FMT_BENC, filename ); 664 tr_sessionSetTorrentFile( tor->session, tor->info.hashString, filename ); 666 665 } 667 666 } … … 1948 1947 1949 1948 /* save to the .torrent file */ 1950 if( !tr_bencLoadFile( tor->info.torrent, &metainfo) )1949 if( !tr_bencLoadFile( &metainfo, TR_FMT_BENC, tor->info.torrent ) ) 1951 1950 { 1952 1951 int i; … … 1986 1985 1987 1986 tr_metainfoFree( &tmpInfo ); 1988 tr_benc SaveFile( tor->info.torrent, &metainfo);1987 tr_bencToFile( &metainfo, TR_FMT_BENC, tor->info.torrent ); 1989 1988 } 1990 1989 -
trunk/libtransmission/tr-dht.c
r8584 r8588 136 136 137 137 dat_file = tr_buildPath( ss->configDir, "dht.dat", NULL ); 138 rc = tr_bencLoadFile( dat_file, &benc);138 rc = tr_bencLoadFile( &benc, TR_FMT_BENC, dat_file ); 139 139 tr_free( dat_file ); 140 140 if(rc == 0) { … … 216 216 tr_bencDictAddRaw( &benc, "nodes", compact, j ); 217 217 dat_file = tr_buildPath( ss->configDir, "dht.dat", NULL ); 218 tr_benc SaveFile( dat_file, &benc);218 tr_bencToFile( &benc, TR_FMT_BENC, dat_file ); 219 219 tr_free( dat_file ); 220 220 } -
trunk/qt/prefs.cc
r8585 r8588 219 219 220 220 /* write back out the serialized preferences */ 221 char * json = tr_bencToJSON( &top, TRUE ); 222 if( json && *json ) { 223 file.open( QIODevice::WriteOnly | QIODevice::Text ); 224 file.write( json ); 225 file.close( ); 226 } 227 tr_free( json ); 221 tr_bencToFile( &top, TR_FMT_JSON, file.fileName().toUtf8().constData() ); 228 222 tr_bencFree( &top ); 229 223 } -
trunk/qt/session.cc
r8585 r8588 533 533 Session :: exec( const tr_benc * request ) 534 534 { 535 char * str ( tr_bencToJSON( request, FALSE ));535 char * str = tr_bencToStr( request, TR_FMT_JSON_LEAN, NULL ); 536 536 exec( str ); 537 537 tr_free( str ); -
trunk/third-party/dht/dht.c
r8482 r8588 321 321 322 322 /* Determine whether id1 or id2 is closer to ref */ 323 int323 static int 324 324 xorcmp(const unsigned char *id1, const unsigned char *id2, 325 325 const unsigned char *ref)
Note: See TracChangeset
for help on using the changeset viewer.