girl 3.8.0 → 3.9.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of girl might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/girl/proxyd_worker.rb +22 -20
- data/lib/girl/ssl_worker.rb +9 -10
- data/lib/girl/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba24b62a261882eae66a3aeacb3966b96a65019a290ee80414ddb1e59c451899
|
4
|
+
data.tar.gz: 0b75d6df0abe02ac88a48debd383621e68f8679d41b856f09d88e08a81a37b82
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e6bf4dedbf159c5bfe0a120c9bb16597432b70ae4796a1fa4a27c2f8564c0ddd0456eacf720a05aa14356369948f79d49f33ee4d2b23668ff4d3df1c053591c
|
7
|
+
data.tar.gz: e3b579ab02a36d0807bc2f54a78f259a3a6510552ba16c2e44906baaf21c11433a8692818cd07bcd25bc684bc45ac0766f034babcb9987220830c2d9c6a897fe
|
data/lib/girl/proxyd_worker.rb
CHANGED
@@ -423,7 +423,7 @@ module Girl
|
|
423
423
|
@proxy_infos.each do | proxy, proxy_info |
|
424
424
|
last_recv_at = proxy_info[ :last_recv_at ] || proxy_info[ :created_at ]
|
425
425
|
|
426
|
-
if
|
426
|
+
if now - last_recv_at >= EXPIRE_AFTER then
|
427
427
|
puts "p#{ Process.pid } #{ Time.new } expire proxy #{ proxy_info[ :addrinfo ].inspect }"
|
428
428
|
|
429
429
|
unless @closing_proxys.include?( proxy ) then
|
@@ -515,15 +515,16 @@ module Girl
|
|
515
515
|
# new a proxyd
|
516
516
|
#
|
517
517
|
def new_a_proxyd( proxyd_port )
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
518
|
+
pre_proxyd = Socket.new( Socket::AF_INET, Socket::SOCK_STREAM, 0 )
|
519
|
+
pre_proxyd.setsockopt( Socket::SOL_SOCKET, Socket::SO_REUSEADDR, 1 )
|
520
|
+
pre_proxyd.setsockopt( Socket::SOL_SOCKET, Socket::SO_REUSEPORT, 1 )
|
521
|
+
pre_proxyd.setsockopt( Socket::SOL_TCP, Socket::TCP_NODELAY, 1 )
|
522
|
+
pre_proxyd.bind( Socket.sockaddr_in( proxyd_port, '0.0.0.0' ) )
|
523
|
+
|
524
|
+
proxyd = OpenSSL::SSL::SSLServer.new pre_proxyd, @context
|
523
525
|
proxyd.listen( 127 )
|
524
|
-
puts "p#{ Process.pid } #{ Time.new } proxyd
|
525
|
-
|
526
|
-
add_read( ssl_proxyd, :proxyd )
|
526
|
+
puts "p#{ Process.pid } #{ Time.new } proxyd listen on #{ proxyd_port }"
|
527
|
+
add_read( proxyd, :proxyd )
|
527
528
|
end
|
528
529
|
|
529
530
|
##
|
@@ -657,7 +658,7 @@ module Girl
|
|
657
658
|
#
|
658
659
|
def read_proxyd( proxyd )
|
659
660
|
begin
|
660
|
-
proxy = proxyd.
|
661
|
+
proxy = proxyd.accept
|
661
662
|
rescue IO::WaitReadable, Errno::EINTR
|
662
663
|
print 'r'
|
663
664
|
return
|
@@ -729,23 +730,24 @@ module Girl
|
|
729
730
|
@traff_outs[ im ] = 0
|
730
731
|
end
|
731
732
|
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
733
|
+
pre_tund = Socket.new( Socket::AF_INET, Socket::SOCK_STREAM, 0 )
|
734
|
+
pre_tund.setsockopt( Socket::SOL_TCP, Socket::TCP_NODELAY, 1 )
|
735
|
+
pre_tund.bind( Socket.sockaddr_in( 0, '0.0.0.0' ) )
|
736
|
+
|
737
|
+
tund_port = pre_tund.local_address.ip_port
|
738
|
+
tund = OpenSSL::SSL::SSLServer.new pre_tund, @context
|
736
739
|
tund.listen( 127 )
|
737
|
-
puts "p#{ Process.pid } #{ Time.new } tund #{ im.inspect }
|
738
|
-
|
739
|
-
add_read( ssl_tund, :tund )
|
740
|
+
puts "p#{ Process.pid } #{ Time.new } tund #{ im.inspect } listen on #{ tund_port }"
|
741
|
+
add_read( tund, :tund )
|
740
742
|
|
741
|
-
@tund_infos[
|
743
|
+
@tund_infos[ tund ] = {
|
742
744
|
proxy: proxy,
|
743
745
|
close_read: false,
|
744
746
|
close_write: false
|
745
747
|
}
|
746
748
|
|
747
749
|
proxy_info[ :im ] = im
|
748
|
-
proxy_info[ :tund ] =
|
750
|
+
proxy_info[ :tund ] = tund
|
749
751
|
proxy_info[ :tund_port ] = tund_port
|
750
752
|
data2 = [ TUND_PORT, tund_port ].pack( 'Cn' )
|
751
753
|
add_ctlmsg( proxy, data2 )
|
@@ -863,7 +865,7 @@ module Girl
|
|
863
865
|
end
|
864
866
|
|
865
867
|
begin
|
866
|
-
tun = tund.
|
868
|
+
tun = tund.accept
|
867
869
|
rescue IO::WaitReadable, Errno::EINTR
|
868
870
|
print 'r'
|
869
871
|
return
|
data/lib/girl/ssl_worker.rb
CHANGED
@@ -421,18 +421,17 @@ module Girl
|
|
421
421
|
# new a redir
|
422
422
|
#
|
423
423
|
def new_a_redir( redir_port, cert, key )
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
redir.listen( 127 )
|
424
|
+
pre_redir = Socket.new( Socket::AF_INET, Socket::SOCK_STREAM, 0 )
|
425
|
+
pre_redir.setsockopt( Socket::SOL_SOCKET, Socket::SO_REUSEADDR, 1 )
|
426
|
+
pre_redir.setsockopt( Socket::SOL_SOCKET, Socket::SO_REUSEPORT, 1 )
|
427
|
+
pre_redir.setsockopt( Socket::SOL_TCP, Socket::TCP_NODELAY, 1 )
|
428
|
+
pre_redir.bind( Socket.sockaddr_in( redir_port, '0.0.0.0' ) )
|
430
429
|
|
431
|
-
@redir_local_address =
|
430
|
+
@redir_local_address = pre_redir.local_address
|
432
431
|
context = OpenSSL::SSL::SSLContext.new
|
433
432
|
context.add_certificate( cert, key )
|
434
|
-
redir = OpenSSL::SSL::SSLServer.new
|
435
|
-
|
433
|
+
redir = OpenSSL::SSL::SSLServer.new pre_redir, context
|
434
|
+
redir.listen( 127 )
|
436
435
|
puts "p#{ Process.pid } #{ Time.new } redir listen on #{ redir_port }"
|
437
436
|
add_read( redir, :redir )
|
438
437
|
end
|
@@ -540,7 +539,7 @@ module Girl
|
|
540
539
|
#
|
541
540
|
def read_redir( redir )
|
542
541
|
begin
|
543
|
-
src = redir.
|
542
|
+
src = redir.accept
|
544
543
|
rescue IO::WaitReadable, Errno::EINTR
|
545
544
|
print 'r'
|
546
545
|
return
|
data/lib/girl/version.rb
CHANGED