|
|
@ -613,7 +613,7 @@ namespace Emby.Server.Implementations
|
|
|
|
|
|
|
|
|
|
|
|
DiscoverTypes();
|
|
|
|
DiscoverTypes();
|
|
|
|
|
|
|
|
|
|
|
|
await RegisterResources(serviceCollection, startupConfig).ConfigureAwait(false);
|
|
|
|
await RegisterServices(serviceCollection, startupConfig).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
|
|
ContentRoot = ServerConfigurationManager.Configuration.DashboardSourcePath;
|
|
|
|
ContentRoot = ServerConfigurationManager.Configuration.DashboardSourcePath;
|
|
|
|
if (string.IsNullOrEmpty(ContentRoot))
|
|
|
|
if (string.IsNullOrEmpty(ContentRoot))
|
|
|
@ -650,9 +650,9 @@ namespace Emby.Server.Implementations
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
/// Registers resources that classes will depend on
|
|
|
|
/// Registers services/resources with the service collection that will be available via DI.
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
|
protected async Task RegisterResources(IServiceCollection serviceCollection, IConfiguration startupConfig)
|
|
|
|
protected async Task RegisterServices(IServiceCollection serviceCollection, IConfiguration startupConfig)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
serviceCollection.AddMemoryCache();
|
|
|
|
serviceCollection.AddMemoryCache();
|
|
|
|
|
|
|
|
|
|
|
@ -770,20 +770,8 @@ namespace Emby.Server.Implementations
|
|
|
|
CertificateInfo = GetCertificateInfo(true);
|
|
|
|
CertificateInfo = GetCertificateInfo(true);
|
|
|
|
Certificate = GetCertificate(CertificateInfo);
|
|
|
|
Certificate = GetCertificate(CertificateInfo);
|
|
|
|
|
|
|
|
|
|
|
|
HttpServer = new HttpListenerHost(
|
|
|
|
serviceCollection.AddSingleton<IHttpListener, WebSocketSharpListener>();
|
|
|
|
this,
|
|
|
|
serviceCollection.AddSingleton<IHttpServer, HttpListenerHost>();
|
|
|
|
LoggerFactory.CreateLogger<HttpListenerHost>(),
|
|
|
|
|
|
|
|
ServerConfigurationManager,
|
|
|
|
|
|
|
|
startupConfig,
|
|
|
|
|
|
|
|
NetworkManager,
|
|
|
|
|
|
|
|
JsonSerializer,
|
|
|
|
|
|
|
|
XmlSerializer,
|
|
|
|
|
|
|
|
CreateHttpListener())
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
GlobalResponse = LocalizationManager.GetLocalizedString("StartupEmbyServerIsLoading")
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
serviceCollection.AddSingleton(HttpServer);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ImageProcessor = new ImageProcessor(LoggerFactory.CreateLogger<ImageProcessor>(), ServerConfigurationManager.ApplicationPaths, FileSystemManager, ImageEncoder, () => LibraryManager, () => MediaEncoder);
|
|
|
|
ImageProcessor = new ImageProcessor(LoggerFactory.CreateLogger<ImageProcessor>(), ServerConfigurationManager.ApplicationPaths, FileSystemManager, ImageEncoder, () => LibraryManager, () => MediaEncoder);
|
|
|
|
serviceCollection.AddSingleton(ImageProcessor);
|
|
|
|
serviceCollection.AddSingleton(ImageProcessor);
|
|
|
@ -891,6 +879,14 @@ namespace Emby.Server.Implementations
|
|
|
|
((LibraryManager)LibraryManager).ItemRepository = ItemRepository;
|
|
|
|
((LibraryManager)LibraryManager).ItemRepository = ItemRepository;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Create services registered with the service container that need to be initialized at application startup.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
public void InitializeServices()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
HttpServer = Resolve<IHttpServer>();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static void LogEnvironmentInfo(ILogger logger, IApplicationPaths appPaths)
|
|
|
|
public static void LogEnvironmentInfo(ILogger logger, IApplicationPaths appPaths)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// Distinct these to prevent users from reporting problems that aren't actually problems
|
|
|
|
// Distinct these to prevent users from reporting problems that aren't actually problems
|
|
|
@ -1196,8 +1192,6 @@ namespace Emby.Server.Implementations
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected IHttpListener CreateHttpListener() => new WebSocketSharpListener(LoggerFactory.CreateLogger<WebSocketSharpListener>());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private CertificateInfo GetCertificateInfo(bool generateCertificate)
|
|
|
|
private CertificateInfo GetCertificateInfo(bool generateCertificate)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// Custom cert
|
|
|
|
// Custom cert
|
|
|
|