Module Name: src Committed By: riastradh Date: Thu Aug 20 21:34:03 UTC 2020
Modified Files: src/sys/net: if_wg.c Log Message: Update for proplib API changes. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/net/if_wg.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/net/if_wg.c diff -u src/sys/net/if_wg.c:1.8 src/sys/net/if_wg.c:1.9 --- src/sys/net/if_wg.c:1.8 Thu Aug 20 21:33:52 2020 +++ src/sys/net/if_wg.c Thu Aug 20 21:34:03 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: if_wg.c,v 1.8 2020/08/20 21:33:52 riastradh Exp $ */ +/* $NetBSD: if_wg.c,v 1.9 2020/08/20 21:34:03 riastradh Exp $ */ /* * Copyright (C) Ryota Ozaki <ozaki.ry...@gmail.com> @@ -43,7 +43,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_wg.c,v 1.8 2020/08/20 21:33:52 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_wg.c,v 1.9 2020/08/20 21:34:03 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -3669,13 +3669,13 @@ wg_handle_prop_peer(struct wg_softc *wg, { int error = 0; prop_object_t prop_obj; - char *pubkey; + const char *pubkey; size_t pubkey_len; const char *name = NULL; prop_obj = prop_dictionary_get(peer, "name"); if (prop_obj != NULL) { - name = prop_string_cstring_nocopy(prop_obj); + name = prop_string_value(prop_obj); if (strlen(name) > WG_PEER_NAME_MAXLEN) { error = EINVAL; goto out; @@ -3687,7 +3687,7 @@ wg_handle_prop_peer(struct wg_softc *wg, error = EINVAL; goto out; } - pubkey = prop_data_data(prop_obj); + pubkey = prop_data_value(prop_obj); pubkey_len = prop_data_size(prop_obj); #ifdef WG_DEBUG_DUMP log(LOG_DEBUG, "pubkey=%p, pubkey_len=%lu\n", pubkey, pubkey_len); @@ -3705,7 +3705,7 @@ wg_handle_prop_peer(struct wg_softc *wg, prop_obj = prop_dictionary_get(peer, "preshared_key"); if (prop_obj != NULL) { - char *psk = prop_data_data(prop_obj); + const char *psk = prop_data_value(prop_obj); size_t psk_len = prop_data_size(prop_obj); if (psk_len != sizeof(wgp->wgp_psk)) { @@ -3716,14 +3716,14 @@ wg_handle_prop_peer(struct wg_softc *wg, } struct sockaddr_storage sockaddr; - char *addr; + const char *addr; size_t addr_len; prop_obj = prop_dictionary_get(peer, "endpoint"); if (prop_obj == NULL) goto skip_endpoint; - addr = prop_data_data(prop_obj); + addr = prop_data_value(prop_obj); addr_len = prop_data_size(prop_obj); memcpy(&sockaddr, addr, addr_len); switch (sockaddr.ss_family) { @@ -3771,18 +3771,18 @@ skip_endpoint: prop_obj = prop_dictionary_get(prop_allowedip, "family"); if (prop_obj == NULL) continue; - wga->wga_family = prop_number_unsigned_integer_value(prop_obj); + wga->wga_family = prop_number_unsigned_value(prop_obj); prop_obj = prop_dictionary_get(prop_allowedip, "ip"); if (prop_obj == NULL) continue; - addr = prop_data_data(prop_obj); + addr = prop_data_value(prop_obj); addr_len = prop_data_size(prop_obj); prop_obj = prop_dictionary_get(prop_allowedip, "cidr"); if (prop_obj == NULL) continue; - wga->wga_cidr = prop_number_unsigned_integer_value(prop_obj); + wga->wga_cidr = prop_number_unsigned_value(prop_obj); switch (wga->wga_family) { case AF_INET: { @@ -3795,11 +3795,13 @@ skip_endpoint: return EINVAL; memcpy(&wga->wga_addr4, addr, addr_len); - sockaddr_in_init(&sin, (struct in_addr *)addr, 0); + sockaddr_in_init(&sin, (const struct in_addr *)addr, + 0); sockaddr_copy(&wga->wga_sa_addr, sizeof(sin), sintosa(&sin)); - sockaddr_format(sintosa(&sin), addrstr, sizeof(addrstr)); + sockaddr_format(sintosa(&sin), + addrstr, sizeof(addrstr)); WG_DLOG("addr=%s/%d\n", addrstr, wga->wga_cidr); in_len2mask(&mask, wga->wga_cidr); @@ -3820,11 +3822,13 @@ skip_endpoint: return EINVAL; memcpy(&wga->wga_addr6, addr, addr_len); - sockaddr_in6_init(&sin6, (struct in6_addr *)addr, 0, 0, 0); + sockaddr_in6_init(&sin6, (const struct in6_addr *)addr, + 0, 0, 0); sockaddr_copy(&wga->wga_sa_addr, sizeof(sin6), sin6tosa(&sin6)); - sockaddr_format(sin6tosa(&sin6), addrstr, sizeof(addrstr)); + sockaddr_format(sin6tosa(&sin6), + addrstr, sizeof(addrstr)); WG_DLOG("addr=%s/%d\n", addrstr, wga->wga_cidr); in6_prefixlen2mask(&mask, wga->wga_cidr); @@ -3882,7 +3886,7 @@ wg_ioctl_set_private_key(struct wg_softc prop_dictionary_t prop_dict; prop_object_t prop_obj; char *buf = NULL; - char *privkey; + const char *privkey; size_t privkey_len; error = wg_alloc_prop_buf(&buf, ifd); @@ -3896,7 +3900,7 @@ wg_ioctl_set_private_key(struct wg_softc if (prop_obj == NULL) goto out; - privkey = prop_data_data(prop_obj); + privkey = prop_data_value(prop_obj); privkey_len = prop_data_size(prop_obj); #ifdef WG_DEBUG_DUMP log(LOG_DEBUG, "privkey=%p, privkey_len=%lu\n", privkey, privkey_len); @@ -3935,7 +3939,7 @@ wg_ioctl_set_listen_port(struct wg_softc if (prop_obj == NULL) goto out; - port = prop_number_unsigned_integer_value(prop_obj); + port = prop_number_unsigned_value(prop_obj); if (port != (uint64_t)(uint16_t)port) goto out; error = wg->wg_ops->bind_port(wg, (uint16_t)port); @@ -3996,7 +4000,7 @@ wg_ioctl_delete_peer(struct wg_softc *wg if (prop_obj == NULL) goto out; - name = prop_string_cstring_nocopy(prop_obj); + name = prop_string_value(prop_obj); if (strlen(name) > WG_PEER_NAME_MAXLEN) goto out; @@ -4022,14 +4026,14 @@ wg_ioctl_get(struct wg_softc *wg, struct { prop_data_t privkey; - privkey = prop_data_create_data(wg->wg_privkey, WG_STATIC_KEY_LEN); + privkey = prop_data_create_copy(wg->wg_privkey, WG_STATIC_KEY_LEN); prop_dictionary_set(prop_dict, "private_key", privkey); prop_object_release(privkey); } if (wg->wg_listen_port != 0) { prop_number_t port; - port = prop_number_create_unsigned_integer(wg->wg_listen_port); + port = prop_number_create_unsigned(wg->wg_listen_port); if (port == NULL) goto error; prop_dictionary_set(prop_dict, "listen_port", port); @@ -4053,14 +4057,14 @@ wg_ioctl_get(struct wg_softc *wg, struct if (strlen(wgp->wgp_name) > 0) { prop_string_t name; - name = prop_string_create_cstring(wgp->wgp_name); + name = prop_string_create_copy(wgp->wgp_name); prop_dictionary_set(prop_peer, "name", name); prop_object_release(name); } { prop_data_t pubkey; - pubkey = prop_data_create_data(wgp->wgp_pubkey, + pubkey = prop_data_create_copy(wgp->wgp_pubkey, sizeof(wgp->wgp_pubkey)); if (pubkey == NULL) goto next; @@ -4070,7 +4074,7 @@ wg_ioctl_get(struct wg_softc *wg, struct uint8_t psk_zero[WG_PRESHARED_KEY_LEN] = {0}; if (memcmp(wgp->wgp_psk, psk_zero, sizeof(wgp->wgp_psk) != 0)) { - prop_data_t psk = prop_data_create_data(wgp->wgp_psk, + prop_data_t psk = prop_data_create_copy(wgp->wgp_psk, sizeof(wgp->wgp_psk)); if (psk == NULL) goto next; @@ -4081,7 +4085,7 @@ wg_ioctl_get(struct wg_softc *wg, struct switch (wgp->wgp_sa.sa_family) { case AF_INET: { prop_data_t addr; - addr = prop_data_create_data(&wgp->wgp_sin, + addr = prop_data_create_copy(&wgp->wgp_sin, sizeof(wgp->wgp_sin)); if (addr == NULL) goto next; @@ -4091,7 +4095,7 @@ wg_ioctl_get(struct wg_softc *wg, struct } case AF_INET6: { prop_data_t addr; - addr = prop_data_create_data(&wgp->wgp_sin6, + addr = prop_data_create_copy(&wgp->wgp_sin6, sizeof(wgp->wgp_sin6)); if (addr == NULL) goto next; @@ -4102,20 +4106,20 @@ wg_ioctl_get(struct wg_softc *wg, struct } { - prop_number_t sec; - sec = prop_number_create_unsigned_integer( - wgp->wgp_last_handshake_time.tv_sec); + prop_number_t sec, nsec; + const struct timespec *t = &wgp->wgp_last_handshake_time; + + sec = prop_number_create_unsigned(t->tv_sec); if (sec == NULL) goto next; prop_dictionary_set(prop_peer, "last_handshake_time_sec", sec); prop_object_release(sec); - prop_number_t nsec; - nsec = prop_number_create_unsigned_integer( - wgp->wgp_last_handshake_time.tv_nsec); + nsec = prop_number_create_unsigned(t->tv_nsec); if (nsec == NULL) goto next; - prop_dictionary_set(prop_peer, "last_handshake_time_nsec", nsec); + prop_dictionary_set(prop_peer, "last_handshake_time_nsec", + nsec); prop_object_release(nsec); } @@ -4134,13 +4138,13 @@ wg_ioctl_get(struct wg_softc *wg, struct if (prop_allowedip == NULL) break; - family = prop_number_create_unsigned_integer(wga->wga_family); + family = prop_number_create_unsigned(wga->wga_family); if (family == NULL) goto _next; prop_dictionary_set(prop_allowedip, "family", family); prop_object_release(family); - cidr = prop_number_create_unsigned_integer(wga->wga_cidr); + cidr = prop_number_create_unsigned(wga->wga_cidr); if (cidr == NULL) goto _next; prop_dictionary_set(prop_allowedip, "cidr", cidr); @@ -4148,20 +4152,22 @@ wg_ioctl_get(struct wg_softc *wg, struct switch (wga->wga_family) { case AF_INET: - prop_addr = prop_data_create_data( + prop_addr = prop_data_create_copy( &wga->wga_addr4, sizeof(wga->wga_addr4)); if (prop_addr == NULL) goto _next; - prop_dictionary_set(prop_allowedip, "ip", prop_addr); + prop_dictionary_set(prop_allowedip, "ip", + prop_addr); prop_object_release(prop_addr); break; #ifdef INET6 case AF_INET6: - prop_addr = prop_data_create_data( + prop_addr = prop_data_create_copy( &wga->wga_addr6, sizeof(wga->wga_addr6)); if (prop_addr == NULL) goto _next; - prop_dictionary_set(prop_allowedip, "ip", prop_addr); + prop_dictionary_set(prop_allowedip, "ip", + prop_addr); prop_object_release(prop_addr); break; #endif