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"
|
request["contact_email"] = "admin@zulip.com"
|
||||||
with mock.patch("zilencer.views.dns_resolver.Resolver") as resolver:
|
with mock.patch("zilencer.views.dns_resolver.Resolver") as resolver:
|
||||||
resolver.return_value.resolve.side_effect = DNSNoAnswer
|
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)
|
result = self.client_post("/api/v1/remotes/server/register", request)
|
||||||
self.assert_json_error(
|
self.assert_json_error(
|
||||||
result,
|
result,
|
||||||
@@ -2693,7 +2702,7 @@ class PushBouncerSignupTest(ZulipTestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
with mock.patch("zilencer.views.dns_resolver.Resolver") as resolver:
|
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)
|
result = self.client_post("/api/v1/remotes/server/register", request)
|
||||||
self.assert_json_success(result)
|
self.assert_json_success(result)
|
||||||
|
|
||||||
|
@@ -266,9 +266,17 @@ def register_remote_server(
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
except DNSException:
|
except DNSException:
|
||||||
raise ServerAdminEmailError(
|
try:
|
||||||
_("{domain} does not exist").format(domain=contact_email_domain)
|
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)
|
||||||
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
validate_uuid(zulip_org_id)
|
validate_uuid(zulip_org_id)
|
||||||
|
Reference in New Issue
Block a user