summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2010-01-03 03:00:24 +0000
committerKen Raeburn <raeburn@mit.edu>2010-01-03 03:00:24 +0000
commite43dd51816909411abffd452ef6f8b126583379b (patch)
tree15863a0fa1dbe7b7ae992525b3d33fe9b06d3252 /src
parent4b3e285e6f15884d49d26a707630c1c117990cc5 (diff)
Ignore some routing messages indicating changes that don't affect our
set of local addresses. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23570 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/kdc/network.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/kdc/network.c b/src/kdc/network.c
index 00218a7cd..dfb478c9c 100644
--- a/src/kdc/network.c
+++ b/src/kdc/network.c
@@ -846,6 +846,30 @@ static void process_routing_update(struct connection *conn, int selflags)
case RTM_IFINFO:
case RTM_OLDADD:
case RTM_OLDDEL:
+ /*
+ * Some flags indicate routing table updates that don't
+ * indicate local address changes. They may come from
+ * redirects, or ARP, etc.
+ *
+ * This set of symbols is just an initial guess based on
+ * some messages observed in real life; working out which
+ * other flags also indicate messages we should ignore,
+ * and which flags are portable to all system and thus
+ * don't need to be conditionalized, is left as a future
+ * exercise.
+ */
+#ifdef RTF_DYNAMIC
+ if (rtm.rtm_flags & RTF_DYNAMIC)
+ break;
+#endif
+#ifdef RTF_CLONED
+ if (rtm.rtm_flags & RTF_CLONED)
+ break;
+#endif
+#ifdef RTF_LLINFO
+ if (rtm.rtm_flags & RTF_LLINFO)
+ break;
+#endif
#if 0
krb5_klog_syslog(LOG_DEBUG,
"network reconfiguration message (%s) received",