shadowsocks 0.2 → 0.3
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/README.md +2 -0
- data/config.json +1 -1
- data/lib/shadowsocks.rb +6 -5
- data/lib/shadowsocks/connection.rb +20 -0
- data/lib/shadowsocks/listener.rb +6 -1
- data/lib/shadowsocks/local.rb +1 -0
- data/lib/shadowsocks/server.rb +1 -0
- data/lib/shadowsocks/tunnel.rb +5 -1
- data/lib/shadowsocks/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 210530027df71869738df356d97c6d3155592ab9
|
4
|
+
data.tar.gz: 8a45ea79d7cfe255af4f1926dd26eb9b7c4f3328
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78fe95f2a08447581d78d6b2f6e31cf5ef9ca60fd5d27e722949b0f3a50070166cf6ac316a092e4c21f655168a2168e091c5b9ba365e807afa19b12ee99a8ce7
|
7
|
+
data.tar.gz: 73b565053f9dbee59d094485e68797e0e740475e4ccd56739f8df62f15b12f7c096e484b6b33aa11ae11e0709762f31f03a73980d6b15240c2172b732e80800c
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
shadowsocks-ruby
|
2
2
|
================
|
3
3
|
|
4
|
+
[](https://codeclimate.com/repos/524baea6c7f3a37df208dd4c/feed)
|
5
|
+
|
4
6
|
Current version: 0.2
|
5
7
|
|
6
8
|
shadowsocks-ruby is a lightweight tunnel proxy which can help you get through firewalls. It is a port of [shadowsocks](https://github.com/clowwindy/shadowsocks).
|
data/config.json
CHANGED
data/lib/shadowsocks.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
require 'eventmachine'
|
2
2
|
|
3
3
|
module Shadowsocks
|
4
|
-
autoload :
|
5
|
-
autoload :
|
6
|
-
autoload :
|
7
|
-
autoload :
|
8
|
-
autoload :
|
4
|
+
autoload :Connection, 'shadowsocks/connection'
|
5
|
+
autoload :Server, 'shadowsocks/server'
|
6
|
+
autoload :Local, 'shadowsocks/local'
|
7
|
+
autoload :Table, 'shadowsocks/table'
|
8
|
+
autoload :Tunnel, 'shadowsocks/tunnel'
|
9
|
+
autoload :Listener, 'shadowsocks/listener'
|
9
10
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Shadowsocks
|
2
|
+
class Connection < EventMachine::Connection
|
3
|
+
BackpressureLevel = 2097152 # 2m
|
4
|
+
|
5
|
+
private
|
6
|
+
|
7
|
+
def over_pressure?
|
8
|
+
remote.get_outbound_data_size > BackpressureLevel
|
9
|
+
end
|
10
|
+
|
11
|
+
def outbound_checker
|
12
|
+
if over_pressure?
|
13
|
+
pause unless paused?
|
14
|
+
EM.add_timer(1) { outbound_checker }
|
15
|
+
else
|
16
|
+
resume if paused?
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/shadowsocks/listener.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Shadowsocks
|
2
|
-
class Listener <
|
2
|
+
class Listener < ::Shadowsocks::Connection
|
3
3
|
include ::Shadowsocks::Table
|
4
4
|
|
5
5
|
attr_accessor :stage, :remote_addr, :remote_port, :addr_to_send, :cached_pieces,
|
@@ -7,6 +7,7 @@ module Shadowsocks
|
|
7
7
|
|
8
8
|
def receive_data data
|
9
9
|
data_handler data
|
10
|
+
outbound_checker if connector
|
10
11
|
end
|
11
12
|
|
12
13
|
def post_init
|
@@ -20,6 +21,10 @@ module Shadowsocks
|
|
20
21
|
connection_cleanup
|
21
22
|
end
|
22
23
|
|
24
|
+
def remote
|
25
|
+
connector
|
26
|
+
end
|
27
|
+
|
23
28
|
private
|
24
29
|
|
25
30
|
def connection_cleanup
|
data/lib/shadowsocks/local.rb
CHANGED
data/lib/shadowsocks/server.rb
CHANGED
data/lib/shadowsocks/tunnel.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Shadowsocks
|
2
|
-
class Tunnel <
|
2
|
+
class Tunnel < ::Shadowsocks::Connection
|
3
3
|
attr_accessor :server, :table
|
4
4
|
|
5
5
|
def initialize server, table
|
@@ -12,6 +12,10 @@ module Shadowsocks
|
|
12
12
|
server.close_connection_after_writing
|
13
13
|
end
|
14
14
|
|
15
|
+
def remote
|
16
|
+
server
|
17
|
+
end
|
18
|
+
|
15
19
|
def encrypt table, data
|
16
20
|
server.encrypt table, data
|
17
21
|
end
|
data/lib/shadowsocks/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shadowsocks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.3'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sen
|
@@ -117,6 +117,7 @@ files:
|
|
117
117
|
- lib/shadowsocks.rb
|
118
118
|
- lib/shadowsocks/cli.rb
|
119
119
|
- lib/shadowsocks/config.rb
|
120
|
+
- lib/shadowsocks/connection.rb
|
120
121
|
- lib/shadowsocks/listener.rb
|
121
122
|
- lib/shadowsocks/local.rb
|
122
123
|
- lib/shadowsocks/server.rb
|
@@ -146,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
146
147
|
version: '0'
|
147
148
|
requirements: []
|
148
149
|
rubyforge_project:
|
149
|
-
rubygems_version: 2.
|
150
|
+
rubygems_version: 2.1.5
|
150
151
|
signing_key:
|
151
152
|
specification_version: 4
|
152
153
|
summary: ruby version of shadowsocks
|