]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
ipv4ll: change "seed" parameter to be uint64_t
authorLennart Poettering <lennart@poettering.net>
Mon, 23 May 2016 16:33:17 +0000 (18:33 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 26 May 2016 13:34:43 +0000 (15:34 +0200)
Let's make clear this always has the same size, since otherwise it's not useful
for reproducible runs, which this is really about however.

src/libsystemd-network/sd-ipv4ll.c
src/libsystemd-network/test-ipv4ll.c
src/network/networkd-ipv4ll.c
src/systemd/sd-ipv4ll.h

index 1f6da4bb1672239cf87dc8728f27c155f3c03a58..0e6a9df9e5ed37f1ded2158f35974c7fb1870dd3 100644 (file)
@@ -144,9 +144,7 @@ int sd_ipv4ll_set_mac(sd_ipv4ll *ll, const struct ether_addr *addr) {
                 /* If no random data is set, generate some from the MAC */
                 seed = siphash24(&addr->ether_addr_octet, ETH_ALEN, HASH_KEY.bytes);
 
-                assert_cc(sizeof(unsigned) <= 8);
-
-                r = sd_ipv4ll_set_address_seed(ll, (unsigned) htole64(seed));
+                r = sd_ipv4ll_set_address_seed(ll, htole64(seed));
                 if (r < 0)
                         return r;
         }
@@ -187,7 +185,7 @@ int sd_ipv4ll_get_address(sd_ipv4ll *ll, struct in_addr *address) {
         return 0;
 }
 
-int sd_ipv4ll_set_address_seed(sd_ipv4ll *ll, unsigned seed) {
+int sd_ipv4ll_set_address_seed(sd_ipv4ll *ll, uint64_t seed) {
         _cleanup_free_ struct random_data *random_data = NULL;
         _cleanup_free_ char *random_data_state = NULL;
         int r;
@@ -202,7 +200,7 @@ int sd_ipv4ll_set_address_seed(sd_ipv4ll *ll, unsigned seed) {
         if (!random_data_state)
                 return -ENOMEM;
 
-        r = initstate_r(seed, random_data_state, 128, random_data);
+        r = initstate_r((unsigned) seed, random_data_state, 128, random_data);
         if (r < 0)
                 return r;
 
index aad3c476a0fd161b0369eba42c2e725d2349f3c5..fe70697075a4ff309a44812a0d6245dad133a1a7 100644 (file)
@@ -101,7 +101,7 @@ int arp_network_bind_raw_socket(int index, be32_t address, const struct ether_ad
 
 static void test_public_api_setters(sd_event *e) {
         struct in_addr address = {};
-        unsigned seed = 0;
+        uint64_t seed = 0;
         sd_ipv4ll *ll;
         struct ether_addr mac_addr = {
                 .ether_addr_octet = {'A', 'B', 'C', '1', '2', '3'}};
index a41f231f8c06841571608fe5e937dbf5a0121c46..735c231a4c4748d6da734ecbdf46c5436885dfb9 100644 (file)
@@ -215,9 +215,7 @@ int ipv4ll_configure(Link *link) {
         if (link->udev_device) {
                 r = net_get_unique_predictable_data(link->udev_device, &seed);
                 if (r >= 0) {
-                        assert_cc(sizeof(unsigned) <= 8);
-
-                        r = sd_ipv4ll_set_address_seed(link->ipv4ll, (unsigned)seed);
+                        r = sd_ipv4ll_set_address_seed(link->ipv4ll, seed);
                         if (r < 0)
                                 return r;
                 }
index 4682dd6605aecf4375d2e855318346278a58d3f2..1109ec52e0472f32f0e8e19bcdfa44427ba1510a 100644 (file)
@@ -45,7 +45,7 @@ int sd_ipv4ll_set_callback(sd_ipv4ll *ll, sd_ipv4ll_callback_t cb, void *userdat
 int sd_ipv4ll_set_mac(sd_ipv4ll *ll, const struct ether_addr *addr);
 int sd_ipv4ll_set_ifindex(sd_ipv4ll *ll, int interface_index);
 int sd_ipv4ll_set_address(sd_ipv4ll *ll, const struct in_addr *address);
-int sd_ipv4ll_set_address_seed(sd_ipv4ll *ll, unsigned seed);
+int sd_ipv4ll_set_address_seed(sd_ipv4ll *ll, uint64_t seed);
 int sd_ipv4ll_is_running(sd_ipv4ll *ll);
 int sd_ipv4ll_start(sd_ipv4ll *ll);
 int sd_ipv4ll_stop(sd_ipv4ll *ll);