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
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef union wg_endpoint {
 | 
			
		||||
	struct sockaddr addr;
 | 
			
		||||
	struct sockaddr_in addr4;
 | 
			
		||||
	struct sockaddr_in6 addr6;
 | 
			
		||||
} wg_endpoint;
 | 
			
		||||
 | 
			
		||||
typedef struct wg_peer {
 | 
			
		||||
	enum wg_peer_flags flags;
 | 
			
		||||
 | 
			
		||||
	wg_key public_key;
 | 
			
		||||
	wg_key preshared_key;
 | 
			
		||||
 | 
			
		||||
	union {
 | 
			
		||||
		struct sockaddr addr;
 | 
			
		||||
		struct sockaddr_in addr4;
 | 
			
		||||
		struct sockaddr_in6 addr6;
 | 
			
		||||
	} endpoint;
 | 
			
		||||
	wg_endpoint endpoint;
 | 
			
		||||
 | 
			
		||||
	struct timespec64 last_handshake_time;
 | 
			
		||||
	uint64_t rx_bytes, tx_bytes;
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@ INTERFACE="${BASH_REMATCH[1]}"
 | 
			
		||||
process_peer() {
 | 
			
		||||
	[[ $PEER_SECTION -ne 1 || -z $PUBLIC_KEY || -z $ENDPOINT ]] && 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"
 | 
			
		||||
	reset_peer_section
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user