mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-25 01:02:24 +00:00
Separate Packet into two structures.
This is the first stage of massively tidying up this very confused data structure. In this commit, I replace the unified 'struct Packet' with two structures PktIn and PktOut, each of which contains only the fields of struct Packet that are actually used for packets going in that direction - most notably, PktIn doesn't implement BinarySink, and PktOut doesn't implement BinarySource. All uses of the old structure were statically determinable to be one or the other, so I've done that determination and changed all the types of variables and function signatures. Unlike PktIn, PktOut is not reference-counted, so there's a new ssh_pktout_free function. The most immediately pleasing thing about this change is that it lets me finally get rid of the tedious comment explaining how the 'length' field in struct Packet meant something different depending on direction. Now it's two fields of the same name in two different structures, I can comment the same thing much less verbosely! (I've also got rid of the comment claiming the type field was only used for incoming packets. That wasn't even true! It might have been once, because you can write an outgoing packet's type byte straight into its data buffer, but in fact in the current code pktout->type is nonetheless used in various other places, e.g. log_outgoing_packet.) In this commit I've only removed the fields from each structure that were _already_ unused. There are still quite a few we can get rid of by _making_ them unused.
This commit is contained in:
parent
61a972c332
commit
ce6c65aba1