aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/telnet/telnetd/utility.c
diff options
context:
space:
mode:
authorPeter Wemm <peter@FreeBSD.org>1998-12-16 06:01:33 +0000
committerPeter Wemm <peter@FreeBSD.org>1998-12-16 06:01:33 +0000
commit3f0340f8380a31b202f649cba5b820bd673aca93 (patch)
treeacc43053c1287ceb27fe85e1a2c13b77ac7b5498 /crypto/telnet/telnetd/utility.c
parentc399ed564cde7c3cdbe340ec8c2e20cc14585379 (diff)
downloadsrc-3f0340f8380a31b202f649cba5b820bd673aca93.tar.gz
src-3f0340f8380a31b202f649cba5b820bd673aca93.zip
Old stuff from a source tree: copy (verbatum) the code to expand the
%s/%m in the default /etc/gettytab.
Notes
Notes: svn path=/head/; revision=41856
Diffstat (limited to 'crypto/telnet/telnetd/utility.c')
-rw-r--r--crypto/telnet/telnetd/utility.c33
1 files changed, 31 insertions, 2 deletions
diff --git a/crypto/telnet/telnetd/utility.c b/crypto/telnet/telnetd/utility.c
index 4c9dec1c118e..08ad0bbe776c 100644
--- a/crypto/telnet/telnetd/utility.c
+++ b/crypto/telnet/telnetd/utility.c
@@ -36,11 +36,12 @@
static const char sccsid[] = "@(#)utility.c 8.4 (Berkeley) 5/30/95";
#endif
static const char rcsid[] =
- "$Id$";
+ "$Id: utility.c,v 1.3 1998/02/16 12:09:28 markm Exp $";
#endif /* not lint */
#ifdef __FreeBSD__
#include <locale.h>
+#include <sys/utsname.h>
#endif
#define PRINTOPTIONS
#include "telnetd.h"
@@ -471,11 +472,21 @@ putf(cp, where)
#else
extern char *strrchr();
#endif
+#ifdef __FreeBSD__
+ static struct utsname kerninfo;
+
+ if (!*kerninfo.sysname)
+ uname(&kerninfo);
+#endif
putlocation = where;
while (*cp) {
- if (*cp != '%') {
+ if (*cp =='\n') {
+ putstr("\r\n");
+ cp++;
+ continue;
+ } else if (*cp != '%') {
putchr(*cp++);
continue;
}
@@ -507,6 +518,24 @@ putf(cp, where)
putstr(db);
break;
+#ifdef __FreeBSD__
+ case 's':
+ putstr(kerninfo.sysname);
+ break;
+
+ case 'm':
+ putstr(kerninfo.machine);
+ break;
+
+ case 'r':
+ putstr(kerninfo.release);
+ break;
+
+ case 'v':
+ putstr(kerninfo.version);
+ break;
+#endif
+
case '%':
putchr('%');
break;