]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
rx: abort on missing service
authorDerrick Brashear <shadow@dementix.org>
Fri, 1 Jun 2012 17:16:31 +0000 (13:16 -0400)
committerDerrick Brashear <shadow@dementix.org>
Fri, 6 Jul 2012 18:28:38 +0000 (11:28 -0700)
currently rx does not send an abort if a service does not
exist; it quietly ignores the packet. provide a hint we have
done so.

Reviewed-on: http://gerrit.openafs.org/7563
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Simon Wilkinson <simonxwilkinson@gmail.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 1fbe83f9aacfc36a9c426ba1fd18ad7c72869dc1)

Change-Id: Id3b4952e8d27479f16c950606cacc19c7e52cc02
Reviewed-on: http://gerrit.openafs.org/7593
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
src/rx/rx.c

index 0ef85e52bcf2d1ff3580bdd6809122e78793a2cc..de97a31409dd8512295b2a8128153da9c4ab9595 100644 (file)
@@ -3171,10 +3171,11 @@ rxi_ReceivePacket(struct rx_packet *np, osi_socket socket,
                           np->header.cid, np->header.epoch, type,
                           np->header.securityIndex);
 
-    if (!conn) {
-       /* If no connection found or fabricated, just ignore the packet.
-        * (An argument could be made for sending an abort packet for
-        * the conn) */
+    /* To avoid having 2 connections just abort at each other,
+       don't abort an abort. */
+    if (!conn && (np->header.type != RX_PACKET_TYPE_ABORT)) {
+       rxi_SendRawAbort(socket, host, port, RX_INVALID_OPERATION,
+                        np, 0);
        return np;
     }