Commit 939e8e7

mokha <mokha@cisco.com>
2019-03-12 23:40:24
correct some linter errors.
1 parent 2d2b2dc
Changed files (2)
lib/minbox/client.rb
@@ -18,7 +18,7 @@ module Minbox
         when /^HELO/i then helo(line)
         when /^MAIL FROM/i then mail_from(line)
         when /^RCPT TO/i then rcpt_to(line)
-        when /^DATA/i then data(line, &block)
+        when /^DATA/i then data(&block)
         when /^QUIT/i then quit
         when /^STARTTLS/i then start_tls
         when /^RSET/i then reset
@@ -43,7 +43,7 @@ module Minbox
       close
     end
 
-    def data(line)
+    def data
       write '354 End data with <CR><LF>.<CR><LF>'
       body = []
       line = read
@@ -103,10 +103,7 @@ module Minbox
       parts = Base64.decode64(data).split("\0")
       username = parts[-2]
       password = parts[-1]
-      logger.debug("#{username}:#{password}")
-      return write '535 Authenticated failed - protocol error' unless username && password
-
-      write '235 2.7.0 Authentication successful'
+      authenticate(username, password)
     end
 
     def auth_login(line)
@@ -114,16 +111,10 @@ module Minbox
       if username.strip == ''
         write '334 VXNlcm5hbWU6'
         username = read
-        write '334 UGFzc3dvcmQ6'
-      else
-        write '334 UGFzc3dvcmQ6'
       end
+      write '334 UGFzc3dvcmQ6'
       password = Base64.decode64(read)
-      logger.debug("#{username}:#{password}")
-
-      return write '535 Authenticated failed - protocol error' unless username && password
-
-      write '235 2.7.0 Authentication successful'
+      authenticate(username, password)
     end
 
     def write(message)
@@ -146,5 +137,12 @@ module Minbox
     def connected?
       @socket
     end
+
+    def authenticate(username, password)
+      logger.debug("#{username}:#{password}")
+      return write '535 Authenticated failed - protocol error' unless username && password
+
+      write '235 2.7.0 Authentication successful'
+    end
   end
 end
lib/minbox/server.rb
@@ -3,14 +3,15 @@
 module Minbox
   class Server
     SUBJECT = '/C=CA/ST=AB/L=Calgary/O=minbox/OU=development/CN=minbox'
-    attr_reader :host, :port, :logger, :key
+    attr_reader :host, :logger, :key, :server
 
     def initialize(host = 'localhost', port = 25, tls = false, logger = Minbox.logger)
       @host = host
-      @port = port
       @logger = logger
       @tls = tls
       @key = OpenSSL::PKey::RSA.new(2048)
+      logger.debug("Starting server on port #{port}...")
+      @server = TCPServer.new(port.to_i)
     end
 
     def tls?
@@ -18,13 +19,11 @@ module Minbox
     end
 
     def listen!(&block)
-      logger.debug("Starting server on port #{port}...")
-      @server = TCPServer.new(port.to_i)
       @server = upgrade(@server) if tls?
       logger.debug('Server started!')
 
       loop do
-        handle(@server.accept, &block)
+        handle(server.accept, &block)
       rescue StandardError => error
         logger.error(error)
       end
@@ -36,7 +35,7 @@ module Minbox
     end
 
     def shutdown!
-      @server&.close
+      server&.close
     end
 
     def ssl_context