]> git.proxmox.com Git - mirror_lxc.git/commitdiff
network: user send()/recv()
authorChristian Brauner <christian.brauner@ubuntu.com>
Sun, 3 Sep 2017 14:51:54 +0000 (16:51 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Sun, 3 Sep 2017 15:55:28 +0000 (17:55 +0200)
Also move all functions to network.{c,h}.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/conf.c
src/lxc/network.c
src/lxc/network.h
src/lxc/start.c

index 0bcbce38a74fe07bce4b15e1f4f5d752a70b8ec2..5d4fb816e8be89efc49478884092ed3dfcdb8267 100644 (file)
@@ -3106,43 +3106,6 @@ static int lxc_send_ttys_to_parent(struct lxc_handler *handler)
        return ret;
 }
 
-static int lxc_network_send_name_and_ifindex_to_parent(struct lxc_handler *handler)
-{
-       struct lxc_list *iterator, *network;
-       int data_sock = handler->data_sock[0];
-
-       if (!handler->am_root)
-               return 0;
-
-       network = &handler->conf->network;
-       lxc_list_for_each(iterator, network) {
-               int ret;
-               struct lxc_netdev *netdev = iterator->elem;
-
-               /* Send network device name in the child's namespace to parent. */
-               ret = lxc_abstract_unix_send_credential(data_sock, netdev->name,
-                                                       IFNAMSIZ);
-               if (ret < 0)
-                       goto on_error;
-
-               /* Send network device ifindex in the child's namespace to
-                * parent.
-                */
-               ret = lxc_abstract_unix_send_credential(data_sock, &netdev->ifindex,
-                                                       sizeof(netdev->ifindex));
-               if (ret < 0)
-                       goto on_error;
-       }
-
-       TRACE("Sent network device names and ifindeces to parent");
-       return 0;
-
-on_error:
-       close(handler->data_sock[0]);
-       close(handler->data_sock[1]);
-       return -1;
-}
-
 int lxc_setup(struct lxc_handler *handler)
 {
        const char *name = handler->name;
index fcdcb08cc77b16f296316bb797e4e69c4d445254..8ea1d227fa6705382f6ebc58d88179f2b8953426 100644 (file)
@@ -3009,8 +3009,7 @@ int lxc_network_send_veth_names_to_child(struct lxc_handler *handler)
                if (netdev->type != LXC_NET_VETH)
                        continue;
 
-               ret = lxc_abstract_unix_send_credential(data_sock, netdev->name,
-                                                       IFNAMSIZ);
+               ret = send(data_sock, netdev->name, IFNAMSIZ, 0);
                if (ret < 0) {
                        close(handler->data_sock[0]);
                        close(handler->data_sock[1]);
@@ -3040,8 +3039,7 @@ int lxc_network_recv_veth_names_from_parent(struct lxc_handler *handler)
                if (netdev->type != LXC_NET_VETH)
                        continue;
 
-               ret = lxc_abstract_unix_rcv_credential(data_sock, netdev->name,
-                                                      IFNAMSIZ);
+               ret = recv(data_sock, netdev->name, IFNAMSIZ, 0);
                if (ret < 0) {
                        close(handler->data_sock[0]);
                        close(handler->data_sock[1]);
@@ -3054,3 +3052,74 @@ int lxc_network_recv_veth_names_from_parent(struct lxc_handler *handler)
 
        return 0;
 }
+
+int lxc_network_send_name_and_ifindex_to_parent(struct lxc_handler *handler)
+{
+       struct lxc_list *iterator, *network;
+       int data_sock = handler->data_sock[0];
+
+       if (!handler->am_root)
+               return 0;
+
+       network = &handler->conf->network;
+       lxc_list_for_each(iterator, network) {
+               int ret;
+               struct lxc_netdev *netdev = iterator->elem;
+
+               /* Send network device name in the child's namespace to parent. */
+               ret = send(data_sock, netdev->name, IFNAMSIZ, 0);
+               if (ret < 0)
+                       goto on_error;
+
+               /* Send network device ifindex in the child's namespace to
+                * parent.
+                */
+               ret = send(data_sock, &netdev->ifindex, sizeof(netdev->ifindex), 0);
+               if (ret < 0)
+                       goto on_error;
+       }
+
+       TRACE("Sent network device names and ifindeces to parent");
+       return 0;
+
+on_error:
+       close(handler->data_sock[0]);
+       close(handler->data_sock[1]);
+       return -1;
+}
+
+int lxc_network_recv_name_and_ifindex_from_child(struct lxc_handler *handler)
+{
+       struct lxc_list *iterator, *network;
+       int data_sock = handler->data_sock[1];
+
+       if (!handler->am_root)
+               return 0;
+
+       network = &handler->conf->network;
+       lxc_list_for_each(iterator, network) {
+               int ret;
+               struct lxc_netdev *netdev = iterator->elem;
+
+               /* Receive network device name in the child's namespace to
+                * parent.
+                */
+               ret = recv(data_sock, netdev->name, IFNAMSIZ, 0);
+               if (ret < 0)
+                       goto on_error;
+
+               /* Receive network device ifindex in the child's namespace to
+                * parent.
+                */
+               ret = recv(data_sock, &netdev->ifindex, sizeof(netdev->ifindex), 0);
+               if (ret < 0)
+                       goto on_error;
+       }
+
+       return 0;
+
+on_error:
+       close(handler->data_sock[0]);
+       close(handler->data_sock[1]);
+       return -1;
+}
index 14eff59faace54af43c37504da12ed566cc9b614..fe127734fba27e4e9b0aedd14aab8fb705146ba7 100644 (file)
@@ -277,5 +277,7 @@ extern int lxc_setup_network_in_child_namespaces(const struct lxc_conf *conf,
                                                 struct lxc_list *network);
 extern int lxc_network_send_veth_names_to_child(struct lxc_handler *handler);
 extern int lxc_network_recv_veth_names_from_parent(struct lxc_handler *handler);
+extern int lxc_network_send_name_and_ifindex_to_parent(struct lxc_handler *handler);
+extern int lxc_network_recv_name_and_ifindex_from_child(struct lxc_handler *handler);
 
 #endif /* __LXC_NETWORK_H */
index ca68295e49578db6b829375a1dbb50d33e50bd3e..e31a618752c305802026c73df9bd8ac5add064ab 100644 (file)
@@ -1057,43 +1057,6 @@ out_error:
        return -1;
 }
 
-static int lxc_network_recv_name_and_ifindex_from_child(struct lxc_handler *handler)
-{
-       struct lxc_list *iterator, *network;
-       int data_sock = handler->data_sock[1];
-
-       if (!handler->am_root)
-               return 0;
-
-       network = &handler->conf->network;
-       lxc_list_for_each(iterator, network) {
-               int ret;
-               struct lxc_netdev *netdev = iterator->elem;
-
-               /* Receive network device name in the child's namespace to
-                * parent.
-                */
-               ret = lxc_abstract_unix_rcv_credential(data_sock, netdev->name, IFNAMSIZ);
-               if (ret < 0)
-                       goto on_error;
-
-               /* Receive network device ifindex in the child's namespace to
-                * parent.
-                */
-               ret = lxc_abstract_unix_rcv_credential(data_sock, &netdev->ifindex,
-                                                      sizeof(netdev->ifindex));
-               if (ret < 0)
-                       goto on_error;
-       }
-
-       return 0;
-
-on_error:
-       close(handler->data_sock[0]);
-       close(handler->data_sock[1]);
-       return -1;
-}
-
 static int lxc_recv_ttys_from_child(struct lxc_handler *handler)
 {
        int i;