private static void Main(string[] args) { Console.WriteLine(); var options = new Options(); try { Console.TreatControlCAsInput = false; Console.CancelKeyPress += CancelKeyPressed; options.Parse(args); if (options.ShowHelp) { options.PrintUsage(); return; } if (options.ShowVersion) { ShowVersion(); return; } if (options.ShowLicense) { ShowLicense(); return; } if (options.ListViews) { ListViews(); return; } if (options.ListOrders) { ListOrders(); return; } if (options.Directories.Length == 0) { throw new GetOptException("No directories specified"); } options.SetupLogging(); using (var icon = new ProgramIcon()) { var server = new HttpServer(options.Port); try { using (var authorizer = new HttpAuthorizer(server)) { if (options.Ips.Length != 0) { authorizer.AddMethod(new IPAddressAuthorizer(options.Ips)); } if (options.Macs.Length != 0) { authorizer.AddMethod(new MacAuthorizer(options.Macs)); } if (options.UserAgents.Length != 0) { authorizer.AddMethod( new UserAgentAuthorizer(options.UserAgents)); } Console.Title = "SimpleDLNA - starting ..."; var types = options.Types[0]; foreach (var t in options.Types) { types = types | t; server.InfoFormat("Enabled type {0}", t); } var friendlyName = "sdlna"; if (options.Seperate) { foreach (var d in options.Directories) { server.InfoFormat("Mounting FileServer for {0}", d.FullName); var fs = SetupFileServer( options, types, new DirectoryInfo[] { d }); friendlyName = fs.FriendlyName; server.RegisterMediaServer(fs); server.NoticeFormat("{0} mounted", d.FullName); } } else { server.InfoFormat( "Mounting FileServer for {0} ({1})", options.Directories[0], options.Directories.Length); var fs = SetupFileServer(options, types, options.Directories); friendlyName = fs.FriendlyName; server.RegisterMediaServer(fs); server.NoticeFormat( "{0} ({1}) mounted", options.Directories[0], options.Directories.Length); } Console.Title = String.Format("{0} - running ...", friendlyName); Run(server); } } finally { server.Dispose(); } } } catch (GetOptException ex) { Console.Error.WriteLine("Error: {0}\n\n", ex.Message); options.PrintUsage(); } #if !DEBUG catch (Exception ex) { LogManager.GetLogger(typeof(Program)).Fatal("Failed to run", ex); } #endif }
static void Main(string[] args) { Console.WriteLine(); var opcoes = new Opcoes(); try { Console.TreatControlCAsInput = false; Console.CancelKeyPress += CancelKeyPressed; opcoes.Parse(args); if (opcoes.ListaVisualizacoes) { ListaVisualizacoes(); return; } if (opcoes.ListaOrdens) { ListaOrdens(); return; } if (opcoes.Diretorios.Length == 0) { throw new GetOptException("Nenhum diretório especificado"); } var servidor = new HttpServer(opcoes.Porta); try { using (var autorizador = new HttpAuthorizer(servidor)) { if (opcoes.Ips.Length != 0) { autorizador.AddMethod(new IPAddressAuthorizer(opcoes.Ips)); } if (opcoes.Macs.Length != 0) { autorizador.AddMethod(new MacAuthorizer(opcoes.Macs)); } if (opcoes.UserAgents.Length != 0) { autorizador.AddMethod( new UserAgentAuthorizer(opcoes.UserAgents)); } Console.Title = "dlna"; var tipos = opcoes.Tipos[0]; foreach (var t in opcoes.Tipos) { tipos = tipos | t; servidor.InfoFormat("Tipos ativado {0}", t); } var friendlyName = "dlna"; if (opcoes.Separacao) { foreach (var d in opcoes.Diretorios) { servidor.InfoFormat("Montando Servidor de Midia da pasta {0}", d.FullName); var fs = ConfiguraServidorDeArquivos( opcoes, tipos, new DirectoryInfo[] { d }); friendlyName = fs.FriendlyName; servidor.RegisterMediaServer(fs); servidor.NoticeFormat("{0} montado", d.FullName); } } else { servidor.InfoFormat( "Montando Servidor de Midia da pasta {0} ({1})", opcoes.Diretorios[0], opcoes.Diretorios.Length); var fs = ConfiguraServidorDeArquivos(opcoes, tipos, opcoes.Diretorios); friendlyName = fs.FriendlyName; servidor.RegisterMediaServer(fs); servidor.NoticeFormat( "{0} ({1}) montado", opcoes.Diretorios[0], opcoes.Diretorios.Length); } Console.Title = String.Format("{0} - rodando ...", friendlyName); Rodar(servidor); } } finally { servidor.Dispose(); } } catch (GetOptException ex) { Console.Error.WriteLine("Error: {0}\n\n", ex.Message); opcoes.PrintUsage(); } }