diff options
author | Richard Basch <probe@mit.edu> | 1996-05-09 16:01:08 +0000 |
---|---|---|
committer | Richard Basch <probe@mit.edu> | 1996-05-09 16:01:08 +0000 |
commit | db1c498c1f8409c079ae1f6d7707e110f939318a (patch) | |
tree | b1a7d1ae35d369df4c5663976e910d3eb31b21ea /src | |
parent | b1e63f63d694ab1ffe255c5019a5d68a214680fd (diff) | |
download | krb5-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/ChangeLog | 11 | ||||
-rw-r--r-- | src/appl/bsd/krlogind.c | 21 | ||||
-rw-r--r-- | src/appl/bsd/krshd.c | 23 | ||||
-rw-r--r-- | src/appl/bsd/login.c | 9 |
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() { |