]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
LINUX: Ignore 'offender' in error queue processing
authorAndrew Deason <adeason@sinenomine.net>
Tue, 11 Sep 2012 18:59:21 +0000 (13:59 -0500)
committerDerrick Brashear <shadow@your-file-system.com>
Thu, 18 Oct 2012 07:51:51 +0000 (00:51 -0700)
The 'offender' is who generated the error, possibly who sent us an
icmp packet (the given 'port' will be 0). What we want is the peer
that is actually unavailable, which is already in the 'addr' variable
we received from the recvmsg itself.

Change-Id: I930293ca14f0e13ba09ee94b5a5d9cdc0f321743
Reviewed-on: http://gerrit.openafs.org/8119
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
src/rx/LINUX/rx_knet.c

index 3dfe1de97713ec8893ccc2bf654359d6298d2924..81f44006d5283be14e2f2fc7bb931b66b7bddf92 100644 (file)
@@ -105,7 +105,6 @@ osi_HandleSocketError(osi_socket so, char *cmsgbuf, size_t cmsgbuf_len)
     struct cmsghdr *cmsg;
     struct sock_extended_err *err;
     struct sockaddr_in addr;
-    struct sockaddr *offender;
     int code;
     struct socket *sop = (struct socket *)so;
 
@@ -134,13 +133,6 @@ osi_HandleSocketError(osi_socket so, char *cmsgbuf, size_t cmsgbuf_len)
        }
 
        err = CMSG_DATA(cmsg);
-       offender = SO_EE_OFFENDER(err);
-
-       if (offender->sa_family != AF_INET) {
-           continue;
-       }
-
-       memcpy(&addr, offender, sizeof(addr));
        rxi_ProcessNetError(err, addr.sin_addr.s_addr, addr.sin_port);
     }