From 34ff103d2acc30bb534554edf321efc137e6cad8 Mon Sep 17 00:00:00 2001 From: David Shaw Date: Sun, 5 Jun 2005 14:34:47 +0000 Subject: [PATCH] * ksutil.c (init_ks_options, parse_ks_options): Provide a default "/" path unless overridden by the config. Allow config to specify items multiple times and take the last specified item. --- keyserver/ChangeLog | 6 ++++++ keyserver/ksutil.c | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/keyserver/ChangeLog b/keyserver/ChangeLog index b8b6658dd..d73b9e33f 100644 --- a/keyserver/ChangeLog +++ b/keyserver/ChangeLog @@ -1,3 +1,9 @@ +2005-06-05 David Shaw + + * ksutil.c (init_ks_options, parse_ks_options): Provide a default + "/" path unless overridden by the config. Allow config to specify + items multiple times and take the last specified item. + 2005-06-04 David Shaw * gpgkeys_hkp.c, gpgkeys_oldhkp.c: Add support for HKP servers diff --git a/keyserver/ksutil.c b/keyserver/ksutil.c index 0e14e2eaf..813d1eb72 100644 --- a/keyserver/ksutil.c +++ b/keyserver/ksutil.c @@ -87,6 +87,12 @@ init_ks_options(void) opt->action=KS_UNKNOWN; opt->flags.check_cert=1; opt->timeout=DEFAULT_KEYSERVER_TIMEOUT; + opt->path=strdup("/"); + if(!opt->path) + { + free(opt); + opt=NULL; + } } return opt; @@ -144,6 +150,7 @@ parse_ks_options(char *line,struct ks_options *opt) if(sscanf(line,"HOST %" MKSTRING(MAX_HOST) "s\n",host)==1) { host[MAX_HOST]='\0'; + free(opt->host); opt->host=strdup(host); if(!opt->host) return KEYSERVER_NO_MEMORY; @@ -153,6 +160,7 @@ parse_ks_options(char *line,struct ks_options *opt) if(sscanf(line,"PORT %" MKSTRING(MAX_PORT) "s\n",port)==1) { port[MAX_PORT]='\0'; + free(opt->port); opt->port=strdup(port); if(!opt->port) return KEYSERVER_NO_MEMORY; @@ -162,6 +170,7 @@ parse_ks_options(char *line,struct ks_options *opt) if(sscanf(line,"SCHEME %" MKSTRING(MAX_SCHEME) "s\n",scheme)==1) { scheme[MAX_SCHEME]='\0'; + free(opt->scheme); opt->scheme=strdup(scheme); if(!opt->scheme) return KEYSERVER_NO_MEMORY; @@ -171,6 +180,7 @@ parse_ks_options(char *line,struct ks_options *opt) if(sscanf(line,"AUTH %" MKSTRING(MAX_AUTH) "s\n",auth)==1) { auth[MAX_AUTH]='\0'; + free(opt->auth); opt->auth=strdup(auth); if(!opt->auth) return KEYSERVER_NO_MEMORY; @@ -180,6 +190,7 @@ parse_ks_options(char *line,struct ks_options *opt) if(sscanf(line,"PATH %" MKSTRING(URLMAX_PATH) "s\n",path)==1) { path[URLMAX_PATH]='\0'; + free(opt->path); opt->path=strdup(path); if(!opt->path) return KEYSERVER_NO_MEMORY; @@ -189,6 +200,7 @@ parse_ks_options(char *line,struct ks_options *opt) if(sscanf(line,"OPAQUE %" MKSTRING(MAX_OPAQUE) "s\n",opaque)==1) { opaque[MAX_OPAQUE]='\0'; + free(opt->opaque); opt->opaque=strdup(opaque); if(!opt->opaque) return KEYSERVER_NO_MEMORY;