From: Derrick Brashear Date: Wed, 14 Sep 2005 05:28:25 +0000 (+0000) Subject: STABLE14-rx-no-data-on-call-zero-20050913 X-Git-Tag: openafs-stable-1_4_0-rc4~4 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=ed70cfb41132834f69e893e86919288e1f328d32;p=packages%2Fo%2Fopenafs.git STABLE14-rx-no-data-on-call-zero-20050913 hopefully fix sven oehme's problem (cherry picked from commit bbf6472a111727e739ec5216b431c1c9263af736) --- diff --git a/src/rx/rx.c b/src/rx/rx.c index 7c4ef9019..9c24720e5 100644 --- a/src/rx/rx.c +++ b/src/rx/rx.c @@ -2602,6 +2602,9 @@ rxi_ReceivePacket(register struct rx_packet *np, osi_socket socket, call = rxi_NewCall(conn, channel); MUTEX_EXIT(&conn->conn_call_lock); *call->callNumber = np->header.callNumber; + if (np->header.callNumber == 0) + dpf(("RecPacket call 0 %d %s: %x.%u.%u.%u.%u.%u.%u flags %d, packet %lx resend %d.%0.3d len %d", np->header.serial, rx_packetTypes[np->header.type - 1], conn->peer->host, conn->peer->port, np->header.serial, np->header.epoch, np->header.cid, np->header.callNumber, np->header.seq, np->header.flags, (unsigned long)np, np->retryTime.sec, np->retryTime.usec / 1000, np->length)); + call->state = RX_STATE_PRECALL; clock_GetTime(&call->queueTime); hzero(call->bytesSent); @@ -2659,6 +2662,9 @@ rxi_ReceivePacket(register struct rx_packet *np, osi_socket socket, } rxi_ResetCall(call, 0); *call->callNumber = np->header.callNumber; + if (np->header.callNumber == 0) + dpf(("RecPacket call 0 %d %s: %x.%u.%u.%u.%u.%u.%u flags %d, packet %lx resend %d.%0.3d len %d", np->header.serial, rx_packetTypes[np->header.type - 1], conn->peer->host, conn->peer->port, np->header.serial, np->header.epoch, np->header.cid, np->header.callNumber, np->header.seq, np->header.flags, (unsigned long)np, np->retryTime.sec, np->retryTime.usec / 1000, np->length)); + call->state = RX_STATE_PRECALL; clock_GetTime(&call->queueTime); hzero(call->bytesSent); diff --git a/src/rx/rx_packet.c b/src/rx/rx_packet.c index b1e468655..84a55c76c 100644 --- a/src/rx/rx_packet.c +++ b/src/rx/rx_packet.c @@ -2500,6 +2500,11 @@ rxi_PrepareSendPacket(register struct rx_call *call, p->header.cid = (conn->cid | call->channel); p->header.serviceId = conn->serviceId; p->header.securityIndex = conn->securityIndex; + + /* No data packets on call 0. Where do these come from? */ + if (*call->callNumber == 0) + *call->callNumber = 1; + p->header.callNumber = *call->callNumber; p->header.seq = call->tnext++; p->header.epoch = conn->epoch;