diff options
author | Christian Poessinger <christian@poessinger.com> | 2020-03-16 22:45:58 +0100 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2020-03-16 22:45:58 +0100 |
commit | 9da3f105ac45fa1d175497636b0f13dc5e28212b (patch) | |
tree | fcaeb14acf272dc0c201882160a9e76ef409edc3 | |
parent | d06fd05748aeeb6edba7c6b0e74ba448d9b2e73a (diff) | |
download | vyos-1x-9da3f105ac45fa1d175497636b0f13dc5e28212b.tar.gz vyos-1x-9da3f105ac45fa1d175497636b0f13dc5e28212b.zip |
syslog: T2131: add generic fqdn validator
-rw-r--r-- | interface-definitions/system-syslog.xml.in | 4 | ||||
-rwxr-xr-x | src/validators/fqdn | 27 |
2 files changed, 29 insertions, 2 deletions
diff --git a/interface-definitions/system-syslog.xml.in b/interface-definitions/system-syslog.xml.in index 2079ec0ea..8d05e2b27 100644 --- a/interface-definitions/system-syslog.xml.in +++ b/interface-definitions/system-syslog.xml.in @@ -181,8 +181,8 @@ <properties> <help>Logging to a remote host</help> <constraint> - <validator name="ip-address" /> - <regex>(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{0,62}[a-zA-Z0-9]\.)+[a-zA-Z]{2,63}$)</regex> + <validator name="ip-address"/> + <validator name="fqdn"/> </constraint> <constraintErrorMessage>Invalid host FQDN or IP address</constraintErrorMessage> <valueHelp> diff --git a/src/validators/fqdn b/src/validators/fqdn new file mode 100755 index 000000000..9f4ed764f --- /dev/null +++ b/src/validators/fqdn @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 +# +# Copyright (C) 2020 VyOS maintainers and contributors +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 or later as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +from re import match +from sys import argv,exit + +if len(argv) == 2: + # pattern copied from: https://www.regextester.com/103452 + pattern = "(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{0,62}[a-zA-Z0-9]\.)+[a-zA-Z]{2,63}$)" + if match(pattern, argv[1]): + exit(0) + else: + exit(1) + |