public MessagingSocket(IDatagramEventSocket sock, bool ownSocket, SymmetricKey key, IFormatter formatter, object nullObject, IntervalInterrupter interrupter, IRTOAlgorithm rtoAlgo, int maxRetry, int retryBufferSize, int inquiryDupCheckSize) : base(sock, ownSocket, interrupter, rtoAlgo, maxRetry, retryBufferSize, inquiryDupCheckSize) { _key = (key != null ? key : SymmetricKey.NoneKey); _formatter = formatter; _nullObject = nullObject != null ? nullObject : NullObject.Instance; sock.Received += Socket_Received; _maxMsgSize = sock.MaxDatagramSize; if (_key.AlgorithmType != SymmetricAlgorithmType.None && key.IV != null) { _maxMsgSize -= _maxMsgSize % key.IV.Length; if (key.Padding != System.Security.Cryptography.PaddingMode.None) _maxMsgSize --; if (key.EnableIVShuffle) _maxMsgSize -= key.IV.Length; } _maxMsgSize -= MAX_HEADER_SIZE; }
public Node(Interrupters ints, IDatagramEventSocket bindedDgramSock, ITcpListener tcpListener, string db_path, ushort bindUdpPort, ushort bindTcpPort) { _udpPort = bindUdpPort; _tcpPort = bindTcpPort; _ints = ints; _dgramSock = bindedDgramSock; _tcpListener = tcpListener; _rtoAlgo = new RFC2988BasedRTOCalculator (TimeSpan.FromSeconds (1), TimeSpan.FromMilliseconds (100), 50, false); _messagingSock = new MessagingSocket (_dgramSock, true, SymmetricKey.NoneKey, p2pncs.Serializer.Instance, null, ints.MessagingInt, _rtoAlgo, DefaultMessagingRetry, DefaultMessagingRetryBufferSize, DefaultMessagingDuplicationCheckBufferSize); _kbrPrivateKey = ECKeyPair.Create (DefaultAlgorithm.ECDomainName); _kbr = new SimpleIterativeRouter2 (Key.Create (_kbrPrivateKey), bindTcpPort, _messagingSock, new SimpleRoutingAlgorithm (), p2pncs.Serializer.Instance, true); _portChecker = new PortOpenChecker (_kbr); _localHT = new OnMemoryLocalHashTable (_kbr, ints.DHTInt); IMassKeyDelivererLocalStore mkdLocalStore = _localHT as IMassKeyDelivererLocalStore; _dht = new SimpleDHT (_kbr, _messagingSock, _localHT); _anonymous = new AnonymousRouter (_dht, _kbrPrivateKey, ints.AnonymousInt); ints.KBRStabilizeInt.AddInterruption (Stabilize); _mkd = new MassKeyDeliverer (_dht, mkdLocalStore, ints.MassKeyDeliverTimerInt); _mmlc = new MMLC (_anonymous, _dht, mkdLocalStore, db_path, ints.StreamSocketTimeoutInt, ints.DFSRePutTimerInt); _crawler = new FileInfoCrawler (_tcpListener, _mmlc, _ints.CrawlingTimer); _statistics = new Statistics ((AnonymousRouter)_anonymous, _mmlc, _tcpListener); }
public IMessagingSocket CreateMessagingSocket(IDatagramEventSocket sock, IRTOAlgorithm rtoAlgo, int retries, int retryBufferSize, int dupCheckSize) { VirtualDatagramEventSocket vsock = sock as VirtualDatagramEventSocket; if (_opt.BypassMessagingSerializer && vsock != null) return new VirtualMessagingSocket (vsock, true, _msgInt2, rtoAlgo, retries, retryBufferSize, dupCheckSize); else return new MessagingSocket (sock, true, SymmetricKey.NoneKey, Serializer.Instance, null, _msgInt2, rtoAlgo, retries, retryBufferSize, dupCheckSize); }
public VirtualMessagingSocket(VirtualDatagramEventSocket baseSock, bool ownSocket, IntervalInterrupter interrupter, IRTOAlgorithm rtoAlgo, int maxRetry, int retryBufferSize, int inquiryDupCheckSize) : base(baseSock, ownSocket, interrupter, rtoAlgo, maxRetry, retryBufferSize, inquiryDupCheckSize) { baseSock.VirtualNetwork.AddVirtualMessagingSocketToVirtualNode (baseSock, this); }