X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fsyscall_netadd-netv2.hc;h=60d3b7ee1cdcbc2a9af678e05c8461bd112231bd;hb=f5d5a2f7636afdb9eb9ae7d5a80b2aaf84d9b7af;hp=d9489bf85cb737d0676c2200a2f3e210fb9dd0ad;hpb=a6be71d3e49f0f633705ba5e4e08cc1cac811344;p=util-vserver.git diff --git a/lib/syscall_netadd-netv2.hc b/lib/syscall_netadd-netv2.hc index d9489bf..60d3b7e 100644 --- a/lib/syscall_netadd-netv2.hc +++ b/lib/syscall_netadd-netv2.hc @@ -27,10 +27,15 @@ vc_net_add_netv2(nid_t nid, struct vc_net_addr const *info) case VC_NXA_TYPE_IPV4: { struct vcmd_net_addr_ipv4_v1 k_info; - k_info.type = info->vna_type & ~VC_NXA_TYPE_IPV4; - k_info.flags = info->vna_flags; - k_info.ip.s_addr = info->vna_v4_ip.s_addr; - k_info.mask.s_addr = info->vna_v4_mask.s_addr; + k_info.type = info->vna_type & ~VC_NXA_TYPE_IPV4; + k_info.flags = info->vna_flags; + k_info.ip.s_addr = info->vna_v4_ip.s_addr; + k_info.mask.s_addr = info->vna_v4_mask.s_addr; + + if (k_info.ip.s_addr == 0) { + k_info.type = VC_NXA_TYPE_MASK; + k_info.mask.s_addr = 0; + } return vserver(VCMD_net_add_ipv4, NID_USER2KERNEL(nid), &k_info); }