Пример #1
0
static int handle_pool6791_display(struct nlmsghdr *nl_hdr, union request_pool *request)
{
	struct nl_buffer *buffer;
	struct ipv4_prefix *offset;
	int error;

	buffer = nlbuffer_create(nl_socket, nl_hdr);
	if (!buffer)
		return respond_error(nl_hdr, -ENOMEM);

	offset = request->display.offset_set ? &request->display.offset : NULL;
	error = rfc6791_for_each(pool_to_usr, buffer, offset);
	error = (error >= 0) ? nlbuffer_close(buffer, error) : respond_error(nl_hdr, error);

	kfree(buffer);
	return error;
}
Пример #2
0
static int handle_pool6791_display(struct nlmsghdr *nl_hdr, union request_pool4 *request)
{
	struct nl_buffer *buffer;
	struct ipv4_prefix *prefix;
	int error;

	log_debug("Sending RFC6791 pool to userspace.");

	buffer = nlbuffer_create(nl_socket, nl_hdr);
	if (!buffer)
		return respond_error(nl_hdr, -ENOMEM);

	prefix = request->display.prefix_set ? &request->display.prefix : NULL;
	error = rfc6791_for_each(pool4_to_usr, buffer, prefix);
	error = (error >= 0) ? nlbuffer_close(buffer, error) : respond_error(nl_hdr, error);

	kfree(buffer);
	return error;
}