module Groat::SMTPD::Extensions::Pipelining

Public Class Methods

included(klass) click to toggle source
Calls superclass method
# File lib/groat/smtpd/extensions/pipelining.rb, line 30
def self.included(klass)
  puts "Included RFC 2920: Pipelining"
  klass.after_all_verbs do |verb|
    puts "After #{verb}"
    @pipelinable = false
  end
  klass.before_verb :rset, :pipelinable
  klass.before_verb :mail, :pipelinable
  klass.before_verb :send, :pipelinable
  klass.before_verb :soml, :pipelinable
  klass.before_verb :saml, :pipelinable
  klass.before_verb :rcpt, :pipelinable
  super
end

Public Instance Methods

check_command_group() click to toggle source
# File lib/groat/smtpd/extensions/pipelining.rb, line 49
def check_command_group
  if not esmtp? or not @pipelinable
    if clientdata?
      response_bad_sequence
    end
  end
end
pipelinable() click to toggle source
# File lib/groat/smtpd/extensions/pipelining.rb, line 45
def pipelinable
  @pipelinable = true
end
reset_connection() click to toggle source
Calls superclass method
# File lib/groat/smtpd/extensions/pipelining.rb, line 25
def reset_connection
  @pipelinable = false
  super
end