Class: ProxyReverse::FrontendRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/proxyreverse/frontendrequest.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ FrontendRequest

Returns a new instance of FrontendRequest.



5
6
7
8
# File 'lib/proxyreverse/frontendrequest.rb', line 5

def initialize(client)
  @parser = HTTP::RequestParser.new(self)
  @client = client
end

Instance Attribute Details

#hostObject

Returns the value of attribute host.



3
4
5
# File 'lib/proxyreverse/frontendrequest.rb', line 3

def host
  @host
end

Instance Method Details

#complete?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/proxyreverse/frontendrequest.rb', line 50

def complete?
  @complete
end

#on_body(chunk) ⇒ Object



42
43
44
# File 'lib/proxyreverse/frontendrequest.rb', line 42

def on_body(chunk)
  @client.relay_to_servers(chunk)
end

#on_headers_complete(env) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/proxyreverse/frontendrequest.rb', line 20

def on_headers_complete(env)
  @headers = @parser.headers
  @host = @headers['Host']
  @transferEncoding = 'identity'

  if @client.options[:rewrite_domain]
    @headers['Host'] = @client.options[:backend_host]
  end
  
  if @headers.has_key?('Transfer-Encoding')
    @transferEncoding = @headers['Transfer-Encoding']
  end
   
  buf = "#{@parser.http_method} #{@parser.request_path} HTTP/#{@parser.http_version.join('.')}\r\n"
  @headers.each_pair do |name, value|
    buf << "#{name}: #{value}\r\n"
  end
  buf << "\r\n"
   
  @client.relay_to_servers(buf)
end

#on_message_beginObject



14
15
16
17
18
# File 'lib/proxyreverse/frontendrequest.rb', line 14

def on_message_begin
  @headers = nil
  @body = ''
  @complete = false
end

#on_message_completeObject



46
47
48
# File 'lib/proxyreverse/frontendrequest.rb', line 46

def on_message_complete
  @complete = true
end

#receive_data(data) ⇒ Object



10
11
12
# File 'lib/proxyreverse/frontendrequest.rb', line 10

def receive_data(data)
  @parser << data
end