grenache-ruby-http 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 29cd62931c38dd06f17544c50e0eabd147db5402
4
- data.tar.gz: 8e81cd549494766f2590aa9142ad4092b249bfb0
3
+ metadata.gz: 15a1cf8dee8aa1f8916d109f769bd1e41af5995e
4
+ data.tar.gz: b0d81fe6ed1d46a42ae162aa63dfa48b57e117fc
5
5
  SHA512:
6
- metadata.gz: 4a4a2f80c55ceb0381215d83063f5c743be25bd11c3596cd29a4e13c6f9b7c058fb7da29d4d62c8533f91036b9959f3b7eeb2840b27e44d5770af06757f64a82
7
- data.tar.gz: 1787f9ef3dfdcdf81d68272503defee582599eca47922b7e5401059750ffeff0b53703d39d15da5db8094019b99262860c942fe8625dfde8f0bf74ca94fbea38
6
+ metadata.gz: baf12653020538a93f54d3a905b537f1ad9696df04f260846d8b6feac55b71aba0feaabd16d1099801bad7a2bb6f31c0ae6f2990812905c833fe057fecac0ca1
7
+ data.tar.gz: ba8c325edac6783ca4cace5b74fc4b6460eb468f4a7391abd5a69cb7c0cff0a5362f14e7734d365bb5d319f2ff53774355cc8ab174888fb2896956fbd6ba16cc
@@ -0,0 +1,64 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ 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
32
+ -----END CERTIFICATE-----
33
+ -----BEGIN CERTIFICATE-----
34
+ MIIFgDCCA2gCCQDvmZA10HvRHTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UEBhMC
35
+ VVMxCzAJBgNVBAgMAk1BMQ8wDQYDVQQHDAZCb3N0b24xEzARBgNVBAoMCkV4YW1w
36
+ bGUgQ28xEDAOBgNVBAsMB3RlY2hvcHMxCzAJBgNVBAMMAmNhMSAwHgYJKoZIhvcN
37
+ AQkBFhFjZXJ0c0BleGFtcGxlLmNvbTAeFw0xNzA1MjIxMzQ0NDNaFw00NDEwMDYx
38
+ MzQ0NDNaMIGBMQswCQYDVQQGEwJVUzELMAkGA1UECAwCTUExDzANBgNVBAcMBkJv
39
+ c3RvbjETMBEGA1UECgwKRXhhbXBsZSBDbzEQMA4GA1UECwwHdGVjaG9wczELMAkG
40
+ A1UEAwwCY2ExIDAeBgkqhkiG9w0BCQEWEWNlcnRzQGV4YW1wbGUuY29tMIICIjAN
41
+ BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0SrOAQlmrQTqnXqSiKpvhb/nd79r
42
+ 59V8TY81yPiOaVXeIaCrIiDA66JzadzHHHHMt8sEsTI92BULNvQYsauRm8NmBPWJ
43
+ YKYpUj0FguG7NzDLruCsBUq1faZyLLOA2Dr33gTzJFaVtvD0Z9ig2UjTSbqEnCcY
44
+ fF6WkCcYWBE3xkyRZkuVZAaCu3PTKVvAkwxHkg4wS8feW/Z/VGLTmcd/lWvVgC1V
45
+ Kl7wwubE/8MXwjJlQBzkU5WotFHgXJMnepQTuqu5ZlDpOZehLPQ16LUjUIu0xnIt
46
+ 8k+YJ3JXdvP5+ifx+0YK9NpoU717spKgsME4z1Q6foDiaGgwWJ5bZYXi2OVD64yj
47
+ FqKN4gdpe037OwgTxCJ2FS23Ijndzi/K+AULYXbjXUo/D+CXuJ/MfOXo8DHfI1ld
48
+ ZgiHw1co2f1KQmL+AJ/YAEoC3228JG31mvX2sXL2p65QU9DmTaOrAYCX/F5T1frs
49
+ jsO560Zpvs6C7Di8eQjrx3UhMz8zYSLT35/0HPPoLA9dkJOEDpg3NtLMuN1MigNZ
50
+ VxRyadXrka4q7s/mTS1+0NbJHv4JYwzYKa1pdFeX102I9GVS9VZXpmRqriki1Sh1
51
+ rb7YOuK+I92HIzIVpSeI/OB7xguH8rh+/vibB72SY18FJWyfGcr8ewwkPSVocZeu
52
+ 9rCXIDLUY0Sojq8CAwEAATANBgkqhkiG9w0BAQUFAAOCAgEAbIPMMkzHlybXIr8z
53
+ 4Dp/3czyPWLwjFfgeL4wM5Hm/JMxaFnsWgmkUdrvjlYofzaF+2U29FsDgcrkcCzD
54
+ gTCOOHG0Pw1i8R57Dt68ycP4/e0iPpMmuTpNSqB9DilGscKARhE85o0FivAUzvUY
55
+ RngIOtbf02OoaRbkAsmKdC4+PBNJbiS3U5V55r2HCv0zqXMFj4dXqfyWKkcZt3JR
56
+ 8SkzUIhIVnwhTf8ZttXcsWmPMy3nqckcy6k3zLr7Gf63JJZAYecWwhydAtv4wRrm
57
+ f3FwIvRxPLKTc/2YXF77I9YvHgnLOvE2qlLNnajQgOcIYGvxizDVCqnMS+8oBHWb
58
+ uL6mZP4hOCL6ifynkAHltg59heM3WJ2MEwLjiSvMYY4otT4X9KxsRdsg0Gx96bVe
59
+ P4RBlW3ebxcOnFuoMC3WT22/1ETqpQbrWOD5mJkFa6Q8aE6yWLLcdJznxF2M0Mf8
60
+ PTh62cFJMC4E0gN9KRU+E/qBJsqTamHHAHjcaUYDBXsvtFDOlo1dbAzJylpwRUEg
61
+ F115KpRH6DLLexS5YB9bASIsXBK+Afwm0FOjqGiEd527qAk5UiamyomKXxQ+DIbc
62
+ 6QdO7XGpM3molI7Zzf79O4QdlRNzNgqPeCRUJWe2L6G7KECNvNjWepN3+0xAq9BO
63
+ t53fDsW6Y1yw2xErpMGUHBQ05y4=
64
+ -----END CERTIFICATE-----
@@ -3,9 +3,7 @@ require_relative '../lib/grenache-ruby-http.rb'
3
3
  Grenache::Http.configure do |conf|
4
4
  conf.grape_address = "http://127.0.0.1:40002/"
5
5
  conf.key = File.expand_path('.') + "/ssl/server-key.pem"
6
- conf.cert_pem = File.expand_path('.') + "/ssl/server-crt.pem"
7
- conf.ca = File.expand_path('.') + "/ssl/ca-crt.pem"
8
- conf.verify_mode = Grenache::SSL_VERIFY_PEER
6
+ conf.cert_pem = File.expand_path('.') + "/ssl/server-chain.pem"
9
7
  conf.service_host = "localhost"
10
8
  end
11
9
 
@@ -22,6 +22,5 @@ Gem::Specification.new do |spec|
22
22
  spec.add_runtime_dependency "httparty", "~> 0.14.0"
23
23
  spec.add_runtime_dependency "oj", "~> 2.18"
24
24
  spec.add_runtime_dependency "thin", "~> 1.7"
25
- spec.add_runtime_dependency "puma", "~> 3.9.1"
26
25
 
27
26
  end
@@ -1,5 +1,5 @@
1
1
  module Grenache
2
2
  module HTTP
3
- VERSION = "0.2.3"
3
+ VERSION = "0.2.4"
4
4
  end
5
5
  end
data/lib/grenache/http.rb CHANGED
@@ -1,7 +1,4 @@
1
- require "puma/events"
2
-
3
1
  module Grenache
4
-
5
2
  class Http < Grenache::Base
6
3
 
7
4
  def listen(key, port, opts={}, &block)
@@ -12,36 +9,29 @@ module Grenache
12
9
  end
13
10
  end
14
11
 
15
- def start_http_service(port, &block)
16
- app = -> (env) {
17
- req = ServiceMessage.parse(env['rack.input'].read)
18
- fingerprint = extract_fingerprint(env['puma.peercert'])
19
- e, payload = block.call(req, fingerprint)
20
- err = e.kind_of?(Exception) ? e.message : e
21
- [200,[], [ServiceMessage.new(payload, err, req.rid).to_json]]
12
+ def start_http_service(port, &block)
13
+ EM.defer {
14
+ app = -> (env) {
15
+ req = ServiceMessage.parse(env['rack.input'].read)
16
+ fingerprint = extract_fingerprint(env['rack.peer_cert'])
17
+ e, payload = block.call(req, fingerprint)
18
+ err = e.kind_of?(Exception) ? e.message : e
19
+ [200,nil, ServiceMessage.new(payload, err, req.rid).to_json]
20
+ }
21
+ server = Thin::Server.new config.service_host, port, {signals: false}, app
22
+ if tls?
23
+ server.ssl = true
24
+ server.ssl_options = {
25
+ private_key_file: config.key,
26
+ cert_chain_file: config.cert_pem,
27
+ verify_peer: true
28
+ }
29
+ end
30
+ server.start
22
31
  }
23
-
24
- event = Puma::Events.new $stdout, $stderr
25
- server = Puma::Server.new app, event
26
- host = config.service_host
27
-
28
- if tls?
29
- ctx = Puma::MiniSSL::Context.new
30
- ctx.key = config.key
31
- ctx.cert = config.cert_pem
32
- ctx.ca = config.ca
33
- ctx.verify_mode = config.verify_mode
34
-
35
- server.add_ssl_listener host, port, ctx
36
- else
37
- server.add_tcp_listener host, port
38
- end
39
-
40
- puts "starting server on port #{port}"
41
- server.run
42
32
  end
43
33
 
44
- def request(key, payload, params = {})
34
+ def request(key, payload, params={})
45
35
  services = lookup(key)
46
36
  if services.size > 0
47
37
  json = ServiceMessage.new(payload,key).to_json
@@ -58,14 +48,18 @@ module Grenache
58
48
 
59
49
  private
60
50
 
51
+ def tls?
52
+ !! config.cert_pem
53
+ end
54
+
61
55
  def extract_fingerprint cert
62
56
  return "" unless cert
63
57
  cert = OpenSSL::X509::Certificate.new cert
64
58
  OpenSSL::Digest::SHA1.new(cert.to_der).to_s
65
59
  end
66
60
 
67
- def tls?
68
- !! config.cert_pem
61
+ def http_client
62
+ @http_client ||= HttpClient.new(config)
69
63
  end
70
64
 
71
65
  def get_random_service services
@@ -78,9 +72,5 @@ module Grenache
78
72
  end
79
73
  service
80
74
  end
81
-
82
- def http_client
83
- @http_client ||= HttpClient.new(config)
84
- end
85
75
  end
86
76
  end
@@ -2,7 +2,7 @@ require 'oj'
2
2
  require 'faye/websocket'
3
3
  require 'httparty'
4
4
  require 'grenache-ruby-base'
5
- require 'puma'
5
+ require 'thin'
6
6
 
7
7
  require 'grenache/http'
8
8
  require 'grenache/http/version'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grenache-ruby-http
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bitfinex <info@bitfinex.com>
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-08 00:00:00.000000000 Z
11
+ date: 2017-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eventmachine
@@ -94,20 +94,6 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.7'
97
- - !ruby/object:Gem::Dependency
98
- name: puma
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: 3.9.1
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: 3.9.1
111
97
  description:
112
98
  email:
113
99
  - info@bitfinex.com
@@ -133,6 +119,7 @@ files:
133
119
  - examples/ssl/client2-csr.pem
134
120
  - examples/ssl/client2-key.pem
135
121
  - examples/ssl/client2.cnf
122
+ - examples/ssl/server-chain.pem
136
123
  - examples/ssl/server-crt.pem
137
124
  - examples/ssl/server-csr.pem
138
125
  - examples/ssl/server-key.pem