aboutsummaryrefslogtreecommitdiff
path: root/src
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
parentb1e63f63d694ab1ffe255c5019a5d68a214680fd (diff)
downloadkrb5-db1c498c1f8409c079ae1f6d7707e110f939318a.zip
krb5-db1c498c1f8409c079ae1f6d7707e110f939318a.tar.gz
krb5-db1c498c1f8409c079ae1f6d7707e110f939318a.tar.bz2
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')
-rw-r--r--src/appl/bsd/ChangeLog11
-rw-r--r--src/appl/bsd/krlogind.c21
-rw-r--r--src/appl/bsd/krshd.c23
-rw-r--r--src/appl/bsd/login.c9
4 files changed, 63 insertions, 1 deletions
diff --git a/src/appl/bsd/ChangeLog b/src/appl/bsd/ChangeLog
index 21e8a12..25ac161 100644
--- a/src/appl/bsd/ChangeLog
+++ b/src/appl/bsd/ChangeLog
@@ -1,3 +1,14 @@
+Thu May 9 00:09:14 1996 Richard Basch <basch@lehman.com>
+
+ * krlogind.c krshd.c:
+ Use the replay cache associated with the default server name
+ (rc_host*), like telnetd does.
+
+Mon May 6 14:06:21 1996 Richard Basch <basch@lehman.com>
+
+ * login.c: SVR4 logins do not do motd or mailcheck normally; that
+ is a function of /etc/profile. login.krb should act the same...
+
Mon Apr 29 17:02:44 1996 Ken Raeburn <raeburn@cygnus.com>
Merge with Cygnus sources, changes from Mark Eichin, Marc
diff --git a/src/appl/bsd/krlogind.c b/src/appl/bsd/krlogind.c
index 0a44c8d..f016fcd 100644
--- a/src/appl/bsd/krlogind.c
+++ b/src/appl/bsd/krlogind.c
@@ -1413,6 +1413,7 @@ recvauth(valid_checksum)
char v4_instance[INST_SZ]; /* V4 Instance */
char v4_version[9];
krb5_authenticator *authenticator;
+ krb5_rcache rcache;
*valid_checksum = 0;
len = sizeof(laddr);
@@ -1436,6 +1437,26 @@ recvauth(valid_checksum)
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;
+ }
+
if ((status = krb5_compat_recvauth(bsd_context, &auth_context, &netf,
"KCMDV0.1",
NULL, /* Specify daemon principal */
diff --git a/src/appl/bsd/krshd.c b/src/appl/bsd/krshd.c
index 64b1b29..74e701d 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 */
diff --git a/src/appl/bsd/login.c b/src/appl/bsd/login.c
index 778d73d..34bbaec 100644
--- a/src/appl/bsd/login.c
+++ b/src/appl/bsd/login.c
@@ -260,6 +260,11 @@ extern int errno;
passsword */
#endif /* KRB4_GET_TICKETS */
+#ifdef __SVR4
+#define NO_MOTD
+#define NO_MAILCHECK
+#endif
+
char *getenv();
void dofork();
@@ -1994,6 +1999,7 @@ void motd()
void motd () { }
#endif
+#ifndef NO_MAILCHECK
void check_mail ()
{
char tbuf[MAXPATHLEN+2];
@@ -2003,6 +2009,9 @@ void check_mail ()
printf("You have %smail.\n",
(st.st_mtime > st.st_atime) ? "new " : "");
}
+#else
+void check_mail () { }
+#endif
void checknologin()
{