]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: Use ordered_hashmap_ensure_put (#18233)
authorSusant Sahani <ssahani@vmware.com>
Sun, 17 Jan 2021 11:07:02 +0000 (12:07 +0100)
committerGitHub <noreply@github.com>
Sun, 17 Jan 2021 11:07:02 +0000 (20:07 +0900)
src/libsystemd-network/dhcp-option.c
src/libsystemd-network/dhcp-server-internal.h
src/libsystemd-network/sd-dhcp-client.c
src/libsystemd-network/sd-dhcp-server.c
src/network/netdev/l2tp-tunnel.c
src/network/networkd-sriov.c
src/network/tc/qdisc.c
src/network/tc/tclass.c

index 7e3fe4348bb4ebd54c4d73f88ea0a37a06c3080d..faa075cbd71e20dd7c4ff128535b95e2ef05876d 100644 (file)
@@ -80,11 +80,11 @@ static int option_append(uint8_t options[], size_t size, size_t *offset,
 
                 break;
         case SD_DHCP_OPTION_VENDOR_SPECIFIC: {
-                OrderedHashmap *s = (OrderedHashmap *) optval;
+                OrderedSet *s = (OrderedSet *) optval;
                 struct sd_dhcp_option *p;
                 size_t l = 0;
 
-                ORDERED_HASHMAP_FOREACH(p, s)
+                ORDERED_SET_FOREACH(p, s)
                         l += p->length + 2;
 
                 if (*offset + l + 2 > size)
@@ -95,7 +95,7 @@ static int option_append(uint8_t options[], size_t size, size_t *offset,
 
                 *offset += 2;
 
-                ORDERED_HASHMAP_FOREACH(p, s) {
+                ORDERED_SET_FOREACH(p, s) {
                         options[*offset] = p->option;
                         options[*offset + 1] = p->length;
                         memcpy(&options[*offset + 2], p->data, p->length);
index b57737ee25c56ea113bac2020644b6411a02d199..b5293c3ed66996913223a5c7738c6d270e78f541 100644 (file)
@@ -9,7 +9,7 @@
 #include "sd-event.h"
 
 #include "dhcp-internal.h"
-#include "hashmap.h"
+#include "ordered-set.h"
 #include "log.h"
 #include "time-util.h"
 
@@ -58,8 +58,8 @@ struct sd_dhcp_server {
 
         DHCPServerData servers[_SD_DHCP_LEASE_SERVER_TYPE_MAX];
 
-        OrderedHashmap *extra_options;
-        OrderedHashmap *vendor_options;
+        OrderedSet *extra_options;
+        OrderedSet *vendor_options;
 
         bool emit_router;
 
index ad0eeda5a2014ccbb83af4b33190b4334e56eab9..dd9cbf6ea5f1716f49cd7762caea7a403872f797 100644 (file)
@@ -629,11 +629,7 @@ int sd_dhcp_client_add_option(sd_dhcp_client *client, sd_dhcp_option *v) {
         assert_return(client, -EINVAL);
         assert_return(v, -EINVAL);
 
-        r = ordered_hashmap_ensure_allocated(&client->extra_options, &dhcp_option_hash_ops);
-        if (r < 0)
-                return r;
-
-        r = ordered_hashmap_put(client->extra_options, UINT_TO_PTR(v->option), v);
+        r = ordered_hashmap_ensure_put(&client->extra_options, &dhcp_option_hash_ops, UINT_TO_PTR(v->option), v);
         if (r < 0)
                 return r;
 
index dfced720c23cf9a712fe7a4cd52a6dfd4cdfd685..faea0dd5cab34c5c611b85bb53356b3db9a027bb 100644 (file)
@@ -15,6 +15,7 @@
 #include "fd-util.h"
 #include "in-addr-util.h"
 #include "io-util.h"
+#include "ordered-set.h"
 #include "siphash24.h"
 #include "string-util.h"
 #include "unaligned.h"
@@ -153,8 +154,8 @@ static sd_dhcp_server *dhcp_server_free(sd_dhcp_server *server) {
 
         hashmap_free(server->leases_by_client_id);
 
-        ordered_hashmap_free(server->extra_options);
-        ordered_hashmap_free(server->vendor_options);
+        ordered_set_free(server->extra_options);
+        ordered_set_free(server->vendor_options);
 
         free(server->bound_leases);
         return mfree(server);
@@ -531,18 +532,18 @@ static int server_send_ack(
                         return r;
         }
 
-        ORDERED_HASHMAP_FOREACH(j, server->extra_options) {
+        ORDERED_SET_FOREACH(j, server->extra_options) {
                 r = dhcp_option_append(&packet->dhcp, req->max_optlen, &offset, 0,
                                        j->option, j->length, j->data);
                 if (r < 0)
                         return r;
         }
 
-        if (!ordered_hashmap_isempty(server->vendor_options)) {
+        if (!ordered_set_isempty(server->vendor_options)) {
                 r = dhcp_option_append(
                                 &packet->dhcp, req->max_optlen, &offset, 0,
                                 SD_DHCP_OPTION_VENDOR_SPECIFIC,
-                                ordered_hashmap_size(server->vendor_options), server->vendor_options);
+                                ordered_set_size(server->vendor_options), server->vendor_options);
                 if (r < 0)
                         return r;
         }
@@ -1181,11 +1182,7 @@ int sd_dhcp_server_add_option(sd_dhcp_server *server, sd_dhcp_option *v) {
         assert_return(server, -EINVAL);
         assert_return(v, -EINVAL);
 
-        r = ordered_hashmap_ensure_allocated(&server->extra_options, &dhcp_option_hash_ops);
-        if (r < 0)
-                return r;
-
-        r = ordered_hashmap_put(server->extra_options, UINT_TO_PTR(v->option), v);
+        r = ordered_set_ensure_put(&server->extra_options, &dhcp_option_hash_ops, v);
         if (r < 0)
                 return r;
 
@@ -1199,11 +1196,7 @@ int sd_dhcp_server_add_vendor_option(sd_dhcp_server *server, sd_dhcp_option *v)
         assert_return(server, -EINVAL);
         assert_return(v, -EINVAL);
 
-        r = ordered_hashmap_ensure_allocated(&server->vendor_options, &dhcp_option_hash_ops);
-        if (r < 0)
-                return -ENOMEM;
-
-        r = ordered_hashmap_put(server->vendor_options, v, v);
+        r = ordered_set_ensure_put(&server->vendor_options, &dhcp_option_hash_ops, v);
         if (r < 0)
                 return r;
 
index eeea19764e188d17e3059ce079fd75790e5e3643..da23db947fe09be60bfcf232e9072fec6e7e8e12 100644 (file)
@@ -85,11 +85,7 @@ static int l2tp_session_new_static(L2tpTunnel *t, const char *filename, unsigned
                 .section = TAKE_PTR(n),
         };
 
-        r = ordered_hashmap_ensure_allocated(&t->sessions_by_section, &network_config_hash_ops);
-        if (r < 0)
-                return r;
-
-        r = ordered_hashmap_put(t->sessions_by_section, s->section, s);
+        r = ordered_hashmap_ensure_put(&t->sessions_by_section, &network_config_hash_ops, s->section, s);
         if (r < 0)
                 return r;
 
index 92c00d79e039f93c3d86393d58c6ef63771461ce..d86de6799e04a6987ede03bfe666d985a0407dfc 100644 (file)
@@ -58,11 +58,7 @@ static int sr_iov_new_static(Network *network, const char *filename, unsigned se
         sr_iov->network = network;
         sr_iov->section = TAKE_PTR(n);
 
-        r = ordered_hashmap_ensure_allocated(&network->sr_iov_by_section, &network_config_hash_ops);
-        if (r < 0)
-                return r;
-
-        r = ordered_hashmap_put(network->sr_iov_by_section, sr_iov->section, sr_iov);
+        r = ordered_hashmap_ensure_put(&network->sr_iov_by_section, &network_config_hash_ops, sr_iov->section, sr_iov);
         if (r < 0)
                 return r;
 
index 1a84e8b0f5c57e23f18ec170d2423875eca6d187..7016dc187737f001986f1f44e5cd4be30387562d 100644 (file)
@@ -126,11 +126,7 @@ int qdisc_new_static(QDiscKind kind, Network *network, const char *filename, uns
         qdisc->network = network;
         qdisc->section = TAKE_PTR(n);
 
-        r = ordered_hashmap_ensure_allocated(&network->tc_by_section, &network_config_hash_ops);
-        if (r < 0)
-                return r;
-
-        r = ordered_hashmap_put(network->tc_by_section, qdisc->section, TC(qdisc));
+        r = ordered_hashmap_ensure_put(&network->tc_by_section, &network_config_hash_ops, qdisc->section, TC(qdisc));
         if (r < 0)
                 return r;
 
index 21b26b01a0d5adb78da685bfc3e57ecceebca8b1..4c03587211e496e971826c97f459afd25210ecba 100644 (file)
@@ -82,11 +82,7 @@ int tclass_new_static(TClassKind kind, Network *network, const char *filename, u
         tclass->network = network;
         tclass->section = TAKE_PTR(n);
 
-        r = ordered_hashmap_ensure_allocated(&network->tc_by_section, &network_config_hash_ops);
-        if (r < 0)
-                return r;
-
-        r = ordered_hashmap_put(network->tc_by_section, tclass->section, tclass);
+        r = ordered_hashmap_ensure_put(&network->tc_by_section, &network_config_hash_ops, tclass->section, tclass);
         if (r < 0)
                 return r;