summaryrefslogtreecommitdiffstats
path: root/src/rule.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/rule.c')
-rw-r--r--src/rule.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/rule.c b/src/rule.c
index b97213e9..b6dc755e 100644
--- a/src/rule.c
+++ b/src/rule.c
@@ -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 = {