public void Create_BadDevconDirectory_ExceptionThrown() { // Arrange // Create temporary directory (which obviously doesn't contain devcon.exe) string tempPath = Path.GetTempPath(); string tempDir = Path.Combine(tempPath, Guid.NewGuid().ToString()); try { Directory.CreateDirectory(tempDir); } catch (Exception e) { throw new Exception("Could not prepare test. Failed to create temporary directory.", e); } // Tell DevconHelper to search in the temp dir string originalDevConDir = DevconHelper.DevconDirectory; DevconHelper.DevconDirectory = tempDir; // Act try { Loopback.Create(); } finally { DevconHelper.DevconDirectory = originalDevConDir; } }
/*---------------LOOPBACK---------------*/ public bool GetLoopPacket(NetSrc src, out IPEndPoint from, out MsgPacket msg) { from = new IPEndPoint(IPAddress.Loopback, 0); msg = new MsgPacket(); Loopback loop = loopbacks[(int)src]; if (loop.send - loop.get > CConstVar.MAX_LOOPBACK) { loop.get = loop.send - CConstVar.MAX_LOOPBACK; } if (loop.get >= loop.send) { return(false); } int i = loop.get & (CConstVar.MAX_LOOPBACK - 1); loop.get++; Array.Copy(loop.msgs[i].data, msg.Data, loop.msgs[i].datalen); msg.CurSize = loop.msgs[i].datalen; from.Address = IPAddress.Loopback; return(true); }
static void Main(string[] args) { Console.WriteLine("Setup: Removing all previous Loopback interfaces"); Loopback.RemoveAll(onlyLoopbackNetIfaces: false); Console.WriteLine($"Done."); // 1. Manual creation and removal string loopbackName = "loopy"; Console.WriteLine($"Creating Loopback named '{loopbackName}'"); var loop1 = LoopbackNET.Loopback.Create(loopbackName); Console.WriteLine($"Done! New interface ID: {loop1.NetworkInterface.Id}"); Console.WriteLine($"Removing Loopback named '{loopbackName}'"); loop1.Remove(); Console.WriteLine($"Done."); // 2. Creation and removal in a 'Using' scope using (LoopbackInterface loop2 = Loopback.Create()) { Console.WriteLine($"Temporary loopback created. Name: '{loop2.NetworkInterface.Name}'"); Console.WriteLine($"Disposing of temporary loopback."); } // Dispose removes the interface Console.WriteLine($"Done."); Console.WriteLine("Clean up: Making sure no Loopback interfaces are left behind"); Loopback.RemoveAll(onlyLoopbackNetIfaces: false); Console.ReadLine(); }
public override void Init() { instance = this; if (msgIDs == null) { msgIDs = new CMessageID(); } sendStack = new Stack <SendCallback>(); msgBuilders = new List <FlatBufferBuilder>(builderLimit) { }; for (int i = 0; i < builderLimit; i++) { msgBuilders.Add(new FlatBufferBuilder(32)); } csocket = new CSocket(); csocket.Init(); // //udp相关 updSocket = new CSocketUDP(); updSocket.Init(); updSocket.BeginReceive(); //loopback loopbacks = new Loopback[2]; //队列 sendPacketQueue = new CircularBuffer <PacketQueue>(10); needUpdate = true; CConstVar.ServerPort = updSocket.GetLocalPort(); // HuffmanMsg.Init(); }
public void SelectTransport(string Name) { if (Name != this.Transport.GetType().Name) { this.Transport = ProviderInstanceControl.GetProviderInstance <ITransport>(Name) as ITransport; } if (Transport == null) { Transport = new Loopback(); } }
public bool Start(TunnelSettings settings) { Connection <MonoBrick.NXT.Command, MonoBrick.NXT.Reply> connection = null; switch (settings.Connection.ToLower()) { case "usb": connection = new USB <MonoBrick.NXT.Command, MonoBrick.NXT.Reply>(); break; case "loopback": connection = new Loopback <MonoBrick.NXT.Command, MonoBrick.NXT.Reply>(); break; default: connection = new Bluetooth <MonoBrick.NXT.Command, MonoBrick.NXT.Reply>(settings.Connection); break; } return(Start(settings, connection)); }
public static UnserializableObject Create() => new UnserializableObject(Loopback.GetAddressBytes());
public void RemoveCreatedLoopbacks() { // We need this to run after every test especially to not leave behind // the last test's interfaces still in the system Loopback.RemoveAll(); }
public void RemovePreviousLoopbacks() { // We need this to run before every test because user might have defined // loopbacks outside our testing session Loopback.RemoveAll(); }