+ switch(subnet->type)
+ {
+ case SUBNET_MAC:
+ asprintf(&netstr, "%d,%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", subnet->type,
+ subnet->net.mac.address.x[0],
+ subnet->net.mac.address.x[1],
+ subnet->net.mac.address.x[2],
+ subnet->net.mac.address.x[3],
+ subnet->net.mac.address.x[4],
+ subnet->net.mac.address.x[5]);
+ break;
+ case SUBNET_IPV4:
+ asprintf(&netstr, "%d,%lx/%lx", subnet->type, subnet->net.ipv4.address, subnet->net.ipv4.mask);
+ break;
+ case SUBNET_IPV6:
+ asprintf(&netstr, "%d,%hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx/%hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx", subnet->type,
+ subnet->net.ipv6.address.x[0],
+ subnet->net.ipv6.address.x[1],
+ subnet->net.ipv6.address.x[2],
+ subnet->net.ipv6.address.x[3],
+ subnet->net.ipv6.address.x[4],
+ subnet->net.ipv6.address.x[5],
+ subnet->net.ipv6.address.x[6],
+ subnet->net.ipv6.address.x[7],
+ subnet->net.ipv6.mask.x[0],
+ subnet->net.ipv6.mask.x[1],
+ subnet->net.ipv6.mask.x[2],
+ subnet->net.ipv6.mask.x[3],
+ subnet->net.ipv6.mask.x[4],
+ subnet->net.ipv6.mask.x[5],
+ subnet->net.ipv6.mask.x[6],
+ subnet->net.ipv6.mask.x[7]);
+ break;
+ default:
+ asprintf(&netstr, _("unknown subnet type"));
+ }