emptyd 0.0.9 → 0.0.10

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
  SHA1:
3
- metadata.gz: 88a76bcac44fc89b74e875ff71ec9e0c16e9d660
4
- data.tar.gz: 0a0c9f81585dbae1d9c211550a14d2529e042b43
3
+ metadata.gz: 267809f0db88a7bef5c0513fbea5773dff218021
4
+ data.tar.gz: b4a6ab60c689d4b518b8bd581caf76ed53c446bf
5
5
  SHA512:
6
- metadata.gz: adb847d23de4ad6b62e91770465c8fefb31cd705f5275383399bd5468b4fbb057e8d823f8f4b78fbf711856c67bcaf95fac567c698a8372e32bd23bfa4b6a0a0
7
- data.tar.gz: 9d15e28c62dbe9c10980cf118e44c284e2142bc414fc6c273305e4124bd0cc0b106d05a2962e44907caad54cd23d1bc4b9086449f96996740e97cbff5745a8f7
6
+ metadata.gz: 73e97ab10082578c057241cd43d82f0e16dccdf7d5391af096b08ee3f69329a4bd76953347cca89ba17be070b7395823620f1b7e44f6c2f45ef44952c6fee1df
7
+ data.tar.gz: a4e40672b2fdcbd65f96b2a7ffa96008ee8d8f7ad36017469798ffc1acec4eff1c2d5093a033ba5d86035a4a4ecbe9cd9a054d7f9d43bdbc58f14e2082e14503
data/bin/emptyd CHANGED
@@ -11,6 +11,24 @@ require "emptyd"
11
11
  require 'evma_httpserver'
12
12
  require 'getoptlong'
13
13
 
14
+ # Monkey patch for evma_httpserver 0.2.1
15
+ class EventMachine::HttpResponse
16
+ def fixup_headers
17
+ if @content
18
+ @headers["Content-length"] = @content.bytesize
19
+ elsif @chunks
20
+ @headers["Transfer-encoding"] = "chunked"
21
+ # Might be nice to ENSURE there is no content-length header,
22
+ # but how to detect all the possible permutations of upper/lower case?
23
+ elsif @multiparts
24
+ @multipart_boundary = self.class.concoct_multipart_boundary
25
+ @headers["Content-type"] = "multipart/x-mixed-replace; boundary=\"#{@multipart_boundary}\""
26
+ else
27
+ @headers["Content-length"] = 0
28
+ end
29
+ end
30
+ end
31
+
14
32
  class MyHttpServer < EM::Connection
15
33
  include EM::HttpServer
16
34
 
@@ -100,7 +118,8 @@ end
100
118
 
101
119
  CONFIG = {
102
120
  :server => "::1",
103
- :server_port => 53353
121
+ :server_port => 53353,
122
+ :log_level => "error"
104
123
  }
105
124
 
106
125
  %w{.emptyd.conf .empty.conf}.map{|name| File.expand_path("~/#{name}")}.each do |name|
@@ -123,6 +142,7 @@ opts = GetoptLong.new(
123
142
  )
124
143
 
125
144
  logger = Logger.new(STDOUT)
145
+ logger.level = Logger.const_get(CONFIG[:log_level].upcase.to_sym)
126
146
  options = { :logger => logger }
127
147
  options[:cookie] = CONFIG[:cookie]
128
148
  options[:port] = CONFIG[:server_port]
data/lib/emptyd.rb CHANGED
@@ -12,7 +12,7 @@ module Emptyd
12
12
  class Connection
13
13
  attr_reader :key, :updated_at, :failed_at, :error
14
14
  EXPIRE_INTERVAL = 600 # 10min
15
- MAX_CONNECTIONS = 100
15
+ MAX_CONNECTIONS = 500
16
16
  HAPPY_RATIO = 0.5
17
17
  @@connections = {}
18
18
  @@count = {}
@@ -91,7 +91,7 @@ module Emptyd
91
91
  else
92
92
  @@count[self.key] = self
93
93
  @logger.debug "Created new conn: #{key}, quota = #{@@count.size}"
94
- options = { :user_known_hosts_file => [] }
94
+ options = { :user_known_hosts_file => [], :number_of_password_prompts => 0 }
95
95
  options[:password] = $PASSWORD if $PASSWORD
96
96
  options[:forward_agent] = true if $FORWARD_AGENT
97
97
  EM::Ssh.start(@ip, @user, options) do |conn|
@@ -142,22 +142,30 @@ module Emptyd
142
142
  end
143
143
  end
144
144
 
145
- resolver = proc do
146
- query = @@dns.submit_A @host
147
- query.callback do |result|
148
- @ip = result.sample
145
+ if @host =~ /^[0-9a-f:.]+$/i
146
+ p @host
147
+ resolver = proc do
148
+ @ip = @host
149
149
  starter[]
150
150
  end
151
- query.errback do |err|
152
- if err == :dns_error_nodata
153
- query = @@dns.submit_AAAA @host
154
- query.callback do |result|
155
- @ip = result.sample
156
- starter[]
151
+ else
152
+ resolver = proc do
153
+ query = @@dns.submit_AAAA @host
154
+ query.callback do |result|
155
+ @ip = result.sample
156
+ starter[]
157
+ end
158
+ query.errback do |err|
159
+ if err == :dns_error_nodata
160
+ query = @@dns.submit_A @host
161
+ query.callback do |result|
162
+ @ip = result.sample
163
+ starter[]
164
+ end
165
+ query.errback { |err| resfail[err] }
166
+ else
167
+ resfail[err]
157
168
  end
158
- query.errback { |err| resfail[err] }
159
- else
160
- resfail[err]
161
169
  end
162
170
  end
163
171
  end
@@ -169,7 +177,7 @@ module Emptyd
169
177
  @@count.delete self.key
170
178
  had_valid_conn = !!@conn
171
179
  @conn = nil
172
- STDERR.puts "Connection to #{@key} is broken: #{err}"
180
+ @logger.warn "Connection to #{@key} is broken: #{err}"
173
181
  @error = err
174
182
  @failed_at = Time.now
175
183
  @connecting = false
@@ -242,13 +250,13 @@ module Emptyd
242
250
  if session.interactive?
243
251
  ch.request_pty do |ch, success|
244
252
  ch.exec cmd do |ch, success|
245
- STDERR.puts "exec failed: #{cmd}" unless success
253
+ @logger.warn "exec failed: #{cmd}" unless success
246
254
  setup[ch]
247
255
  end
248
256
  end
249
257
  else
250
258
  ch.exec cmd do |ch, success|
251
- STDERR.puts "exec failed: #{cmd}" unless success
259
+ @logger.warn "exec failed: #{cmd}" unless success
252
260
  setup[ch]
253
261
  end
254
262
  end
@@ -1,3 +1,3 @@
1
1
  module Emptyd
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emptyd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - kmeaw
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-30 00:00:00.000000000 Z
11
+ date: 2015-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler