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:
Eric Blake 2018-01-10 17:08:23 -06:00
parent 32f158a635
commit 41f5dfafbb

View File

@ -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,