Cool! CHKInsertSender: One day I should rewrite this :)
FNPPacketMangler: Should be isConnected in all cases. FNPPacketMangler deals with raw packets. Don't filter at this level; your changes will prevent authenticated but incompatible nodes from exchanging packets. IPDetectorPluginManager: Keep this at isConnected. We're just checking here whether we have sufficient confidence in our IP to not want to run a STUN detection. KeyTracker: Definitely should use isConnected. Use isReallyConnected when exchanging requests, routed pings/routed messages, swap messages, and so on. Otherwise use isConnected. In order to send *any* message, you need to allocate a packet number. LocationManager: Good. We don't swap with out of date nodes. NodeDispatcher: Good. You allow link pings, link pongs, void's, N2NTMs and IP detections, then dump the rest unless we are compatible. PacketSender: It's ALREADY incompatible. That's what shouldDisconnectNow means. Maybe we can remove the check altogether? Hmmm, having reviewed PeerNode, I see what you're doing. Okay cool. PeerManager: Probably sensible. The connections list is mostly used by routing. PeerNode: Not sure I understand isConnected(). completedHandshake is never set to false; it simply means we have completed a handshake *at some point*. IMHO the right way forward is to have an isReallyConnected and then either check the version in isConnected() every time, or have a separate isCompatible flag, with isConnected() == isReallyConnected && isCompatible. -- Matthew J Toseland - toad at amphibian.dyndns.org Freenet Project Official Codemonkey - http://freenetproject.org/ ICTHUS - Nothing is impossible. Our Boss says so. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: Digital signature URL: <https://emu.freenetproject.org/pipermail/devl/attachments/20060710/946c58f8/attachment.pgp>
