summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kgssapi/gss_impl.c19
-rw-r--r--usr.sbin/gssd/gssd.c2
2 files changed, 13 insertions, 8 deletions
diff --git a/sys/kgssapi/gss_impl.c b/sys/kgssapi/gss_impl.c
index ab6e55b..3a427a5 100644
--- a/sys/kgssapi/gss_impl.c
+++ b/sys/kgssapi/gss_impl.c
@@ -105,14 +105,17 @@ sys_gssd_syscall(struct thread *td, struct gssd_syscall_args *uap)
if (error)
return (error);
- sun.sun_family = AF_LOCAL;
- strcpy(sun.sun_path, path);
- sun.sun_len = SUN_LEN(&sun);
-
- nconf = getnetconfigent("local");
- cl = clnt_reconnect_create(nconf,
- (struct sockaddr *) &sun, GSSD, GSSDVERS,
- RPC_MAXDATASIZE, RPC_MAXDATASIZE);
+ if (path[0] != '\0') {
+ sun.sun_family = AF_LOCAL;
+ strcpy(sun.sun_path, path);
+ sun.sun_len = SUN_LEN(&sun);
+
+ nconf = getnetconfigent("local");
+ cl = clnt_reconnect_create(nconf,
+ (struct sockaddr *) &sun, GSSD, GSSDVERS,
+ RPC_MAXDATASIZE, RPC_MAXDATASIZE);
+ } else
+ cl = NULL;
mtx_lock(&kgss_gssd_lock);
oldcl = kgss_gssd_handle;
diff --git a/usr.sbin/gssd/gssd.c b/usr.sbin/gssd/gssd.c
index e85dfd7..f3e5ce9 100644
--- a/usr.sbin/gssd/gssd.c
+++ b/usr.sbin/gssd/gssd.c
@@ -254,6 +254,7 @@ main(int argc, char **argv)
gssd_syscall(_PATH_GSSDSOCK);
svc_run();
+ gssd_syscall("");
return (0);
}
@@ -1285,6 +1286,7 @@ void gssd_terminate(int sig __unused)
if (hostbased_initiator_cred != 0)
unlink(GSSD_CREDENTIAL_CACHE_FILE);
#endif
+ gssd_syscall("");
exit(0);
}
OpenPOWER on IntegriCloud