X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fconf.c;h=9bc25a79cecdfc517fbab696f3af33ca2ecedb2e;hp=0a72a3711025484fad55817e19c2eebd603780ee;hb=b1ecbf977722ec473fc8007acd39eb0de581de1a;hpb=0f9ad1f047efec53590dc43f07d225e5f20456cb diff --git a/src/conf.c b/src/conf.c index 0a72a371..9bc25a79 100644 --- a/src/conf.c +++ b/src/conf.c @@ -19,7 +19,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: conf.c,v 1.9.4.4 2000/06/29 19:47:02 guus Exp $ + $Id: conf.c,v 1.9.4.6 2000/07/02 13:36:18 guus Exp $ */ @@ -59,7 +59,7 @@ typedef struct internal_config_t { */ static internal_config_t hazahaza[] = { { "AllowConnect", allowconnect, TYPE_BOOL }, /* Is not used anywhere. Remove? */ - { "ConnectTo", upstreamip, TYPE_IP }, + { "ConnectTo", upstreamip, TYPE_NAME }, { "ConnectPort", upstreamport, TYPE_INT }, { "ListenPort", listenport, TYPE_INT }, { "MyOwnVPNIP", myvpnip, TYPE_IP }, @@ -109,6 +109,8 @@ cp p->data.val = 0; } + p->argtype = argtype; + if(p->data.val) { if(*cfg) @@ -195,6 +197,7 @@ cp config = cfg; } cp + return 0; } /* @@ -203,6 +206,7 @@ cp int read_config_file(const char *fname) { + int err; FILE *fp; cp if((fp = fopen (fname, "r")) == NULL) @@ -211,12 +215,10 @@ cp return 1; } - if(readconfig(fname, fp)) - return -1; - + err = readconfig(fname, fp); fclose (fp); cp - return 0; + return err; } /* @@ -260,11 +262,13 @@ void clear_config() { config_t *p, *next; cp - for(p = config; p; p = next) + for(p = config; p != NULL; p = next) { next = p->next; - if(p->data.ptr) - free(p->data.ptr); + if(p->data.ptr && (p->argtype == TYPE_NAME)) + { + free(p->data.ptr); + } free(p); } config = NULL;