[tor-commits] [bridgedb/master] Simplify client parameter in b.e.server.createResponseBody().
isis at torproject.org
isis at torproject.org
Fri Jun 6 23:39:14 UTC 2014
commit 8a4d6c9e9c4124fae450e148d257756df1f5e3a4
Author: Isis Lovecruft <isis at torproject.org>
Date: Wed May 28 22:48:43 2014 +0000
Simplify client parameter in b.e.server.createResponseBody().
We can use the str() method on ``twisted.mail.smtp.Address`` objects to
recreate the full email address. In other words, these are equivalent:
clientAddr = '@'.join([client.local, client.domain])
and
clientAddr = str(client)
except that the latter looks nicer, so we should use that instead.
---
lib/bridgedb/email/server.py | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/lib/bridgedb/email/server.py b/lib/bridgedb/email/server.py
index dd5b4fb..79b4a59 100644
--- a/lib/bridgedb/email/server.py
+++ b/lib/bridgedb/email/server.py
@@ -81,7 +81,7 @@ def checkDKIM(message, rules):
return False
return True
-def createResponseBody(lines, context, clientAddress, lang='en'):
+def createResponseBody(lines, context, client, lang='en'):
"""Parse the **lines** from an incoming email request and determine how to
respond.
@@ -89,8 +89,8 @@ def createResponseBody(lines, context, clientAddress, lang='en'):
client.
:type context: class:`MailContext`
:param context: The context which contains settings for the email server.
- :type clientAddress: :api:`twisted.mail.smtp.Address`
- :param clientAddress: The client's email address which should be in the
+ :type client: :api:`twisted.mail.smtp.Address`
+ :param client: The client's email address which should be in the
:header:`To:` header of the response email.
:param str lang: The 2-5 character locale code to use for translating the
email. This is obtained from a client sending a email to a valid plus
@@ -103,9 +103,7 @@ def createResponseBody(lines, context, clientAddress, lang='en'):
string containing the (optionally translated) body for the email
response which we should send out.
"""
- clientAddr = '@'.join([clientAddress.local, clientAddress.domain])
t = translations.installTranslations(lang)
-
bridges = None
try:
bridgeRequest = request.determineBridgeRequestOptions(lines)
@@ -113,26 +111,26 @@ def createResponseBody(lines, context, clientAddress, lang='en'):
# The request was invalid, respond with a help email which explains
# valid email commands:
if not bridgeRequest.isValid():
- raise EmailRequestedHelp("Email request from %r was invalid."
- % clientAddr)
+ raise EmailRequestedHelp("Email request from '%s' was invalid."
+ % str(client))
# Otherwise they must have requested bridges:
interval = context.schedule.getInterval(time.time())
bridges = context.distributor.getBridgesForEmail(
- clientAddr,
+ str(client),
interval,
context.nBridges,
countryCode=None,
bridgeFilterRules=bridgeRequest.filters)
except EmailRequestedHelp as error:
logging.info(error)
- return templates.buildWelcomeText(t, clientAddress)
+ return templates.buildWelcomeText(t, client)
except EmailRequestedKey as error:
logging.info(error)
- return templates.buildKeyMessage(t, clientAddress)
+ return templates.buildKeyMessage(t, client)
except TooSoonEmail as error:
logging.info("Got a mail too frequently: %s." % error)
- return templates.buildSpamWarning(t, clientAddress)
+ return templates.buildSpamWarning(t, client)
except (IgnoreEmail, BadEmail) as error:
logging.info(error)
# Don't generate a response if their email address is unparsable or
@@ -146,8 +144,8 @@ def createResponseBody(lines, context, clientAddress, lang='en'):
includeFingerprint=context.includeFingerprints,
addressClass=bridgeRequest.addressClass,
transport=transport,
- request=clientAddr) for b in bridges)
- return templates.buildAnswerMessage(t, clientAddress, answer)
+ request=str(client)) for b in bridges)
+ return templates.buildAnswerMessage(t, client, answer)
def generateResponse(fromAddress, clientAddress, body, subject=None,
messageID=None, gpgContext=None):
More information about the tor-commits
mailing list