+#if defined(VC_ENABLE_API_NET)
+static void
+make_nx(nid_t nid, uint32_t bcast, size_t nbaddrs, struct vc_ip_mask_pair *ips)
+{
+ size_t i;
+ struct vc_net_nx addr;
+
+ if (nid == VC_DYNAMIC_NID) {
+ nid = vc_net_create(VC_DYNAMIC_NID);
+ if (nid == (nid_t) -1) {
+ perror("chbind: vc_net_create()");
+ exit(wrapper_exit_code);
+ }
+ }
+ else {
+ if (vc_net_create(nid) == (nid_t) -1) {
+ if (errno == EEXIST) {
+ if (vc_net_migrate(nid) != 0) {
+ perror("chbind: vc_net_migrate()");
+ exit(wrapper_exit_code);
+ }
+ else
+ return;
+ }
+ else {
+ perror("chbind: vc_net_create()");
+ exit(wrapper_exit_code);
+ }
+ }
+ }
+
+ addr.type = vcNET_IPV4B;
+ addr.count = 1;
+ addr.ip[0] = bcast;
+ addr.mask[0] = 0;
+
+ if (vc_net_add(nid, &addr) != 1) {
+ perror("chbind: vc_net_add()");
+ exit(wrapper_exit_code);
+ }
+
+ for (i = 0; i < nbaddrs; i++) {
+ addr.type = vcNET_IPV4;
+ addr.count = 1;
+ addr.ip[0] = ips[i].ip;
+ addr.mask[0] = ips[i].mask;
+
+ if (vc_net_add(nid, &addr) != 1) {
+ perror("chbind: vc_net_add()");
+ exit(wrapper_exit_code);
+ }
+ }
+}
+#endif
+