diff options
author | Daniil Baturin <daniil@vyos.io> | 2020-07-24 13:20:00 +0300 |
---|---|---|
committer | Daniil Baturin <daniil@vyos.io> | 2020-07-24 13:20:00 +0300 |
commit | 61dccd81a1037c06ae883020db51409dda3e41f9 (patch) | |
tree | b9d1d25bd9e133ef6ff166a4318bed87084bbe81 /src/validators/dotted-decimal | |
parent | 2c33099f8be42f8a1cb89d8b925377507c34c516 (diff) | |
download | vyos-1x-61dccd81a1037c06ae883020db51409dda3e41f9.tar.gz vyos-1x-61dccd81a1037c06ae883020db51409dda3e41f9.zip |
T2727: add a dotted decimal validator.
Since it's relatively rarely used, Python's startup time should't
be much of a problem.
Diffstat (limited to 'src/validators/dotted-decimal')
-rwxr-xr-x | src/validators/dotted-decimal | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/validators/dotted-decimal b/src/validators/dotted-decimal new file mode 100755 index 000000000..652110346 --- /dev/null +++ b/src/validators/dotted-decimal @@ -0,0 +1,33 @@ +#!/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/>. + +import re +import sys + +area = sys.argv[1] + +res = re.match(r'^(\d+)\.(\d+)\.(\d+)\.(\d+)$', area) +if not res: + print("\'{0}\' is not a valid dotted decimal value".format(area)) + sys.exit(1) +else: + components = res.groups() + for n in range(0, 4): + if (int(components[n]) > 255): + print("Invalid component of a dotted decimal value: {0} exceeds 255".format(components[n])) + sys.exit(1) + +sys.exit(0) |