Changeset 2043 for trunk/macosx/IPCController.m
- Timestamp:
- Jun 11, 2007, 12:37:10 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/macosx/IPCController.m
r1966 r2043 68 68 void 69 69 msg_setstr ( enum ipc_msg msgid, benc_val_t * val, int64_t tag, void * arg ); 70 void 71 msg_empty ( enum ipc_msg msgid, benc_val_t * val, int64_t tag, void * arg ); 72 void 73 msg_sup ( enum ipc_msg msgid, benc_val_t * val, int64_t tag, void * arg ); 70 74 static void 71 75 msg_default ( enum ipc_msg msgid, benc_val_t * val, int64_t tag, void * arg ); … … 156 160 0 > ipc_addmsg( _funcs, IPC_MSG_GETUPLIMIT, msg_getint ) || 157 161 0 > ipc_addmsg( _funcs, IPC_MSG_LOOKUP, msg_lookup ) || 162 0 > ipc_addmsg( _funcs, IPC_MSG_NOOP, msg_empty ) || 158 163 0 > ipc_addmsg( _funcs, IPC_MSG_PEX, msg_setbool ) || 159 164 0 > ipc_addmsg( _funcs, IPC_MSG_PORT, msg_setint ) || 165 0 > ipc_addmsg( _funcs, IPC_MSG_QUIT, msg_empty ) || 160 166 0 > ipc_addmsg( _funcs, IPC_MSG_REMOVE, msg_action ) || 161 167 0 > ipc_addmsg( _funcs, IPC_MSG_REMOVEALL, msg_actionall ) || … … 164 170 0 > ipc_addmsg( _funcs, IPC_MSG_STOP, msg_action ) || 165 171 0 > ipc_addmsg( _funcs, IPC_MSG_STOPALL, msg_actionall ) || 172 0 > ipc_addmsg( _funcs, IPC_MSG_SUP, msg_sup ) || 166 173 0 > ipc_addmsg( _funcs, IPC_MSG_UPLIMIT, msg_setint ) ) 167 174 { … … 542 549 if( NULL == hashes ) 543 550 { 544 [client sendrespEmpty: IPC_MSG_ NOTSUPtag: tag];551 [client sendrespEmpty: IPC_MSG_BAD tag: tag]; 545 552 return; 546 553 } … … 578 585 bad: 579 586 NSLog( @"Got bad IPC packet" ); 580 [client sendrespEmpty: IPC_MSG_ NOTSUPtag: tag];587 [client sendrespEmpty: IPC_MSG_BAD tag: tag]; 581 588 } 582 589 … … 592 599 { 593 600 NSLog( @"Got bad IPC packet" ); 594 [client sendrespEmpty: IPC_MSG_ NOTSUPtag: tag];601 [client sendrespEmpty: IPC_MSG_BAD tag: tag]; 595 602 return; 596 603 } … … 614 621 { 615 622 NSLog( @"Got bad IPC packet" ); 616 [client sendrespEmpty: IPC_MSG_ NOTSUPtag: tag];623 [client sendrespEmpty: IPC_MSG_BAD tag: tag]; 617 624 return; 618 625 } … … 685 692 { 686 693 NSLog( @"Got bad IPC packet" ); 687 [client sendrespEmpty: IPC_MSG_ NOTSUPtag: tag];694 [client sendrespEmpty: IPC_MSG_BAD tag: tag]; 688 695 return; 689 696 } … … 763 770 bad: 764 771 NSLog( @"Got bad IPC packet" ); 765 [client sendrespEmpty: IPC_MSG_ NOTSUPtag: tag];772 [client sendrespEmpty: IPC_MSG_BAD tag: tag]; 766 773 } 767 774 … … 826 833 { 827 834 NSLog( @"Got bad IPC packet" ); 828 [client sendrespEmpty: IPC_MSG_ NOTSUPtag: tag];835 [client sendrespEmpty: IPC_MSG_BAD tag: tag]; 829 836 return; 830 837 } … … 851 858 { 852 859 NSLog( @"Got bad IPC packet" ); 853 [client sendrespEmpty: IPC_MSG_ NOTSUPtag: tag];860 [client sendrespEmpty: IPC_MSG_BAD tag: tag]; 854 861 return; 855 862 } … … 876 883 { 877 884 NSLog( @"Got bad IPC packet" ); 878 [client sendrespEmpty: IPC_MSG_ NOTSUPtag: tag];885 [client sendrespEmpty: IPC_MSG_BAD tag: tag]; 879 886 return; 880 887 } … … 891 898 } 892 899 893 894 void 895 msg_default( enum ipc_msg msgid, benc_val_t * val, int64_t tag, void * arg ) 900 void 901 msg_empty( enum ipc_msg msgid, benc_val_t * val, int64_t tag, void * arg ) 896 902 { 897 903 IPCClient * client = arg; … … 907 913 break; 908 914 default: 909 [client sendrespEmpty: IPC_MSG_NOTSUP tag: tag]; 910 break; 911 } 912 } 915 assert( 0 ); 916 break; 917 } 918 } 919 920 void 921 msg_sup( enum ipc_msg msgid, benc_val_t * val, int64_t tag, void * arg ) 922 { 923 IPCClient * client = arg; 924 benc_val_t packet, * pkval, * name; 925 struct ipc_info * ipc; 926 int ii; 927 enum ipc_msg found; 928 uint8_t * buf; 929 size_t size; 930 931 if( NULL == val || TYPE_LIST != val->type ) 932 goto bad; 933 934 ipc = [client ipc]; 935 pkval = ipc_initval( ipc, IPC_MSG_SUP, tag, &packet, TYPE_LIST ); 936 if( NULL == pkval ) 937 goto fail; 938 if( tr_bencListReserve( pkval, val->val.l.count ) ) 939 { 940 tr_bencFree( &packet ); 941 goto fail; 942 } 943 944 for( ii = 0; val->val.l.count > ii; ii++ ) 945 { 946 name = &val->val.l.vals[ii]; 947 if( NULL == name || TYPE_STR != name->type ) 948 goto bad; 949 found = ipc_msgid( ipc, name->val.s.s ); 950 if( IPC__MSG_COUNT == found || !ipc_ishandled( ipc, found ) ) 951 { 952 continue; 953 } 954 tr_bencInitStr( tr_bencListAdd( pkval ), 955 name->val.s.s, name->val.s.i, 1 ); 956 } 957 958 buf = ipc_mkval( &packet, &size ); 959 tr_bencFree( &packet ); 960 if( NULL == buf ) 961 goto fail; 962 [client sendresp: buf size: size ]; 963 return; 964 965 bad: 966 NSLog( @"Got bad IPC packet" ); 967 [client sendrespEmpty: IPC_MSG_BAD tag: tag]; 968 return; 969 970 fail: 971 NSLog( @"Failed to create IPC reply packet" ); 972 [[client controller] killclient: client]; 973 } 974 975 void 976 msg_default( enum ipc_msg msgid, benc_val_t * val, int64_t tag, void * arg ) 977 { 978 IPCClient * client = arg; 979 980 [client sendrespEmpty: IPC_MSG_NOTSUP tag: tag]; 981 }
Note: See TracChangeset
for help on using the changeset viewer.