bayserver-docker-fcgi 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/baykit/bayserver/docker/fcgi/command/cmd_begin_request.rb +66 -0
- data/lib/baykit/bayserver/docker/fcgi/command/cmd_end_request.rb +66 -0
- data/lib/baykit/bayserver/docker/fcgi/command/cmd_params.rb +160 -0
- data/lib/baykit/bayserver/docker/fcgi/command/cmd_stderr.rb +31 -0
- data/lib/baykit/bayserver/docker/fcgi/command/cmd_stdin.rb +33 -0
- data/lib/baykit/bayserver/docker/fcgi/command/cmd_stdout.rb +31 -0
- data/lib/baykit/bayserver/docker/fcgi/command/in_out_command_base.rb +57 -0
- data/lib/baykit/bayserver/docker/fcgi/command/package.rb +6 -0
- data/lib/baykit/bayserver/docker/fcgi/fcg_command.rb +40 -0
- data/lib/baykit/bayserver/docker/fcgi/fcg_command_handler.rb +24 -0
- data/lib/baykit/bayserver/docker/fcgi/fcg_command_unpacker.rb +56 -0
- data/lib/baykit/bayserver/docker/fcgi/fcg_docker.rb +14 -0
- data/lib/baykit/bayserver/docker/fcgi/fcg_inbound_handler.rb +354 -0
- data/lib/baykit/bayserver/docker/fcgi/fcg_packet.rb +56 -0
- data/lib/baykit/bayserver/docker/fcgi/fcg_packet_factory.rb +17 -0
- data/lib/baykit/bayserver/docker/fcgi/fcg_packet_unpacker.rb +201 -0
- data/lib/baykit/bayserver/docker/fcgi/fcg_params.rb +46 -0
- data/lib/baykit/bayserver/docker/fcgi/fcg_port_docker.rb +52 -0
- data/lib/baykit/bayserver/docker/fcgi/fcg_protocol_handler.rb +54 -0
- data/lib/baykit/bayserver/docker/fcgi/fcg_type.rb +23 -0
- data/lib/baykit/bayserver/docker/fcgi/fcg_warp_docker.rb +81 -0
- data/lib/baykit/bayserver/docker/fcgi/fcg_warp_handler.rb +324 -0
- data/lib/baykit/bayserver/docker/fcgi/package.rb +12 -0
- metadata +79 -0
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'baykit/bayserver/docker/base/port_base'
|
2
|
+
require 'baykit/bayserver/protocol/packet_store'
|
3
|
+
require 'baykit/bayserver/docker/fcgi/package'
|
4
|
+
|
5
|
+
|
6
|
+
module Baykit
|
7
|
+
module BayServer
|
8
|
+
module Docker
|
9
|
+
module Fcgi
|
10
|
+
class FcgPortDocker < Baykit::BayServer::Docker::Base::PortBase
|
11
|
+
include Baykit::BayServer::Docker::Fcgi::FcgDocker # implements
|
12
|
+
|
13
|
+
include Baykit::BayServer::Protocol
|
14
|
+
include Baykit::BayServer::WaterCraft
|
15
|
+
include Baykit::BayServer::Docker::Base
|
16
|
+
|
17
|
+
######################################################
|
18
|
+
# Implements Port
|
19
|
+
######################################################
|
20
|
+
def protocol()
|
21
|
+
return PROTO_NAME
|
22
|
+
end
|
23
|
+
|
24
|
+
######################################################
|
25
|
+
# Implements PortBase
|
26
|
+
######################################################
|
27
|
+
def support_anchored()
|
28
|
+
return true
|
29
|
+
end
|
30
|
+
|
31
|
+
def support_unanchored()
|
32
|
+
return false
|
33
|
+
end
|
34
|
+
|
35
|
+
######################################################
|
36
|
+
# Class initializer
|
37
|
+
######################################################
|
38
|
+
begin
|
39
|
+
PacketStore.register_protocol(
|
40
|
+
PROTO_NAME,
|
41
|
+
FcgPacketFactory.new())
|
42
|
+
ProtocolHandlerStore.register_protocol(
|
43
|
+
PROTO_NAME,
|
44
|
+
true,
|
45
|
+
FcgInboundHandler::InboundProtocolHandlerFactory.new())
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'baykit/bayserver/protocol/package'
|
2
|
+
require 'baykit/bayserver/tours/package'
|
3
|
+
|
4
|
+
require 'baykit/bayserver/util/http_util'
|
5
|
+
require 'baykit/bayserver/util/simple_buffer'
|
6
|
+
|
7
|
+
require 'baykit/bayserver/docker/fcgi/command/package'
|
8
|
+
require 'baykit/bayserver/docker/fcgi/package'
|
9
|
+
|
10
|
+
|
11
|
+
module Baykit
|
12
|
+
module BayServer
|
13
|
+
module Docker
|
14
|
+
module Fcgi
|
15
|
+
class FcgProtocolHandler < Baykit::BayServer::Protocol::ProtocolHandler
|
16
|
+
include Baykit::BayServer::Docker::Fcgi::FcgCommandHandler # implements
|
17
|
+
|
18
|
+
include Baykit::BayServer::Util
|
19
|
+
include Baykit::BayServer::Agent
|
20
|
+
include Baykit::BayServer::Protocol
|
21
|
+
include Baykit::BayServer::Docker::Fcgi::Command
|
22
|
+
|
23
|
+
def initialize(pkt_store, svr_mode)
|
24
|
+
@command_unpacker = FcgCommandUnPacker.new(self)
|
25
|
+
@packet_unpacker = FcgPacketUnPacker.new(pkt_store, @command_unpacker)
|
26
|
+
@packet_packer = PacketPacker.new()
|
27
|
+
@command_packer = CommandPacker.new(@packet_packer, pkt_store)
|
28
|
+
@server_mode = svr_mode
|
29
|
+
end
|
30
|
+
|
31
|
+
def inspect()
|
32
|
+
return "PH[#{@ship}]"
|
33
|
+
end
|
34
|
+
|
35
|
+
######################################################
|
36
|
+
# Implements ProtocolHandler
|
37
|
+
######################################################
|
38
|
+
def protocol()
|
39
|
+
return FcgDocker::PROTO_NAME
|
40
|
+
end
|
41
|
+
|
42
|
+
def max_req_packet_data_size
|
43
|
+
FcgPacket::MAXLEN
|
44
|
+
end
|
45
|
+
|
46
|
+
def max_res_packet_data_size
|
47
|
+
FcgPacket::MAXLEN
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Baykit
|
2
|
+
module BayServer
|
3
|
+
module Docker
|
4
|
+
module Fcgi
|
5
|
+
class FcgType
|
6
|
+
|
7
|
+
BEGIN_REQUEST = 1
|
8
|
+
ABORT_REQUEST = 2
|
9
|
+
END_REQUEST = 3
|
10
|
+
PARAMS = 4
|
11
|
+
STDIN = 5
|
12
|
+
STDOUT = 6
|
13
|
+
STDERR = 7
|
14
|
+
DATA = 8
|
15
|
+
GET_VALUES = 9
|
16
|
+
GET_VALUES_RESULT = 10
|
17
|
+
UNKNOWN_TYPE = 11
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require 'baykit/bayserver/bcf/package'
|
2
|
+
require 'baykit/bayserver/docker/warp/warp_docker'
|
3
|
+
require 'baykit/bayserver/agent/transporter/plain_transporter'
|
4
|
+
require 'baykit/bayserver/docker/fcgi/package'
|
5
|
+
|
6
|
+
module Baykit
|
7
|
+
module BayServer
|
8
|
+
module Docker
|
9
|
+
module Fcgi
|
10
|
+
class FcgWarpDocker < Baykit::BayServer::Docker::Warp::WarpDocker
|
11
|
+
include Baykit::BayServer::Docker::Fcgi::FcgDocker # implements
|
12
|
+
|
13
|
+
include Baykit::BayServer::Bcf
|
14
|
+
include Baykit::BayServer::Protocol
|
15
|
+
include Baykit::BayServer::Agent::Transporter
|
16
|
+
|
17
|
+
attr :script_base
|
18
|
+
attr :doc_root
|
19
|
+
|
20
|
+
######################################################
|
21
|
+
# Implements Docker
|
22
|
+
######################################################
|
23
|
+
def init(elm, parent)
|
24
|
+
super
|
25
|
+
|
26
|
+
if @script_base == nil
|
27
|
+
BayLog.warn "FCGI: docRoot is not specified"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
######################################################
|
32
|
+
# Implements DockerBase
|
33
|
+
######################################################
|
34
|
+
|
35
|
+
def init_key_val(kv)
|
36
|
+
case kv.key.downcase
|
37
|
+
when "scritbase"
|
38
|
+
@script_base = kv.value
|
39
|
+
when "docroot"
|
40
|
+
@doc_root = kv.value
|
41
|
+
else
|
42
|
+
return super
|
43
|
+
end
|
44
|
+
true
|
45
|
+
end
|
46
|
+
|
47
|
+
######################################################
|
48
|
+
# Implements WarpDocker
|
49
|
+
######################################################
|
50
|
+
def secure()
|
51
|
+
return false
|
52
|
+
end
|
53
|
+
|
54
|
+
######################################################
|
55
|
+
# Implements WarpDockerBase
|
56
|
+
######################################################
|
57
|
+
def protocol()
|
58
|
+
return PROTO_NAME
|
59
|
+
end
|
60
|
+
|
61
|
+
def new_transporter(agt, skt)
|
62
|
+
PlainTransporter.new(false, IOUtil.get_sock_recv_buf_size(skt))
|
63
|
+
end
|
64
|
+
|
65
|
+
######################################################
|
66
|
+
# Class initializer
|
67
|
+
######################################################
|
68
|
+
begin
|
69
|
+
PacketStore.register_protocol(
|
70
|
+
PROTO_NAME,
|
71
|
+
FcgPacketFactory.new())
|
72
|
+
ProtocolHandlerStore.register_protocol(
|
73
|
+
PROTO_NAME,
|
74
|
+
false,
|
75
|
+
FcgWarpHandler::WarpProtocolHandlerFactory.new())
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,324 @@
|
|
1
|
+
require 'baykit/bayserver/protocol/protocol_exception'
|
2
|
+
require 'baykit/bayserver/tours/package'
|
3
|
+
require 'baykit/bayserver/agent/next_socket_action'
|
4
|
+
|
5
|
+
require 'baykit/bayserver/util/string_util'
|
6
|
+
require 'baykit/bayserver/util/simple_buffer'
|
7
|
+
require 'baykit/bayserver/util/cgi_util'
|
8
|
+
|
9
|
+
require 'baykit/bayserver/docker/warp/warp_data'
|
10
|
+
require 'baykit/bayserver/docker/fcgi/fcg_protocol_handler'
|
11
|
+
require 'baykit/bayserver/docker/fcgi/command/package'
|
12
|
+
require 'baykit/bayserver/docker/fcgi/fcg_params'
|
13
|
+
|
14
|
+
module Baykit
|
15
|
+
module BayServer
|
16
|
+
module Docker
|
17
|
+
module Fcgi
|
18
|
+
class FcgWarpHandler < Baykit::BayServer::Docker::Fcgi::FcgProtocolHandler
|
19
|
+
include Baykit::BayServer::Docker::Warp::WarpHandler # implements
|
20
|
+
|
21
|
+
class WarpProtocolHandlerFactory
|
22
|
+
include Baykit::BayServer::Protocol::ProtocolHandlerFactory # implements
|
23
|
+
|
24
|
+
def create_protocol_handler(pkt_store)
|
25
|
+
return FcgWarpHandler.new(pkt_store)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
include Baykit::BayServer::Agent
|
30
|
+
include Baykit::BayServer::Protocol
|
31
|
+
include Baykit::BayServer::Tours
|
32
|
+
include Baykit::BayServer::Util
|
33
|
+
include Baykit::BayServer::Docker::Warp
|
34
|
+
include Baykit::BayServer::Docker::Fcgi::Command
|
35
|
+
|
36
|
+
|
37
|
+
STATE_READ_HEADER = 1
|
38
|
+
STATE_READ_CONTENT = 2
|
39
|
+
|
40
|
+
attr :cur_warp_id
|
41
|
+
attr :state
|
42
|
+
attr :line_buf
|
43
|
+
|
44
|
+
attr :pos
|
45
|
+
attr :last
|
46
|
+
attr :data
|
47
|
+
|
48
|
+
def initialize(pkt_store)
|
49
|
+
super(pkt_store, false)
|
50
|
+
@cur_warp_id = 0
|
51
|
+
@line_buf = SimpleBuffer.new
|
52
|
+
reset()
|
53
|
+
end
|
54
|
+
|
55
|
+
def reset
|
56
|
+
super
|
57
|
+
reset_state
|
58
|
+
@line_buf.reset
|
59
|
+
@pos = 0
|
60
|
+
@last = 0
|
61
|
+
@data = nil
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
######################################################
|
66
|
+
# Implements WarpHandler
|
67
|
+
######################################################
|
68
|
+
def next_warp_id
|
69
|
+
@cur_warp_id += 1
|
70
|
+
return @cur_warp_id
|
71
|
+
end
|
72
|
+
|
73
|
+
def new_warp_data(warp_id)
|
74
|
+
return WarpData.new(@ship, warp_id)
|
75
|
+
end
|
76
|
+
|
77
|
+
def post_warp_headers(tur)
|
78
|
+
send_begin_req(tur)
|
79
|
+
send_params(tur)
|
80
|
+
end
|
81
|
+
|
82
|
+
def post_warp_contents(tur, buf, start, len, &callback)
|
83
|
+
send_stdin(tur, buf, start, len, &callback)
|
84
|
+
end
|
85
|
+
|
86
|
+
def post_warp_end(tur)
|
87
|
+
send_stdin(tur, nil, 0, 0)
|
88
|
+
end
|
89
|
+
|
90
|
+
def verify_protocol(proto)
|
91
|
+
end
|
92
|
+
|
93
|
+
|
94
|
+
######################################################
|
95
|
+
# Implements FcgCommandHandler
|
96
|
+
######################################################
|
97
|
+
|
98
|
+
def handle_begin_request(cmd)
|
99
|
+
raise ProtocolException.new("Invalid FCGI command: %d", cmd.type)
|
100
|
+
end
|
101
|
+
|
102
|
+
def handle_end_request(cmd)
|
103
|
+
tur = @ship.get_tour(cmd.req_id)
|
104
|
+
end_req_content(tur)
|
105
|
+
NextSocketAction::CONTINUE
|
106
|
+
end
|
107
|
+
|
108
|
+
def handle_params(cmd)
|
109
|
+
raise ProtocolException.new("Invalid FCGI command: %d", cmd.type)
|
110
|
+
end
|
111
|
+
|
112
|
+
def handle_stderr(cmd)
|
113
|
+
msg = cmd.data[cmd.start .. cmd.start + cmd.length + 1]
|
114
|
+
BayLog.error("%s server error: %s", self, msg)
|
115
|
+
NextSocketAction::CONTINUE
|
116
|
+
end
|
117
|
+
|
118
|
+
def handle_stdin(cmd)
|
119
|
+
raise ProtocolException.new("Invalid FCGI command: %d", cmd.type)
|
120
|
+
end
|
121
|
+
|
122
|
+
def handle_stdout(cmd)
|
123
|
+
BayLog.debug("%s handle_stdout req_id=%d len=%d", @ship, cmd.req_id, cmd.length)
|
124
|
+
#BayLog.debug "#{self} handle_stdout data=#{cmd.data}"
|
125
|
+
|
126
|
+
tur = @ship.get_tour(cmd.req_id)
|
127
|
+
if tur == nil
|
128
|
+
raise Sink.new("Tour not found")
|
129
|
+
end
|
130
|
+
|
131
|
+
if cmd.length == 0
|
132
|
+
# stdout end
|
133
|
+
reset_state
|
134
|
+
return NextSocketAction::CONTINUE
|
135
|
+
end
|
136
|
+
|
137
|
+
@data = cmd.data
|
138
|
+
@pos = cmd.start
|
139
|
+
@last = cmd.start + cmd.length
|
140
|
+
|
141
|
+
if @state == STATE_READ_HEADER
|
142
|
+
read_header(tur)
|
143
|
+
end
|
144
|
+
|
145
|
+
if @pos < @last
|
146
|
+
BayLog.debug("%s fcgi: pos=%d last=%d len=%d", @ship, @pos, @last, @last - @pos)
|
147
|
+
if @state == STATE_READ_CONTENT
|
148
|
+
available = tur.res.send_content(Tour::TOUR_ID_NOCHECK, @data, @pos, @last - @pos)
|
149
|
+
if !available
|
150
|
+
return NextSocketAction::SUSPEND
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
NextSocketAction::CONTINUE
|
156
|
+
end
|
157
|
+
|
158
|
+
######################################################
|
159
|
+
# Custom methods
|
160
|
+
######################################################
|
161
|
+
def read_header(tur)
|
162
|
+
wdat = WarpData.get(tur)
|
163
|
+
|
164
|
+
header_finished = parse_header(wdat.res_headers)
|
165
|
+
if header_finished
|
166
|
+
wdat.res_headers.copy_to(tur.res.headers)
|
167
|
+
|
168
|
+
# Check HTTP Status from headers
|
169
|
+
status = wdat.res_headers.get(Headers::STATUS)
|
170
|
+
#BayLog.debug "#{self} fcgi: status=#{wdat.res_headers.headers}"
|
171
|
+
#BayLog.debug "#{self} fcgi: status=#{status}"
|
172
|
+
if StringUtil.set?(status)
|
173
|
+
stlist = status.split(" ")
|
174
|
+
#BayLog.debug("#{self} fcgi: status list=#{stlist}")
|
175
|
+
tur.res.headers.status = stlist[0].to_i
|
176
|
+
tur.res.headers.remove(Headers::STATUS)
|
177
|
+
end
|
178
|
+
|
179
|
+
BayLog.debug("%s fcgi: read header status=%d contlen=%d", @ship, tur.res.headers.status, wdat.res_headers.content_length())
|
180
|
+
sid = @ship.ship_id
|
181
|
+
tur.res.set_consume_listener do |len, resume|
|
182
|
+
if resume
|
183
|
+
@ship.resume(sid)
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
tur.res.send_headers(Tour::TOUR_ID_NOCHECK)
|
188
|
+
change_state(STATE_READ_CONTENT)
|
189
|
+
end
|
190
|
+
|
191
|
+
end
|
192
|
+
|
193
|
+
def read_content(tur)
|
194
|
+
tur.res.send_content(Tour::TOUR_ID_NOCHECK, @data, @pos, @last - @pos)
|
195
|
+
end
|
196
|
+
|
197
|
+
def parse_header(headers)
|
198
|
+
|
199
|
+
while true
|
200
|
+
if @pos == @last
|
201
|
+
# no byte data
|
202
|
+
break
|
203
|
+
end
|
204
|
+
|
205
|
+
c = @data[@pos]
|
206
|
+
@pos += 1
|
207
|
+
|
208
|
+
if c == CharUtil::CR
|
209
|
+
next
|
210
|
+
elsif c == CharUtil::LF
|
211
|
+
line = @line_buf.buf
|
212
|
+
|
213
|
+
if line.length == 0
|
214
|
+
return true
|
215
|
+
end
|
216
|
+
|
217
|
+
colon_pos = line.index(':')
|
218
|
+
if colon_pos == nil
|
219
|
+
raise ProtocolException.new("fcgi: Header line of server is invalid: %s", line)
|
220
|
+
else
|
221
|
+
name = line[0 .. colon_pos - 1].strip
|
222
|
+
value = line[colon_pos + 1 .. -1].strip
|
223
|
+
|
224
|
+
if StringUtil.empty?(name) || StringUtil.empty?(value)
|
225
|
+
raise ProtocolException("fcgi: Header line of server is invalid: %s", line)
|
226
|
+
end
|
227
|
+
|
228
|
+
headers.add(name, value)
|
229
|
+
if BayServer.harbor.trace_header?
|
230
|
+
BayLog.info("%s fcgi_warp: resHeader: %s=%s", @ship, name, value)
|
231
|
+
end
|
232
|
+
end
|
233
|
+
@line_buf.reset()
|
234
|
+
else
|
235
|
+
@line_buf.put(c)
|
236
|
+
end
|
237
|
+
end
|
238
|
+
false
|
239
|
+
end
|
240
|
+
|
241
|
+
def end_req_content(tur)
|
242
|
+
@ship.end_warp_tour(tur)
|
243
|
+
tur.res.end_content(Tour::TOUR_ID_NOCHECK)
|
244
|
+
reset_state()
|
245
|
+
end
|
246
|
+
|
247
|
+
def change_state(new_state)
|
248
|
+
@state = new_state
|
249
|
+
end
|
250
|
+
|
251
|
+
def reset_state()
|
252
|
+
change_state(STATE_READ_HEADER)
|
253
|
+
end
|
254
|
+
|
255
|
+
|
256
|
+
def send_stdin(tur, data, ofs, len, &callback)
|
257
|
+
cmd = CmdStdIn.new(WarpData.get(tur).warp_id, data, ofs, len)
|
258
|
+
@command_packer.post(@ship, cmd, &callback)
|
259
|
+
end
|
260
|
+
|
261
|
+
def send_begin_req(tur)
|
262
|
+
cmd = CmdBeginRequest.new(WarpData.get(tur).warp_id)
|
263
|
+
cmd.role = CmdBeginRequest::FCGI_RESPONDER
|
264
|
+
cmd.keep_conn = true
|
265
|
+
@command_packer.post(@ship, cmd)
|
266
|
+
end
|
267
|
+
|
268
|
+
def send_params(tur)
|
269
|
+
script_base = @ship.docker.script_base
|
270
|
+
if script_base == nil
|
271
|
+
script_base = tur.town.location
|
272
|
+
end
|
273
|
+
|
274
|
+
if StringUtil.empty?(script_base)
|
275
|
+
raise StandardError.new("#{tur.town} Could not create SCRIPT_FILENAME. Location of town not specified.")
|
276
|
+
end
|
277
|
+
|
278
|
+
doc_root = @ship.docker.doc_root
|
279
|
+
if doc_root == nil
|
280
|
+
doc_root = tur.town.location
|
281
|
+
end
|
282
|
+
|
283
|
+
if StringUtil.empty?(doc_root)
|
284
|
+
raise StandardError.new("#{tur.town} docRoot of fcgi docker or location of town is not specified.")
|
285
|
+
end
|
286
|
+
|
287
|
+
warp_id = WarpData.get(tur).warp_id
|
288
|
+
cmd = CmdParams.new(warp_id)
|
289
|
+
script_fname = nil
|
290
|
+
CgiUtil.get_env(tur.town.name, doc_root, script_base, tur) do |name, value|
|
291
|
+
if name == CgiUtil::SCRIPT_FILENAME
|
292
|
+
script_fname = value
|
293
|
+
else
|
294
|
+
cmd.add_param(name, value)
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
298
|
+
script_fname = "proxy:fcgi://#{@ship.docker.host}:#{@ship.docker.port}#{script_fname}"
|
299
|
+
cmd.add_param(CgiUtil::SCRIPT_FILENAME, script_fname)
|
300
|
+
|
301
|
+
# Add FCGI params
|
302
|
+
cmd.add_param(FcgParams::CONTEXT_PREFIX, "")
|
303
|
+
cmd.add_param(FcgParams::UNIQUE_ID, DateTime.now.to_s)
|
304
|
+
#cmd.add_param(FcgParams::X_FORWARDED_FOR, tur.req.remote_address)
|
305
|
+
#cmd.add_param(FcgParams::X_FORWARDED_PROTO, tur.is_secure ? "https" : "http")
|
306
|
+
#cmd.add_param(FcgParams::X_FORWARDED_PORT, tur.req.req_port.to_s)
|
307
|
+
|
308
|
+
if BayServer.harbor.trace_header?
|
309
|
+
cmd.params.each do |kv|
|
310
|
+
BayLog.info("%s fcgi_warp: env: %s=%s", @ship, kv[0], kv[1])
|
311
|
+
end
|
312
|
+
end
|
313
|
+
|
314
|
+
@command_packer.post(@ship, cmd)
|
315
|
+
|
316
|
+
cmd_params_end = CmdParams.new(WarpData.get(tur).warp_id)
|
317
|
+
@command_packer.post(@ship, cmd_params_end)
|
318
|
+
end
|
319
|
+
|
320
|
+
end
|
321
|
+
end
|
322
|
+
end
|
323
|
+
end
|
324
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'baykit/bayserver/docker/fcgi/fcg_command'
|
2
|
+
require 'baykit/bayserver/docker/fcgi/fcg_command_handler'
|
3
|
+
require 'baykit/bayserver/docker/fcgi/fcg_command_unpacker'
|
4
|
+
require 'baykit/bayserver/docker/fcgi/fcg_inbound_handler'
|
5
|
+
require 'baykit/bayserver/docker/fcgi/fcg_docker'
|
6
|
+
require 'baykit/bayserver/docker/fcgi/fcg_packet'
|
7
|
+
require 'baykit/bayserver/docker/fcgi/fcg_packet_factory'
|
8
|
+
require 'baykit/bayserver/docker/fcgi/fcg_packet_unpacker'
|
9
|
+
require 'baykit/bayserver/docker/fcgi/fcg_port_docker'
|
10
|
+
require 'baykit/bayserver/docker/fcgi/fcg_protocol_handler'
|
11
|
+
require 'baykit/bayserver/docker/fcgi/fcg_type'
|
12
|
+
require 'baykit/bayserver/docker/fcgi/fcg_warp_handler'
|
metadata
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bayserver-docker-fcgi
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.2.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Michisuke-P
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2023-08-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bayserver-core
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.2.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.2.0
|
27
|
+
description: AJP docker of BayServer
|
28
|
+
email: michisukep@gmail.com
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- lib/baykit/bayserver/docker/fcgi/command/cmd_begin_request.rb
|
34
|
+
- lib/baykit/bayserver/docker/fcgi/command/cmd_end_request.rb
|
35
|
+
- lib/baykit/bayserver/docker/fcgi/command/cmd_params.rb
|
36
|
+
- lib/baykit/bayserver/docker/fcgi/command/cmd_stderr.rb
|
37
|
+
- lib/baykit/bayserver/docker/fcgi/command/cmd_stdin.rb
|
38
|
+
- lib/baykit/bayserver/docker/fcgi/command/cmd_stdout.rb
|
39
|
+
- lib/baykit/bayserver/docker/fcgi/command/in_out_command_base.rb
|
40
|
+
- lib/baykit/bayserver/docker/fcgi/command/package.rb
|
41
|
+
- lib/baykit/bayserver/docker/fcgi/fcg_command.rb
|
42
|
+
- lib/baykit/bayserver/docker/fcgi/fcg_command_handler.rb
|
43
|
+
- lib/baykit/bayserver/docker/fcgi/fcg_command_unpacker.rb
|
44
|
+
- lib/baykit/bayserver/docker/fcgi/fcg_docker.rb
|
45
|
+
- lib/baykit/bayserver/docker/fcgi/fcg_inbound_handler.rb
|
46
|
+
- lib/baykit/bayserver/docker/fcgi/fcg_packet.rb
|
47
|
+
- lib/baykit/bayserver/docker/fcgi/fcg_packet_factory.rb
|
48
|
+
- lib/baykit/bayserver/docker/fcgi/fcg_packet_unpacker.rb
|
49
|
+
- lib/baykit/bayserver/docker/fcgi/fcg_params.rb
|
50
|
+
- lib/baykit/bayserver/docker/fcgi/fcg_port_docker.rb
|
51
|
+
- lib/baykit/bayserver/docker/fcgi/fcg_protocol_handler.rb
|
52
|
+
- lib/baykit/bayserver/docker/fcgi/fcg_type.rb
|
53
|
+
- lib/baykit/bayserver/docker/fcgi/fcg_warp_docker.rb
|
54
|
+
- lib/baykit/bayserver/docker/fcgi/fcg_warp_handler.rb
|
55
|
+
- lib/baykit/bayserver/docker/fcgi/package.rb
|
56
|
+
homepage: https://baykit.yokohama
|
57
|
+
licenses:
|
58
|
+
- MIT
|
59
|
+
metadata: {}
|
60
|
+
post_install_message:
|
61
|
+
rdoc_options: []
|
62
|
+
require_paths:
|
63
|
+
- lib
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
requirements: []
|
75
|
+
rubygems_version: 3.1.6
|
76
|
+
signing_key:
|
77
|
+
specification_version: 4
|
78
|
+
summary: AJP docker of BayServer
|
79
|
+
test_files: []
|