mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 06:05:27 +00:00
Implement virStreamRecvFlags to some drivers
There are three virStreamDriver's currently supported: * virFDStream * remote driver * ESX driver For now, backend virStreamRecvFlags support for only remote driver and ESX driver is sufficient. Future patches will update virFDStream. Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
a35e2836b3
commit
65b9cd6797
@ -252,12 +252,17 @@ esxStreamSend(virStreamPtr stream, const char *data, size_t nbytes)
|
||||
}
|
||||
|
||||
static int
|
||||
esxStreamRecv(virStreamPtr stream, char *data, size_t nbytes)
|
||||
esxStreamRecvFlags(virStreamPtr stream,
|
||||
char *data,
|
||||
size_t nbytes,
|
||||
unsigned int flags)
|
||||
{
|
||||
int result = -1;
|
||||
esxStreamPrivate *priv = stream->privateData;
|
||||
int status;
|
||||
|
||||
virCheckFlags(0, -1);
|
||||
|
||||
if (nbytes == 0)
|
||||
return 0;
|
||||
|
||||
@ -317,6 +322,14 @@ esxStreamRecv(virStreamPtr stream, char *data, size_t nbytes)
|
||||
return result;
|
||||
}
|
||||
|
||||
static int
|
||||
esxStreamRecv(virStreamPtr stream,
|
||||
char *data,
|
||||
size_t nbytes)
|
||||
{
|
||||
return esxStreamRecvFlags(stream, data, nbytes, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
esxFreeStreamPrivate(esxStreamPrivate **priv)
|
||||
{
|
||||
@ -369,6 +382,7 @@ esxStreamAbort(virStreamPtr stream)
|
||||
virStreamDriver esxStreamDriver = {
|
||||
.streamSend = esxStreamSend,
|
||||
.streamRecv = esxStreamRecv,
|
||||
.streamRecvFlags = esxStreamRecvFlags,
|
||||
/* FIXME: streamAddCallback missing */
|
||||
/* FIXME: streamUpdateCallback missing */
|
||||
/* FIXME: streamRemoveCallback missing */
|
||||
|
@ -5641,15 +5641,19 @@ remoteStreamSend(virStreamPtr st,
|
||||
|
||||
|
||||
static int
|
||||
remoteStreamRecv(virStreamPtr st,
|
||||
remoteStreamRecvFlags(virStreamPtr st,
|
||||
char *data,
|
||||
size_t nbytes)
|
||||
size_t nbytes,
|
||||
unsigned int flags)
|
||||
{
|
||||
VIR_DEBUG("st=%p data=%p nbytes=%zu", st, data, nbytes);
|
||||
VIR_DEBUG("st=%p data=%p nbytes=%zu flags=%x",
|
||||
st, data, nbytes, flags);
|
||||
struct private_data *priv = st->conn->privateData;
|
||||
virNetClientStreamPtr privst = st->privateData;
|
||||
int rv;
|
||||
|
||||
virCheckFlags(0, -1);
|
||||
|
||||
if (virNetClientStreamRaiseError(privst))
|
||||
return -1;
|
||||
|
||||
@ -5671,6 +5675,14 @@ remoteStreamRecv(virStreamPtr st,
|
||||
return rv;
|
||||
}
|
||||
|
||||
static int
|
||||
remoteStreamRecv(virStreamPtr st,
|
||||
char *data,
|
||||
size_t nbytes)
|
||||
{
|
||||
return remoteStreamRecvFlags(st, data, nbytes, 0);
|
||||
}
|
||||
|
||||
struct remoteStreamCallbackData {
|
||||
virStreamPtr st;
|
||||
virStreamEventCallback cb;
|
||||
@ -5843,6 +5855,7 @@ remoteStreamAbort(virStreamPtr st)
|
||||
|
||||
static virStreamDriver remoteStreamDrv = {
|
||||
.streamRecv = remoteStreamRecv,
|
||||
.streamRecvFlags = remoteStreamRecvFlags,
|
||||
.streamSend = remoteStreamSend,
|
||||
.streamFinish = remoteStreamFinish,
|
||||
.streamAbort = remoteStreamAbort,
|
||||
|
Loading…
Reference in New Issue
Block a user