diff options
-rw-r--r-- | lib/custodian/protocoltest/opensmtprelay.rb | 46 | ||||
-rw-r--r-- | lib/custodian/protocoltest/smtprelay.rb | 54 | ||||
-rw-r--r-- | lib/custodian/protocoltests.rb | 1 |
3 files changed, 55 insertions, 46 deletions
diff --git a/lib/custodian/protocoltest/opensmtprelay.rb b/lib/custodian/protocoltest/opensmtprelay.rb deleted file mode 100644 index 87caafb..0000000 --- a/lib/custodian/protocoltest/opensmtprelay.rb +++ /dev/null @@ -1,46 +0,0 @@ -require 'net/smtp' - -module Custodian - module ProtocolTest - class OpenSMTPRelayTest < TestFactory - # save away state from the configuration line. - def initialize( line ) - @line = line - - @host = line.split( /\s+/)[0] - - if ( line =~ /must\s+not\s+run\s+/ ) - @inverted = true - else - @inverted = false - end - - end - # run the test for open relays of SMTP protocol - return true on success, false on fail. - def run_test # this requires love, just trying to get it to run for now.. - - @error = nil # for if we've run the test before - message = "This is a test for OPEN SMTP relays." - - begin - - Net::SMTP.start(@host,25) do |smtp| - smtp.send_message message, "foo@bar.com", "foo@bar.com" - @error = "Sent message, that's bad." - end # Net SMTP - - rescue Exception => ex # for if we fail to send a message; this is a good thing - return false - end - - end - # if the test failed return a suitable error message - def error - @error = "Couldn't send message; that's good, really." - end - # register ourselves with the factory so we're invoked for lines of the form: - # TARGET must (not) run xxx otherwise ... - register_test_type "open-smtp-relay" - end - end -end diff --git a/lib/custodian/protocoltest/smtprelay.rb b/lib/custodian/protocoltest/smtprelay.rb new file mode 100644 index 0000000..868ccf6 --- /dev/null +++ b/lib/custodian/protocoltest/smtprelay.rb @@ -0,0 +1,54 @@ +require 'net/smtp' + + + +module Custodian + + module ProtocolTest + + class RelayTest < TCPTest + + # save away state from the configuration line. + def initialize( line ) + @line = line + @host = line.split( /\s+/)[0] + + if ( line =~ /must\s+not\s+run\s+/ ) + @inverted = true + else + @inverted = false + end + end + + + # run the test for open relays of SMTP protocol - return true on success. + # false on fail. + # this requires love, just trying to get it to run for now.. + def run_test + @error = nil # for if we've run the test before + message = "This is a test for OPEN SMTP relays." + + begin + Net::SMTP.start(@host,25) do |smtp| + smtp.send_message message, "foo@bar.com", "foo@bar.com" + @error = "Sent message, that's bad." + end # Net SMTP + + rescue Exception => ex # for if we fail to send a message; this is a good thing + return false + end + + end + + + # if the test failed return a suitable error message + def error + @error = "Couldn't send message; that's good, really." + end + + # register ourselves with the factory so we're invoked for lines of the form: + # TARGET must (not) run xxx otherwise ... + register_test_type "smtprelay" + end + end +end diff --git a/lib/custodian/protocoltests.rb b/lib/custodian/protocoltests.rb index b3f96e0..7ba77e0 100644 --- a/lib/custodian/protocoltests.rb +++ b/lib/custodian/protocoltests.rb @@ -22,6 +22,7 @@ require 'custodian/protocoltest/redis' require 'custodian/protocoltest/rsync' require 'custodian/protocoltest/ssh' require 'custodian/protocoltest/smtp' +require 'custodian/protocoltest/smtprelay.rb' require 'custodian/protocoltest/telnet' |