diff options
Diffstat (limited to 'nest')
-rw-r--r-- | nest/route.h | 1 | ||||
-rw-r--r-- | nest/rt-attr.c | 9 |
2 files changed, 10 insertions, 0 deletions
diff --git a/nest/route.h b/nest/route.h index d15ffae..523d390 100644 --- a/nest/route.h +++ b/nest/route.h @@ -324,6 +324,7 @@ typedef struct ea_list { #define EALF_CACHED 4 /* Attributes belonging to cached rta */ eattr *ea_find(ea_list *, unsigned ea); +int ea_get_int(ea_list *, unsigned ea, int def); void ea_dump(ea_list *); void ea_sort(ea_list *); /* Sort entries in all sub-lists */ unsigned ea_scan(ea_list *); /* How many bytes do we need for merged ea_list */ diff --git a/nest/rt-attr.c b/nest/rt-attr.c index d2e5ae9..53e85a6 100644 --- a/nest/rt-attr.c +++ b/nest/rt-attr.c @@ -70,6 +70,15 @@ ea_find(ea_list *e, unsigned id) return a; } +int +ea_get_int(ea_list *e, unsigned id, int def) +{ + eattr *a = ea_find(e, id); + if (!a) + return def; + return a->u.data; +} + static inline void ea_do_sort(ea_list *e) { |