Class: Baykit::BayServer::Docker::Http::HtpWarpDocker

Inherits:
Base::WarpBase
  • Object
show all
Includes:
Agent::Transporter, H1, H2, HtpDocker, Protocol, OpenSSL
Defined in:
lib/baykit/bayserver/docker/http/htp_warp_docker.rb

Constant Summary

Constants included from HtpDocker

Baykit::BayServer::Docker::Http::HtpDocker::H1_PROTO_NAME, Baykit::BayServer::Docker::Http::HtpDocker::H2_PROTO_NAME

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeHtpWarpDocker

Returns a new instance of HtpWarpDocker.



29
30
31
32
33
34
35
# File 'lib/baykit/bayserver/docker/http/htp_warp_docker.rb', line 29

def initialize
  super
  @secure = false
  @support_h2 = true
  @ssl_ctx = nil
  @trace_ssl = false
end

Instance Attribute Details

#secureObject (readonly)

Implements WarpDocker



80
81
82
# File 'lib/baykit/bayserver/docker/http/htp_warp_docker.rb', line 80

def secure
  @secure
end

#ssl_ctxObject (readonly)

Returns the value of attribute ssl_ctx.



26
27
28
# File 'lib/baykit/bayserver/docker/http/htp_warp_docker.rb', line 26

def ssl_ctx
  @ssl_ctx
end

#support_h2Object (readonly)

Returns the value of attribute support_h2.



25
26
27
# File 'lib/baykit/bayserver/docker/http/htp_warp_docker.rb', line 25

def support_h2
  @support_h2
end

#trace_sslObject (readonly)

Returns the value of attribute trace_ssl.



27
28
29
# File 'lib/baykit/bayserver/docker/http/htp_warp_docker.rb', line 27

def trace_ssl
  @trace_ssl
end

Instance Method Details

#init(elm, parent) ⇒ Object

Implements Docker



41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/baykit/bayserver/docker/http/htp_warp_docker.rb', line 41

def init(elm, parent)
  super

  if @secure
    begin
      @ssl_ctx = SSL::SSLContext.new
    rescue => e
      BayLog.error_e(e)
      raise ConfigException.new(elm.file_name, elm.line_no, BayMessage.get(:CFG_SSL_INIT_ERROR, e))
    end
  end

end

#init_key_val(kv) ⇒ Object

Implements DockerBase



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/baykit/bayserver/docker/http/htp_warp_docker.rb', line 59

def init_key_val(kv)
  case kv.key.downcase
  when "supporth2"
    @support_h2 = StringUtil.(kv.value)

  when "tracessl"
    @trace_ssl = StringUtil.parse_bool(kv.value)

  when "secure"
    @secure = StringUtil.parse_bool(kv.value)
  else
    return super
  end

  return true;
end

#new_transporter(agt, rd, sip) ⇒ Object



92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/baykit/bayserver/docker/http/htp_warp_docker.rb', line 92

def new_transporter(agt, rd, sip)
  if @secure
    tp =  SecureTransporter.new(
      agt.net_multiplexer,
      sip,
      false,
      false, IOUtil.get_sock_recv_buf_size(rd.io),
      @trace_ssl,
      @ssl_ctx)
  else
    tp = PlainTransporter.new(
      agt.net_multiplexer,
      sip,
      false,
      IOUtil.get_sock_recv_buf_size(rd.io),
      false)
  end
  tp.init
  return tp
end

#protocolObject

Implements WarpDockerBase



88
89
90
# File 'lib/baykit/bayserver/docker/http/htp_warp_docker.rb', line 88

def protocol()
  return H1_PROTO_NAME
end