View | Details | Raw Unified | Return to bug 257 | Differences between
and this patch

Collapse All | Expand All

(-)sftp-client.c.frank (+12 lines)
Lines 816-825 Link Here
816
816
817
		/* Send some more requests */
817
		/* Send some more requests */
818
		while (num_req < max_req) {
818
		while (num_req < max_req) {
819
#ifdef HAVE_INT64_T
819
			debug3("Request range %llu -> %llu (%d/%d)",
820
			debug3("Request range %llu -> %llu (%d/%d)",
820
			    (unsigned long long)offset,
821
			    (unsigned long long)offset,
821
			    (unsigned long long)offset + buflen - 1,
822
			    (unsigned long long)offset + buflen - 1,
822
			    num_req, max_req);
823
			    num_req, max_req);
824
#endif
823
			req = xmalloc(sizeof(*req));
825
			req = xmalloc(sizeof(*req));
824
			req->id = conn->msg_id++;
826
			req->id = conn->msg_id++;
825
			req->len = buflen;
827
			req->len = buflen;
Lines 857-865 Link Here
857
			break;
859
			break;
858
		case SSH2_FXP_DATA:
860
		case SSH2_FXP_DATA:
859
			data = buffer_get_string(&msg, &len);
861
			data = buffer_get_string(&msg, &len);
862
#ifdef HAVE_INT64_T
860
			debug3("Received data %llu -> %llu",
863
			debug3("Received data %llu -> %llu",
861
			    (unsigned long long)req->offset,
864
			    (unsigned long long)req->offset,
862
			    (unsigned long long)req->offset + len - 1);
865
			    (unsigned long long)req->offset + len - 1);
866
#endif
863
			if (len > req->len)
867
			if (len > req->len)
864
				fatal("Received more data than asked for "
868
				fatal("Received more data than asked for "
865
				      "%d > %d", len, req->len);
869
				      "%d > %d", len, req->len);
Lines 878-888 Link Here
878
				num_req--;
882
				num_req--;
879
			} else {
883
			} else {
880
				/* Resend the request for the missing data */
884
				/* Resend the request for the missing data */
885
#ifdef HAVE_INT64_T
881
				debug3("Short data block, re-requesting "
886
				debug3("Short data block, re-requesting "
882
				    "%llu -> %llu (%2d)",
887
				    "%llu -> %llu (%2d)",
883
				    (unsigned long long)req->offset + len,
888
				    (unsigned long long)req->offset + len,
884
				    (unsigned long long)req->offset +
889
				    (unsigned long long)req->offset +
885
				    req->len - 1, num_req);
890
				    req->len - 1, num_req);
891
#endif
886
				req->id = conn->msg_id++;
892
				req->id = conn->msg_id++;
887
				req->len -= len;
893
				req->len -= len;
888
				req->offset += len;
894
				req->offset += len;
Lines 896-904 Link Here
896
				if (size > 0 && offset > size) {
902
				if (size > 0 && offset > size) {
897
					/* Only one request at a time
903
					/* Only one request at a time
898
					 * after the expected EOF */
904
					 * after the expected EOF */
905
#ifdef HAVE_INT64_T
899
					debug3("Finish at %llu (%2d)",
906
					debug3("Finish at %llu (%2d)",
900
					    (unsigned long long)offset,
907
					    (unsigned long long)offset,
901
					    num_req);
908
					    num_req);
909
#endif
902
					max_req = 1;
910
					max_req = 1;
903
				}
911
				}
904
				else if (max_req < conn->num_requests + 1) {
912
				else if (max_req < conn->num_requests + 1) {
Lines 1051-1058 Link Here
1051
			buffer_put_int64(&msg, offset);
1059
			buffer_put_int64(&msg, offset);
1052
			buffer_put_string(&msg, data, len);
1060
			buffer_put_string(&msg, data, len);
1053
			send_msg(conn->fd_out, &msg);
1061
			send_msg(conn->fd_out, &msg);
1062
#ifdef HAVE_INT64_T
1054
			debug3("Sent message SSH2_FXP_WRITE I:%d O:%llu S:%u",
1063
			debug3("Sent message SSH2_FXP_WRITE I:%d O:%llu S:%u",
1055
			       id, (unsigned long long)offset, len);
1064
			       id, (unsigned long long)offset, len);
1065
#endif
1056
		} else if (TAILQ_FIRST(&acks) == NULL)
1066
		} else if (TAILQ_FIRST(&acks) == NULL)
1057
			break;
1067
			break;
1058
1068
Lines 1091-1098 Link Here
1091
				close(local_fd);
1101
				close(local_fd);
1092
				goto done;
1102
				goto done;
1093
			}
1103
			}
1104
#ifdef HAVE_INT64_T
1094
			debug3("In write loop, ack for %u %d bytes at %llu",
1105
			debug3("In write loop, ack for %u %d bytes at %llu",
1095
			   ack->id, ack->len, (unsigned long long)ack->offset);
1106
			   ack->id, ack->len, (unsigned long long)ack->offset);
1107
#endif
1096
			++ackid;
1108
			++ackid;
1097
			free(ack);
1109
			free(ack);
1098
		}
1110
		}

Return to bug 257