Le 05/06/2018 à 18:52, Stephen Hemminger a écrit : > On Tue, 5 Jun 2018 15:08:30 +0200 > Nicolas Dichtel <nicolas.dich...@6wind.com> wrote: > >> >> +char *get_name_from_nsid(int nsid) >> +{ >> + struct nsid_cache *c; >> + >> + netns_nsid_socket_init(); >> + netns_map_init(); >> + >> + c = netns_map_get_by_nsid(nsid); >> + if (c) >> + return c->name; >> + >> + return NULL; >> +} >> + > > This is better, but now there is a different problem. > When doing multiple interfaces, won't the initialization code be called twice? > No, the init function is propected:
void netns_nsid_socket_init(void) { if (rtnsh.fd > -1 || !ipnetns_have_nsid()) return; ... void netns_map_init(void) { ... if (initialized || !ipnetns_have_nsid()) return; ...