Re: [PATCHv3 2/2] Add support for multi-part netlink messages.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/10/2015 01:08 PM, Maxim Perevedentsev wrote:
> Such messages do not have NLMSG_ERROR or NLMSG_DONE type
> but they are valid responses. We test 'multi-partness'
> by looking for NLM_F_MULTI flag.
> ---
>  src/util/virnetlink.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/src/util/virnetlink.c b/src/util/virnetlink.c
> index 0052ef9..f02bb59 100644
> --- a/src/util/virnetlink.c
> +++ b/src/util/virnetlink.c
> @@ -386,7 +386,9 @@ virNetlinkGetErrorCode(struct nlmsghdr *resp, unsigned int recvbuflen)
>          break;
>
>      default:
> -        goto malformed_resp;
> +        /* We allow multipart messages. */
> +        if (!(resp->nlmsg_flags & NLM_F_MULTI))
> +            goto malformed_resp;

1) It's interesting that they don't seem to define what type the message
will be in these cases (it's not NLMSG_DONE or NLMSG_ERROR, and the only
other standard types are NLMSG_NOOP and NLMSG_OVERRUN.) So what *is* the
type in the case of a multipart message.

2) Doesn't the presence of the NLM_F_MULTI flag indicate that we need to
look for another packet, rather than just returning? It's been a long
time since I looked at the details of the netlink message handling, but
won't this "constipate" the socket?


--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]