diff --git a/appl/telnet/telnetd/utility.c b/appl/telnet/telnetd/utility.c index 1657c23d3..f8083be2e 100644 --- a/appl/telnet/telnetd/utility.c +++ b/appl/telnet/telnetd/utility.c @@ -35,9 +35,15 @@ static char sccsid[] = "@(#)utility.c 8.4 (Berkeley) 5/30/95"; #endif /* not lint */ +#include + #define PRINTOPTIONS #include "telnetd.h" +#ifdef HAVE_UNAME +#include +#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));