Beispiel #1
0
        public void RegionLoaded(Scene scene)
        {
            if (!m_Enabled)
            {
                return;
            }

            if (m_UserManagement == null)
            {
                m_UserManagement  = scene.RequestModuleInterface <IUserManagement>();
                m_OfflineIM       = scene.RequestModuleInterface <IOfflineIMService>();
                m_Messaging       = scene.RequestModuleInterface <IMessageTransferModule>();
                m_ForeignImporter = new ForeignImporter(m_UserManagement);

                if (m_ServiceLocation.Equals("local"))
                {
                    m_LocalGroupsConnector = new GroupsServiceLocalConnectorModule(m_Config, m_UserManagement);
                    // Also, if local, create the endpoint for the HGGroupsService
                    new HGGroupsServiceRobustConnector(m_Config, MainServer.Instance, string.Empty,
                                                       scene.RequestModuleInterface <IOfflineIMService>(), scene.RequestModuleInterface <IUserAccountService>());
                }
                else
                {
                    m_LocalGroupsConnector = new GroupsServiceRemoteConnectorModule(m_Config, m_UserManagement);
                }

                m_CacheWrapper = new RemoteConnectorCacheWrapper(m_UserManagement);
            }
        }
        public void Initialise(IConfigSource config)
        {
            IConfig cnf = config.Configs["Messaging"];

            if (cnf == null)
            {
                return;
            }
            if (cnf != null && cnf.GetString("OfflineMessageModule", string.Empty) != Name)
            {
                return;
            }

            m_Enabled = true;

            string serviceLocation = cnf.GetString("OfflineMessageURL", string.Empty);

            if (serviceLocation == string.Empty)
            {
                m_OfflineIMService = new OfflineIMService(config);
            }
            else
            {
                m_OfflineIMService = new OfflineIMServiceRemoteConnector(config);
            }

            m_ForwardOfflineGroupMessages = cnf.GetBoolean("ForwardOfflineGroupMessages", m_ForwardOfflineGroupMessages);
            m_log.DebugFormat("[OfflineIM.V2]: Offline messages enabled by {0}", Name);
        }
        public HGInstantMessageService(IConfigSource config, IInstantMessageSimConnector imConnector)
        {
            if (imConnector != null)
            {
                m_IMSimConnector = imConnector;
            }

            if (!m_Initialized)
            {
                m_Initialized = true;

                IConfig serverConfig = config.Configs["HGInstantMessageService"];
                if (serverConfig == null)
                {
                    throw new Exception(String.Format("No section HGInstantMessageService in config file"));
                }

                string gridService      = serverConfig.GetString("GridService", String.Empty);
                string presenceService  = serverConfig.GetString("PresenceService", String.Empty);
                string userAgentService = serverConfig.GetString("UserAgentService", String.Empty);
                m_InGatekeeper = serverConfig.GetBoolean("InGatekeeper", false);
                m_log.DebugFormat("[HG IM SERVICE]: Starting... InRobust? {0}", m_InGatekeeper);

                if (gridService == string.Empty || presenceService == string.Empty)
                {
                    throw new Exception(String.Format("Incomplete specifications, InstantMessage Service cannot function."));
                }

                Object[] args = new Object[] { config };
                m_GridService     = ServerUtils.LoadPlugin <IGridService>(gridService, args);
                m_PresenceService = ServerUtils.LoadPlugin <IPresenceService>(presenceService, args);
                try
                {
                    m_UserAgentService = ServerUtils.LoadPlugin <IUserAgentService>(userAgentService, args);
                }
                catch
                {
                    m_log.WarnFormat("[HG IM SERVICE]: Unable to create User Agent Service. Missing config var  in [HGInstantMessageService]?");
                }

                m_RegionCache = new ExpiringCache <UUID, GridRegion>();

                IConfig cnf = config.Configs["Messaging"];
                if (cnf == null)
                {
                    return;
                }

                m_ForwardOfflineGroupMessages = cnf.GetBoolean("ForwardOfflineGroupMessages", false);

                if (m_InGatekeeper)
                {
                    string offlineIMService = cnf.GetString("OfflineIMService", string.Empty);
                    if (offlineIMService != string.Empty)
                    {
                        m_OfflineIMService = ServerUtils.LoadPlugin <IOfflineIMService>(offlineIMService, args);
                    }
                }
            }
        }
Beispiel #4
0
 public HGGroupsService(IConfigSource config, IOfflineIMService im, IUserAccountService users, string homeURI)
     : base(config, string.Empty)
 {
     m_OfflineIM = im;
     m_UserAccounts = users;
     m_HomeURI = homeURI;
     if (!m_HomeURI.EndsWith("/"))
         m_HomeURI += "/";
 }
Beispiel #5
0
 public HGGroupsService(IConfigSource config, IOfflineIMService im, IUserAccountService users, string homeURI)
     : base(config, string.Empty)
 {
     m_OfflineIM    = im;
     m_UserAccounts = users;
     m_HomeURI      = homeURI;
     if (!m_HomeURI.EndsWith("/"))
     {
         m_HomeURI += "/";
     }
 }
        public OfflineIMServiceRobustConnector(IConfigSource config, IHttpServer server, string configName) :
            base(config, server, configName)
        {
            if (configName != String.Empty)
                m_ConfigName = configName;

            m_log.DebugFormat("[OfflineIM.V2.RobustConnector]: Starting with config name {0}", m_ConfigName);

            m_OfflineIMService = new OfflineIMService(config);

            server.AddStreamHandler(new OfflineIMServicePostHandler(m_OfflineIMService));
        }
        public OfflineIMServiceRobustConnector(IConfigSource config, IHttpServer server, string configName) :
            base(config, server, configName)
        {
            if (configName != String.Empty)
            {
                m_ConfigName = configName;
            }

            m_log.DebugFormat("[OfflineIM.V2.RobustConnector]: Starting with config name {0}", m_ConfigName);

            m_OfflineIMService = new OfflineIMService(config);

            server.AddStreamHandler(new OfflineIMServicePostHandler(m_OfflineIMService));
        }
        public void Initialise(IConfigSource config)
        {
            IConfig cnf = config.Configs["Messaging"];
            if (cnf == null)
                return;
            if (cnf != null && cnf.GetString("OfflineMessageModule", string.Empty) != Name)
                return;

            m_Enabled = true;

            string serviceLocation = cnf.GetString("OfflineMessageURL", string.Empty);
            if (serviceLocation == string.Empty)
                m_OfflineIMService = new OfflineIMService(config);
            else
                m_OfflineIMService = new OfflineIMServiceRemoteConnector(serviceLocation);

            m_ForwardOfflineGroupMessages = cnf.GetBoolean("ForwardOfflineGroupMessages", m_ForwardOfflineGroupMessages);
            m_log.DebugFormat("[OfflineIM.V2]: Offline messages enabled by {0}", Name);
        }
        // Called by the sim-bound module
        public HGGroupsServiceRobustConnector(IConfigSource config, IHttpServer server, string configName, IOfflineIMService im, IUserAccountService users) :
            base(config, server, configName)
        {
            if (configName != String.Empty)
                m_ConfigName = configName;

            m_log.DebugFormat("[Groups.RobustHGConnector]: Starting with config name {0}", m_ConfigName);

            string homeURI = Util.GetConfigVarFromSections<string>(config, "HomeURI", 
                new string[] { "Startup", "Hypergrid", m_ConfigName}, string.Empty); 
            if (homeURI == string.Empty)
                throw new Exception(String.Format("[Groups.RobustHGConnector]: please provide the HomeURI [Startup] or in section {0}", m_ConfigName));

            IConfig cnf = config.Configs[m_ConfigName];
            if (cnf == null)
                throw new Exception(String.Format("[Groups.RobustHGConnector]: {0} section does not exist", m_ConfigName));

            if (im == null)
            {
                string imDll = cnf.GetString("OfflineIMService", string.Empty);
                if (imDll == string.Empty)
                    throw new Exception(String.Format("[Groups.RobustHGConnector]: please provide OfflineIMService in section {0}", m_ConfigName));

                Object[] args = new Object[] { config };
                im = ServerUtils.LoadPlugin<IOfflineIMService>(imDll, args);
            }

            if (users == null)
            {
                string usersDll = cnf.GetString("UserAccountService", string.Empty);
                if (usersDll == string.Empty)
                    throw new Exception(String.Format("[Groups.RobustHGConnector]: please provide UserAccountService in section {0}", m_ConfigName));

                Object[] args = new Object[] { config };
                users = ServerUtils.LoadPlugin<IUserAccountService>(usersDll, args);
            }

            m_GroupsService = new HGGroupsService(config, im, users, homeURI);

            server.AddStreamHandler(new HGGroupsServicePostHandler(m_GroupsService));
        }
 public OfflineIMServicePostHandler(IOfflineIMService service, IServiceAuth auth) :
     base("POST", "/offlineim", auth)
 {
     m_OfflineIMService = service;
 }
 public OfflineIMServicePostHandler(IOfflineIMService service) :
     base("POST", "/offlineim")
 {
     m_OfflineIMService = service;
 }
        // Called by the sim-bound module
        public HGGroupsServiceRobustConnector(IConfigSource config, IHttpServer server, string configName, IOfflineIMService im, IUserAccountService users) :
            base(config, server, configName)
        {
            if (configName != String.Empty)
            {
                m_ConfigName = configName;
            }

            m_log.DebugFormat("[Groups.RobustHGConnector]: Starting with config name {0}", m_ConfigName);

            string homeURI = Util.GetConfigVarFromSections <string>(config, "HomeURI",
                                                                    new string[] { "Startup", "Hypergrid", m_ConfigName }, string.Empty);

            if (homeURI == string.Empty)
            {
                throw new Exception(String.Format("[Groups.RobustHGConnector]: please provide the HomeURI [Startup] or in section {0}", m_ConfigName));
            }

            IConfig cnf = config.Configs[m_ConfigName];

            if (cnf == null)
            {
                throw new Exception(String.Format("[Groups.RobustHGConnector]: {0} section does not exist", m_ConfigName));
            }

            if (im == null)
            {
                string imDll = cnf.GetString("OfflineIMService", string.Empty);
                if (imDll == string.Empty)
                {
                    throw new Exception(String.Format("[Groups.RobustHGConnector]: please provide OfflineIMService in section {0}", m_ConfigName));
                }

                Object[] args = new Object[] { config };
                im = ServerUtils.LoadPlugin <IOfflineIMService>(imDll, args);
            }

            if (users == null)
            {
                string usersDll = cnf.GetString("UserAccountService", string.Empty);
                if (usersDll == string.Empty)
                {
                    throw new Exception(String.Format("[Groups.RobustHGConnector]: please provide UserAccountService in section {0}", m_ConfigName));
                }

                Object[] args = new Object[] { config };
                users = ServerUtils.LoadPlugin <IUserAccountService>(usersDll, args);
            }

            m_GroupsService = new HGGroupsService(config, im, users, homeURI);

            server.AddStreamHandler(new HGGroupsServicePostHandler(m_GroupsService));
        }
Beispiel #13
0
 public OfflineIMServicePostHandler(IOfflineIMService service, IServiceAuth auth) :
     base("POST", "/offlineim", auth)
 {
     m_OfflineIMService = service;
 }
        public void RegionLoaded(Scene scene)
        {
            if (!m_Enabled)
                return;

            if (m_UserManagement == null)
            {
                m_UserManagement = scene.RequestModuleInterface<IUserManagement>();
                m_OfflineIM = scene.RequestModuleInterface<IOfflineIMService>();
                m_Messaging = scene.RequestModuleInterface<IMessageTransferModule>();
                m_ForeignImporter = new ForeignImporter(m_UserManagement);

                if (m_ServiceLocation.Equals("local"))
                {
                    m_LocalGroupsConnector = new GroupsServiceLocalConnectorModule(m_Config, m_UserManagement);
                    // Also, if local, create the endpoint for the HGGroupsService
                    new HGGroupsServiceRobustConnector(m_Config, MainServer.Instance, string.Empty, 
                        scene.RequestModuleInterface<IOfflineIMService>(), scene.RequestModuleInterface<IUserAccountService>());

                }
                else
                    m_LocalGroupsConnector = new GroupsServiceRemoteConnectorModule(m_Config, m_UserManagement);

                m_CacheWrapper = new RemoteConnectorCacheWrapper(m_UserManagement);
            }

        }
 public OfflineIMServicePostHandler(IOfflineIMService service) :
     base("POST", "/offlineim")
 {
     m_OfflineIMService = service;
 }
        public HGInstantMessageService(IConfigSource config, IInstantMessageSimConnector imConnector)
        {
            if (imConnector != null)
                m_IMSimConnector = imConnector;

            if (!m_Initialized)
            {
                m_Initialized = true;

                IConfig serverConfig = config.Configs["HGInstantMessageService"];
                if (serverConfig == null)
                    throw new Exception(String.Format("No section HGInstantMessageService in config file"));

                string gridService = serverConfig.GetString("GridService", String.Empty);
                string presenceService = serverConfig.GetString("PresenceService", String.Empty);
                string userAgentService = serverConfig.GetString("UserAgentService", String.Empty);
                m_InGatekeeper = serverConfig.GetBoolean("InGatekeeper", false);
                m_log.DebugFormat("[HG IM SERVICE]: Starting... InRobust? {0}", m_InGatekeeper);

                if (gridService == string.Empty || presenceService == string.Empty)
                    throw new Exception(String.Format("Incomplete specifications, InstantMessage Service cannot function."));

                Object[] args = new Object[] { config };
                m_GridService = ServerUtils.LoadPlugin<IGridService>(gridService, args);
                m_PresenceService = ServerUtils.LoadPlugin<IPresenceService>(presenceService, args);
                m_UserAgentService = ServerUtils.LoadPlugin<IUserAgentService>(userAgentService, args);

                m_RegionCache = new ExpiringCache<UUID, GridRegion>();

                IConfig cnf = config.Configs["Messaging"];
                if (cnf == null)
                {
                    return;
                }

                m_ForwardOfflineGroupMessages = cnf.GetBoolean("ForwardOfflineGroupMessages", false);

                if (m_InGatekeeper)
                {
                    string offlineIMService = cnf.GetString("OfflineIMService", string.Empty);
                    if (offlineIMService != string.Empty)
                        m_OfflineIMService = ServerUtils.LoadPlugin<IOfflineIMService>(offlineIMService, args);
                }
            }
        }