nbd/server: Add va_list form of nbd_negotiate_send_rep_err()
This will be useful for the next patch. Based on a patch by Vladimir Sementsov-Ogievskiy Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-Id: <20180110230825.18321-5-eblake@redhat.com>
This commit is contained in:
parent
32f158a635
commit
41f5dfafbb
24
nbd/server.c
24
nbd/server.c
@ -186,18 +186,15 @@ static int nbd_negotiate_send_rep(NBDClient *client, uint32_t type,
|
|||||||
|
|
||||||
/* Send an error reply.
|
/* Send an error reply.
|
||||||
* Return -errno on error, 0 on success. */
|
* Return -errno on error, 0 on success. */
|
||||||
static int GCC_FMT_ATTR(4, 5)
|
static int GCC_FMT_ATTR(4, 0)
|
||||||
nbd_negotiate_send_rep_err(NBDClient *client, uint32_t type,
|
nbd_negotiate_send_rep_verr(NBDClient *client, uint32_t type,
|
||||||
Error **errp, const char *fmt, ...)
|
Error **errp, const char *fmt, va_list va)
|
||||||
{
|
{
|
||||||
va_list va;
|
|
||||||
char *msg;
|
char *msg;
|
||||||
int ret;
|
int ret;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
va_start(va, fmt);
|
|
||||||
msg = g_strdup_vprintf(fmt, va);
|
msg = g_strdup_vprintf(fmt, va);
|
||||||
va_end(va);
|
|
||||||
len = strlen(msg);
|
len = strlen(msg);
|
||||||
assert(len < 4096);
|
assert(len < 4096);
|
||||||
trace_nbd_negotiate_send_rep_err(msg);
|
trace_nbd_negotiate_send_rep_err(msg);
|
||||||
@ -217,6 +214,21 @@ out:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Send an error reply.
|
||||||
|
* Return -errno on error, 0 on success. */
|
||||||
|
static int GCC_FMT_ATTR(4, 5)
|
||||||
|
nbd_negotiate_send_rep_err(NBDClient *client, uint32_t type,
|
||||||
|
Error **errp, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list va;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
va_start(va, fmt);
|
||||||
|
ret = nbd_negotiate_send_rep_verr(client, type, errp, fmt, va);
|
||||||
|
va_end(va);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/* Send a single NBD_REP_SERVER reply to NBD_OPT_LIST, including payload.
|
/* Send a single NBD_REP_SERVER reply to NBD_OPT_LIST, including payload.
|
||||||
* Return -errno on error, 0 on success. */
|
* Return -errno on error, 0 on success. */
|
||||||
static int nbd_negotiate_send_rep_list(NBDClient *client, NBDExport *exp,
|
static int nbd_negotiate_send_rep_list(NBDClient *client, NBDExport *exp,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user