/*****************************************************************************
*
* XODTEMPLATE.C - Template-based object configuration data input routines
*
* Copyright (c) 2001-2007 Ethan Galstad (nagios@nagios.org)
* Last Modified: 01-19-2007
*
* Description:
*
* Routines for parsing and resolving template-based object definitions.
* Basic steps involved in this in the daemon are as follows:
*
* 1) Read
* 2) Resolve
* 3) Duplicate
* 4) Recombobulate
* 5) Cache
* 7) Register
* 8) Cleanup
*
* The steps involved for the CGIs differ a bit, since they read the cached
* definitions which are already resolved, recombobulated and duplicated. In
* otherwords, they've already been "flattened"...
*
* 1) Read
* 2) Register
* 3) Cleanup
*
*
* License:
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*****************************************************************************/
/*********** COMMON HEADER FILES ***********/
#include "../include/config.h"
#include "../include/common.h"
#include "../include/objects.h"
#include "../include/locations.h"
/**** CORE OR CGI SPECIFIC HEADER FILES ****/
#ifdef NSCORE
#include "../include/nagios.h"
#endif
#ifdef NSCGI
#include "../include/cgiutils.h"
#endif
/**** DATA INPUT-SPECIFIC HEADER FILES ****/
#include "xodtemplate.h"
#ifdef NSCORE
extern int use_regexp_matches;
extern int use_true_regexp_matching;
extern char *macro_x[MACRO_X_COUNT];
#endif
xodtemplate_timeperiod *xodtemplate_timeperiod_list=NULL;
xodtemplate_command *xodtemplate_command_list=NULL;
xodtemplate_contactgroup *xodtemplate_contactgroup_list=NULL;
xodtemplate_hostgroup *xodtemplate_hostgroup_list=NULL;
xodtemplate_servicegroup *xodtemplate_servicegroup_list=NULL;
xodtemplate_servicedependency *xodtemplate_servicedependency_list=NULL;
xodtemplate_serviceescalation *xodtemplate_serviceescalation_list=NULL;
xodtemplate_contact *xodtemplate_contact_list=NULL;
xodtemplate_host *xodtemplate_host_list=NULL;
xodtemplate_service *xodtemplate_service_list=NULL;
xodtemplate_hostdependency *xodtemplate_hostdependency_list=NULL;
xodtemplate_hostescalation *xodtemplate_hostescalation_list=NULL;
xodtemplate_hostextinfo *xodtemplate_hostextinfo_list=NULL;
xodtemplate_serviceextinfo *xodtemplate_serviceextinfo_list=NULL;
void *xodtemplate_current_object=NULL;
int xodtemplate_current_object_type=XODTEMPLATE_NONE;
int xodtemplate_current_config_file=0;
char **xodtemplate_config_files;
char xodtemplate_cache_file[MAX_FILENAME_LENGTH];
=1= |