nts: follow bind*device settings for NTS-KE sockets
Bind the server and client NTS-KE sockets to the specified device.
This commit is contained in:
parent
55a90c3735
commit
c10b66b579
2 changed files with 7 additions and 4 deletions
|
@ -308,7 +308,7 @@ int
|
||||||
NKC_Start(NKC_Instance inst)
|
NKC_Start(NKC_Instance inst)
|
||||||
{
|
{
|
||||||
IPSockAddr local_addr;
|
IPSockAddr local_addr;
|
||||||
char label[512];
|
char label[512], *iface;
|
||||||
int sock_fd;
|
int sock_fd;
|
||||||
|
|
||||||
assert(!NKC_IsActive(inst));
|
assert(!NKC_IsActive(inst));
|
||||||
|
@ -318,14 +318,15 @@ NKC_Start(NKC_Instance inst)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Follow the bindacqaddress setting */
|
/* Follow the bindacqaddress and bindacqdevice settings */
|
||||||
CNF_GetBindAcquisitionAddress(inst->address.ip_addr.family, &local_addr.ip_addr);
|
CNF_GetBindAcquisitionAddress(inst->address.ip_addr.family, &local_addr.ip_addr);
|
||||||
if (local_addr.ip_addr.family != inst->address.ip_addr.family)
|
if (local_addr.ip_addr.family != inst->address.ip_addr.family)
|
||||||
SCK_GetAnyLocalIPAddress(inst->address.ip_addr.family, &local_addr.ip_addr);
|
SCK_GetAnyLocalIPAddress(inst->address.ip_addr.family, &local_addr.ip_addr);
|
||||||
|
|
||||||
local_addr.port = 0;
|
local_addr.port = 0;
|
||||||
|
iface = CNF_GetBindAcquisitionInterface();
|
||||||
|
|
||||||
sock_fd = SCK_OpenTcpSocket(&inst->address, &local_addr, NULL, 0);
|
sock_fd = SCK_OpenTcpSocket(&inst->address, &local_addr, iface, 0);
|
||||||
if (sock_fd < 0)
|
if (sock_fd < 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
|
@ -256,19 +256,21 @@ static int
|
||||||
open_socket(int family, int port)
|
open_socket(int family, int port)
|
||||||
{
|
{
|
||||||
IPSockAddr local_addr;
|
IPSockAddr local_addr;
|
||||||
|
char *iface;
|
||||||
int sock_fd;
|
int sock_fd;
|
||||||
|
|
||||||
if (!SCK_IsIpFamilyEnabled(family))
|
if (!SCK_IsIpFamilyEnabled(family))
|
||||||
return INVALID_SOCK_FD;
|
return INVALID_SOCK_FD;
|
||||||
|
|
||||||
CNF_GetBindAddress(family, &local_addr.ip_addr);
|
CNF_GetBindAddress(family, &local_addr.ip_addr);
|
||||||
|
iface = CNF_GetBindNtpInterface();
|
||||||
|
|
||||||
if (local_addr.ip_addr.family != family)
|
if (local_addr.ip_addr.family != family)
|
||||||
SCK_GetAnyLocalIPAddress(family, &local_addr.ip_addr);
|
SCK_GetAnyLocalIPAddress(family, &local_addr.ip_addr);
|
||||||
|
|
||||||
local_addr.port = port;
|
local_addr.port = port;
|
||||||
|
|
||||||
sock_fd = SCK_OpenTcpSocket(NULL, &local_addr, NULL, 0);
|
sock_fd = SCK_OpenTcpSocket(NULL, &local_addr, iface, 0);
|
||||||
if (sock_fd < 0) {
|
if (sock_fd < 0) {
|
||||||
LOG(LOGS_ERR, "Could not open NTS-KE socket on %s", UTI_IPSockAddrToString(&local_addr));
|
LOG(LOGS_ERR, "Could not open NTS-KE socket on %s", UTI_IPSockAddrToString(&local_addr));
|
||||||
return INVALID_SOCK_FD;
|
return INVALID_SOCK_FD;
|
||||||
|
|
Loading…
Reference in a new issue