Changeset 5248
- Timestamp:
- 02/11/08 11:32:56 (6 months ago)
- Files:
-
- WiredClient/trunk/WCTransfers.m (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
WiredClient/trunk/WCTransfers.m
r5210 r5248 775 775 WNSocket *socket; 776 776 WCFile *file; 777 WCError *error ;777 WCError *error = NULL; 778 778 WCTransferState state; 779 779 SSL *ssl; … … 791 791 if(![[NSFileManager defaultManager] createFileAtPath:path]) { 792 792 error = [WCError errorWithDomain:WCWiredClientErrorDomain code:WCWiredClientCreateFailed argument:path]; 793 [self _presentError:error];794 793 795 return;794 goto end; 796 795 } 797 796 } … … 801 800 if(!fileHandle) { 802 801 error = [WCError errorWithDomain:WCWiredClientErrorDomain code:WCWiredClientOpenFailed argument:path]; 803 [self _presentError:error]; 804 805 return; 802 803 goto end; 806 804 } 807 805 … … 817 815 address = [WNAddress addressWithString:[[transfer URL] host] error:&error]; 818 816 819 if(!address) { 820 [self _presentError:error]; 821 822 return; 823 } 817 if(!address) 818 goto end; 824 819 825 820 [address setPort:[[transfer URL] port]]; … … 828 823 [socket setInteractive:NO]; 829 824 830 if(![socket connectWithContext:context timeout:30.0 error:&error]) { 831 [self _presentError:error]; 832 833 return; 834 } 825 if(![socket connectWithContext:context timeout:30.0 error:&error]) 826 goto end; 835 827 836 828 [socket writeString:[NSSWF:@"%@ %@%@", WCTransferCommand, [transfer hash], WCMessageSeparator] … … 875 867 } else { 876 868 error = [WCError errorWithDomain:WCWiredClientErrorDomain code:WCWiredClientTransferFailed argument:[transfer name]]; 877 [self _presentError:error];878 869 } 879 870 … … 884 875 885 876 if(bytes <= 0) { 886 if(bytes < 0) {877 if(bytes < 0) 887 878 error = [WCError errorWithDomain:WCWiredClientErrorDomain code:WCWiredClientTransferFailed argument:[transfer name]]; 888 [self _presentError:error];889 }890 879 891 880 break; 892 881 } 893 882 894 883 transfer->_transferred += bytes; 895 884 file->_transferred += bytes; … … 925 914 pool = NULL; 926 915 } 916 } 917 918 end: 919 if(error) { 920 [self performSelectorOnMainThread:@selector(_presentError:) withObject:error]; 921 922 [transfer setState:WCTransferStopping]; 927 923 } 928 924 … … 951 947 WNSocket *socket; 952 948 WCFile *file; 953 WCError *error ;949 WCError *error = NULL; 954 950 WCTransferState state; 955 951 SSL *ssl; … … 968 964 if(!fileHandle) { 969 965 error = [WCError errorWithDomain:WCWiredClientErrorDomain code:WCWiredClientOpenFailed argument:path]; 970 [self _presentError:error]; 971 972 return; 966 967 goto end; 973 968 } 974 969 … … 984 979 address = [WNAddress addressWithString:[[transfer URL] host] error:&error]; 985 980 986 if(!address) { 987 [self _presentError:error]; 988 989 return; 990 } 981 if(!address) 982 goto end; 991 983 992 984 [address setPort:[[transfer URL] port]]; … … 995 987 [socket setInteractive:NO]; 996 988 997 if(![socket connectWithContext:context timeout:30.0 error:&error]) { 998 [self _presentError:error]; 999 1000 return; 1001 } 989 if(![socket connectWithContext:context timeout:30.0 error:&error]) 990 goto end; 1002 991 1003 992 [socket writeString:[NSSWF:@"%@ %@%@", WCTransferCommand, [transfer hash], WCMessageSeparator] … … 1037 1026 1038 1027 if(bytes <= 0) { 1039 if(bytes < 0) {1028 if(bytes < 0) 1040 1029 error = [WCError errorWithDomain:WCWiredClientErrorDomain code:WCWiredClientTransferFailed argument:[transfer name]]; 1041 [self _presentError:error];1042 }1043 1030 1044 1031 break; … … 1055 1042 } else { 1056 1043 error = [WCError errorWithDomain:WCWiredClientErrorDomain code:WCWiredClientTransferFailed argument:[transfer name]]; 1057 [self _presentError:error];1058 1044 } 1059 1045 … … 1096 1082 } 1097 1083 1084 end: 1085 if(error) { 1086 [self performSelectorOnMainThread:@selector(_presentError:) withObject:error]; 1087 1088 [transfer setState:WCTransferStopping]; 1089 } 1090 1098 1091 [pool release]; 1099 1092
