Changeset 5127
- Timestamp:
- Feb 26, 2008, 9:58:58 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/daemon/client.c
r3578 r5127 40 40 #include <libtransmission/ipcparse.h> 41 41 #include <libtransmission/trcompat.h> 42 #include <libtransmission/version.h> 42 43 43 44 #include "bsdqueue.h" -
trunk/gtk/conf.c
r4404 r5127 301 301 gchar * contents = NULL; 302 302 gsize contents_len = 0; 303 benc_val_ttop;304 305 memset( &top, 0, sizeof( benc_val_t) );303 tr_benc top; 304 305 memset( &top, 0, sizeof(tr_benc) ); 306 306 307 307 if( g_file_get_contents( oldfile, &contents, &contents_len, NULL ) … … 312 312 g_string_append( out, "\n[general]\n" ); 313 313 for ( i=0; i<G_N_ELEMENTS(pref_table); ++i ) { 314 const benc_val_t* val = tr_bencDictFind( &top, pref_table[i].oldkey );314 const tr_benc * val = tr_bencDictFind( &top, pref_table[i].oldkey ); 315 315 if( val != NULL ) { 316 316 const char * valstr = val->val.s.s; -
trunk/gtk/conf.h
r4404 r5127 48 48 **/ 49 49 50 struct benc_val_s;51 52 50 gboolean 53 51 cf_init(const char *confdir, char **errstr); -
trunk/gtk/ipc.c
r5125 r5127 112 112 113 113 static void 114 all_default( enum ipc_msg id, benc_val_t* val UNUSED, int64_t tag, void * arg )114 all_default( enum ipc_msg id, tr_benc * val UNUSED, int64_t tag, void * arg ) 115 115 { 116 116 switch( id ) … … 165 165 uint8_t * buf; 166 166 size_t size; 167 benc_val_tpacket, * val;167 tr_benc packet, * val; 168 168 int saved; 169 169 … … 492 492 493 493 static void 494 smsg_add( enum ipc_msg id UNUSED, benc_val_t* val, int64_t tag, void * arg )494 smsg_add( enum ipc_msg id UNUSED, tr_benc * val, int64_t tag, void * arg ) 495 495 { 496 496 struct constate * con = arg; 497 497 struct constate_serv * srv = &con->u.serv; 498 benc_val_t* path;498 tr_benc * path; 499 499 int ii; 500 500 tr_ctor * ctor; … … 530 530 531 531 static void 532 smsg_addone( enum ipc_msg id UNUSED, benc_val_t* val, int64_t tag,532 smsg_addone( enum ipc_msg id UNUSED, tr_benc * val, int64_t tag, 533 533 void * arg ) 534 534 { 535 535 struct constate * con = arg; 536 536 struct constate_serv * srv = &con->u.serv; 537 benc_val_t* file, * data, * dir, * start;537 tr_benc * file, * data, * dir, * start; 538 538 tr_ctor * ctor; 539 539 … … 577 577 578 578 static void 579 smsg_quit( enum ipc_msg id UNUSED, benc_val_t* val UNUSED, int64_t tag UNUSED,579 smsg_quit( enum ipc_msg id UNUSED, tr_benc * val UNUSED, int64_t tag UNUSED, 580 580 void * arg UNUSED ) 581 581 { … … 587 587 588 588 static void 589 smsg_noop( enum ipc_msg id UNUSED, benc_val_t* val UNUSED, int64_t tag,589 smsg_noop( enum ipc_msg id UNUSED, tr_benc * val UNUSED, int64_t tag, 590 590 void * arg ) 591 591 { … … 627 627 static int 628 628 addinfo( TrTorrent * tor, enum ipc_msg msgid, int torid, int types, 629 benc_val_t* val )629 tr_benc * val ) 630 630 { 631 631 if( IPC_MSG_INFO == msgid ) … … 642 642 643 643 static void 644 smsg_info( enum ipc_msg id, benc_val_t* val, int64_t tag, void * arg )644 smsg_info( enum ipc_msg id, tr_benc * val, int64_t tag, void * arg ) 645 645 { 646 646 struct constate * con = arg; 647 647 struct constate_serv * srv = &con->u.serv; 648 648 enum ipc_msg respid; 649 benc_val_t* ids, * types, * idval, packet, * pkval;649 tr_benc * ids, * types, * idval, packet, * pkval; 650 650 int typeflags, ii; 651 651 TrTorrent * tor; … … 705 705 706 706 static void 707 smsg_infoall( enum ipc_msg id, benc_val_t* val, int64_t tag, void * arg )707 smsg_infoall( enum ipc_msg id, tr_benc * val, int64_t tag, void * arg ) 708 708 { 709 709 struct constate * con = arg; 710 710 struct constate_serv * srv = &con->u.serv; 711 711 enum ipc_msg respid; 712 benc_val_tpacket, * pkval;712 tr_benc packet, * pkval; 713 713 int typeflags; 714 714 GtkTreeModel * model; … … 794 794 795 795 static void 796 smsg_look( enum ipc_msg id UNUSED, benc_val_t* val, int64_t tag,796 smsg_look( enum ipc_msg id UNUSED, tr_benc * val, int64_t tag, 797 797 void * arg ) 798 798 { 799 799 struct constate * con = arg; 800 800 struct constate_serv * srv = &con->u.serv; 801 benc_val_tpacket, * pkval, * hash;801 tr_benc packet, * pkval, * hash; 802 802 int ii, torid; 803 803 TrTorrent * tor; … … 850 850 851 851 static void 852 smsg_tor( enum ipc_msg id, benc_val_t* val, int64_t tag, void * arg )852 smsg_tor( enum ipc_msg id, tr_benc * val, int64_t tag, void * arg ) 853 853 { 854 854 struct constate * con = arg; 855 855 struct constate_serv * srv = &con->u.serv; 856 benc_val_t* idval;856 tr_benc * idval; 857 857 TrTorrent * tor; 858 858 GtkTreeIter iter; … … 897 897 898 898 static void 899 smsg_torall( enum ipc_msg id, benc_val_t* val UNUSED, int64_t tag,899 smsg_torall( enum ipc_msg id, tr_benc * val UNUSED, int64_t tag, 900 900 void * arg ) 901 901 { … … 942 942 943 943 static void 944 smsg_pref( enum ipc_msg id, benc_val_t* val UNUSED, int64_t tag, void * arg )944 smsg_pref( enum ipc_msg id, tr_benc * val UNUSED, int64_t tag, void * arg ) 945 945 { 946 946 struct constate * con = arg; … … 1000 1000 1001 1001 static void 1002 smsg_int( enum ipc_msg id, benc_val_t* val, int64_t tag, void * arg )1002 smsg_int( enum ipc_msg id, tr_benc * val, int64_t tag, void * arg ) 1003 1003 { 1004 1004 struct constate * con = arg; … … 1054 1054 1055 1055 static void 1056 smsg_str( enum ipc_msg id, benc_val_t* val, int64_t tag, void * arg )1056 smsg_str( enum ipc_msg id, tr_benc * val, int64_t tag, void * arg ) 1057 1057 { 1058 1058 struct constate * con = arg; … … 1077 1077 1078 1078 static void 1079 smsg_sup( enum ipc_msg id UNUSED, benc_val_t* val, int64_t tag, void * arg )1079 smsg_sup( enum ipc_msg id UNUSED, tr_benc * val, int64_t tag, void * arg ) 1080 1080 { 1081 1081 struct constate * con = arg; 1082 benc_val_tpacket, * pkval, * name;1082 tr_benc packet, * pkval, * name; 1083 1083 int ii; 1084 1084 enum ipc_msg found; -
trunk/libtransmission/bencode-test.c
r5126 r5127 140 140 testString( const char * str, int isGood ) 141 141 { 142 benc_val_tval;142 tr_benc val; 143 143 const uint8_t * end = NULL; 144 144 char * saved; … … 163 163 testParse( void ) 164 164 { 165 benc_val_tval;166 benc_val_t* child;167 benc_val_t* child2;165 tr_benc val; 166 tr_benc * child; 167 tr_benc * child2; 168 168 uint8_t buf[512]; 169 169 const uint8_t * end; … … 275 275 uint8_t * in; 276 276 const uint8_t * end; 277 benc_val_tval;277 tr_benc val; 278 278 char * saved; 279 279 -
trunk/libtransmission/bencode.c
r4899 r5127 42 42 43 43 static int 44 isType( const benc_val_t* val, int type )44 isType( const tr_benc * val, int type ) 45 45 { 46 46 return ( ( val != NULL ) && ( val->type == type ) ); … … 53 53 54 54 static int 55 isContainer( const benc_val_t* val )55 isContainer( const tr_benc * val ) 56 56 { 57 57 return isList(val) || isDict(val); 58 58 } 59 59 static int 60 isSomething( const benc_val_t* val )60 isSomething( const tr_benc * val ) 61 61 { 62 62 return isContainer(val) || isInt(val) || isString(val); … … 159 159 160 160 static int 161 makeroom( benc_val_t* val, int count )161 makeroom( tr_benc * val, int count ) 162 162 { 163 163 assert( TYPE_LIST == val->type || TYPE_DICT == val->type ); … … 168 168 const int len = val->val.l.alloc + count + 169 169 ( count % LIST_SIZE ? LIST_SIZE - ( count % LIST_SIZE ) : 0 ); 170 void * new = realloc( val->val.l.vals, len * sizeof( benc_val_t) );170 void * new = realloc( val->val.l.vals, len * sizeof( tr_benc ) ); 171 171 if( NULL == new ) 172 172 return 1; … … 179 179 } 180 180 181 static benc_val_t*182 getNode( benc_val_t* top, tr_ptrArray * parentStack, int type )183 { 184 benc_val_t* parent;181 static tr_benc* 182 getNode( tr_benc * top, tr_ptrArray * parentStack, int type ) 183 { 184 tr_benc * parent; 185 185 186 186 assert( top != NULL ); … … 211 211 tr_bencParse( const void * buf_in, 212 212 const void * bufend_in, 213 benc_val_t* top,213 tr_benc * top, 214 214 const uint8_t ** setme_end ) 215 215 { … … 231 231 const uint8_t * end; 232 232 int err; 233 benc_val_t* node;233 tr_benc * node; 234 234 235 235 if(( err = tr_bencParseInt( buf, bufend, &end, &val ))) … … 248 248 else if( *buf=='l' ) /* list */ 249 249 { 250 benc_val_t* node = getNode( top, parentStack, TYPE_LIST );250 tr_benc * node = getNode( top, parentStack, TYPE_LIST ); 251 251 if( !node ) 252 252 return TR_ERROR; … … 257 257 else if( *buf=='d' ) /* dict */ 258 258 { 259 benc_val_t* node = getNode( top, parentStack, TYPE_DICT );259 tr_benc * node = getNode( top, parentStack, TYPE_DICT ); 260 260 if( !node ) 261 261 return TR_ERROR; … … 266 266 else if( *buf=='e' ) /* end of list or dict */ 267 267 { 268 benc_val_t* node;268 tr_benc * node; 269 269 ++buf; 270 270 if( tr_ptrArrayEmpty( parentStack ) ) … … 285 285 size_t str_len; 286 286 int err; 287 benc_val_t* node;287 tr_benc * node; 288 288 289 289 if(( err = tr_bencParseStr( buf, bufend, &end, &str, &str_len ))) … … 318 318 tr_bencLoad( const void * buf_in, 319 319 int buflen, 320 benc_val_t* setme_benc,320 tr_benc * setme_benc, 321 321 char ** setme_end ) 322 322 { … … 333 333 ***/ 334 334 335 benc_val_t*336 tr_bencDictFind( benc_val_t* val, const char * key )335 tr_benc * 336 tr_bencDictFind( tr_benc * val, const char * key ) 337 337 { 338 338 int len, ii; … … 357 357 } 358 358 359 benc_val_t*360 tr_bencDictFindType( benc_val_t* val, const char * key, int type )361 { 362 benc_val_t* ret = tr_bencDictFind( val, key );359 tr_benc* 360 tr_bencDictFindType( tr_benc * val, const char * key, int type ) 361 { 362 tr_benc * ret = tr_bencDictFind( val, key ); 363 363 return ret && ret->type == type ? ret : NULL; 364 364 } 365 365 366 benc_val_t*367 tr_bencDictFindFirst( benc_val_t* val, ... )366 tr_benc * 367 tr_bencDictFindFirst( tr_benc * val, ... ) 368 368 { 369 369 const char * key; 370 benc_val_t* ret;370 tr_benc * ret; 371 371 va_list ap; 372 372 … … 381 381 } 382 382 383 benc_val_t*384 tr_bencListGetNthChild( benc_val_t* val, int i )385 { 386 benc_val_t* ret = NULL;383 tr_benc* 384 tr_bencListGetNthChild( tr_benc * val, int i ) 385 { 386 tr_benc * ret = NULL; 387 387 if( isList( val ) && ( i >= 0 ) && ( i < val->val.l.count ) ) 388 388 ret = val->val.l.vals + i; … … 391 391 392 392 int64_t 393 tr_bencGetInt ( const benc_val_t* val )393 tr_bencGetInt ( const tr_benc * val ) 394 394 { 395 395 assert( isInt( val ) ); … … 398 398 399 399 char * 400 tr_bencStealStr( benc_val_t* val )400 tr_bencStealStr( tr_benc * val ) 401 401 { 402 402 assert( isString( val ) ); … … 410 410 411 411 void 412 _tr_bencInitStr( benc_val_t* val, char * str, int len, int nofree )412 _tr_bencInitStr( tr_benc * val, char * str, int len, int nofree ) 413 413 { 414 414 tr_bencInit( val, TYPE_STR ); … … 423 423 424 424 int 425 tr_bencInitStrDup( benc_val_t* val, const char * str )425 tr_bencInitStrDup( tr_benc * val, const char * str ) 426 426 { 427 427 char * newStr = tr_strdup( str ); … … 434 434 435 435 void 436 tr_bencInitInt( benc_val_t* val, int64_t num )436 tr_bencInitInt( tr_benc * val, int64_t num ) 437 437 { 438 438 tr_bencInit( val, TYPE_INT ); … … 441 441 442 442 int 443 tr_bencListReserve( benc_val_t* val, int count )443 tr_bencListReserve( tr_benc * val, int count ) 444 444 { 445 445 assert( isList( val ) ); … … 449 449 450 450 int 451 tr_bencDictReserve( benc_val_t* val, int count )451 tr_bencDictReserve( tr_benc * val, int count ) 452 452 { 453 453 assert( isDict( val ) ); … … 456 456 } 457 457 458 benc_val_t*459 tr_bencListAdd( benc_val_t* list )460 { 461 benc_val_t* item;458 tr_benc * 459 tr_bencListAdd( tr_benc * list ) 460 { 461 tr_benc * item; 462 462 463 463 assert( isList( list ) ); … … 471 471 } 472 472 473 benc_val_t*474 tr_bencDictAdd( benc_val_t* dict, const char * key )475 { 476 benc_val_t* keyval, * itemval;473 tr_benc * 474 tr_bencDictAdd( tr_benc * dict, const char * key ) 475 { 476 tr_benc * keyval, * itemval; 477 477 478 478 assert( isDict( dict ) ); … … 508 508 struct SaveNode 509 509 { 510 const benc_val_t* val;510 const tr_benc * val; 511 511 int valIsVisited; 512 512 int childCount; … … 516 516 517 517 static struct SaveNode* 518 nodeNewDict( const benc_val_t* val )518 nodeNewDict( const tr_benc * val ) 519 519 { 520 520 int i, j; … … 549 549 550 550 static struct SaveNode* 551 nodeNewList( const benc_val_t* val )551 nodeNewList( const tr_benc * val ) 552 552 { 553 553 int i, n; … … 568 568 569 569 static struct SaveNode* 570 nodeNewLeaf( const benc_val_t* val )570 nodeNewLeaf( const tr_benc * val ) 571 571 { 572 572 struct SaveNode * node; … … 580 580 581 581 static struct SaveNode* 582 nodeNew( const benc_val_t* val )582 nodeNew( const tr_benc * val ) 583 583 { 584 584 struct SaveNode * node; … … 594 594 } 595 595 596 typedef void (*BencWalkFunc)( const benc_val_t* val, void * user_data );596 typedef void (*BencWalkFunc)( const tr_benc * val, void * user_data ); 597 597 598 598 struct WalkFuncs … … 611 611 */ 612 612 static void 613 bencWalk( const benc_val_t* top,613 bencWalk( const tr_benc * top, 614 614 struct WalkFuncs * walkFuncs, 615 615 void * user_data ) … … 621 621 { 622 622 struct SaveNode * node = tr_ptrArrayBack( stack ); 623 const benc_val_t* val;623 const tr_benc * val; 624 624 625 625 if( !node->valIsVisited ) … … 682 682 683 683 static void 684 saveIntFunc( const benc_val_t* val, void * evbuf )684 saveIntFunc( const tr_benc * val, void * evbuf ) 685 685 { 686 686 evbuffer_add_printf( evbuf, "i%"PRId64"e", tr_bencGetInt(val) ); 687 687 } 688 688 static void 689 saveStringFunc( const benc_val_t* val, void * vevbuf )689 saveStringFunc( const tr_benc * val, void * vevbuf ) 690 690 { 691 691 struct evbuffer * evbuf = vevbuf; … … 694 694 } 695 695 static void 696 saveDictBeginFunc( const benc_val_t* val UNUSED, void * evbuf )696 saveDictBeginFunc( const tr_benc * val UNUSED, void * evbuf ) 697 697 { 698 698 evbuffer_add_printf( evbuf, "d" ); 699 699 } 700 700 static void 701 saveListBeginFunc( const benc_val_t* val UNUSED, void * evbuf )701 saveListBeginFunc( const tr_benc * val UNUSED, void * evbuf ) 702 702 { 703 703 evbuffer_add_printf( evbuf, "l" ); 704 704 } 705 705 static void 706 saveContainerEndFunc( const benc_val_t* val UNUSED, void * evbuf )706 saveContainerEndFunc( const tr_benc * val UNUSED, void * evbuf ) 707 707 { 708 708 evbuffer_add_printf( evbuf, "e" ); 709 709 } 710 710 char* 711 tr_bencSave( const benc_val_t* top, int * len )711 tr_bencSave( const tr_benc * top, int * len ) 712 712 { 713 713 char * ret; … … 734 734 735 735 static void 736 freeDummyFunc( const benc_val_t* val UNUSED, void * buf UNUSED )737 { 738 } 739 static void 740 freeStringFunc( const benc_val_t* val, void * freeme )736 freeDummyFunc( const tr_benc * val UNUSED, void * buf UNUSED ) 737 { 738 } 739 static void 740 freeStringFunc( const tr_benc * val, void * freeme ) 741 741 { 742 742 if( !val->val.s.nofree ) … … 744 744 } 745 745 static void 746 freeContainerBeginFunc( const benc_val_t* val, void * freeme )746 freeContainerBeginFunc( const tr_benc * val, void * freeme ) 747 747 { 748 748 tr_ptrArrayAppend( freeme, val->val.l.vals ); 749 749 } 750 750 void 751 tr_bencFree( benc_val_t* val )751 tr_bencFree( tr_benc * val ) 752 752 { 753 753 if( val != NULL ) … … 783 783 } 784 784 static void 785 printIntFunc( const benc_val_t* val, void * vdata )785 printIntFunc( const tr_benc * val, void * vdata ) 786 786 { 787 787 struct WalkPrint * data = vdata; … … 790 790 } 791 791 static void 792 printStringFunc( const benc_val_t* val, void * vdata )792 printStringFunc( const tr_benc * val, void * vdata ) 793 793 { 794 794 int ii; … … 810 810 } 811 811 static void 812 printListBeginFunc( const benc_val_t* val UNUSED, void * vdata )812 printListBeginFunc( const tr_benc * val UNUSED, void * vdata ) 813 813 { 814 814 struct WalkPrint * data = vdata; … … 818 818 } 819 819 static void 820 printDictBeginFunc( const benc_val_t* val UNUSED, void * vdata )820 printDictBeginFunc( const tr_benc * val UNUSED, void * vdata ) 821 821 { 822 822 struct WalkPrint * data = vdata; … … 826 826 } 827 827 static void 828 printContainerEndFunc( const benc_val_t* val UNUSED, void * vdata )828 printContainerEndFunc( const tr_benc * val UNUSED, void * vdata ) 829 829 { 830 830 struct WalkPrint * data = vdata; … … 832 832 } 833 833 void 834 tr_bencPrint( benc_val_t* val )834 tr_bencPrint( const tr_benc * val ) 835 835 { 836 836 struct WalkFuncs walkFuncs; -
trunk/libtransmission/bencode.h
r4898 r5127 29 29 #include <string.h> /* for memset */ 30 30 31 typedef struct benc_val_s31 typedef struct tr_benc 32 32 { 33 33 #define TYPE_INT 1 … … 49 49 int alloc; 50 50 int count; 51 struct benc_val_s* vals;51 struct tr_benc * vals; 52 52 } l; 53 53 } val; 54 } benc_val_t;54 } tr_benc; 55 55 56 /* backwards compatability */ 57 typedef tr_benc benc_val_t; 56 58 57 int 58 59 benc_val_t* setme_benc,60 59 int tr_bencParse( const void * buf, 60 const void * bufend, 61 tr_benc * setme_benc, 62 const uint8_t ** setme_end ); 61 63 62 int 63 64 benc_val_t* setme_benc,65 64 int tr_bencLoad( const void * buf, 65 int buflen, 66 tr_benc * setme_benc, 67 char ** setme_end ); 66 68 67 void tr_bencPrint( benc_val_t * val);68 void tr_bencFree( benc_val_t * val);69 benc_val_t * tr_bencDictFind( benc_val_t * val, const char * key );70 benc_val_t * tr_bencDictFindType( benc_val_t * val, const char * key, int type );71 benc_val_t * tr_bencDictFindFirst( benc_val_t * val, ... );69 void tr_bencPrint( const tr_benc * ); 70 void tr_bencFree( tr_benc * ); 71 tr_benc * tr_bencDictFind( tr_benc * dict, const char * key ); 72 tr_benc * tr_bencDictFindType( tr_benc * dict, const char * key, int type ); 73 tr_benc * tr_bencDictFindFirst( tr_benc * dict, ... ); 72 74 73 75 /* marks a string as 'do not free' and returns it */ 74 char * tr_bencStealStr( benc_val_t* val );76 char * tr_bencStealStr( tr_benc * val ); 75 77 76 /* convenience functions for building benc_val_tstructures */78 /* convenience functions for building tr_benc structures */ 77 79 78 static inline void tr_bencInit( benc_val_t* val, int type )80 static inline void tr_bencInit( tr_benc * val, int type ) 79 81 { 80 82 memset( val, 0, sizeof( *val ) ); … … 84 86 #define tr_bencInitStr( a, b, c, d ) \ 85 87 _tr_bencInitStr( (a), ( char * )(b), (c), (d) ) 86 void _tr_bencInitStr( benc_val_t* val, char * str, int len, int nofree );87 int tr_bencInitStrDup( benc_val_t* val, const char * str );88 void tr_bencInitInt( benc_val_t* val, int64_t num );89 int tr_bencListReserve( benc_val_t* list, int count );88 void _tr_bencInitStr( tr_benc * val, char * str, int len, int nofree ); 89 int tr_bencInitStrDup( tr_benc * val, const char * str ); 90 void tr_bencInitInt( tr_benc * val, int64_t num ); 91 int tr_bencListReserve( tr_benc * list, int count ); 90 92 /* note that for one key-value pair, count should be 1, not 2 */ 91 int tr_bencDictReserve( benc_val_t* dict, int count );92 benc_val_t * tr_bencListAdd( benc_val_t* list );93 int tr_bencDictReserve( tr_benc * dict, int count ); 94 tr_benc * tr_bencListAdd( tr_benc * list ); 93 95 /* note: key must not be freed or modified while val is in use */ 94 benc_val_t * tr_bencDictAdd( benc_val_t* dict, const char * key );96 tr_benc * tr_bencDictAdd( tr_benc * dict, const char * key ); 95 97 96 char* tr_bencSave( const benc_val_t* val, int * len );98 char* tr_bencSave( const tr_benc * val, int * len ); 97 99 98 int64_t tr_bencGetInt ( const benc_val_t* val );100 int64_t tr_bencGetInt( const tr_benc * val ); 99 101 100 102 … … 119 121 **/ 120 122 121 benc_val_t* tr_bencListGetNthChild( benc_val_t * val, int i ); 122 123 123 tr_benc * tr_bencListGetNthChild( tr_benc * list, int n ); 124 124 125 125 -
trunk/libtransmission/ipcparse.c
r4734 r5127 31 31 32 32 #include "transmission.h" 33 #include "bencode.h" 33 34 #include "utils.h" 34 35 … … 219 220 }; 220 221 221 static int handlevers ( struct ipc_info *, benc_val_t* );222 static int handlemsgs ( struct ipc_info *, benc_val_t*, void * );223 static int gotmsg ( struct ipc_info *, benc_val_t *, benc_val_t*,224 benc_val_t*, void * );222 static int handlevers ( struct ipc_info *, tr_benc * ); 223 static int handlemsgs ( struct ipc_info *, tr_benc *, void * ); 224 static int gotmsg ( struct ipc_info *, tr_benc *, tr_benc *, 225 tr_benc *, void * ); 225 226 static int msgcmp ( struct msg *, struct msg * ); 226 227 static int infcmp ( struct inf *, struct inf * ); 227 228 static struct msg * msglookup ( const char * ); 228 static int filltracker( benc_val_t*, const tr_tracker_info * );229 static int filltracker( tr_benc *, const tr_tracker_info * ); 229 230 static int handlercmp ( struct msgfunc *, struct msgfunc * ); 230 231 … … 321 322 } 322 323 323 benc_val_t*324 tr_benc * 324 325 ipc_initval( struct ipc_info * info, enum ipc_msg id, int64_t tag, 325 benc_val_t* pk, int type )326 { 327 benc_val_t* ret;326 tr_benc * pk, int type ) 327 { 328 tr_benc * ret; 328 329 329 330 assert( MSGVALID( id ) ); … … 365 366 366 367 uint8_t * 367 ipc_mkval( benc_val_t* pk, size_t * setmeSize )368 ipc_mkval( tr_benc * pk, size_t * setmeSize ) 368 369 { 369 370 int bencSize = 0; … … 389 390 int64_t tag ) 390 391 { 391 benc_val_tpk;392 tr_benc pk; 392 393 uint8_t * ret; 393 394 … … 407 408 int64_t num ) 408 409 { 409 benc_val_tpk, * val;410 tr_benc pk, * val; 410 411 uint8_t * ret; 411 412 … … 427 428 const char * str ) 428 429 { 429 benc_val_tpk, * val;430 tr_benc pk, * val; 430 431 uint8_t * ret; 431 432 … … 446 447 ipc_mkvers( size_t * len, const char * label ) 447 448 { 448 benc_val_tpk, * dict;449 tr_benc pk, * dict; 449 450 uint8_t * ret; 450 451 … … 477 478 int64_t tag, int types, const int * ids ) 478 479 { 479 benc_val_tpk, * top, * idlist, * typelist;480 tr_benc pk, * top, * idlist, * typelist; 480 481 size_t ii, typecount, used; 481 482 struct inf * typearray; … … 572 573 573 574 int 574 ipc_addinfo( benc_val_t* list, int tor, const tr_info * inf, int types )575 { 576 benc_val_t* dict, * item, * file, * tier;575 ipc_addinfo( tr_benc * list, int tor, const tr_info * inf, int types ) 576 { 577 tr_benc * dict, * item, * file, * tier; 577 578 int ii, jj, kk; 578 579 … … 708 709 709 710 int 710 ipc_addstat( benc_val_t* list, int tor,711 ipc_addstat( tr_benc * list, int tor, 711 712 const tr_stat * st, int types ) 712 713 { 713 benc_val_t* dict, * item;714 tr_benc * dict, * item; 714 715 int ii, used; 715 716 tr_errno error; … … 916 917 char hex[IPC_MIN_MSG_LEN+1], * end; 917 918 ssize_t off, len; 918 benc_val_tbenc;919 tr_benc benc; 919 920 920 921 for( off = 0; off + IPC_MIN_MSG_LEN < total; off += IPC_MIN_MSG_LEN + len ) … … 956 957 957 958 static int 958 handlevers( struct ipc_info * info, benc_val_t* dict )959 { 960 benc_val_t* vers, * num;959 handlevers( struct ipc_info * info, tr_benc * dict ) 960 { 961 tr_benc * vers, * num; 961 962 int64_t min, max; 962 963 … … 1016 1017 1017 1018 static int 1018 handlemsgs( struct ipc_info * info, benc_val_t* pay, void * arg )1019 { 1020 benc_val_t* name, * val, * tag;1019 handlemsgs( struct ipc_info * info, tr_benc * pay, void * arg ) 1020 { 1021 tr_benc * name, * val, * tag; 1021 1022 int ii; 1022 1023 … … 1063 1064 1064 1065 static int 1065 gotmsg( struct ipc_info * info, benc_val_t * name, benc_val_t* val,1066 benc_val_t* tagval, void * arg )1066 gotmsg( struct ipc_info * info, tr_benc * name, tr_benc * val, 1067 tr_benc * tagval, void * arg ) 1067 1068 { 1068 1069 struct msgfunc key, * handler; … … 1153 1154 1154 1155 int 1155 ipc_infotypes( enum ipc_msg id, benc_val_t* list )1156 ipc_infotypes( enum ipc_msg id, tr_benc * list ) 1156 1157 { 1157 1158 static struct inftree infotree = RB_INITIALIZER( &tree ); 1158 1159 static struct inftree stattree = RB_INITIALIZER( &tree ); 1159 1160 struct inftree * tree; 1160 benc_val_t* name;1161 tr_benc * name; 1161 1162 struct inf * array, * inf, key; 1162 1163 size_t len, ii; … … 1287 1288 1288 1289 static int 1289 filltracker( benc_val_t* val, const tr_tracker_info * tk )1290 filltracker( tr_benc * val, const tr_tracker_info * tk ) 1290 1291 { 1291 1292 tr_bencInit( val, TYPE_DICT ); -
trunk/libtransmission/ipcparse.h
r4404 r5127 28 28 #include <inttypes.h> 29 29 #include <unistd.h> /* for ssize_t */ 30 31 /* yay for typedefs, we can't forward declare benc_val_t or tr_info32 like with structs */33 #include "bencode.h"34 #include "transmission.h"35 30 36 31 #define IPC_MIN_MSG_LEN ( 8 ) … … 126 121 struct ipc_info; 127 122 struct strlist; 123 struct tr_info; 124 struct tr_benc; 125 struct tr_stat; 128 126 129 127 struct ipc_info … … 139 137 #define TORRENT_ID_VALID( id ) ( 0 < (id) && INT_MAX > (id) ) 140 138 141 typedef void ( *trd_msgfunc )( enum ipc_msg, benc_val_t*, int64_t, void * );139 typedef void ( *trd_msgfunc )( enum ipc_msg, struct tr_benc *, int64_t, void * ); 142 140 143 141 /* any of these functions that can fail may set errno for any of the … … 154 152 /* message creation */ 155 153 /* sets errno to EPERM if requested message not supported by protocol vers */ 156 benc_val_t* ipc_initval ( struct ipc_info *, enum ipc_msg, int64_t,157 benc_val_t*, int );158 uint8_t * ipc_mkval ( benc_val_t*, size_t * );154 struct tr_benc * ipc_initval ( struct ipc_info *, enum ipc_msg, int64_t, 155 struct tr_benc *, int ); 156 uint8_t * ipc_mkval ( struct tr_benc *, size_t * ); 159 157 uint8_t * ipc_mkempty ( struct ipc_info *, size_t *, enum ipc_msg, 160 158 int64_t ); … … 166 164 uint8_t * ipc_mkgetinfo( struct ipc_info *, size_t *, enum ipc_msg, int64_t, 167 165 int, const int * ); 168 int ipc_addinfo ( benc_val_t *, int, const tr_info *, int );169 int ipc_addstat ( benc_val_t *, int, const tr_stat *, int );166 int ipc_addinfo ( struct tr_benc *, int, const struct tr_info *, int ); 167 int ipc_addstat ( struct tr_benc *, int, const struct tr_stat *, int ); 170 168 171 169 /* sets errno to EINVAL on parse error or … … 178 176 int ipc_ishandled( struct ipc_info *, enum ipc_msg ); 179 177 int ipc_havetags ( struct ipc_info * ); 180 int ipc_infotypes( enum ipc_msg, benc_val_t* );178 int ipc_infotypes( enum ipc_msg, struct tr_benc * ); 181 179 const char * ipc_infoname ( enum ipc_msg, int ); 182 180 -
trunk/libtransmission/makemeta.c
r5085 r5127 259 259 getFileInfo( const char * topFile, 260 260 const tr_metainfo_builder_file * file, 261 benc_val_t* uninitialized_length,262 benc_val_t* uninitialized_path )263 { 264 benc_val_t*sub;261 tr_benc * uninitialized_length, 262 tr_benc * uninitialized_path ) 263 { 264 tr_benc *sub; 265 265 const char *pch, *prev; 266 266 const size_t topLen = strlen(topFile) + 1; /* +1 for '/' */ … … 297 297 298 298 static void 299 makeFilesList( benc_val_t* list,299 makeFilesList( tr_benc * list, 300 300 const tr_metainfo_builder * builder ) 301 301 { … … 306 306 for( i=0; i<builder->fileCount; ++i ) 307 307 { 308 benc_val_t* dict = tr_bencListAdd( list );309 benc_val_t*length, *pathVal;308 tr_benc * dict = tr_bencListAdd( list ); 309 tr_benc *length, *pathVal; 310 310 311 311 tr_bencInit( dict, TYPE_DICT ); … … 318 318 319 319 static void 320 makeInfoDict ( benc_val_t* dict,320 makeInfoDict ( tr_benc * dict, 321 321 tr_metainfo_builder * builder ) 322 322 { 323 323 uint8_t * pch; 324 benc_val_t* val;324 tr_benc * val; 325 325 char base[MAX_PATH_LENGTH]; 326 326 … … 357 357 { 358 358 int n = 5; 359 benc_val_ttop, *val;359 tr_benc top, *val; 360 360 361 361 tr_bencInit ( &top, TYPE_DICT ); -
trunk/libtransmission/metainfo.c
r5112 r5127 70 70 * Local prototypes 71 71 **********************************************************************/ 72 static int getannounce( tr_info * inf, benc_val_t* meta );72 static int getannounce( tr_info * inf, tr_benc * meta ); 73 73 static char * announceToScrape( const char * announce ); 74 static int parseFiles( tr_info * inf, benc_val_t* name,75 benc_val_t * files, benc_val_t* length );74 static int parseFiles( tr_info * inf, tr_benc * name, 75 tr_benc * files, tr_benc * length ); 76 76 77 77 /*** … … 170 170 171 171 int 172 tr_metainfoParse( tr_info * inf, const benc_val_t* meta_in, const char * tag )172 tr_metainfoParse( tr_info * inf, const tr_benc * meta_in, const char * tag ) 173 173 { 174 174 int i; 175 benc_val_t* beInfo, * val, * val2;176 benc_val_t * meta = (benc_val_t*) meta_in;175 tr_benc * beInfo, * val, * val2; 176 tr_benc * meta = (tr_benc *) meta_in; 177 177 char buf[4096]; 178 178 … … 326 326 } 327 327 328 static int getfile( char ** setme,329 const char * prefix, benc_val_t* name )330 { 331 benc_val_t* dir;328 static int 329 getfile( char ** setme, const char * prefix, tr_benc * name ) 330 { 331 tr_benc * dir; 332 332 const char ** list; 333 333 int ii, jj; … … 387 387 } 388 388 389 static int getannounce( tr_info * inf, benc_val_t* meta )390 { 391 benc_val_t* val, * subval, * urlval;389 static int getannounce( tr_info * inf, tr_benc * meta ) 390 { 391 tr_benc * val, * subval, * urlval; 392 392 char * address, * announce; 393 393 int ii, jj, port, random, subcount; … … 627 627 628 628 static int 629 parseFiles( tr_info * inf, benc_val_t* name,630 benc_val_t * files, benc_val_t* length )631 { 632 benc_val_t* item, * path;629 parseFiles( tr_info * inf, tr_benc * name, 630 tr_benc * files, tr_benc * length ) 631 { 632 tr_benc * item, * path; 633 633 int ii; 634 634 -
trunk/libtransmission/metainfo.h
r4404 r5127 28 28 #include "transmission.h" 29 29 30 struct benc_val_t;30 struct tr_benc; 31 31 32 int tr_metainfoParse( tr_info *, const struct benc_val_s*, const char * tag );32 int tr_metainfoParse( tr_info *, const struct tr_benc *, const char * tag ); 33 33 void tr_metainfoFree( tr_info * inf ); 34 34 void tr_metainfoRemoveSaved( const char * hashString, const char * tag ); -
trunk/libtransmission/peer-msgs.c
r5065 r5127 768 768 sendLtepHandshake( tr_peermsgs * msgs ) 769 769 { 770 benc_val_tval, *m;770 tr_benc val, *m; 771 771 char * buf; 772 772 int len; … … 827 827 parseLtepHandshake( tr_peermsgs * msgs, int len, struct evbuffer * inbuf ) 828 828 { 829 benc_val_tval, * sub;829 tr_benc val, * sub; 830 830 uint8_t * tmp = tr_new( uint8_t, len ); 831 831 … … 876 876 int gotval = 0; 877 877 uint8_t * tmp = tr_new( uint8_t, msglen ); 878 benc_val_tval, *sub;878 tr_benc val, *sub; 879 879 tr_peerIoReadBytes( msgs->io, inbuf, tmp, msglen ); 880 880 … … 1735 1735 const int newCount = tr_peerMgrGetPeers( msgs->handle->peerMgr, msgs->torrent->info.hash, &newPex ); 1736 1736 PexDiffs diffs; 1737 benc_val_tval, *added, *dropped, *flags;1737 tr_benc val, *added, *dropped, *flags; 1738 1738 uint8_t *tmp, *walk; 1739 1739 char * benc; -
trunk/libtransmission/stats.c
r5126 r5127 34 34 size_t len ) 35 35 { 36 benc_val_ttop;36 tr_benc top; 37 37 38 38 if( !tr_bencLoad( content, len, &top, NULL ) ) 39 39 { 40 const benc_val_t* val;40 const tr_benc * val; 41 41 42 42 if(( val = tr_bencDictFindType( &top, "uploaded-bytes", TYPE_INT ))) … … 88 88 char filename[MAX_PATH_LENGTH]; 89 89 int len; 90 benc_val_ttop;90 tr_benc top; 91 91 92 92 tr_bencInit( &top, TYPE_DICT ); -
trunk/libtransmission/torrent-ctor.c
r5126 r5127 8 8 * the Transmission project. 9 9 * 10 * $Id :$10 * $Id$ 11 11 */ 12 12 … … 39 39 unsigned int isSet_metainfo : 1; 40 40 unsigned int isSet_delete : 1; 41 benc_val_tmetainfo;41 tr_benc metainfo; 42 42 char * sourceFile; 43 43 … … 105 105 /* if no `name' field was set, then set it from the filename */ 106 106 if( ctor->isSet_metainfo ) { 107 benc_val_t* info = tr_bencDictFindType( &ctor->metainfo, "info", TYPE_DICT );107 tr_benc * info = tr_bencDictFindType( &ctor->metainfo, "info", TYPE_DICT ); 108 108 if( info != NULL ) { 109 benc_val_t* name = tr_bencDictFindFirst( info, "name.utf-8", "name", NULL );109 tr_benc * name = tr_bencDictFindFirst( info, "name.utf-8", "name", NULL ); 110 110 if( name == NULL ) 111 111 name = tr_bencDictAdd( info, "name" ); … … 266 266 267 267 int 268 tr_ctorGetMetainfo( const tr_ctor 269 const struct benc_val_s** setme )268 tr_ctorGetMetainfo( const tr_ctor * ctor, 269 const tr_benc ** setme ) 270 270 { 271 271 int err = 0; -
trunk/libtransmission/torrent.c
r5086 r5127 377 377 /* maybe save our own copy of the metainfo */ 378 378 if( tr_ctorGetSave( ctor ) ) { 379 const benc_val_t* val;379 const tr_benc * val; 380 380 if( !tr_ctorGetMetainfo( ctor, &val ) ) { 381 381 int len; … … 413 413 int doFree; 414 414 tr_info tmp; 415 const benc_val_t* metainfo;415 const tr_benc * metainfo; 416 416 417 417 if( setmeInfo == NULL ) -
trunk/libtransmission/tracker.c
r5086 r5127 282 282 283 283 static int 284 parseBencResponse( struct evhttp_request * req, benc_val_t* setme )284 parseBencResponse( struct evhttp_request * req, tr_benc * setme ) 285 285 { 286 286 const unsigned char * body = EVBUFFER_DATA( req->input_buffer ); … … 363 363 /* Convert to compact form */ 364 364 static uint8_t * 365 parseOldPeers( benc_val_t* bePeers, int * setmePeerCount )365 parseOldPeers( tr_benc * bePeers, int * setmePeerCount ) 366 366 { 367 367 int i; … … 377 377 struct in_addr addr; 378 378 tr_port_t port; 379 benc_val_t* val;380 benc_val_t* peer = &bePeers->val.l.vals[i];379 tr_benc * val; 380 tr_benc * peer = &bePeers->val.l.vals[i]; 381 381 382 382 val = tr_bencDictFind( peer, "ip" ); … … 429 429 if( req && ( req->response_code == HTTP_OK ) ) 430 430 { 431 benc_val_tbenc;431 tr_benc benc; 432 432 const int bencLoaded = !parseBencResponse( req, &benc ); 433 433 … … 436 436 if( bencLoaded && benc.type==TYPE_DICT ) 437 437 { 438 benc_val_t* tmp;438 tr_benc * tmp; 439 439 440 440 if(( tmp = tr_bencDictFind( &benc, "failure reason" ))) { … … 595 595 if( req && ( req->response_code == HTTP_OK ) ) 596 596 { 597 benc_val_tbenc, *files;597 tr_benc benc, *files; 598 598 const int bencLoaded = !parseBencResponse( req, &benc ); 599 599 … … 607 607 const uint8_t* hash = 608 608 (const uint8_t*) files->val.l.vals[i].val.s.s; 609 benc_val_t*tmp, *flags;610 benc_val_t*tordict = &files->val.l.vals[i+1];609 tr_benc *tmp, *flags; 610 tr_benc *tordict = &files->val.l.vals[i+1]; 611 611 if( memcmp( t->hash, hash, SHA_DIGEST_LENGTH ) ) 612 612 continue; -
trunk/libtransmission/transmission.h
r5089 r5127 356 356 357 357 typedef struct tr_ctor tr_ctor; 358 struct benc_val_s;358 struct tr_benc; 359 359 360 360 tr_ctor* tr_ctorNew ( const tr_handle * handle); … … 403 403 404 404 int tr_ctorGetMetainfo ( const tr_ctor * ctor, 405 const struct benc_val_s** setme );405 const struct tr_benc ** setme ); 406 406 407 407 int tr_ctorGetSave ( const tr_ctor * ctor );
Note: See TracChangeset
for help on using the changeset viewer.