diff options
Diffstat (limited to 'src/rule.c')
-rw-r--r-- | src/rule.c | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -1158,6 +1158,19 @@ void obj_add_hash(struct obj *obj, struct table *table) list_add_tail(&obj->list, &table->objs); } +struct obj *obj_lookup(const struct table *table, const char *name, + uint32_t type) +{ + struct obj *obj; + + list_for_each_entry(obj, &table->objs, list) { + if (!strcmp(obj->handle.obj, name) && + obj->type == type) + return obj; + } + return NULL; +} + static void obj_print_data(const struct obj *obj, struct print_fmt_options *opts) { @@ -1229,6 +1242,18 @@ void obj_print(const struct obj *obj) obj_print_declaration(obj, &opts); } +void obj_print_plain(const struct obj *obj) +{ + struct print_fmt_options opts = { + .tab = "", + .nl = " ", + .table = obj->handle.table, + .family = family2str(obj->handle.family), + }; + + obj_print_declaration(obj, &opts); +} + static int do_list_obj(struct netlink_ctx *ctx, struct cmd *cmd, uint32_t type) { struct print_fmt_options opts = { |