public void AddTunnelListener(String serverName, Boolean requireTls, String targetHost, UInt16 targetPort, UInt16 listenPort) { TmpAccessorServer.AddTunnelListener(serverName, requireTls, targetHost, targetPort, listenPort); }
public UInt16 AddTunnelListener(String serverName, Boolean requireTls, String targetHost, UInt16 targetPort) { return(TmpAccessorServer.AddTunnelListener(serverName, requireTls, targetHost, targetPort)); }
static void Main(string[] args) { Options options = new Options(); List <String> nonOptionArgs = options.Parse(args); // // Initialize Static Data // TmpAccessorServer.GlobalTlsSettings = new TlsSettings(false); TmpAccessorServer.SelectServer = new SelectServer(false, new Buf(8192)); // // Add Tunnel Listeners from command line arguments // if (nonOptionArgs.Count > 0) { for (int i = 0; i < nonOptionArgs.Count; i++) { String tunnelListenerString = nonOptionArgs[i]; String[] tunnelListenerStrings = tunnelListenerString.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (tunnelListenerStrings.Length < 3) { options.ErrorAndUsage("A tunnel-listener must have at least 3 comma seperated values but '{0}' only had {1}", tunnelListenerString, tunnelListenerStrings.Length); Environment.Exit(1); } String serverName = tunnelListenerStrings[0]; String targetHost = tunnelListenerStrings[1]; UInt16 targetPort = UInt16.Parse(tunnelListenerStrings[2]); if (tunnelListenerStrings.Length == 3) { TmpAccessorServer.AddTunnelListener(serverName, false, targetHost, targetPort); } else if (tunnelListenerStrings.Length == 4) { UInt16 listenPort = UInt16.Parse(tunnelListenerStrings[3]); TmpAccessorServer.AddTunnelListener(serverName, false, targetHost, targetPort, listenPort); } else { options.ErrorAndUsage("A tunnel-listener may not have more than 4 comma seperated values but '{0}' had {1}", tunnelListenerString, tunnelListenerStrings.Length); Environment.Exit(1); } } } // // Setup NPC Server so long as it isn't disabled // if (!options.disableNpc.set) { NpcReflector = new NpcReflector(TmpAccessorServer.ControlInstance); HtmlGenerator = new DefaultNpcHtmlGenerator("Tmp Accessor", NpcReflector); IPAddress listenIP = IPAddress.Any; Socket npcSocket = new Socket(listenIP.AddressFamily, SocketType.Stream, ProtocolType.Tcp); npcSocket.Bind(new IPEndPoint(listenIP, Tmp.DefaultNpcControlPort)); npcSocket.Listen(8); TmpAccessorServer.SelectServer.control.AddListenSocket(npcSocket, NpcAcceptCallback); } // // Setup Tmp tunnel server // { IPAddress listenIP = IPAddress.Any; Socket listenSocket = new Socket(listenIP.AddressFamily, SocketType.Stream, ProtocolType.Tcp); listenSocket.Bind(new IPEndPoint(listenIP, Tmp.DefaultPort)); listenSocket.Listen(8); TmpAccessorServer.SelectServer.control.AddListenSocket(listenSocket, TmpAccessorServer.AcceptCallback); } TmpAccessorServer.SelectServer.Run(); }