]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-rx-no-data-on-call-zero-20050913
authorDerrick Brashear <shadow@dementia.org>
Wed, 14 Sep 2005 05:28:25 +0000 (05:28 +0000)
committerDerrick Brashear <shadow@dementia.org>
Wed, 14 Sep 2005 05:28:25 +0000 (05:28 +0000)
hopefully fix sven oehme's problem

(cherry picked from commit bbf6472a111727e739ec5216b431c1c9263af736)

src/rx/rx.c
src/rx/rx_packet.c

index 7c4ef9019c15c9d83868a853574e04825c891e18..9c24720e5d2bd21fc3f1c494a306a5b2b842322f 100644 (file)
@@ -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);
index b1e4686552206c3091ba94b9bfd99001638bb3a1..84a55c76c9c7994510eab37c74917cb7fe92e09f 100644 (file)
@@ -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;