summaryrefslogtreecommitdiff
path: root/net/SSLtelnet/files/patch-an
diff options
context:
space:
mode:
authorKris Kennaway <kris@FreeBSD.org>2004-08-16 05:36:44 +0000
committerKris Kennaway <kris@FreeBSD.org>2004-08-16 05:36:44 +0000
commit134baa7fc1396b05bfc2019f94acec2f6cf78e3b (patch)
tree4a43eca70a6d4767e84e6c548e6d4ead6e5c7f94 /net/SSLtelnet/files/patch-an
parentThe distfile is now fetchable again, so rescue this port from death row. (diff)
As previously announced, remove these broken/insecure/obsolete ports.
Notes
Notes: svn path=/head/; revision=116348
Diffstat (limited to '')
-rw-r--r--net/SSLtelnet/files/patch-an1320
1 files changed, 0 insertions, 1320 deletions
diff --git a/net/SSLtelnet/files/patch-an b/net/SSLtelnet/files/patch-an
deleted file mode 100644
index 7d2a742426ec..000000000000
--- a/net/SSLtelnet/files/patch-an
+++ /dev/null
@@ -1,1320 +0,0 @@
-diff -u telnetd.old/authenc.c telnetd/authenc.c
---- telnetd.old/authenc.c Fri Oct 15 05:47:52 1993
-+++ telnetd/authenc.c Fri Aug 2 11:02:09 2002
-@@ -45,8 +45,7 @@
- int len;
- {
- if (nfrontp + len < netobuf + BUFSIZ) {
-- memcpy((void *)nfrontp, (void *)str, len);
-- nfrontp += len;
-+ output_datalen(str, len);
- return(len);
- }
- return(0);
-diff -u telnetd.old/ext.h telnetd/ext.h
---- telnetd.old/ext.h Sat Aug 2 14:55:54 1997
-+++ telnetd/ext.h Thu Aug 1 14:56:01 2002
-@@ -74,7 +74,8 @@
-
- extern char netibuf[BUFSIZ], *netip;
-
--extern char netobuf[BUFSIZ+NETSLOP], *nfrontp, *nbackp;
-+/* extern char netobuf[BUFSIZ+NETSLOP], *nfrontp, *nbackp; */
-+extern char netobuf[BUFSIZ], *nfrontp, *nbackp;
- extern char *neturg; /* one past last bye of urgent data */
-
- extern int pcc, ncc;
-@@ -183,8 +184,13 @@
- tty_setsofttab P((int)),
- tty_tspeed P((int)),
- willoption P((int)),
-- wontoption P((int)),
-- writenet P((unsigned char *, int));
-+ /*wontoption P((int)),
-+ writenet P((unsigned char *, int));*/
-+ wontoption P((int));
-+
-+int output_data __P((const char *, ...)) __printflike(1, 2);
-+void output_datalen __P((const char *, int));
-+
-
- #if defined(ENCRYPT)
- extern void (*encrypt_output) P((unsigned char *, int));
-diff -u telnetd.old/slc.c telnetd/slc.c
---- telnetd.old/slc.c Fri Oct 15 05:48:20 1993
-+++ telnetd/slc.c Fri Aug 2 11:03:20 2002
-@@ -172,7 +172,6 @@
- register unsigned char **bufp;
- {
- register int len;
-- void netflush();
-
- /*
- * If a change has occured, store the new terminal control
-@@ -200,7 +199,7 @@
- (void) sprintf((char *)slcptr, "%c%c", IAC, SE);
- slcptr += 2;
- len = slcptr - slcbuf;
-- writenet(slcbuf, len);
-+ output_datalen(slcbuf, len);
- netflush(); /* force it out immediately */
- }
- }
-diff -u telnetd.old/state.c telnetd/state.c
---- telnetd.old/state.c Fri Oct 15 05:49:12 1993
-+++ telnetd/state.c Fri Aug 2 10:08:59 2002
-@@ -35,6 +35,7 @@
- static char sccsid[] = "@(#)state.c 5.10 (Berkeley) 3/22/91";
- #endif /* not lint */
-
-+#include <stdarg.h>
- #include "telnetd.h"
- #if defined(AUTHENTICATE)
- #include <libtelnet/auth.h>
-@@ -193,8 +194,7 @@
- }
-
- netclear(); /* clear buffer back */
-- *nfrontp++ = IAC;
-- *nfrontp++ = DM;
-+ output_data("%c%c", IAC, DM);
- neturg = nfrontp-1; /* off by one XXX */
- DIAG(TD_OPTIONS,
- printoption("td: send IAC", DM));
-@@ -447,8 +447,7 @@
- set_his_want_state_will(option);
- do_dont_resp[option]++;
- }
-- (void) sprintf(nfrontp, doopt, option);
-- nfrontp += sizeof (dont) - 2;
-+ output_data((const char *)doopt, option);
-
- DIAG(TD_OPTIONS, printoption("td: send do", option));
- }
-@@ -661,8 +660,7 @@
- set_his_want_state_wont(option);
- do_dont_resp[option]++;
- }
-- (void) sprintf(nfrontp, dont, option);
-- nfrontp += sizeof (doopt) - 2;
-+ output_data((const char *)dont, option);
-
- DIAG(TD_OPTIONS, printoption("td: send dont", option));
- }
-@@ -807,8 +805,7 @@
- set_my_want_state_will(option);
- will_wont_resp[option]++;
- }
-- (void) sprintf(nfrontp, will, option);
-- nfrontp += sizeof (doopt) - 2;
-+ output_data((const char *)will, option);
-
- DIAG(TD_OPTIONS, printoption("td: send will", option));
- }
-@@ -963,8 +960,7 @@
- set_my_want_state_wont(option);
- will_wont_resp[option]++;
- }
-- (void) sprintf(nfrontp, wont, option);
-- nfrontp += sizeof (wont) - 2;
-+ output_data((const char *)wont, option);
-
- DIAG(TD_OPTIONS, printoption("td: send wont", option));
- }
-@@ -1435,9 +1431,57 @@
- ADD(IAC);
- ADD(SE);
-
-- writenet(statusbuf, ncp - statusbuf);
-+ /*writenet(statusbuf, ncp - statusbuf);*/
-+ output_datalen(statusbuf, ncp - statusbuf);
- netflush(); /* Send it on its way */
-
- DIAG(TD_OPTIONS,
- {printsub('>', statusbuf, ncp - statusbuf); netflush();});
-+}
-+
-+
-+/*
-+ * This function appends data to nfrontp and advances nfrontp.
-+ * Returns the number of characters written altogether (the
-+ * buffer may have been flushed in the process).
-+ */
-+
-+int
-+output_data(const char *format, ...)
-+{
-+ va_list args;
-+ int len;
-+ char *buf;
-+
-+ va_start(args, format);
-+ if ((len = vasprintf(&buf, format, args)) == -1)
-+ return -1;
-+ output_datalen(buf, len);
-+ va_end(args);
-+ free(buf);
-+ return (len);
-+}
-+
-+void
-+output_datalen(const char *buf, int len)
-+{
-+ int remaining, copied;
-+
-+ remaining = BUFSIZ - (nfrontp - netobuf);
-+ while (len > 0) {
-+ /* Free up enough space if the room is too low*/
-+ if ((len > BUFSIZ ? BUFSIZ : len) > remaining) {
-+ netflush();
-+ remaining = BUFSIZ - (nfrontp - netobuf);
-+ }
-+
-+ /* Copy out as much as will fit */
-+ copied = remaining > len ? len : remaining;
-+ memmove(nfrontp, buf, copied);
-+ nfrontp += copied;
-+ len -= copied;
-+ remaining -= copied;
-+ buf += copied;
-+ }
-+ return;
- }
-diff -u telnetd.old/telnetd.c telnetd/telnetd.c
---- telnetd.old/telnetd.c Fri Aug 2 11:08:49 2002
-+++ telnetd/telnetd.c Fri Aug 2 10:14:08 2002
-@@ -704,25 +704,22 @@
- if (his_state_is_will(TELOPT_TSPEED)) {
- static char sbbuf[] = { IAC, SB, TELOPT_TSPEED, TELQUAL_SEND, IAC, SE };
-
-- memcpy(nfrontp, sbbuf,sizeof sbbuf);
-- nfrontp += sizeof sbbuf;
-+ output_datalen(sbbuf, sizeof sbbuf);
-+
- }
- if (his_state_is_will(TELOPT_XDISPLOC)) {
- static char sbbuf[] = { IAC, SB, TELOPT_XDISPLOC, TELQUAL_SEND, IAC, SE };
-
-- memcpy(nfrontp, sbbuf,sizeof sbbuf);
-- nfrontp += sizeof sbbuf;
-+ output_datalen(sbbuf, sizeof sbbuf);
- }
- if (his_state_is_will(TELOPT_ENVIRON)) {
- static char sbbuf[] = { IAC, SB, TELOPT_ENVIRON, TELQUAL_SEND, IAC, SE };
-
-- memcpy(nfrontp, sbbuf,sizeof sbbuf);
-- nfrontp += sizeof sbbuf;
-+ output_datalen(sbbuf, sizeof sbbuf);
- }
- if (his_state_is_will(TELOPT_TTYPE)) {
-
-- memcpy(nfrontp,ttytype_sbbuf, sizeof ttytype_sbbuf);
-- nfrontp += sizeof ttytype_sbbuf;
-+ output_datalen(ttytype_sbbuf, sizeof ttytype_sbbuf);
- }
- if (his_state_is_will(TELOPT_TSPEED)) {
- while (sequenceIs(tspeedsubopt, baseline))
-@@ -791,8 +788,7 @@
- if (his_state_is_wont(TELOPT_TTYPE))
- return;
- settimer(baseline);
-- memcpy(nfrontp,ttytype_sbbuf, sizeof ttytype_sbbuf);
-- nfrontp += sizeof ttytype_sbbuf;
-+ output_datalen(ttytype_sbbuf, sizeof ttytype_sbbuf);
- while (sequenceIs(ttypesubopt, baseline))
- ttloop();
- }
-@@ -978,7 +974,7 @@
- char *HE;
- char *HN;
- char *IM;
-- void netflush();
-+ /*void netflush();*/
-
- /*
- * Initialize the slc mapping table.
-@@ -1062,9 +1058,7 @@
- * mode, which we do not want.
- */
- if (his_want_state_is_will(TELOPT_ECHO)) {
-- DIAG(TD_OPTIONS,
-- {sprintf(nfrontp, "td: simulating recv\r\n");
-- nfrontp += strlen(nfrontp);});
-+ DIAG(TD_OPTIONS, output_data("td: simulating recv\r\n"));
- willoption(TELOPT_ECHO);
- }
-
-@@ -1207,8 +1201,7 @@
- #endif /* LINEMODE */
-
- DIAG(TD_REPORT,
-- {sprintf(nfrontp, "td: Entering processing loop\r\n");
-- nfrontp += strlen(nfrontp);});
-+ output_data("td: Entering processing loop\r\n"));
-
- #ifdef convex
- startslave(host);
-@@ -1346,8 +1339,7 @@
- netip = netibuf;
- }
- DIAG((TD_REPORT | TD_NETDATA),
-- {sprintf(nfrontp, "td: netread %d chars\r\n", ncc);
-- nfrontp += strlen(nfrontp);});
-+ output_data("td: netread %d chars\r\n", ncc));
- DIAG(TD_NETDATA, printdata("nd", netip, ncc));
- }
-
-@@ -1401,19 +1393,17 @@
- * royally if we send them urgent
- * mode data.
- */
-- *nfrontp++ = IAC;
-- *nfrontp++ = DM;
-+ output_data("%c%c", IAC, DM);
- neturg = nfrontp-1; /* off by one XXX */
- #endif
- }
- if (his_state_is_will(TELOPT_LFLOW) &&
- (ptyibuf[0] &
- (TIOCPKT_NOSTOP|TIOCPKT_DOSTOP))) {
-- (void) sprintf(nfrontp, "%c%c%c%c%c%c",
-+ output_data("%c%c%c%c%c%c",
- IAC, SB, TELOPT_LFLOW,
- ptyibuf[0] & TIOCPKT_DOSTOP ? 1 : 0,
- IAC, SE);
-- nfrontp += 6;
- }
- pcc--;
- ptyip = ptyibuf+1;
-@@ -1436,19 +1426,19 @@
- break;
- c = *ptyip++ & 0377, pcc--;
- if (c == IAC)
-- *nfrontp++ = c;
-+ output_data("%c", c);
- #if defined(CRAY2) && defined(UNICOS5)
- else if (c == '\n' &&
- my_state_is_wont(TELOPT_BINARY) && newmap)
-- *nfrontp++ = '\r';
-+ output_data("\r");
- #endif /* defined(CRAY2) && defined(UNICOS5) */
-- *nfrontp++ = c;
-+ output_data("%c", c);
- if ((c == '\r') && (my_state_is_wont(TELOPT_BINARY))) {
- if (pcc > 0 && ((*ptyip & 0377) == '\n')) {
-- *nfrontp++ = *ptyip++ & 0377;
-+ output_data("%c", *ptyip++ & 0377);
- pcc--;
- } else
-- *nfrontp++ = '\0';
-+ output_data("%c", '\0');
- }
- }
- #if defined(CRAY2) && defined(UNICOS5)
-@@ -1543,8 +1533,7 @@
- return;
- }
- #endif
-- (void) strcpy(nfrontp, "\r\n[Yes]\r\n");
-- nfrontp += 9;
-+ output_data("\r\n[Yes]\r\n");
- }
-
- void
-diff -u telnetd.old/termstat.c telnetd/termstat.c
---- telnetd.old/termstat.c Fri Oct 15 05:54:55 1993
-+++ telnetd/termstat.c Fri Aug 2 10:14:53 2002
-@@ -130,7 +130,7 @@
- void
- localstat()
- {
-- void netflush();
-+ /*void netflush();*/
- int need_will_echo = 0;
-
- #if defined(CRAY2) && defined(UNICOS5)
-@@ -166,9 +166,8 @@
- if (his_state_is_will(TELOPT_LFLOW)) {
- if (tty_flowmode() != flowmode) {
- flowmode = tty_flowmode();
-- (void) sprintf(nfrontp, "%c%c%c%c%c%c", IAC, SB,
-+ output_data("%c%c%c%c%c%c",
- TELOPT_LFLOW, flowmode, IAC, SE);
-- nfrontp += 6;
- }
- }
-
-@@ -286,10 +285,9 @@
- # endif /* KLUDGELINEMODE */
- send_do(TELOPT_LINEMODE, 1);
- /* send along edit modes */
-- (void) sprintf(nfrontp, "%c%c%c%c%c%c%c", IAC, SB,
-+ output_data("%c%c%c%c%c%c%c", IAC, SB,
- TELOPT_LINEMODE, LM_MODE, useeditmode,
- IAC, SE);
-- nfrontp += 7;
- editmode = useeditmode;
- # ifdef KLUDGELINEMODE
- }
-@@ -315,10 +313,9 @@
- /*
- * Send along appropriate edit mode mask.
- */
-- (void) sprintf(nfrontp, "%c%c%c%c%c%c%c", IAC, SB,
-+ output_data("%c%c%c%c%c%c%c", IAC, SB,
- TELOPT_LINEMODE, LM_MODE, useeditmode,
- IAC, SE);
-- nfrontp += 7;
- editmode = useeditmode;
- }
-
-@@ -420,10 +417,9 @@
- useeditmode |= MODE_SOFT_TAB;
- if (tty_islitecho())
- useeditmode |= MODE_LIT_ECHO;
-- (void) sprintf(nfrontp, "%c%c%c%c%c%c%c", IAC,
-+ output_data("%c%c%c%c%c%c%c", IAC,
- SB, TELOPT_LINEMODE, LM_MODE,
- useeditmode, IAC, SE);
-- nfrontp += 7;
- editmode = useeditmode;
- }
-
-@@ -477,11 +473,10 @@
- set_termbuf();
-
- if (!ack) {
-- (void) sprintf(nfrontp, "%c%c%c%c%c%c%c", IAC,
-+ output_data("%c%c%c%c%c%c%c", IAC,
- SB, TELOPT_LINEMODE, LM_MODE,
- useeditmode|MODE_ACK,
- IAC, SE);
-- nfrontp += 7;
- }
-
- editmode = useeditmode;
-diff -u telnetd.old/utility.c telnetd/utility.c
---- telnetd.old/utility.c Mon Aug 26 11:06:43 1996
-+++ telnetd/utility.c Fri Aug 2 10:01:52 2002
-@@ -54,11 +54,10 @@
- void
- ttloop()
- {
-- void netflush();
-+ /*void netflush();*/
-
-- DIAG(TD_REPORT, {sprintf(nfrontp, "td: ttloop\r\n");
-- nfrontp += strlen(nfrontp);});
-- if (nfrontp-nbackp) {
-+ DIAG(TD_REPORT, output_data("td: ttloop\r\n"));
-+ if (nfrontp - nbackp > 0) {
- netflush();
- }
- #ifdef USE_SSL
-@@ -74,8 +73,7 @@
- syslog(LOG_INFO, "ttloop: peer died: %m\n");
- exit(1);
- }
-- DIAG(TD_REPORT, {sprintf(nfrontp, "td: ttloop read %d chars\r\n", ncc);
-- nfrontp += strlen(nfrontp);});
-+ DIAG(TD_REPORT, output_data("td: ttloop read %d chars\r\n", ncc));
- netip = netibuf;
- telrcv(); /* state machine */
- if (ncc > 0) {
-@@ -117,9 +115,8 @@
- int n;
-
- if ((n = pfrontp - pbackp) > 0) {
-- DIAG((TD_REPORT | TD_PTYDATA),
-- { sprintf(nfrontp, "td: ptyflush %d chars\r\n", n);
-- nfrontp += strlen(nfrontp); });
-+ DIAG(TD_REPORT | TD_PTYDATA,
-+ output_data("td: ptyflush %d chars\r\n", n));
- DIAG(TD_PTYDATA, printdata("pd", pbackp, n));
- n = write(pty, pbackp, n);
- }
-@@ -249,12 +246,13 @@
- int n;
- extern int not42;
-
-- if ((n = nfrontp - nbackp) > 0) {
-- DIAG(TD_REPORT,
-- { sprintf(nfrontp, "td: netflush %d chars\r\n", n);
-- n += strlen(nfrontp); /* get count first */
-- nfrontp += strlen(nfrontp); /* then move pointer */
-- });
-+ while ((n = nfrontp - nbackp) > 0) {
-+#if 0
-+ /* XXX This causes output_data() to recurse and die */
-+ DIAG(TD_REPORT, {
-+ n += output_data("td: netflush %d chars\r\n", n);
-+ });
-+#endif
- #if defined(ENCRYPT)
- if (encrypt_output) {
- char *s = nclearto ? nclearto : nbackp;
-@@ -302,13 +300,33 @@
- n = send(net, nbackp, n, MSG_OOB); /* URGENT data */
- }
- }
-+ if (n == -1) {
-+ if (errno == EWOULDBLOCK || errno == EINTR)
-+ continue;
-+ cleanup(0);
-+ /* NOTREACHED */
-+ }
-+ nbackp += n;
-+#if defined(ENCRYPT)
-+ if (nbackp > nclearto)
-+ nclearto = 0;
-+#endif
-+ if (nbackp >= neturg) {
-+ neturg = 0;
-+ }
-+ if (nbackp == nfrontp) {
-+ nbackp = nfrontp = netobuf;
-+#if defined(ENCRYPT)
-+ nclearto = 0;
-+#endif
-+ }
- }
- if (n < 0) {
- if (errno == EWOULDBLOCK || errno == EINTR)
- return;
- cleanup(0);
- }
-- nbackp += n;
-+/* nbackp += n;
- #if defined(ENCRYPT)
- if (nbackp > nclearto)
- nclearto = 0;
-@@ -321,39 +339,12 @@
- #if defined(ENCRYPT)
- nclearto = 0;
- #endif
-- }
-+ }*/
- return;
- } /* end of netflush */
-
-
- /*
-- * writenet
-- *
-- * Just a handy little function to write a bit of raw data to the net.
-- * It will force a transmit of the buffer if necessary
-- *
-- * arguments
-- * ptr - A pointer to a character string to write
-- * len - How many bytes to write
-- */
-- void
--writenet(ptr, len)
-- register unsigned char *ptr;
-- register int len;
--{
-- /* flush buffer if no room for new data) */
-- if ((&netobuf[BUFSIZ] - nfrontp) < len) {
-- /* if this fails, don't worry, buffer is a little big */
-- netflush();
-- }
--
-- memcpy(nfrontp, ptr,len);
-- nfrontp += len;
--
--} /* end of writenet */
--
--
--/*
- * miscellaneous functions doing a variety of little jobs follow ...
- */
-
-@@ -541,12 +532,11 @@
- register int option;
- {
- if (TELOPT_OK(option))
-- sprintf(nfrontp, "%s %s\r\n", fmt, TELOPT(option));
-+ output_data("%s %s\r\n", fmt, TELOPT(option));
- else if (TELCMD_OK(option))
-- sprintf(nfrontp, "%s %s\r\n", fmt, TELCMD(option));
-+ output_data("%s %s\r\n", fmt, TELCMD(option));
- else
-- sprintf(nfrontp, "%s %d\r\n", fmt, option);
-- nfrontp += strlen(nfrontp);
-+ output_data("%s %d\r\n", fmt, option);
- return;
- }
-
-@@ -563,9 +553,8 @@
- return;
-
- if (direction) {
-- sprintf(nfrontp, "td: %s suboption ",
-- direction == '<' ? "recv" : "send");
-- nfrontp += strlen(nfrontp);
-+ output_data("td: %s suboption ",
-+ direction == '<' ? "recv" : "send");
- if (length >= 3) {
- register int j;
-
-@@ -573,228 +562,195 @@
- j = pointer[length-1];
-
- if (i != IAC || j != SE) {
-- sprintf(nfrontp, "(terminated by ");
-- nfrontp += strlen(nfrontp);
-+ output_data("(terminated by ");
- if (TELOPT_OK(i))
-- sprintf(nfrontp, "%s ", TELOPT(i));
-+ output_data("%s ", TELOPT(i));
- else if (TELCMD_OK(i))
-- sprintf(nfrontp, "%s ", TELCMD(i));
-+ output_data("%s ", TELCMD(i));
- else
-- sprintf(nfrontp, "%d ", i);
-- nfrontp += strlen(nfrontp);
-+ output_data("%d ", i);
- if (TELOPT_OK(j))
-- sprintf(nfrontp, "%s", TELOPT(j));
-+ output_data("%s", TELOPT(j));
- else if (TELCMD_OK(j))
-- sprintf(nfrontp, "%s", TELCMD(j));
-+ output_data("%s", TELCMD(j));
- else
-- sprintf(nfrontp, "%d", j);
-- nfrontp += strlen(nfrontp);
-- sprintf(nfrontp, ", not IAC SE!) ");
-- nfrontp += strlen(nfrontp);
-+ output_data("%d", j);
-+ output_data(", not IAC SE!) ");
- }
- }
- length -= 2;
- }
- if (length < 1) {
-- sprintf(nfrontp, "(Empty suboption???)");
-- nfrontp += strlen(nfrontp);
-+ output_data("(Empty suboption??\?)");
- return;
- }
- switch (pointer[0]) {
- case TELOPT_TTYPE:
-- sprintf(nfrontp, "TERMINAL-TYPE ");
-- nfrontp += strlen(nfrontp);
-+ output_data("TERMINAL-TYPE ");
- switch (pointer[1]) {
- case TELQUAL_IS:
-- sprintf(nfrontp, "IS \"%.*s\"", length-2, (char *)pointer+2);
-+ output_data("IS \"%.*s\"", length-2, (char *)pointer+2);
- break;
- case TELQUAL_SEND:
-- sprintf(nfrontp, "SEND");
-+ output_data("SEND");
- break;
- default:
-- sprintf(nfrontp,
-- "- unknown qualifier %d (0x%x).",
-+ output_data(
-+ "- unknown qualifier %d (0x%x).",
- pointer[1], pointer[1]);
- }
-- nfrontp += strlen(nfrontp);
- break;
- case TELOPT_TSPEED:
-- sprintf(nfrontp, "TERMINAL-SPEED");
-- nfrontp += strlen(nfrontp);
-+ output_data("TERMINAL-SPEED");
- if (length < 2) {
-- sprintf(nfrontp, " (empty suboption???)");
-- nfrontp += strlen(nfrontp);
-+ output_data(" (empty suboption??\?)");
- break;
- }
- switch (pointer[1]) {
- case TELQUAL_IS:
-- sprintf(nfrontp, " IS %.*s", length-2, (char *)pointer+2);
-- nfrontp += strlen(nfrontp);
-+ output_data(" IS %.*s", length-2, (char *)pointer+2);
- break;
- default:
- if (pointer[1] == 1)
-- sprintf(nfrontp, " SEND");
-+ output_data(" SEND");
- else
-- sprintf(nfrontp, " %d (unknown)", pointer[1]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" %d (unknown)", pointer[1]);
- for (i = 2; i < length; i++) {
-- sprintf(nfrontp, " ?%d?", pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" ?%d?", pointer[i]);
- }
- break;
- }
- break;
-
- case TELOPT_LFLOW:
-- sprintf(nfrontp, "TOGGLE-FLOW-CONTROL");
-- nfrontp += strlen(nfrontp);
-+ output_data("TOGGLE-FLOW-CONTROL");
- if (length < 2) {
-- sprintf(nfrontp, " (empty suboption???)");
-- nfrontp += strlen(nfrontp);
-+ output_data(" (empty suboption??\?)");
- break;
- }
- switch (pointer[1]) {
- case 0:
-- sprintf(nfrontp, " OFF"); break;
-+ output_data(" OFF"); break;
- case 1:
-- sprintf(nfrontp, " ON"); break;
-+ output_data(" ON"); break;
-+
-+ /*
-+ case LFLOW_RESTART_ANY:
-+ output_data(" RESTART-ANY"); break;
-+ case LFLOW_RESTART_XON:
-+ output_data(" RESTART-XON"); break;
-+ */
- default:
-- sprintf(nfrontp, " %d (unknown)", pointer[1]);
-+ output_data(" %d (unknown)", pointer[1]);
- }
-- nfrontp += strlen(nfrontp);
- for (i = 2; i < length; i++) {
-- sprintf(nfrontp, " ?%d?", pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" ?%d?", pointer[i]);
- }
- break;
-
- case TELOPT_NAWS:
-- sprintf(nfrontp, "NAWS");
-- nfrontp += strlen(nfrontp);
-+ output_data("NAWS");
- if (length < 2) {
-- sprintf(nfrontp, " (empty suboption???)");
-- nfrontp += strlen(nfrontp);
-+ output_data(" (empty suboption??\?)");
- break;
- }
- if (length == 2) {
-- sprintf(nfrontp, " ?%d?", pointer[1]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" ?%d?", pointer[1]);
- break;
- }
-- sprintf(nfrontp, " %d %d (%d)",
-+ output_data(" %d %d (%d)",
- pointer[1], pointer[2],
- (int)((((unsigned int)pointer[1])<<8)|((unsigned int)pointer[2])));
-- nfrontp += strlen(nfrontp);
- if (length == 4) {
-- sprintf(nfrontp, " ?%d?", pointer[3]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" ?%d?", pointer[3]);
- break;
- }
-- sprintf(nfrontp, " %d %d (%d)",
-+ output_data(" %d %d (%d)",
- pointer[3], pointer[4],
- (int)((((unsigned int)pointer[3])<<8)|((unsigned int)pointer[4])));
-- nfrontp += strlen(nfrontp);
- for (i = 5; i < length; i++) {
-- sprintf(nfrontp, " ?%d?", pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" ?%d?", pointer[i]);
- }
- break;
-
- case TELOPT_LINEMODE:
-- sprintf(nfrontp, "LINEMODE ");
-- nfrontp += strlen(nfrontp);
-+ output_data("LINEMODE ");
- if (length < 2) {
-- sprintf(nfrontp, " (empty suboption???)");
-- nfrontp += strlen(nfrontp);
-+ output_data(" (empty suboption??\?)");
- break;
- }
- switch (pointer[1]) {
- case WILL:
-- sprintf(nfrontp, "WILL ");
-+ output_data("WILL ");
- goto common;
- case WONT:
-- sprintf(nfrontp, "WONT ");
-+ output_data("WONT ");
- goto common;
- case DO:
-- sprintf(nfrontp, "DO ");
-+ output_data("DO ");
- goto common;
- case DONT:
-- sprintf(nfrontp, "DONT ");
-+ output_data("DONT ");
- common:
-- nfrontp += strlen(nfrontp);
- if (length < 3) {
-- sprintf(nfrontp, "(no option???)");
-- nfrontp += strlen(nfrontp);
-+ output_data("(no option??\?)");
- break;
- }
- switch (pointer[2]) {
- case LM_FORWARDMASK:
-- sprintf(nfrontp, "Forward Mask");
-- nfrontp += strlen(nfrontp);
-+ output_data("Forward Mask");
- for (i = 3; i < length; i++) {
-- sprintf(nfrontp, " %x", pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" %x", pointer[i]);
- }
- break;
- default:
-- sprintf(nfrontp, "%d (unknown)", pointer[2]);
-- nfrontp += strlen(nfrontp);
-+ output_data("%d (unknown)", pointer[2]);
- for (i = 3; i < length; i++) {
-- sprintf(nfrontp, " %d", pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" %d", pointer[i]);
- }
- break;
- }
- break;
-
- case LM_SLC:
-- sprintf(nfrontp, "SLC");
-- nfrontp += strlen(nfrontp);
-+ output_data("SLC");
- for (i = 2; i < length - 2; i += 3) {
- if (SLC_NAME_OK(pointer[i+SLC_FUNC]))
-- sprintf(nfrontp, " %s", SLC_NAME(pointer[i+SLC_FUNC]));
-+ output_data(" %s", SLC_NAME(pointer[i+SLC_FUNC]));
- else
-- sprintf(nfrontp, " %d", pointer[i+SLC_FUNC]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" %d", pointer[i+SLC_FUNC]);
- switch (pointer[i+SLC_FLAGS]&SLC_LEVELBITS) {
- case SLC_NOSUPPORT:
-- sprintf(nfrontp, " NOSUPPORT"); break;
-+ output_data(" NOSUPPORT"); break;
- case SLC_CANTCHANGE:
-- sprintf(nfrontp, " CANTCHANGE"); break;
-+ output_data(" CANTCHANGE"); break;
- case SLC_VARIABLE:
-- sprintf(nfrontp, " VARIABLE"); break;
-+ output_data(" VARIABLE"); break;
- case SLC_DEFAULT:
-- sprintf(nfrontp, " DEFAULT"); break;
-+ output_data(" DEFAULT"); break;
- }
-- nfrontp += strlen(nfrontp);
-- sprintf(nfrontp, "%s%s%s",
-+ output_data("%s%s%s",
- pointer[i+SLC_FLAGS]&SLC_ACK ? "|ACK" : "",
- pointer[i+SLC_FLAGS]&SLC_FLUSHIN ? "|FLUSHIN" : "",
- pointer[i+SLC_FLAGS]&SLC_FLUSHOUT ? "|FLUSHOUT" : "");
-- nfrontp += strlen(nfrontp);
- if (pointer[i+SLC_FLAGS]& ~(SLC_ACK|SLC_FLUSHIN|
- SLC_FLUSHOUT| SLC_LEVELBITS)) {
-- sprintf(nfrontp, "(0x%x)", pointer[i+SLC_FLAGS]);
-- nfrontp += strlen(nfrontp);
-+ output_data("(0x%x)", pointer[i+SLC_FLAGS]);
- }
-- sprintf(nfrontp, " %d;", pointer[i+SLC_VALUE]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" %d;", pointer[i+SLC_VALUE]);
- if ((pointer[i+SLC_VALUE] == IAC) &&
- (pointer[i+SLC_VALUE+1] == IAC))
- i++;
- }
- for (; i < length; i++) {
-- sprintf(nfrontp, " ?%d?", pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" ?%d?", pointer[i]);
- }
- break;
-
- case LM_MODE:
-- sprintf(nfrontp, "MODE ");
-- nfrontp += strlen(nfrontp);
-+ output_data("MODE ");
- if (length < 3) {
-- sprintf(nfrontp, "(no mode???)");
-- nfrontp += strlen(nfrontp);
-+ output_data("(no mode??\?)");
- break;
- }
- {
-@@ -805,24 +761,19 @@
- pointer[2]&MODE_SOFT_TAB ? "|SOFT_TAB" : "",
- pointer[2]&MODE_LIT_ECHO ? "|LIT_ECHO" : "",
- pointer[2]&MODE_ACK ? "|ACK" : "");
-- sprintf(nfrontp, "%s", tbuf[1] ? &tbuf[1] : "0");
-- nfrontp += strlen(nfrontp);
-+ output_data("%s", tbuf[1] ? &tbuf[1] : "0");
- }
- if (pointer[2]&~(MODE_EDIT|MODE_TRAPSIG|MODE_ACK)) {
-- sprintf(nfrontp, " (0x%x)", pointer[2]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" (0x%x)", pointer[2]);
- }
- for (i = 3; i < length; i++) {
-- sprintf(nfrontp, " ?0x%x?", pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" ?0x%x?", pointer[i]);
- }
- break;
- default:
-- sprintf(nfrontp, "%d (unknown)", pointer[1]);
-- nfrontp += strlen(nfrontp);
-+ output_data("%d (unknown)", pointer[1]);
- for (i = 2; i < length; i++) {
-- sprintf(nfrontp, " %d", pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" %d", pointer[i]);
- }
- }
- break;
-@@ -831,24 +782,20 @@
- register char *cp;
- register int j, k;
-
-- sprintf(nfrontp, "STATUS");
-- nfrontp += strlen(nfrontp);
-+ output_data("STATUS");
-
- switch (pointer[1]) {
- default:
- if (pointer[1] == TELQUAL_SEND)
-- sprintf(nfrontp, " SEND");
-+ output_data(" SEND");
- else
-- sprintf(nfrontp, " %d (unknown)", pointer[1]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" %d (unknown)", pointer[1]);
- for (i = 2; i < length; i++) {
-- sprintf(nfrontp, " ?%d?", pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" ?%d?", pointer[i]);
- }
- break;
- case TELQUAL_IS:
-- sprintf(nfrontp, " IS\r\n");
-- nfrontp += strlen(nfrontp);
-+ output_data(" IS\r\n");
-
- for (i = 2; i < length; i++) {
- switch(pointer[i]) {
-@@ -859,18 +806,15 @@
- common2:
- i++;
- if (TELOPT_OK((int)pointer[i]))
-- sprintf(nfrontp, " %s %s", cp, TELOPT(pointer[i]));
-+ output_data(" %s %s", cp, TELOPT(pointer[i]));
- else
-- sprintf(nfrontp, " %s %d", cp, pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" %s %d", cp, pointer[i]);
-
-- sprintf(nfrontp, "\r\n");
-- nfrontp += strlen(nfrontp);
-+ output_data("\r\n");
- break;
-
- case SB:
-- sprintf(nfrontp, " SB ");
-- nfrontp += strlen(nfrontp);
-+ output_data(" SB ");
- i++;
- j = k = i;
- while (j < length) {
-@@ -886,20 +830,17 @@
- }
- printsub(0, &pointer[i], k - i);
- if (i < length) {
-- sprintf(nfrontp, " SE");
-- nfrontp += strlen(nfrontp);
-+ output_data(" SE");
- i = j;
- } else
- i = j - 1;
-
-- sprintf(nfrontp, "\r\n");
-- nfrontp += strlen(nfrontp);
-+ output_data("\r\n");
-
- break;
-
- default:
-- sprintf(nfrontp, " %d", pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" %d", pointer[i]);
- break;
- }
- }
-@@ -909,36 +850,32 @@
- }
-
- case TELOPT_XDISPLOC:
-- sprintf(nfrontp, "X-DISPLAY-LOCATION ");
-- nfrontp += strlen(nfrontp);
-+ output_data("X-DISPLAY-LOCATION ");
- switch (pointer[1]) {
- case TELQUAL_IS:
-- sprintf(nfrontp, "IS \"%.*s\"", length-2, (char *)pointer+2);
-+ output_data("IS \"%.*s\"", length-2, (char *)pointer+2);
- break;
- case TELQUAL_SEND:
-- sprintf(nfrontp, "SEND");
-+ output_data("SEND");
- break;
- default:
-- sprintf(nfrontp, "- unknown qualifier %d (0x%x).",
-+ output_data("- unknown qualifier %d (0x%x).",
- pointer[1], pointer[1]);
- }
-- nfrontp += strlen(nfrontp);
- break;
-
- case TELOPT_ENVIRON:
-- sprintf(nfrontp, "ENVIRON ");
-- nfrontp += strlen(nfrontp);
-+ output_data("NEW-ENVIRON ");
- switch (pointer[1]) {
- case TELQUAL_IS:
-- sprintf(nfrontp, "IS ");
-+ output_data("IS ");
- goto env_common;
- case TELQUAL_SEND:
-- sprintf(nfrontp, "SEND ");
-+ output_data("SEND ");
- goto env_common;
- case TELQUAL_INFO:
-- sprintf(nfrontp, "INFO ");
-+ output_data("INFO ");
- env_common:
-- nfrontp += strlen(nfrontp);
- {
- register int noquote = 2;
- for (i = 2; i < length; i++ ) {
-@@ -946,42 +883,43 @@
- case ENV_VAR:
- if (pointer[1] == TELQUAL_SEND)
- goto def_case;
-- sprintf(nfrontp, "\" VAR " + noquote);
-- nfrontp += strlen(nfrontp);
-+ output_data("\" VAR " + noquote);
- noquote = 2;
- break;
-
- case ENV_VALUE:
-- sprintf(nfrontp, "\" VALUE " + noquote);
-- nfrontp += strlen(nfrontp);
-+ output_data("\" VALUE " + noquote);
- noquote = 2;
- break;
-
- case ENV_ESC:
-- sprintf(nfrontp, "\" ESC " + noquote);
-- nfrontp += strlen(nfrontp);
-+ output_data("\" ESC " + noquote);
- noquote = 2;
- break;
--
-+ /*
-+ case ENV_USERVAR:
-+ output_data("\" USERVAR " + noquote);
-+ noquote = 2;
-+ break;
-+ */
- default:
- def_case:
- if (isprint(pointer[i]) && pointer[i] != '"') {
- if (noquote) {
-- *nfrontp++ = '"';
-+ output_data("\"");
- noquote = 0;
- }
-- *nfrontp++ = pointer[i];
-+ output_data("%c", pointer[i]);
- } else {
-- sprintf(nfrontp, "\" %03o " + noquote,
-+ output_data("\" %03o " + noquote,
- pointer[i]);
-- nfrontp += strlen(nfrontp);
- noquote = 2;
- }
- break;
- }
- }
- if (!noquote)
-- *nfrontp++ = '"';
-+ output_data("\"");
- break;
- }
- }
-@@ -989,80 +927,66 @@
-
- #if defined(AUTHENTICATE)
- case TELOPT_AUTHENTICATION:
-- sprintf(nfrontp, "AUTHENTICATION");
-- nfrontp += strlen(nfrontp);
-+ output_data("AUTHENTICATION");
-
- if (length < 2) {
-- sprintf(nfrontp, " (empty suboption???)");
-- nfrontp += strlen(nfrontp);
-+ output_data(" (empty suboption??\?)");
- break;
- }
- switch (pointer[1]) {
- case TELQUAL_REPLY:
- case TELQUAL_IS:
-- sprintf(nfrontp, " %s ", (pointer[1] == TELQUAL_IS) ?
-+ output_data(" %s ", (pointer[1] == TELQUAL_IS) ?
- "IS" : "REPLY");
-- nfrontp += strlen(nfrontp);
- if (AUTHTYPE_NAME_OK(pointer[2]))
-- sprintf(nfrontp, "%s ", AUTHTYPE_NAME(pointer[2]));
-+ output_data("%s ", AUTHTYPE_NAME(pointer[2]));
- else
-- sprintf(nfrontp, "%d ", pointer[2]);
-- nfrontp += strlen(nfrontp);
-+ output_data("%d ", pointer[2]);
- if (length < 3) {
-- sprintf(nfrontp, "(partial suboption???)");
-- nfrontp += strlen(nfrontp);
-+ output_data("(partial suboption??\?)");
- break;
- }
-- sprintf(nfrontp, "%s|%s",
-+ output_data("%s|%s",
- ((pointer[3] & AUTH_WHO_MASK) == AUTH_WHO_CLIENT) ?
- "CLIENT" : "SERVER",
- ((pointer[3] & AUTH_HOW_MASK) == AUTH_HOW_MUTUAL) ?
- "MUTUAL" : "ONE-WAY");
-- nfrontp += strlen(nfrontp);
-+ {
-+ char buf[512];
-
- auth_printsub(&pointer[1], length - 1, buf, sizeof(buf));
-- sprintf(nfrontp, "%s", buf);
-- nfrontp += strlen(nfrontp);
-+ output_data("%s", buf);
-+ }
- break;
-
- case TELQUAL_SEND:
- i = 2;
-- sprintf(nfrontp, " SEND ");
-- nfrontp += strlen(nfrontp);
-+ output_data(" SEND ");
- while (i < length) {
- if (AUTHTYPE_NAME_OK(pointer[i]))
-- sprintf(nfrontp, "%s ", AUTHTYPE_NAME(pointer[i]));
-+ output_data("%s ", AUTHTYPE_NAME(pointer[i]));
- else
-- sprintf(nfrontp, "%d ", pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data("%d ", pointer[i]);
- if (++i >= length) {
-- sprintf(nfrontp, "(partial suboption???)");
-- nfrontp += strlen(nfrontp);
-+ output_data("(partial suboption??\?)");
- break;
- }
-- sprintf(nfrontp, "%s|%s ",
-+ output_data("%s|%s ",
- ((pointer[i] & AUTH_WHO_MASK) == AUTH_WHO_CLIENT) ?
- "CLIENT" : "SERVER",
- ((pointer[i] & AUTH_HOW_MASK) == AUTH_HOW_MUTUAL) ?
- "MUTUAL" : "ONE-WAY");
-- nfrontp += strlen(nfrontp);
- ++i;
- }
- break;
-
- case TELQUAL_NAME:
-- i = 2;
-- sprintf(nfrontp, " NAME \"");
-- nfrontp += strlen(nfrontp);
-- while (i < length)
-- *nfrontp += pointer[i++];
-- *nfrontp += '"';
-+ output_data(" NAME \"%.*s\"", length - 2, pointer + 2);
- break;
-
- default:
- for (i = 2; i < length; i++) {
-- sprintf(nfrontp, " ?%d?", pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" ?%d?", pointer[i]);
- }
- break;
- }
-@@ -1071,86 +995,70 @@
-
- #if defined(ENCRYPT)
- case TELOPT_ENCRYPT:
-- sprintf(nfrontp, "ENCRYPT");
-- nfrontp += strlen(nfrontp);
-+ output_data("ENCRYPT");
- if (length < 2) {
-- sprintf(nfrontp, " (empty suboption???)");
-- nfrontp += strlen(nfrontp);
-+ output_data(" (empty suboption???)");
- break;
- }
- switch (pointer[1]) {
- case ENCRYPT_START:
-- sprintf(nfrontp, " START");
-- nfrontp += strlen(nfrontp);
-+ output_data(" START");
- break;
-
- case ENCRYPT_END:
-- sprintf(nfrontp, " END");
-- nfrontp += strlen(nfrontp);
-+ output_data(" END");
- break;
-
- case ENCRYPT_REQSTART:
-- sprintf(nfrontp, " REQUEST-START");
-- nfrontp += strlen(nfrontp);
-+ output_data(" REQUEST-START");
- break;
-
- case ENCRYPT_REQEND:
-- sprintf(nfrontp, " REQUEST-END");
-- nfrontp += strlen(nfrontp);
-+ output_data(" REQUEST-END");
- break;
-
- case ENCRYPT_IS:
- case ENCRYPT_REPLY:
-- sprintf(nfrontp, " %s ", (pointer[1] == ENCRYPT_IS) ?
-+ output_data(" %s ", (pointer[1] == ENCRYPT_IS) ?
- "IS" : "REPLY");
-- nfrontp += strlen(nfrontp);
- if (length < 3) {
-- sprintf(nfrontp, " (partial suboption???)");
-- nfrontp += strlen(nfrontp);
-+ output_data(" (partial suboption???)");
- break;
- }
- if (ENCTYPE_NAME_OK(pointer[2]))
-- sprintf(nfrontp, "%s ", ENCTYPE_NAME(pointer[2]));
-+ output_data("%s ", ENCTYPE_NAME(pointer[2]));
- else
-- sprintf(nfrontp, " %d (unknown)", pointer[2]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" %d (unknown)", pointer[2]);
-
- encrypt_printsub(&pointer[1], length - 1, buf, sizeof(buf));
-- sprintf(nfrontp, "%s", buf);
-- nfrontp += strlen(nfrontp);
-+ output_data("%s", buf);
- break;
-
- case ENCRYPT_SUPPORT:
- i = 2;
-- sprintf(nfrontp, " SUPPORT ");
-- nfrontp += strlen(nfrontp);
-+ output_data(" SUPPORT ");
- while (i < length) {
- if (ENCTYPE_NAME_OK(pointer[i]))
-- sprintf(nfrontp, "%s ", ENCTYPE_NAME(pointer[i]));
-+ output_data("%s ", ENCTYPE_NAME(pointer[i]));
- else
-- sprintf(nfrontp, "%d ", pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data("%d ", pointer[i]);
- i++;
- }
- break;
-
- case ENCRYPT_ENC_KEYID:
-- sprintf(nfrontp, " ENC_KEYID %d", pointer[1]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" ENC_KEYID %d", pointer[1]);
- goto encommon;
-
- case ENCRYPT_DEC_KEYID:
-- sprintf(nfrontp, " DEC_KEYID %d", pointer[1]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" DEC_KEYID %d", pointer[1]);
- goto encommon;
-
- default:
-- sprintf(nfrontp, " %d (unknown)", pointer[1]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" %d (unknown)", pointer[1]);
- encommon:
- for (i = 2; i < length; i++) {
-- sprintf(nfrontp, " %d", pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" %d", pointer[i]);
- }
- break;
- }
-@@ -1159,18 +1067,15 @@
-
- default:
- if (TELOPT_OK(pointer[0]))
-- sprintf(nfrontp, "%s (unknown)", TELOPT(pointer[0]));
-+ output_data("%s (unknown)", TELOPT(pointer[0]));
- else
-- sprintf(nfrontp, "%d (unknown)", pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data("%d (unknown)", pointer[i]);
- for (i = 1; i < length; i++) {
-- sprintf(nfrontp, " %d", pointer[i]);
-- nfrontp += strlen(nfrontp);
-+ output_data(" %d", pointer[i]);
- }
- break;
- }
-- sprintf(nfrontp, "\r\n");
-- nfrontp += strlen(nfrontp);
-+ output_data("\r\n");
- }
-
- /*
-@@ -1192,26 +1097,23 @@
- }
-
- /* add a line of output */
-- sprintf(nfrontp, "%s: ", tag);
-- nfrontp += strlen(nfrontp);
-+ output_data("%s: ", tag);
- for (i = 0; i < 20 && cnt; i++) {
-- sprintf(nfrontp, "%02x", *ptr);
-- nfrontp += strlen(nfrontp);
-+ output_data("%02x", *ptr);
- if (isprint(*ptr)) {
- xbuf[i] = *ptr;
- } else {
- xbuf[i] = '.';
- }
-- if (i % 2) {
-- *nfrontp = ' ';
-- nfrontp++;
-+ if (i % 2) {
-+ output_data(" ");
- }
- cnt--;
- ptr++;
- }
- xbuf[i] = '\0';
-- sprintf(nfrontp, " %s\r\n", xbuf );
-- nfrontp += strlen(nfrontp);
-+ output_data(" %s\r\n", xbuf );
- }
- }
- #endif /* DIAGNOSTICS */
-+/* nfrontp += strlen(nfrontp); */