]> granicus.if.org Git - icinga2/commitdiff
Bugfixes for the demo component.
authorGunnar Beutner <gunnar.beutner@netways.de>
Mon, 23 Apr 2012 12:01:31 +0000 (14:01 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Mon, 23 Apr 2012 12:01:31 +0000 (14:01 +0200)
components/demo/democomponent.cpp
icinga.sln
icinga/jsonrpcendpoint.cpp

index 7d326c6f5bd3832024a021522ce7af4c2e404ed1..053cd3b24ada7ef5e2b2de23ccaf91fe2804a88a 100644 (file)
@@ -15,7 +15,7 @@ string DemoComponent::GetName(void) const
 void DemoComponent::Start(void)
 {
        m_DemoEndpoint = make_shared<VirtualEndpoint>();
-       m_DemoEndpoint->RegisterMethodSink("demo::HelloWorld");
+       m_DemoEndpoint->RegisterMethodHandler("demo::HelloWorld", bind_weak(&DemoComponent::HelloWorldRequestHAndler, shared_from_this()));
        m_DemoEndpoint->RegisterMethodSource("demo::HelloWorld");
 
        EndpointManager::Ptr endpointManager = GetIcingaApplication()->GetEndpointManager();
@@ -32,14 +32,18 @@ void DemoComponent::Start(void)
 
 void DemoComponent::Stop(void)
 {
-       EndpointManager::Ptr endpointManager = GetIcingaApplication()->GetEndpointManager();
-       endpointManager->UnregisterEndpoint(m_DemoEndpoint);
+       IcingaApplication::Ptr app = GetIcingaApplication();
+
+       if (app) {
+               EndpointManager::Ptr endpointManager = app->GetEndpointManager();
+               endpointManager->UnregisterEndpoint(m_DemoEndpoint);
+       }
 }
 
-int AuthenticationComponent::NewEndpointHandler(const NewEndpointEventArgs& neea)
+int DemoComponent::NewEndpointHandler(const NewEndpointEventArgs& neea)
 {
-       neea.Endpoint->AddAllowedMethodSinkPrefix("demo");
-       neea.Endpoint->AddAllowedMethodSourcePrefix("demo");
+       neea.Endpoint->AddAllowedMethodSinkPrefix("demo::");
+       neea.Endpoint->AddAllowedMethodSourcePrefix("demo::");
 
        return 0;
 }
@@ -49,19 +53,17 @@ int DemoComponent::DemoTimerHandler(const TimerEventArgs& tea)
        cout << "Sending multicast 'hello world' message." << endl;
 
        JsonRpcRequest request;
-       request.SetMethod("test");
+       request.SetMethod("demo::HelloWorld");
 
        EndpointManager::Ptr endpointManager = GetIcingaApplication()->GetEndpointManager();
-
-       for (int i = 0; i < 5; i++)
-               endpointManager->SendMulticastRequest(m_DemoEndpoint, request);
+       endpointManager->SendMulticastRequest(m_DemoEndpoint, request);
 
        return 0;
 }
 
 int DemoComponent::HelloWorldRequestHAndler(const NewRequestEventArgs& nrea)
 {
-       cout << "Got Hello World from " << nrea.Sender->GetAddress();
+       cout << "Got Hello World from " << nrea.Sender->GetAddress() << endl;
 
        return 0;
 }
index b8ac15f900bc2703f3e98c0710e76c6813d40fec..b108cc3bc1b741707f917e0dd12d2e6f15ff7cb7 100644 (file)
@@ -19,6 +19,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icinga", "icinga\icinga.vcx
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icinga-app", "icinga-app\icinga-app.vcxproj", "{BE412865-FEBA-4259-AD41-58950D1F5432}"
        ProjectSection(ProjectDependencies) = postProject
+               {2E6C1133-730F-4875-A72C-B455B1DD4C5C} = {2E6C1133-730F-4875-A72C-B455B1DD4C5C}
+               {697C6D7E-3109-484C-A7AF-384D28711610} = {697C6D7E-3109-484C-A7AF-384D28711610}
+               {E58F1DA7-B723-412B-B2B7-7FF58E2A944E} = {E58F1DA7-B723-412B-B2B7-7FF58E2A944E}
                {C1FC77E1-04A4-481B-A78B-2F7AF489C2F8} = {C1FC77E1-04A4-481B-A78B-2F7AF489C2F8}
        EndProjectSection
 EndProject
index 88597372ae47af2770f2fa10acc53d12c2ef7ea2..fcff316a48a65b740d0b1cb6e6cbb459717fb2fc 100644 (file)
@@ -29,7 +29,13 @@ void JsonRpcEndpoint::RemoveAllowedMethodSinkPrefix(string method)
 
 bool JsonRpcEndpoint::IsAllowedMethodSink(string method) const
 {
-       return (m_AllowedMethodSinkPrefixes.find(method) != m_AllowedMethodSinkPrefixes.end());
+       set<string>::iterator i;
+       for (i = m_AllowedMethodSinkPrefixes.begin(); i != m_AllowedMethodSinkPrefixes.end(); i++) {
+               if (method.compare(0, method.length(), method) == 0)
+                       return true;
+       }
+
+       return false;
 }
 
 void JsonRpcEndpoint::AddAllowedMethodSourcePrefix(string method)
@@ -44,7 +50,13 @@ void JsonRpcEndpoint::RemoveAllowedMethodSourcePrefix(string method)
 
 bool JsonRpcEndpoint::IsAllowedMethodSource(string method) const
 {
-       return (m_AllowedMethodSourcePrefixes.find(method) != m_AllowedMethodSourcePrefixes.end());
+       set<string>::iterator i;
+       for (i = m_AllowedMethodSourcePrefixes.begin(); i != m_AllowedMethodSourcePrefixes.end(); i++) {
+               if (method.compare(0, method.length(), method) == 0)
+                       return true;
+       }
+
+       return false;
 }
 
 void JsonRpcEndpoint::Connect(string host, unsigned short port)