Class: Sonic::Protocol::TCP
- Inherits:
-
Object
- Object
- Sonic::Protocol::TCP
- Includes:
- Base
- Defined in:
- lib/sonic/protocols/tcp.rb
Instance Method Summary collapse
-
#initialize(service_checker) ⇒ TCP
constructor
A new instance of TCP.
- #send ⇒ Object
Constructor Details
#initialize(service_checker) ⇒ TCP
Returns a new instance of TCP.
8 9 10 11 12 13 14 15 |
# File 'lib/sonic/protocols/tcp.rb', line 8 def initialize(service_checker) @service_checker = service_checker @host = service_checker.host @port = service_checker.port @payload = service_checker.payload @ssl_key = service_checker.ssl_key @ssl_cert = service_checker.ssl_cert end |
Instance Method Details
#send ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/sonic/protocols/tcp.rb', line 17 def send begin connection = TCPSocket.new(@host, @port) if @ssl_cert && @ssl_key ssl_context = OpenSSL::SSL::SSLContext.new() ssl_context.cert = OpenSSL::X509::Certificate.new(File.read("#{Dir.pwd}/certs/#{@ssl_cert}")) ssl_context.ca_file = "#{Dir.pwd}/certs/#{@ssl_cert}" ssl_context.key = OpenSSL::PKey::RSA.new(File.read("#{Dir.pwd}/certs/#{@ssl_key}")) socket = OpenSSL::SSL::SSLSocket.new(connection, ssl_context) socket.sync_close = true socket.connect else socket = connection end socket.syswrite(@payload) read_tcp_response(socket) socket.close socket = nil if @service_checker.response true else false end rescue Exception => e @service_checker.error = e.to_s false end end |