Looking for "damon.cfg" in PREFIX/etc/damon.cfg and bailing out if fails

This commit is contained in:
Pierre Pronchery 2007-05-10 18:00:35 +00:00
parent f1db0c7a76
commit 81b0cfa01b
3 changed files with 46 additions and 5 deletions

View File

@ -1,4 +1,9 @@
PACKAGE = Probe
VERSION = 0.0.0
SUBDIRS = src SUBDIRS = src
RM = rm -f
LN = ln -sf
TAR = tar -czvf
all: subdirs all: subdirs
@ -12,10 +17,22 @@ clean:
distclean: distclean:
@for i in $(SUBDIRS); do (cd $$i && $(MAKE) distclean) || exit; done @for i in $(SUBDIRS); do (cd $$i && $(MAKE) distclean) || exit; done
dist:
$(RM) -r $(PACKAGE)-$(VERSION)
$(LN) . $(PACKAGE)-$(VERSION)
@$(TAR) $(PACKAGE)-$(VERSION).tar.gz \
$(PACKAGE)-$(VERSION)/src/probe.c \
$(PACKAGE)-$(VERSION)/src/damon.c \
$(PACKAGE)-$(VERSION)/src/project.conf \
$(PACKAGE)-$(VERSION)/Makefile \
$(PACKAGE)-$(VERSION)/config.h \
$(PACKAGE)-$(VERSION)/project.conf
$(RM) $(PACKAGE)-$(VERSION)
install: all install: all
@for i in $(SUBDIRS); do (cd $$i && $(MAKE) install) || exit; done @for i in $(SUBDIRS); do (cd $$i && $(MAKE) install) || exit; done
uninstall: uninstall:
@for i in $(SUBDIRS); do (cd $$i && $(MAKE) uninstall) || exit; done @for i in $(SUBDIRS); do (cd $$i && $(MAKE) uninstall) || exit; done
.PHONY: all subdirs clean distclean install uninstall .PHONY: all subdirs clean distclean dist install uninstall

View File

@ -1,2 +1,6 @@
package=Probe
version=0.0.0
config=h
subdirs=src subdirs=src
dist=Makefile dist=Makefile,config.h

View File

@ -11,9 +11,14 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include "../config.h"
#define DAMON_DEFAULT_REFRESH 10 #define DAMON_DEFAULT_REFRESH 10
#ifndef ETCDIR
# define ETCDIR PREFIX "/etc"
#endif
/* types */ /* types */
typedef struct _Host typedef struct _Host
@ -26,6 +31,7 @@ typedef struct _Host
/* DaMon */ /* DaMon */
/* types */
typedef struct _DaMon typedef struct _DaMon
{ {
unsigned int refresh; unsigned int refresh;
@ -33,10 +39,16 @@ typedef struct _DaMon
unsigned int hosts_cnt; unsigned int hosts_cnt;
Event * event; Event * event;
} DaMon; } DaMon;
/* functions */
/* private */
static int _damon_error(char * message, int ret); static int _damon_error(char * message, int ret);
/* public */
/* _damon */
static int _damon_init(DaMon * damon); static int _damon_init(DaMon * damon);
static void _damon_destroy(DaMon * damon); static void _damon_destroy(DaMon * damon);
static int _damon_refresh(DaMon * damon);
static int _damon(void) static int _damon(void)
{ {
DaMon damon; DaMon damon;
@ -56,7 +68,10 @@ static int _damon_error(char * message, int ret)
return ret; return ret;
} }
/* _damon_init */
static int _init_config(DaMon * damon); static int _init_config(DaMon * damon);
static int _damon_refresh(DaMon * damon);
static int _damon_init(DaMon * damon) static int _damon_init(DaMon * damon)
{ {
struct timeval tv; struct timeval tv;
@ -73,10 +88,13 @@ static int _damon_init(DaMon * damon)
return 0; return 0;
} }
/* _init_config */
static int _config_hosts(DaMon * damon, Config * config, char * hosts); static int _config_hosts(DaMon * damon, Config * config, char * hosts);
static int _init_config(DaMon * damon) static int _init_config(DaMon * damon)
{ {
Config * config; Config * config;
char * filename = ETCDIR "/damon.cfg";
char * p; char * p;
char * q; char * q;
int tmp; int tmp;
@ -86,10 +104,12 @@ static int _init_config(DaMon * damon)
damon->refresh = DAMON_DEFAULT_REFRESH; damon->refresh = DAMON_DEFAULT_REFRESH;
damon->hosts = NULL; damon->hosts = NULL;
damon->hosts_cnt = 0; damon->hosts_cnt = 0;
if(config_load(config, "damon.cfg") != 0) /* FIXME multiple filenames */ if(config_load(config, filename) != 0)
{ {
fprintf(stderr, "DaMon: %s: Could not load configuration\n",
filename);
config_delete(config); config_delete(config);
return 0; return 1;
} }
if((p = config_get(config, "", "refresh")) != NULL) if((p = config_get(config, "", "refresh")) != NULL)
{ {