You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2019/05/30 18:24:15 UTC

[allura] 02/02: [#8289] don't error if no request ip

This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a commit to branch db/8289
in repository https://gitbox.apache.org/repos/asf/allura.git

commit 4a0df37c2a3893206d2454655970d35c70dc5260
Author: Dave Brondsema <da...@brondsema.net>
AuthorDate: Thu May 30 14:05:57 2019 -0400

    [#8289] don't error if no request ip
---
 Allura/allura/lib/spam/stopforumspamfilter.py       | 9 ++++++---
 Allura/allura/tests/unit/spam/test_stopforumspam.py | 3 +++
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/Allura/allura/lib/spam/stopforumspamfilter.py b/Allura/allura/lib/spam/stopforumspamfilter.py
index 4e7a497..616d99f 100644
--- a/Allura/allura/lib/spam/stopforumspamfilter.py
+++ b/Allura/allura/lib/spam/stopforumspamfilter.py
@@ -57,7 +57,10 @@ class StopForumSpamSpamFilter(SpamFilter):
 
     def check(self, text, artifact=None, user=None, content_type='comment', **kw):
         ip = utils.ip_address(request)
-        ip_int = int(ipaddress.ip_address(unicode(ip)))
-        res = ip_int in self.packed_ips
-        self.record_result(res, artifact, user)
+        if ip:
+            ip_int = int(ipaddress.ip_address(unicode(ip)))
+            res = ip_int in self.packed_ips
+            self.record_result(res, artifact, user)
+        else:
+            res = False
         return res
diff --git a/Allura/allura/tests/unit/spam/test_stopforumspam.py b/Allura/allura/tests/unit/spam/test_stopforumspam.py
index 64963cf..77f0e89 100644
--- a/Allura/allura/tests/unit/spam/test_stopforumspam.py
+++ b/Allura/allura/tests/unit/spam/test_stopforumspam.py
@@ -49,3 +49,6 @@ class TestStopForumSpam(object):
 
         request.remote_addr = '1.1.1.1'
         assert_equal(False, self.sfs.check(self.content, artifact=self.artifact))
+
+        request.remote_addr = None  # e.g. from background task processing inbound email
+        assert_equal(False, self.sfs.check(self.content, artifact=self.artifact))