mirror of
https://github.com/sheumann/telnetd.git
synced 2024-11-28 10:52:06 +00:00
Remove (most) instances of casting between incompatible function pointer types in telnet/commands.c.
This was generally resolved by adding extra unused parameters to functions, to standardize their signature to what their pointer was being cast to. This should avoid issues of possible stack corruption due to the ORCA/C calling convention.
This commit is contained in:
parent
972e6d98ba
commit
a1e8056a8b
@ -115,11 +115,11 @@ static void cmdrc(char *, char *);
|
|||||||
#ifdef INET6
|
#ifdef INET6
|
||||||
static int switch_af(struct addrinfo **);
|
static int switch_af(struct addrinfo **);
|
||||||
#endif
|
#endif
|
||||||
static int togglehelp(void);
|
static int togglehelp(int val __unused);
|
||||||
static int send_tncmd(void (*)(int, int), const char *, char *);
|
static int send_tncmd(void (*)(int, int), const char *, char *);
|
||||||
static int setmod(int);
|
static int setmod(int);
|
||||||
static int clearmode(int);
|
static int clearmode(int);
|
||||||
static int modehelp(void);
|
static int modehelp(int val __unused);
|
||||||
static int sourceroute(struct addrinfo *, char *, char **, int *, int *, int *);
|
static int sourceroute(struct addrinfo *, char *, char **, int *, int *, int *);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -292,19 +292,19 @@ struct sendlist {
|
|||||||
const char *help; /* Help information (0 ==> no help) */
|
const char *help; /* Help information (0 ==> no help) */
|
||||||
int needconnect; /* Need to be connected */
|
int needconnect; /* Need to be connected */
|
||||||
int narg; /* Number of arguments */
|
int narg; /* Number of arguments */
|
||||||
int (*handler)(char *, ...); /* Routine to perform (for special ops) */
|
int (*handler)(char *, char *); /* Routine to perform (for special ops) */
|
||||||
int nbyte; /* Number of bytes to send this command */
|
int nbyte; /* Number of bytes to send this command */
|
||||||
int what; /* Character to be sent (<0 ==> special) */
|
int what; /* Character to be sent (<0 ==> special) */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
send_esc(void),
|
send_esc(char *, char *),
|
||||||
send_help(void),
|
send_help(char *, char *),
|
||||||
send_docmd(char *),
|
send_docmd(char *, char *),
|
||||||
send_dontcmd(char *),
|
send_dontcmd(char *, char *),
|
||||||
send_willcmd(char *),
|
send_willcmd(char *, char *),
|
||||||
send_wontcmd(char *);
|
send_wontcmd(char *, char *);
|
||||||
|
|
||||||
static struct sendlist Sendlist[] = {
|
static struct sendlist Sendlist[] = {
|
||||||
{ "ao", "Send Telnet Abort output", 1, 0, NULL, 2, AO },
|
{ "ao", "Send Telnet Abort output", 1, 0, NULL, 2, AO },
|
||||||
@ -313,7 +313,7 @@ static struct sendlist Sendlist[] = {
|
|||||||
{ "break", NULL, 1, 0, NULL, 2, BREAK },
|
{ "break", NULL, 1, 0, NULL, 2, BREAK },
|
||||||
{ "ec", "Send Telnet Erase Character", 1, 0, NULL, 2, EC },
|
{ "ec", "Send Telnet Erase Character", 1, 0, NULL, 2, EC },
|
||||||
{ "el", "Send Telnet Erase Line", 1, 0, NULL, 2, EL },
|
{ "el", "Send Telnet Erase Line", 1, 0, NULL, 2, EL },
|
||||||
{ "escape", "Send current escape character",1, 0, (int (*)(char *, ...))send_esc, 1, 0 },
|
{ "escape", "Send current escape character",1, 0, send_esc, 1, 0 },
|
||||||
{ "ga", "Send Telnet 'Go Ahead' sequence", 1, 0, NULL, 2, GA },
|
{ "ga", "Send Telnet 'Go Ahead' sequence", 1, 0, NULL, 2, GA },
|
||||||
{ "ip", "Send Telnet Interrupt Process",1, 0, NULL, 2, IP },
|
{ "ip", "Send Telnet Interrupt Process",1, 0, NULL, 2, IP },
|
||||||
{ "intp", NULL, 1, 0, NULL, 2, IP },
|
{ "intp", NULL, 1, 0, NULL, 2, IP },
|
||||||
@ -324,14 +324,14 @@ static struct sendlist Sendlist[] = {
|
|||||||
{ "abort", "Send Telnet 'Abort Process'", 1, 0, NULL, 2, ABORT },
|
{ "abort", "Send Telnet 'Abort Process'", 1, 0, NULL, 2, ABORT },
|
||||||
{ "susp", "Send Telnet 'Suspend Process'",1, 0, NULL, 2, SUSP },
|
{ "susp", "Send Telnet 'Suspend Process'",1, 0, NULL, 2, SUSP },
|
||||||
{ "eof", "Send Telnet End of File Character", 1, 0, NULL, 2, xEOF },
|
{ "eof", "Send Telnet End of File Character", 1, 0, NULL, 2, xEOF },
|
||||||
{ "synch", "Perform Telnet 'Synch operation'", 1, 0, (int (*)(char *, ...))dosynch, 2, 0 },
|
{ "synch", "Perform Telnet 'Synch operation'", 1, 0, dosynch, 2, 0 },
|
||||||
{ "getstatus", "Send request for STATUS", 1, 0, (int (*)(char *, ...))get_status, 6, 0 },
|
{ "getstatus", "Send request for STATUS", 1, 0, get_status, 6, 0 },
|
||||||
{ "?", "Display send options", 0, 0, (int (*)(char *, ...))send_help, 0, 0 },
|
{ "?", "Display send options", 0, 0, send_help, 0, 0 },
|
||||||
{ "help", NULL, 0, 0, (int (*)(char *, ...))send_help, 0, 0 },
|
{ "help", NULL, 0, 0, send_help, 0, 0 },
|
||||||
{ "do", NULL, 0, 1, (int (*)(char *, ...))send_docmd, 3, 0 },
|
{ "do", NULL, 0, 1, send_docmd, 3, 0 },
|
||||||
{ "dont", NULL, 0, 1, (int (*)(char *, ...))send_dontcmd, 3, 0 },
|
{ "dont", NULL, 0, 1, send_dontcmd, 3, 0 },
|
||||||
{ "will", NULL, 0, 1, (int (*)(char *, ...))send_willcmd, 3, 0 },
|
{ "will", NULL, 0, 1, send_willcmd, 3, 0 },
|
||||||
{ "wont", NULL, 0, 1, (int (*)(char *, ...))send_wontcmd, 3, 0 },
|
{ "wont", NULL, 0, 1, send_wontcmd, 3, 0 },
|
||||||
{ NULL, NULL, 0, 0, NULL, 0, 0 }
|
{ NULL, NULL, 0, 0, NULL, 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -377,8 +377,8 @@ sendcmd(int argc, char *argv[])
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
count += s->nbyte;
|
count += s->nbyte;
|
||||||
if ((void *)s->handler == (void *)send_help) {
|
if (s->handler == send_help) {
|
||||||
send_help();
|
send_help(NULL, NULL);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -403,7 +403,7 @@ sendcmd(int argc, char *argv[])
|
|||||||
for (i = 1; i < argc; i++) {
|
for (i = 1; i < argc; i++) {
|
||||||
if ((s = GETSEND(argv[i])) == 0) {
|
if ((s = GETSEND(argv[i])) == 0) {
|
||||||
fprintf(stderr, "Telnet 'send' error - argument disappeared!\n");
|
fprintf(stderr, "Telnet 'send' error - argument disappeared!\n");
|
||||||
quit();
|
quit(0, NULL);
|
||||||
/*NOTREACHED*/
|
/*NOTREACHED*/
|
||||||
}
|
}
|
||||||
if (s->handler) {
|
if (s->handler) {
|
||||||
@ -420,32 +420,32 @@ sendcmd(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
send_esc(void)
|
send_esc(char *a __unused, char *b __unused)
|
||||||
{
|
{
|
||||||
NETADD(escape);
|
NETADD(escape);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
send_docmd(char *name)
|
send_docmd(char *name, char *b __unused)
|
||||||
{
|
{
|
||||||
return(send_tncmd(send_do, "do", name));
|
return(send_tncmd(send_do, "do", name));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
send_dontcmd(char *name)
|
send_dontcmd(char *name, char *b __unused)
|
||||||
{
|
{
|
||||||
return(send_tncmd(send_dont, "dont", name));
|
return(send_tncmd(send_dont, "dont", name));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
send_willcmd(char *name)
|
send_willcmd(char *name, char *b __unused)
|
||||||
{
|
{
|
||||||
return(send_tncmd(send_will, "will", name));
|
return(send_tncmd(send_will, "will", name));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
send_wontcmd(char *name)
|
send_wontcmd(char *name, char *b __unused)
|
||||||
{
|
{
|
||||||
return(send_tncmd(send_wont, "wont", name));
|
return(send_tncmd(send_wont, "wont", name));
|
||||||
}
|
}
|
||||||
@ -512,7 +512,7 @@ send_tncmd(void (*func)(int, int), const char *cmd, char *name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
send_help(void)
|
send_help(char *a __unused, char *b __unused)
|
||||||
{
|
{
|
||||||
struct sendlist *s; /* pointer to current command */
|
struct sendlist *s; /* pointer to current command */
|
||||||
for (s = Sendlist; s->name; s++) {
|
for (s = Sendlist; s->name; s++) {
|
||||||
@ -528,14 +528,14 @@ send_help(void)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
static int
|
static int
|
||||||
lclchars(void)
|
lclchars(int val __unused)
|
||||||
{
|
{
|
||||||
donelclchars = 1;
|
donelclchars = 1;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
togdebug(void)
|
togdebug(int val __unused)
|
||||||
{
|
{
|
||||||
#ifndef NOT43
|
#ifndef NOT43
|
||||||
if (net > 0 &&
|
if (net > 0 &&
|
||||||
@ -554,7 +554,7 @@ togdebug(void)
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
togcrlf(void)
|
togcrlf(int val __unused)
|
||||||
{
|
{
|
||||||
if (crlf) {
|
if (crlf) {
|
||||||
printf("Will send carriage returns as telnet <CR><LF>.\n");
|
printf("Will send carriage returns as telnet <CR><LF>.\n");
|
||||||
@ -731,7 +731,7 @@ static struct togglelist Togglelist[] = {
|
|||||||
0 },
|
0 },
|
||||||
{ "crlf",
|
{ "crlf",
|
||||||
"sending carriage returns as telnet <CR><LF>",
|
"sending carriage returns as telnet <CR><LF>",
|
||||||
(int (*)(int))togcrlf,
|
togcrlf,
|
||||||
&crlf,
|
&crlf,
|
||||||
0 },
|
0 },
|
||||||
{ "crmod",
|
{ "crmod",
|
||||||
@ -741,13 +741,13 @@ static struct togglelist Togglelist[] = {
|
|||||||
"map carriage return on output" },
|
"map carriage return on output" },
|
||||||
{ "localchars",
|
{ "localchars",
|
||||||
"local recognition of certain control characters",
|
"local recognition of certain control characters",
|
||||||
(int (*)(int))lclchars,
|
lclchars,
|
||||||
&localchars,
|
&localchars,
|
||||||
"recognize certain control characters" },
|
"recognize certain control characters" },
|
||||||
{ " ", "", NULL, NULL, NULL }, /* empty line */
|
{ " ", "", NULL, NULL, NULL }, /* empty line */
|
||||||
{ "debug",
|
{ "debug",
|
||||||
"debugging",
|
"debugging",
|
||||||
(int (*)(int))togdebug,
|
togdebug,
|
||||||
&telnet_debug,
|
&telnet_debug,
|
||||||
"turn on socket level debugging" },
|
"turn on socket level debugging" },
|
||||||
{ "netdata",
|
{ "netdata",
|
||||||
@ -772,20 +772,20 @@ static struct togglelist Togglelist[] = {
|
|||||||
"print hexadecimal representation of terminal traffic" },
|
"print hexadecimal representation of terminal traffic" },
|
||||||
{ "?",
|
{ "?",
|
||||||
NULL,
|
NULL,
|
||||||
(int (*)(int))togglehelp,
|
togglehelp,
|
||||||
NULL,
|
NULL,
|
||||||
NULL },
|
NULL },
|
||||||
{ NULL, NULL, NULL, NULL, NULL },
|
{ NULL, NULL, NULL, NULL, NULL },
|
||||||
{ "help",
|
{ "help",
|
||||||
NULL,
|
NULL,
|
||||||
(int (*)(int))togglehelp,
|
togglehelp,
|
||||||
NULL,
|
NULL,
|
||||||
NULL },
|
NULL },
|
||||||
{ NULL, NULL, NULL, NULL, NULL }
|
{ NULL, NULL, NULL, NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
static int
|
static int
|
||||||
togglehelp(void)
|
togglehelp(int val __unused)
|
||||||
{
|
{
|
||||||
struct togglelist *c;
|
struct togglelist *c;
|
||||||
|
|
||||||
@ -1067,7 +1067,7 @@ unsetcmd(int argc, char *argv[])
|
|||||||
extern int kludgelinemode;
|
extern int kludgelinemode;
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dokludgemode(void)
|
dokludgemode(int val __unused)
|
||||||
{
|
{
|
||||||
kludgelinemode = 1;
|
kludgelinemode = 1;
|
||||||
send_wont(TELOPT_LINEMODE, 1);
|
send_wont(TELOPT_LINEMODE, 1);
|
||||||
@ -1078,7 +1078,7 @@ dokludgemode(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dolinemode(void)
|
dolinemode(int val __unused)
|
||||||
{
|
{
|
||||||
#ifdef KLUDGELINEMODE
|
#ifdef KLUDGELINEMODE
|
||||||
if (kludgelinemode)
|
if (kludgelinemode)
|
||||||
@ -1090,7 +1090,7 @@ dolinemode(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
docharmode(void)
|
docharmode(int val __unused)
|
||||||
{
|
{
|
||||||
#ifdef KLUDGELINEMODE
|
#ifdef KLUDGELINEMODE
|
||||||
if (kludgelinemode)
|
if (kludgelinemode)
|
||||||
@ -1143,11 +1143,11 @@ struct modelist {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static struct modelist ModeList[] = {
|
static struct modelist ModeList[] = {
|
||||||
{ "character", "Disable LINEMODE option", (int (*)(int))docharmode, 1, 0 },
|
{ "character", "Disable LINEMODE option", docharmode, 1, 0 },
|
||||||
#ifdef KLUDGELINEMODE
|
#ifdef KLUDGELINEMODE
|
||||||
{ "", "(or disable obsolete line-by-line mode)", NULL, 0, 0 },
|
{ "", "(or disable obsolete line-by-line mode)", NULL, 0, 0 },
|
||||||
#endif
|
#endif
|
||||||
{ "line", "Enable LINEMODE option", (int (*)(int))dolinemode, 1, 0 },
|
{ "line", "Enable LINEMODE option", dolinemode, 1, 0 },
|
||||||
#ifdef KLUDGELINEMODE
|
#ifdef KLUDGELINEMODE
|
||||||
{ "", "(or enable obsolete line-by-line mode)", NULL, 0, 0 },
|
{ "", "(or enable obsolete line-by-line mode)", NULL, 0, 0 },
|
||||||
#endif
|
#endif
|
||||||
@ -1165,18 +1165,18 @@ static struct modelist ModeList[] = {
|
|||||||
{ "litecho", "Enable literal character echo", setmod, 1, MODE_LIT_ECHO },
|
{ "litecho", "Enable literal character echo", setmod, 1, MODE_LIT_ECHO },
|
||||||
{ "+litecho", 0, setmod, 1, MODE_LIT_ECHO },
|
{ "+litecho", 0, setmod, 1, MODE_LIT_ECHO },
|
||||||
{ "-litecho", "Disable literal character echo", clearmode, 1, MODE_LIT_ECHO },
|
{ "-litecho", "Disable literal character echo", clearmode, 1, MODE_LIT_ECHO },
|
||||||
{ "help", 0, (int (*)(int))modehelp, 0, 0 },
|
{ "help", 0, modehelp, 0, 0 },
|
||||||
#ifdef KLUDGELINEMODE
|
#ifdef KLUDGELINEMODE
|
||||||
{ "kludgeline", 0, (int (*)(int))dokludgemode, 1, 0 },
|
{ "kludgeline", 0, dokludgemode, 1, 0 },
|
||||||
#endif
|
#endif
|
||||||
{ "", "", NULL, 0, 0 },
|
{ "", "", NULL, 0, 0 },
|
||||||
{ "?", "Print help information", (int (*)(int))modehelp, 0, 0 },
|
{ "?", "Print help information", modehelp, 0, 0 },
|
||||||
{ NULL, NULL, NULL, 0, 0 },
|
{ NULL, NULL, NULL, 0, 0 },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
modehelp(void)
|
modehelp(int val __unused)
|
||||||
{
|
{
|
||||||
struct modelist *mt;
|
struct modelist *mt;
|
||||||
|
|
||||||
@ -1313,7 +1313,7 @@ setescape(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
togcrmod(void)
|
togcrmod(int argc __unused, char **argv __unused)
|
||||||
{
|
{
|
||||||
crmod = !crmod;
|
crmod = !crmod;
|
||||||
printf("Deprecated usage - please use 'toggle crmod' in the future.\n");
|
printf("Deprecated usage - please use 'toggle crmod' in the future.\n");
|
||||||
@ -1323,7 +1323,7 @@ togcrmod(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
suspend(void)
|
suspend(int argc __unused, char **argv __unused)
|
||||||
{
|
{
|
||||||
#ifdef SIGTSTP
|
#ifdef SIGTSTP
|
||||||
setcommandmode();
|
setcommandmode();
|
||||||
@ -1451,14 +1451,14 @@ bye(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
quit(void)
|
quit(int argc __unused, char **argv __unused)
|
||||||
{
|
{
|
||||||
(void) call(bye, "bye", "fromquit", 0);
|
(void) call(bye, "bye", "fromquit", 0);
|
||||||
Exit(0);
|
Exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
logout(void)
|
logout(int argc __unused, char **argv __unused)
|
||||||
{
|
{
|
||||||
send_do(TELOPT_LOGOUT, 1);
|
send_do(TELOPT_LOGOUT, 1);
|
||||||
(void) netflush();
|
(void) netflush();
|
||||||
@ -1477,22 +1477,22 @@ struct slclist {
|
|||||||
int arg;
|
int arg;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void slc_help(void);
|
static void slc_help(int val __unused);
|
||||||
|
|
||||||
struct slclist SlcList[] = {
|
struct slclist SlcList[] = {
|
||||||
{ "export", "Use local special character definitions",
|
{ "export", "Use local special character definitions",
|
||||||
(void (*)(int))slc_mode_export, 0 },
|
slc_mode_export, 0 },
|
||||||
{ "import", "Use remote special character definitions",
|
{ "import", "Use remote special character definitions",
|
||||||
slc_mode_import, 1 },
|
slc_mode_import, 1 },
|
||||||
{ "check", "Verify remote special character definitions",
|
{ "check", "Verify remote special character definitions",
|
||||||
slc_mode_import, 0 },
|
slc_mode_import, 0 },
|
||||||
{ "help", NULL, (void (*)(int))slc_help, 0 },
|
{ "help", NULL, slc_help, 0 },
|
||||||
{ "?", "Print help information", (void (*)(int))slc_help, 0 },
|
{ "?", "Print help information", slc_help, 0 },
|
||||||
{ NULL, NULL, NULL, 0 },
|
{ NULL, NULL, NULL, 0 },
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
slc_help(void)
|
slc_help(int val __unused)
|
||||||
{
|
{
|
||||||
struct slclist *c;
|
struct slclist *c;
|
||||||
|
|
||||||
@ -1553,40 +1553,40 @@ struct envlist {
|
|||||||
extern struct env_lst *
|
extern struct env_lst *
|
||||||
env_define(const unsigned char *, unsigned char *);
|
env_define(const unsigned char *, unsigned char *);
|
||||||
extern void
|
extern void
|
||||||
env_undefine(unsigned char *),
|
env_undefine(unsigned char *, unsigned char *),
|
||||||
env_export(const unsigned char *),
|
env_export(const unsigned char *, unsigned char *),
|
||||||
env_unexport(const unsigned char *),
|
env_unexport(const unsigned char *, unsigned char *),
|
||||||
env_send(unsigned char *),
|
env_send(unsigned char *, unsigned char *),
|
||||||
#if defined(OLD_ENVIRON) && defined(ENV_HACK)
|
#if defined(OLD_ENVIRON) && defined(ENV_HACK)
|
||||||
env_varval(unsigned char *),
|
env_varval(unsigned char *, unsigned char *),
|
||||||
#endif
|
#endif
|
||||||
env_list(void);
|
env_list(unsigned char *, unsigned char *);
|
||||||
static void
|
static void
|
||||||
env_help(void);
|
env_help(unsigned char *, unsigned char *);
|
||||||
|
|
||||||
struct envlist EnvList[] = {
|
struct envlist EnvList[] = {
|
||||||
{ "define", "Define an environment variable",
|
{ "define", "Define an environment variable",
|
||||||
(void (*)(unsigned char *, unsigned char *))env_define, 2 },
|
(void (*)(unsigned char *, unsigned char *))env_define, 2 },
|
||||||
{ "undefine", "Undefine an environment variable",
|
{ "undefine", "Undefine an environment variable",
|
||||||
(void (*)(unsigned char *, unsigned char *))env_undefine, 1 },
|
env_undefine, 1 },
|
||||||
{ "export", "Mark an environment variable for automatic export",
|
{ "export", "Mark an environment variable for automatic export",
|
||||||
(void (*)(unsigned char *, unsigned char *))env_export, 1 },
|
(void (*)(unsigned char *, unsigned char *))env_export, 1 },
|
||||||
{ "unexport", "Don't mark an environment variable for automatic export",
|
{ "unexport", "Don't mark an environment variable for automatic export",
|
||||||
(void (*)(unsigned char *, unsigned char *))env_unexport, 1 },
|
(void (*)(unsigned char *, unsigned char *))env_unexport, 1 },
|
||||||
{ "send", "Send an environment variable", (void (*)(unsigned char *, unsigned char *))env_send, 1 },
|
{ "send", "Send an environment variable", env_send, 1 },
|
||||||
{ "list", "List the current environment variables",
|
{ "list", "List the current environment variables",
|
||||||
(void (*)(unsigned char *, unsigned char *))env_list, 0 },
|
env_list, 0 },
|
||||||
#if defined(OLD_ENVIRON) && defined(ENV_HACK)
|
#if defined(OLD_ENVIRON) && defined(ENV_HACK)
|
||||||
{ "varval", "Reverse VAR and VALUE (auto, right, wrong, status)",
|
{ "varval", "Reverse VAR and VALUE (auto, right, wrong, status)",
|
||||||
(void (*)(unsigned char *, unsigned char *))env_varval, 1 },
|
env_varval, 1 },
|
||||||
#endif
|
#endif
|
||||||
{ "help", NULL, (void (*)(unsigned char *, unsigned char *))env_help, 0 },
|
{ "help", NULL, env_help, 0 },
|
||||||
{ "?", "Print help information", (void (*)(unsigned char *, unsigned char *))env_help, 0 },
|
{ "?", "Print help information", env_help, 0 },
|
||||||
{ NULL, NULL, NULL, 0 },
|
{ NULL, NULL, NULL, 0 },
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
env_help(void)
|
env_help(unsigned char *a __unused, unsigned char *b __unused)
|
||||||
{
|
{
|
||||||
struct envlist *c;
|
struct envlist *c;
|
||||||
|
|
||||||
@ -1703,10 +1703,10 @@ env_init(void)
|
|||||||
*/
|
*/
|
||||||
if ((env_find("USER") == NULL) && (ep = env_find("LOGNAME"))) {
|
if ((env_find("USER") == NULL) && (ep = env_find("LOGNAME"))) {
|
||||||
env_define("USER", ep->value);
|
env_define("USER", ep->value);
|
||||||
env_unexport("USER");
|
env_unexport("USER", NULL);
|
||||||
}
|
}
|
||||||
env_export("DISPLAY");
|
env_export("DISPLAY", NULL);
|
||||||
env_export("PRINTER");
|
env_export("PRINTER", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct env_lst *
|
struct env_lst *
|
||||||
@ -1735,7 +1735,7 @@ env_define(const unsigned char *var, unsigned char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
env_undefine(unsigned char *var)
|
env_undefine(unsigned char *var, unsigned char *b __unused)
|
||||||
{
|
{
|
||||||
struct env_lst *ep;
|
struct env_lst *ep;
|
||||||
|
|
||||||
@ -1752,7 +1752,7 @@ env_undefine(unsigned char *var)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
env_export(const unsigned char *var)
|
env_export(const unsigned char *var, unsigned char *b __unused)
|
||||||
{
|
{
|
||||||
struct env_lst *ep;
|
struct env_lst *ep;
|
||||||
|
|
||||||
@ -1761,7 +1761,7 @@ env_export(const unsigned char *var)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
env_unexport(const unsigned char *var)
|
env_unexport(const unsigned char *var, unsigned char *b __unused)
|
||||||
{
|
{
|
||||||
struct env_lst *ep;
|
struct env_lst *ep;
|
||||||
|
|
||||||
@ -1770,7 +1770,7 @@ env_unexport(const unsigned char *var)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
env_send(unsigned char *var)
|
env_send(unsigned char *var, unsigned char *b __unused)
|
||||||
{
|
{
|
||||||
struct env_lst *ep;
|
struct env_lst *ep;
|
||||||
|
|
||||||
@ -1796,7 +1796,7 @@ env_send(unsigned char *var)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
env_list(void)
|
env_list(unsigned char *a __unused, unsigned char *b __unused)
|
||||||
{
|
{
|
||||||
struct env_lst *ep;
|
struct env_lst *ep;
|
||||||
|
|
||||||
@ -1886,24 +1886,24 @@ struct authlist {
|
|||||||
extern int
|
extern int
|
||||||
auth_enable(char *),
|
auth_enable(char *),
|
||||||
auth_disable(char *),
|
auth_disable(char *),
|
||||||
auth_status(void);
|
auth_status(char *);
|
||||||
static int
|
static int
|
||||||
auth_help(void);
|
auth_help(char *);
|
||||||
|
|
||||||
struct authlist AuthList[] = {
|
struct authlist AuthList[] = {
|
||||||
{ "status", "Display current status of authentication information",
|
{ "status", "Display current status of authentication information",
|
||||||
(int (*)(char *))auth_status, 0 },
|
auth_status, 0 },
|
||||||
{ "disable", "Disable an authentication type ('auth disable ?' for more)",
|
{ "disable", "Disable an authentication type ('auth disable ?' for more)",
|
||||||
auth_disable, 1 },
|
auth_disable, 1 },
|
||||||
{ "enable", "Enable an authentication type ('auth enable ?' for more)",
|
{ "enable", "Enable an authentication type ('auth enable ?' for more)",
|
||||||
auth_enable, 1 },
|
auth_enable, 1 },
|
||||||
{ "help", NULL, (int (*)(char *))auth_help, 0 },
|
{ "help", NULL, auth_help, 0 },
|
||||||
{ "?", "Print help information", (int (*)(char *))auth_help, 0 },
|
{ "?", "Print help information", auth_help, 0 },
|
||||||
{ NULL, NULL, NULL, 0 },
|
{ NULL, NULL, NULL, 0 },
|
||||||
};
|
};
|
||||||
|
|
||||||
static int
|
static int
|
||||||
auth_help(void)
|
auth_help(char *arg __unused)
|
||||||
{
|
{
|
||||||
struct authlist *c;
|
struct authlist *c;
|
||||||
|
|
||||||
@ -1970,13 +1970,13 @@ extern int
|
|||||||
EncryptEnable(char *, char *),
|
EncryptEnable(char *, char *),
|
||||||
EncryptDisable(char *, char *),
|
EncryptDisable(char *, char *),
|
||||||
EncryptType(char *, char *),
|
EncryptType(char *, char *),
|
||||||
EncryptStart(char *),
|
EncryptStart(char *, char *),
|
||||||
EncryptStartInput(void),
|
EncryptStartInput(char *, char *),
|
||||||
EncryptStartOutput(void),
|
EncryptStartOutput(char *, char *),
|
||||||
EncryptStop(char *),
|
EncryptStop(char *, char *),
|
||||||
EncryptStopInput(void),
|
EncryptStopInput(char *, char *),
|
||||||
EncryptStopOutput(void),
|
EncryptStopOutputchar *, char *),
|
||||||
EncryptStatus(void);
|
EncryptStatus(char *, char *);
|
||||||
static int
|
static int
|
||||||
EncryptHelp(void);
|
EncryptHelp(void);
|
||||||
|
|
||||||
@ -1988,27 +1988,27 @@ struct encryptlist EncryptList[] = {
|
|||||||
{ "type", "Set encryption type. ('encrypt type ?' for more)",
|
{ "type", "Set encryption type. ('encrypt type ?' for more)",
|
||||||
EncryptType, 0, 1, 1 },
|
EncryptType, 0, 1, 1 },
|
||||||
{ "start", "Start encryption. ('encrypt start ?' for more)",
|
{ "start", "Start encryption. ('encrypt start ?' for more)",
|
||||||
(int (*)(char *, char *))EncryptStart, 1, 0, 1 },
|
EncryptStart, 1, 0, 1 },
|
||||||
{ "stop", "Stop encryption. ('encrypt stop ?' for more)",
|
{ "stop", "Stop encryption. ('encrypt stop ?' for more)",
|
||||||
(int (*)(char *, char *))EncryptStop, 1, 0, 1 },
|
EncryptStop, 1, 0, 1 },
|
||||||
{ "input", "Start encrypting the input stream",
|
{ "input", "Start encrypting the input stream",
|
||||||
(int (*)(char *, char *))EncryptStartInput, 1, 0, 0 },
|
EncryptStartInput, 1, 0, 0 },
|
||||||
{ "-input", "Stop encrypting the input stream",
|
{ "-input", "Stop encrypting the input stream",
|
||||||
(int (*)(char *, char *))EncryptStopInput, 1, 0, 0 },
|
EncryptStopInput, 1, 0, 0 },
|
||||||
{ "output", "Start encrypting the output stream",
|
{ "output", "Start encrypting the output stream",
|
||||||
(int (*)(char *, char *))EncryptStartOutput, 1, 0, 0 },
|
EncryptStartOutput, 1, 0, 0 },
|
||||||
{ "-output", "Stop encrypting the output stream",
|
{ "-output", "Stop encrypting the output stream",
|
||||||
(int (*)(char *, char *))EncryptStopOutput, 1, 0, 0 },
|
EncryptStopOutput, 1, 0, 0 },
|
||||||
|
|
||||||
{ "status", "Display current status of authentication information",
|
{ "status", "Display current status of authentication information",
|
||||||
(int (*)(char *, char *))EncryptStatus, 0, 0, 0 },
|
EncryptStatus, 0, 0, 0 },
|
||||||
{ "help", NULL, (int (*)(char *, char *))EncryptHelp, 0, 0, 0 },
|
{ "help", NULL, EncryptHelp, 0, 0, 0 },
|
||||||
{ "?", "Print help information", (int (*)(char *, char *))EncryptHelp, 0, 0, 0 },
|
{ "?", "Print help information", EncryptHelp, 0, 0, 0 },
|
||||||
{ NULL, NULL, NULL, 0, 0, 0 },
|
{ NULL, NULL, NULL, 0, 0, 0 },
|
||||||
};
|
};
|
||||||
|
|
||||||
static int
|
static int
|
||||||
EncryptHelp(void)
|
EncryptHelp(char *a __unused, char *b __unused)
|
||||||
{
|
{
|
||||||
struct encryptlist *c;
|
struct encryptlist *c;
|
||||||
|
|
||||||
@ -2540,7 +2540,7 @@ tn(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
if (user) {
|
if (user) {
|
||||||
env_define("USER", user);
|
env_define("USER", user);
|
||||||
env_export("USER");
|
env_export("USER", NULL);
|
||||||
}
|
}
|
||||||
(void) call(status, "status", "notmuch", 0);
|
(void) call(status, "status", "notmuch", 0);
|
||||||
telnet(user);
|
telnet(user);
|
||||||
@ -2586,7 +2586,7 @@ static char
|
|||||||
|
|
||||||
static Command cmdtab[] = {
|
static Command cmdtab[] = {
|
||||||
{ "close", closehelp, bye, 1 },
|
{ "close", closehelp, bye, 1 },
|
||||||
{ "logout", logouthelp, (int (*)(int, char **))logout, 1 },
|
{ "logout", logouthelp, logout, 1 },
|
||||||
{ "display", displayhelp, display, 0 },
|
{ "display", displayhelp, display, 0 },
|
||||||
{ "mode", modestring, modecmd, 0 },
|
{ "mode", modestring, modecmd, 0 },
|
||||||
{ "telnet", openhelp, tn, 0 },
|
{ "telnet", openhelp, tn, 0 },
|
||||||
@ -2604,7 +2604,7 @@ static Command cmdtab[] = {
|
|||||||
#ifdef ENCRYPTION
|
#ifdef ENCRYPTION
|
||||||
{ "encrypt", encrypthelp, encrypt_cmd, 0 },
|
{ "encrypt", encrypthelp, encrypt_cmd, 0 },
|
||||||
#endif /* ENCRYPTION */
|
#endif /* ENCRYPTION */
|
||||||
{ "z", zhelp, (int (*)(int, char **))suspend, 0 },
|
{ "z", zhelp, suspend, 0 },
|
||||||
{ "!", shellhelp, shell, 1 },
|
{ "!", shellhelp, shell, 1 },
|
||||||
{ "environ", envhelp, env_cmd, 0 },
|
{ "environ", envhelp, env_cmd, 0 },
|
||||||
{ "?", helphelp, help, 0 },
|
{ "?", helphelp, help, 0 },
|
||||||
@ -2620,7 +2620,7 @@ static char escapehelp[] = "deprecated command -- use 'set escape' instead";
|
|||||||
static Command cmdtab2[] = {
|
static Command cmdtab2[] = {
|
||||||
{ "help", 0, help, 0 },
|
{ "help", 0, help, 0 },
|
||||||
{ "escape", escapehelp, setescape, 0 },
|
{ "escape", escapehelp, setescape, 0 },
|
||||||
{ "crmod", crmodhelp, (int (*)(int, char **))togcrmod, 0 },
|
{ "crmod", crmodhelp, togcrmod, 0 },
|
||||||
{ NULL, NULL, NULL, 0 }
|
{ NULL, NULL, NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -2685,7 +2685,7 @@ command(int top, const char *tbuf, int cnt)
|
|||||||
printf("%s> ", prompt);
|
printf("%s> ", prompt);
|
||||||
if (fgets(line, sizeof(line), stdin) == NULL) {
|
if (fgets(line, sizeof(line), stdin) == NULL) {
|
||||||
if (feof(stdin) || ferror(stdin)) {
|
if (feof(stdin) || ferror(stdin)) {
|
||||||
(void) quit();
|
(void) quit(0, NULL);
|
||||||
/*NOTREACHED*/
|
/*NOTREACHED*/
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -253,7 +253,7 @@ extern void
|
|||||||
optionstatus(void),
|
optionstatus(void),
|
||||||
printoption(const char *, int, int),
|
printoption(const char *, int, int),
|
||||||
printsub(char, unsigned char *, int),
|
printsub(char, unsigned char *, int),
|
||||||
quit(void),
|
quit(int argc __unused, char **argv __unused),
|
||||||
sendabort(void),
|
sendabort(void),
|
||||||
sendbrk(void),
|
sendbrk(void),
|
||||||
sendeof(void),
|
sendeof(void),
|
||||||
@ -295,7 +295,7 @@ extern void
|
|||||||
extern void
|
extern void
|
||||||
slc_init(void),
|
slc_init(void),
|
||||||
slcstate(void),
|
slcstate(void),
|
||||||
slc_mode_export(void),
|
slc_mode_export(int val __unused),
|
||||||
slc_mode_import(int),
|
slc_mode_import(int),
|
||||||
slc_import(int),
|
slc_import(int),
|
||||||
slc_export(void),
|
slc_export(void),
|
||||||
@ -335,8 +335,8 @@ extern unsigned char
|
|||||||
*env_getvalue(const unsigned char *);
|
*env_getvalue(const unsigned char *);
|
||||||
|
|
||||||
extern int
|
extern int
|
||||||
get_status(char *),
|
get_status(char *, char *),
|
||||||
dosynch(char *);
|
dosynch(char *, char *);
|
||||||
|
|
||||||
extern cc_t
|
extern cc_t
|
||||||
*tcval(int);
|
*tcval(int);
|
||||||
|
@ -95,7 +95,7 @@ stilloob(void)
|
|||||||
|
|
||||||
if (value < 0) {
|
if (value < 0) {
|
||||||
perror("select");
|
perror("select");
|
||||||
(void) quit();
|
(void) quit(0, NULL);
|
||||||
/* NOTREACHED */
|
/* NOTREACHED */
|
||||||
}
|
}
|
||||||
if (FD_ISSET(net, &excepts)) {
|
if (FD_ISSET(net, &excepts)) {
|
||||||
|
@ -1217,7 +1217,7 @@ slcstate(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
slc_mode_export(void)
|
slc_mode_export(int val __unused)
|
||||||
{
|
{
|
||||||
slc_mode = SLC_EXPORT;
|
slc_mode = SLC_EXPORT;
|
||||||
if (my_state_is_will(TELOPT_LINEMODE))
|
if (my_state_is_will(TELOPT_LINEMODE))
|
||||||
@ -2282,7 +2282,7 @@ xmitEC(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
dosynch(char *ch __unused)
|
dosynch(char *ch __unused, char *b __unused)
|
||||||
{
|
{
|
||||||
netclear(); /* clear the path to the network */
|
netclear(); /* clear the path to the network */
|
||||||
NETADD(IAC);
|
NETADD(IAC);
|
||||||
@ -2295,7 +2295,7 @@ dosynch(char *ch __unused)
|
|||||||
int want_status_response = 0;
|
int want_status_response = 0;
|
||||||
|
|
||||||
int
|
int
|
||||||
get_status(char *ch __unused)
|
get_status(char *ch __unused, char *b __unused)
|
||||||
{
|
{
|
||||||
unsigned char tmp[16];
|
unsigned char tmp[16];
|
||||||
unsigned char *cp;
|
unsigned char *cp;
|
||||||
@ -2330,7 +2330,7 @@ intp(void)
|
|||||||
doflush();
|
doflush();
|
||||||
}
|
}
|
||||||
if (autosynch) {
|
if (autosynch) {
|
||||||
dosynch(NULL);
|
dosynch(NULL, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2344,7 +2344,7 @@ sendbrk(void)
|
|||||||
doflush();
|
doflush();
|
||||||
}
|
}
|
||||||
if (autosynch) {
|
if (autosynch) {
|
||||||
dosynch(NULL);
|
dosynch(NULL, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2358,7 +2358,7 @@ sendabort(void)
|
|||||||
doflush();
|
doflush();
|
||||||
}
|
}
|
||||||
if (autosynch) {
|
if (autosynch) {
|
||||||
dosynch(NULL);
|
dosynch(NULL, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2372,7 +2372,7 @@ sendsusp(void)
|
|||||||
doflush();
|
doflush();
|
||||||
}
|
}
|
||||||
if (autosynch) {
|
if (autosynch) {
|
||||||
dosynch(NULL);
|
dosynch(NULL, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user