Added support for autoconf

The following rules apply to the initial banner message printed by telnetd:

if libc contains cgetent and the "default" entry in /etc/gettytab
defines an im - use that.

else if configured with a specific default im (--enable-default-im) use that

else use a sensible default "systemname os-release (hostname) (ttyname)"

The im can now contain these vaiables:

%s - system name (uname -s)
%r - system release (uname -r)
%v - system version (uname -v)
%m - machine (uname -m)
%h - hostname
%t - tty
%d - date

Default for Cray is "Cray UNICOS (%h) (%t)",  (this should probably change)
 for AIX: "%s %v.%r (%h) (%t)"
 and for everything else: "%s %r (%h) (%t)".

These defaults are defined in ext.h

If the system does not have uname(2), %s defaults to "Unix"
 and %r, %v and %m to the-empty-string.

Is this clear enough?


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@59 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Unknown User d91-jda
1995-07-20 00:02:52 +00:00
parent ea8f6647cb
commit e555b42b4a

View File

@@ -35,9 +35,15 @@
static char sccsid[] = "@(#)utility.c 8.4 (Berkeley) 5/30/95";
#endif /* not lint */
#include <config.h>
#define PRINTOPTIONS
#include "telnetd.h"
#ifdef HAVE_UNAME
#include <sys/utsname.h>
#endif
/*
* utility functions performing io related tasks
*/
@@ -445,6 +451,9 @@ putf(cp, where)
register char *cp;
char *where;
{
#ifdef HAVE_UNAME
struct utsname name;
#endif
char *slash;
time_t t;
char db[100];
@@ -454,6 +463,20 @@ putf(cp, where)
extern char *strrchr();
#endif
/* if we don't have uname, set these to sensible values */
char *sysname = "Unix",
*machine = "",
*release = "",
*version = "";
#ifdef HAVE_UNAME
uname(&name);
sysname=name.sysname;
machine=name.machine;
release=name.release;
version=name.version;
#endif
putlocation = where;
while (*cp) {
@@ -480,6 +503,22 @@ putf(cp, where)
putstr(editedhost);
break;
case 's':
putstr(sysname);
break;
case 'm':
putstr(machine);
break;
case 'r':
putstr(release);
break;
case 'v':
putstr(version);
break;
case 'd':
(void)time(&t);
(void)strftime(db, sizeof(db), fmtstr, localtime(&t));