summaryrefslogtreecommitdiffstats
path: root/contrib/telnet/telnet
diff options
context:
space:
mode:
authormarkm <markm@FreeBSD.org>1997-09-07 07:02:53 +0000
committermarkm <markm@FreeBSD.org>1997-09-07 07:02:53 +0000
commitcd2a6be22c3f5c010eb7ec63c77cd0699a832567 (patch)
tree316b7a514809054240510520a7e779098c17795e /contrib/telnet/telnet
parent2075d422d2e14fa0f55c71e4790fd46d0979a7a1 (diff)
downloadFreeBSD-src-cd2a6be22c3f5c010eb7ec63c77cd0699a832567.zip
FreeBSD-src-cd2a6be22c3f5c010eb7ec63c77cd0699a832567.tar.gz
Bring the FreeBSD changes to the virgin sources.
Diffstat (limited to 'contrib/telnet/telnet')
-rw-r--r--contrib/telnet/telnet/authenc.c4
-rw-r--r--contrib/telnet/telnet/commands.c145
-rw-r--r--contrib/telnet/telnet/externs.h13
-rw-r--r--contrib/telnet/telnet/main.c23
-rw-r--r--contrib/telnet/telnet/network.c3
-rw-r--r--contrib/telnet/telnet/ring.c4
-rw-r--r--contrib/telnet/telnet/sys_bsd.c7
-rw-r--r--contrib/telnet/telnet/telnet.c32
-rw-r--r--contrib/telnet/telnet/terminal.c6
-rw-r--r--contrib/telnet/telnet/tn3270.c2
-rw-r--r--contrib/telnet/telnet/utilities.c13
11 files changed, 180 insertions, 72 deletions
diff --git a/contrib/telnet/telnet/authenc.c b/contrib/telnet/telnet/authenc.c
index 545df78..f829b1a 100644
--- a/contrib/telnet/telnet/authenc.c
+++ b/contrib/telnet/telnet/authenc.c
@@ -32,7 +32,7 @@
*/
#ifndef lint
-static char sccsid[] = "@(#)authenc.c 8.1 (Berkeley) 6/6/93";
+static const char sccsid[] = "@(#)authenc.c 8.1 (Berkeley) 6/6/93";
#endif /* not lint */
#if defined(AUTHENTICATION) || defined(ENCRYPTION)
@@ -101,7 +101,7 @@ telnet_gets(prompt, result, length, echo)
if (echo) {
printf("%s", prompt);
res = fgets(result, length, stdin);
- } else if (res = getpass(prompt)) {
+ } else if ((res = getpass(prompt))) {
strncpy(result, res, length);
res = result;
}
diff --git a/contrib/telnet/telnet/commands.c b/contrib/telnet/telnet/commands.c
index 41ef5cd..8073fb5 100644
--- a/contrib/telnet/telnet/commands.c
+++ b/contrib/telnet/telnet/commands.c
@@ -32,7 +32,7 @@
*/
#ifndef lint
-static char sccsid[] = "@(#)commands.c 8.4 (Berkeley) 5/30/95";
+static const char sccsid[] = "@(#)commands.c 8.4 (Berkeley) 5/30/95";
#endif /* not lint */
#if defined(unix)
@@ -56,6 +56,8 @@ static char sccsid[] = "@(#)commands.c 8.4 (Berkeley) 5/30/95";
#include <pwd.h>
#include <varargs.h>
#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
#include <arpa/telnet.h>
@@ -67,6 +69,13 @@ static char sccsid[] = "@(#)commands.c 8.4 (Berkeley) 5/30/95";
#include "defines.h"
#include "types.h"
+#if defined(AUTHENTICATION)
+#include <libtelnet/auth.h>
+#endif
+#if defined(ENCRYPTION)
+#include <libtelnet/encrypt.h>
+#endif
+
#if !defined(CRAY) && !defined(sysV88)
#include <netinet/in_systm.h>
# if (defined(vax) || defined(tahoe) || defined(hp300)) && !defined(ultrix)
@@ -93,7 +102,11 @@ extern int isprefix();
extern char **genget();
extern int Ambiguous();
-static call();
+static int help(int argc, char *argv[]);
+static int call();
+static void cmdrc(char *m1, char *m2);
+
+int quit(void);
typedef struct {
char *name; /* command name */
@@ -107,6 +120,37 @@ static char saveline[256];
static int margc;
static char *margv[20];
+#if defined(SKEY)
+#include <sys/wait.h>
+#define PATH_SKEY "/usr/bin/key"
+ int
+skey_calc(argc, argv)
+ int argc;
+ char **argv;
+{
+ int status;
+
+ if(argc != 3) {
+ printf("%s sequence challenge\n", argv[0]);
+ return;
+ }
+
+ switch(fork()) {
+ case 0:
+ execv(PATH_SKEY, argv);
+ exit (1);
+ case -1:
+ perror("fork");
+ break;
+ default:
+ (void) wait(&status);
+ if (WIFEXITED(status))
+ return (WEXITSTATUS(status));
+ return (0);
+ }
+}
+#endif
+
static void
makeargv()
{
@@ -121,7 +165,7 @@ makeargv()
margc++;
cp++;
}
- while (c = *cp) {
+ while ((c = *cp)) {
register int inquote = 0;
while (isspace(c))
c = *++cp;
@@ -164,7 +208,7 @@ makeargv()
* Todo: 1. Could take random integers (12, 0x12, 012, 0b1).
*/
- static
+ static int
special(s)
register char *s;
{
@@ -293,7 +337,6 @@ sendcmd(argc, argv)
{
int count; /* how many bytes we are going to need to send */
int i;
- int question = 0; /* was at least one argument a question */
struct sendlist *s; /* pointer to current command */
int success = 0;
int needconnect = 0;
@@ -499,7 +542,7 @@ togdebug()
}
#else /* NOT43 */
if (debug) {
- if (net > 0 && SetSockOpt(net, SOL_SOCKET, SO_DEBUG, 0, 0) < 0)
+ if (net > 0 && SetSockOpt(net, SOL_SOCKET, SO_DEBUG, 1) < 0)
perror("setsockopt (SO_DEBUG)");
} else
printf("Cannot turn off socket debugging\n");
@@ -1082,7 +1125,7 @@ unsetcmd(argc, argv)
#ifdef KLUDGELINEMODE
extern int kludgelinemode;
- static int
+ static void
dokludgemode()
{
kludgelinemode = 1;
@@ -1139,7 +1182,7 @@ dolmmode(bit, on)
}
int
-setmode(bit)
+setmod(bit)
{
return dolmmode(bit, 1);
}
@@ -1171,17 +1214,17 @@ static struct modelist ModeList[] = {
#endif
{ "", "", 0 },
{ "", "These require the LINEMODE option to be enabled", 0 },
- { "isig", "Enable signal trapping", setmode, 1, MODE_TRAPSIG },
- { "+isig", 0, setmode, 1, MODE_TRAPSIG },
+ { "isig", "Enable signal trapping", setmod, 1, MODE_TRAPSIG },
+ { "+isig", 0, setmod, 1, MODE_TRAPSIG },
{ "-isig", "Disable signal trapping", clearmode, 1, MODE_TRAPSIG },
- { "edit", "Enable character editing", setmode, 1, MODE_EDIT },
- { "+edit", 0, setmode, 1, MODE_EDIT },
+ { "edit", "Enable character editing", setmod, 1, MODE_EDIT },
+ { "+edit", 0, setmod, 1, MODE_EDIT },
{ "-edit", "Disable character editing", clearmode, 1, MODE_EDIT },
- { "softtabs", "Enable tab expansion", setmode, 1, MODE_SOFT_TAB },
- { "+softtabs", 0, setmode, 1, MODE_SOFT_TAB },
+ { "softtabs", "Enable tab expansion", setmod, 1, MODE_SOFT_TAB },
+ { "+softtabs", 0, setmod, 1, MODE_SOFT_TAB },
{ "-softtabs", "Disable character editing", clearmode, 1, MODE_SOFT_TAB },
- { "litecho", "Enable literal character echo", setmode, 1, MODE_LIT_ECHO },
- { "+litecho", 0, setmode, 1, MODE_LIT_ECHO },
+ { "litecho", "Enable literal character echo", setmod, 1, MODE_LIT_ECHO },
+ { "+litecho", 0, setmod, 1, MODE_LIT_ECHO },
{ "-litecho", "Disable literal character echo", clearmode, 1, MODE_LIT_ECHO },
{ "help", 0, modehelp, 0 },
#ifdef KLUDGELINEMODE
@@ -1435,7 +1478,7 @@ extern int shell();
#endif /* !defined(TN3270) */
/*VARARGS*/
- static
+ static int
bye(argc, argv)
int argc; /* Number of arguments */
char *argv[]; /* arguments */
@@ -1465,6 +1508,7 @@ bye(argc, argv)
}
/*VARARGS*/
+ int
quit()
{
(void) call(bye, "bye", "fromquit", 0);
@@ -1530,7 +1574,7 @@ getslc(name)
genget(name, (char **) SlcList, sizeof(struct slclist));
}
- static
+ static int
slccmd(argc, argv)
int argc;
char *argv[];
@@ -1627,6 +1671,7 @@ getenvcmd(name)
genget(name, (char **) EnvList, sizeof(struct envlist));
}
+ int
env_cmd(argc, argv)
int argc;
char *argv[];
@@ -1693,7 +1738,7 @@ env_init()
extern char *strchr();
for (epp = environ; *epp; epp++) {
- if (cp = strchr(*epp, '=')) {
+ if ((cp = strchr(*epp, '='))) {
*cp = '\0';
ep = env_define((unsigned char *)*epp,
(unsigned char *)cp+1);
@@ -1738,7 +1783,7 @@ env_define(var, value)
{
register struct env_lst *ep;
- if (ep = env_find(var)) {
+ if ((ep = env_find(var))) {
if (ep->var)
free(ep->var);
if (ep->value)
@@ -1764,7 +1809,7 @@ env_undefine(var)
{
register struct env_lst *ep;
- if (ep = env_find(var)) {
+ if ((ep = env_find(var))) {
ep->prev->next = ep->next;
if (ep->next)
ep->next->prev = ep->prev;
@@ -1782,7 +1827,7 @@ env_export(var)
{
register struct env_lst *ep;
- if (ep = env_find(var))
+ if ((ep = env_find(var)))
ep->export = 1;
}
@@ -1792,7 +1837,7 @@ env_unexport(var)
{
register struct env_lst *ep;
- if (ep = env_find(var))
+ if ((ep = env_find(var)))
ep->export = 0;
}
@@ -1842,10 +1887,10 @@ env_default(init, welldefined)
if (init) {
nep = &envlisthead;
- return;
+ return(NULL);
}
if (nep) {
- while (nep = nep->next) {
+ while ((nep = nep->next)) {
if (nep->export && (nep->welldefined == welldefined))
return(nep->var);
}
@@ -1859,7 +1904,7 @@ env_getvalue(var)
{
register struct env_lst *ep;
- if (ep = env_find(var))
+ if ((ep = env_find(var)))
return(ep->value);
return(NULL);
}
@@ -1949,6 +1994,7 @@ auth_help()
return 0;
}
+ int
auth_cmd(argc, argv)
int argc;
char *argv[];
@@ -2055,6 +2101,7 @@ EncryptHelp()
return 0;
}
+ int
encrypt_cmd(argc, argv)
int argc;
char *argv[];
@@ -2142,7 +2189,7 @@ filestuff(fd)
* Print status about the connection.
*/
/*ARGSUSED*/
- static
+ static int
status(argc, argv)
int argc;
char *argv[];
@@ -2215,6 +2262,7 @@ status(argc, argv)
/*
* Function that gets called when SIGINFO is received.
*/
+ void
ayt_status()
{
(void) call(status, "status", "notmuch", 0);
@@ -2313,10 +2361,15 @@ tn(argc, argv)
} else {
#endif
temp = inet_addr(hostp);
- if (temp != (unsigned long) -1) {
+ if (temp != INADDR_NONE) {
sin.sin_addr.s_addr = temp;
sin.sin_family = AF_INET;
- (void) strcpy(_hostname, hostp);
+ host = gethostbyaddr((char *)&temp, sizeof(temp), AF_INET);
+ if (host)
+ (void) strncpy(_hostname, host->h_name, sizeof(_hostname));
+ else
+ (void) strncpy(_hostname, hostp, sizeof(_hostname));
+ _hostname[sizeof(_hostname)-1] = '\0';
hostname = _hostname;
} else {
host = gethostbyname(hostp);
@@ -2437,8 +2490,8 @@ tn(argc, argv)
user = getenv("USER");
if (user == NULL ||
- (pw = getpwnam(user)) && pw->pw_uid != getuid()) {
- if (pw = getpwuid(getuid()))
+ ((pw = getpwnam(user)) && pw->pw_uid != getuid())) {
+ if ((pw = getpwuid(getuid())))
user = pw->pw_name;
else
user = NULL;
@@ -2483,12 +2536,13 @@ static char
#if defined(unix)
zhelp[] = "suspend telnet",
#endif /* defined(unix) */
+#if defined(SKEY)
+ skeyhelp[] = "compute response to s/key challenge",
+#endif
shellhelp[] = "invoke a subshell",
envhelp[] = "change environment variables ('environ ?' for more)",
modestring[] = "try to enter line or character mode ('mode ?' for more)";
-static int help();
-
static Command cmdtab[] = {
{ "close", closehelp, bye, 1 },
{ "logout", logouthelp, logout, 1 },
@@ -2521,7 +2575,10 @@ static Command cmdtab[] = {
#endif
{ "environ", envhelp, env_cmd, 0 },
{ "?", helphelp, help, 0 },
- 0
+#if defined(SKEY)
+ { "skey", skeyhelp, skey_calc, 0 },
+#endif
+ { 0, 0, 0, 0 }
};
static char crmodhelp[] = "deprecated command -- use 'toggle crmod' instead";
@@ -2531,7 +2588,7 @@ static Command cmdtab2[] = {
{ "help", 0, help, 0 },
{ "escape", escapehelp, setescape, 0 },
{ "crmod", crmodhelp, togcrmod, 0 },
- 0
+ { 0, 0, 0, 0 }
};
@@ -2540,7 +2597,7 @@ static Command cmdtab2[] = {
*/
/*VARARGS1*/
- static
+ static int
call(va_alist)
va_dcl
{
@@ -2566,7 +2623,7 @@ getcmd(name)
{
Command *cm;
- if (cm = (Command *) genget(name, (char **) cmdtab, sizeof(Command)))
+ if ((cm = (Command *) genget(name, (char **) cmdtab, sizeof(Command))))
return cm;
return (Command *) genget(name, (char **) cmdtab2, sizeof(Command));
}
@@ -2655,7 +2712,7 @@ command(top, tbuf, cnt)
/*
* Help command.
*/
- static
+ static int
help(argc, argv)
int argc;
char *argv[];
@@ -2669,9 +2726,8 @@ help(argc, argv)
printf("%-*s\t%s\n", HELPINDENT, c->name,
c->help);
}
- return 0;
}
- while (--argc > 0) {
+ else while (--argc > 0) {
register char *arg;
arg = *++argv;
c = getcmd(arg);
@@ -2682,12 +2738,13 @@ help(argc, argv)
else
printf("%s\n", c->help);
}
- return 0;
+ return(0);
}
static char *rcname = 0;
static char rcbuf[128];
+ void
cmdrc(m1, m2)
char *m1, *m2;
{
@@ -2706,7 +2763,7 @@ cmdrc(m1, m2)
if (rcname == 0) {
rcname = getenv("HOME");
- if (rcname)
+ if (rcname && (strlen(rcname) + 10) < sizeof(rcbuf))
strcpy(rcbuf, rcname);
else
rcbuf[0] = '\0';
@@ -2881,7 +2938,7 @@ sourceroute(arg, cpp, lenp)
for (c = 0;;) {
if (c == ':')
cp2 = 0;
- else for (cp2 = cp; c = *cp2; cp2++) {
+ else for (cp2 = cp; (c = *cp2); cp2++) {
if (c == ',') {
*cp2++ = '\0';
if (*cp2 == '@')
@@ -2899,7 +2956,7 @@ sourceroute(arg, cpp, lenp)
if ((tmp = inet_addr(cp)) != -1) {
sin_addr.s_addr = tmp;
- } else if (host = gethostbyname(cp)) {
+ } else if ((host = gethostbyname(cp))) {
#if defined(h_addr)
memmove((caddr_t)&sin_addr,
host->h_addr_list[0], host->h_length);
diff --git a/contrib/telnet/telnet/externs.h b/contrib/telnet/telnet/externs.h
index 83ba07b..a834c61 100644
--- a/contrib/telnet/telnet/externs.h
+++ b/contrib/telnet/telnet/externs.h
@@ -145,7 +145,8 @@ extern int
#endif /* defined(TN3270) */
termdata, /* Print out terminal data flow */
#endif /* defined(unix) */
- debug; /* Debug level */
+ debug, /* Debug level */
+ clienteof; /* Client received EOF */
extern cc_t escape; /* Escape to command mode */
extern cc_t rlogin; /* Rlogin mode escape character */
@@ -245,6 +246,7 @@ extern jmp_buf
extern void
command P((int, char *, int)),
Dump P((int, unsigned char *, int)),
+ ExitString P((char *, int)),
init_3270 P((void)),
printoption P((char *, int, int)),
printsub P((int, unsigned char *, int)),
@@ -290,7 +292,14 @@ extern void
slc_add_reply P((int, int, int)),
slc_end_reply P((void));
extern int
- slc_update P((void));
+ NetClose P((int)),
+ netflush P((void)),
+ SetSockOpt P((int, int, int, int)),
+ slc_update P((void)),
+ telrcv P((void)),
+ TerminalWrite P((char *, int)),
+ TerminalAutoFlush P((void)),
+ ttyflush P((int));
extern void
env_opt P((unsigned char *, int)),
diff --git a/contrib/telnet/telnet/main.c b/contrib/telnet/telnet/main.c
index 6073dbf..9049385 100644
--- a/contrib/telnet/telnet/main.c
+++ b/contrib/telnet/telnet/main.c
@@ -32,21 +32,29 @@
*/
#ifndef lint
-static char copyright[] =
+static const char copyright[] =
"@(#) Copyright (c) 1988, 1990, 1993\n\
The Regents of the University of California. All rights reserved.\n";
#endif /* not lint */
#ifndef lint
-static char sccsid[] = "@(#)main.c 8.3 (Berkeley) 5/30/95";
+static const char sccsid[] = "@(#)main.c 8.3 (Berkeley) 5/30/95";
#endif /* not lint */
#include <sys/types.h>
+#include <stdlib.h>
#include "ring.h"
#include "externs.h"
#include "defines.h"
+#if defined(AUTHENTICATION)
+#include <libtelnet/auth.h>
+#endif
+#if defined(ENCRYPTION)
+#include <libtelnet/encrypt.h>
+#endif
+
/* These values need to be the same as defined in libtelnet/kerberos5.c */
/* Either define them in both places, or put in some common header file. */
#define OPTS_FORWARD_CREDS 0x00000002
@@ -56,6 +64,12 @@ static char sccsid[] = "@(#)main.c 8.3 (Berkeley) 5/30/95";
#define FORWARD
#endif
+void init_terminal(void);
+void init_network(void);
+void init_telnet(void);
+void init_sys(void);
+void init_3270(void);
+
/*
* Initialize variables.
*/
@@ -109,7 +123,7 @@ usage()
* main. Parse arguments, invoke the protocol or command parser.
*/
-
+ int
main(argc, argv)
int argc;
char *argv[];
@@ -129,7 +143,7 @@ main(argc, argv)
TerminalSaveState();
- if (prompt = strrchr(argv[0], '/'))
+ if ((prompt = strrchr(argv[0], '/')))
++prompt;
else
prompt = argv[0];
@@ -319,4 +333,5 @@ main(argc, argv)
#endif
command(1, 0, 0);
}
+ return 0;
}
diff --git a/contrib/telnet/telnet/network.c b/contrib/telnet/telnet/network.c
index 0fe5cee..9964bc2 100644
--- a/contrib/telnet/telnet/network.c
+++ b/contrib/telnet/telnet/network.c
@@ -32,7 +32,7 @@
*/
#ifndef lint
-static char sccsid[] = "@(#)network.c 8.2 (Berkeley) 12/15/93";
+static const char sccsid[] = "@(#)network.c 8.2 (Berkeley) 12/15/93";
#endif /* not lint */
#include <sys/types.h>
@@ -42,6 +42,7 @@ static char sccsid[] = "@(#)network.c 8.2 (Berkeley) 12/15/93";
#include <errno.h>
#include <arpa/telnet.h>
+#include <unistd.h>
#include "ring.h"
diff --git a/contrib/telnet/telnet/ring.c b/contrib/telnet/telnet/ring.c
index 37dfda8..13fe6c2 100644
--- a/contrib/telnet/telnet/ring.c
+++ b/contrib/telnet/telnet/ring.c
@@ -32,7 +32,7 @@
*/
#ifndef lint
-static char sccsid[] = "@(#)ring.c 8.2 (Berkeley) 5/30/95";
+static const char sccsid[] = "@(#)ring.c 8.2 (Berkeley) 5/30/95";
#endif /* not lint */
/*
@@ -48,6 +48,7 @@ static char sccsid[] = "@(#)ring.c 8.2 (Berkeley) 5/30/95";
#include <stdio.h>
#include <errno.h>
+#include <string.h>
#ifdef size_t
#undef size_t
@@ -99,6 +100,7 @@ static u_long ring_clock = 0;
/* Buffer state transition routines */
+ int
ring_init(ring, buffer, count)
Ring *ring;
unsigned char *buffer;
diff --git a/contrib/telnet/telnet/sys_bsd.c b/contrib/telnet/telnet/sys_bsd.c
index f2769ac..ed5f459 100644
--- a/contrib/telnet/telnet/sys_bsd.c
+++ b/contrib/telnet/telnet/sys_bsd.c
@@ -32,7 +32,7 @@
*/
#ifndef lint
-static char sccsid[] = "@(#)sys_bsd.c 8.4 (Berkeley) 5/30/95";
+static const char sccsid[] = "@(#)sys_bsd.c 8.4 (Berkeley) 5/30/95";
#endif /* not lint */
/*
@@ -48,6 +48,7 @@ static char sccsid[] = "@(#)sys_bsd.c 8.4 (Berkeley) 5/30/95";
#include <signal.h>
#include <errno.h>
#include <arpa/telnet.h>
+#include <unistd.h>
#include "ring.h"
@@ -140,7 +141,7 @@ TerminalWrite(buf, n)
int
TerminalRead(buf, n)
- unsigned char *buf;
+ char *buf;
int n;
{
return read(tin, buf, n);
@@ -1051,7 +1052,7 @@ process_rings(netin, netout, netex, ttyin, ttyout, poll)
}
# endif /* defined(TN3270) */
/* I don't like this, does it ever happen? */
- printf("sleep(5) from telnet, after select\r\n");
+ printf("sleep(5) from telnet, after select: %s\r\n", strerror(errno));
sleep(5);
}
return 0;
diff --git a/contrib/telnet/telnet/telnet.c b/contrib/telnet/telnet/telnet.c
index e792262..1c1ee33 100644
--- a/contrib/telnet/telnet/telnet.c
+++ b/contrib/telnet/telnet/telnet.c
@@ -32,7 +32,7 @@
*/
#ifndef lint
-static char sccsid[] = "@(#)telnet.c 8.4 (Berkeley) 5/30/95";
+static const char sccsid[] = "@(#)telnet.c 8.4 (Berkeley) 5/30/95";
#endif /* not lint */
#include <sys/types.h>
@@ -49,6 +49,10 @@ static char sccsid[] = "@(#)telnet.c 8.4 (Berkeley) 5/30/95";
#include <ctype.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <termcap.h>
+
#include "ring.h"
#include "defines.h"
@@ -56,6 +60,13 @@ static char sccsid[] = "@(#)telnet.c 8.4 (Berkeley) 5/30/95";
#include "types.h"
#include "general.h"
+#if defined(AUTHENTICATION)
+#include <libtelnet/auth.h>
+#endif
+#if defined(ENCRYPTION)
+#include <libtelnet/encrypt.h>
+#endif
+#include <libtelnet/misc.h>
#define strip(x) ((my_want_state_is_wont(TELOPT_BINARY)) ? ((x)&0x7f) : (x))
@@ -104,7 +115,8 @@ int
donelclchars, /* the user has set "localchars" */
donebinarytoggle, /* the user has put us in binary */
dontlecho, /* do we suppress local echoing right now? */
- globalmode;
+ globalmode,
+ clienteof = 0;
char *prompt = 0;
@@ -856,7 +868,7 @@ suboption()
TerminalSpeeds(&ispeed, &ospeed);
- sprintf((char *)temp, "%c%c%c%c%d,%d%c%c", IAC, SB, TELOPT_TSPEED,
+ sprintf((char *)temp, "%c%c%c%c%ld,%ld%c%c", IAC, SB, TELOPT_TSPEED,
TELQUAL_IS, ospeed, ispeed, IAC, SE);
len = strlen((char *)temp+4) + 4; /* temp[3] is 0 ... */
@@ -1212,7 +1224,7 @@ slc_init()
#define initfunc(func, flags) { \
spcp = &spc_data[func]; \
- if (spcp->valp = tcval(func)) { \
+ if ((spcp->valp = tcval(func))) { \
spcp->val = *spcp->valp; \
spcp->mylevel = SLC_VARIABLE|flags; \
} else { \
@@ -1620,12 +1632,12 @@ env_opt_add(ep)
if (ep == NULL || *ep == '\0') {
/* Send user defined variables first. */
env_default(1, 0);
- while (ep = env_default(0, 0))
+ while ((ep = env_default(0, 0)))
env_opt_add(ep);
/* Now add the list of well know variables. */
env_default(1, 1);
- while (ep = env_default(0, 1))
+ while ((ep = env_default(0, 1)))
env_opt_add(ep);
return;
}
@@ -1655,7 +1667,7 @@ env_opt_add(ep)
else
*opt_replyp++ = ENV_USERVAR;
for (;;) {
- while (c = *ep++) {
+ while ((c = *ep++)) {
switch(c&0xff) {
case IAC:
*opt_replyp++ = IAC;
@@ -1669,7 +1681,7 @@ env_opt_add(ep)
}
*opt_replyp++ = c;
}
- if (ep = vp) {
+ if ((ep = vp)) {
#ifdef OLD_ENVIRON
if (telopt_environ == TELOPT_OLD_ENVIRON)
*opt_replyp++ = old_env_value;
@@ -2184,9 +2196,9 @@ Scheduler(block)
ttyout = ring_full_count(&ttyoring);
#if defined(TN3270)
- ttyin = ring_empty_count(&ttyiring) && (shell_active == 0);
+ ttyin = ring_empty_count(&ttyiring) && (clienteof == 0) && (shell_active == 0);
#else /* defined(TN3270) */
- ttyin = ring_empty_count(&ttyiring);
+ ttyin = ring_empty_count(&ttyiring) && (clienteof == 0);
#endif /* defined(TN3270) */
#if defined(TN3270)
diff --git a/contrib/telnet/telnet/terminal.c b/contrib/telnet/telnet/terminal.c
index b5ceeda..a2383d9 100644
--- a/contrib/telnet/telnet/terminal.c
+++ b/contrib/telnet/telnet/terminal.c
@@ -32,7 +32,7 @@
*/
#ifndef lint
-static char sccsid[] = "@(#)terminal.c 8.2 (Berkeley) 2/16/95";
+static const char sccsid[] = "@(#)terminal.c 8.2 (Berkeley) 2/16/95";
#endif /* not lint */
#include <arpa/telnet.h>
@@ -43,6 +43,10 @@ static char sccsid[] = "@(#)terminal.c 8.2 (Berkeley) 2/16/95";
#include "externs.h"
#include "types.h"
+#if defined(ENCRYPTION)
+#include <libtelnet/encrypt.h>
+#endif
+
Ring ttyoring, ttyiring;
unsigned char ttyobuf[2*BUFSIZ], ttyibuf[BUFSIZ];
diff --git a/contrib/telnet/telnet/tn3270.c b/contrib/telnet/telnet/tn3270.c
index a75cd1e..5a453d9 100644
--- a/contrib/telnet/telnet/tn3270.c
+++ b/contrib/telnet/telnet/tn3270.c
@@ -32,7 +32,7 @@
*/
#ifndef lint
-static char sccsid[] = "@(#)tn3270.c 8.2 (Berkeley) 5/30/95";
+static const char sccsid[] = "@(#)tn3270.c 8.2 (Berkeley) 5/30/95";
#endif /* not lint */
#include <sys/types.h>
diff --git a/contrib/telnet/telnet/utilities.c b/contrib/telnet/telnet/utilities.c
index 06d08a4..0ee882e 100644
--- a/contrib/telnet/telnet/utilities.c
+++ b/contrib/telnet/telnet/utilities.c
@@ -32,7 +32,7 @@
*/
#ifndef lint
-static char sccsid[] = "@(#)utilities.c 8.3 (Berkeley) 5/30/95";
+static const char sccsid[] = "@(#)utilities.c 8.3 (Berkeley) 5/30/95";
#endif /* not lint */
#define TELOPTS
@@ -40,7 +40,9 @@ static char sccsid[] = "@(#)utilities.c 8.3 (Berkeley) 5/30/95";
#define SLC_NAMES
#include <arpa/telnet.h>
#include <sys/types.h>
+#include <sys/socket.h>
#include <sys/time.h>
+#include <unistd.h>
#include <ctype.h>
@@ -54,6 +56,13 @@ static char sccsid[] = "@(#)utilities.c 8.3 (Berkeley) 5/30/95";
#include "externs.h"
+#if defined(AUTHENTICATION)
+#include <libtelnet/auth.h>
+#endif
+#if defined(ENCRYPTION)
+#include <libtelnet/encrypt.h>
+#endif
+
FILE *NetTrace = 0; /* Not in bss, since needs to stay */
int prettydump;
@@ -134,7 +143,6 @@ Dump(direction, buffer, length)
# define min(x,y) ((x<y)? x:y)
unsigned char *pThis;
int offset;
- extern pettydump;
offset = 0;
@@ -819,7 +827,6 @@ printsub(direction, pointer, length)
break;
default:
- def_case:
if (isprint(pointer[i]) && pointer[i] != '"') {
if (noquote) {
putc('"', NetTrace);
OpenPOWER on IntegriCloud