[systemd-devel] [PATCH 02/11] sd-dhcp6-lease: Revise address iteration functions

2015-01-13 Thread Patrik Flykt
Revise the address iteration functions so that one helper function
resets the iterator to the start of the address list while the
second one fetches addresses one by one.

The test case is also updated.
---
 src/libsystemd-network/sd-dhcp6-lease.c| 24 +++
 src/libsystemd-network/test-dhcp6-client.c | 37 +++---
 src/systemd/sd-dhcp6-lease.h   |  7 ++
 3 files changed, 29 insertions(+), 39 deletions(-)

diff --git a/src/libsystemd-network/sd-dhcp6-lease.c 
b/src/libsystemd-network/sd-dhcp6-lease.c
index 8960fac..b3ae0c0 100644
--- a/src/libsystemd-network/sd-dhcp6-lease.c
+++ b/src/libsystemd-network/sd-dhcp6-lease.c
@@ -146,10 +146,9 @@ int dhcp6_lease_get_iaid(sd_dhcp6_lease *lease, be32_t 
*iaid) {
 return 0;
 }
 
-int sd_dhcp6_lease_get_next_address(sd_dhcp6_lease *lease,
-struct in6_addr *addr,
-uint32_t *lifetime_preferred,
-uint32_t *lifetime_valid) {
+int sd_dhcp6_lease_get_address(sd_dhcp6_lease *lease, struct in6_addr *addr,
+uint32_t *lifetime_preferred,
+uint32_t *lifetime_valid) {
 assert_return(lease, -EINVAL);
 assert_return(addr, -EINVAL);
 assert_return(lifetime_preferred, -EINVAL);
@@ -169,22 +168,15 @@ int sd_dhcp6_lease_get_next_address(sd_dhcp6_lease *lease,
 return 0;
 }
 
-int sd_dhcp6_lease_get_first_address(sd_dhcp6_lease *lease,
- struct in6_addr *addr,
- uint32_t *lifetime_preferred,
- uint32_t *lifetime_valid) {
+int sd_dhcp6_lease_reset_address_iter(sd_dhcp6_lease *lease) {
 assert_return(lease, -EINVAL);
-assert_return(addr, -EINVAL);
-assert_return(lifetime_preferred, -EINVAL);
-assert_return(lifetime_valid, -EINVAL);
-
-if (!lease-ia.addresses)
-return -ENOMSG;
 
 lease-addr_iter = lease-ia.addresses;
 
-return sd_dhcp6_lease_get_next_address(lease, addr, lifetime_preferred,
-   lifetime_valid);
+if (!lease-addr_iter)
+return -ENOMSG;
+
+return 0;
 }
 
 sd_dhcp6_lease *sd_dhcp6_lease_ref(sd_dhcp6_lease *lease) {
diff --git a/src/libsystemd-network/test-dhcp6-client.c 
b/src/libsystemd-network/test-dhcp6-client.c
index 7590839..bc9a9e2 100644
--- a/src/libsystemd-network/test-dhcp6-client.c
+++ b/src/libsystemd-network/test-dhcp6-client.c
@@ -286,25 +286,26 @@ static int test_advertise_option(sd_event *e) {
 
 assert_se(opt_clientid);
 
-assert_se(sd_dhcp6_lease_get_first_address(lease, addr, lt_pref,
-   lt_valid) = 0);
+assert_se(sd_dhcp6_lease_reset_address_iter(lease) = 0);
+assert_se(sd_dhcp6_lease_get_address(lease, addr, lt_pref,
+  lt_valid) = 0);
 assert_se(!memcmp(addr, msg_advertise[42], sizeof(addr)));
 assert_se(lt_pref == 150);
 assert_se(lt_valid == 180);
-assert_se(sd_dhcp6_lease_get_next_address(lease, addr, lt_pref,
+assert_se(sd_dhcp6_lease_get_address(lease, addr, lt_pref,
   lt_valid) == -ENOMSG);
 
-assert_se(sd_dhcp6_lease_get_first_address(lease, addr, lt_pref,
-   lt_valid) = 0);
+assert_se(sd_dhcp6_lease_reset_address_iter(lease) = 0);
+assert_se(sd_dhcp6_lease_get_address(lease, addr, lt_pref,
+  lt_valid) = 0);
 assert_se(!memcmp(addr, msg_advertise[42], sizeof(addr)));
-assert_se(sd_dhcp6_lease_get_next_address(lease, addr, lt_pref,
+assert_se(sd_dhcp6_lease_get_address(lease, addr, lt_pref,
   lt_valid) == -ENOMSG);
-assert_se(sd_dhcp6_lease_get_next_address(lease, addr, lt_pref,
-  lt_valid) == -ENOMSG);
-assert_se(sd_dhcp6_lease_get_first_address(lease, addr, lt_pref,
-   lt_valid) = 0);
+assert_se(sd_dhcp6_lease_reset_address_iter(lease) = 0);
+assert_se(sd_dhcp6_lease_get_address(lease, addr, lt_pref,
+  lt_valid) = 0);
 assert_se(!memcmp(addr, msg_advertise[42], sizeof(addr)));
-assert_se(sd_dhcp6_lease_get_next_address(lease, addr, lt_pref,
+assert_se(sd_dhcp6_lease_get_address(lease, addr, lt_pref,
   lt_valid) == -ENOMSG);
 
 assert_se(dhcp6_lease_get_serverid(lease, opt, len) = 0);
@@ -439,13 +440,14 @@ static int test_client_verify_request(DHCP6Message 
*request, uint8_t *option,
 

Re: [systemd-devel] [PATCH 02/11] sd-dhcp6-lease: Revise address iteration functions

2015-01-13 Thread Zbigniew Jędrzejewski-Szmek
On Tue, Jan 13, 2015 at 02:02:12PM +0200, Patrik Flykt wrote:
 Revise the address iteration functions so that one helper function
 resets the iterator to the start of the address list while the
 second one fetches addresses one by one.
 
 The test case is also updated.
 ---
  src/libsystemd-network/sd-dhcp6-lease.c| 24 +++
  src/libsystemd-network/test-dhcp6-client.c | 37 
 +++---
  src/systemd/sd-dhcp6-lease.h   |  7 ++
  3 files changed, 29 insertions(+), 39 deletions(-)
 
 diff --git a/src/libsystemd-network/sd-dhcp6-lease.c 
 b/src/libsystemd-network/sd-dhcp6-lease.c
 index 8960fac..b3ae0c0 100644
 --- a/src/libsystemd-network/sd-dhcp6-lease.c
 +++ b/src/libsystemd-network/sd-dhcp6-lease.c
 @@ -146,10 +146,9 @@ int dhcp6_lease_get_iaid(sd_dhcp6_lease *lease, be32_t 
 *iaid) {
  return 0;
  }
  
 -int sd_dhcp6_lease_get_next_address(sd_dhcp6_lease *lease,
 -struct in6_addr *addr,
 -uint32_t *lifetime_preferred,
 -uint32_t *lifetime_valid) {
 +int sd_dhcp6_lease_get_address(sd_dhcp6_lease *lease, struct in6_addr *addr,
 +uint32_t *lifetime_preferred,
 +uint32_t *lifetime_valid) {
Something strange happens with indentantion :)

  assert_return(lease, -EINVAL);
  assert_return(addr, -EINVAL);
  assert_return(lifetime_preferred, -EINVAL);
 @@ -169,22 +168,15 @@ int sd_dhcp6_lease_get_next_address(sd_dhcp6_lease 
 *lease,
  return 0;
  }
  
 -int sd_dhcp6_lease_get_first_address(sd_dhcp6_lease *lease,
 - struct in6_addr *addr,
 - uint32_t *lifetime_preferred,
 - uint32_t *lifetime_valid) {
 +int sd_dhcp6_lease_reset_address_iter(sd_dhcp6_lease *lease) {
  assert_return(lease, -EINVAL);
 -assert_return(addr, -EINVAL);
 -assert_return(lifetime_preferred, -EINVAL);
 -assert_return(lifetime_valid, -EINVAL);
 -
 -if (!lease-ia.addresses)
 -return -ENOMSG;
  
  lease-addr_iter = lease-ia.addresses;
  
 -return sd_dhcp6_lease_get_next_address(lease, addr, 
 lifetime_preferred,
 -   lifetime_valid);
 +if (!lease-addr_iter)
 +return -ENOMSG;
 +
 +return 0;
  }
  
  sd_dhcp6_lease *sd_dhcp6_lease_ref(sd_dhcp6_lease *lease) {
 diff --git a/src/libsystemd-network/test-dhcp6-client.c 
 b/src/libsystemd-network/test-dhcp6-client.c
 index 7590839..bc9a9e2 100644
 --- a/src/libsystemd-network/test-dhcp6-client.c
 +++ b/src/libsystemd-network/test-dhcp6-client.c
 @@ -286,25 +286,26 @@ static int test_advertise_option(sd_event *e) {
  
  assert_se(opt_clientid);
  
 -assert_se(sd_dhcp6_lease_get_first_address(lease, addr, lt_pref,
 -   lt_valid) = 0);
 +assert_se(sd_dhcp6_lease_reset_address_iter(lease) = 0);
 +assert_se(sd_dhcp6_lease_get_address(lease, addr, lt_pref,
 +  lt_valid) = 0);
  assert_se(!memcmp(addr, msg_advertise[42], sizeof(addr)));
  assert_se(lt_pref == 150);
  assert_se(lt_valid == 180);
 -assert_se(sd_dhcp6_lease_get_next_address(lease, addr, lt_pref,
 +assert_se(sd_dhcp6_lease_get_address(lease, addr, lt_pref,
lt_valid) == -ENOMSG);
  
 -assert_se(sd_dhcp6_lease_get_first_address(lease, addr, lt_pref,
 -   lt_valid) = 0);
 +assert_se(sd_dhcp6_lease_reset_address_iter(lease) = 0);
 +assert_se(sd_dhcp6_lease_get_address(lease, addr, lt_pref,
 +  lt_valid) = 0);
  assert_se(!memcmp(addr, msg_advertise[42], sizeof(addr)));
 -assert_se(sd_dhcp6_lease_get_next_address(lease, addr, lt_pref,
 +assert_se(sd_dhcp6_lease_get_address(lease, addr, lt_pref,
lt_valid) == -ENOMSG);
 -assert_se(sd_dhcp6_lease_get_next_address(lease, addr, lt_pref,
 -  lt_valid) == -ENOMSG);
 -assert_se(sd_dhcp6_lease_get_first_address(lease, addr, lt_pref,
 -   lt_valid) = 0);
 +assert_se(sd_dhcp6_lease_reset_address_iter(lease) = 0);
 +assert_se(sd_dhcp6_lease_get_address(lease, addr, lt_pref,
 +  lt_valid) = 0);
  assert_se(!memcmp(addr, msg_advertise[42], sizeof(addr)));
 -assert_se(sd_dhcp6_lease_get_next_address(lease, addr, lt_pref,
 +assert_se(sd_dhcp6_lease_get_address(lease, addr, lt_pref,