Wouter, > On 14 Apr 2017, at 14:53, Wouter Verhelst <w...@uter.be> 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...@uter.be> >> --- >> 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 ------------------------------------------------------------------------------ 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