From ad3f3d8f3c978ed1c29f3262f9163849551a536c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Wed, 30 Nov 2005 12:39:19 +0000 Subject: [PATCH] (set_field): try another way to calculate the path to the database/logfile/signal-socket git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@16321 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/kadm5/context_s.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/kadm5/context_s.c b/lib/kadm5/context_s.c index 0c1d5d6ef..5c771d9cd 100644 --- a/lib/kadm5/context_s.c +++ b/lib/kadm5/context_s.c @@ -74,11 +74,21 @@ set_field(krb5_context context, const krb5_config_binding *binding, if(p) *variable = strdup(p); else { + const char *p1; p = strrchr(dbname, '.'); - if(p == NULL) - asprintf(variable, "%s.%s", dbname, ext); + p1 = strrchr(dbname, '/'); + if (p1) { + p1++; + if (p1 > p) + p = p1 + strlen(p1); + } + if(p1 == NULL) + asprintf(variable, "%s/%s.%s", HDB_DB_DIR, dbname, ext); else - asprintf(variable, "%.*s.%s", (int)(p - dbname), dbname, ext); + asprintf(variable, "%.*s/%.*s.%s", + (int)(p1 - dbname), dbname, + (int)(p - p1), p1, + ext); } }