Hello everyone, I have been a bit busy last week, and haven't committed much code. Here are the following refactor changes I have implemented and pushed to "refactor-1" branch-
1. Added a separate list for transport managers. So we basically have a list which will contain a manager for every mode. Presently it has two - opennet and darknet. 2. NodeCrypto functions in the following way- a. Transport managers are created in the node irrespective of whether opennet or darknet is running. b. NodeCrypto on creation for every mode accesses its respective transport manager to get a list of transports. c. It runs the method handleNewTransport to initialise a PacketMangler and handle each transport plugin. d. If the list of transports is empty, then it will function using the inherent UDPSocketHandler transport and run normally. d. When a plugin is loaded (on registering with TransportManager), the manager checks if the corresponding mode (opennet/darknet) exists and notifies the NodeCrypto by calling the handleNewTransport method. 3. UDPSocketHandler now extends PacketTransportPlugin, and I have made changes so that it looks like a plugin. I have built it and checked. It runs fine. It also registers in the transport manager. 4. Presently working on replacing the Session keys in the PeerNode object. There are three - current, previous and unverified. I am not yet well acquainted how these work. But the idea is to have a separate connection object PeerConnection that - a. Has a unique PeerNode b. Has a transport associated c. Has the corresponding Peer (detected Peer) object associated (different transports are on different ports, and we can keep it open to use different addresses itself) d. A list of session keys. It need not be three. The code can become more generic. So PeerNode has a list of PeerConnection objects, for every active transport. The PeerNode will decide the transport to use using these objects. The official coding period has started. So after a few more additions I will merge them to "Transports" branch and begin working on a new branch "PacketTransports". Also awaiting some code review, after nextgens becomes free. For the coming week- 1. Work and finish handleNewTransport 2. Finish the PeerConnection object 3. List the changes needed for multiple transport support in PeerNode (implementing PeerConnection list) 4. Figure out PeerNode code to use different transports Later on I will mainly work on NewPacketFormat which needs to be changed so that they are more generic for Packet Transports. Hope to have toad's and zidel's help then. ArneBab - Flog is coming too. Sorry :) Regards, Chetan Hosmani _______________________________________________ Devl mailing list Devl@freenetproject.org https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl