/* Description: Process a user generated STATICREMOVEDEF message and remove the default unlabeled connection entry. Returns zero on success, negative values on failure.  */
static int netlbl_unlabel_staticremovedef(struct sk_buff *skb, struct genl_info *info)
/* Description: Process a user generated STATICREMOVEDEF message and remove the default unlabeled connection entry. Returns zero on success, negative values on failure.  */
static int netlbl_unlabel_staticremovedef(struct sk_buff *skb, struct genl_info *info)
{
	int ret_val;
	void *addr;
	void *mask;
	u32 addr_len;
	struct netlbl_audit audit_info;
	if (!((!info->attrs[NLBL_UNLABEL_A_IPV4ADDR] ||
	       !info->attrs[NLBL_UNLABEL_A_IPV4MASK]) ^
	      (!info->attrs[NLBL_UNLABEL_A_IPV6ADDR] ||
	       !info->attrs[NLBL_UNLABEL_A_IPV6MASK])))
		return -EINVAL;
	netlbl_netlink_auditinfo(skb, &audit_info);
	ret_val = netlbl_unlabel_addrinfo_get(info, &addr, &mask, &addr_len);
	if (ret_val != 0)
		return ret_val;
	return netlbl_unlhsh_remove(&init_net,
				    NULL, addr, mask, addr_len,
				    &audit_info);
}