public ServerSettings(Cli.RunServerOptions options, bool useService) { Port = options.Port; UseIpv6 = !options.NoIpv6 && Socket.OSSupportsIPv6; UseService = useService; if (options.NoNatTraversal) { Nat = new NatResult(false, null); } else { var result = NatTraversal.ForwardPortAsync(!options.NoUpnp, !options.NoPmp, options.Port).Result; Nat = new NatResult(true, result); } PrintLog(); }
public void Close() { if (!_server.IsStarted) { throw new RoomNotOpenException(); } if (ServerSettings.Nat.Traverse) { NatTraversal.ClearAsync(ServerSettings.Nat.ForwardingResult.PublicPort).GetAwaiter(); } if (ServerSettings.UseService) { _service.Stop(); } Log.Verbose("Stopping server..."); _server.Stop(); Log.Information("Server stopped."); }