summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2022-06-03 17:33:44 +0000
committerGerrit Code Review <review@openstack.org>2022-06-03 17:33:44 +0000
commitab2bf7748863c6e76fa4a87629daecd516787a6d (patch)
treeb8dea0faaf662831b5c92278570c2e322708106f
parent866675e8449f40f321e6c5abc306a6281d0a472e (diff)
parent0b818283fd5a676fda6c42a0a1d37723fb170e34 (diff)
downloaddesignate-ab2bf7748863c6e76fa4a87629daecd516787a6d.tar.gz
Merge "Allow email subadresses to be used within mail url of CAA records" into stable/xena
-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 cda9efcc..f3fe2d3e 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)?://.*/'
RE_CERT_TYPE = r'(^[A-Z]+$)|(^[0-9]+$)'
RE_CERT_ALGO = r'(^[A-Z]+[A-Z0-9\-]+[A-Z0-9]$)|(^[0-9]+$)'
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