components/ntp/patches/40-no-broad-sock.patch
author Brian Utterback <brian.utterback@oracle.com>
Thu, 13 Apr 2017 17:10:44 -0700
changeset 7955 e2e23e69f5e7
parent 5958 8e562647e7c5
permissions -rw-r--r--
25729484 ntpq --version broken in s11.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5362
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     1
NTP conflates broadcast and multicast when opening sockets. The broadcast
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     2
address does not need to be opened for multicast clients. This has been
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     3
reported as NTP community bug 2990 (http://bugs.ntp.org/show_bug.cgi?id=2990)
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     4
and this patch may be removed after upgrading to a version of NTP which has
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     5
bug 2990 fixed.
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     6
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     7
--- include/ntpd.h
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     8
+++ include/ntpd.h
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     9
@@ -480,6 +480,7 @@ extern struct peer *sys_peer;		/* curren
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    10
  * Nonspecified system state variables.
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    11
  */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    12
 extern int	sys_bclient;		/* we set our time to broadcasts */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    13
+extern int	sys_mclient;		/* we set our time to multicast */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    14
 extern double	sys_bdelay; 		/* broadcast client default delay */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    15
 extern int	sys_authenticate;	/* requre authentication for config */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    16
 extern l_fp	sys_authdelay;		/* authentication delay */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    17
--- ntpd/ntp_io.c
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    18
+++ ntpd/ntp_io.c
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    19
@@ -2017,9 +2017,6 @@ update_interfaces(
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    20
 	 */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    21
 	refresh_all_peerinterfaces();
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    22
 
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    23
-	if (broadcast_client_enabled)
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    24
-		io_setbclient();
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    25
-
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    26
 	if (sys_bclient)
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    27
 		io_setbclient();
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    28
 
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    29
--- ntpd/ntp_proto.c
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    30
+++ ntpd/ntp_proto.c
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    31
@@ -105,6 +105,7 @@ int leap_sec_in_progress;
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    32
  * Nonspecified system state variables
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    33
  */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    34
 int	sys_bclient;		/* broadcast client enable */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    35
+int	sys_mclient;		/* multicast client enable */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    36
 double	sys_bdelay;		/* broadcast client default delay */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    37
 int	sys_authenticate;	/* requre authentication for config */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    38
 l_fp	sys_authdelay;		/* authentication delay */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    39
@@ -1083,7 +1084,7 @@ receive(
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    40
 			return;
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    41
 		}
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    42
 #endif /* AUTOKEY */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    43
-		if (sys_bclient == 0) {
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    44
+		if (sys_bclient == 0 && sys_mclient == 0) {
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    45
 			sys_restricted++;
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    46
 			return;			/* not enabled */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    47
 		}
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    48
@@ -4209,6 +4210,7 @@ init_proto(void)
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    49
 	sys_survivors = 0;
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    50
 	sys_manycastserver = 0;
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    51
 	sys_bclient = 0;
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    52
+	sys_mclient = 0;
5958
8e562647e7c5 23216678 problem in SERVICE/NTP
Brian Utterback <brian.utterback@oracle.com>
parents: 5362
diff changeset
    53
 	sys_bdelay = BDELAY_DEFAULT;	/*[Bug 3031] delay cutoff */
5362
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    54
 	sys_authenticate = 1;
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    55
 	sys_stattime = current_time;
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    56
@@ -4356,7 +4358,7 @@ proto_config(
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    57
 	case PROTO_MULTICAST_ADD: /* add group address */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    58
 		if (svalue != NULL)
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    59
 			io_multicast_add(svalue);
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    60
-		sys_bclient = 1;
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    61
+		sys_mclient = 1;
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    62
 		break;
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    63
 
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    64
 	case PROTO_MULTICAST_DEL: /* delete group address */
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    65
--- ntpd/ntp_request.c
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    66
+++ ntpd/ntp_request.c
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    67
@@ -1117,7 +1117,7 @@ sys_info(
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    68
 	is->flags = 0;
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    69
 	if (sys_authenticate)
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    70
 		is->flags |= INFO_FLAG_AUTHENTICATE;
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    71
-	if (sys_bclient)
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    72
+	if (sys_bclient || sys_mclient)
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    73
 		is->flags |= INFO_FLAG_BCLIENT;
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    74
 #ifdef REFCLOCK
dbf70e6a83ad 22343950 NTP "multicastclient 224.0.1.1" cause to open UDP Port on broadcast addr.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    75
 	if (cal_enable)