Sha256: ffca279c606dd9d477efcdacc09ced3e26384de52537963caf0d04fdb84909a1
Contents?: true
Size: 1.14 KB
Versions: 62
Compression:
Stored size: 1.14 KB
Contents
module Specinfra module Command module Module module Ss def check_is_listening(port, options={}) pattern = ":#{port} " pattern = " #{inaddr_any_to_asterisk(options[:local_address])}#{pattern}" if options[:local_address] "ss #{command_options(options[:protocol])} | grep -- #{escape(pattern)}" end private # WORKAROUND: # ss displays "*" instead of "0.0.0.0". # But serverspec validates IP address by `valid_ip_address?` method: # https://github.com/serverspec/serverspec/blob/master/lib/serverspec/type/port.rb def inaddr_any_to_asterisk(local_address) if local_address == '0.0.0.0' '\*' else local_address end end def command_options(protocol) case protocol.to_s when 'tcp' then "-tnl4" when 'tcp6' then "-tnl6" when 'udp' then "-unl4" when 'udp6' then "-unl6" when '' then "-tunl" else raise ArgumentError, "Unknown protocol [#{protocol}]" end end end end end end
Version data entries
62 entries across 62 versions & 1 rubygems