chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
networkd: add basic [Link] settings to .network files
[elogind.git]
/
src
/
libsystemd-network
/
test-dhcp6-client.c
diff --git
a/src/libsystemd-network/test-dhcp6-client.c
b/src/libsystemd-network/test-dhcp6-client.c
index 259db33bcdfdf367ae5ba542c87167973bc5038a..26b28a20e848b53b387815dd7e0ce33ab8f49015 100644
(file)
--- a/
src/libsystemd-network/test-dhcp6-client.c
+++ b/
src/libsystemd-network/test-dhcp6-client.c
@@
-66,7
+66,9
@@
static int test_client_basic(sd_event *e) {
assert_se(sd_dhcp6_client_set_index(client, -1) == 0);
assert_se(sd_dhcp6_client_set_index(client, 42) >= 0);
assert_se(sd_dhcp6_client_set_index(client, -1) == 0);
assert_se(sd_dhcp6_client_set_index(client, 42) >= 0);
- assert_se(sd_dhcp6_client_set_mac(client, &mac_addr) >= 0);
+ assert_se(sd_dhcp6_client_set_mac(client, (const uint8_t *) &mac_addr,
+ sizeof (mac_addr),
+ ARPHRD_ETHER) >= 0);
assert_se(sd_dhcp6_client_set_request_option(client, DHCP6_OPTION_CLIENTID) == -EINVAL);
assert_se(sd_dhcp6_client_set_request_option(client, DHCP6_OPTION_DNS_SERVERS) == -EEXIST);
assert_se(sd_dhcp6_client_set_request_option(client, DHCP6_OPTION_CLIENTID) == -EINVAL);
assert_se(sd_dhcp6_client_set_request_option(client, DHCP6_OPTION_DNS_SERVERS) == -EEXIST);
@@
-205,7
+207,7
@@
static uint8_t msg_reply[173] = {
static int test_advertise_option(sd_event *e) {
_cleanup_dhcp6_lease_free_ sd_dhcp6_lease *lease = NULL;
DHCP6Message *advertise = (DHCP6Message *)msg_advertise;
static int test_advertise_option(sd_event *e) {
_cleanup_dhcp6_lease_free_ sd_dhcp6_lease *lease = NULL;
DHCP6Message *advertise = (DHCP6Message *)msg_advertise;
- uint8_t *optval, *opt =
&msg_advertise[sizeof(DHCP6Message)]
;
+ uint8_t *optval, *opt =
msg_advertise + sizeof(DHCP6Message)
;
uint16_t optcode;
size_t optlen, len = sizeof(msg_advertise) - sizeof(DHCP6Message);
be32_t val;
uint16_t optcode;
size_t optlen, len = sizeof(msg_advertise) - sizeof(DHCP6Message);
be32_t val;
@@
-269,6
+271,11
@@
static int test_advertise_option(sd_event *e) {
*optval) >= 0);
break;
*optval) >= 0);
break;
+ case DHCP6_OPTION_ELAPSED_TIME:
+ assert_se(optlen == 2);
+
+ break;
+
default:
break;
}
default:
break;
}
@@
-361,7
+368,8
@@
static int test_client_verify_request(DHCP6Message *request, uint8_t *option,
uint8_t *optval;
uint16_t optcode;
size_t optlen;
uint8_t *optval;
uint16_t optcode;
size_t optlen;
- bool found_clientid = false, found_iana = false, found_serverid = false;
+ bool found_clientid = false, found_iana = false, found_serverid = false,
+ found_elapsed_time = false;
int r;
struct in6_addr addr;
be32_t val;
int r;
struct in6_addr addr;
be32_t val;
@@
-409,12
+417,21
@@
static int test_client_verify_request(DHCP6Message *request, uint8_t *option,
assert_se(optlen == 14);
assert_se(!memcmp(&msg_advertise[179], optval, optlen));
assert_se(optlen == 14);
assert_se(!memcmp(&msg_advertise[179], optval, optlen));
+ break;
+
+ case DHCP6_OPTION_ELAPSED_TIME:
+ assert_se(!found_elapsed_time);
+ found_elapsed_time = true;
+
+ assert_se(optlen == 2);
+
break;
}
}
assert_se(r == -ENOMSG);
break;
}
}
assert_se(r == -ENOMSG);
- assert_se(found_clientid && found_iana && found_serverid);
+ assert_se(found_clientid && found_iana && found_serverid &&
+ found_elapsed_time);
assert_se(sd_dhcp6_lease_get_first_address(lease, &addr, <_pref,
<_valid) >= 0);
assert_se(sd_dhcp6_lease_get_first_address(lease, &addr, <_pref,
<_valid) >= 0);
@@
-452,7
+469,8
@@
static int test_client_verify_solicit(DHCP6Message *solicit, uint8_t *option,
uint8_t *optval;
uint16_t optcode;
size_t optlen;
uint8_t *optval;
uint16_t optcode;
size_t optlen;
- bool found_clientid = false, found_iana = false;
+ bool found_clientid = false, found_iana = false,
+ found_elapsed_time = false;
int r;
assert_se(solicit->type == DHCP6_SOLICIT);
int r;
assert_se(solicit->type == DHCP6_SOLICIT);
@@
-477,12
+495,20
@@
static int test_client_verify_solicit(DHCP6Message *solicit, uint8_t *option,
memcpy(&test_iaid, optval, sizeof(test_iaid));
memcpy(&test_iaid, optval, sizeof(test_iaid));
+ break;
+
+ case DHCP6_OPTION_ELAPSED_TIME:
+ assert_se(!found_elapsed_time);
+ found_elapsed_time = true;
+
+ assert_se(optlen == 2);
+
break;
}
}
assert_se(r == -ENOMSG);
break;
}
}
assert_se(r == -ENOMSG);
- assert_se(found_clientid && found_iana);
+ assert_se(found_clientid && found_iana
&& found_elapsed_time
);
return 0;
}
return 0;
}
@@
-548,7
+574,9
@@
static int test_client_solicit(sd_event *e) {
assert_se(sd_dhcp6_client_attach_event(client, e, 0) >= 0);
assert_se(sd_dhcp6_client_set_index(client, test_index) == 0);
assert_se(sd_dhcp6_client_attach_event(client, e, 0) >= 0);
assert_se(sd_dhcp6_client_set_index(client, test_index) == 0);
- assert_se(sd_dhcp6_client_set_mac(client, &mac_addr) >= 0);
+ assert_se(sd_dhcp6_client_set_mac(client, (const uint8_t *) &mac_addr,
+ sizeof (mac_addr),
+ ARPHRD_ETHER) >= 0);
assert_se(sd_dhcp6_client_set_callback(client,
test_client_solicit_cb, e) >= 0);
assert_se(sd_dhcp6_client_set_callback(client,
test_client_solicit_cb, e) >= 0);