# File lib/fcgi.rb, line 192 def initialize(sock) @socket = sock end
# File lib/fcgi.rb, line 196 def read_record header = @socket.read(Record::HEADER_LENGTH) or return nil return nil unless header.size == Record::HEADER_LENGTH version, type, reqid, clen, padlen, reserved = *Record.parse_header(header) Record.class_for(type).parse(reqid, read_record_body(clen, padlen)) end
# File lib/fcgi.rb, line 213 def send_record(rec) @socket.write rec.serialize @socket.flush end
# File lib/fcgi.rb, line 203 def read_record_body(clen, padlen) buf = '' while buf.length < clen buf << @socket.read([1024, clen - buf.length].min) end @socket.read padlen if padlen buf end