mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-22 12:30:07 +00:00
MINOR: action: add a function to dump the list of actions for a ruleset
The new function dump_act_rules() now dumps the list of actions supported by a ruleset. These actions are alphanumerically sorted first so that the produced output is easy to compare.
This commit is contained in:
parent
3ff476e9ef
commit
2100b383ab
@ -114,5 +114,6 @@ static inline void release_timeout_action(struct act_rule *rule)
|
||||
|
||||
struct act_rule *new_act_rule(enum act_from from, const char *file, int linenum);
|
||||
void free_act_rules(struct list *rules);
|
||||
void dump_act_rules(const struct list *rules, const char *pfx);
|
||||
|
||||
#endif /* _HAPROXY_ACTION_H */
|
||||
|
25
src/action.c
25
src/action.c
@ -321,3 +321,28 @@ void free_act_rules(struct list *rules)
|
||||
free_act_rule(rule);
|
||||
}
|
||||
}
|
||||
|
||||
/* dumps all known actions registered in action rules <rules> after prefix
|
||||
* <pfx> to stdout. The actions are alphabetically sorted. Those with the
|
||||
* KWF_MATCH_PREFIX flag have their name suffixed with '*'.
|
||||
*/
|
||||
void dump_act_rules(const struct list *rules, const char *pfx)
|
||||
{
|
||||
const struct action_kw *akwp, *akwn;
|
||||
struct action_kw_list *akwl;
|
||||
int index;
|
||||
|
||||
for (akwn = akwp = NULL;; akwp = akwn) {
|
||||
list_for_each_entry(akwl, rules, list) {
|
||||
for (index = 0; akwl->kw[index].kw != NULL; index++)
|
||||
if (strordered(akwp ? akwp->kw : NULL,
|
||||
akwl->kw[index].kw,
|
||||
akwn != akwp ? akwn->kw : NULL))
|
||||
akwn = &akwl->kw[index];
|
||||
}
|
||||
if (akwn == akwp)
|
||||
break;
|
||||
printf("%s%s%s\n", pfx ? pfx : "", akwn->kw,
|
||||
(akwn->flags & KWF_MATCH_PREFIX) ? "*" : "");
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user