The helper splits out the clearing of the FDs transacted inside a
virNetMessage.
APIs transacting FDs both from and to the client at the same time will
need to clear the FDs stored in virNetMessage as the structure is
re-used for the reply and without clearing the list of FDs we'd return
the FDs sent by the client in addition to the new FDs sent by the API.t
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
# rpc/virnetmessage.h
virNetMessageAddFD;
virNetMessageClear;
+virNetMessageClearFDs;
virNetMessageClearPayload;
virNetMessageDecodeHeader;
virNetMessageDecodeLength;
void
-virNetMessageClearPayload(virNetMessage *msg)
+virNetMessageClearFDs(virNetMessage *msg)
{
size_t i;
msg->donefds = 0;
msg->nfds = 0;
VIR_FREE(msg->fds);
+}
+
+
+void
+virNetMessageClearPayload(virNetMessage *msg)
+{
+ virNetMessageClearFDs(msg);
msg->bufferOffset = 0;
msg->bufferLength = 0;
virNetMessage *virNetMessageNew(bool tracked);
+void virNetMessageClearFDs(virNetMessage *msg);
void virNetMessageClearPayload(virNetMessage *msg);
void virNetMessageClear(virNetMessage *);