Quoting fupan...@windriver.com (fupan...@windriver.com): > From: fli <fupan...@windriver.com> > > The commit: e5848d395cb <netdev_move_by_index: support wlan> only > made netdev_move_by_name support wlan, instead of netdev_move_by_index. > > Given netdev_move_by_name is a wrapper of netdev_move_by_index, so here > replacing all of the call to lxc_netdev_move_by_index with > lxc_netdev_move_by_name > to let lxc-start support wlan phys. > > Signed-off-by: fupan li <fupan...@windriver.com>
Acked-by: Serge E. Hallyn <serge.hal...@ubuntu.com> We might want to mark move_by_index static and put in a comment saying this is now only meant to be used by move_by_name. Maybe even rename lxc_netdev_move_by_index to just do_move_by_index(), then make a new lxc_netdev_move_by_index() function which does the if_indextoname() which the callers are now doing themselves. > --- > src/lxc/conf.c | 20 ++++++++++++++++---- > 1 file changed, 16 insertions(+), 4 deletions(-) > > diff --git a/src/lxc/conf.c b/src/lxc/conf.c > index 142444e..2ebf876 100644 > --- a/src/lxc/conf.c > +++ b/src/lxc/conf.c > @@ -2623,6 +2623,7 @@ void restore_phys_nics_to_netns(int netnsfd, struct > lxc_conf *conf) > { > int i, ret, oldfd; > char path[MAXPATHLEN]; > + char ifname[IFNAMSIZ]; > > if (netnsfd < 0) > return; > @@ -2643,9 +2644,13 @@ void restore_phys_nics_to_netns(int netnsfd, struct > lxc_conf *conf) > } > for (i=0; i<conf->num_savednics; i++) { > struct saved_nic *s = &conf->saved_nics[i]; > - if (lxc_netdev_move_by_index(s->ifindex, 1, NULL)) > - WARN("Error moving nic index:%d back to host netns", > - s->ifindex); > + /* retrieve the name of the interface */ > + if (!if_indextoname(s->ifindex, ifname)) { > + WARN("no interface corresponding to index '%d'", > s->ifindex); > + continue; > + } > + if (lxc_netdev_move_by_name(ifname, 1, NULL)) > + WARN("Error moving nic name:%s back to host netns", > ifname); > } > if (setns(oldfd, 0) != 0) > SYSERROR("Failed to re-enter monitor's netns"); > @@ -3225,6 +3230,7 @@ int lxc_assign_network(struct lxc_list *network, pid_t > pid) > { > struct lxc_list *iterator; > struct lxc_netdev *netdev; > + char ifname[IFNAMSIZ]; > int am_root = (getuid() == 0); > int err; > > @@ -3245,7 +3251,13 @@ int lxc_assign_network(struct lxc_list *network, pid_t > pid) > if (!netdev->ifindex) > continue; > > - err = lxc_netdev_move_by_index(netdev->ifindex, pid, NULL); > + /* retrieve the name of the interface */ > + if (!if_indextoname(netdev->ifindex, ifname)) { > + ERROR("no interface corresponding to index '%d'", > netdev->ifindex); > + return -1; > + } > + > + err = lxc_netdev_move_by_name(ifname, pid, NULL); > if (err) { > ERROR("failed to move '%s' to the container : %s", > netdev->link, strerror(-err)); > -- > 1.9.1 > > _______________________________________________ > lxc-devel mailing list > lxc-devel@lists.linuxcontainers.org > http://lists.linuxcontainers.org/listinfo/lxc-devel _______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel