return 0;
}
-/* Parse action control including possible options.
- *
- * Parameters:
- * @argc_p - pointer to argc to parse
- * @argv_p - pointer to argv to parse
- * @result_p - pointer to output variable
- * @allow_num - whether action may be in numeric format already
- *
- * In error case, returns -1 and does not touch @result_1p. Otherwise returns 0.
- */
-int parse_action_control(int *argc_p, char ***argv_p,
- int *result_p, bool allow_num)
+static int __parse_action_control(int *argc_p, char ***argv_p, int *result_p,
+ bool allow_num, bool ignore_a2n_miss)
{
int argc = *argc_p;
char **argv = *argv_p;
if (!argc)
return -1;
if (action_a2n(*argv, &result, allow_num) == -1) {
- fprintf(stderr, "Bad action type %s\n", *argv);
+ if (!ignore_a2n_miss)
+ fprintf(stderr, "Bad action type %s\n", *argv);
return -1;
}
if (result == TC_ACT_GOTO_CHAIN) {
return 0;
}
+/* Parse action control including possible options.
+ *
+ * Parameters:
+ * @argc_p - pointer to argc to parse
+ * @argv_p - pointer to argv to parse
+ * @result_p - pointer to output variable
+ * @allow_num - whether action may be in numeric format already
+ *
+ * In error case, returns -1 and does not touch @result_1p. Otherwise returns 0.
+ */
+int parse_action_control(int *argc_p, char ***argv_p,
+ int *result_p, bool allow_num)
+{
+ return __parse_action_control(argc_p, argv_p, result_p,
+ allow_num, false);
+}
+
/* Parse action control including possible options.
*
* Parameters:
int *result_p, bool allow_num,
int default_result)
{
- if (parse_action_control(argc_p, argv_p, result_p, allow_num))
+ if (__parse_action_control(argc_p, argv_p, result_p, allow_num, true))
*result_p = default_result;
}