Service dependencies broken in CVS HEAD?

Thomas Guyot-Sionnest dermoth at aei.ca
Mon Feb 26 13:52:36 CET 2007


Hi there,

Yesterday I wanted to redo my patch for same-host service dependencies
and add a master switch in the main config file so that by default it
won't allow to omit the dependent_host*_name parameter.

I started by building a test config... I just couldn't manage to create
a service dependency. Even the simplest and straightforward
servicedependency definition just wouldn't work. To be on the safe side
I even checked one of my prod config with CVS HEAD after removing
same-host svc deps and making it v3-compatible with no luck either. It
would complain on every servicedependency definitions.

Looking at the code I couldn't really tell what was wrong as I do not
yet understand fully how Nagios parses the config.

Also worth noting is some code for same-host depedencies. It's so
incomplete I just can't understand how it got there!?!

$ nl xdata/xodtemplate.c|grep -iC3 same.host
  3952          char *host_name=NULL;
  3953          char *service_descriptions=NULL;
  3954          int first_item=FALSE;
  3955          int same_host_dependency=FALSE;
  3956  #ifdef NSCORE
  3957          char *temp_buffer=NULL;
  3958  #endif
--
  4365          /****** PROCESS SERVICE DEPENDENCY DEPENDENT
HOSTS/HOSTGROUPS/SERVICES *****/
  4366
for(temp_servicedependency=xodtemplate_servicedependency_list;temp_servicedependency!=NULL;temp_servicedependency=temp_servicedependency->next){

  4367                  /* ADDED 02/04/2007 - special case for "same
host" dependencies */
  4368
if(temp_servicedependency->dependent_host_name==NULL &&
temp_servicedependency->dependent_hostgroup_name==NULL){
  4369                          if(temp_servicedependency->host_name)
  4370
temp_servicedependency->dependent_host_name=(char
*)strdup(temp_servicedependency->host_name);

As you can see there's a boolean for same host deps that isn't used
(should be set to TRUE where it duplicates host_name to
dependent_host_name and also used later to avoid most duplications to
occur. Also hostgroup_name ist't duplicated so I think it wouldn't work
with hostgroup_name.

Thanks,

Thomas

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV




More information about the Developers mailing list