Re: [Nbd] [PATCH] Swap options and option name
- To: Wouter Verhelst <w@...112...>
- Cc: "nbd-general@lists.sourceforge.net" <nbd-general@lists.sourceforge.net>
- Subject: Re: [Nbd] [PATCH] Swap options and option name
- From: Alex Bligh <alex@...872...>
- Date: Sun, 16 Apr 2017 19:19:20 +0200
- Message-id: <DDBFCA23-9BC2-4CDD-97ED-49B66FC2E3E8@...872...>
- In-reply-to: <20170414125357.lwxmgmeug4ax33z3@...3...>
- References: <20170414124637.lloiojthqzpiilty@...3...> <20170414125357.lwxmgmeug4ax33z3@...3...>
Wouter,
> On 14 Apr 2017, at 14:53, Wouter Verhelst <w@...112...> wrote:
>
> For clarity, I'm sending this here rather than committing it immediately
> so that people can comment on it :-)
>
> I was going to have a first stab at implementing this for nbd-server,
> and started doing something like...
>
> uint16_t n_requests;
> uint16_t request;
>
> socket_read(client, &n_request, sizeof(n_requests));
> for(int i=0; i< n_requests; i++) {
> // ... we can't actually do a lookup now, because we don't have
> // the name yet
> }
>
> this seems a bit silly; it makes much more sense to send the name first,
> so that the above (reasonable, IMO) way of handling things can actually
> be implemented.
>
> Thoughts?
+1. This is exactly why we have the experimental stuff in a different
branch - so we can make change changes like this.
I've swapped this over in gonbdserver too in commit e5736db3
Alex
>
> On Fri, Apr 14, 2017 at 02:46:37PM +0200, Wouter Verhelst wrote:
>> When trying to reply to a client with certain information, it's useful
>> if we don't need to read the whole reply but can handle it by reading
>> one option, handling it, reading the next one, etc etc. This requires
>> that the server is told which export to deal with before getting the
>> option names, however.
>>
>> As specified, that isn't the case, so this would require the server to
>> read in the whole request before it can start processing it.
>>
>> Swap options around to make handling the INFO/GO messages easier to do.
>>
>> Signed-off-by: Wouter Verhelst <w@...112...>
>> ---
>> doc/proto.md | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/doc/proto.md b/doc/proto.md
>> index 92df086..8712626 100644
>> --- a/doc/proto.md
>> +++ b/doc/proto.md
>> @@ -919,11 +919,11 @@ of the newstyle negotiation.
>>
>> Data (both commands):
>>
>> - - 16 bits, number of information requests
>> - - 16 bits x n - list of `NBD_INFO` information requests
>> - 32 bits, length of name (unsigned); MUST be no larger than the
>> option data length - 6
>> - String: name of the export
>> + - 16 bits, number of information requests
>> + - 16 bits x n - list of `NBD_INFO` information requests
>>
>> The client MAY list one or more items of specific information it
>> is seeking in the list of information requests, or it MAY specify
>> --
>> 2.11.0
>>
>> ------------------------------------------------------------------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> _______________________________________________
>> Nbd-general mailing list
>> Nbd-general@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/nbd-general
>>
>
> --
> < ron> I mean, the main *practical* problem with C++, is there's like a dozen
> people in the world who think they really understand all of its rules,
> and pretty much all of them are just lying to themselves too.
> -- #debian-devel, OFTC, 2016-02-12
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Nbd-general mailing list
> Nbd-general@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nbd-general
>
--
Alex Bligh
Reply to: