From 9eee6b1b3f00d46459eebefb70be50ea6af30ddb Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 7 Aug 2024 15:03:59 +0900 Subject: [PATCH] network-generator: vlan= can be specified multiple times --- src/network/generator/network-generator.c | 8 ++++---- src/network/generator/network-generator.h | 2 +- src/network/generator/test-network-generator.c | 3 ++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c index ec6652028b7..de8340ac71b 100644 --- a/src/network/generator/network-generator.c +++ b/src/network/generator/network-generator.c @@ -181,7 +181,7 @@ static Network *network_free(Network *network) { free(network->ifname); free(network->hostname); strv_free(network->dns); - free(network->vlan); + strv_free(network->vlan); free(network->bridge); free(network->bond); @@ -541,7 +541,7 @@ static int network_set_vlan(Context *context, const char *ifname, const char *va return log_debug_errno(r, "Failed to create network for '%s': %m", ifname); } - return free_and_strdup(&network->vlan, value); + return strv_extend(&network->vlan, value); } static int network_set_bridge(Context *context, const char *ifname, const char *value) { @@ -1329,8 +1329,8 @@ void network_dump(Network *network, FILE *f) { STRV_FOREACH(dns, network->dns) fprintf(f, "DNS=%s\n", *dns); - if (network->vlan) - fprintf(f, "VLAN=%s\n", network->vlan); + STRV_FOREACH(v, network->vlan) + fprintf(f, "VLAN=%s\n", *v); if (network->bridge) fprintf(f, "Bridge=%s\n", network->bridge); diff --git a/src/network/generator/network-generator.h b/src/network/generator/network-generator.h index aa5ca9d6952..166ec68fe60 100644 --- a/src/network/generator/network-generator.h +++ b/src/network/generator/network-generator.h @@ -62,7 +62,7 @@ struct Network { /* [Network] */ DHCPType dhcp_type; char **dns; - char *vlan; + char **vlan; char *bridge; char *bond; diff --git a/src/network/generator/test-network-generator.c b/src/network/generator/test-network-generator.c index 4de4a51995c..6577f1a0860 100644 --- a/src/network/generator/test-network-generator.c +++ b/src/network/generator/test-network-generator.c @@ -297,12 +297,13 @@ int main(int argc, char *argv[]) { "UseDNS=yes\n" ); - test_network_one("eth0", "vlan", "vlan99:eth0", + test_network_two("eth0", "vlan", "vlan99:eth0", "vlan", "vlan98:eth0", "[Match]\n" "Name=eth0\n" "\n[Link]\n" "\n[Network]\n" "VLAN=vlan99\n" + "VLAN=vlan98\n" "\n[DHCP]\n" ); -- 2.47.3