fixing ehlo requirement

This commit is contained in:
Chuck 2013-07-05 16:19:38 +07:00
parent 32e73d577c
commit 0cf256a8c2

View File

@ -25,7 +25,7 @@ class bitmessageSMTPChannel(asynchat.async_chat):
self.__addr = addr self.__addr = addr
self.__line = [] self.__line = []
self.__state = self.COMMAND self.__state = self.COMMAND
self.__greeting = 0 self.__greeting = None
self.__mailfrom = None self.__mailfrom = None
self.__rcpttos = [] self.__rcpttos = []
self.__data = '' self.__data = ''
@ -128,7 +128,7 @@ class bitmessageSMTPChannel(asynchat.async_chat):
if not arg: if not arg:
self.invalid_command('501 Syntax: EHLO hostname') self.invalid_command('501 Syntax: EHLO hostname')
return return
if self.__greeting: if self.__greeting is not None:
self.invalid_command('503 Duplicate HELO/EHLO') self.invalid_command('503 Duplicate HELO/EHLO')
return return
else: else:
@ -140,13 +140,17 @@ class bitmessageSMTPChannel(asynchat.async_chat):
if not arg: if not arg:
self.invalid_command('501 Syntax: HELO hostname') self.invalid_command('501 Syntax: HELO hostname')
return return
if self.__greeting: if self.__greeting is not None:
self.invalid_command('503 Duplicate HELO/EHLO') self.invalid_command('503 Duplicate HELO/EHLO')
else: else:
self.__greeting = arg self.__greeting = arg
self.push('250 %s' % self.__fqdn) self.push('250 %s' % self.__fqdn)
def smtp_AUTH(self, arg): def smtp_AUTH(self, arg):
if self.__greeting is None:
self.invalid_command('503 Error: required EHLO')
return
try: try:
encoding, pw = arg.split(' ') encoding, pw = arg.split(' ')
except ValueError: except ValueError: