envoy-proxy 0.0.12 → 0.0.14
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 +4 -2
- data/bin/{envoyc → envoy} +0 -0
- data/bin/{envoys → envoyd} +0 -0
- data/lib/envoy/server/command.rb +5 -1
- data/lib/envoy/server/trunk.rb +15 -3
- data/lib/envoy/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b54921a713d37da78b7a2bbd63448f7ebc8be2c
|
4
|
+
data.tar.gz: 29a76e5a111c75216a3e7bc246e6bae29ea397f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e1adb7a4b761b994c7d2dda63f29ca00cc7b29bbe11dcc847e78cb51a6cdb2a774b21b93d0bcd8eddf2b32be4c3ca643466fa1d94632f68940a574160dcc40e0
|
7
|
+
data.tar.gz: dc5d9a2b267f8355529ccedef95566522a3596adebfebf3805dd8d37c3d1ae265e0182981e11343f574bfb306474fa0f5a6bdeddfb9bc8998da6c5f154ea6682
|
data/README.md
CHANGED
@@ -6,7 +6,7 @@ A clone of proxylocal. Both client and server are included.
|
|
6
6
|
|
7
7
|
## The client
|
8
8
|
|
9
|
-
|
9
|
+
envoy [--key KEY] [--host HOST] [--tls] [--server SERVER] [[ADDRESS:]PORT]
|
10
10
|
|
11
11
|
Makes the HTTP* service running at ADDRESS:PORT available via a proxylocal
|
12
12
|
service running on SERVER. The default server is p45.eu, and the default address
|
@@ -21,9 +21,11 @@ each client must present the KEY.
|
|
21
21
|
|
22
22
|
## The server
|
23
23
|
|
24
|
-
|
24
|
+
envoyd [--key KEY] [--listen [HOST:]PORT] ZONE
|
25
25
|
|
26
26
|
Starts a proxylocal-compatible server. Listens for HTTP requests on the
|
27
27
|
specified host and port, which default to 0.0.0.0 and 8080.
|
28
28
|
|
29
|
+
If KEY is specified, clients _must_ specify that key.
|
30
|
+
|
29
31
|
The ZONE specifies the domain name suffix.
|
data/bin/{envoyc → envoy}
RENAMED
File without changes
|
data/bin/{envoys → envoyd}
RENAMED
File without changes
|
data/lib/envoy/server/command.rb
CHANGED
@@ -3,6 +3,7 @@ require 'envoy/server/web'
|
|
3
3
|
require 'optparse'
|
4
4
|
|
5
5
|
listen = ["0.0.0.0", "8080"]
|
6
|
+
key = nil
|
6
7
|
|
7
8
|
OptionParser.new do |op|
|
8
9
|
op.banner = "Usage: #{$0} [options] ZONE"
|
@@ -10,6 +11,9 @@ OptionParser.new do |op|
|
|
10
11
|
port, host = v.split(":").reverse
|
11
12
|
listen = [host || "0.0.0", port]
|
12
13
|
end
|
14
|
+
op.on "-k", "--key KEY", "Require authentication using KEY" do |v|
|
15
|
+
key = v
|
16
|
+
end
|
13
17
|
op.on "--version" do
|
14
18
|
puts Envoy::VERSION
|
15
19
|
exit
|
@@ -22,7 +26,7 @@ $zone = ARGV[0].gsub(/^\.+/, '')
|
|
22
26
|
|
23
27
|
unless EM.reactor_running?
|
24
28
|
EM.run do
|
25
|
-
EM.start_server "0.0.0.0", 8282, Envoy::Server::Trunk
|
29
|
+
EM.start_server "0.0.0.0", 8282, Envoy::Server::Trunk, key
|
26
30
|
EM.start_server *listen, Envoy::Server::Web
|
27
31
|
end
|
28
32
|
end
|
data/lib/envoy/server/trunk.rb
CHANGED
@@ -5,6 +5,11 @@ module Envoy
|
|
5
5
|
module Trunk
|
6
6
|
include Protocol
|
7
7
|
|
8
|
+
def initialize key
|
9
|
+
super
|
10
|
+
@key = key
|
11
|
+
end
|
12
|
+
|
8
13
|
def self.trunks
|
9
14
|
@trunks ||= Hash.new{|h,k|h[k] = []}
|
10
15
|
end
|
@@ -39,13 +44,18 @@ module Envoy
|
|
39
44
|
@options[:key]
|
40
45
|
end
|
41
46
|
|
42
|
-
def halt
|
47
|
+
def halt message = nil
|
48
|
+
send_object :message, message if message
|
43
49
|
send_object :halt
|
44
50
|
close_connection(true)
|
45
51
|
end
|
46
52
|
|
47
53
|
def receive_options options
|
48
54
|
@options = options
|
55
|
+
if @key and @key != @options[:key]
|
56
|
+
halt "Key is invalid"
|
57
|
+
return
|
58
|
+
end
|
49
59
|
hosts = @options[:hosts] || []
|
50
60
|
hosts.any? do |label|
|
51
61
|
if label == "s"
|
@@ -67,9 +77,11 @@ module Envoy
|
|
67
77
|
Trunk.trunks[host] << self
|
68
78
|
m << "http://#{host}.#{$zone}/"
|
69
79
|
end
|
70
|
-
@options[:key] ||= SecureRandom.hex(8)
|
71
80
|
send_object :message, m.join(" ")
|
72
|
-
|
81
|
+
unless @options[:key]
|
82
|
+
@options[:key] ||= SecureRandom.hex(8)
|
83
|
+
send_object :message, "Your key is #{@options[:key]}"
|
84
|
+
end
|
73
85
|
end
|
74
86
|
|
75
87
|
def unbind
|
data/lib/envoy/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: envoy-proxy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Baum
|
@@ -70,8 +70,8 @@ description:
|
|
70
70
|
email:
|
71
71
|
- n@p12a.org.uk
|
72
72
|
executables:
|
73
|
-
-
|
74
|
-
-
|
73
|
+
- envoy
|
74
|
+
- envoyd
|
75
75
|
extensions: []
|
76
76
|
extra_rdoc_files: []
|
77
77
|
files:
|
@@ -80,8 +80,8 @@ files:
|
|
80
80
|
- LICENSE.txt
|
81
81
|
- README.md
|
82
82
|
- Rakefile
|
83
|
-
- bin/
|
84
|
-
- bin/
|
83
|
+
- bin/envoy
|
84
|
+
- bin/envoyd
|
85
85
|
- envoy-proxy.gemspec
|
86
86
|
- lib/envoy/client/channel.rb
|
87
87
|
- lib/envoy/client/command.rb
|