mirror of
https://github.com/amnezia-vpn/amneziawg-tools.git
synced 2025-08-01 17:12:50 +02:00
chore: rename advanced security to awg
Some checks failed
Some checks failed
This commit is contained in:
parent
4b25e43d67
commit
430e39aaf9
10 changed files with 54 additions and 115 deletions
|
@ -74,8 +74,7 @@ enum wgdevice_attribute {
|
|||
enum wgpeer_flag {
|
||||
WGPEER_F_REMOVE_ME = 1U << 0,
|
||||
WGPEER_F_REPLACE_ALLOWEDIPS = 1U << 1,
|
||||
WGPEER_F_HAS_ADVANCED_SECURITY = 1U << 3,
|
||||
WGPEER_F_HAS_SPECIAL_HANDSHAKE = 1U << 4
|
||||
WGPEER_F_HAS_AWG = 1U << 3
|
||||
};
|
||||
enum wgpeer_attribute {
|
||||
WGPEER_A_UNSPEC,
|
||||
|
@ -89,8 +88,7 @@ enum wgpeer_attribute {
|
|||
WGPEER_A_TX_BYTES,
|
||||
WGPEER_A_ALLOWEDIPS,
|
||||
WGPEER_A_PROTOCOL_VERSION,
|
||||
WGPEER_A_ADVANCED_SECURITY,
|
||||
WGPEER_A_SPECIAL_HANDSHAKE,
|
||||
WGPEER_A_AWG,
|
||||
__WGPEER_A_LAST
|
||||
};
|
||||
|
||||
|
|
|
@ -4,8 +4,7 @@ ACCOUNTS_FILE=$1
|
|||
INTERFACE_NAME=$2
|
||||
PUBLIC_KEY=$3
|
||||
ENDPOINT=$4
|
||||
ADVANCED_SECURITY=$5
|
||||
SPECIAL_HANDSHAKE=$6
|
||||
AWG=$5
|
||||
|
||||
ACCOUNT_STR=`grep "${PUBLIC_KEY}" "${ACCOUNTS_FILE}"`
|
||||
|
||||
|
@ -20,7 +19,7 @@ PSK=$(echo ${ACCOUNT[2]}|tr -d '"')
|
|||
PSK_FILE=$(tempfile)
|
||||
echo "${PSK}" > "${PSK_FILE}"
|
||||
|
||||
awg set "${INTERFACE_NAME}" peer "${PUBLIC_KEY}" allowed-ips "${ALLOWED_IPS}" endpoint "${ENDPOINT}" allowed-ips "${ALLOWED_IPS}" preshared-key "${PSK_FILE}" advanced-security "${ADVANCED_SECURITY}" special-handshake "${SPECIAL_HANDSHAKE}"
|
||||
awg set "${INTERFACE_NAME}" peer "${PUBLIC_KEY}" allowed-ips "${ALLOWED_IPS}" endpoint "${ENDPOINT}" allowed-ips "${ALLOWED_IPS}" preshared-key "${PSK_FILE}" awg "${AWG}"
|
||||
EXIT_CODE=$?
|
||||
|
||||
rm -f "{$PSK_FILE}"
|
||||
|
|
|
@ -116,19 +116,18 @@ static int get_endpoint(struct nlattr *peer[], char **endpoint_ip)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int run_callback(char *ifname, char *pubkey, char *endpoint_ip, bool advanced_security, bool special_handshake)
|
||||
static int run_callback(char *ifname, char *pubkey, char *endpoint_ip, bool is_awg)
|
||||
{
|
||||
char** new_argv = malloc((cb_argc + 2) * sizeof *new_argv);
|
||||
|
||||
new_argv[0] = cb_argv[1];
|
||||
for (int i = 2; i < cb_argc - 4; i++) {
|
||||
for (int i = 2; i < cb_argc - 3; i++) {
|
||||
new_argv[i - 1] = cb_argv[i];
|
||||
}
|
||||
new_argv[cb_argc - 5] = ifname;
|
||||
new_argv[cb_argc - 4] = pubkey;
|
||||
new_argv[cb_argc - 3] = endpoint_ip;
|
||||
new_argv[cb_argc - 2] = (advanced_security ? "on\0" : "off\0");
|
||||
new_argv[cb_argc - 1] = (special_handshake ? "on\0" : "off\0");
|
||||
new_argv[cb_argc - 4] = ifname;
|
||||
new_argv[cb_argc - 3] = pubkey;
|
||||
new_argv[cb_argc - 2] = endpoint_ip;
|
||||
new_argv[cb_argc - 1] = (is_awg ? "on\0" : "off\0");
|
||||
new_argv[cb_argc] = NULL;
|
||||
|
||||
int child_pid = fork(), ret;
|
||||
|
@ -156,8 +155,7 @@ static int netlink_callback(struct nl_msg *msg, void *arg)
|
|||
nla_parse(tb, WGDEVICE_A_MAX, genlmsg_attrdata(gnlh, 0), genlmsg_attrlen(gnlh, 0), NULL);
|
||||
|
||||
char *ifname, *pubkey, *endpoint_ip;
|
||||
bool advanced_security = false;
|
||||
bool special_handshake = false;
|
||||
bool is_awg = false;
|
||||
int cb_ret;
|
||||
|
||||
switch (gnlh->cmd) {
|
||||
|
@ -178,13 +176,10 @@ static int netlink_callback(struct nl_msg *msg, void *arg)
|
|||
prerr("invalid endpoint!\n");
|
||||
return NL_SKIP;
|
||||
}
|
||||
if (nla_get_flag(peer[WGPEER_A_ADVANCED_SECURITY])) {
|
||||
advanced_security = true;
|
||||
if (nla_get_flag(peer[WGPEER_A_AWG])) {
|
||||
is_awg = true;
|
||||
}
|
||||
if (nla_get_flag(peer[WGPEER_A_SPECIAL_HANDSHAKE])) {
|
||||
special_handshake = true;
|
||||
}
|
||||
if (cb_ret = run_callback(ifname, pubkey, endpoint_ip, advanced_security, special_handshake)) {
|
||||
if (cb_ret = run_callback(ifname, pubkey, endpoint_ip, is_awg)) {
|
||||
prerr("failed to execute callback script: %d!\n", cb_ret);
|
||||
return NL_SKIP;
|
||||
}
|
||||
|
|
22
src/config.c
22
src/config.c
|
@ -425,8 +425,8 @@ static inline bool parse_awg_string(char **device_value, const char *name, const
|
|||
return true;
|
||||
}
|
||||
|
||||
if (len >= MAX_AWG_JUNK_LEN) {
|
||||
fprintf(stderr, "Unable to process string for: %s; longer than: %d\n", name, MAX_AWG_JUNK_LEN);
|
||||
if (len >= MAX_AWG_STRING_LEN) {
|
||||
fprintf(stderr, "Unable to process string for: %s; longer than: %d\n", name, MAX_AWG_STRING_LEN);
|
||||
return false;
|
||||
}
|
||||
*device_value = strdup(value);
|
||||
|
@ -645,13 +645,9 @@ static bool process_line(struct config_ctx *ctx, const char *line)
|
|||
if (ret)
|
||||
ctx->last_peer->flags |= WGPEER_HAS_PRESHARED_KEY;
|
||||
} else if (key_match("AdvancedSecurity")) {
|
||||
ret = parse_bool(&ctx->last_peer->advanced_security, "AdvancedSecurity", value);
|
||||
ret = parse_bool(&ctx->last_peer->awg, "AdvancedSecurity", value);
|
||||
if (ret)
|
||||
ctx->last_peer->flags |= WGPEER_HAS_ADVANCED_SECURITY;
|
||||
} else if (key_match("SpecialHandshake")) {
|
||||
ret = parse_bool(&ctx->last_peer->special_handshake, "SpecialHandshake", value);
|
||||
if (ret)
|
||||
ctx->last_peer->flags |= WGPEER_HAS_SPECIAL_HANDSHAKE;
|
||||
ctx->last_peer->flags |= WGPEER_HAS_AWG;
|
||||
} else
|
||||
goto error;
|
||||
} else
|
||||
|
@ -1017,15 +1013,9 @@ struct wgdevice *config_read_cmd(const char *argv[], int argc)
|
|||
argv += 2;
|
||||
argc -= 2;
|
||||
} else if (!strcmp(argv[0], "advanced-security") && argc >= 2 && peer) {
|
||||
if (!parse_bool(&peer->advanced_security, "AdvancedSecurity", argv[1]))
|
||||
if (!parse_bool(&peer->awg, "AdvancedSecurity", argv[1]))
|
||||
goto error;
|
||||
peer->flags |= WGPEER_HAS_ADVANCED_SECURITY;
|
||||
argv += 2;
|
||||
argc -= 2;
|
||||
} else if (!strcmp(argv[0], "special-handshake") && argc >= 2 && peer) {
|
||||
if (!parse_bool(&peer->special_handshake, "SpecialHandshake", argv[1]))
|
||||
goto error;
|
||||
peer->flags |= WGPEER_HAS_SPECIAL_HANDSHAKE;
|
||||
peer->flags |= WGPEER_HAS_AWG;
|
||||
argv += 2;
|
||||
argc -= 2;
|
||||
} else {
|
||||
|
|
|
@ -23,8 +23,8 @@
|
|||
#define WG_KEY_LEN 32
|
||||
#endif
|
||||
|
||||
#ifndef MAX_AWG_JUNK_LEN
|
||||
#define MAX_AWG_JUNK_LEN 5 * 1024
|
||||
#ifndef MAX_AWG_STRING_LEN
|
||||
#define MAX_AWG_STRING_LEN 5 * 1024
|
||||
#endif
|
||||
|
||||
/* Cross platform __kernel_timespec */
|
||||
|
@ -49,8 +49,7 @@ enum {
|
|||
WGPEER_HAS_PUBLIC_KEY = 1U << 2,
|
||||
WGPEER_HAS_PRESHARED_KEY = 1U << 3,
|
||||
WGPEER_HAS_PERSISTENT_KEEPALIVE_INTERVAL = 1U << 4,
|
||||
WGPEER_HAS_ADVANCED_SECURITY = 1U << 5,
|
||||
WGPEER_HAS_SPECIAL_HANDSHAKE = 1U << 6
|
||||
WGPEER_HAS_AWG = 1U << 5
|
||||
};
|
||||
|
||||
struct wgpeer {
|
||||
|
@ -69,8 +68,7 @@ struct wgpeer {
|
|||
uint64_t rx_bytes, tx_bytes;
|
||||
uint16_t persistent_keepalive_interval;
|
||||
|
||||
bool advanced_security;
|
||||
bool special_handshake;
|
||||
bool awg;
|
||||
|
||||
struct wgallowedip *first_allowedip, *last_allowedip;
|
||||
struct wgpeer *next_peer;
|
||||
|
|
|
@ -142,7 +142,7 @@ static int kernel_get_device(struct wgdevice **device, const char *ifname)
|
|||
}
|
||||
if (nvlist_exists_number(nvl_device, "h1")) {
|
||||
binary = nvlist_get_binary(nvl_device, "h1", &size);
|
||||
if (binary && size < MAX_AWG_JUNK_LEN)
|
||||
if (binary && size < MAX_AWG_STRING_LEN)
|
||||
{
|
||||
dev->init_packet_magic_header = strdup((const char*)binary);
|
||||
dev->flags |= WGDEVICE_HAS_H1;
|
||||
|
@ -150,7 +150,7 @@ static int kernel_get_device(struct wgdevice **device, const char *ifname)
|
|||
}
|
||||
if (nvlist_exists_number(nvl_device, "h2")) {
|
||||
binary = nvlist_get_binary(nvl_device, "h2", &size);
|
||||
if (binary && size < MAX_AWG_JUNK_LEN)
|
||||
if (binary && size < MAX_AWG_STRING_LEN)
|
||||
{
|
||||
dev->response_packet_magic_header = strdup((const char*)binary);
|
||||
dev->flags |= WGDEVICE_HAS_H2;
|
||||
|
@ -158,7 +158,7 @@ static int kernel_get_device(struct wgdevice **device, const char *ifname)
|
|||
}
|
||||
if (nvlist_exists_number(nvl_device, "h3")) {
|
||||
binary = nvlist_get_binary(nvl_device, "h3", &size);
|
||||
if (binary && size < MAX_AWG_JUNK_LEN)
|
||||
if (binary && size < MAX_AWG_STRING_LEN)
|
||||
{
|
||||
dev->underload_packet_magic_header = strdup((const char*)binary);
|
||||
dev->flags |= WGDEVICE_HAS_H3;
|
||||
|
@ -166,7 +166,7 @@ static int kernel_get_device(struct wgdevice **device, const char *ifname)
|
|||
}
|
||||
if (nvlist_exists_number(nvl_device, "h4")) {
|
||||
binary = nvlist_get_binary(nvl_device, "h4", &size);
|
||||
if (binary && size < MAX_AWG_JUNK_LEN)
|
||||
if (binary && size < MAX_AWG_STRING_LEN)
|
||||
{
|
||||
dev->transport_packet_magic_header = strdup((const char*)binary);
|
||||
dev->flags |= WGDEVICE_HAS_H4;
|
||||
|
@ -175,7 +175,7 @@ static int kernel_get_device(struct wgdevice **device, const char *ifname)
|
|||
if (nvlist_exists_binary(nvl_device, "i1"))
|
||||
{
|
||||
binary = nvlist_get_binary(nvl_device, "i1", &size);
|
||||
if (binary && size < MAX_AWG_JUNK_LEN)
|
||||
if (binary && size < MAX_AWG_STRING_LEN)
|
||||
{
|
||||
dev->i1 = strdup((const char*)binary);
|
||||
dev->flags |= WGDEVICE_HAS_I1;
|
||||
|
@ -184,7 +184,7 @@ static int kernel_get_device(struct wgdevice **device, const char *ifname)
|
|||
if (nvlist_exists_binary(nvl_device, "i2"))
|
||||
{
|
||||
binary = nvlist_get_binary(nvl_device, "i2", &size);
|
||||
if (binary && size < MAX_AWG_JUNK_LEN)
|
||||
if (binary && size < MAX_AWG_STRING_LEN)
|
||||
{
|
||||
dev->i2 = strdup((const char*)binary);
|
||||
dev->flags |= WGDEVICE_HAS_I2;
|
||||
|
@ -193,7 +193,7 @@ static int kernel_get_device(struct wgdevice **device, const char *ifname)
|
|||
if (nvlist_exists_binary(nvl_device, "i3"))
|
||||
{
|
||||
binary = nvlist_get_binary(nvl_device, "i3", &size);
|
||||
if (binary && size < MAX_AWG_JUNK_LEN)
|
||||
if (binary && size < MAX_AWG_STRING_LEN)
|
||||
{
|
||||
dev->i3 = strdup((const char*)binary);
|
||||
dev->flags |= WGDEVICE_HAS_I3;
|
||||
|
@ -202,7 +202,7 @@ static int kernel_get_device(struct wgdevice **device, const char *ifname)
|
|||
if (nvlist_exists_binary(nvl_device, "i4"))
|
||||
{
|
||||
binary = nvlist_get_binary(nvl_device, "i4", &size);
|
||||
if (binary && size < MAX_AWG_JUNK_LEN)
|
||||
if (binary && size < MAX_AWG_STRING_LEN)
|
||||
{
|
||||
dev->i4 = strdup((const char*)binary);
|
||||
dev->flags |= WGDEVICE_HAS_I4;
|
||||
|
@ -211,7 +211,7 @@ static int kernel_get_device(struct wgdevice **device, const char *ifname)
|
|||
if (nvlist_exists_binary(nvl_device, "i5"))
|
||||
{
|
||||
binary = nvlist_get_binary(nvl_device, "i5", &size);
|
||||
if (binary && size < MAX_AWG_JUNK_LEN)
|
||||
if (binary && size < MAX_AWG_STRING_LEN)
|
||||
{
|
||||
dev->i5 = strdup((const char*)binary);
|
||||
dev->flags |= WGDEVICE_HAS_I5;
|
||||
|
@ -220,7 +220,7 @@ static int kernel_get_device(struct wgdevice **device, const char *ifname)
|
|||
if (nvlist_exists_binary(nvl_device, "j1"))
|
||||
{
|
||||
binary = nvlist_get_binary(nvl_device, "j1", &size);
|
||||
if (binary && size < MAX_AWG_JUNK_LEN)
|
||||
if (binary && size < MAX_AWG_STRING_LEN)
|
||||
{
|
||||
dev->j1 = strdup((const char*)binary);
|
||||
dev->flags |= WGDEVICE_HAS_J1;
|
||||
|
@ -229,7 +229,7 @@ static int kernel_get_device(struct wgdevice **device, const char *ifname)
|
|||
if (nvlist_exists_binary(nvl_device, "j2"))
|
||||
{
|
||||
binary = nvlist_get_binary(nvl_device, "j2", &size);
|
||||
if (binary && size < MAX_AWG_JUNK_LEN)
|
||||
if (binary && size < MAX_AWG_STRING_LEN)
|
||||
{
|
||||
dev->j2 = strdup((const char*)binary);
|
||||
dev->flags |= WGDEVICE_HAS_J2;
|
||||
|
@ -238,7 +238,7 @@ static int kernel_get_device(struct wgdevice **device, const char *ifname)
|
|||
if (nvlist_exists_binary(nvl_device, "j3"))
|
||||
{
|
||||
binary = nvlist_get_binary(nvl_device, "j3", &size);
|
||||
if (binary && size < MAX_AWG_JUNK_LEN)
|
||||
if (binary && size < MAX_AWG_STRING_LEN)
|
||||
{
|
||||
dev->j3 = strdup((const char*)binary);
|
||||
dev->flags |= WGDEVICE_HAS_J3;
|
||||
|
|
|
@ -243,17 +243,10 @@ again:
|
|||
goto toobig_peers;
|
||||
}
|
||||
}
|
||||
if (peer->flags & WGPEER_HAS_ADVANCED_SECURITY) {
|
||||
if (peer->advanced_security)
|
||||
mnl_attr_put_check(nlh, SOCKET_BUFFER_SIZE, WGPEER_A_ADVANCED_SECURITY, 0, NULL);
|
||||
flags |= WGPEER_F_HAS_ADVANCED_SECURITY;
|
||||
}
|
||||
if (peer->flags & WGPEER_HAS_SPECIAL_HANDSHAKE)
|
||||
{
|
||||
if (peer->special_handshake)
|
||||
mnl_attr_put_check(
|
||||
nlh, SOCKET_BUFFER_SIZE, WGPEER_A_SPECIAL_HANDSHAKE, 0, NULL);
|
||||
flags |= WGPEER_F_HAS_SPECIAL_HANDSHAKE;
|
||||
if (peer->flags & WGPEER_HAS_AWG) {
|
||||
if (peer->awg)
|
||||
mnl_attr_put_check(nlh, SOCKET_BUFFER_SIZE, WGPEER_A_AWG, 0, NULL);
|
||||
flags |= WGPEER_F_HAS_AWG;
|
||||
}
|
||||
if (flags) {
|
||||
if (!mnl_attr_put_u32_check(nlh, SOCKET_BUFFER_SIZE, WGPEER_A_FLAGS, flags))
|
||||
|
@ -427,36 +420,18 @@ static int parse_peer(const struct nlattr *attr, void *data)
|
|||
if (!mnl_attr_validate(attr, MNL_TYPE_U32)) {
|
||||
uint32_t flags = mnl_attr_get_u32(attr);
|
||||
|
||||
if (flags & WGPEER_F_HAS_ADVANCED_SECURITY && !(peer->flags & WGPEER_HAS_ADVANCED_SECURITY)) {
|
||||
peer->flags |= WGPEER_HAS_ADVANCED_SECURITY;
|
||||
peer->advanced_security = false;
|
||||
}
|
||||
if (
|
||||
flags & WGPEER_F_HAS_SPECIAL_HANDSHAKE &&
|
||||
!(peer->flags & WGPEER_HAS_SPECIAL_HANDSHAKE))
|
||||
{
|
||||
peer->flags |= WGPEER_HAS_SPECIAL_HANDSHAKE;
|
||||
peer->special_handshake = false;
|
||||
if (flags & WGPEER_F_HAS_AWG && !(peer->flags & WGPEER_HAS_AWG)) {
|
||||
peer->flags |= WGPEER_HAS_AWG;
|
||||
peer->awg = false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case WGPEER_A_ADVANCED_SECURITY:
|
||||
case WGPEER_A_AWG:
|
||||
if (!mnl_attr_validate(attr, MNL_TYPE_FLAG)) {
|
||||
peer->advanced_security = true;
|
||||
peer->awg = true;
|
||||
|
||||
if (!(peer->flags & WGPEER_HAS_ADVANCED_SECURITY)) {
|
||||
peer->flags |= WGPEER_HAS_ADVANCED_SECURITY;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case WGPEER_A_SPECIAL_HANDSHAKE:
|
||||
if (!mnl_attr_validate(attr, MNL_TYPE_FLAG))
|
||||
{
|
||||
peer->special_handshake = true;
|
||||
|
||||
if (!(peer->flags & WGPEER_HAS_SPECIAL_HANDSHAKE))
|
||||
{
|
||||
peer->flags |= WGPEER_HAS_SPECIAL_HANDSHAKE;
|
||||
if (!(peer->flags & WGPEER_HAS_AWG)) {
|
||||
peer->flags |= WGPEER_HAS_AWG;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -96,12 +96,7 @@ static int userspace_set_device(struct wgdevice *dev)
|
|||
for_each_wgpeer(dev, peer) {
|
||||
key_to_hex(hex, peer->public_key);
|
||||
fprintf(f, "public_key=%s\n", hex);
|
||||
if (peer->flags & WGPEER_HAS_ADVANCED_SECURITY) {
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
if (peer->flags & WGPEER_HAS_SPECIAL_HANDSHAKE)
|
||||
{
|
||||
if (peer->flags & WGPEER_HAS_AWG) {
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
|
|
@ -95,11 +95,8 @@ int showconf_main(int argc, const char *argv[])
|
|||
key_to_base64(base64, peer->preshared_key);
|
||||
printf("PresharedKey = %s\n", base64);
|
||||
}
|
||||
if (peer->flags & WGPEER_HAS_ADVANCED_SECURITY) {
|
||||
printf("AdvancedSecurity = %s\n", peer->advanced_security ? "on" : "off");
|
||||
}
|
||||
if (peer->flags & WGPEER_HAS_SPECIAL_HANDSHAKE) {
|
||||
printf("SpecialHandshake = %s\n", peer->special_handshake ? "on" : "off");
|
||||
if (peer->flags & WGPEER_HAS_AWG) {
|
||||
printf("AdvancedSecurity = %s\n", peer->awg ? "on" : "off");
|
||||
}
|
||||
if (peer->first_allowedip)
|
||||
printf("AllowedIPs = ");
|
||||
|
|
|
@ -111,10 +111,7 @@
|
|||
* most recent protocol will be used when
|
||||
* this is unset. Otherwise, must be set
|
||||
* to 1.
|
||||
* WGPEER_A_ADVANCED_SECURITY: flag indicating that advanced security
|
||||
* techniques provided by AmneziaWG should
|
||||
* be used.
|
||||
* WGPEER_A_SPECIAL_HANDSHAKE: flag indicating that special handshake
|
||||
* WGPEER_A_AWG: flag indicating that advanced security
|
||||
* techniques provided by AmneziaWG should
|
||||
* be used.
|
||||
* 0: NLA_NESTED
|
||||
|
@ -147,10 +144,7 @@
|
|||
* WGDEVICE_A_PEER: NLA_NESTED
|
||||
* WGPEER_A_PUBLIC_KEY: NLA_EXACT_LEN, len WG_KEY_LEN
|
||||
* WGPEER_A_ENDPOINT: NLA_MIN_LEN(struct sockaddr), struct sockaddr_in or struct sockaddr_in6
|
||||
* WGPEER_A_ADVANCED_SECURITY: flag indicating that advanced security
|
||||
* techniques provided by AmneziaWG should
|
||||
* be used.
|
||||
* WGPEER_A_SPECIAL_HANDSHAKE: flag indicating that special handshake
|
||||
* WGPEER_A_AWG: flag indicating that advanced security
|
||||
* techniques provided by AmneziaWG should
|
||||
* be used.
|
||||
*
|
||||
|
@ -217,8 +211,7 @@ enum wgpeer_flag {
|
|||
WGPEER_F_REMOVE_ME = 1U << 0,
|
||||
WGPEER_F_REPLACE_ALLOWEDIPS = 1U << 1,
|
||||
WGPEER_F_UPDATE_ONLY = 1U << 2,
|
||||
WGPEER_F_HAS_ADVANCED_SECURITY = 1U << 3,
|
||||
WGPEER_F_HAS_SPECIAL_HANDSHAKE = 1U << 4,
|
||||
WGPEER_F_HAS_AWG = 1U << 3,
|
||||
__WGPEER_F_ALL = WGPEER_F_REMOVE_ME | WGPEER_F_REPLACE_ALLOWEDIPS |
|
||||
WGPEER_F_UPDATE_ONLY
|
||||
};
|
||||
|
@ -234,8 +227,7 @@ enum wgpeer_attribute {
|
|||
WGPEER_A_TX_BYTES,
|
||||
WGPEER_A_ALLOWEDIPS,
|
||||
WGPEER_A_PROTOCOL_VERSION,
|
||||
WGPEER_A_ADVANCED_SECURITY,
|
||||
WGPEER_A_SPECIAL_HANDSHAKE,
|
||||
WGPEER_A_AWG,
|
||||
__WGPEER_A_LAST
|
||||
};
|
||||
#define WGPEER_A_MAX (__WGPEER_A_LAST - 1)
|
||||
|
|
Loading…
Add table
Reference in a new issue