class WireGuard::Admin::Server
A publicly reachable peer/node that serves as a fallback to relay traffic for other VPN peers behind NATs.
@see https://github.com/pirate/wireguard-docs#bounce-server]
Attributes
allowed_ips[R]
device[RW]
port[RW]
Public Class Methods
new( name:, ip:, allowed_ips:, private_key: nil, port: 51_820, device: 'eth0' )
click to toggle source
rubocop:disable Metrics/ParameterLists
Calls superclass method
WireGuard::Admin::Client::new
# File lib/wire_guard/admin/server.rb, line 18 def initialize( name:, ip:, allowed_ips:, private_key: nil, port: 51_820, device: 'eth0' ) super(name: name, ip: ip, private_key: private_key) raise ArgumentError, 'port must be present' if port.nil? raise ArgumentError, 'port number is invalid' unless (1..65_535).cover?(port.to_i) @port = port.to_i raise ArgumentError, 'allowed_ips must be present' if allowed_ips.nil? self.allowed_ips = allowed_ips raise ArgumentError, 'device must be present' if device.nil? raise ArgumentError, 'device must not be empty' if device.empty? @device = device end
Public Instance Methods
allowed_ips=(aips)
click to toggle source
rubocop:enable Metrics/ParameterLists
# File lib/wire_guard/admin/server.rb, line 44 def allowed_ips=(aips) raise ArgumentError, 'ip must be an IP address with prefix' unless aips.is_a?(IPAddr) @allowed_ips = aips end
to_s()
click to toggle source
# File lib/wire_guard/admin/server.rb, line 50 def to_s "#{self.class.name.split('::').last} #{name}: #{ip}:#{port} [Allowed IPs: #{allowed_ips}/#{allowed_ips.prefix} via #{device}]" end