shadowsocks 0.2 → 0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Code Climate](https://codeclimate.com/repos/524baea6c7f3a37df208dd4c/badges/9dd6c11b6a17c3a55631/gpa.png)](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
|