aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2021-06-15 11:08:23 +0200
committerlaforge <laforge@osmocom.org>2021-06-18 12:31:01 +0000
commiteabc6fd4b11e3671921754b7ba2a739890ae3d09 (patch)
tree53660d0332fab16bbaf67121cb174bff0e3613be
parentac49bda4d493eef2de1a8c957bd54ce65855f534 (diff)
vty: make function cmd_range_match() public
Certain control interface commands also may require to verfy a range in their verify function. cmd_range_match() from the VTY does exactly that and the range can be specified as string, the same way as we would specify it in the VTY. Change-Id: I53fc207677f52b1dc748b01d58424839cdba807c related: SYS#5369
-rw-r--r--include/osmocom/vty/command.h2
-rw-r--r--src/vty/command.c8
2 files changed, 6 insertions, 4 deletions
diff --git a/include/osmocom/vty/command.h b/include/osmocom/vty/command.h
index 81333b48..7f1ae5aa 100644
--- a/include/osmocom/vty/command.h
+++ b/include/osmocom/vty/command.h
@@ -483,4 +483,6 @@ extern const struct value_string vty_ref_gen_mode_desc[];
int vty_dump_xml_ref_mode(FILE *stream, enum vty_ref_gen_mode mode);
int vty_dump_xml_ref(FILE *stream) OSMO_DEPRECATED("Use vty_dump_xml_ref_mode() instead");
+int vty_cmd_range_match(const char *range, const char *str);
+
/*! @} */
diff --git a/src/vty/command.c b/src/vty/command.c
index 6d63d841..de89337d 100644
--- a/src/vty/command.c
+++ b/src/vty/command.c
@@ -1477,7 +1477,7 @@ static enum match_type cmd_ipv6_prefix_match(const char *str)
#error "LONG_MAX not defined!"
#endif
-static int cmd_range_match(const char *range, const char *str)
+int vty_cmd_range_match(const char *range, const char *str)
{
char *p;
char buf[DECIMAL_STRLEN_MAX_UNSIGNED + 1];
@@ -1600,7 +1600,7 @@ cmd_match(const char *str, const char *command,
return VARARG_MATCH;
else if (CMD_RANGE(str))
{
- if (cmd_range_match(str, command))
+ if (vty_cmd_range_match(str, command))
return RANGE_MATCH;
}
#ifdef HAVE_IPV6
@@ -1797,7 +1797,7 @@ is_cmd_ambiguous(char *command, vector v, int index, enum match_type type)
}
break;
case RANGE_MATCH:
- if (cmd_range_match
+ if (vty_cmd_range_match
(str, command)) {
if (matched
&& strcmp(matched,
@@ -1890,7 +1890,7 @@ static const char *cmd_entry_function_desc(const char *src, const char *dst)
return dst;
if (CMD_RANGE(dst)) {
- if (cmd_range_match(dst, src))
+ if (vty_cmd_range_match(dst, src))
return dst;
else
return NULL;