git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1653 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
1997-05-04 04:01:13 +00:00
parent cb7d150f96
commit 5b8c4c88b0
14 changed files with 480 additions and 676 deletions

View File

@@ -31,25 +31,11 @@
* SUCH DAMAGE.
*/
#include <config.h>
#ifdef SOCKS
#include <socks.h>
#endif
#include "telnet_locl.h"
RCSID("$Id$");
#if defined(AUTHENTICATION) || defined(ENCRYPTION)
#include <sys/types.h>
#include <arpa/telnet.h>
#include <libtelnet/encrypt.h>
#include <libtelnet/misc.h>
#include "general.h"
#include "ring.h"
#include "externs.h"
#include "defines.h"
#include "types.h"
int
net_write(unsigned char *str, int len)
{
@@ -63,7 +49,7 @@ net_write(unsigned char *str, int len)
}
void
net_encrypt()
net_encrypt(void)
{
#if defined(ENCRYPTION)
if (encrypt_output)
@@ -74,7 +60,7 @@ net_encrypt()
}
int
telnet_spin()
telnet_spin(void)
{
return(-1);
}
@@ -97,7 +83,7 @@ telnet_gets(char *prompt, char *result, int length, int 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;
}

View File

@@ -31,68 +31,10 @@
* SUCH DAMAGE.
*/
#include <config.h>
#ifdef SOCKS
#include <socks.h>
#endif
#include "telnet_locl.h"
RCSID("$Id$");
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <ctype.h>
#include <signal.h>
#include <errno.h>
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif
#ifdef HAVE_PWD_H
#include <pwd.h>
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
#ifdef HAVE_SYS_FILE_H
#include <sys/file.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_NETINET_IN_SYSTM_H
#include <netinet/in_systm.h>
#endif
#ifdef HAVE_NETINET_IP_H
#include <netinet/ip.h>
#endif
#ifdef HAVE_ARPA_TELNET_H
#include <arpa/telnet.h>
#endif
#include "general.h"
#include "ring.h"
#include "externs.h"
#include "defines.h"
#include "types.h"
#include "libtelnet/misc-proto.h"
#include "roken.h"
#if defined(IPPROTO_IP) && defined(IP_TOS)
int tos = -1;
#endif /* defined(IPPROTO_IP) && defined(IP_TOS) */
@@ -129,7 +71,7 @@ makeargv()
margc++;
cp++;
}
while (c = *cp) {
while ((c = *cp)) {
int inquote = 0;
while (isspace(c))
c = *++cp;
@@ -373,6 +315,9 @@ sendcmd(int argc, char **argv)
return (count == success);
}
static int
send_tncmd(void (*func)(), char *cmd, char *name);
static int
send_esc()
{
@@ -404,7 +349,7 @@ send_wontcmd(char *name)
return(send_tncmd(send_wont, "wont", name));
}
int
static int
send_tncmd(void (*func)(), char *cmd, char *name)
{
char **cpp;
@@ -845,55 +790,26 @@ static struct setlist Setlist[] = {
{ "tracefile", "file to write trace information to", SetNetTrace, (cc_t *)NetTraceFile},
{ " ", "" },
{ " ", "The following need 'localchars' to be toggled true", 0, 0 },
{ "flushoutput", "character to cause an Abort Output", 0, termFlushCharp },
{ "interrupt", "character to cause an Interrupt Process", 0, termIntCharp },
{ "quit", "character to cause an Abort process", 0, termQuitCharp },
{ "eof", "character to cause an EOF ", 0, termEofCharp },
{ "flushoutput", "character to cause an Abort Output", 0, &termFlushChar },
{ "interrupt", "character to cause an Interrupt Process", 0, &termIntChar },
{ "quit", "character to cause an Abort process", 0, &termQuitChar },
{ "eof", "character to cause an EOF ", 0, &termEofChar },
{ " ", "" },
{ " ", "The following are for local editing in linemode", 0, 0 },
{ "erase", "character to use to erase a character", 0, termEraseCharp },
{ "kill", "character to use to erase a line", 0, termKillCharp },
{ "lnext", "character to use for literal next", 0, termLiteralNextCharp },
{ "susp", "character to cause a Suspend Process", 0, termSuspCharp },
{ "reprint", "character to use for line reprint", 0, termRprntCharp },
{ "worderase", "character to use to erase a word", 0, termWerasCharp },
{ "start", "character to use for XON", 0, termStartCharp },
{ "stop", "character to use for XOFF", 0, termStopCharp },
{ "forw1", "alternate end of line character", 0, termForw1Charp },
{ "forw2", "alternate end of line character", 0, termForw2Charp },
{ "ayt", "alternate AYT character", 0, termAytCharp },
{ "erase", "character to use to erase a character", 0, &termEraseChar },
{ "kill", "character to use to erase a line", 0, &termKillChar },
{ "lnext", "character to use for literal next", 0, &termLiteralNextChar },
{ "susp", "character to cause a Suspend Process", 0, &termSuspChar },
{ "reprint", "character to use for line reprint", 0, &termRprntChar },
{ "worderase", "character to use to erase a word", 0, &termWerasChar },
{ "start", "character to use for XON", 0, &termStartChar },
{ "stop", "character to use for XOFF", 0, &termStopChar },
{ "forw1", "alternate end of line character", 0, &termForw1Char },
{ "forw2", "alternate end of line character", 0, &termForw2Char },
{ "ayt", "alternate AYT character", 0, &termAytChar },
{ 0 }
};
#if defined(CRAY) && !defined(__STDC__)
/* Work around compiler bug in pcc 4.1.5 */
void
_setlist_init()
{
#ifndef KLUDGELINEMODE
#define N 5
#else
#define N 6
#endif
Setlist[N+0].charp = &termFlushChar;
Setlist[N+1].charp = &termIntChar;
Setlist[N+2].charp = &termQuitChar;
Setlist[N+3].charp = &termEofChar;
Setlist[N+6].charp = &termEraseChar;
Setlist[N+7].charp = &termKillChar;
Setlist[N+8].charp = &termLiteralNextChar;
Setlist[N+9].charp = &termSuspChar;
Setlist[N+10].charp = &termRprntChar;
Setlist[N+11].charp = &termWerasChar;
Setlist[N+12].charp = &termStartChar;
Setlist[N+13].charp = &termStopChar;
Setlist[N+14].charp = &termForw1Char;
Setlist[N+15].charp = &termForw2Char;
Setlist[N+16].charp = &termAytChar;
#undef N
}
#endif /* defined(CRAY) && !defined(__STDC__) */
static struct setlist *
getset(char *name)
{
@@ -1129,7 +1045,7 @@ struct modelist {
int arg1;
};
static int modehelp();
static int modehelp(void);
static struct modelist ModeList[] = {
{ "character", "Disable LINEMODE option", docharmode, 1 },
@@ -1165,7 +1081,7 @@ static struct modelist ModeList[] = {
static int
modehelp()
modehelp(void)
{
struct modelist *mt;
@@ -1438,7 +1354,7 @@ struct slclist {
int arg;
};
static void slc_help();
static void slc_help(void);
struct slclist SlcList[] = {
{ "export", "Use local special character definitions",
@@ -1453,7 +1369,7 @@ struct slclist SlcList[] = {
};
static void
slc_help()
slc_help(void)
{
struct slclist *c;
@@ -1511,16 +1427,7 @@ struct envlist {
int narg;
};
extern struct env_lst *
env_define (unsigned char *, unsigned char *);
extern void
env_undefine (unsigned char *),
env_export (unsigned char *),
env_unexport (unsigned char *),
env_send (unsigned char *),
env_list (void);
static void
env_help (void);
static void env_help (void);
struct envlist EnvList[] = {
{ "define", "Define an environment variable",
@@ -1621,14 +1528,14 @@ env_find(unsigned char *var)
#endif
void
env_init()
env_init(void)
{
extern char **environ;
char **epp, *cp;
struct env_lst *ep;
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);
@@ -1642,8 +1549,8 @@ env_init()
* hostname.
*/
if ((ep = env_find("DISPLAY"))
&& ((*ep->value == ':')
|| (strncmp((char *)ep->value, "unix:", 5) == 0))) {
&& (*ep->value == ':'
|| strncmp((char *)ep->value, "unix:", 5) == 0)) {
char hbuf[256+1];
char *cp2 = strchr((char *)ep->value, ':');
@@ -1681,7 +1588,7 @@ env_define(unsigned char *var, unsigned char *value)
{
struct env_lst *ep;
if (ep = env_find(var)) {
if ((ep = env_find(var))) {
if (ep->var)
free(ep->var);
if (ep->value)
@@ -1706,7 +1613,7 @@ env_undefine(unsigned char *var)
{
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;
@@ -1723,7 +1630,7 @@ env_export(unsigned char *var)
{
struct env_lst *ep;
if (ep = env_find(var))
if ((ep = env_find(var)))
ep->export = 1;
}
@@ -1732,7 +1639,7 @@ env_unexport(unsigned char *var)
{
struct env_lst *ep;
if (ep = env_find(var))
if ((ep = env_find(var)))
ep->export = 0;
}
@@ -1763,7 +1670,7 @@ env_send(unsigned char *var)
}
void
env_list()
env_list(void)
{
struct env_lst *ep;
@@ -1783,7 +1690,7 @@ env_default(int init, int welldefined)
return NULL;
}
if (nep) {
while (nep = nep->next) {
while ((nep = nep->next)) {
if (nep->export && (nep->welldefined == welldefined))
return(nep->var);
}
@@ -1796,7 +1703,7 @@ env_getvalue(unsigned char *var)
{
struct env_lst *ep;
if (ep = env_find(var))
if ((ep = env_find(var)))
return(ep->value);
return(NULL);
}
@@ -1814,10 +1721,6 @@ struct authlist {
int narg;
};
extern int
auth_enable (char *),
auth_disable (char *),
auth_status (void);
static int
auth_help (void);
@@ -1898,17 +1801,6 @@ struct encryptlist {
int maxarg;
};
extern int
EncryptEnable (char *, char *),
EncryptDisable (char *, char *),
EncryptType (char *, char *),
EncryptStart (char *),
EncryptStartInput (void),
EncryptStartOutput (void),
EncryptStop (char *),
EncryptStopInput (void),
EncryptStopOutput (void),
EncryptStatus (void);
static int
EncryptHelp (void);
@@ -2045,14 +1937,13 @@ status(int argc, char **argv)
/*
* Function that gets called when SIGINFO is received.
*/
ayt_status()
void
ayt_status(void)
{
call(status, "status", "notmuch", 0);
}
#endif
unsigned long inet_addr();
static char *rcname = 0;
static char rcbuf[128];
@@ -2148,7 +2039,7 @@ tn(int argc, char **argv)
extern char *inet_ntoa();
#if defined(IP_OPTIONS) && defined(IPPROTO_IP)
char *srp = 0;
unsigned long sourceroute(), srlen;
int srlen;
#endif
char *cmd, *hostp = 0, *portp = 0, *user = 0;
@@ -2360,7 +2251,7 @@ tn(int argc, char **argv)
user = getenv("USER");
if (user == NULL ||
((pw = k_getpwnam(user)) && pw->pw_uid != getuid())) {
if (pw = k_getpwuid(getuid()))
if ((pw = k_getpwuid(getuid())))
user = pw->pw_name;
else
user = NULL;
@@ -2376,6 +2267,7 @@ tn(int argc, char **argv)
NetClose(net);
ExitString("Connection closed by foreign host.\r\n",1);
/*NOTREACHED*/
return 0;
}
#define HELPINDENT (sizeof ("connect"))
@@ -2404,7 +2296,7 @@ static char
envhelp[] = "change environment variables ('environ ?' for more)",
modestring[] = "try to enter line or character mode ('mode ?' for more)";
static int help();
static int help(int argc, char **argv);
static Command cmdtab[] = {
{ "close", closehelp, bye, 1 },
@@ -2466,7 +2358,7 @@ static Command
{
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));
}
@@ -2618,9 +2510,6 @@ unsigned long
sourceroute(char *arg, char **cpp, int *lenp)
{
static char lsr[44];
#ifdef sysV88
static IOPTN ipopt;
#endif
char *cp, *cp2, *lsrp, *lsrep;
int tmp;
struct in_addr sin_addr;
@@ -2654,27 +2543,17 @@ sourceroute(char *arg, char **cpp, int *lenp)
* route or a strict source route, and fill in
* the begining of the option.
*/
#ifndef sysV88
if (*cp == '!') {
cp++;
*lsrp++ = IPOPT_SSRR;
} else
*lsrp++ = IPOPT_LSRR;
#else
if (*cp == '!') {
cp++;
ipopt.io_type = IPOPT_SSRR;
} else
ipopt.io_type = IPOPT_LSRR;
#endif
if (*cp != '@')
return((unsigned long)-1);
#ifndef sysV88
lsrp++; /* skip over length, we'll fill it in later */
*lsrp++ = 4;
#endif
cp++;
@@ -2683,7 +2562,7 @@ sourceroute(char *arg, char **cpp, int *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 == '@')
@@ -2701,7 +2580,7 @@ sourceroute(char *arg, char **cpp, int *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(&sin_addr,
host->h_addr_list[0],
@@ -2726,7 +2605,6 @@ sourceroute(char *arg, char **cpp, int *lenp)
if (lsrp + 4 > lsrep)
return((unsigned long)-1);
}
#ifndef sysV88
if ((*(*cpp+IPOPT_OLEN) = lsrp - *cpp) <= 7) {
*cpp = 0;
*lenp = 0;
@@ -2734,16 +2612,6 @@ sourceroute(char *arg, char **cpp, int *lenp)
}
*lsrp++ = IPOPT_NOP; /* 32 bit word align it */
*lenp = lsrp - *cpp;
#else
ipopt.io_len = lsrp - *cpp;
if (ipopt.io_len <= 5) { /* Is 3 better ? */
*cpp = 0;
*lenp = 0;
return((unsigned long)-1);
}
*lenp = sizeof(ipopt);
*cpp = (char *) &ipopt;
#endif
return(sin_addr.s_addr);
}
#endif

View File

@@ -35,27 +35,10 @@
/* $Id$ */
#include <stdio.h>
#include <setjmp.h>
#if defined(CRAY) && !defined(NO_BSD_SETJMP)
#include <bsdsetjmp.h>
#endif
/* not with SunOS 4 */
#if defined(HAVE_SYS_IOCTL_H) && SunOS != 4
#include <sys/ioctl.h>
#endif
#ifdef HAVE_SYS_FILIO_H
#include <sys/filio.h>
#endif
#include <errno.h>
#ifndef BSD
# define BSD 43
#endif
#include <termios.h>
#ifndef _POSIX_VDISABLE
# ifdef sun
# include <sys/param.h> /* pick up VDISABLE definition, mayby */
@@ -192,74 +175,182 @@ extern jmp_buf
peerdied,
toplevel; /* For error conditions. */
extern void
command (int, char *, int),
Dump (char, unsigned char *, int),
printoption (char *, int, int),
printsub (char, unsigned char *, int),
sendnaws (void),
setconnmode (int),
setcommandmode (void),
setneturg (void),
sys_telnet_init (void),
telnet (char *),
tel_enter_binary (int),
TerminalFlushOutput (void),
TerminalNewMode (int),
TerminalRestoreState (void),
TerminalSaveState (void),
tninit (void),
willoption (int),
wontoption (int);
/* authenc.c */
extern void
send_do (int, int),
send_dont (int, int),
send_will (int, int),
send_wont (int, int);
#if defined(AUTHENTICATION) || defined(ENCRYPTION)
int net_write(unsigned char *str, int len);
void net_encrypt(void);
int telnet_spin(void);
char *telnet_getenv(char *val);
char *telnet_gets(char *prompt, char *result, int length, int echo);
#endif
extern void
lm_will (unsigned char *, int),
lm_wont (unsigned char *, int),
lm_do (unsigned char *, int),
lm_dont (unsigned char *, int),
lm_mode (unsigned char *, int, int);
/* commands.c */
extern void
slc_init (void),
slcstate (void),
slc_mode_export (void),
slc_mode_import (int),
slc_import (int),
slc_export (void),
slc (unsigned char *, int),
slc_check (void),
slc_start_reply (void),
slc_add_reply (unsigned char, unsigned char, cc_t),
slc_end_reply (void);
extern int
slc_update (void);
struct env_lst *env_define (unsigned char *, unsigned char *);
struct env_lst *env_find(unsigned char *var);
void env_init (void);
void env_undefine (unsigned char *);
void env_export (unsigned char *);
void env_unexport (unsigned char *);
void env_send (unsigned char *);
void env_list (void);
unsigned char * env_default(int init, int welldefined);
unsigned char * env_getvalue(unsigned char *var);
extern void
env_opt (unsigned char *, int),
env_opt_start (void),
env_opt_start_info (void),
env_opt_add (unsigned char *),
env_opt_end (int);
void set_escape_char(char *s);
unsigned long sourceroute(char *arg, char **cpp, int *lenp);
extern unsigned char
*env_default (int, int),
*env_getvalue (unsigned char *);
#if defined(AUTHENTICATION)
int auth_enable (char *);
int auth_disable (char *);
int auth_status (void);
#endif
extern int
get_status (void),
dosynch (void);
#if defined(ENCRYPTION)
int EncryptEnable (char *, char *);
int EncryptDisable (char *, char *);
int EncryptType (char *, char *);
int EncryptStart (char *);
int EncryptStartInput (void);
int EncryptStartOutput (void);
int EncryptStop (char *);
int EncryptStopInput (void);
int EncryptStopOutput (void);
int EncryptStatus (void);
#endif
extern cc_t
*tcval (int);
#ifdef SIGINFO
void ayt_status(void);
#endif
int tn(int argc, char **argv);
void command(int top, char *tbuf, int cnt);
extern int quit (void);
/* main.c */
void tninit(void);
void usage(void);
/* network.c */
void init_network(void);
int stilloob(void);
void setneturg(void);
int netflush(void);
/* sys_bsd.c */
void init_sys(void);
int TerminalWrite(char *buf, int n);
int TerminalRead(unsigned char *buf, int n);
int TerminalAutoFlush(void);
int TerminalSpecialChars(int c);
void TerminalFlushOutput(void);
void TerminalSaveState(void);
void TerminalDefaultChars(void);
void TerminalNewMode(int f);
cc_t *tcval(int func);
void TerminalSpeeds(long *ispeed, long *ospeed);
int TerminalWindowSize(long *rows, long *cols);
int NetClose(int fd);
void NetNonblockingIO(int fd, int onoff);
int process_rings(int netin, int netout, int netex, int ttyin, int ttyout,
int poll);
/* telnet.c */
void init_telnet(void);
void tel_leave_binary(int rw);
void tel_enter_binary(int rw);
int opt_welldefined(char *ep);
int telrcv(void);
int rlogin_susp(void);
void intp(void);
void sendbrk(void);
void sendabort(void);
void sendsusp(void);
void sendeof(void);
void sendayt(void);
void xmitAO(void);
void xmitEL(void);
void xmitEC(void);
void Dump (char, unsigned char *, int);
void printoption (char *, int, int);
void printsub (char, unsigned char *, int);
void sendnaws (void);
void setconnmode (int);
void setcommandmode (void);
void setneturg (void);
void sys_telnet_init (void);
void telnet (char *);
void tel_enter_binary (int);
void TerminalFlushOutput (void);
void TerminalNewMode (int);
void TerminalRestoreState (void);
void TerminalSaveState (void);
void tninit (void);
void willoption (int);
void wontoption (int);
void send_do (int, int);
void send_dont (int, int);
void send_will (int, int);
void send_wont (int, int);
void lm_will (unsigned char *, int);
void lm_wont (unsigned char *, int);
void lm_do (unsigned char *, int);
void lm_dont (unsigned char *, int);
void lm_mode (unsigned char *, int, int);
void slc_init (void);
void slcstate (void);
void slc_mode_export (void);
void slc_mode_import (int);
void slc_import (int);
void slc_export (void);
void slc (unsigned char *, int);
void slc_check (void);
void slc_start_reply (void);
void slc_add_reply (unsigned char, unsigned char, cc_t);
void slc_end_reply (void);
int slc_update (void);
void env_opt (unsigned char *, int);
void env_opt_start (void);
void env_opt_start_info (void);
void env_opt_add (unsigned char *);
void env_opt_end (int);
unsigned char *env_default (int, int);
unsigned char *env_getvalue (unsigned char *);
int get_status (void);
int dosynch (void);
cc_t *tcval (int);
int quit (void);
/* terminal.c */
void init_terminal(void);
int ttyflush(int drop);
int getconnmode(void);
/* utilities.c */
int SetSockOpt(int fd, int level, int option, int yesno);
void optionstatus(void);
void EmptyTerminal(void);
void SetForExit(void);
void Exit(int returnCode);
void ExitString(char *string, int returnCode);
extern struct termios new_tc;
@@ -323,23 +414,6 @@ extern cc_t termAytChar;
# define termAytChar new_tc.c_cc[VSTATUS]
#endif
# define termEofCharp &termEofChar
# define termEraseCharp &termEraseChar
# define termIntCharp &termIntChar
# define termKillCharp &termKillChar
# define termQuitCharp &termQuitChar
# define termSuspCharp &termSuspChar
# define termFlushCharp &termFlushChar
# define termWerasCharp &termWerasChar
# define termRprntCharp &termRprntChar
# define termLiteralNextCharp &termLiteralNextChar
# define termStartCharp &termStartChar
# define termStopCharp &termStopChar
# define termForw1Charp &termForw1Char
# define termForw2Charp &termForw2Char
# define termAytCharp &termAytChar
/* Ring buffer structures which are shared */
extern Ring

View File

@@ -1,49 +0,0 @@
/*
* Copyright (c) 1988, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)fdset.h 8.1 (Berkeley) 6/6/93
*/
/*
* The following is defined just in case someone should want to run
* this telnet on a 4.2 system.
*
*/
#ifndef FD_SETSIZE
#define FD_SET(n, p) ((p)->fds_bits[0] |= (1<<(n)))
#define FD_CLR(n, p) ((p)->fds_bits[0] &= ~(1<<(n)))
#define FD_ISSET(n, p) ((p)->fds_bits[0] & (1<<(n)))
#define FD_ZERO(p) ((p)->fds_bits[0] = 0)
#endif

View File

@@ -1,45 +0,0 @@
/*
* Copyright (c) 1988, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)general.h 8.1 (Berkeley) 6/6/93
*/
/*
* Some general definitions.
*/
#define numberof(x) (sizeof x/sizeof x[0])
#define highestof(x) (numberof(x)-1)
#define ClearElement(x) memset((char *)&x, 0, sizeof x)
#define ClearArray(x) memset((char *)x, 0, sizeof x)

View File

@@ -37,21 +37,10 @@ static char copyright[] =
The Regents of the University of California. All rights reserved.\n";
#endif /* not lint */
#include <config.h>
#ifdef SOCKS
#include <socks.h>
#endif
#include "roken.h"
#include "telnet_locl.h"
RCSID("$Id$");
#include <sys/types.h>
#include <string.h>
#include "ring.h"
#include "externs.h"
#include "defines.h"
/* 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
@@ -65,7 +54,7 @@ RCSID("$Id$");
* Initialize variables.
*/
void
tninit()
tninit(void)
{
init_terminal();
@@ -76,7 +65,8 @@ tninit()
init_sys();
}
void usage(void)
void
usage(void)
{
fprintf(stderr, "Usage: %s %s%s%s%s\n", prompt,
#ifdef AUTHENTICATION
@@ -101,7 +91,8 @@ void usage(void)
*/
int main(int argc, char **argv)
int
main(int argc, char **argv)
{
int ch;
char *user;
@@ -116,7 +107,7 @@ int main(int argc, char **argv)
TerminalSaveState();
if (prompt = strrchr(argv[0], '/'))
if ((prompt = strrchr(argv[0], '/')))
++prompt;
else
prompt = argv[0];

View File

@@ -31,37 +31,10 @@
* SUCH DAMAGE.
*/
#include <config.h>
#ifdef SOCKS
#include <socks.h>
#endif
#include "telnet_locl.h"
RCSID("$Id$");
#include <sys/types.h>
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif
#include <sys/socket.h>
#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
#include <time.h>
#elif defined(HAVE_SYS_TIME_H)
#include <sys/time.h>
#else
#include <time.h>
#endif
#include <errno.h>
#include <arpa/telnet.h>
#include "ring.h"
#include "defines.h"
#include "externs.h"
#include "fdset.h"
Ring netoring, netiring;
unsigned char netobuf[2*BUFSIZ], netibuf[BUFSIZ];
@@ -69,8 +42,8 @@ unsigned char netobuf[2*BUFSIZ], netibuf[BUFSIZ];
* Initialize internal network data structures.
*/
void
init_network()
void
init_network(void)
{
if (ring_init(&netoring, netobuf, sizeof netobuf) != 1) {
exit(1);
@@ -87,8 +60,8 @@ init_network()
* Telnet "synch" processing).
*/
int
stilloob()
int
stilloob(void)
{
static struct timeval timeout = { 0 };
fd_set excepts;
@@ -119,8 +92,8 @@ stilloob()
* Sets "neturg" to the current location.
*/
void
setneturg()
void
setneturg(void)
{
ring_mark(&netoring);
}
@@ -136,8 +109,8 @@ setneturg()
*/
int
netflush()
int
netflush(void)
{
int n, n1;

View File

@@ -31,10 +31,7 @@
* SUCH DAMAGE.
*/
#include <config.h>
#ifdef SOCKS
#include <socks.h>
#endif
#include "telnet_locl.h"
RCSID("$Id$");
@@ -49,24 +46,6 @@ RCSID("$Id$");
*
*/
#include <stdio.h>
#include <errno.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#if defined(HAVE_SYS_IOCTL_H) && SunOS != 4
#include <sys/ioctl.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include "ring.h"
#include "general.h"
#include <roken.h>
/* Internal macros */
#define ring_subtract(d,a,b) (((a)-(b) >= 0)? \

View File

@@ -92,6 +92,8 @@ extern void
ring_clearto (Ring *ring);
#endif
extern int ring_at_mark(Ring *ring);
extern void
ring_clear_mark(),
ring_mark();
ring_clear_mark(Ring *ring),
ring_mark(Ring *ring);

View File

@@ -31,10 +31,7 @@
* SUCH DAMAGE.
*/
#include <config.h>
#ifdef SOCKS
#include <socks.h>
#endif
#include "telnet_locl.h"
RCSID("$Id$");
@@ -43,56 +40,6 @@ RCSID("$Id$");
* (at least between 4.x and dos) which is used in telnet.c.
*/
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif
#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
#include <time.h>
#elif defined(HAVE_SYS_TIME_H)
#include <sys/time.h>
#else
#include <time.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <signal.h>
#include <errno.h>
#ifdef HAVE_ARPA_TELNET_H
#include <arpa/telnet.h>
#endif
#ifdef HAVE_TERMIOS_H
#include <termios.h>
#else
#ifdef HAVE_TERMIO_H
#include <termio.h>
#endif
#endif
#include <roken.h>
#include "ring.h"
#include "fdset.h"
#include "defines.h"
#include "externs.h"
#include "types.h"
#ifdef SIGINFO
extern RETSIGTYPE ayt_status();
#endif
int
tout, /* Output file descriptor */
tin, /* Input file descriptor */
@@ -125,15 +72,12 @@ extern struct termios new_tc;
# define cfgetispeed(ptr) cfgetospeed(ptr)
# endif
# endif /* TCSANOW */
# ifdef sysV88
# define TIOCFLUSH TC_PX_DRAIN
# endif
static fd_set ibits, obits, xbits;
void
init_sys()
init_sys(void)
{
tout = fileno(stdout);
tin = fileno(stdin);
@@ -154,7 +98,7 @@ TerminalWrite(char *buf, int n)
int
TerminalRead(unsigned char *buf, int n)
{
return read(tin, (char*)buf, n);
return read(tin, buf, n);
}
/*
@@ -162,7 +106,7 @@ TerminalRead(unsigned char *buf, int n)
*/
int
TerminalAutoFlush()
TerminalAutoFlush(void)
{
#if defined(LNOFLSH)
int flush;
@@ -189,8 +133,6 @@ extern int kludgelinemode;
* 1 Do add this character
*/
extern void xmitAO(), xmitEL(), xmitEC(), intp(), sendbrk();
int
TerminalSpecialChars(int c)
{
@@ -235,7 +177,7 @@ TerminalSpecialChars(int c)
*/
void
TerminalFlushOutput()
TerminalFlushOutput(void)
{
#ifdef TIOCFLUSH
ioctl(fileno(stdout), TIOCFLUSH, (char *) 0);
@@ -245,7 +187,7 @@ TerminalFlushOutput()
}
void
TerminalSaveState()
TerminalSaveState(void)
{
tcgetattr(0, &old_tc);
@@ -315,7 +257,7 @@ tcval(int func)
}
void
TerminalDefaultChars()
TerminalDefaultChars(void)
{
memmove(new_tc.c_cc, old_tc.c_cc, sizeof(old_tc.c_cc));
# ifndef VDISCARD
@@ -371,6 +313,13 @@ TerminalRestoreState()
*/
#ifdef SIGTSTP
static RETSIGTYPE susp();
#endif /* SIGTSTP */
#ifdef SIGINFO
static RETSIGTYPE ayt();
#endif
void
TerminalNewMode(int f)
{
@@ -504,12 +453,6 @@ TerminalNewMode(int f)
}
if (f != -1) {
#ifdef SIGTSTP
RETSIGTYPE susp();
#endif /* SIGTSTP */
#ifdef SIGINFO
RETSIGTYPE ayt();
#endif
#ifdef SIGTSTP
signal(SIGTSTP, susp);
@@ -634,10 +577,8 @@ struct termspeeds {
};
#endif /* DECODE_BAUD */
void
TerminalSpeeds(ispeed, ospeed)
long *ispeed;
long *ospeed;
void
TerminalSpeeds(long *ispeed, long *ospeed)
{
#ifdef DECODE_BAUD
struct termspeeds *tp;
@@ -665,9 +606,8 @@ TerminalSpeeds(ispeed, ospeed)
#endif /* DECODE_BAUD */
}
int
TerminalWindowSize(rows, cols)
long *rows, *cols;
int
TerminalWindowSize(long *rows, long *cols)
{
struct winsize ws;
@@ -679,18 +619,15 @@ TerminalWindowSize(rows, cols)
return 0;
}
int
NetClose(fd)
int fd;
int
NetClose(int fd)
{
return close(fd);
}
void
NetNonblockingIO(fd, onoff)
int fd;
int onoff;
void
NetNonblockingIO(int fd, int onoff)
{
ioctl(fd, FIONBIO, (char *)&onoff);
}
@@ -700,19 +637,24 @@ NetNonblockingIO(fd, onoff)
* Various signal handling routines.
*/
static RETSIGTYPE deadpeer(int),
intr(int), intr2(int), susp(int), sendwin(int);
#ifdef SIGINFO
static RETSIGTYPE ayt(int);
#endif
/* ARGSUSED */
RETSIGTYPE
deadpeer(sig)
int sig;
static RETSIGTYPE
deadpeer(int sig)
{
setcommandmode();
longjmp(peerdied, -1);
}
/* ARGSUSED */
RETSIGTYPE
intr(sig)
int sig;
static RETSIGTYPE
intr(int sig)
{
if (localchars) {
intp();
@@ -723,9 +665,8 @@ intr(sig)
}
/* ARGSUSED */
RETSIGTYPE
intr2(sig)
int sig;
static RETSIGTYPE
intr2(int sig)
{
if (localchars) {
#ifdef KLUDGELINEMODE
@@ -740,9 +681,8 @@ intr2(sig)
#ifdef SIGTSTP
/* ARGSUSED */
RETSIGTYPE
susp(sig)
int sig;
static RETSIGTYPE
susp(int sig)
{
if ((rlogin != _POSIX_VDISABLE) && rlogin_susp())
return;
@@ -753,9 +693,8 @@ susp(sig)
#ifdef SIGWINCH
/* ARGSUSED */
RETSIGTYPE
sendwin(sig)
int sig;
static RETSIGTYPE
sendwin(int sig)
{
if (connected) {
sendnaws();
@@ -765,9 +704,8 @@ sendwin(sig)
#ifdef SIGINFO
/* ARGSUSED */
RETSIGTYPE
ayt(sig)
int sig;
static RETSIGTYPE
ayt(int sig)
{
if (connected)
sendayt();
@@ -777,8 +715,8 @@ ayt(sig)
#endif
void
sys_telnet_init()
void
sys_telnet_init(void)
{
signal(SIGINT, intr);
signal(SIGQUIT, intr2);
@@ -816,9 +754,13 @@ sys_telnet_init()
* The return value is 1 if something happened, 0 if not.
*/
int
process_rings(netin, netout, netex, ttyin, ttyout, poll)
int poll; /* If 0, then block until something to do */
int
process_rings(int netin,
int netout,
int netex,
int ttyin,
int ttyout,
int poll) /* If 0, then block until something to do */
{
int c;
/* One wants to be a bit careful about setting returnValue

View File

@@ -31,34 +31,10 @@
* SUCH DAMAGE.
*/
#include <config.h>
#ifdef SOCKS
#include <socks.h>
#endif
#include "telnet_locl.h"
RCSID("$Id$");
#include <sys/types.h>
#include <stdlib.h>
#include <signal.h>
/* By the way, we need to include curses.h before telnet.h since,
* among other things, telnet.h #defines 'DO', which is a variable
* declared in curses.h.
*/
#include <arpa/telnet.h>
#include <ctype.h>
#include "ring.h"
#include "defines.h"
#include "externs.h"
#include "types.h"
#include "general.h"
#include <roken.h>
#define strip(x) ((my_want_state_is_wont(TELOPT_BINARY)) ? ((x)&0x7f) : (x))
static unsigned char subbuffer[SUBBUFSIZE],
@@ -147,17 +123,20 @@ int kludgelinemode = 1;
Clocks clocks;
static int is_unique(char *name, char **as, char **ae);
/*
* Initialize telnet environment.
*/
void
init_telnet()
init_telnet(void)
{
env_init();
SB_CLEAR();
ClearArray(options);
memset(options, 0, sizeof options);
connected = ISend = localflow = donebinarytoggle = 0;
#if defined(AUTHENTICATION) || defined(ENCRYPTION)
@@ -525,7 +504,7 @@ dontoption(int option)
static char *name_unknown = "UNKNOWN";
static char *unknown[] = { 0, 0 };
char **
static char **
mklist(char *buf, char *name)
{
int n;
@@ -636,7 +615,7 @@ mklist(char *buf, char *name)
return(unknown);
}
int
static int
is_unique(char *name, char **as, char **ae)
{
char **ap;
@@ -652,7 +631,7 @@ is_unique(char *name, char **as, char **ae)
#ifndef HAVE_SETUPTERM
char termbuf[1024];
int
static int
setupterm(char *tname, int fd, int *errp)
{
if (tgetent(termbuf, tname) == 1) {
@@ -672,7 +651,7 @@ extern char ttytype[];
int resettermname = 1;
char *
static char *
gettermname()
{
char *tname;
@@ -685,7 +664,7 @@ gettermname()
if (tnamep && tnamep != unknown)
free(tnamep);
if ((tname = (char *)env_getvalue((unsigned char *)"TERM")) &&
(setupterm(tname, 1, &err) == 0)) {
setupterm(tname, 1, &err) == 0) {
tnamep = mklist(termbuf, tname);
} else {
if (tname && ((int)strlen(tname) <= 40)) {
@@ -759,8 +738,8 @@ suboption()
TerminalSpeeds(&ispeed, &ospeed);
snprintf((char *)temp, sizeof(temp),
"%c%c%c%c%d,%d%c%c", IAC, SB, TELOPT_TSPEED,
TELQUAL_IS, ospeed, ispeed, IAC, SE);
"%c%c%c%c%u,%u%c%c", IAC, SB, TELOPT_TSPEED,
TELQUAL_IS, (unsigned)ospeed, (unsigned)ispeed, IAC, SE);
len = strlen((char *)temp+4) + 4; /* temp[3] is 0 ... */
if (len < NETROOM()) {
@@ -1106,7 +1085,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 { \
@@ -1470,12 +1449,12 @@ env_opt_add(unsigned char *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;
}
@@ -1505,7 +1484,7 @@ env_opt_add(unsigned char *ep)
else
*opt_replyp++ = ENV_USERVAR;
for (;;) {
while (c = *ep++) {
while ((c = *ep++)) {
switch(c&0xff) {
case IAC:
*opt_replyp++ = IAC;
@@ -1519,7 +1498,7 @@ env_opt_add(unsigned char *ep)
}
*opt_replyp++ = c;
}
if (ep = vp) {
if ((ep = vp)) {
#ifdef OLD_ENVIRON
if (telopt_environ == TELOPT_OLD_ENVIRON)
*opt_replyp++ = old_env_value;
@@ -1569,7 +1548,7 @@ env_opt_end(int emptyok)
int
telrcv()
telrcv(void)
{
int c;
int scc;
@@ -1801,7 +1780,7 @@ process_iac:
static int bol = 1, local = 0;
int
rlogin_susp()
rlogin_susp(void)
{
if (local) {
local = 0;
@@ -1963,7 +1942,7 @@ telsnd()
*/
int
static int
Scheduler(int block) /* should we block in the select ? */
{
/* One wants to be a bit careful about setting returnValue
@@ -2143,7 +2122,7 @@ doflush()
}
void
xmitAO()
xmitAO(void)
{
NET2ADD(IAC, AO);
printoption("SENT", IAC, AO);
@@ -2154,14 +2133,14 @@ xmitAO()
void
xmitEL()
xmitEL(void)
{
NET2ADD(IAC, EL);
printoption("SENT", IAC, EL);
}
void
xmitEC()
xmitEC(void)
{
NET2ADD(IAC, EC);
printoption("SENT", IAC, EC);
@@ -2208,7 +2187,7 @@ get_status()
}
void
intp()
intp(void)
{
NET2ADD(IAC, IP);
printoption("SENT", IAC, IP);
@@ -2222,7 +2201,7 @@ intp()
}
void
sendbrk()
sendbrk(void)
{
NET2ADD(IAC, BREAK);
printoption("SENT", IAC, BREAK);
@@ -2236,7 +2215,7 @@ sendbrk()
}
void
sendabort()
sendabort(void)
{
NET2ADD(IAC, ABORT);
printoption("SENT", IAC, ABORT);
@@ -2250,7 +2229,7 @@ sendabort()
}
void
sendsusp()
sendsusp(void)
{
NET2ADD(IAC, SUSP);
printoption("SENT", IAC, SUSP);
@@ -2264,14 +2243,14 @@ sendsusp()
}
void
sendeof()
sendeof(void)
{
NET2ADD(IAC, xEOF);
printoption("SENT", IAC, xEOF);
}
void
sendayt()
sendayt(void)
{
NET2ADD(IAC, AYT);
printoption("SENT", IAC, AYT);

View File

@@ -0,0 +1,150 @@
/*
* Copyright (c) 1995, 1996, 1997 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the Kungliga Tekniska
* H<>gskolan and its contributors.
*
* 4. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/* $Id$ */
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#ifdef SOCKS
#include <socks.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <ctype.h>
#ifdef HAVE_SIGNAL_H
#include <signal.h>
#endif
#include <errno.h>
#include <setjmp.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <termios.h>
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif
#ifdef HAVE_PWD_H
#include <pwd.h>
#endif
#ifdef HAVE_CURSES_H
#include <curses.h>
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif
#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
#include <time.h>
#elif defined(HAVE_SYS_TIME_H)
#include <sys/time.h>
#else
#include <time.h>
#endif
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
/* not with SunOS 4 */
#if defined(HAVE_SYS_IOCTL_H) && SunOS != 4
#include <sys/ioctl.h>
#endif
#ifdef HAVE_SYS_RESOURCE_H
#include <sys/resource.h>
#endif /* HAVE_SYS_RESOURCE_H */
#ifdef HAVE_SYS_WAIT_H
#include <sys/wait.h>
#endif
#ifdef HAVE_SYS_FILIO_H
#include <sys/filio.h>
#endif
#ifdef HAVE_SYS_FILE_H
#include <sys/file.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_NETINET_IN_SYSTM_H
#include <netinet/in_systm.h>
#endif
#ifdef HAVE_NETINET_IP_H
#include <netinet/ip.h>
#endif
#ifdef HAVE_ARPA_INET_H
#include <arpa/inet.h>
#endif
#ifdef HAVE_ARPA_TELNET_H
#include <arpa/telnet.h>
#endif
#include <roken.h>
#include <krb.h>
#if defined(AUTHENTICATION) || defined(ENCRYPTION)
#include <libtelnet/auth.h>
#include <libtelnet/encrypt.h>
#endif
#include <libtelnet/misc.h>
#include <libtelnet/misc-proto.h>
#include "ring.h"
#include "externs.h"
#include "defines.h"
#include "types.h"
/* prototypes */

View File

@@ -31,21 +31,10 @@
* SUCH DAMAGE.
*/
#include <config.h>
#ifdef SOCKS
#include <socks.h>
#endif
#include "telnet_locl.h"
RCSID("$Id$");
#include <arpa/telnet.h>
#include <sys/types.h>
#include "ring.h"
#include "externs.h"
#include "types.h"
Ring ttyoring, ttyiring;
unsigned char ttyobuf[2*BUFSIZ], ttyibuf[BUFSIZ];
@@ -86,8 +75,8 @@ cc_t termAytChar;
* initialize the terminal data structures.
*/
void
init_terminal()
void
init_terminal(void)
{
if (ring_init(&ttyoring, ttyobuf, sizeof ttyobuf) != 1) {
exit(1);
@@ -110,9 +99,8 @@ init_terminal()
*/
int
ttyflush(drop)
int drop;
int
ttyflush(int drop)
{
int n, n0, n1;
@@ -160,8 +148,8 @@ ttyflush(drop)
*/
int
getconnmode()
int
getconnmode(void)
{
extern int linemode;
int mode = 0;

View File

@@ -31,46 +31,14 @@
* SUCH DAMAGE.
*/
#include <config.h>
#ifdef SOCKS
#include <socks.h>
#endif
#define TELOPTS
#define TELCMDS
#define SLC_NAMES
#include "telnet_locl.h"
RCSID("$Id$");
#define TELOPTS
#define TELCMDS
#define SLC_NAMES
#include <arpa/telnet.h>
#include <sys/types.h>
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
#include <time.h>
#elif defined(HAVE_SYS_TIME_H)
#include <sys/time.h>
#else
#include <time.h>
#endif
#include <ctype.h>
#include <roken.h>
#include "general.h"
#include "fdset.h"
#include "ring.h"
#include "defines.h"
#include "externs.h"
FILE *NetTrace = 0; /* Not in bss, since needs to stay */
int prettydump;
@@ -129,7 +97,6 @@ Dump(char direction, unsigned char *buffer, int length)
# define BYTES_PER_LINE 32
unsigned char *pThis;
int offset;
extern int pettydump;
offset = 0;
@@ -797,7 +764,6 @@ printsub(char direction, unsigned char *pointer, int length)
break;
default:
def_case:
if (isprint(pointer[i]) && pointer[i] != '"') {
if (noquote) {
putc('"', NetTrace);