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

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



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?

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



Reply to: