summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2022-09-02 07:41:32 +0200
committerChristian Poessinger <christian@poessinger.com>2022-09-02 06:21:32 +0200
commit96302a27db8e9aaad3f2c1a81457c5e8e048dd4b (patch)
tree06c63cba1e38428ebd110685f9ff511ebce22282 /src
parent735767f09f891c438e43565f935b927e6f1b317d (diff)
parent312ee15058fbb26feb6a93520417f0d5343ad15b (diff)
downloadvyos-1x-96302a27db8e9aaad3f2c1a81457c5e8e048dd4b.tar.gz
vyos-1x-96302a27db8e9aaad3f2c1a81457c5e8e048dd4b.zip
Merge branch 'T4651' of https://github.com/nicolas-fort/vyos-1x into firewall
* 'T4651' of https://github.com/nicolas-fort/vyos-1x: Firewall: T4651: Change proposed cli from ip-length to packet-length Firewall: T4651: Add options to match packet size on firewall rules.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/validators/packet-length29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/validators/packet-length b/src/validators/packet-length
new file mode 100755
index 000000000..d96093849
--- /dev/null
+++ b/src/validators/packet-length
@@ -0,0 +1,29 @@
+#!/usr/bin/python3
+
+from sys import argv
+from sys import exit
+import re
+
+if __name__ == '__main__':
+ if len(argv)>1:
+ lengths = argv[1].split(",")
+
+ for length in lengths:
+ if length and length[0] == '!':
+ length = length[1:]
+ if re.match('^[0-9]{1,5}-[0-9]{1,5}$', length):
+ length_1, length_2 = length.split('-')
+ if int(length_1) not in range(0, 65536) or int(length_2) not in range(0, 65536):
+ print(f'Error: {length} is not a valid length range')
+ exit(1)
+ if int(length_1) > int(length_2):
+ print(f'Error: {length} is not a valid length range')
+ exit(1)
+ elif length.isnumeric():
+ if int(length) not in range(0, 65536):
+ print(f'Error: {length} is not a valid length value')
+ exit(1)
+ else:
+ exit(2)
+
+ exit(0) \ No newline at end of file