On Jul 10, 2007, at 9:23, Brad Fitzpatrick wrote:

REQUEST STRUCTURE:

  * Magic byte / version
  * Cmd byte
  * Key len byte  (if no key, 0)
  * Reserved byte (should be 0)

* 4 byte opaque id. (will be copied back in response; means nothing to server)

  * 4 byte body length (network order; not including 12 byte header)

  [ cmd-specific fixed-width fields ]

  * key, if key length above is non-zero.

  [ cmd-specific variable-width field ]

I found a problem when implementing this. Given the above structure, we always know the length of a key, but we can't know the location of a key unless we know how to process the given command.

I don't know that this is a huge problem, but it thwarted some of my generic lower-level packet handling code in my test server.

Perhaps we could resurrect the reserved byte and use it as a fixed- field word (or byte) count? I remember this coming up in the discussion, but I think we decided it was redundant as the command should know what its headers are.

        Any opinions?

--
Dustin Sallings


Reply via email to