mirror of
https://github.com/systemd/systemd.git
synced 2025-03-28 02:50:16 +03:00
Merge pull request #31994 from yuwata/network-dhcp-server-follow-ups
network: several fixlets for PersistLeases=
This commit is contained in:
commit
166cb4c3ee
@ -19,6 +19,7 @@ int manager_parse_config_file(Manager *m) {
|
||||
"Network\0"
|
||||
"DHCPv4\0"
|
||||
"DHCPv6\0"
|
||||
"DHCPServer\0"
|
||||
"DHCP\0",
|
||||
config_item_perf_lookup, networkd_gperf_lookup,
|
||||
CONFIG_PARSE_WARN,
|
||||
|
@ -350,7 +350,7 @@ DHCPServer.BootServerAddress, config_parse_in_addr_non_null,
|
||||
DHCPServer.BootServerName, config_parse_dns_name, 0, offsetof(Network, dhcp_server_boot_server_name)
|
||||
DHCPServer.BootFilename, config_parse_string, CONFIG_PARSE_STRING_SAFE_AND_ASCII, offsetof(Network, dhcp_server_boot_filename)
|
||||
DHCPServer.RapidCommit, config_parse_bool, 0, offsetof(Network, dhcp_server_rapid_commit)
|
||||
SHCPServer.PersistLeases, config_parse_tristate, 0, offsetof(Network, dhcp_server_persist_leases)
|
||||
DHCPServer.PersistLeases, config_parse_tristate, 0, offsetof(Network, dhcp_server_persist_leases)
|
||||
DHCPServerStaticLease.Address, config_parse_dhcp_static_lease_address, 0, 0
|
||||
DHCPServerStaticLease.MACAddress, config_parse_dhcp_static_lease_hwaddr, 0, 0
|
||||
Bridge.Cost, config_parse_uint32, 0, offsetof(Network, cost)
|
||||
|
3
test/test-network/conf/persist-leases-no.conf
Normal file
3
test/test-network/conf/persist-leases-no.conf
Normal file
@ -0,0 +1,3 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
[DHCPServer]
|
||||
PersistLeases=no
|
@ -5721,11 +5721,7 @@ class NetworkdDHCPServerTests(unittest.TestCase, Utilities):
|
||||
def tearDown(self):
|
||||
tear_down_common()
|
||||
|
||||
def test_dhcp_server(self):
|
||||
copy_network_unit('25-veth.netdev', '25-dhcp-client.network', '25-dhcp-server.network')
|
||||
start_networkd()
|
||||
self.wait_online('veth99:routable', 'veth-peer:routable')
|
||||
|
||||
def check_dhcp_server(self, persist_leases=True):
|
||||
output = networkctl_status('veth99')
|
||||
print(output)
|
||||
self.assertRegex(output, r'Address: 192.168.5.[0-9]* \(DHCP4 via 192.168.5.1\)')
|
||||
@ -5737,6 +5733,19 @@ class NetworkdDHCPServerTests(unittest.TestCase, Utilities):
|
||||
print(output)
|
||||
self.assertRegex(output, "Offered DHCP leases: 192.168.5.[0-9]*")
|
||||
|
||||
if persist_leases:
|
||||
with open('/var/lib/systemd/network/dhcp-server-lease/veth-peer', encoding='utf-8') as f:
|
||||
check_json(f.read())
|
||||
else:
|
||||
self.assertFalse(os.path.exists('/var/lib/systemd/network/dhcp-server-lease/veth-peer'))
|
||||
|
||||
def test_dhcp_server(self):
|
||||
copy_network_unit('25-veth.netdev', '25-dhcp-client.network', '25-dhcp-server.network')
|
||||
start_networkd()
|
||||
self.wait_online('veth99:routable', 'veth-peer:routable')
|
||||
|
||||
self.check_dhcp_server()
|
||||
|
||||
networkctl_reconfigure('veth-peer')
|
||||
self.wait_online('veth-peer:routable')
|
||||
|
||||
@ -5748,6 +5757,22 @@ class NetworkdDHCPServerTests(unittest.TestCase, Utilities):
|
||||
else:
|
||||
self.fail()
|
||||
|
||||
def test_dhcp_server_persist_leases_no(self):
|
||||
copy_networkd_conf_dropin('persist-leases-no.conf')
|
||||
copy_network_unit('25-veth.netdev', '25-dhcp-client.network', '25-dhcp-server.network')
|
||||
start_networkd()
|
||||
self.wait_online('veth99:routable', 'veth-peer:routable')
|
||||
|
||||
self.check_dhcp_server(persist_leases=False)
|
||||
|
||||
remove_networkd_conf_dropin('persist-leases-no.conf')
|
||||
with open(os.path.join(network_unit_dir, '25-dhcp-server.network'), mode='a', encoding='utf-8') as f:
|
||||
f.write('[DHCPServer]\nPersistLeases=no')
|
||||
restart_networkd()
|
||||
self.wait_online('veth99:routable', 'veth-peer:routable')
|
||||
|
||||
self.check_dhcp_server(persist_leases=False)
|
||||
|
||||
def test_dhcp_server_null_server_address(self):
|
||||
copy_network_unit('25-veth.netdev', '25-dhcp-client.network', '25-dhcp-server-null-server-address.network')
|
||||
start_networkd()
|
||||
|
Loading…
x
Reference in New Issue
Block a user