netlink: use __kernel_timespec for handshake time
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
parent
ee88038986
commit
a6e4ec487d
4 changed files with 17 additions and 5 deletions
|
@ -16,6 +16,12 @@
|
||||||
typedef uint8_t wg_key[32];
|
typedef uint8_t wg_key[32];
|
||||||
typedef char wg_key_b64_string[((sizeof(wg_key) + 2) / 3) * 4 + 1];
|
typedef char wg_key_b64_string[((sizeof(wg_key) + 2) / 3) * 4 + 1];
|
||||||
|
|
||||||
|
/* Cross platform __kernel_timespec */
|
||||||
|
struct timespec64 {
|
||||||
|
int64_t tv_sec;
|
||||||
|
int64_t tv_nsec;
|
||||||
|
};
|
||||||
|
|
||||||
typedef struct wg_allowedip {
|
typedef struct wg_allowedip {
|
||||||
uint16_t family;
|
uint16_t family;
|
||||||
union {
|
union {
|
||||||
|
@ -46,7 +52,7 @@ typedef struct wg_peer {
|
||||||
struct sockaddr_in6 addr6;
|
struct sockaddr_in6 addr6;
|
||||||
} endpoint;
|
} endpoint;
|
||||||
|
|
||||||
struct timespec last_handshake_time;
|
struct timespec64 last_handshake_time;
|
||||||
uint64_t rx_bytes, tx_bytes;
|
uint64_t rx_bytes, tx_bytes;
|
||||||
uint16_t persistent_keepalive_interval;
|
uint16_t persistent_keepalive_interval;
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,12 @@
|
||||||
|
|
||||||
#include "../uapi/wireguard.h"
|
#include "../uapi/wireguard.h"
|
||||||
|
|
||||||
|
/* Cross platform __kernel_timespec */
|
||||||
|
struct timespec64 {
|
||||||
|
int64_t tv_sec;
|
||||||
|
int64_t tv_nsec;
|
||||||
|
};
|
||||||
|
|
||||||
struct wgallowedip {
|
struct wgallowedip {
|
||||||
uint16_t family;
|
uint16_t family;
|
||||||
union {
|
union {
|
||||||
|
@ -45,7 +51,7 @@ struct wgpeer {
|
||||||
struct sockaddr_in6 addr6;
|
struct sockaddr_in6 addr6;
|
||||||
} endpoint;
|
} endpoint;
|
||||||
|
|
||||||
struct timespec last_handshake_time;
|
struct timespec64 last_handshake_time;
|
||||||
uint64_t rx_bytes, tx_bytes;
|
uint64_t rx_bytes, tx_bytes;
|
||||||
uint16_t persistent_keepalive_interval;
|
uint16_t persistent_keepalive_interval;
|
||||||
|
|
||||||
|
|
|
@ -420,9 +420,9 @@ static int userspace_get_device(struct wgdevice **out, const char *interface)
|
||||||
if (*end || allowedip->family == AF_UNSPEC || (allowedip->family == AF_INET6 && allowedip->cidr > 128) || (allowedip->family == AF_INET && allowedip->cidr > 32))
|
if (*end || allowedip->family == AF_UNSPEC || (allowedip->family == AF_INET6 && allowedip->cidr > 128) || (allowedip->family == AF_INET && allowedip->cidr > 32))
|
||||||
break;
|
break;
|
||||||
} else if (peer && !strcmp(key, "last_handshake_time_sec"))
|
} else if (peer && !strcmp(key, "last_handshake_time_sec"))
|
||||||
peer->last_handshake_time.tv_sec = NUM(0xffffffffffffffffULL);
|
peer->last_handshake_time.tv_sec = NUM(0x7fffffffffffffffULL);
|
||||||
else if (peer && !strcmp(key, "last_handshake_time_nsec"))
|
else if (peer && !strcmp(key, "last_handshake_time_nsec"))
|
||||||
peer->last_handshake_time.tv_nsec = NUM(0xffffffffffffffffULL);
|
peer->last_handshake_time.tv_nsec = NUM(0x7fffffffffffffffULL);
|
||||||
else if (peer && !strcmp(key, "rx_bytes"))
|
else if (peer && !strcmp(key, "rx_bytes"))
|
||||||
peer->rx_bytes = NUM(0xffffffffffffffffULL);
|
peer->rx_bytes = NUM(0xffffffffffffffffULL);
|
||||||
else if (peer && !strcmp(key, "tx_bytes"))
|
else if (peer && !strcmp(key, "tx_bytes"))
|
||||||
|
|
|
@ -155,7 +155,7 @@ static size_t pretty_time(char *buf, const size_t len, unsigned long long left)
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *ago(const struct timespec *t)
|
static char *ago(const struct timespec64 *t)
|
||||||
{
|
{
|
||||||
static char buf[1024];
|
static char buf[1024];
|
||||||
size_t offset;
|
size_t offset;
|
||||||
|
|
Loading…
Reference in a new issue