mqsink 0.0.8 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mqsink/server.rb +30 -34
  3. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 410be1b27dcf51bcf0b310fc1ed0e9ffd778b2cc
4
- data.tar.gz: 8c80f47415be6d091f54ed935b7f2f707df6a35e
3
+ metadata.gz: 34efedf476cf60f8caa7a0088a9845d1ce2d2c61
4
+ data.tar.gz: a3190f599967e03613965561d12f6ba27b47ad28
5
5
  SHA512:
6
- metadata.gz: cf316650eeb0da8e1d3bf8ccaaa22fc4ac692f47fbbc1cbf363463c34e556338ab976456da4f137c2a2e2fbdb1d4f6f5c2e1ccc54a656de41f0302836def81b9
7
- data.tar.gz: 23b274181b62db61baa6dea63f9e3c26d306f33c8dde893f632a5d843cb270a60069aabf5f52db5d75b71b1bc73cfbd0a33e0abd313bdca25426df7faf117479
6
+ metadata.gz: 16f4ece22161c72062f696548de8a2caf57128e45e92a1bdefeb65d01c173a348ce9794f3baeb5bbf733d17ea75ddf7a69e473ddd42edf3bda64898d77909a88
7
+ data.tar.gz: 78c7079b74480514d1f1e7af2109dd13f7c44615a7afc2bba0d2ef089c4c549b4fecfc7772c4f62083cec7d17e1684e7415a417aef8bd718fb6489df0114a8fc
data/lib/mqsink/server.rb CHANGED
@@ -2,23 +2,22 @@ module MQSink
2
2
  class Server
3
3
 
4
4
  def initialize cfg, debug
5
- @localhost = cfg['localhost']
6
- @localport = cfg['localport']
7
- @firewall = cfg['firewall']
8
- @fw_file = cfg['fw_file']
9
- @mode = cfg['mode']
10
- @mqserver = cfg['amqp_server']
11
- @classifiers = cfg['classifiers']
12
- @static_queue = cfg['static_queue']
13
- @debug = debug
14
- @acl = build_acl @fw_file
15
- @acl_refresh = cfg['fw_refresh']
5
+ @localhost = cfg['localhost']
6
+ @localport = cfg['localport']
7
+ @firewall = cfg['firewall']
8
+ @fw_file = cfg['fw_file']
9
+ @mode = cfg['mode']
10
+ @mqserver = cfg['amqp_server']
11
+ @classifiers = cfg['classifiers']
12
+ @static_queue = cfg['static_queue']
13
+ @debug = debug
14
+ @acl = build_acl @fw_file
15
+ @acl_refresh = cfg['fw_refresh']
16
16
  listen
17
17
  end
18
18
 
19
19
  def build_acl fw_file
20
- puts "+ mqsink [debug]: rebuilding ACL .." if @debug == 1
21
- @acl = open(fw_file).readlines
20
+ @acl = open(fw_file).readlines
22
21
  return @acl
23
22
  end
24
23
 
@@ -33,34 +32,31 @@ module MQSink
33
32
  r, w, e = IO.select([@sock], nil, nil)
34
33
  if r[0]
35
34
  buffer, sockaddr = @sock.recvfrom_nonblock(1500)
36
- new_buff = "#{sockaddr[3]}+#{buffer}" # ugly hack - have to find a better way to bring the remote IP forward ..
37
- @queue << new_buff
35
+ @queue << [ sockaddr[3], buffer ]
38
36
  end
39
37
  end
40
38
  end
41
39
  consumer = Thread.new do
42
40
  while true do
43
- raw_buffer = @queue.pop(true) rescue nil
44
- puts "+ mqsink [debug]: rx_buffer length = #{@queue.length}" if @debug == 1 and raw_buffer != nil
45
- sleep 0.1 if raw_buffer == nil
46
- next if raw_buffer == nil
47
- rip = raw_buffer.split('+')[0]
48
- buffer = raw_buffer.split('+')[1]
49
- if @firewall == "on" and buffer != nil
50
- @acl = build_acl @fw_file if count == 5 and @acl_refresh == 'on'
51
- count = 0 if count == 5 and @acl_refresh == 'on'
52
- count += 1
53
- puts "+ mqsink [debug]: verifying authorization for client -> #{rip} .." if @debug == 1
54
- acl = MQSink::ACL.new rip, @acl
55
- lookup = acl.lookup
56
- else # do not apply ACL when firewall is disabled #
41
+ rip, buffer = @queue.pop
42
+ puts "+ mqsink [debug]: rx_buffer length = #{@queue.length}" if @debug == 1 and buffer != nil
43
+ case @firewall
44
+ when 'on'
45
+ buffer != nil
46
+ @acl = build_acl @fw_file if count == 5 and @acl_refresh == 'on'
47
+ count = 0 if count == 5 and @acl_refresh == 'on'
48
+ count += 1
49
+ puts "+ mqsink [debug]: verifying authorization for client -> #{rip} .." if @debug == 1
50
+ acl = MQSink::ACL.new rip, @acl
51
+ lookup = acl.lookup
52
+ else
57
53
  lookup = 0
58
54
  end
59
- if lookup == 0
60
- remotehost = rip
61
- puts "+ mqsink [debug]: buffer accepted -> #{buffer}" if @debug == 1
62
- relay = MQSink::AMQP.new buffer, remotehost, @mode, @mqserver, @classifiers, @static_queue, @debug
63
- relay.publish
55
+ case lookup
56
+ when 0
57
+ puts "+ mqsink [debug]: buffer accepted -> #{buffer}" if @debug == 1
58
+ relay = MQSink::AMQP.new buffer, rip, @mode, @mqserver, @classifiers, @static_queue, @debug
59
+ relay.publish
64
60
  else
65
61
  puts "+ mqsink [debug]: client is not authorized .. ignoring buffer .." if @debug == 1
66
62
  end
metadata CHANGED
@@ -1,18 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mqsink
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samer Abdel-Hafez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-18 00:00:00.000000000 Z
11
+ date: 2014-04-11 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: a smart and lightweight udp to amqp translator
14
14
  email:
15
- - sam@ip.fi
15
+ - sam@arahant.net
16
16
  executables:
17
17
  - mqsinkd
18
18
  extensions: []
@@ -42,7 +42,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
42
42
  version: '0'
43
43
  requirements: []
44
44
  rubyforge_project: mqsink
45
- rubygems_version: 2.0.3
45
+ rubygems_version: 2.0.14
46
46
  signing_key:
47
47
  specification_version: 4
48
48
  summary: udp to amqp bridge