---
  xdata/xodtemplate.c |   16 +++++++++++++++-
  1 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/xdata/xodtemplate.c b/xdata/xodtemplate.c
index dc81044..dbcbb61 100644
--- a/xdata/xodtemplate.c
+++ b/xdata/xodtemplate.c
@@ -4264,6 +4264,7 @@ int xodtemplate_duplicate_objects(void){
        char *service_descriptions=NULL;
        int first_item=FALSE;
+       int same_host_servicedependency=FALSE;
        /*************************************/
@@ -4554,6 +4555,11 @@ int xodtemplate_duplicate_objects(void){
                                my_free(temp_servicedependency->hostgroup_name);
                                }
  +                     /* MG(20090902): Same host servicegroups dependencies */
+                       same_host_servicedependency=FALSE;
+                       if(temp_servicedependency->host_name==NULL && 
temp_servicedependency->hostgroup_name==NULL)
+                               same_host_servicedependency=TRUE; +
                        /* duplicate service dependency entries */
                        first_item=TRUE;
                 
for(temp_masterservice=master_servicelist;temp_masterservice!=NULL;temp_masterservice=temp_masterservice->next){
@@ -4740,6 +4746,10 @@ int xodtemplate_duplicate_objects(void){
                                        
my_free(temp_servicedependency->dependent_service_description);
                                        
temp_servicedependency->dependent_service_description=(char 
*)strdup(temp_dependentservice->name2);
  +                                     /* MG(20090902): Same host 
servicegroups dependencies */
+                                       if(same_host_servicedependency==TRUE)
+                                        
temp_servicedependency->host_name=(char*)strdup(temp_dependentservice->name1);
+
                                        /* clear the dependent servicegroup */
                                        
temp_servicedependency->have_dependent_servicegroup_name=FALSE;
                                        
my_free(temp_servicedependency->dependent_servicegroup_name);
@@ -4754,7 +4764,11 @@ int xodtemplate_duplicate_objects(void){
                                        }
                                /* duplicate service dependency definition */
-                        
result=xodtemplate_duplicate_servicedependency(temp_servicedependency,temp_servicedependency->host_name,temp_servicedependency->service_description,NULL,NULL,temp_dependentservice->name1,temp_dependentservice->name2,NULL,NULL);
+                               /* MG(20090902): Same host servicegroups 
dependencies */
+                               if(same_host_servicedependency==TRUE)
+                                
result=xodtemplate_duplicate_servicedependency(temp_servicedependency,temp_dependentservice->name1,temp_servicedependency->service_description,NULL,NULL,temp_dependentservice->name1,temp_dependentservice->name2,NULL,NULL);
+                               else
+                                
result=xodtemplate_duplicate_servicedependency(temp_servicedependency,temp_servicedependency->host_name,temp_servicedependency->service_description,NULL,NULL,temp_dependentservice->name1,temp_dependentservice->name2,NULL,NULL);
                                /* exit on error */
                                if(result==ERROR){
-- 
1.6.3.3


------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Nagios-users mailing list
Nagios-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting 
any issue. 
::: Messages without supporting info will risk being sent to /dev/null

Reply via email to