send_nsca 0.4.11 → 0.5.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 9b01bc3a9cda13bfd1d0b620be61efb099687da3
4
+ data.tar.gz: 7b164273cfee1de17fbd6cd4b5827ec10c9c8e76
5
+ SHA512:
6
+ metadata.gz: 9042f6005188dc538788d8046295b3fa6e848138170810de8f6d269a923019e9bdc9bea53f4c019df0c1e90bbb60c271e3ba3c41d94a2a9dcb81009e19d5e256
7
+ data.tar.gz: 6f0ee855e4cbecd369250ac61a117104e19654ac15fc07aeb5918179dde561cde8ae627af0544af0841b698e6aa74926131ada274c401a65a67ff3b3df5d4553
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ begin
7
7
  gem.name = "send_nsca"
8
8
  gem.summary = %Q{A pure ruby implementation of the send_nsca program for sending passive alerts to Nagios through NSCA.}
9
9
  gem.description = %Q{A pure ruby implementation of the send_nsca program for sending passive alerts to Nagios through NSCA.}
10
- gem.email = "kbedell@backchannelmedia.com"
10
+ gem.email = "kbedell@gmail.com"
11
11
  gem.homepage = "http://github.com/kevinzen/send_nsca"
12
12
  gem.authors = ["kevinzen"]
13
13
  gem.add_development_dependency "rspec", ">= 1.2.9"
@@ -22,29 +22,12 @@ rescue LoadError
22
22
  end
23
23
 
24
24
 
25
+ require 'rspec/core/rake_task'
25
26
 
26
- require 'spec/rake/spectask'
27
- Spec::Rake::SpecTask.new(:spec) do |spec|
28
- spec.libs << 'lib' << 'spec'
29
- spec.spec_files = FileList['spec/**/*_spec.rb']
30
- end
27
+ task :default => [:spec]
31
28
 
32
- Spec::Rake::SpecTask.new(:rcov) do |spec|
33
- spec.libs << 'lib' << 'spec'
29
+ desc "Run the specs."
30
+ RSpec::Core::RakeTask.new do |spec|
34
31
  spec.pattern = 'spec/**/*_spec.rb'
35
- spec.rcov = true
36
32
  end
37
33
 
38
- task :spec => :check_dependencies
39
-
40
- task :default => :spec
41
-
42
- require 'rake/rdoctask'
43
- Rake::RDocTask.new do |rdoc|
44
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
45
-
46
- rdoc.rdoc_dir = 'rdoc'
47
- rdoc.title = "send_nsca #{version}"
48
- rdoc.rdoc_files.include('README*')
49
- rdoc.rdoc_files.include('lib/**/*.rb')
50
- end
@@ -55,6 +55,7 @@ module SendNsca
55
55
  @return_code = args[:return_code]
56
56
  @status = args[:status]
57
57
  @connected = false
58
+ @password = args[:password] || ''
58
59
 
59
60
  end
60
61
 
@@ -69,6 +70,7 @@ module SendNsca
69
70
  @connected = false
70
71
  @error = "send_ncsa - error connecting to nsca/nagios: #{$!}"
71
72
  puts @error
73
+ @tcp_client.try(:close)
72
74
  raise # re-raise same exception
73
75
  end
74
76
  timestamp_for_logging
@@ -108,13 +110,13 @@ module SendNsca
108
110
  nsca_params = [PACKET_VERSION, @crc, @timestring, @return_code, @hostname, @service, @status ]
109
111
  string_to_send_with_crc = nsca_params.pack(PACK_STRING)
110
112
 
111
- # puts("DEBUG: PACKET_VERSION = #{PACKET_VERSION},\n @crc = #{@crc},\n @timestring = #{@timestring},\n @timestamp_hex = #{Time.at(timestamp_hex)},\n @return_code #{@return_code},\n @hostname = #{@hostname},\n @service = #{@service},\n @status = #{@status}\n")
112
- # puts "string_to_send_with_crc = #{string_to_send_with_crc.length}"
113
- # puts "string_to_send_with_crc = #{string_to_send_with_crc.unpack('H*')}"
113
+ #puts("DEBUG: PACKET_VERSION = #{PACKET_VERSION},\n @crc = #{@crc},\n @timestring = #{@timestring},\n @timestamp_hex = #{Time.at(timestamp_hex)},\n @return_code #{@return_code},\n @hostname = #{@hostname},\n @service = #{@service},\n @status = #{@status}\n")
114
+ #puts "string_to_send_with_crc = #{string_to_send_with_crc.length}"
115
+ #puts "string_to_send_with_crc = #{string_to_send_with_crc.unpack('H*')}"
114
116
 
115
- encrypted_string_to_send = SendNsca::NscaConnection.xor(@xor_key, string_to_send_with_crc)
116
- # puts "encrypted_string_to_send = #{encrypted_string_to_send.length}"
117
- # puts "encrypted_string_to_send = #{encrypted_string_to_send.unpack('H*')}"
117
+ encrypted_string_to_send = SendNsca::NscaConnection.xor(@xor_key, string_to_send_with_crc, @password)
118
+ #puts "encrypted_string_to_send = #{encrypted_string_to_send.length}"
119
+ #puts "encrypted_string_to_send = #{encrypted_string_to_send.unpack('H*')}"
118
120
 
119
121
  @tcp_client.send(encrypted_string_to_send, 0)
120
122
  @tcp_client.close
@@ -131,19 +133,18 @@ module SendNsca
131
133
  r ^ 0xFFFFFFFF
132
134
  end
133
135
 
134
- def self.xor(xor_key, str)
135
-
136
- str_a = str.unpack("C*")
137
- key_a = xor_key.unpack("C*")
136
+ def self.xor(iv, str, password='')
138
137
 
138
+ str_a = str.unpack("C*")
139
+ iv_a = iv.unpack("C*")
140
+ password_a = password.unpack("C*")
139
141
  result = []
140
- key_index = 0
141
- str_index = 0
142
- str_a.each do |c|
143
- result[str_index] = str_a[str_index] ^ key_a[key_index]
144
- str_index += 1
145
- key_index = key_index == xor_key.length-1 ? 0 : key_index += 1
142
+
143
+ str_a.each_with_index do |c, i|
144
+ result[i] = c ^ iv_a[i % iv_a.size]
145
+ result[i] ^= password_a[i % password_a.size] unless password_a.empty?
146
146
  end
147
+
147
148
  ret_val = result.pack("C*")
148
149
  end
149
150
 
@@ -40,12 +40,32 @@ describe "SendNsca" do
40
40
  deencrypted_str = SendNsca::NscaConnection.xor(xor_key,encrypted_str)
41
41
  deencrypted_str.should eql str
42
42
 
43
- str = "\000\000\000\000\111\222\333\123\321"
43
+ str = "\000\000\000\000\x1\x2\x3_abc123&*#"
44
44
  encrypted_str = SendNsca::NscaConnection.xor(xor_key,str)
45
45
  deencrypted_str = SendNsca::NscaConnection.xor(xor_key,encrypted_str)
46
46
  deencrypted_str.should eql str
47
47
  end
48
48
 
49
+ it "should perform valid xor encryption that can be deencrypted and accept a password" do
50
+
51
+ xor_key = "\377\376\375"
52
+ str = "Hello!"
53
+ encrypted_str = SendNsca::NscaConnection.xor(xor_key,str, "YOURPASSWORD")
54
+ deencrypted_str = SendNsca::NscaConnection.xor(xor_key,encrypted_str, "YOURPASSWORD")
55
+ deencrypted_str.should eql str
56
+
57
+ xor_key = "adsfkahudsflihasdflkahdsfoaiudfh-3284rqiuy8rtq49087ty 2-\123\666\001\004\377"
58
+ str = "Hey There This is awesome!!!\000!"
59
+ encrypted_str = SendNsca::NscaConnection.xor(xor_key,str, "YOURPASSWORD")
60
+ deencrypted_str = SendNsca::NscaConnection.xor(xor_key,encrypted_str, "YOURPASSWORD")
61
+ deencrypted_str.should eql str
62
+
63
+ str = "\000\000\000\000\x1\x2\x3_abc123&*#"
64
+ encrypted_str = SendNsca::NscaConnection.xor(xor_key, str, "YOURPASSWORD")
65
+ deencrypted_str = SendNsca::NscaConnection.xor(xor_key, encrypted_str, "YOURPASSWORD")
66
+ deencrypted_str.should eql str
67
+ end
68
+
49
69
  it "should correctly send a message to the server" do
50
70
 
51
71
  args = {
data/spec/spec_helper.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
3
  require 'send_nsca'
4
- require 'spec'
5
- require 'spec/autorun'
4
+ #require 'spec'
5
+ #require 'spec/autorun'
6
6
 
7
- Spec::Runner.configure do |config|
7
+ RSpec.configure do |config|
8
8
 
9
9
  end
metadata CHANGED
@@ -1,45 +1,37 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: send_nsca
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 4
8
- - 11
9
- version: 0.4.11
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.0
10
5
  platform: ruby
11
- authors:
6
+ authors:
12
7
  - kevinzen
13
8
  autorequire:
14
9
  bindir: bin
15
10
  cert_chain: []
16
-
17
- date: 2010-07-19 00:00:00 -04:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
11
+ date: 2014-07-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
21
14
  name: rspec
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
25
17
  - - ">="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 1
29
- - 2
30
- - 9
31
- version: 1.2.9
18
+ - !ruby/object:Gem::Version
19
+ version: '2'
32
20
  type: :development
33
- version_requirements: *id001
34
- description: A pure ruby implementation of the send_nsca program for sending passive alerts to Nagios through NSCA.
35
- email: kbedell@backchannelmedia.com
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '2'
27
+ description: A pure ruby implementation of the send_nsca program for sending passive
28
+ alerts to Nagios through NSCA.
29
+ email: kbedell@gmail.com
36
30
  executables: []
37
-
38
31
  extensions: []
39
-
40
- extra_rdoc_files:
32
+ extra_rdoc_files:
41
33
  - README.rdoc
42
- files:
34
+ files:
43
35
  - README.rdoc
44
36
  - Rakefile
45
37
  - lib/send_nsca.rb
@@ -48,37 +40,32 @@ files:
48
40
  - spec/send_nsca_spec.rb
49
41
  - spec/spec.opts
50
42
  - spec/spec_helper.rb
51
- has_rdoc: true
52
43
  homepage: http://github.com/kevinzen/send_nsca
53
44
  licenses: []
54
-
45
+ metadata: {}
55
46
  post_install_message:
56
- rdoc_options:
57
- - --charset=UTF-8
58
- require_paths:
47
+ rdoc_options:
48
+ - "--charset=UTF-8"
49
+ require_paths:
59
50
  - lib
60
- required_ruby_version: !ruby/object:Gem::Requirement
61
- requirements:
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ requirements:
62
53
  - - ">="
63
- - !ruby/object:Gem::Version
64
- segments:
65
- - 0
66
- version: "0"
67
- required_rubygems_version: !ruby/object:Gem::Requirement
68
- requirements:
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
57
+ requirements:
69
58
  - - ">="
70
- - !ruby/object:Gem::Version
71
- segments:
72
- - 0
73
- version: "0"
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
74
61
  requirements: []
75
-
76
62
  rubyforge_project:
77
- rubygems_version: 1.3.6
63
+ rubygems_version: 2.2.2
78
64
  signing_key:
79
65
  specification_version: 3
80
- summary: A pure ruby implementation of the send_nsca program for sending passive alerts to Nagios through NSCA.
81
- test_files:
66
+ summary: A pure ruby implementation of the send_nsca program for sending passive alerts
67
+ to Nagios through NSCA.
68
+ test_files:
82
69
  - spec/send_nsca_spec.rb
83
70
  - spec/spec.opts
84
71
  - spec/spec_helper.rb