[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Nbd] [PATCH] Swap options and option name



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: