*/
static char const RCSID[] =
- "$Id: radrealms.c,v 1.1 2002/10/05 04:35:24 fcusack Exp $";
+ "$Id: radrealms.c,v 1.2 2004/11/14 07:26:26 paulus Exp $";
-#include "pppd.h"
-#include "radiusclient.h"
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
+#include <pppd/pppd.h>
+
+#include "radiusclient.h"
-char pppd_version[] = VERSION;
+char pppd_version[] = PPPD_VERSION;
char radrealms_config[MAXPATHLEN] = "/etc/radiusclient/realms";
static option_t Options[] = {
- { "realms-config-file", o_string, &radrealms_config },
+ { "realms-config-file", o_string, &radrealms_config,
+ "Configuration file for RADIUS realms", OPT_STATIC, NULL, MAXPATHLEN },
{ NULL }
};
FILE *fd;
SERVER *accts, *auths, *s;
char buffer[512], *p;
- int line, pos;
+ int line = 0;
auths = (SERVER *) malloc(sizeof(SERVER));
auths->max = 0;
if ((fd = fopen(radrealms_config, "r")) == NULL) {
option_error("cannot open %s", radrealms_config);
+ free(auths);
+ free(accts);
return;
- }
+ }
info("Reading %s", radrealms_config);
-
+
while ((fgets(buffer, sizeof(buffer), fd) != NULL)) {
line++;
fclose(fd);
option_error("%s: invalid line %d: %s", radrealms_config,
line, buffer);
+ free(auths);
+ free(accts);
return;
}
info("Parsing '%s' entry:", p);
fclose(fd);
option_error("%s: realm name missing on line %d: %s",
radrealms_config, line, buffer);
+ free(auths);
+ free(accts);
return;
}
fclose(fd);
option_error("%s: server address missing on line %d: %s",
radrealms_config, line, buffer);
+ free(auths);
+ free(accts);
return;
}
s->name[s->max] = strdup(p);
fclose(fd);
option_error("%s: server port missing on line %d: %s",
radrealms_config, line, buffer);
+ free(auths);
+ free(accts);
return;
}
s->port[s->max] = atoi(p);