[Libguestfs] [libnbd PATCH] API: Add nbd_set_opt_mode to expose NEGOTIATING state
Eric Blake
eblake at redhat.com
Tue Aug 11 19:04:23 UTC 2020
On 8/11/20 12:38 PM, Eric Blake wrote:
>>> @@ -136,6 +155,11 @@ STATE_MACHINE {
>>> return 0;
>>> }
>>>
>>> + if ((h->gflags & LIBNBD_HANDSHAKE_FLAG_FIXED_NEWSTYLE) == 0)
>>> + h->protocol = "newstyle";
>>> + else
>>> + h->protocol = "newstyle-fixed";
>>> +
>>> cflags = h->gflags;
>>> h->sbuf.cflags = htobe32 (cflags);
>>> h->wbuf = &h->sbuf;
>>
>> This makes me think maybe we should just derive this string from the
>> gflags when the caller calls get_protocol.
>
> Doable. Probably even something we could separate out, to keep the meat
> of this patch more focused.
I spoke too soon, originally hoping to get rid of h->protocol
altogether. But we still set h->protocol = "oldstyle" in a different
file, and have nothing else in h that lets us tell oldstyle apart from
newstyle (only newstyle-fixed is easy to detect in h->gflags). Rather,
this hunk was code motion, to make nbd_get_protocol work in Negotiating
state (we were previously setting it in NEWSTYLE.FINISH, which is too
late). But again, that sort of change can be separated out to make it
easier to see (adding the Negotiating state done in a different patch
than allowing existing commands to be callable in Negotiating state).
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
More information about the Libguestfs
mailing list