svn commit: r262673 - head/contrib/telnet/telnetd

Marcel Moolenaar marcel at FreeBSD.org
Sun Mar 2 00:47:48 UTC 2014


Author: marcel
Date: Sun Mar  2 00:47:47 2014
New Revision: 262673
URL: http://svnweb.freebsd.org/changeset/base/262673

Log:
  Revive support for /etc/issue, lost due revision 81963.
  
  Obtained from:	Juniper Networks, Inc.

Modified:
  head/contrib/telnet/telnetd/telnetd.c

Modified: head/contrib/telnet/telnetd/telnetd.c
==============================================================================
--- head/contrib/telnet/telnetd/telnetd.c	Sun Mar  2 00:30:42 2014	(r262672)
+++ head/contrib/telnet/telnetd/telnetd.c	Sun Mar  2 00:47:47 2014	(r262673)
@@ -740,6 +740,10 @@ telnet(int f, int p, char *host)
 	char *HE;
 	char *HN;
 	char *IM;
+	char *IF;
+	char *if_buf;
+	int if_fd = -1;
+	struct stat statbuf;
 	int nfd;
 
 	/*
@@ -905,8 +909,13 @@ telnet(int f, int p, char *host)
 		HE = Getstr("he", &cp);
 		HN = Getstr("hn", &cp);
 		IM = Getstr("im", &cp);
+		IF = Getstr("if", &cp);
 		if (HN && *HN)
 			(void) strlcpy(host_name, HN, sizeof(host_name));
+		if (IF) {
+		    if_fd = open(IF, O_RDONLY, 000);
+		    IM = 0;
+		}
 		if (IM == 0)
 			IM = strdup("");
 	} else {
@@ -916,6 +925,16 @@ telnet(int f, int p, char *host)
 	edithost(HE, host_name);
 	if (hostinfo && *IM)
 		putf(IM, ptyibuf2);
+	if (IF && if_fd != -1) {
+	    if(fstat (if_fd, &statbuf)!=-1) {
+		if (statbuf.st_size > 0) {
+		    if_buf = (char *) mmap (0, statbuf.st_size, PROT_READ, 0, if_fd, 0);
+		    putf(if_buf, ptyibuf2);
+		    munmap (if_buf, statbuf.st_size);
+		}
+		close (if_fd);
+	    }
+	}
 
 	if (pcc)
 		(void) strncat(ptyibuf2, ptyip, pcc+1);


More information about the svn-src-head mailing list