diff options
author | Thomas Graf <tgr@plip.localdomain> | 2008-10-15 13:01:46 +0200 |
---|---|---|
committer | Thomas Graf <tgr@plip.localdomain> | 2008-10-15 13:01:46 +0200 |
commit | f42f195a80ffb7a5dcc355a56b8fe229692718e5 (patch) | |
tree | 0db5805fa800323d190f9001cbe8ed0f56ae19d5 /lib/route | |
parent | 5d92f9c03d85cefee5afe7f40d7ea69dfde4cf77 (diff) | |
download | android_external_libnl-f42f195a80ffb7a5dcc355a56b8fe229692718e5.tar.gz android_external_libnl-f42f195a80ffb7a5dcc355a56b8fe229692718e5.tar.bz2 android_external_libnl-f42f195a80ffb7a5dcc355a56b8fe229692718e5.zip |
Error handling for rtnl_cls_set_kind() & addition of rtnl_cls_get_ops()
Diffstat (limited to 'lib/route')
-rw-r--r-- | lib/route/cls_obj.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/route/cls_obj.c b/lib/route/cls_obj.c index 6c92572..217b6d0 100644 --- a/lib/route/cls_obj.c +++ b/lib/route/cls_obj.c @@ -143,10 +143,20 @@ void rtnl_cls_set_parent(struct rtnl_cls *f, uint32_t parent) tca_set_parent((struct rtnl_tca *) f, parent); } -void rtnl_cls_set_kind(struct rtnl_cls *f, const char *kind) +int rtnl_cls_set_kind(struct rtnl_cls *f, const char *kind) { tca_set_kind((struct rtnl_tca *) f, kind); + f->c_ops = __rtnl_cls_lookup_ops(kind); + if (f->c_ops == NULL) + return -NLE_OBJ_NOTFOUND; + + return 0; +} + +struct rtnl_cls_ops *rtnl_cls_get_ops(struct rtnl_cls *cls) +{ + return cls->c_ops; } void rtnl_cls_set_prio(struct rtnl_cls *cls, uint16_t prio) |