From 18f50eb626fd7288eb322871a04ccddb1d39f0a4 Mon Sep 17 00:00:00 2001 From: Ide Braakman Date: Tue, 17 Jan 2017 14:56:32 +0100 Subject: [PATCH] Issue #2299657 by egfrith, ChuChuNaKu, jtsnow, idebr: Allow any TLD because site admins can never keep up with ICANN --- link.install | 14 ++++++++++++++ link.module | 12 ++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/link.install b/link.install index 14e745d..e1820f7 100644 --- a/link.install +++ b/link.install @@ -115,3 +115,17 @@ function link_update_7001() { } } } + +/** + * Removes unused link_extra_domains variable. + */ +function link_update_7002() { + variable_del('link_extra_domains'); +} + +/** + * Implements hook_uninstall(). + */ +function link_uninstall() { + variable_del('link_allowed_domains'); +} diff --git a/link.module b/link.module index 1e9d088..a562cff 100644 --- a/link.module +++ b/link.module @@ -10,7 +10,6 @@ define('LINK_INTERNAL', 'internal'); define('LINK_FRONT', 'front'); define('LINK_EMAIL', 'email'); define('LINK_NEWS', 'news'); -define('LINK_DOMAINS', 'aero|arpa|asia|biz|build|com|cat|ceo|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|post|pro|tel|travel|mobi|local|xxx'); define('LINK_TARGET_DEFAULT', 'default'); define('LINK_TARGET_NEW_WINDOW', '_blank'); @@ -1383,11 +1382,16 @@ function link_url_type($text) { } /** - * Returns the list of allowed domains, including domains added by admins via variable_set/$config. + * Returns the list of allowed domains. + * + * If the variable link_allowed_domains is set, restrict allowed domains to the + * strings in that array. If the variable link_allowed_domains is not set, allow + * all domains between 2 and 63 characters in length. + * See https://tools.ietf.org/html/rfc1034. */ function _link_domains() { - $link_extra_domains = variable_get('link_extra_domains', array()); - return empty($link_extra_domains) ? LINK_DOMAINS : LINK_DOMAINS . '|' . implode('|', $link_extra_domains); + $link_allowed_domains = variable_get('link_allowed_domains', array()); + return empty($link_allowed_domains) ? '[a-z][a-z0-9-]{1,62}' : implode('|', $link_allowed_domains); } /** -- 2.10.1 (Apple Git-78)