author | pkidd <patrick.kidd@oracle.com> |
Wed, 27 Jan 2016 12:14:36 -0800 | |
branch | s11u3-sru |
changeset 5354 | f2f3e6f8b341 |
parent 5015 | 2cbe8ea880ce |
permissions | -rw-r--r-- |
5015
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
1 |
Don't change interfaces unless there is something wrong with the old one. |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
2 |
This is NTP bug [2043] and this patch should be removed after upgrading to |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
3 |
a version of NTP with a fix for that bug. |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
4 |
|
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
5 |
--- ntpd/ntp_peer.c |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
6 |
+++ ntpd/ntp_peer.c |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
7 |
@@ -718,9 +718,13 @@ |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
8 |
/* |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
9 |
* this is called when the interface list has changed |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
10 |
* give all peers a chance to find a better interface |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
11 |
+ * but only if either they don't have an address already |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
12 |
+ * or if the one they have hasn't worked for a while. |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
13 |
*/ |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
14 |
- for (p = peer_list; p != NULL; p = p->p_link) |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
15 |
- peer_refresh_interface(p); |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
16 |
+ for (p = peer_list; p != NULL; p = p->p_link) { |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
17 |
+ if (!(p->dstadr && (p->reach & 0x3))) |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
18 |
+ peer_refresh_interface(p); |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
19 |
+ } |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
20 |
} |
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
21 |
|
2cbe8ea880ce
20683411 ntpd and multiple default route constantly resets state and never sets sys.peer
Brian Utterback <brian.utterback@oracle.com>
parents:
diff
changeset
|
22 |