summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2022-06-03 07:15:44 +0000
committerGerrit Code Review <review@openstack.org>2022-06-03 07:15:44 +0000
commite0bfba27aa2b24112eec4edf6fa2a0d932838588 (patch)
tree9b68e37df74abd28524a93fb19755396dc7302fa
parent719e757b0c1933ef9e9808296d807691f98fa529 (diff)
parent53cf9b96f58decad03c3e4dedbb33d7b5777a6b0 (diff)
downloaddesignate-e0bfba27aa2b24112eec4edf6fa2a0d932838588.tar.gz
Merge "Allow email subadresses to be used within mail url of CAA records" into stable/wallaby
-rw-r--r--designate/objects/fields.py2
-rw-r--r--designate/tests/unit/objects/test_caa_object.py7
-rw-r--r--releasenotes/notes/bug-1958533-allow-caa-mail-subaddr-d02cdc46bbb118ad.yaml10
3 files changed, 18 insertions, 1 deletions
diff --git a/designate/objects/fields.py b/designate/objects/fields.py
index b9721958..416f0d4d 100644
--- a/designate/objects/fields.py
+++ b/designate/objects/fields.py
@@ -100,7 +100,7 @@ class StringFields(ovoo_fields.StringField):
RE_NAPTR_SERVICE = r'^([A-Za-z]([A-Za-z0-9]*)(\+[A-Za-z]([A-Za-z0-9]{0,31}))*)?' # noqa
RE_NAPTR_REGEXP = r'^([^0-9i\\])(.*)\1((.+)|(\\[1-9]))\1(i?)'
RE_KVP = r'^\s[A-Za-z0-9]+=[A-Za-z0-9]+'
- RE_URL_MAIL = r'^mailto:[A-Za-z0-9_\-]+@.*'
+ RE_URL_MAIL = r'^mailto:[A-Za-z0-9_\-]+(\+[A-Za-z0-9_\-]+)?@.*'
RE_URL_HTTP = r'^http(s)?://.*/'
def __init__(self, nullable=False, read_only=False,
diff --git a/designate/tests/unit/objects/test_caa_object.py b/designate/tests/unit/objects/test_caa_object.py
index 023944bf..6045a98f 100644
--- a/designate/tests/unit/objects/test_caa_object.py
+++ b/designate/tests/unit/objects/test_caa_object.py
@@ -50,6 +50,13 @@ class CAARecordTest(oslotest.base.BaseTestCase):
self.assertEqual(0, caa_record.flags)
self.assertEqual('iodef mailto:security@example.net', caa_record.prpt)
+ caa_record = objects.CAA()
+ caa_record._from_string('0 iodef mailto:security+caa@example.net')
+
+ self.assertEqual(0, caa_record.flags)
+ self.assertEqual('iodef mailto:security+caa@example.net',
+ caa_record.prpt)
+
def test_parse_caa_invalid(self):
caa_record = objects.CAA()
self.assertRaisesRegex(
diff --git a/releasenotes/notes/bug-1958533-allow-caa-mail-subaddr-d02cdc46bbb118ad.yaml b/releasenotes/notes/bug-1958533-allow-caa-mail-subaddr-d02cdc46bbb118ad.yaml
new file mode 100644
index 00000000..694d0d2f
--- /dev/null
+++ b/releasenotes/notes/bug-1958533-allow-caa-mail-subaddr-d02cdc46bbb118ad.yaml
@@ -0,0 +1,10 @@
+---
+fixes:
+ - |
+ CAA records now allow the use of `+` prefixed subadresses like
+ `security+caa@example.net` within mail urls.
+ (https://www.rfc-editor.org/rfc/rfc5233.html#section-1)
+
+ See `bug 1958533`_ for more information.
+
+ .. _bug 1958533: https://bugs.launchpad.net/designate/+bug/1958533