internal void Execute() { if (TestRemoteDest != null && OutboundEstablishedPool.Count >= 2 && InboundEstablishedPool.Count >= 2 && TestRemoteDest.InboundEstablishedPool.Count >= 2) { try { SendNewData.Do(() => { var dest = TestRemoteDest.MyDestination; var origmessage = new DeliveryStatusMessage(I2NPHeader.GenerateMessageId()); var big = BufUtils.RandomInt(100) < 5; Destinations.Send(dest, true, new GarlicCloveDeliveryDestination( origmessage, dest.IdentHash), (big ? new GarlicCloveDeliveryDestination(BigMessage, dest.IdentHash) : new GarlicCloveDeliveryDestination(origmessage, dest.IdentHash))); }); } catch (Exception ex) { SendNewData.Reset(); DebugUtils.Log(ex); } } QueueStatusLog.Do(() => { DebugUtils.LogInformation(string.Format( "ClientTunnelProvider {4}: Established tunnels in: {0,2}, out: {1,2}. Pending in: {2,2}, out {3,2}", InboundEstablishedPool.Count, OutboundEstablishedPool.Count, InboundPending.Count, OutboundPending.Count, MyDestination.IdentHash.Id32Short)); }); Destinations.Run(); }