X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fconf.c;h=3b1eb49c23c86cccb4407e160374a8af92782b36;hp=0a72a3711025484fad55817e19c2eebd603780ee;hb=fdc6a2f106315cd9ed22943d8c0bd279631e66b4;hpb=0f9ad1f047efec53590dc43f07d225e5f20456cb diff --git a/src/conf.c b/src/conf.c index 0a72a371..3b1eb49c 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.7 2000/08/07 14:52:14 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 }, @@ -71,6 +71,7 @@ static internal_config_t hazahaza[] = { { "VpnMask", vpnmask, TYPE_IP }, { "Hostnames", resolve_dns, TYPE_BOOL }, { "IndirectData", indirectdata, TYPE_BOOL }, + { "TCPonly", tcponly, TYPE_BOOL }, { NULL, 0, 0 } }; @@ -109,6 +110,8 @@ cp p->data.val = 0; } + p->argtype = argtype; + if(p->data.val) { if(*cfg) @@ -195,6 +198,7 @@ cp config = cfg; } cp + return 0; } /* @@ -203,6 +207,7 @@ cp int read_config_file(const char *fname) { + int err; FILE *fp; cp if((fp = fopen (fname, "r")) == NULL) @@ -211,12 +216,10 @@ cp return 1; } - if(readconfig(fname, fp)) - return -1; - + err = readconfig(fname, fp); fclose (fp); cp - return 0; + return err; } /* @@ -260,11 +263,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;