iproute2: initialize the ll_map only once

Avoid initializing the LL map (which involves a costly RTNL dump)
multiple times. This can happen when running in batch mode.

Signed-off-by: Octavian Purdila <opurdila@ixiacom.com>
This commit is contained in:
Octavian Purdila 2010-12-10 16:59:50 +02:00 committed by Stephen Hemminger
parent 1e21ea71a7
commit 3056423728
1 changed files with 8 additions and 0 deletions

View File

@ -185,6 +185,11 @@ unsigned ll_name_to_index(const char *name)
int ll_init_map(struct rtnl_handle *rth) int ll_init_map(struct rtnl_handle *rth)
{ {
static int initialized;
if (initialized)
return 0;
if (rtnl_wilddump_request(rth, AF_UNSPEC, RTM_GETLINK) < 0) { if (rtnl_wilddump_request(rth, AF_UNSPEC, RTM_GETLINK) < 0) {
perror("Cannot send dump request"); perror("Cannot send dump request");
exit(1); exit(1);
@ -194,5 +199,8 @@ int ll_init_map(struct rtnl_handle *rth)
fprintf(stderr, "Dump terminated\n"); fprintf(stderr, "Dump terminated\n");
exit(1); exit(1);
} }
initialized = 1;
return 0; return 0;
} }