multibinder 0.0.2 → 0.0.3

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: dabc32c60bf41a7ac5df3709688f87b62aedf037
4
- data.tar.gz: 1353e78eb3c9ba7b1d99a2ee7006b66f90af8214
3
+ metadata.gz: 018cdd17d26576620f14c20c1f8070017bd43d29
4
+ data.tar.gz: dbf623adb438d0bb13255aa339bb38a0738371b6
5
5
  SHA512:
6
- metadata.gz: 1f8d608341c689a49983a185d4bc24201a701a95e3351e6518148e1e5ee9e8f9863a672bb0413a94cb23899308f037ee0b54080d8d79f234ef8581823d19ec5c
7
- data.tar.gz: 42f99726970af3eeccb0b0adcb6ecbe30fc60a9a4dab7d1e2241a1da54ab61abf411dbb6c30801da01c62f65f40b04a382d0ee3f2f503fb2de2703569fac96ae
6
+ metadata.gz: 49abc85df2ce0e87c6cc407922746087df99332aafdbf181564d87e6b4458e529f553105d5521df92ca11ca50f491dd0d1cd24aabc8dfcbe660e7d4f3c504c8e
7
+ data.tar.gz: 45e8ee754b2cc547c5e12013b68a633ba4b187ed13ec6fadd7711c9d39a25def4f76f98de160412bd202a1e983c3404dbc2a6273e3ed64024892cbbd6581b4b6
@@ -7,6 +7,7 @@ require 'fcntl'
7
7
  class MultiBinderServer
8
8
  def initialize(control_file)
9
9
  @control_file = control_file
10
+ @sockets = {}
10
11
  end
11
12
 
12
13
  def handle_client(s)
@@ -35,7 +36,9 @@ class MultiBinderServer
35
36
 
36
37
  begin
37
38
  name = bind_to_env(bind)
38
- if ENV[name]
39
+ if @sockets[name]
40
+ socket = @sockets[name]
41
+ elsif ENV[name]
39
42
  socket = IO.for_fd ENV[name].to_i
40
43
  else
41
44
  socket = Socket.new(:INET, :STREAM, 0)
@@ -58,6 +61,8 @@ class MultiBinderServer
58
61
  s.sendmsg JSON.dump(response), 0, nil
59
62
  return
60
63
  else
64
+ @sockets[name] = socket
65
+
61
66
  response = {
62
67
  :jsonrpc => '2.0',
63
68
  :id => request['id'],
@@ -2,7 +2,7 @@ require 'multibinder/version'
2
2
  require 'json'
3
3
 
4
4
  module MultiBinder
5
- def self.bind(address, port)
5
+ def self.bind(address, port, options={})
6
6
  abort 'MULTIBINDER_SOCK environment variable must be set' if !ENV['MULTIBINDER_SOCK']
7
7
 
8
8
  binder = UNIXSocket.open(ENV['MULTIBINDER_SOCK'])
@@ -14,7 +14,7 @@ module MultiBinder
14
14
  :params => [{
15
15
  :address => address,
16
16
  :port => port,
17
- }]
17
+ }.merge(options)]
18
18
  }, 0, nil)
19
19
 
20
20
  # get the response
@@ -1,3 +1,3 @@
1
1
  module MultiBinder
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: multibinder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Theo Julienne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-17 00:00:00.000000000 Z
11
+ date: 2016-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.5'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.5'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '10.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
41
  description:
@@ -46,7 +46,7 @@ executables:
46
46
  extensions: []
47
47
  extra_rdoc_files: []
48
48
  files:
49
- - ".gitignore"
49
+ - .gitignore
50
50
  - Gemfile
51
51
  - LICENSE.txt
52
52
  - README.md
@@ -74,17 +74,17 @@ require_paths:
74
74
  - lib
75
75
  required_ruby_version: !ruby/object:Gem::Requirement
76
76
  requirements:
77
- - - ">="
77
+ - - '>='
78
78
  - !ruby/object:Gem::Version
79
79
  version: '0'
80
80
  required_rubygems_version: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - ">="
82
+ - - '>='
83
83
  - !ruby/object:Gem::Version
84
84
  version: '0'
85
85
  requirements: []
86
86
  rubyforge_project:
87
- rubygems_version: 2.2.3
87
+ rubygems_version: 2.0.14
88
88
  signing_key:
89
89
  specification_version: 4
90
90
  summary: multibinder is a tiny ruby server that makes writing zero-downtime-reload
@@ -96,4 +96,3 @@ test_files:
96
96
  - test/lib.sh
97
97
  - test/test-haproxy.sh
98
98
  - test/test-simple.sh
99
- has_rdoc: