girl 9.1.3 → 9.1.4
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 +4 -4
- data/lib/girl/head.rb +3 -4
- data/lib/girl/proxy.rb +6 -34
- data/lib/girl/proxy_worker.rb +330 -501
- data/lib/girl/proxyd.rb +7 -31
- data/lib/girl/proxyd_worker.rb +501 -270
- data/lib/girl/version.rb +1 -1
- metadata +1 -1
data/lib/girl/proxyd.rb
CHANGED
|
@@ -17,6 +17,7 @@ module Girl
|
|
|
17
17
|
conf = JSON.parse(IO.binread(config_path), symbolize_names: true)
|
|
18
18
|
puts "load #{config_path} #{conf.inspect}"
|
|
19
19
|
proxyd_port = conf[:proxyd_port]
|
|
20
|
+
bigd_port = conf[:bigd_port]
|
|
20
21
|
memd_port = conf[:memd_port]
|
|
21
22
|
nameserver = conf[:nameserver]
|
|
22
23
|
reset_traff_day = conf[:reset_traff_day]
|
|
@@ -31,28 +32,20 @@ module Girl
|
|
|
31
32
|
h_p1_close = conf[:h_p1_close] # I
|
|
32
33
|
h_p2_close = conf[:h_p2_close] # J
|
|
33
34
|
h_p2_traffic = conf[:h_p2_traffic] # K
|
|
34
|
-
h_p1_overflow = conf[:h_p1_overflow] # L
|
|
35
|
-
h_p1_underhalf = conf[:h_p1_underhalf] # M
|
|
36
|
-
h_p2_overflow = conf[:h_p2_overflow] # N
|
|
37
|
-
h_p2_underhalf = conf[:h_p2_underhalf] # O
|
|
38
35
|
h_query = conf[:h_query] # Q
|
|
39
36
|
h_response = conf[:h_response] # R
|
|
40
37
|
h_src_close = conf[:h_src_close] # S
|
|
41
38
|
h_traffic = conf[:h_traffic] # T
|
|
42
|
-
h_src_overflow = conf[:h_src_overflow] # U
|
|
43
|
-
h_src_underhalf = conf[:h_src_underhalf] # V
|
|
44
|
-
h_dst_overflow = conf[:h_dst_overflow] # W
|
|
45
|
-
h_dst_underhalf = conf[:h_dst_underhalf] # X
|
|
46
39
|
expire_connecting = conf[:expire_connecting] # 连接多久没有建成关闭(秒)
|
|
47
40
|
expire_long_after = conf[:expire_long_after] # 长连接多久没有新流量关闭(秒)
|
|
48
|
-
expire_proxy_after = conf[:expire_proxy_after] # proxy多久没有收到流量重建(秒)
|
|
49
41
|
expire_resolv_cache = conf[:expire_resolv_cache] # dns查询结果缓存多久(秒)
|
|
50
42
|
expire_short_after = conf[:expire_short_after] # 短连接创建多久后关闭(秒)
|
|
51
43
|
is_debug = conf[:is_debug]
|
|
52
44
|
end
|
|
53
45
|
|
|
54
46
|
proxyd_port = proxyd_port ? proxyd_port.to_i : 6060
|
|
55
|
-
|
|
47
|
+
bigd_port = bigd_port ? bigd_port.to_i : proxyd_port + 1
|
|
48
|
+
memd_port = memd_port ? memd_port.to_i : proxyd_port + 2
|
|
56
49
|
|
|
57
50
|
if nameserver
|
|
58
51
|
nameservers = nameserver.split(' ')
|
|
@@ -78,7 +71,7 @@ module Girl
|
|
|
78
71
|
reset_traff_day = reset_traff_day ? reset_traff_day.to_i : 1
|
|
79
72
|
ims = [] unless ims
|
|
80
73
|
p2d_host = p2d_host ? p2d_host.to_s : '127.0.0.1'
|
|
81
|
-
p2d_port = p2d_port ? p2d_port.to_i : proxyd_port +
|
|
74
|
+
p2d_port = p2d_port ? p2d_port.to_i : proxyd_port + 3
|
|
82
75
|
head_len = head_len ? head_len.to_i : 59
|
|
83
76
|
h_a_new_source = h_a_new_source ? h_a_new_source.to_s : 'A'
|
|
84
77
|
h_a_new_p2 = h_a_new_p2 ? h_a_new_p2.to_s : 'B'
|
|
@@ -87,21 +80,12 @@ module Girl
|
|
|
87
80
|
h_p1_close = h_p1_close ? h_p1_close.to_s : 'I'
|
|
88
81
|
h_p2_close = h_p2_close ? h_p2_close.to_s : 'J'
|
|
89
82
|
h_p2_traffic = h_p2_traffic ? h_p2_traffic.to_s : 'K'
|
|
90
|
-
h_p1_overflow = h_p1_overflow ? h_p1_overflow.to_s : 'L'
|
|
91
|
-
h_p1_underhalf = h_p1_underhalf ? h_p1_underhalf.to_s : 'M'
|
|
92
|
-
h_p2_overflow = h_p2_overflow ? h_p2_overflow.to_s : 'N'
|
|
93
|
-
h_p2_underhalf = h_p2_underhalf ? h_p2_underhalf.to_s : 'O'
|
|
94
83
|
h_query = h_query ? h_query.to_s : 'Q'
|
|
95
84
|
h_response = h_response ? h_response.to_s : 'R'
|
|
96
85
|
h_src_close = h_src_close ? h_src_close.to_s : 'S'
|
|
97
86
|
h_traffic = h_traffic ? h_traffic.to_s : 'T'
|
|
98
|
-
h_src_overflow = h_src_overflow ? h_src_overflow.to_s : 'U'
|
|
99
|
-
h_src_underhalf = h_src_underhalf ? h_src_underhalf.to_s : 'V'
|
|
100
|
-
h_dst_overflow = h_dst_overflow ? h_dst_overflow.to_s : 'W'
|
|
101
|
-
h_dst_underhalf = h_dst_underhalf ? h_dst_underhalf.to_s : 'X'
|
|
102
87
|
expire_connecting = expire_connecting ? expire_connecting.to_i : 5
|
|
103
88
|
expire_long_after = expire_long_after ? expire_long_after.to_i : 3600
|
|
104
|
-
expire_proxy_after = expire_proxy_after ? expire_proxy_after.to_i : 60
|
|
105
89
|
expire_resolv_cache = expire_resolv_cache ? expire_resolv_cache.to_i : 600
|
|
106
90
|
expire_short_after = expire_short_after ? expire_short_after.to_i : 5
|
|
107
91
|
is_server_fastopen = false
|
|
@@ -115,7 +99,7 @@ module Girl
|
|
|
115
99
|
end
|
|
116
100
|
|
|
117
101
|
puts "girl proxyd #{Girl::VERSION}"
|
|
118
|
-
puts "#{proxyd_port} #{memd_port} #{p2d_host} #{p2d_port} #{nameservers.inspect} #{reset_traff_day} #{is_server_fastopen}"
|
|
102
|
+
puts "#{proxyd_port} #{bigd_port} #{memd_port} #{p2d_host} #{p2d_port} #{nameservers.inspect} #{reset_traff_day} #{is_server_fastopen}"
|
|
119
103
|
|
|
120
104
|
if %w[darwin linux].any?{|plat| RUBY_PLATFORM.include?(plat)}
|
|
121
105
|
Process.setrlimit(:NOFILE, RLIMIT)
|
|
@@ -124,6 +108,7 @@ module Girl
|
|
|
124
108
|
|
|
125
109
|
worker = Girl::ProxydWorker.new(
|
|
126
110
|
proxyd_port,
|
|
111
|
+
bigd_port,
|
|
127
112
|
memd_port,
|
|
128
113
|
nameservers,
|
|
129
114
|
reset_traff_day,
|
|
@@ -138,25 +123,16 @@ module Girl
|
|
|
138
123
|
h_p1_close,
|
|
139
124
|
h_p2_close,
|
|
140
125
|
h_p2_traffic,
|
|
141
|
-
h_p1_overflow,
|
|
142
|
-
h_p1_underhalf,
|
|
143
|
-
h_p2_overflow,
|
|
144
|
-
h_p2_underhalf,
|
|
145
126
|
h_query,
|
|
146
127
|
h_response,
|
|
147
128
|
h_src_close,
|
|
148
129
|
h_traffic,
|
|
149
|
-
h_src_overflow,
|
|
150
|
-
h_src_underhalf,
|
|
151
|
-
h_dst_overflow,
|
|
152
|
-
h_dst_underhalf,
|
|
153
130
|
expire_connecting,
|
|
154
131
|
expire_long_after,
|
|
155
|
-
expire_proxy_after,
|
|
156
132
|
expire_resolv_cache,
|
|
157
133
|
expire_short_after,
|
|
158
134
|
is_debug,
|
|
159
|
-
is_server_fastopen
|
|
135
|
+
is_server_fastopen)
|
|
160
136
|
|
|
161
137
|
Signal.trap(:TERM) do
|
|
162
138
|
puts 'exit'
|