From: Derrick Brashear Date: Fri, 1 Jun 2012 17:16:31 +0000 (-0400) Subject: rx: abort on missing service X-Git-Tag: upstream/1.6.2_pre2^2~150 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=26de4de491c19e3d855f53cfca08eb28d9a7ca50;p=packages%2Fo%2Fopenafs.git rx: abort on missing service 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 Reviewed-by: Simon Wilkinson Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear (cherry picked from commit 1fbe83f9aacfc36a9c426ba1fd18ad7c72869dc1) Change-Id: Id3b4952e8d27479f16c950606cacc19c7e52cc02 Reviewed-on: http://gerrit.openafs.org/7593 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- diff --git a/src/rx/rx.c b/src/rx/rx.c index 0ef85e52b..de97a3140 100644 --- a/src/rx/rx.c +++ b/src/rx/rx.c @@ -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; }