DHCP6Status dhcp6_message_status_from_string(const char *s) _pure_;
void dhcp6_client_set_test_mode(sd_dhcp6_client *client, bool test_mode);
+int dhcp6_client_set_transaction_id(sd_dhcp6_client *client, uint32_t transaction_id);
#define log_dhcp6_client_errno(client, error, fmt, ...) \
log_interface_prefix_full_errno( \
assert_se(sd_dhcp6_client_set_information_request(client, false) == 0);
dhcp6_client_set_test_mode(client, true);
assert_se(sd_dhcp6_client_start(client) >= 0);
- assert_se(sd_dhcp6_client_set_transaction_id(client, htobe32(0x00ffffff) & ((const DHCP6Message *) data)->transaction_id) == 0);
+ assert_se(dhcp6_client_set_transaction_id(client, ((const DHCP6Message *) data)->transaction_id) == 0);
r = client_process_advertise_or_rapid_commit_reply(client, (DHCP6Message *) data, size, NULL, NULL);
if (r < 0)
assert_se(sd_dhcp6_client_start(client) >= 0);
if (size >= sizeof(DHCP6Message))
- assert_se(sd_dhcp6_client_set_transaction_id(client, htobe32(0x00ffffff) & ((const DHCP6Message *) data)->transaction_id) == 0);
+ assert_se(dhcp6_client_set_transaction_id(client, ((const DHCP6Message *) data)->transaction_id) == 0);
assert_se(write(test_dhcp_fd[1], data, size) == (ssize_t) size);
return 0;
}
-int sd_dhcp6_client_set_transaction_id(sd_dhcp6_client *client, uint32_t transaction_id) {
- assert_return(client, -EINVAL);
+int dhcp6_client_set_transaction_id(sd_dhcp6_client *client, uint32_t transaction_id) {
+ assert(client);
+ assert(client->test_mode);
+
+ /* This is for tests or fuzzers. */
- client->transaction_id = transaction_id;
+ client->transaction_id = transaction_id & htobe32(0x00ffffff);
return 0;
}
int *request);
int sd_dhcp6_client_set_address_request(sd_dhcp6_client *client,
int request);
-int sd_dhcp6_client_set_transaction_id(sd_dhcp6_client *client,
- uint32_t transaction_id);
int sd_dhcp6_client_add_vendor_option(sd_dhcp6_client *client,
sd_dhcp6_option *v);