Using OPT_SET_META_CONTEXTS is stateful (it is documented to wipe out any previously-requested contexts, and we just tightened the spec to clarify that starting TLS also wipes it out). But OPT_LIST_META_CONTEXTS is not stateful; and in fact, with a SELECTIVETLS server, it can be handy to list the meta contexts available on an unencrypted export, then enable encryption, and then further list what contexts are available on encrypted exports (as the server is permitted to let them differ). Thus, while a wise client will renegotiate structured replies after the starttls, there's no reason to forbid a server from answering a client that uses list_meta_contexts prior to encryption without also requesting structured replies. --- doc/proto.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/doc/proto.md b/doc/proto.md index 9dd59da..1586d7d 100644 --- a/doc/proto.md +++ b/doc/proto.md @@ -1325,9 +1325,9 @@ of the newstyle negotiation. Return a list of `NBD_REP_META_CONTEXT` replies, one per context, followed by an `NBD_REP_ACK` or an error. - This option MUST NOT be requested unless structured replies have + This option SHOULD NOT be requested unless structured replies have been negotiated first. If a client attempts to do so, a server - SHOULD send `NBD_REP_ERR_INVALID`. + MAY send `NBD_REP_ERR_INVALID`. Data: - 32 bits, length of export name. -- 2.31.1 _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://listman.redhat.com/mailman/listinfo/libguestfs