summaryrefslogtreecommitdiffstats
path: root/src/appl/bsd/krshd.c
diff options
context:
space:
mode:
authorRichard Basch <probe@mit.edu>1996-05-09 16:01:08 +0000
committerRichard Basch <probe@mit.edu>1996-05-09 16:01:08 +0000
commitdb1c498c1f8409c079ae1f6d7707e110f939318a (patch)
treeb1a7d1ae35d369df4c5663976e910d3eb31b21ea /src/appl/bsd/krshd.c
parentb1e63f63d694ab1ffe255c5019a5d68a214680fd (diff)
downloadkrb5-db1c498c1f8409c079ae1f6d7707e110f939318a.tar.gz
krb5-db1c498c1f8409c079ae1f6d7707e110f939318a.tar.xz
krb5-db1c498c1f8409c079ae1f6d7707e110f939318a.zip
krlogind.c krshd.c:
Use the default service principal as the basis for the rcache name. login.c: SVR4 systems typically do not do mail/motd checks in login; they do it in the profiles (/etc/profile). Follow that convention... git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@7951 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/appl/bsd/krshd.c')
-rw-r--r--src/appl/bsd/krshd.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/appl/bsd/krshd.c b/src/appl/bsd/krshd.c
index 64b1b2974e..74e701db9a 100644
--- a/src/appl/bsd/krshd.c
+++ b/src/appl/bsd/krshd.c
@@ -1682,8 +1682,9 @@ recvauth(netf, peersin, valid_checksum)
krb5_data inbuf;
char v4_instance[INST_SZ]; /* V4 Instance */
char v4_version[9];
-krb5_authenticator *authenticator;
+ krb5_authenticator *authenticator;
krb5_ticket *ticket;
+ krb5_rcache rcache;
*valid_checksum = 0;
len = sizeof(laddr);
@@ -1706,6 +1707,26 @@ krb5_authenticator *authenticator;
KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR))
return status;
+ status = krb5_auth_con_getrcache(bsd_context, auth_context, &rcache);
+ if (status) return status;
+
+ if (! rcache) {
+ krb5_principal server;
+
+ status = krb5_sname_to_principal(bsd_context, 0, 0,
+ KRB5_NT_SRV_HST, &server);
+ if (status) return status;
+
+ status = krb5_get_server_rcache(bsd_context,
+ krb5_princ_component(bsd_context, server, 0),
+ &rcache);
+ krb5_free_principal(bsd_context, server);
+ if (status) return status;
+
+ status = krb5_auth_con_setrcache(bsd_context, auth_context, rcache);
+ if (status) return status;
+ }
+
status = krb5_compat_recvauth(bsd_context, &auth_context, &netf,
"KCMDV0.1",
NULL, /* Specify daemon principal */