From 77fd78d5c9eb0dbab96a16ac5441f33a1abaa764 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Fri, 12 Jul 2013 10:13:24 -0400 Subject: Little cleanup and docs. --- node/PacketDecoder.hpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'node/PacketDecoder.hpp') diff --git a/node/PacketDecoder.hpp b/node/PacketDecoder.hpp index 5da8f9c0..e595d326 100644 --- a/node/PacketDecoder.hpp +++ b/node/PacketDecoder.hpp @@ -50,6 +50,14 @@ class PacketDecoder : public Packet friend class SharedPtr; public: + /** + * Create a new packet-in-decode + * + * @param b Source buffer with raw packet data + * @param localPort Local port on which packet was received + * @param remoteAddress Address from which packet came + * @throws std::out_of_range Range error processing packet + */ template PacketDecoder(const Buffer &b,Demarc::Port localPort,const InetAddress &remoteAddress) throw(std::out_of_range) : @@ -65,8 +73,15 @@ public: /** * Attempt to decode this packet * + * Note that this returns 'true' if processing is complete. This says nothing + * about whether the packet was valid. A rejection is 'complete.' + * + * Once true is returned, this should not be called again. + * * @param _r Runtime environment - * @return True if decoding and processing is complete, false on failure (try again) + * @return True if decoding and processing is complete, false if caller should try again + * @throws std::out_of_range Range error processing packet (should be discarded) + * @throws std::runtime_error Other error processing packet (should be discarded) */ bool tryDecode(const RuntimeEnvironment *_r) throw(std::out_of_range,std::runtime_error); @@ -97,6 +112,8 @@ private: const SharedPtr &p, Topology::PeerVerifyResult result); + // These are called internally to handle packet contents once it has + // been authenticated, decrypted, decompressed, and classified. bool _doERROR(const RuntimeEnvironment *_r,const SharedPtr &peer); bool _doHELLO(const RuntimeEnvironment *_r); bool _doOK(const RuntimeEnvironment *_r,const SharedPtr &peer); -- cgit v1.2.3