/* readconfig.c
* $Id: readconfig.c,v 1.3.4.6 2005/08/03 04:12:08 becker Exp $
* Ralf Becker <nctop@web.de>
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <stdio.h>
#include <stdlib.h>
#include "readline.h"
#include "globals.h"
#include "utils.h"
#include "readconfig.h"
static char cvsid[] = "$Id: readconfig.c,v 1.3.4.6 2005/08/03 04:12:08 becker Exp $";
/* read the hostnames from path */
int readconfig(char *path) {
FILE *stream;
char *line;
struct hostlist_t *entry;
if ((stream = fopen(path, "r")) == NULL) {
perror(path);
return -1;
}
while ((line = readline(stream)) != NULL) {
/* skip comments and empty lines */
if ((*line == '#') || (*line == 0)) {
free(line);
continue;
}
/* check if line contains a valid domain name */
if (!isdomain(line)) {
free(line);
fprintf(stderr,"not a valid domain name: '%s'\n",line);
continue;
}
if ((entry = malloc(sizeof(struct hostlist_t))) == NULL) {
perror(NULL);
return -1;
}
entry->name = line;
/* initialize structure */
entry->error = NULL;
if (slist_append(hlist, entry) == -1) {
perror(NULL);
return -1;
}
}
fclose(stream);
return (slist_size(hlist));
}
syntax highlighted by Code2HTML, v. 0.9.1