Changeset 6985
- Timestamp:
- Oct 29, 2008, 7:30:17 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libtransmission/handshake.c
r6961 r6985 1019 1019 struct evbuffer * inbuf = EVBUFFER_INPUT ( evin ); 1020 1020 ReadState ret; 1021 int readyForMore = TRUE; 1021 1022 1022 1023 dbgmsg( handshake, "handling canRead; state is [%s]", 1023 1024 getStateName( handshake->state ) ); 1024 1025 1025 switch( handshake->state ) 1026 { 1027 case AWAITING_HANDSHAKE: 1028 ret = readHandshake ( handshake, inbuf ); break; 1029 1030 case AWAITING_PEER_ID: 1031 ret = readPeerId ( handshake, inbuf ); break; 1032 1033 case AWAITING_YA: 1034 ret = readYa ( handshake, inbuf ); break; 1035 1036 case AWAITING_PAD_A: 1037 ret = readPadA ( handshake, inbuf ); break; 1038 1039 case AWAITING_CRYPTO_PROVIDE: 1040 ret = readCryptoProvide( handshake, inbuf ); break; 1041 1042 case AWAITING_PAD_C: 1043 ret = readPadC ( handshake, inbuf ); break; 1044 1045 case AWAITING_IA: 1046 ret = readIA ( handshake, inbuf ); break; 1047 1048 case AWAITING_YB: 1049 ret = readYb ( handshake, inbuf ); break; 1050 1051 case AWAITING_VC: 1052 ret = readVC ( handshake, inbuf ); break; 1053 1054 case AWAITING_CRYPTO_SELECT: 1055 ret = readCryptoSelect ( handshake, inbuf ); break; 1056 1057 case AWAITING_PAD_D: 1058 ret = readPadD ( handshake, inbuf ); break; 1059 1060 default: 1061 assert( 0 ); 1026 while( readyForMore ) 1027 { 1028 switch( handshake->state ) 1029 { 1030 case AWAITING_HANDSHAKE: 1031 ret = readHandshake ( handshake, inbuf ); break; 1032 1033 case AWAITING_PEER_ID: 1034 ret = readPeerId ( handshake, inbuf ); break; 1035 1036 case AWAITING_YA: 1037 ret = readYa ( handshake, inbuf ); break; 1038 1039 case AWAITING_PAD_A: 1040 ret = readPadA ( handshake, inbuf ); break; 1041 1042 case AWAITING_CRYPTO_PROVIDE: 1043 ret = readCryptoProvide( handshake, inbuf ); break; 1044 1045 case AWAITING_PAD_C: 1046 ret = readPadC ( handshake, inbuf ); break; 1047 1048 case AWAITING_IA: 1049 ret = readIA ( handshake, inbuf ); break; 1050 1051 case AWAITING_YB: 1052 ret = readYb ( handshake, inbuf ); break; 1053 1054 case AWAITING_VC: 1055 ret = readVC ( handshake, inbuf ); break; 1056 1057 case AWAITING_CRYPTO_SELECT: 1058 ret = readCryptoSelect ( handshake, inbuf ); break; 1059 1060 case AWAITING_PAD_D: 1061 ret = readPadD ( handshake, inbuf ); break; 1062 1063 default: 1064 assert( 0 ); 1065 } 1066 1067 switch( handshake->state ) 1068 { 1069 case AWAITING_PAD_C: 1070 readyForMore = EVBUFFER_LENGTH( inbuf ) >= handshake->pad_c_len; 1071 break; 1072 1073 case AWAITING_PAD_D: 1074 readyForMore = EVBUFFER_LENGTH( inbuf ) >= handshake->pad_d_len; 1075 break; 1076 1077 case AWAITING_IA: 1078 readyForMore = EVBUFFER_LENGTH( inbuf ) >= handshake->ia_len; 1079 break; 1080 1081 default: 1082 readyForMore = ret == READ_NOW; 1083 break; 1084 } 1062 1085 } 1063 1086
Note: See TracChangeset
for help on using the changeset viewer.