webrick 1.8.2 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -0
- data/README.md +2 -0
- data/lib/webrick/version.rb +1 -1
- data/sig/accesslog.rbs +24 -0
- data/sig/cgi.rbs +92 -0
- data/sig/compat.rbs +18 -0
- data/sig/config.rbs +17 -0
- data/sig/cookie.rbs +37 -0
- data/sig/htmlutils.rbs +5 -0
- data/sig/httpauth/authenticator.rbs +55 -0
- data/sig/httpauth/basicauth.rbs +29 -0
- data/sig/httpauth/digestauth.rbs +85 -0
- data/sig/httpauth/htdigest.rbs +31 -0
- data/sig/httpauth/htgroup.rbs +21 -0
- data/sig/httpauth/htpasswd.rbs +31 -0
- data/sig/httpauth/userdb.rbs +13 -0
- data/sig/httpauth.rbs +13 -0
- data/sig/httpproxy.rbs +61 -0
- data/sig/httprequest.rbs +169 -0
- data/sig/httpresponse.rbs +117 -0
- data/sig/https.rbs +49 -0
- data/sig/httpserver.rbs +71 -0
- data/sig/httpservlet/abstract.rbs +36 -0
- data/sig/httpservlet/cgi_runner.rbs +3 -0
- data/sig/httpservlet/cgihandler.rbs +23 -0
- data/sig/httpservlet/erbhandler.rbs +17 -0
- data/sig/httpservlet/filehandler.rbs +76 -0
- data/sig/httpservlet/prochandler.rbs +21 -0
- data/sig/httpservlet.rbs +4 -0
- data/sig/httpstatus.rbs +255 -0
- data/sig/httputils.rbs +116 -0
- data/sig/httpversion.rbs +17 -0
- data/sig/log.rbs +93 -0
- data/sig/manifest.yaml +8 -0
- data/sig/server.rbs +57 -0
- data/sig/ssl.rbs +19 -0
- data/sig/utils.rbs +122 -0
- data/sig/version.rbs +3 -0
- data/webrick.gemspec +35 -0
- metadata +43 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 706b97607998e5b9d2a966fd09af6f7fa6a5b40f2df22977b111e5afa2bbc0f6
|
4
|
+
data.tar.gz: e4376566540a86f896f31b61ed924d69f0fb415fe491273b0365169c16663ef7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4321cb073b84fc0e32211b4fa1510520ec396a62b3165761638e84471a1e56915f751d46aceae6ac8d13aafd09b9066a05928a5b76abf3c82bc8501e74a9029
|
7
|
+
data.tar.gz: 9f66a53d89839da69abb3afd75a48f746e4023f888db3afd404a903bebde1f878318f08dff470e3006e1fa0637185f9f5bdc9e59c627f162e3664a482b149d06
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -10,6 +10,8 @@ A WEBrick server can be composed of multiple WEBrick servers or servlets to prov
|
|
10
10
|
|
11
11
|
WEBrick also includes tools for daemonizing a process and starting a process at a higher privilege level and dropping permissions.
|
12
12
|
|
13
|
+
WEBrick is suitable for use in testing and for development. However, while the developers of WEBrick will attempt to fix security issues, they do not encourage the use of WEBrick to serve production web applications that may be subject to hostile input.
|
14
|
+
|
13
15
|
## Installation
|
14
16
|
|
15
17
|
Add this line to your application's Gemfile:
|
data/lib/webrick/version.rb
CHANGED
data/sig/accesslog.rbs
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
module WEBrick
|
2
|
+
module AccessLog
|
3
|
+
class AccessLogError < StandardError
|
4
|
+
end
|
5
|
+
|
6
|
+
CLF_TIME_FORMAT: String
|
7
|
+
|
8
|
+
COMMON_LOG_FORMAT: String
|
9
|
+
|
10
|
+
CLF: String
|
11
|
+
|
12
|
+
REFERER_LOG_FORMAT: String
|
13
|
+
|
14
|
+
AGENT_LOG_FORMAT: String
|
15
|
+
|
16
|
+
COMBINED_LOG_FORMAT: String
|
17
|
+
|
18
|
+
def self?.setup_params: (Hash[Symbol, untyped] config, HTTPRequest req, HTTPResponse res) -> Hash[String, untyped]
|
19
|
+
|
20
|
+
def self?.format: (String format_string, Hash[String, untyped] params) -> String
|
21
|
+
|
22
|
+
def self?.escape: (String data) -> String
|
23
|
+
end
|
24
|
+
end
|
data/sig/cgi.rbs
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
module WEBrick
|
2
|
+
class CGI
|
3
|
+
@options: Array[untyped]
|
4
|
+
|
5
|
+
class CGIError < StandardError
|
6
|
+
end
|
7
|
+
|
8
|
+
attr_reader config: Hash[Symbol, untyped]
|
9
|
+
|
10
|
+
attr_reader logger: BasicLog
|
11
|
+
|
12
|
+
def initialize: (*untyped args) -> void
|
13
|
+
|
14
|
+
def []: (Symbol key) -> untyped
|
15
|
+
|
16
|
+
interface _Env
|
17
|
+
def []: (String) -> String?
|
18
|
+
end
|
19
|
+
|
20
|
+
def start: (?_Env env, ?IO stdin, ?IO stdout) -> void
|
21
|
+
|
22
|
+
def self.setup_header: () -> untyped
|
23
|
+
|
24
|
+
def self.status_line: () -> ""
|
25
|
+
|
26
|
+
def service: (HTTPRequest req, HTTPResponse res) -> void
|
27
|
+
|
28
|
+
class Socket
|
29
|
+
@config: Hash[Symbol, untyped]
|
30
|
+
|
31
|
+
@env: _Env
|
32
|
+
|
33
|
+
@header_part: StringIO
|
34
|
+
|
35
|
+
@body_part: IO
|
36
|
+
|
37
|
+
@out_port: IO
|
38
|
+
|
39
|
+
@server_addr: String
|
40
|
+
|
41
|
+
@server_name: String?
|
42
|
+
|
43
|
+
@server_port: String?
|
44
|
+
|
45
|
+
@remote_addr: String?
|
46
|
+
|
47
|
+
@remote_host: String?
|
48
|
+
|
49
|
+
@remote_port: (String | 0)
|
50
|
+
|
51
|
+
include Enumerable[String]
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def initialize: (Hash[Symbol, untyped] config, _Env env, IO stdin, IO stdout) -> void
|
56
|
+
|
57
|
+
def request_line: () -> String
|
58
|
+
|
59
|
+
def setup_header: () -> void
|
60
|
+
|
61
|
+
def add_header: (String hdrname, String value) -> void
|
62
|
+
|
63
|
+
def input: () -> (IO | StringIO)
|
64
|
+
|
65
|
+
public
|
66
|
+
|
67
|
+
def peeraddr: () -> [nil, (String | 0), String?, String?]
|
68
|
+
|
69
|
+
def addr: () -> [nil, String?, String?, String]
|
70
|
+
|
71
|
+
def gets: (?String eol, ?Integer? size) -> String?
|
72
|
+
|
73
|
+
def read: (?Integer? size) -> String?
|
74
|
+
|
75
|
+
def each: () { (String) -> void } -> void
|
76
|
+
|
77
|
+
def eof?: () -> bool
|
78
|
+
|
79
|
+
def <<: (_ToS data) -> IO
|
80
|
+
|
81
|
+
def write: (_ToS data) -> Integer
|
82
|
+
|
83
|
+
def cert: () -> OpenSSL::X509::Certificate?
|
84
|
+
|
85
|
+
def peer_cert: () -> OpenSSL::X509::Certificate?
|
86
|
+
|
87
|
+
def peer_cert_chain: () -> Array[OpenSSL::X509::Certificate]?
|
88
|
+
|
89
|
+
def cipher: () -> [String?, String?, String?, String?]?
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
data/sig/compat.rbs
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
#
|
2
|
+
# System call error module used by webrick for cross platform compatibility.
|
3
|
+
#
|
4
|
+
# EPROTO:: protocol error
|
5
|
+
# ECONNRESET:: remote host reset the connection request
|
6
|
+
# ECONNABORTED:: Client sent TCP reset (RST) before server has accepted the
|
7
|
+
# connection requested by client.
|
8
|
+
#
|
9
|
+
module Errno
|
10
|
+
class EPROTO < SystemCallError
|
11
|
+
end
|
12
|
+
|
13
|
+
class ECONNRESET < SystemCallError
|
14
|
+
end
|
15
|
+
|
16
|
+
class ECONNABORTED < SystemCallError
|
17
|
+
end
|
18
|
+
end
|
data/sig/config.rbs
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
module WEBrick
|
2
|
+
module Config
|
3
|
+
LIBDIR: String
|
4
|
+
|
5
|
+
# for GenericServer
|
6
|
+
General: Hash[Symbol, untyped]
|
7
|
+
|
8
|
+
# for HTTPServer, HTTPRequest, HTTPResponse ...
|
9
|
+
HTTP: Hash[Symbol, untyped]
|
10
|
+
|
11
|
+
FileHandler: Hash[Symbol, untyped]
|
12
|
+
|
13
|
+
BasicAuth: Hash[Symbol, untyped]
|
14
|
+
|
15
|
+
DigestAuth: Hash[Symbol, untyped]
|
16
|
+
end
|
17
|
+
end
|
data/sig/cookie.rbs
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
module WEBrick
|
2
|
+
class Cookie
|
3
|
+
@expires: String?
|
4
|
+
|
5
|
+
attr_reader name: String?
|
6
|
+
|
7
|
+
attr_accessor value: String?
|
8
|
+
|
9
|
+
attr_accessor version: Integer
|
10
|
+
|
11
|
+
#
|
12
|
+
# The cookie domain
|
13
|
+
attr_accessor domain: String?
|
14
|
+
|
15
|
+
attr_accessor path: String?
|
16
|
+
|
17
|
+
attr_accessor secure: true?
|
18
|
+
|
19
|
+
attr_accessor comment: String?
|
20
|
+
|
21
|
+
attr_accessor max_age: Integer?
|
22
|
+
|
23
|
+
def initialize: (untyped name, untyped value) -> void
|
24
|
+
|
25
|
+
def expires=: ((Time | _ToS)? t) -> untyped
|
26
|
+
|
27
|
+
def expires: () -> Time?
|
28
|
+
|
29
|
+
def to_s: () -> String
|
30
|
+
|
31
|
+
def self.parse: (String? str) -> Array[instance]?
|
32
|
+
|
33
|
+
def self.parse_set_cookie: (String str) -> instance
|
34
|
+
|
35
|
+
def self.parse_set_cookies: (String str) -> Array[instance]
|
36
|
+
end
|
37
|
+
end
|
data/sig/htmlutils.rbs
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
module WEBrick
|
2
|
+
module HTTPAuth
|
3
|
+
module Authenticator
|
4
|
+
@reload_db: bool?
|
5
|
+
|
6
|
+
@request_field: String
|
7
|
+
|
8
|
+
@response_field: String
|
9
|
+
|
10
|
+
@resp_info_field: String
|
11
|
+
|
12
|
+
@auth_exception: singleton(HTTPStatus::ClientError)
|
13
|
+
|
14
|
+
@auth_scheme: String
|
15
|
+
|
16
|
+
RequestField: String
|
17
|
+
|
18
|
+
ResponseField: String
|
19
|
+
|
20
|
+
ResponseInfoField: String
|
21
|
+
|
22
|
+
AuthException: singleton(HTTPStatus::ClientError)
|
23
|
+
|
24
|
+
AuthScheme: String?
|
25
|
+
|
26
|
+
attr_reader realm: String?
|
27
|
+
|
28
|
+
attr_reader userdb: UserDB
|
29
|
+
|
30
|
+
attr_reader logger: Log
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def check_init: (Hash[Symbol, untyped] config) -> void
|
35
|
+
|
36
|
+
def check_scheme: (HTTPRequest req) -> String?
|
37
|
+
|
38
|
+
def log: (interned meth, String fmt, *untyped args) -> void
|
39
|
+
|
40
|
+
def error: (String fmt, *untyped args) -> void
|
41
|
+
|
42
|
+
def info: (String fmt, *untyped args) -> void
|
43
|
+
end
|
44
|
+
|
45
|
+
module ProxyAuthenticator
|
46
|
+
RequestField: String
|
47
|
+
|
48
|
+
ResponseField: String
|
49
|
+
|
50
|
+
InfoField: String
|
51
|
+
|
52
|
+
AuthException: singleton(HTTPStatus::ClientError)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module WEBrick
|
2
|
+
module HTTPAuth
|
3
|
+
class BasicAuth
|
4
|
+
@config: Hash[Symbol, untyped]
|
5
|
+
|
6
|
+
include Authenticator
|
7
|
+
|
8
|
+
AuthScheme: String
|
9
|
+
|
10
|
+
def self.make_passwd: (String? realm, String? user, String? pass) -> String
|
11
|
+
|
12
|
+
attr_reader realm: String?
|
13
|
+
|
14
|
+
attr_reader userdb: UserDB
|
15
|
+
|
16
|
+
attr_reader logger: Log
|
17
|
+
|
18
|
+
def initialize: (Hash[Symbol, untyped] config, ?Hash[Symbol, untyped] default) -> void
|
19
|
+
|
20
|
+
def authenticate: (HTTPRequest req, HTTPResponse res) -> void
|
21
|
+
|
22
|
+
def challenge: (HTTPRequest req, HTTPResponse res) -> bot
|
23
|
+
end
|
24
|
+
|
25
|
+
class ProxyBasicAuth < BasicAuth
|
26
|
+
include ProxyAuthenticator
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
module WEBrick
|
2
|
+
module HTTPAuth
|
3
|
+
class DigestAuth
|
4
|
+
@config: Hash[Symbol, untyped]
|
5
|
+
|
6
|
+
@domain: Array[String]?
|
7
|
+
|
8
|
+
@use_opaque: bool
|
9
|
+
|
10
|
+
@use_next_nonce: bool
|
11
|
+
|
12
|
+
@check_nc: bool
|
13
|
+
|
14
|
+
@use_auth_info_header: bool
|
15
|
+
|
16
|
+
@nonce_expire_period: Integer
|
17
|
+
|
18
|
+
@nonce_expire_delta: Integer
|
19
|
+
|
20
|
+
@internet_explorer_hack: bool
|
21
|
+
|
22
|
+
@h: singleton(Digest::Base)
|
23
|
+
|
24
|
+
@instance_key: String
|
25
|
+
|
26
|
+
@opaques: Hash[String, OpaqueInfo]
|
27
|
+
|
28
|
+
@last_nonce_expire: Time
|
29
|
+
|
30
|
+
@mutex: Thread::Mutex
|
31
|
+
|
32
|
+
include Authenticator
|
33
|
+
|
34
|
+
AuthScheme: String
|
35
|
+
|
36
|
+
class OpaqueInfo < Struct[untyped]
|
37
|
+
attr_accessor time(): Time
|
38
|
+
attr_accessor nonce(): String?
|
39
|
+
attr_accessor nc(): String
|
40
|
+
end
|
41
|
+
|
42
|
+
attr_reader algorithm: String?
|
43
|
+
|
44
|
+
attr_reader qop: Array[String]
|
45
|
+
|
46
|
+
def self.make_passwd: (String realm, String user, String pass) -> untyped
|
47
|
+
|
48
|
+
def initialize: (Hash[Symbol, untyped] config, ?Hash[Symbol, untyped] default) -> void
|
49
|
+
|
50
|
+
def authenticate: (HTTPRequest req, HTTPResponse res) -> void
|
51
|
+
|
52
|
+
def challenge: (HTTPRequest req, HTTPResponse res, ?bool stale) -> bot
|
53
|
+
|
54
|
+
private
|
55
|
+
|
56
|
+
MustParams: Array[String]
|
57
|
+
|
58
|
+
MustParamsAuth: Array[String]
|
59
|
+
|
60
|
+
def _authenticate: (HTTPRequest req, HTTPResponse res) -> (:nonce_is_stale | bool)
|
61
|
+
|
62
|
+
def split_param_value: (String string) -> Hash[String, String]
|
63
|
+
|
64
|
+
def generate_next_nonce: (HTTPRequest req) -> String
|
65
|
+
|
66
|
+
def check_nonce: (HTTPRequest req, Hash[String, String] auth_req) -> bool
|
67
|
+
|
68
|
+
def generate_opaque: (HTTPRequest req) -> String
|
69
|
+
|
70
|
+
def check_opaque: (OpaqueInfo opaque_struct, untyped req, Hash[String, String] auth_req) -> bool
|
71
|
+
|
72
|
+
def check_uri: (HTTPRequest req, Hash[String, String] auth_req) -> bool
|
73
|
+
|
74
|
+
def hexdigest: (*_ToS? args) -> String
|
75
|
+
end
|
76
|
+
|
77
|
+
class ProxyDigestAuth < DigestAuth
|
78
|
+
include ProxyAuthenticator
|
79
|
+
|
80
|
+
private
|
81
|
+
|
82
|
+
def check_uri: (HTTPRequest req, Hash[String, String] auth_req) -> true
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module WEBrick
|
2
|
+
module HTTPAuth
|
3
|
+
class Htdigest
|
4
|
+
@path: String
|
5
|
+
|
6
|
+
@mtime: Time
|
7
|
+
|
8
|
+
@digest: Hash[String, Hash[String, String]]
|
9
|
+
|
10
|
+
@mutex: Thread::Mutex
|
11
|
+
|
12
|
+
@auth_type: String
|
13
|
+
|
14
|
+
include UserDB
|
15
|
+
|
16
|
+
def initialize: (String path) -> void
|
17
|
+
|
18
|
+
def reload: () -> void
|
19
|
+
|
20
|
+
def flush: (?String? output) -> void
|
21
|
+
|
22
|
+
def get_passwd: (String realm, String user, bool reload_db) -> String?
|
23
|
+
|
24
|
+
def set_passwd: (String realm, String user, String pass) -> String
|
25
|
+
|
26
|
+
def delete_passwd: (String realm, String user) -> String?
|
27
|
+
|
28
|
+
def each: () { (String user, String realm, String password_hash) -> void } -> void
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module WEBrick
|
2
|
+
module HTTPAuth
|
3
|
+
class Htgroup
|
4
|
+
@path: String
|
5
|
+
|
6
|
+
@mtime: Time
|
7
|
+
|
8
|
+
@group: Hash[String, Array[String]]
|
9
|
+
|
10
|
+
def initialize: (String path) -> void
|
11
|
+
|
12
|
+
def reload: () -> void
|
13
|
+
|
14
|
+
def flush: (?String? output) -> void
|
15
|
+
|
16
|
+
def members: (String group) -> Array[String]
|
17
|
+
|
18
|
+
def add: (String group, Array[String] members) -> void
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module WEBrick
|
2
|
+
module HTTPAuth
|
3
|
+
class Htpasswd
|
4
|
+
@path: String
|
5
|
+
|
6
|
+
@mtime: Time
|
7
|
+
|
8
|
+
@passwd: Hash[String, String]
|
9
|
+
|
10
|
+
@auth_type: String
|
11
|
+
|
12
|
+
@password_hash: (:crypt | :bcrypt)
|
13
|
+
|
14
|
+
include UserDB
|
15
|
+
|
16
|
+
def initialize: (String path, ?password_hash: (:crypt | :bcrypt)?) -> void
|
17
|
+
|
18
|
+
def reload: () -> void
|
19
|
+
|
20
|
+
def flush: (?String? output) -> void
|
21
|
+
|
22
|
+
def get_passwd: (String realm, String user, bool reload_db) -> String?
|
23
|
+
|
24
|
+
def set_passwd: (String realm, String user, String pass) -> void
|
25
|
+
|
26
|
+
def delete_passwd: (String realm, String user) -> String
|
27
|
+
|
28
|
+
def each: () { ([String, String]) -> void } -> void
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module WEBrick
|
2
|
+
module HTTPAuth
|
3
|
+
module UserDB
|
4
|
+
attr_accessor auth_type: String
|
5
|
+
|
6
|
+
def make_passwd: (String realm, String user, String pass) -> String
|
7
|
+
|
8
|
+
def set_passwd: (String realm, String user, String pass) -> void
|
9
|
+
|
10
|
+
def get_passwd: (String realm, String user, ?bool reload_db) -> String
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/sig/httpauth.rbs
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
module WEBrick
|
2
|
+
module HTTPAuth
|
3
|
+
interface _Callable
|
4
|
+
def call: (String user, String pass) -> bool
|
5
|
+
end
|
6
|
+
|
7
|
+
def self?._basic_auth: (HTTPRequest req, HTTPResponse res, String realm, String req_field, String res_field, HTTPStatus::Error err_type, _Callable block) -> void
|
8
|
+
|
9
|
+
def self?.basic_auth: (HTTPRequest req, HTTPResponse res, String realm) { (String user, String pass) -> bool } -> void
|
10
|
+
|
11
|
+
def self?.proxy_basic_auth: (HTTPRequest req, HTTPResponse res, String realm) { (String user, String pass) -> bool } -> void
|
12
|
+
end
|
13
|
+
end
|
data/sig/httpproxy.rbs
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
module WEBrick
|
2
|
+
NullReader: untyped
|
3
|
+
|
4
|
+
def self.read: (*untyped args) -> nil
|
5
|
+
|
6
|
+
alias self.gets self.read
|
7
|
+
|
8
|
+
FakeProxyURI: untyped
|
9
|
+
|
10
|
+
def self.method_missing: (untyped meth, *untyped args) -> (nil | untyped)
|
11
|
+
|
12
|
+
class HTTPProxyServer < HTTPServer
|
13
|
+
@via: untyped
|
14
|
+
|
15
|
+
def initialize: (?::Hash[untyped, untyped] config, ?untyped default) -> void
|
16
|
+
|
17
|
+
# :stopdoc:
|
18
|
+
def service: (HTTPRequest req, HTTPResponse res) -> untyped
|
19
|
+
|
20
|
+
def proxy_auth: (HTTPRequest req, HTTPResponse res) -> untyped
|
21
|
+
|
22
|
+
def proxy_uri: (HTTPRequest req, HTTPResponse res) -> untyped
|
23
|
+
|
24
|
+
def proxy_service: (HTTPRequest req, HTTPResponse res) -> untyped
|
25
|
+
|
26
|
+
def do_CONNECT: (HTTPRequest req, HTTPResponse res) -> untyped
|
27
|
+
|
28
|
+
def do_GET: (HTTPRequest req, HTTPResponse res) -> untyped
|
29
|
+
|
30
|
+
def do_HEAD: (HTTPRequest req, HTTPResponse res) -> untyped
|
31
|
+
|
32
|
+
def do_POST: (HTTPRequest req, HTTPResponse res) -> untyped
|
33
|
+
|
34
|
+
def do_OPTIONS: (HTTPRequest req, HTTPResponse res) -> untyped
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
# Some header fields should not be transferred.
|
39
|
+
HopByHop: ::Array["connection" | "keep-alive" | "proxy-authenticate" | "upgrade" | "proxy-authorization" | "te" | "trailers" | "transfer-encoding"]
|
40
|
+
|
41
|
+
ShouldNotTransfer: ::Array["set-cookie" | "proxy-connection"]
|
42
|
+
|
43
|
+
def split_field: (untyped f) -> (untyped | ::Array[untyped])
|
44
|
+
|
45
|
+
def choose_header: (untyped src, untyped dst) -> untyped
|
46
|
+
|
47
|
+
# Net::HTTP is stupid about the multiple header fields.
|
48
|
+
# Here is workaround:
|
49
|
+
def set_cookie: (untyped src, untyped dst) -> (untyped | nil)
|
50
|
+
|
51
|
+
def set_via: (untyped h) -> (untyped | nil)
|
52
|
+
|
53
|
+
def setup_proxy_header: (HTTPRequest req, HTTPResponse res) -> untyped
|
54
|
+
|
55
|
+
def setup_upstream_proxy_authentication: (HTTPRequest req, HTTPResponse res, untyped header) -> untyped
|
56
|
+
|
57
|
+
def create_net_http: (untyped uri, untyped upstream) -> untyped
|
58
|
+
|
59
|
+
def perform_proxy_request: (HTTPRequest req, HTTPResponse res, untyped req_class, ?untyped? body_stream) -> untyped
|
60
|
+
end
|
61
|
+
end
|