From: shemminger Date: Tue, 7 Jun 2005 22:15:48 +0000 (+0000) Subject: Device indices are unsigned and use if_nametoindex as fallback X-Git-Tag: v4.13.0~1934 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=99f830de2f6006ccfd324548633c396d15b395a0;p=mirror_iproute2.git Device indices are unsigned and use if_nametoindex as fallback --- diff --git a/ChangeLog b/ChangeLog index ec73a2d4..2cd6691a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-06-07 Stephen Hemminger + + * Fix 'ip link' map to handle case where device gets autoloaded + by using if_nametoindex as fallback + * Device indices are unsigned not int. + 2005-06-07 Masahide NAKAMURA * [ip] show timestamp when using '-t' option. diff --git a/include/ll_map.h b/include/ll_map.h index 3bff5e94..d085813f 100644 --- a/include/ll_map.h +++ b/include/ll_map.h @@ -4,10 +4,10 @@ extern int ll_remember_index(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg); extern int ll_init_map(struct rtnl_handle *rth); -extern int ll_name_to_index(const char *name); -extern const char *ll_index_to_name(int idx); -extern const char *ll_idx_n2a(int idx, char *buf); -extern int ll_index_to_type(int idx); -extern unsigned ll_index_to_flags(int idx); +extern unsigned ll_name_to_index(const char *name); +extern const char *ll_index_to_name(unsigned idx); +extern const char *ll_idx_n2a(unsigned idx, char *buf); +extern int ll_index_to_type(unsigned idx); +extern unsigned ll_index_to_flags(unsigned idx); #endif /* __LL_MAP_H__ */ diff --git a/lib/ll_map.c b/lib/ll_map.c index 89c0d20a..1acbf8f8 100644 --- a/lib/ll_map.c +++ b/lib/ll_map.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include "libnetlink.h" @@ -25,7 +26,7 @@ struct idxmap { struct idxmap * next; - int index; + unsigned index; int type; int alen; unsigned flags; @@ -86,7 +87,7 @@ int ll_remember_index(const struct sockaddr_nl *who, return 0; } -const char *ll_idx_n2a(int idx, char *buf) +const char *ll_idx_n2a(unsigned idx, char *buf) { struct idxmap *im; @@ -100,14 +101,14 @@ const char *ll_idx_n2a(int idx, char *buf) } -const char *ll_index_to_name(int idx) +const char *ll_index_to_name(unsigned idx) { static char nbuf[16]; return ll_idx_n2a(idx, nbuf); } -int ll_index_to_type(int idx) +int ll_index_to_type(unsigned idx) { struct idxmap *im; @@ -119,7 +120,7 @@ int ll_index_to_type(int idx) return -1; } -unsigned ll_index_to_flags(int idx) +unsigned ll_index_to_flags(unsigned idx) { struct idxmap *im; @@ -132,7 +133,7 @@ unsigned ll_index_to_flags(int idx) return 0; } -int ll_name_to_index(const char *name) +unsigned ll_name_to_index(const char *name) { static char ncache[16]; static int icache; @@ -152,7 +153,8 @@ int ll_name_to_index(const char *name) } } } - return 0; + + return if_nametoindex(name); } int ll_init_map(struct rtnl_handle *rth)