mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-03 22:45:07 -05:00
ntp: use one socket with random port when acquisitionport is 0
This commit is contained in:
@@ -1199,7 +1199,8 @@ By default, @code{chronyd} uses a separate client socket for each configured
|
|||||||
server and their source port is chosen arbitrarily by the operating system.
|
server and their source port is chosen arbitrarily by the operating system.
|
||||||
However, you can use the @code{acquisitionport} directive to explicitly specify
|
However, you can use the @code{acquisitionport} directive to explicitly specify
|
||||||
a port and use only one socket (per IPv4/IPv6 address family) for all
|
a port and use only one socket (per IPv4/IPv6 address family) for all
|
||||||
configured servers. This may be useful for getting through firewalls.
|
configured servers. This may be useful for getting through firewalls. If set
|
||||||
|
to 0, the source port of the socket will be chosen arbitrarily.
|
||||||
|
|
||||||
It may be set to the same port as used by the NTP server (@pxref{port
|
It may be set to the same port as used by the NTP server (@pxref{port
|
||||||
directive}) to use only one socket for all NTP packets.
|
directive}) to use only one socket for all NTP packets.
|
||||||
|
|||||||
2
conf.c
2
conf.c
@@ -79,7 +79,7 @@ static void parse_tempcomp(char *);
|
|||||||
static int restarted = 0;
|
static int restarted = 0;
|
||||||
static int generate_command_key = 0;
|
static int generate_command_key = 0;
|
||||||
static char *rtc_device = "/dev/rtc";
|
static char *rtc_device = "/dev/rtc";
|
||||||
static int acquisition_port = 0; /* 0 means let kernel choose port */
|
static int acquisition_port = -1;
|
||||||
static int ntp_port = 123;
|
static int ntp_port = 123;
|
||||||
static char *keys_file = NULL;
|
static char *keys_file = NULL;
|
||||||
static char *drift_file = NULL;
|
static char *drift_file = NULL;
|
||||||
|
|||||||
6
ntp_io.c
6
ntp_io.c
@@ -328,8 +328,10 @@ NIO_Initialise(int family)
|
|||||||
server_port = CNF_GetNTPPort();
|
server_port = CNF_GetNTPPort();
|
||||||
client_port = CNF_GetAcquisitionPort();
|
client_port = CNF_GetAcquisitionPort();
|
||||||
|
|
||||||
/* Use separate connected sockets if client port is not set */
|
/* Use separate connected sockets if client port is negative */
|
||||||
separate_client_sockets = client_port == 0;
|
separate_client_sockets = client_port < 0;
|
||||||
|
if (client_port < 0)
|
||||||
|
client_port = 0;
|
||||||
|
|
||||||
server_sock_fd4 = INVALID_SOCK_FD;
|
server_sock_fd4 = INVALID_SOCK_FD;
|
||||||
client_sock_fd4 = INVALID_SOCK_FD;
|
client_sock_fd4 = INVALID_SOCK_FD;
|
||||||
|
|||||||
Reference in New Issue
Block a user