mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
register_remote_server: Check for NS records, now just A/AAAA.
We shouldn't declare that the domain doesn't exist, if it has a valid NS record but no A/AAAA.
This commit is contained in:
committed by
Tim Abbott
parent
a0e5be7f2e
commit
afd7c4b1d1
@@ -2677,7 +2677,16 @@ class PushBouncerSignupTest(ZulipTestCase):
|
||||
request["contact_email"] = "admin@zulip.com"
|
||||
with mock.patch("zilencer.views.dns_resolver.Resolver") as resolver:
|
||||
resolver.return_value.resolve.side_effect = DNSNoAnswer
|
||||
resolver.return_value.resolve_name.return_value = ["whee"]
|
||||
resolver.return_value.resolve_name.return_value = ["A/AAAA response"]
|
||||
result = self.client_post("/api/v1/remotes/server/register", request)
|
||||
self.assert_json_error(
|
||||
result,
|
||||
"Invalid server administrator email address: zulip.com is invalid because it does not have any MX records",
|
||||
)
|
||||
|
||||
with mock.patch("zilencer.views.dns_resolver.Resolver") as resolver:
|
||||
resolver.return_value.resolve.side_effect = [DNSNoAnswer, "NS response"]
|
||||
resolver.return_value.resolve_name.side_effect = DNSNoAnswer
|
||||
result = self.client_post("/api/v1/remotes/server/register", request)
|
||||
self.assert_json_error(
|
||||
result,
|
||||
@@ -2693,7 +2702,7 @@ class PushBouncerSignupTest(ZulipTestCase):
|
||||
)
|
||||
|
||||
with mock.patch("zilencer.views.dns_resolver.Resolver") as resolver:
|
||||
resolver.return_value.resolve.return_value = ["whee"]
|
||||
resolver.return_value.resolve.return_value = ["MX response"]
|
||||
result = self.client_post("/api/v1/remotes/server/register", request)
|
||||
self.assert_json_success(result)
|
||||
|
||||
|
@@ -265,6 +265,14 @@ def register_remote_server(
|
||||
domain=contact_email_domain
|
||||
)
|
||||
)
|
||||
except DNSException:
|
||||
try:
|
||||
resolver.resolve(contact_email_domain, rdtype="NS")
|
||||
raise ServerAdminEmailError(
|
||||
_("{domain} is invalid because it does not have any MX records").format(
|
||||
domain=contact_email_domain
|
||||
)
|
||||
)
|
||||
except DNSException:
|
||||
raise ServerAdminEmailError(
|
||||
_("{domain} does not exist").format(domain=contact_email_domain)
|
||||
|
Reference in New Issue
Block a user