netpump 1.0.2 → 1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6931a624fa28d354c72f47c02c06fe7041784c0a7f31668e66099d3fd3ee37e8
4
- data.tar.gz: f9a71688a43c7fee6ba692cabd7f3b7903ebdd40388c762f0b643c6e80f0767e
3
+ metadata.gz: f5b100cc632515db3f10a3f896cc9693868779f1b46ba669e733f94ef2a947ae
4
+ data.tar.gz: a121111da173f5315a621678e987f2ff5bd22699c4b062a13f280741fb6eac21
5
5
  SHA512:
6
- metadata.gz: 25589fad75f1b12458b5b83273ffae665ab1cf4a31badeb1714d611f20e29de4a97567f06fe9472538021e95ca9bfd7dfbdf20665781c3a08fd3e60091dd54a5
7
- data.tar.gz: ef0cfa5f786bc386f589d0fd9612a5165ae4051827a6b9b0e3e5561baee74da3cc9247eccfafed53610532436ea02795013c457e320da701aa295ffaed28f841
6
+ metadata.gz: a6cf3afbf87b63067b8c5ec0728ebd8546ec9fa74ebe3ceaa8a8dd9df4e6dffaeb612a9fa3aab92f4e973ef86f06a3a8da01f79dc5cc653cca1d364ba485f7e7
7
+ data.tar.gz: f0570c7cbe13d4709368f9f82dd620649de65ab6d7266113b8201b72def271c9a421bfb17100ebf7344e4f4cc07d1ad18936e1a46d3987d50ca3efff2fd19771
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ 1.0.3
2
+
3
+ Minor improvements
4
+
1
5
  1.0.2
2
6
 
3
7
  Simplify argv parsing code
data/bin/netpump CHANGED
@@ -12,7 +12,7 @@ copts = {}
12
12
  sopts = {}
13
13
 
14
14
  op = OptionParser.new do |op|
15
- op.version = "1.0.2"
15
+ op.version = "1.0.3"
16
16
  op.summary_width = 24
17
17
  op.banner = "Usage: netpump [options]"
18
18
  op.separator ""
@@ -42,7 +42,7 @@ module EventMachine::WebSocket
42
42
  private
43
43
 
44
44
  def dispatch(data)
45
- @parser << data
45
+ @parser << data if @parser
46
46
  rescue HTTP::Parser::Error => e
47
47
  debug [:error, e]
48
48
  trigger_on_error(e)
@@ -1,9 +1,9 @@
1
1
  module EventMachine::WebSocket::Server
2
- def self.start(host, port, &block)
3
- EventMachine::WebSocket.run(host: host, port: port, block: block) do |ws|
2
+ def self.start(host, port, log, &block)
3
+ EventMachine::WebSocket.run(host: host, port: port, block: block, log: log) do |ws|
4
4
  ws.onerror do |e|
5
5
  if EventMachine::WebSocket::WebSocketError === e
6
- log "[!] websocket error.", error: e
6
+ log.call "[!] websocket error.", error: e
7
7
  else
8
8
  fail e
9
9
  end
@@ -20,7 +20,7 @@ module EventMachine::WebSocket::Server
20
20
  send_error = lambda do |status|
21
21
  send_data("HTTP/1.1 #{status}\r\n\r\n#{status}")
22
22
  close_connection_after_writing
23
- log "[!] http client error.", method: method, path: path, status: status
23
+ @options[:log].call "[!] http client error.", method: method, path: path, status: status
24
24
  end
25
25
  if method != "GET"
26
26
  send_error.call(405)
@@ -61,7 +61,7 @@ module Netpump
61
61
  private_constant :PUBLIC_DIR
62
62
 
63
63
  def start_websocket_server
64
- EventMachine::WebSocket::Server.start(@host, @port) do |path, ws|
64
+ EventMachine::WebSocket::Server.start(@host, @port, @log) do |path, ws|
65
65
  case path
66
66
  when "/"
67
67
  ws.serve_file(PUBLIC_DIR.join("netpump.html"))
@@ -98,7 +98,7 @@ module Netpump
98
98
  end
99
99
 
100
100
  def print_open_url
101
- ip = Socket.getifaddrs.find { |ifa| ifa.addr&.ipv4_private? } or raise(
101
+ ip = Socket.getifaddrs.select { |ifa| ifa.addr&.ipv4? }.last or raise(
102
102
  "could not find an interface to listen on; " \
103
103
  "make sure that you are connected to your device."
104
104
  )
@@ -119,7 +119,8 @@ module Netpump
119
119
  case @mode
120
120
  when "direct"
121
121
  host = @server_url.host
122
- port = @server_url.port
122
+ # Fallback to port 443 on older rubies.
123
+ port = @server_url.port || 443
123
124
  begin
124
125
  EventMachine.connect(host, port, EventMachine::WebSocket::Client, url: @server_url) do |ws|
125
126
  ws.onopen do
@@ -28,10 +28,10 @@ module Netpump
28
28
  private
29
29
 
30
30
  def start_websocket_server
31
- EventMachine::WebSocket::Server.start(@host, @port) do |path, ws|
31
+ EventMachine::WebSocket::Server.start(@host, @port, @log) do |path, ws|
32
32
  case path
33
33
  when "/", "/healthcheck"
34
- @log.call "[~] http request.", method: "GET", path: path, ip: ws.remote_ip
34
+ @log.call "[~] http request.", ip: ws.remote_ip, method: "GET", path: path, status: 200
35
35
  ws.send_healthcheck_response
36
36
  when "/ws/rem/relay"
37
37
  ws.onopen do |handshake|
data/public/netpump.html CHANGED
@@ -2,7 +2,7 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
5
+ <meta name="viewport" content="width=device-width" />
6
6
  <title>netpump</title>
7
7
  <link rel="icon" href="favicon.svg" type="image/svg+xml" />
8
8
  <style>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netpump
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - soylent