mirror of https://github.com/docusealco/docuseal
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
168 lines
3.6 KiB
168 lines
3.6 KiB
module WEBrick
|
|
class HTTPRequest
|
|
@config: Hash[Symbol, untyped]
|
|
|
|
@buffer_size: Integer
|
|
|
|
@logger: Log
|
|
|
|
@query: Hash[String, HTTPUtils::FormData]?
|
|
|
|
@body: String
|
|
|
|
@remaining_size: Integer?
|
|
|
|
@socket: TCPSocket?
|
|
|
|
@forwarded_proto: String?
|
|
|
|
@host: String?
|
|
|
|
@port: Integer?
|
|
|
|
@body_tmp: Array[String]
|
|
|
|
@body_rd: Fiber
|
|
|
|
@request_bytes: Integer
|
|
|
|
@forwarded_server: String?
|
|
|
|
@forwarded_host: String?
|
|
|
|
@forwarded_port: Integer?
|
|
|
|
@forwarded_for: String?
|
|
|
|
BODY_CONTAINABLE_METHODS: Array[String]
|
|
|
|
attr_reader request_line: String?
|
|
|
|
attr_reader request_method: String?
|
|
|
|
attr_reader unparsed_uri: String?
|
|
|
|
attr_reader http_version: HTTPVersion?
|
|
|
|
attr_reader request_uri: URI::Generic?
|
|
|
|
attr_reader path: String?
|
|
|
|
attr_accessor script_name: String?
|
|
|
|
attr_accessor path_info: String?
|
|
|
|
attr_accessor query_string: String?
|
|
|
|
attr_reader raw_header: Array[String]
|
|
|
|
attr_reader header: Hash[String, Array[String]]?
|
|
|
|
attr_reader cookies: Array[Cookie]
|
|
|
|
attr_reader accept: Array[String]
|
|
|
|
attr_reader accept_charset: Array[String]
|
|
|
|
attr_reader accept_encoding: Array[String]
|
|
|
|
attr_reader accept_language: Array[String]
|
|
|
|
attr_accessor user: String?
|
|
|
|
attr_reader addr: ([String, Integer, String, String] | [])
|
|
|
|
attr_reader peeraddr: ([String, Integer, String, String] | [])
|
|
|
|
attr_reader attributes: Hash[untyped, untyped]
|
|
|
|
attr_reader keep_alive: bool
|
|
|
|
attr_reader request_time: Time?
|
|
|
|
def initialize: (Hash[Symbol, untyped] config) -> void
|
|
|
|
def parse: (?TCPSocket? socket) -> void
|
|
|
|
def continue: () -> void
|
|
|
|
type body_chunk_block = ^(String body_chunk) -> void
|
|
|
|
def body: () ?{ (String body_chunk) -> void } -> String
|
|
|
|
def body_reader: () -> self
|
|
|
|
# for IO.copy_stream.
|
|
def readpartial: (Integer size, ?String buf) -> String
|
|
|
|
def query: () -> Hash[String, HTTPUtils::FormData]
|
|
|
|
def content_length: () -> Integer
|
|
|
|
def content_type: () -> String?
|
|
|
|
def []: (String header_name) -> String?
|
|
|
|
def each: [T] () { (String, String) -> T } -> T?
|
|
|
|
def host: () -> String?
|
|
|
|
def port: () -> Integer?
|
|
|
|
def server_name: () -> String?
|
|
|
|
def remote_ip: () -> String?
|
|
|
|
def ssl?: () -> bool
|
|
|
|
def keep_alive?: () -> bool
|
|
|
|
def to_s: () -> String
|
|
|
|
def fixup: () -> void
|
|
|
|
def meta_vars: () -> Hash[String, String]
|
|
|
|
private
|
|
|
|
MAX_URI_LENGTH: Integer
|
|
|
|
# same as Mongrel, Thin and Puma
|
|
MAX_HEADER_LENGTH: Integer
|
|
|
|
def read_request_line: (IO socket) -> void
|
|
|
|
def read_header: (IO socket) -> void
|
|
|
|
def parse_uri: (String str, ?String scheme) -> URI::Generic
|
|
|
|
HOST_PATTERN: Regexp
|
|
|
|
def parse_host_request_line: (String host) -> [String, String]
|
|
|
|
def read_body: (IO socket, body_chunk_block block) -> String
|
|
| (nil socket, top block) -> nil
|
|
|
|
def read_chunk_size: (IO socket) -> [Integer, String?]
|
|
|
|
def read_chunked: (IO socket, body_chunk_block block) -> void
|
|
|
|
def _read_data: (IO io, Symbol method, *untyped arg) -> String?
|
|
|
|
def read_line: (IO io, ?Integer size) -> String?
|
|
|
|
def read_data: (IO io, Integer size) -> String?
|
|
|
|
def parse_query: () -> void
|
|
|
|
PrivateNetworkRegexp: Regexp
|
|
|
|
# It's said that all X-Forwarded-* headers will contain more than one
|
|
# (comma-separated) value if the original request already contained one of
|
|
# these headers. Since we could use these values as Host header, we choose
|
|
# the initial(first) value. (apr_table_mergen() adds new value after the
|
|
# existing value with ", " prefix)
|
|
def setup_forwarded_info: () -> void
|
|
end
|
|
end
|