detector 0.2.1 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ab9800bbb6b9322ca7e8115b438c89cf5da96febc891e1ae6cf55ff8de6ff011
4
- data.tar.gz: 4916567db9f219e16d9fe3bef938dbc51958d786205894a850074686c5e41400
3
+ metadata.gz: 9180708d27a005b8af76c7451d69354f3c63084c671a87adbad2957627098445
4
+ data.tar.gz: 83011b8a32cbac053af086fc2d6a029daa69fc78e796075aad4d0dbd7c21b6cf
5
5
  SHA512:
6
- metadata.gz: aad9b58db57085e77b3543c50297d57d779506b93e0f89fd7475df0de19c3b45170127588dc7754fae9f5e256feb1939cb5aba88c98bc56d6289f9413f866ad6
7
- data.tar.gz: 3dc3ef92bfe6bb083f90e282d15ab0866722da1dfaddb30b8cae8076150755fad0c31274649eef7e16a19b993fb07443d68d301eb236ffaa5c7beaf91c234216
6
+ metadata.gz: b1f95d6eb75df123a8704f96b08b7ec8fa4433d556c9d0a334d25adc4e81ce4e40f2dc1ad410f63a0bbb5e9a99d75c3fd33c8d4d6add23514d8879f142c3ab59
7
+ data.tar.gz: 18b9fa63739174bdf3a3301f8ceb2618b693829668fa97adc4cdac43014f68d4f1fc11840fea86118edc967bfa362e0c464b7ee8833e3d9228073f558de05043
@@ -90,6 +90,10 @@ module Detector
90
90
  "mysql"
91
91
  end
92
92
 
93
+ def protocol_type
94
+ :tcp
95
+ end
96
+
93
97
  def user_access_level
94
98
  return nil unless connection
95
99
 
@@ -115,6 +115,10 @@ module Detector
115
115
  "psql"
116
116
  end
117
117
 
118
+ def protocol_type
119
+ :tcp
120
+ end
121
+
118
122
  def user_access_level
119
123
  return nil unless connection
120
124
 
@@ -72,6 +72,10 @@ module Detector
72
72
  "redis-cli"
73
73
  end
74
74
 
75
+ def protocol_type
76
+ :tcp
77
+ end
78
+
75
79
  def user_access_level
76
80
  return nil unless connection
77
81
 
@@ -33,6 +33,10 @@ module Detector
33
33
  "telnet"
34
34
  end
35
35
 
36
+ def protocol_type
37
+ :tcp
38
+ end
39
+
36
40
  def user_access_level
37
41
  return nil unless connection
38
42
 
data/lib/detector/base.rb CHANGED
@@ -320,11 +320,40 @@ module Detector
320
320
 
321
321
  def ping
322
322
  return nil unless valid?
323
- tcp_test
323
+ transport?
324
+ end
325
+
326
+ def transport?
327
+ protocol_type == :tcp ? tcp_test : udp_test
328
+ end
329
+
330
+ # Should be implemented by subclasses
331
+ def protocol_type
332
+ :tcp # Default to TCP
324
333
  end
325
334
 
326
335
  def tcp_test
327
- TCPSocket.new(ip, port).present? rescue nil
336
+ return nil unless ip && port
337
+ begin
338
+ socket = TCPSocket.new(ip, port)
339
+ socket.close
340
+ true
341
+ rescue => e
342
+ nil
343
+ end
344
+ end
345
+
346
+ def udp_test
347
+ return nil unless ip && port
348
+ begin
349
+ socket = UDPSocket.new
350
+ socket.connect(ip, port)
351
+ socket.send("", 0) # Send empty packet as probe
352
+ socket.close
353
+ true
354
+ rescue => e
355
+ nil
356
+ end
328
357
  end
329
358
 
330
359
  def table_count
@@ -1,3 +1,3 @@
1
1
  module Detector
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: detector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Siegel