HGAuthenticationService must be a singleton, because it has in-memory state. This makes this singleton register with IScene, so that other parts can retrieve its reference.

arthursv
Diva Canto 2009-08-06 18:43:53 -07:00
parent 11c698af67
commit 53ba245967
2 changed files with 4 additions and 2 deletions

View File

@ -99,7 +99,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Authentication
if (!m_Registered)
{
m_Registered = true;
new HGAuthServiceInConnector(m_Config, MainServer.Instance);
new HGAuthServiceInConnector(m_Config, MainServer.Instance, scene);
//Object[] args = new Object[] { m_Config, scene.CommsManager.HttpServer };
//ServerUtils.LoadPlugin<IAuthenticationService>("OpenSim.Server.Handlers.dll:HGAuthServiceInConnector", args);

View File

@ -27,6 +27,7 @@
using System;
using Nini.Config;
using OpenSim.Framework;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.Servers.HttpServer;
@ -38,7 +39,7 @@ namespace OpenSim.Server.Handlers.Authentication
{
private IAuthenticationService m_AuthenticationService;
public HGAuthServiceInConnector(IConfigSource config, IHttpServer server) :
public HGAuthServiceInConnector(IConfigSource config, IHttpServer server, IScene registry) :
base(config, server)
{
IConfig serverConfig = config.Configs["AuthenticationService"];
@ -53,6 +54,7 @@ namespace OpenSim.Server.Handlers.Authentication
Object[] args = new Object[] { config };
m_AuthenticationService = ServerUtils.LoadPlugin<IAuthenticationService>(authenticationService, args);
registry.RegisterModuleInterface<IAuthenticationService>(m_AuthenticationService);
HGAuthenticationHandlers m_handlers = new HGAuthenticationHandlers(m_AuthenticationService);
server.AddXmlRPCHandler("hg_new_auth_key", m_handlers.GenerateKeyMethod);