rx-multiple-packets-20050118

Doug Engert reports that large tokens are corrupted when being sent
using RX.  This patch fixes two bugs which prevent the transmission
and receipt of multiple packet exchanges.
This commit is contained in:
Jeffrey Altman 2005-01-19 05:14:11 +00:00
parent 5f498279b8
commit f427010222

View File

@ -191,7 +191,8 @@ rx_SlowReadPacket(struct rx_packet * packet, unsigned int offset, int resid,
j = MIN(resid, packet->wirevec[i].iov_len - (offset - l)); j = MIN(resid, packet->wirevec[i].iov_len - (offset - l));
memcpy(out, (char *)(packet->wirevec[i].iov_base) + (offset - l), j); memcpy(out, (char *)(packet->wirevec[i].iov_base) + (offset - l), j);
resid -= j; resid -= j;
l += packet->wirevec[i].iov_len; out += j;
l += packet->wirevec[i].iov_len;
i++; i++;
} }
@ -231,6 +232,7 @@ rx_SlowWritePacket(struct rx_packet * packet, int offset, int resid, char *in)
j = MIN(resid, packet->wirevec[i].iov_len - (offset - l)); j = MIN(resid, packet->wirevec[i].iov_len - (offset - l));
memcpy(b, in, j); memcpy(b, in, j);
resid -= j; resid -= j;
in += j;
l += packet->wirevec[i].iov_len; l += packet->wirevec[i].iov_len;
i++; i++;
} }