From dbd801d5853dcbc0d9754e64729cc2b4041dfd9c Mon Sep 17 00:00:00 2001 From: Andrew Deason Date: Tue, 13 Nov 2012 14:58:11 -0600 Subject: [PATCH] afs: log ICMP errors for downed servers When we notice a server is unreachable, log the ICMP error we got for that server, if any. Change-Id: I9dcd40bf45fefa6679eac92a5d03d44eceac0816 Reviewed-on: http://gerrit.openafs.org/8410 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- src/afs/afs_util.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/afs/afs_util.c b/src/afs/afs_util.c index 9105beb09..bd406163a 100644 --- a/src/afs/afs_util.c +++ b/src/afs/afs_util.c @@ -221,6 +221,33 @@ print_internet_address(char *preamble, struct srvAddr *sa, char *postamble, (address >> 16) & 0xff, (address >> 8) & 0xff, (address) & 0xff, aserver->cell->cellName, postamble, code, ptr); + if (flag == 1 && rxconn) { + /* server was marked down, check Rx to see if this was possibly due to + * an ICMP error received from the network */ + int errorigin, errtype, errcode; + const char *errmsg; + if (rx_GetNetworkError(rxconn, &errorigin, &errtype, &errcode, &errmsg) == 0) { + const char *str1 = " ("; + const char *str2 = ")"; + if (!errmsg) { + errmsg = str1 = str2 = ""; + } + afs_warn("afs: network error for %d.%d.%d.%d:%d: origin %d type %d code %d%s%s%s\n", + (address >> 24), + (address >> 16) & 0xff, + (address >> 8) & 0xff, + (address) & 0xff, + (int)ntohs(sa->sa_portal), + errorigin, errtype, errcode, str1, errmsg, str2); + afs_warnuser("afs: network error for %d.%d.%d.%d:%d: origin %d type %d code %d%s%s%s\n", + (address >> 24), + (address >> 16) & 0xff, + (address >> 8) & 0xff, + (address) & 0xff, + (int)ntohs(sa->sa_portal), + errorigin, errtype, errcode, str1, errmsg, str2); + } + } } /*print_internet_address */ -- 2.39.5