aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/contrib/examples/embeddable-wg-library/test.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/examples/embeddable-wg-library/test.c')
-rw-r--r--contrib/examples/embeddable-wg-library/test.c39
1 files changed, 37 insertions, 2 deletions
diff --git a/contrib/examples/embeddable-wg-library/test.c b/contrib/examples/embeddable-wg-library/test.c
index b738481..aad24de 100644
--- a/contrib/examples/embeddable-wg-library/test.c
+++ b/contrib/examples/embeddable-wg-library/test.c
@@ -8,7 +8,7 @@
#include <string.h>
#include <stdlib.h>
-int main(int argc, char *argv[])
+void list_devices(void)
{
char *device_names, *device_name;
size_t len;
@@ -16,7 +16,7 @@ int main(int argc, char *argv[])
device_names = wg_list_device_names();
if (!device_names) {
perror("Unable to get device names");
- return 1;
+ exit(1);
}
wg_for_each_device_name(device_names, device_name, len) {
wg_device *device;
@@ -36,5 +36,40 @@ int main(int argc, char *argv[])
wg_free_device(device);
}
free(device_names);
+}
+
+int main(int argc, char *argv[])
+{
+ wg_peer new_peer = {
+ .flags = WGPEER_HAS_PUBLIC_KEY | WGPEER_REPLACE_ALLOWEDIPS
+ };
+ wg_device new_device = {
+ .name = "wgtest0",
+ .listen_port = 1234,
+ .flags = WGDEVICE_HAS_PRIVATE_KEY | WGDEVICE_HAS_LISTEN_PORT,
+ .first_peer = &new_peer,
+ .last_peer = &new_peer
+ };
+
+ wg_key_from_base64(new_device.private_key, "SFLKy56SOiFoAvQDSCBRrH/nyYonuAQnyr/JTQRPDlU=");
+ wg_key_from_base64(new_peer.public_key, "aNoLvvCfgbtTf4f2Eb/CWVNvIc5AJt/4C4pKrxMUZlM=");
+
+ if (wg_add_device(new_device.name) < 0) {
+ perror("Unable to add device");
+ exit(1);
+ }
+
+ if (wg_set_device(&new_device) < 0) {
+ perror("Unable to set device");
+ exit(1);
+ }
+
+ list_devices();
+
+ if (wg_del_device(new_device.name) < 0) {
+ perror("Unable to delete device");
+ exit(1);
+ }
+
return 0;
}