Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
7efa6e75c1
|
@ -40,17 +40,19 @@ enum wg_peer_flags {
|
||||||
WGPEER_HAS_PERSISTENT_KEEPALIVE_INTERVAL = 1U << 4
|
WGPEER_HAS_PERSISTENT_KEEPALIVE_INTERVAL = 1U << 4
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef union wg_endpoint {
|
||||||
|
struct sockaddr addr;
|
||||||
|
struct sockaddr_in addr4;
|
||||||
|
struct sockaddr_in6 addr6;
|
||||||
|
} wg_endpoint;
|
||||||
|
|
||||||
typedef struct wg_peer {
|
typedef struct wg_peer {
|
||||||
enum wg_peer_flags flags;
|
enum wg_peer_flags flags;
|
||||||
|
|
||||||
wg_key public_key;
|
wg_key public_key;
|
||||||
wg_key preshared_key;
|
wg_key preshared_key;
|
||||||
|
|
||||||
union {
|
wg_endpoint endpoint;
|
||||||
struct sockaddr addr;
|
|
||||||
struct sockaddr_in addr4;
|
|
||||||
struct sockaddr_in6 addr6;
|
|
||||||
} endpoint;
|
|
||||||
|
|
||||||
struct timespec64 last_handshake_time;
|
struct timespec64 last_handshake_time;
|
||||||
uint64_t rx_bytes, tx_bytes;
|
uint64_t rx_bytes, tx_bytes;
|
||||||
|
|
|
@ -16,7 +16,7 @@ INTERFACE="${BASH_REMATCH[1]}"
|
||||||
process_peer() {
|
process_peer() {
|
||||||
[[ $PEER_SECTION -ne 1 || -z $PUBLIC_KEY || -z $ENDPOINT ]] && return 0
|
[[ $PEER_SECTION -ne 1 || -z $PUBLIC_KEY || -z $ENDPOINT ]] && return 0
|
||||||
[[ $(wg show "$INTERFACE" latest-handshakes) =~ ${PUBLIC_KEY//+/\\+}\ ([0-9]+) ]] || return 0
|
[[ $(wg show "$INTERFACE" latest-handshakes) =~ ${PUBLIC_KEY//+/\\+}\ ([0-9]+) ]] || return 0
|
||||||
(( ($(date +%s) - ${BASH_REMATCH[1]}) > 135 )) || return 0
|
(( ($EPOCHSECONDS - ${BASH_REMATCH[1]}) > 135 )) || return 0
|
||||||
wg set "$INTERFACE" peer "$PUBLIC_KEY" endpoint "$ENDPOINT"
|
wg set "$INTERFACE" peer "$PUBLIC_KEY" endpoint "$ENDPOINT"
|
||||||
reset_peer_section
|
reset_peer_section
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue