Merge pull request #16029 from yuwata/network-wireguard-without-peers-15786
network: configure wireguard without no peers
This commit is contained in:
commit
b9d19abd38
|
@ -219,6 +219,7 @@ static int wireguard_set_interface(NetDev *netdev) {
|
|||
_cleanup_(sd_netlink_message_unrefp) sd_netlink_message *message = NULL;
|
||||
WireguardIPmask *mask_start = NULL;
|
||||
WireguardPeer *peer, *peer_start;
|
||||
bool sent_once = false;
|
||||
uint32_t serial;
|
||||
Wireguard *w;
|
||||
int r;
|
||||
|
@ -227,7 +228,7 @@ static int wireguard_set_interface(NetDev *netdev) {
|
|||
w = WIREGUARD(netdev);
|
||||
assert(w);
|
||||
|
||||
for (peer_start = w->peers; peer_start; ) {
|
||||
for (peer_start = w->peers; peer_start || !sent_once; ) {
|
||||
uint16_t i = 0;
|
||||
|
||||
message = sd_netlink_message_unref(message);
|
||||
|
@ -278,6 +279,8 @@ static int wireguard_set_interface(NetDev *netdev) {
|
|||
r = sd_netlink_send(netdev->manager->genl, message, &serial);
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not set wireguard device: %m");
|
||||
|
||||
sent_once = true;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
[NetDev]
|
||||
Name=wg97
|
||||
Kind=wireguard
|
||||
|
||||
[WireGuard]
|
||||
PrivateKey=EEGlnEPYJV//kbvvIqxKkQwOiS+UENyPncC4bF46ong=
|
||||
ListenPort=51821
|
||||
FwMark=1235
|
|
@ -0,0 +1,2 @@
|
|||
[Match]
|
||||
Name=wg97
|
|
@ -746,6 +746,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
|
|||
'vtitun99',
|
||||
'vxcan99',
|
||||
'vxlan99',
|
||||
'wg97',
|
||||
'wg98',
|
||||
'wg99',
|
||||
]
|
||||
|
@ -832,6 +833,8 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
|
|||
'25-vxlan.netdev',
|
||||
'25-wireguard-23-peers.netdev',
|
||||
'25-wireguard-23-peers.network',
|
||||
'25-wireguard-no-peer.netdev',
|
||||
'25-wireguard-no-peer.network',
|
||||
'25-wireguard-preshared-key.txt',
|
||||
'25-wireguard-private-key.txt',
|
||||
'25-wireguard.netdev',
|
||||
|
@ -1115,9 +1118,10 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
|
|||
def test_wireguard(self):
|
||||
copy_unit_to_networkd_unit_path('25-wireguard.netdev', '25-wireguard.network',
|
||||
'25-wireguard-23-peers.netdev', '25-wireguard-23-peers.network',
|
||||
'25-wireguard-preshared-key.txt', '25-wireguard-private-key.txt')
|
||||
'25-wireguard-preshared-key.txt', '25-wireguard-private-key.txt',
|
||||
'25-wireguard-no-peer.netdev', '25-wireguard-no-peer.network')
|
||||
start_networkd()
|
||||
self.wait_online(['wg99:carrier', 'wg98:routable'])
|
||||
self.wait_online(['wg99:carrier', 'wg98:routable', 'wg97:carrier'])
|
||||
|
||||
if shutil.which('wg'):
|
||||
call('wg')
|
||||
|
@ -1142,6 +1146,11 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
|
|||
output = check_output('wg show wg98 private-key')
|
||||
self.assertRegex(output, r'CJQUtcS9emY2fLYqDlpSZiE/QJyHkPWr\+WHtZLZ90FU=')
|
||||
|
||||
output = check_output('wg show wg97 listen-port')
|
||||
self.assertRegex(output, '51821')
|
||||
output = check_output('wg show wg97 fwmark')
|
||||
self.assertRegex(output, '0x4d3')
|
||||
|
||||
def test_geneve(self):
|
||||
copy_unit_to_networkd_unit_path('25-geneve.netdev', 'netdev-link-local-addressing-yes.network')
|
||||
start_networkd()
|
||||
|
|
Loading…
Reference in New Issue