/*
conf.c -- configuration code
Copyright (C) 1998 Emphyrio,
- Copyright (C) 1998,99 Ivo Timmermans <zarq@iname.com>
+ Copyright (C) 1998,1999,2000 Ivo Timmermans <zarq@iname.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-/* foute config read code, GPL, emphyrio 1998 */
-/* Mutilated by me -- Ivo */
+/* Created more dynamic storage for lines read from the config file. --
+ Cris van Pelt */
#include "config.h"
These are all the possible configurable values
*/
static internal_config_t hazahaza[] = {
- { "AllowConnect", allowconnect, TYPE_BOOL },
+ { "AllowConnect", allowconnect, TYPE_BOOL }, /* Is not used anywhere. Remove? */
{ "ConnectTo", upstreamip, TYPE_IP },
{ "ConnectPort", upstreamport, TYPE_INT },
{ "ListenPort", listenport, TYPE_INT },
{ "PingTimeout", pingtimeout, TYPE_INT },
{ "TapDevice", tapdevice, TYPE_NAME },
{ "KeyExpire", keyexpire, TYPE_INT },
- { "ProxyMode", proxymode, TYPE_BOOL },
+ { "VpnMask", vpnmask, TYPE_IP },
{ NULL, 0, 0 }
};
int
readconfig(const char *fname, FILE *fp)
{
- char line[81];
+ char *line, *temp_buf;
char *p, *q;
int i, lineno = 0;
config_t *cfg;
+ line = (char *)xmalloc(80 * sizeof(char));
+ temp_buf = (char *)xmalloc(80 * sizeof(char));
+
for(;;)
{
if(fgets(line, 80, fp) == NULL)
return 0;
+
+ while(!index(line, '\n'))
+ {
+ fgets(temp_buf, (strlen(line)+1) * 80, fp);
+ if(!temp_buf)
+ break;
+ strcat(line, temp_buf);
+ line = (char *)xrealloc(line, (strlen(line)+1) * sizeof(char));
+ }
lineno++;
if((p = strtok(line, "\t\n\r =")) == NULL)
/* Not found */
return NULL;
}
-