Changeset 8562


Ignore:
Timestamp:
May 29, 2009, 8:52:42 PM (12 years ago)
Author:
charles
Message:

(trunk libT) a little bit of early futureproofing for libevent 2.0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/bencode.c

    r8417 r8562  
    14041404                                                jsonListBeginFunc,
    14051405                                                jsonContainerEndFunc };
    1406                                            
    1407 char*
    1408 tr_bencSaveAsJSON( const tr_benc * top, struct evbuffer * out, tr_bool doIndent )
     1406
     1407static void
     1408tr_bencSaveAsJSONImpl( const tr_benc * top, struct evbuffer * out, tr_bool doIndent )
    14091409{
    14101410    struct jsonWalk data;
     
    14201420    if( EVBUFFER_LENGTH( out ) )
    14211421        evbuffer_add_printf( out, "\n" );
    1422 
     1422}
     1423
     1424char*
     1425tr_bencSaveAsJSON( const tr_benc * top, struct evbuffer * out, tr_bool doIndent )
     1426{
     1427    tr_bencSaveAsJSONImpl( top, out, doIndent );
    14231428    return (char*) EVBUFFER_DATA( out );
    14241429}
     
    15261531
    15271532static int
    1528 saveFile( const char * filename,
    1529           const char * content,
    1530           size_t       len )
    1531 {
    1532     int    err = 0;
    1533     FILE * out = NULL;
    1534 
    1535     out = fopen( filename, "wb+" );
    1536 
    1537     if( !out )
     1533saveFile( const char * filename, struct evbuffer * buf )
     1534{
     1535    int err = 0;
     1536    int fd = tr_open_file_for_writing( filename );
     1537
     1538    if( fd < 0 )
    15381539    {
    15391540        err = errno;
     
    15411542                filename, tr_strerror( errno ) );
    15421543    }
    1543     else if( fwrite( content, sizeof( char ), len, out ) != (size_t)len )
     1544    else if( evbuffer_write( buf, fd ) == -1 )
    15441545    {
    15451546        err = errno;
     
    15501551    if( !err )
    15511552        tr_dbg( "tr_bencSaveFile saved \"%s\"", filename );
    1552     if( out )
    1553         fclose( out );
     1553    if( fd >= 0 )
     1554        close( fd );
     1555
    15541556    return err;
    15551557}
    15561558
    15571559int
    1558 tr_bencSaveFile( const char *    filename,
    1559                  const tr_benc * b )
    1560 {
    1561     int       len;
    1562     char *    content = tr_bencSave( b, &len );
    1563     const int err = saveFile( filename, content, len );
    1564 
    1565     tr_free( content );
     1560tr_bencSaveFile( const char * filename, const tr_benc * top )
     1561{
     1562    int err;
     1563    struct evbuffer * buf = evbuffer_new( );
     1564    bencWalk( top, &saveFuncs, buf );
     1565    err = saveFile( filename, buf );
     1566    evbuffer_free( buf );
    15661567    return err;
    15671568}
    15681569
    15691570int
    1570 tr_bencSaveJSONFile( const char *    filename,
    1571                      const tr_benc * b )
    1572 {
    1573     struct evbuffer * buf = tr_getBuffer( );
    1574     const char * json = tr_bencSaveAsJSON( b, buf, TRUE );
    1575     const int err = saveFile( filename, json, EVBUFFER_LENGTH( buf ) );
    1576     tr_releaseBuffer( buf );
     1571tr_bencSaveJSONFile( const char * filename, const tr_benc * top )
     1572{
     1573    int err;
     1574    struct evbuffer * buf = evbuffer_new( );
     1575    tr_bencSaveAsJSONImpl( top, buf, TRUE );
     1576    err = saveFile( filename, buf );
     1577    evbuffer_free( buf );
    15771578    return err;
    15781579}
Note: See TracChangeset for help on using the changeset viewer.