Ignore:
Timestamp:
Sep 25, 2006, 6:37:45 PM (15 years ago)
Author:
joshe
Message:

Merge nat-traversal branch to trunk.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/bencode.c

    r543 r920  
    2626
    2727#define LIST_SIZE   20
    28 #define OUTBUF_SIZE 100
    29 
    30 static int tr_bencSprintf( char ** buf, size_t * used, size_t * max,
    31                            char * format, ... )
    32 #ifdef __GNUC__
    33     __attribute__ ((format (printf, 4, 5)))
    34 #endif
    35     ;
    36 
    37 int _tr_bencLoad( char * buf, size_t len, benc_val_t * val, char ** end )
     28
     29int _tr_bencLoad( char * buf, int len, benc_val_t * val, char ** end )
    3830{
    3931    char * p, * e, * foo;
     
    9082        cur              = &buf[1];
    9183        str_expected     = 1;
    92         while( (size_t)(cur - buf) < len && cur[0] != 'e' )
     84        while( cur - buf < len && cur[0] != 'e' )
    9385        {
    9486            if( val->val.l.count == val->val.l.alloc )
     
    140132
    141133        if( p != e || 0 > val->val.s.i ||
    142             (size_t)(val->val.s.i) > len - ((p + 1) - buf) )
     134            val->val.s.i > len - ((p + 1) - buf) )
    143135        {
    144136            return 1;
     
    241233}
    242234
    243 char * tr_bencSaveMalloc( benc_val_t * val, size_t * len )
     235char * tr_bencSaveMalloc( benc_val_t * val, int * len )
    244236{
    245237    char * buf   = NULL;
    246     size_t alloc = 0;
     238    int alloc = 0;
    247239
    248240    *len = 0;
     
    260252}
    261253
    262 int tr_bencSave( benc_val_t * val, char ** buf, size_t * used, size_t * max )
     254int tr_bencSave( benc_val_t * val, char ** buf, int * used, int * max )
    263255{
    264256    int ii;   
     
    267259    {
    268260        case TYPE_INT:
    269             if( tr_bencSprintf( buf, used, max, "i%"PRIu64"e", val->val.i ) )
     261            if( tr_sprintf( buf, used, max, "i%"PRIu64"e", val->val.i ) )
    270262            {
    271263                return 1;
     
    278270                return 1;
    279271            }
    280             if( tr_bencSprintf( buf, used, max, "%i:%s",
    281                                 val->val.s.i, val->val.s.s ) )
     272            if( tr_sprintf( buf, used, max, "%i:%s",
     273                            val->val.s.i, val->val.s.s ) )
    282274            {
    283275                return 1;
     
    287279        case TYPE_LIST:
    288280        case TYPE_DICT:
    289             if( tr_bencSprintf( buf, used, max,
    290                                 (TYPE_LIST == val->type ? "l" : "d") ) )
     281            if( tr_sprintf( buf, used, max,
     282                            (TYPE_LIST == val->type ? "l" : "d") ) )
    291283            {
    292284                return 1;
     
    299291                }
    300292            }
    301             if( tr_bencSprintf( buf, used, max, "e" ) )
     293            if( tr_sprintf( buf, used, max, "e" ) )
    302294            {
    303295                return 1;
     
    308300    return 0;
    309301}
    310 
    311 static int tr_bencSprintf( char ** buf, size_t * used, size_t * max,
    312                            char * format, ... )
    313 {
    314     va_list ap;
    315     int     want;
    316     char  * newbuf;
    317 
    318     va_start( ap, format );
    319     want = vsnprintf( NULL, 0, format, ap );
    320     va_end(ap);
    321 
    322     while( *used + want + 1 > *max )
    323     {
    324         *max += OUTBUF_SIZE;
    325         newbuf = realloc( *buf, *max );
    326         if( NULL == newbuf )
    327         {
    328             return 1;
    329         }
    330         *buf = newbuf;
    331     }
    332 
    333     va_start( ap, format );
    334     *used += vsnprintf( *buf + *used, *max - *used, format, ap );
    335     va_end( ap );
    336 
    337     return 0;
    338 }
Note: See TracChangeset for help on using the changeset viewer.