From b5531dd0a028c30c34261c05540d53ec3a977313 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Wed, 6 Apr 2022 23:30:43 +0200 Subject: [PATCH] generate-reader, generate-example: introduce new uc-portrange format The `uc-portrange` string format will match single ports and ranges in `minport-maxport` notation. Signed-off-by: Jo-Philipp Wich --- generate-example.uc | 8 ++++++++ generate-reader.uc | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/generate-example.uc b/generate-example.uc index f07ff44..374508f 100755 --- a/generate-example.uc +++ b/generate-example.uc @@ -211,6 +211,14 @@ function random_value(kind, minLength, maxLength) { case 'uc-base64': return b64enc(random_phrase(50, 100)); + case 'uc-portrange': + switch (math.rand() % 2) { + case 0: return sprintf('%d', math.rand() % 65536); + case 1: return join('-', sort([ math.rand() % 65536, math.rand() % 65536 ])); + } + + break; + default: if (minLength <= 15 && maxLength >= 20) return random_phrase(minLength, maxLength); diff --git a/generate-reader.uc b/generate-reader.uc index 7498f7a..c971827 100755 --- a/generate-reader.uc +++ b/generate-reader.uc @@ -95,6 +95,15 @@ let GeneratorProto = { 'return b64dec(value) != null;' ] }, + "uc-portrange": { + desc: 'network port range', + code: [ + 'let ports = match(value, /^([0-9]|[1-9][0-9]*)(-([0-9]|[1-9][0-9]*))?$/);', + 'if (!ports) return false;', + 'let min = +ports[1], max = ports[2] ? +ports[3] : min;', + 'return (min <= 65535 && max <= 65535 && max >= min);' + ] + }, "hostname": { desc: 'hostname', code: [