Пример #1
0
int ipq_set_mark(const struct ipq_handle *h,ipq_id_t id,unsigned long mark_value)
{
	struct {
		struct nlmsghdr nlh;
		ipq_peer_msg_t pm;
	} req;  
	memset(&req, 0, sizeof(req));
	req.nlh.nlmsg_len = NLMSG_LENGTH(sizeof(req));
	req.nlh.nlmsg_flags = NLM_F_REQUEST;
	req.nlh.nlmsg_type = IPQM_MARK;
	req.nlh.nlmsg_pid = h->local.nl_pid;
	req.pm.msg.mark.id = id;
	req.pm.msg.mark.mark_value = mark_value;
	return ipq_netlink_sendto(h, (void *)&req, req.nlh.nlmsg_len);
}
Пример #2
0
int ipq_set_mode(const struct ipq_handle *h,
                 uint8_t mode, size_t range)
{
	struct {
		struct nlmsghdr nlh;
		ipq_peer_msg_t pm;
	} req;

	memset(&req, 0, sizeof(req));
	req.nlh.nlmsg_len = NLMSG_LENGTH(sizeof(req));
	req.nlh.nlmsg_flags = NLM_F_REQUEST;
	req.nlh.nlmsg_type = IPQM_MODE;
	req.nlh.nlmsg_pid = h->local.nl_pid;
	req.pm.msg.mode.value = mode;
	req.pm.msg.mode.range = range;
	return ipq_netlink_sendto(h, (void *)&req, req.nlh.nlmsg_len);
}