Module Name: src
Committed By: christos
Date: Mon Jan 9 16:08:56 UTC 2012
Modified Files:
src/usr.bin/telnet: Makefile authenc.c commands.c externs.h main.c
sys_bsd.c telnet.c utilities.c
Log Message:
PR/45805: Borodin Oleg: telnet/telnetd with -DAUTHENTICATION -DENCRYPTION
(rfc2941)
- Minimal diffs to separate MKCRYPTO from USE_KERBEROS
To generate a diff of this commit:
cvs rdiff -u -r1.48 -r1.49 src/usr.bin/telnet/Makefile
cvs rdiff -u -r1.12 -r1.13 src/usr.bin/telnet/authenc.c
cvs rdiff -u -r1.67 -r1.68 src/usr.bin/telnet/commands.c
cvs rdiff -u -r1.35 -r1.36 src/usr.bin/telnet/externs.h
cvs rdiff -u -r1.27 -r1.28 src/usr.bin/telnet/main.c
cvs rdiff -u -r1.32 -r1.33 src/usr.bin/telnet/sys_bsd.c
cvs rdiff -u -r1.34 -r1.35 src/usr.bin/telnet/telnet.c
cvs rdiff -u -r1.22 -r1.23 src/usr.bin/telnet/utilities.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/telnet/Makefile
diff -u src/usr.bin/telnet/Makefile:1.48 src/usr.bin/telnet/Makefile:1.49
--- src/usr.bin/telnet/Makefile:1.48 Wed Oct 5 06:48:54 2011
+++ src/usr.bin/telnet/Makefile Mon Jan 9 11:08:55 2012
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.48 2011/10/05 10:48:54 roy Exp $
+# $NetBSD: Makefile,v 1.49 2012/01/09 16:08:55 christos Exp $
#
# Copyright (c) 1990 The Regents of the University of California.
# All rights reserved.
@@ -34,7 +34,7 @@
# from: @(#)Makefile 8.1 (Berkeley) 6/6/93
#
-WARNS?= 1 # XXX -Wshadow etc. fix asap
+WARNS?= 4 # XXX -Wshadow etc. fix asap
CWARNFLAGS.clang+= -Wno-tautological-compare -Wno-format-security
.include <bsd.own.mk>
@@ -64,19 +64,22 @@ CPPFLAGS+=-DINET6
LIBTELNETDIR!= cd ${.CURDIR}/../../lib/libtelnet; ${PRINTOBJDIR}
.if (${USE_KERBEROS} != "no")
-CPPFLAGS+=-DKRB5 -DFORWARD -DAUTHENTICATION -DENCRYPTION
-LDADD+= -lkrb5 -lasn1 -lcrypto -lcrypt
-DPADD+= ${LIBKRB5} ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT}
+CPPFLAGS+=-DKRB5 -DFORWARD
+LDADD+= -lkrb5 -lasn1 -lcom_err -lroken
+DPADD+= ${LIBKRB5} ${LIBASN1} ${LIBCOM_ERR} ${LIBROKEN}
+.endif
+
+.if (${MKCRYPTO} != "no")
+CPPFLAGS+=-DAUTHENTICATION -DENCRYPTION
+LDADD+= -ldes -lcrypto -lcrypt
+DPADD+= ${LIBDES} ${LIBCRYPTO} ${LIBCRYPT}
+.endif
.if (${USE_PAM} != "no")
LDADD+= -lpam ${PAM_STATIC_LDADD}
DPADD+= ${LIBPAM} ${PAM_STATIC_DPADD}
.endif
-LDADD+= -ldes -lcom_err -lroken
-DPADD+= ${LIBDES} ${LIBCOM_ERR} ${LIBROKEN}
-.endif
-
.if defined(HAVE_GCC) || defined(HAVE_PCC)
.for f in commands telnet terminal utilities
COPTS.${f}.c+= -Wno-pointer-sign
Index: src/usr.bin/telnet/authenc.c
diff -u src/usr.bin/telnet/authenc.c:1.12 src/usr.bin/telnet/authenc.c:1.13
--- src/usr.bin/telnet/authenc.c:1.12 Thu Aug 7 07:16:07 2003
+++ src/usr.bin/telnet/authenc.c Mon Jan 9 11:08:55 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: authenc.c,v 1.12 2003/08/07 11:16:07 agc Exp $ */
+/* $NetBSD: authenc.c,v 1.13 2012/01/09 16:08:55 christos Exp $ */
/*-
* Copyright (c) 1991, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)authenc.c 8.1 (Berkeley) 6/6/93";
#else
-__RCSID("$NetBSD: authenc.c,v 1.12 2003/08/07 11:16:07 agc Exp $");
+__RCSID("$NetBSD: authenc.c,v 1.13 2012/01/09 16:08:55 christos Exp $");
#endif
#endif /* not lint */
@@ -87,7 +87,7 @@ telnet_getenv(char *val)
}
char *
-telnet_gets(char *prompt, char *result, int length, int echo)
+telnet_gets(char *prmpt, char *result, int length, int echo)
{
extern int globalmode;
int om = globalmode;
@@ -95,9 +95,9 @@ telnet_gets(char *prompt, char *result,
TerminalNewMode(-1);
if (echo) {
- printf("%s", prompt);
+ printf("%s", prmpt);
res = fgets(result, length, stdin);
- } else if ((res = getpass(prompt)) != NULL) {
+ } else if ((res = getpass(prmpt)) != NULL) {
strlcpy(result, res, length);
res = result;
}
Index: src/usr.bin/telnet/commands.c
diff -u src/usr.bin/telnet/commands.c:1.67 src/usr.bin/telnet/commands.c:1.68
--- src/usr.bin/telnet/commands.c:1.67 Mon Dec 18 09:18:40 2006
+++ src/usr.bin/telnet/commands.c Mon Jan 9 11:08:55 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: commands.c,v 1.67 2006/12/18 14:18:40 christos Exp $ */
+/* $NetBSD: commands.c,v 1.68 2012/01/09 16:08:55 christos Exp $ */
/*
* Copyright (C) 1997 and 1998 WIDE Project.
@@ -63,7 +63,7 @@
#if 0
static char sccsid[] = "@(#)commands.c 8.4 (Berkeley) 5/30/95";
#else
-__RCSID("$NetBSD: commands.c,v 1.67 2006/12/18 14:18:40 christos Exp $");
+__RCSID("$NetBSD: commands.c,v 1.68 2012/01/09 16:08:55 christos Exp $");
#endif
#endif /* not lint */
@@ -109,8 +109,8 @@ char *hostname;
static char _hostname[MAXHOSTNAMELEN];
typedef struct {
- char *name; /* command name */
- char *help; /* help string (NULL for no help) */
+ const char *name; /* command name */
+ const char *help; /* help string (NULL for no help) */
int (*handler) /* routine which executes command */
(int, char *[]);
int needconnect; /* Do we need to be connected to execute? */
@@ -123,7 +123,7 @@ static char *margv[20];
static void makeargv(void);
static int special(char *);
-static char *control(cc_t);
+static const char *control(cc_t);
static int sendcmd(int, char **);
static int send_esc(char *);
static int send_docmd(char *);
@@ -155,7 +155,7 @@ static int bye(int, char *[]);
static void slc_help(int);
static struct slclist *getslc(char *);
static int slccmd(int, char *[]);
-static struct env_lst *env_help(unsigned char *, unsigned char *);
+static struct env_lst *env_help(const unsigned char *, unsigned char *);
static struct envlist *getenvcmd(char *);
#ifdef AUTHENTICATION
static int auth_help(char *);
@@ -175,12 +175,13 @@ makeargv(void)
{
char *cp, *cp2, c;
char **argp = margv;
+ static char bang[] = "!";
margc = 0;
cp = line;
if (*cp == '!') { /* Special case shell escape */
strlcpy(saveline, line, sizeof(saveline)); /* save for shell command */
- *argp++ = "!"; /* No room in string to get this */
+ *argp++ = bang; /* No room in string to get this */
margc++;
cp++;
}
@@ -253,7 +254,7 @@ special(char *s)
* Construct a control character sequence
* for a special character.
*/
-static char *
+static const char *
control(cc_t c)
{
static char buf[5];
@@ -297,8 +298,8 @@ control(cc_t c)
*/
struct sendlist {
- char *name; /* How user refers to it (case independent) */
- char *help; /* Help information (0 ==> no help) */
+ const char *name; /* How user refers to it (case independent) */
+ const char *help; /* Help information (0 ==> no help) */
int needconnect; /* Need to be connected */
int narg; /* Number of arguments */
int (*handler) /* Routine to perform (for special ops) */
@@ -334,7 +335,7 @@ static struct sendlist Sendlist[] = {
{ "dont", 0, 0, 1, send_dontcmd, 3, 0 },
{ "will", 0, 0, 1, send_willcmd, 3, 0 },
{ "wont", 0, 0, 1, send_wontcmd, 3, 0 },
- { 0 }
+ { .name = 0 }
};
#define GETSEND(name) ((struct sendlist *) genget(name, (char **) Sendlist, \
@@ -450,7 +451,7 @@ send_wontcmd(char *name)
}
int
-send_tncmd(void (*func)(int, int), char *cmd, char *name)
+send_tncmd(void (*func)(int, int), const char *cmd, char *name)
{
const char **cpp;
int val = 0;
@@ -475,7 +476,7 @@ send_tncmd(void (*func)(int, int), char
printf("\n");
return 0;
}
- cpp = (const char **)genget(name, (char **)telopts, sizeof(char *));
+ cpp = (void *)genget(name, __UNCONST(telopts), sizeof(char *));
if (Ambiguous(cpp)) {
fprintf(stderr,"'%s': ambiguous argument ('send %s ?' for help).\n",
name, cmd);
@@ -653,12 +654,12 @@ extern int EncryptVerbose(int);
#endif /* ENCRYPTION */
struct togglelist {
- char *name; /* name of toggle */
- char *help; /* help message */
+ const char *name; /* name of toggle */
+ const char *help; /* help message */
int (*handler) /* routine to do actual setting */
(int);
int *variable;
- char *actionexplanation;
+ const char *actionexplanation;
};
static struct togglelist Togglelist[] = {
@@ -741,7 +742,7 @@ static struct togglelist Togglelist[] =
lclchars,
&localchars,
"recognize certain control characters" },
- { " ", "", 0 }, /* empty line */
+ { " ", "", 0, NULL, NULL }, /* empty line */
#ifdef TN3270
{ "apitrace",
"(debugging) toggle tracing of API transactions",
@@ -781,11 +782,11 @@ static struct togglelist Togglelist[] =
"print hexadecimal representation of terminal traffic" },
{ "?",
0,
- togglehelp },
+ togglehelp, NULL, NULL },
{ "help",
0,
- togglehelp },
- { 0 }
+ togglehelp, NULL, NULL },
+ { .name = 0 }
};
static int
@@ -870,11 +871,11 @@ toggle(int argc, char *argv[])
* The following perform the "set" command.
*/
-struct termios new_tc = { 0 };
+struct termios new_tc = { .c_iflag = 0 };
struct setlist {
- char *name; /* name */
- char *help; /* help information */
+ const char *name; /* name */
+ const char *help; /* help information */
void (*handler)(char *);
cc_t *charp; /* where it is located at */
};
@@ -886,13 +887,13 @@ static struct setlist Setlist[] = {
{ "escape", "character to escape back to telnet command mode", 0, &escape },
{ "rlogin", "rlogin escape character", 0, &rlogin },
{ "tracefile", "file to write trace information to", SetNetTrace, (cc_t *)NetTraceFile},
- { " ", "" },
+ { " ", "", NULL, NULL },
{ " ", "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 },
- { " ", "" },
+ { " ", "", NULL, NULL },
{ " ", "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 },
@@ -905,7 +906,7 @@ static struct setlist Setlist[] = {
{ "forw1", "alternate end of line character", 0, termForw1Charp },
{ "forw2", "alternate end of line character", 0, termForw2Charp },
{ "ayt", "alternate AYT character", 0, termAytCharp },
- { 0 }
+ { .name = 0 }
};
static struct setlist *
@@ -1136,8 +1137,8 @@ clear_mode(int bit)
}
struct modelist {
- char *name; /* command name */
- char *help; /* help string */
+ const char *name; /* command name */
+ const char *help; /* help string */
int (*handler) /* routine which executes command */
(int);
int needconnect; /* Do we need to be connected to execute? */
@@ -1145,16 +1146,16 @@ struct modelist {
};
static struct modelist ModeList[] = {
- { "character", "Disable LINEMODE option", docharmode, 1 },
+ { "character", "Disable LINEMODE option", docharmode, 1, 0 },
#ifdef KLUDGELINEMODE
- { "", "(or disable obsolete line-by-line mode)", 0 },
+ { "", "(or disable obsolete line-by-line mode)", 0, 0, 0 },
#endif
- { "line", "Enable LINEMODE option", dolinemode, 1 },
+ { "line", "Enable LINEMODE option", dolinemode, 1, 0 },
#ifdef KLUDGELINEMODE
- { "", "(or enable obsolete line-by-line mode)", 0 },
+ { "", "(or enable obsolete line-by-line mode)", 0, 0, 0 },
#endif
- { "", "", 0 },
- { "", "These require the LINEMODE option to be enabled", 0 },
+ { "", "", 0, 0, 0 },
+ { "", "These require the LINEMODE option to be enabled", 0, 0, 0 },
{ "isig", "Enable signal trapping", set_mode, 1, MODE_TRAPSIG },
{ "+isig", 0, set_mode, 1, MODE_TRAPSIG },
{ "-isig", "Disable signal trapping", clear_mode, 1, MODE_TRAPSIG },
@@ -1167,13 +1168,13 @@ static struct modelist ModeList[] = {
{ "litecho", "Enable literal character echo", set_mode, 1, MODE_LIT_ECHO },
{ "+litecho", 0, set_mode, 1, MODE_LIT_ECHO },
{ "-litecho", "Disable literal character echo", clear_mode, 1, MODE_LIT_ECHO },
- { "help", 0, modehelp, 0 },
+ { "help", 0, modehelp, 0, 0 },
#ifdef KLUDGELINEMODE
- { "kludgeline", 0, dokludgemode, 1 },
+ { "kludgeline", 0, dokludgemode, 1, 0 },
#endif
- { "", "", 0 },
- { "?", "Print help information", modehelp, 0 },
- { 0 },
+ { "", "", 0, 0, 0 },
+ { "?", "Print help information", modehelp, 0, 0 },
+ { .name = 0 },
};
@@ -1375,7 +1376,7 @@ shell(int argc, char *argv[])
/*
* Fire up the shell in the child.
*/
- char *shellp, *shellname;
+ const char *shellp, *shellname;
shellp = getenv("SHELL");
if (shellp == NULL)
@@ -1456,8 +1457,8 @@ logout(int argc, char *argv[])
*/
struct slclist {
- char *name;
- char *help;
+ const char *name;
+ const char *help;
void (*handler)(int);
int arg;
};
@@ -1471,7 +1472,7 @@ struct slclist SlcList[] = {
slc_mode_import, 0 },
{ "help", 0, slc_help, 0 },
{ "?", "Print help information", slc_help, 0 },
- { 0 },
+ { .name = 0 },
};
static void
@@ -1527,9 +1528,9 @@ slccmd(int argc, char *argv[])
*/
struct envlist {
- char *name;
- char *help;
- struct env_lst *(*handler)(unsigned char *, unsigned char *);
+ const char *name;
+ const char *help;
+ struct env_lst *(*handler)(const unsigned char *, unsigned char *);
int narg;
};
@@ -1551,11 +1552,11 @@ struct envlist EnvList[] = {
#endif
{ "help", 0, env_help, 0 },
{ "?", "Print help information", env_help, 0 },
- { 0 },
+ { .name = 0 },
};
static struct env_lst *
-env_help( unsigned char *us1, unsigned char *us2)
+env_help(const unsigned char *us1, unsigned char *us2)
{
struct envlist *c;
@@ -1621,12 +1622,12 @@ struct env_lst {
struct env_lst envlisthead;
struct env_lst *
-env_find(unsigned char *var)
+env_find(const unsigned char *var)
{
struct env_lst *ep;
for (ep = envlisthead.next; ep; ep = ep->next) {
- if (strcmp((char *)ep->var, (char *)var) == 0)
+ if (strcmp((const char *)ep->var, (const char *)var) == 0)
return(ep);
}
return(NULL);
@@ -1672,15 +1673,15 @@ env_init(void)
* don't export the USER variable.
*/
if ((env_find("USER") == NULL) && (ep = env_find("LOGNAME"))) {
- env_define((unsigned char *)"USER", ep->value);
- env_unexport((unsigned char *)"USER", NULL);
+ env_define((const unsigned char *)"USER", ep->value);
+ env_unexport((const unsigned char *)"USER", NULL);
}
- env_export((unsigned char *)"DISPLAY", NULL);
- env_export((unsigned char *)"PRINTER", NULL);
+ env_export((const unsigned char *)"DISPLAY", NULL);
+ env_export((const unsigned char *)"PRINTER", NULL);
}
struct env_lst *
-env_define(unsigned char *var, unsigned char *value)
+env_define(const unsigned char *var, unsigned char *value)
{
struct env_lst *ep;
@@ -1699,13 +1700,13 @@ env_define(unsigned char *var, unsigned
}
ep->welldefined = opt_welldefined(var);
ep->export = 1;
- ep->var = (unsigned char *)strdup((char *)var);
- ep->value = (unsigned char *)strdup((char *)value);
+ ep->var = (unsigned char *)strdup((const char *)var);
+ ep->value = (unsigned char *)strdup((const char *)value);
return(ep);
}
struct env_lst *
-env_undefine(unsigned char *var, unsigned char *d)
+env_undefine(const unsigned char *var, unsigned char *d)
{
struct env_lst *ep;
@@ -1723,7 +1724,7 @@ env_undefine(unsigned char *var, unsigne
}
struct env_lst *
-env_export(unsigned char *var, unsigned char *d)
+env_export(const unsigned char *var, unsigned char *d)
{
struct env_lst *ep;
@@ -1733,7 +1734,7 @@ env_export(unsigned char *var, unsigned
}
struct env_lst *
-env_unexport(unsigned char *var, unsigned char *d)
+env_unexport(const unsigned char *var, unsigned char *d)
{
struct env_lst *ep;
@@ -1743,7 +1744,7 @@ env_unexport(unsigned char *var, unsigne
}
struct env_lst *
-env_send(unsigned char *var, unsigned char *d)
+env_send(const unsigned char *var, unsigned char *d)
{
struct env_lst *ep;
@@ -1770,7 +1771,7 @@ env_send(unsigned char *var, unsigned ch
}
struct env_lst *
-env_list(unsigned char *d1, unsigned char *d2)
+env_list(const unsigned char *d1, unsigned char *d2)
{
struct env_lst *ep;
@@ -1800,7 +1801,7 @@ env_default(int init, int welldefined)
}
unsigned char *
-env_getvalue(unsigned char *var)
+env_getvalue(const unsigned char *var)
{
struct env_lst *ep;
@@ -1811,7 +1812,7 @@ env_getvalue(unsigned char *var)
#if defined(OLD_ENVIRON) && defined(ENV_HACK)
void
-env_varval(unsigned char *what)
+env_varval(const unsigned char *what)
{
extern int old_env_var, old_env_value, env_auto;
int len = strlen((char *)what);
@@ -1852,8 +1853,8 @@ unknown:
*/
struct authlist {
- char *name;
- char *help;
+ const char *name;
+ const char *help;
int (*handler)(char *);
int narg;
};
@@ -1867,7 +1868,7 @@ struct authlist AuthList[] = {
auth_enable, 1 },
{ "help", 0, auth_help, 0 },
{ "?", "Print help information", auth_help, 0 },
- { 0 },
+ { .name = 0 },
};
static int
@@ -1926,8 +1927,8 @@ auth_cmd(int argc, char *argv[])
*/
struct encryptlist {
- char *name;
- char *help;
+ const char *name;
+ const char *help;
int (*handler)(char *, char *);
int needconnect;
int minarg;
@@ -1962,7 +1963,7 @@ struct encryptlist EncryptList[] = {
(encrypthandler) EncryptStatus, 0, 0, 0 },
{ "help", 0, EncryptHelp, 0, 0, 0 },
{ "?", "Print help information", EncryptHelp, 0, 0, 0 },
- { 0 },
+ { .name = 0 },
};
static int
@@ -2159,7 +2160,7 @@ sockaddr_ntop(struct sockaddr *sa)
static int setpolicy (int, struct addrinfo *, char *);
static int
-setpolicy(int net, struct addrinfo *res, char *policy)
+setpolicy(int netw, struct addrinfo *res, char *policy)
{
char *buf;
int level;
@@ -2175,7 +2176,7 @@ setpolicy(int net, struct addrinfo *res,
}
level = res->ai_family == AF_INET ? IPPROTO_IP : IPPROTO_IPV6;
optname = res->ai_family == AF_INET ? IP_IPSEC_POLICY : IPV6_IPSEC_POLICY;
- if (setsockopt(net, level, optname, buf, ipsec_get_policylen(buf)) < 0){
+ if (setsockopt(netw, level, optname, buf, ipsec_get_policylen(buf)) < 0){
perror("setsockopt");
return -1;
}
@@ -2189,14 +2190,15 @@ int
tn(int argc, char *argv[])
{
struct addrinfo hints, *res, *res0;
- char *cause = "telnet: unknown";
+ const char *cause = "telnet: unknown";
int error;
#if defined(IP_OPTIONS) && defined(IPPROTO_IP)
char *srp = 0;
- unsigned long srlen;
+ long srlen;
int proto, opt;
#endif
- char *cmd, *hostp = 0, *portp = 0;
+ char *cmd, *hostp = 0;
+ const char *portp = 0;
const char *user = 0;
if (connected) {
@@ -2384,8 +2386,8 @@ tn(int argc, char *argv[])
}
}
if (user) {
- env_define((unsigned char *)"USER", (unsigned char *)user);
- env_export((unsigned char *)"USER", NULL);
+ env_define((const unsigned char *)"USER", __UNCONST(user));
+ env_export((const unsigned char *)"USER", NULL);
}
(void) call(status, "status", "notmuch", 0);
telnet(user);
@@ -2499,7 +2501,7 @@ getcmd(char *name)
}
void
-command(int top, char *tbuf, int cnt)
+command(int top, const char *tbuf, int cnt)
{
Command *c;
Index: src/usr.bin/telnet/externs.h
diff -u src/usr.bin/telnet/externs.h:1.35 src/usr.bin/telnet/externs.h:1.36
--- src/usr.bin/telnet/externs.h:1.35 Wed Jan 4 11:09:43 2012
+++ src/usr.bin/telnet/externs.h Mon Jan 9 11:08:55 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: externs.h,v 1.35 2012/01/04 16:09:43 drochner Exp $ */
+/* $NetBSD: externs.h,v 1.36 2012/01/09 16:08:55 christos Exp $ */
/*
* Copyright (c) 1988, 1990, 1993
@@ -201,7 +201,7 @@ char *telnet_getenv(char *);
char *telnet_gets(char *, char *, int, int);
/* commands.c */
-int send_tncmd(void (*)(int, int), char *, char *);
+int send_tncmd(void (*)(int, int), const char *, char *);
void _setlist_init(void);
void set_escape_char(char *);
int set_mode(int);
@@ -212,22 +212,22 @@ int shell(int, char *[]);
int quit(int, char *[]);
int logout(int, char *[]);
int env_cmd(int, char *[]);
-struct env_lst *env_find(unsigned char *);
+struct env_lst *env_find(const unsigned char *);
void env_init(void);
-struct env_lst *env_define(unsigned char *, unsigned char *);
-struct env_lst *env_undefine(unsigned char *, unsigned char *);
-struct env_lst *env_export(unsigned char *, unsigned char *);
-struct env_lst *env_unexport(unsigned char *, unsigned char *);
-struct env_lst *env_send(unsigned char *, unsigned char *);
-struct env_lst *env_list(unsigned char *, unsigned char *);
+struct env_lst *env_define(const unsigned char *, unsigned char *);
+struct env_lst *env_undefine(const unsigned char *, unsigned char *);
+struct env_lst *env_export(const unsigned char *, unsigned char *);
+struct env_lst *env_unexport(const unsigned char *, unsigned char *);
+struct env_lst *env_send(const unsigned char *, unsigned char *);
+struct env_lst *env_list(const unsigned char *, unsigned char *);
unsigned char *env_default(int, int );
-unsigned char *env_getvalue(unsigned char *);
-void env_varval(unsigned char *);
+unsigned char *env_getvalue(const unsigned char *);
+void env_varval(const unsigned char *);
int auth_cmd(int, char *[]);
int ayt_status(void);
int encrypt_cmd(int, char *[]);
int tn(int, char *[]);
-void command(int, char *, int);
+void command(int, const char *, int);
void cmdrc(const char *, const char *);
struct addrinfo;
int sourceroute(struct addrinfo *, char *, char **, int *, int*);
@@ -296,7 +296,7 @@ void env_opt(unsigned char *, int);
void env_opt_start(void);
void env_opt_start_info(void);
void env_opt_add(unsigned char *);
-int opt_welldefined(char *);
+int opt_welldefined(const char *);
void env_opt_end(int);
int telrcv(void);
int rlogin_susp(void);
@@ -329,13 +329,13 @@ void upcase(char *);
int SetSockOpt(int, int, int, int);
void SetNetTrace(char *);
void Dump(int, unsigned char *, int);
-void printoption(char *, int, int );
+void printoption(const char *, int, int );
void optionstatus(void);
void printsub(int, unsigned char *, int);
void EmptyTerminal(void);
void SetForExit(void);
void Exit(int) __attribute__((__noreturn__));
-void ExitString(char *, int) __attribute__((__noreturn__));
+void ExitString(const char *, int) __attribute__((__noreturn__));
extern struct termios new_tc;
Index: src/usr.bin/telnet/main.c
diff -u src/usr.bin/telnet/main.c:1.27 src/usr.bin/telnet/main.c:1.28
--- src/usr.bin/telnet/main.c:1.27 Mon Jul 21 10:19:26 2008
+++ src/usr.bin/telnet/main.c Mon Jan 9 11:08:55 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.27 2008/07/21 14:19:26 lukem Exp $ */
+/* $NetBSD: main.c,v 1.28 2012/01/09 16:08:55 christos Exp $ */
/*
* Copyright (c) 1988, 1990, 1993
@@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 19
#if 0
static char sccsid[] = "@(#)main.c 8.3 (Berkeley) 5/30/95";
#else
-__RCSID("$NetBSD: main.c,v 1.27 2008/07/21 14:19:26 lukem Exp $");
+__RCSID("$NetBSD: main.c,v 1.28 2012/01/09 16:08:55 christos Exp $");
#endif
#endif /* not lint */
@@ -325,6 +325,7 @@ main(int argc, char *argv[])
argv += optind;
if (argc) {
+ static char ml[] = "-l";
char *args[7];
char ** volatile argp; /* avoid longjmp clobbering */
@@ -333,7 +334,7 @@ main(int argc, char *argv[])
usage();
*argp++ = prompt;
if (user) {
- *argp++ = "-l";
+ *argp++ = ml;
*argp++ = user;
}
*argp++ = argv[0]; /* host */
Index: src/usr.bin/telnet/sys_bsd.c
diff -u src/usr.bin/telnet/sys_bsd.c:1.32 src/usr.bin/telnet/sys_bsd.c:1.33
--- src/usr.bin/telnet/sys_bsd.c:1.32 Wed Nov 10 15:26:43 2004
+++ src/usr.bin/telnet/sys_bsd.c Mon Jan 9 11:08:55 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: sys_bsd.c,v 1.32 2004/11/10 20:26:43 christos Exp $ */
+/* $NetBSD: sys_bsd.c,v 1.33 2012/01/09 16:08:55 christos Exp $ */
/*
* Copyright (c) 1988, 1990, 1993
@@ -34,7 +34,7 @@
#if 0
from: static char sccsid[] = "@(#)sys_bsd.c 8.4 (Berkeley) 5/30/95";
#else
-__RCSID("$NetBSD: sys_bsd.c,v 1.32 2004/11/10 20:26:43 christos Exp $");
+__RCSID("$NetBSD: sys_bsd.c,v 1.33 2012/01/09 16:08:55 christos Exp $");
#endif
#endif /* not lint */
@@ -75,7 +75,7 @@ int
tin, /* Input file descriptor */
net;
-struct termios old_tc = { 0 };
+struct termios old_tc = { .c_iflag = 0 };
extern struct termios new_tc;
# ifndef TCSANOW
Index: src/usr.bin/telnet/telnet.c
diff -u src/usr.bin/telnet/telnet.c:1.34 src/usr.bin/telnet/telnet.c:1.35
--- src/usr.bin/telnet/telnet.c:1.34 Fri Oct 7 12:30:17 2011
+++ src/usr.bin/telnet/telnet.c Mon Jan 9 11:08:55 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: telnet.c,v 1.34 2011/10/07 16:30:17 christos Exp $ */
+/* $NetBSD: telnet.c,v 1.35 2012/01/09 16:08:55 christos Exp $ */
/*
* Copyright (c) 1988, 1990, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)telnet.c 8.4 (Berkeley) 5/30/95";
#else
-__RCSID("$NetBSD: telnet.c,v 1.34 2011/10/07 16:30:17 christos Exp $");
+__RCSID("$NetBSD: telnet.c,v 1.35 2012/01/09 16:08:55 christos Exp $");
#endif
#endif /* not lint */
@@ -527,7 +527,7 @@ dooption(int option)
#endif
case TELOPT_XDISPLOC: /* X Display location */
- if (env_getvalue((unsigned char *)"DISPLAY"))
+ if (env_getvalue((const unsigned char *)"DISPLAY"))
new_state_ok = 1;
break;
@@ -618,7 +618,7 @@ dontoption(int option)
* duplicate, or verbose names (names with spaces).
*/
-static char *name_unknown = "UNKNOWN";
+static char name_unknown[] = "UNKNOWN";
static char *unknown[] = { 0, 0 };
char **
@@ -800,7 +800,7 @@ gettermname(void)
resettermname = 0;
if (tnamep && tnamep != unknown)
free(tnamep);
- if ((tname = (char *)env_getvalue((unsigned char *)"TERM")) &&
+ if ((tname = (char *)env_getvalue((const unsigned char *)"TERM")) &&
(setupterm(tname, 1, &err) == 0)) {
tnamep = mklist(termbuf, tname);
} else {
@@ -872,14 +872,14 @@ suboption(void)
if (SB_EOF())
return;
if (SB_GET() == TELQUAL_SEND) {
- long ospeed, ispeed;
+ long osp, isp;
unsigned char temp[50];
int len;
- TerminalSpeeds(&ispeed, &ospeed);
+ TerminalSpeeds(&isp, &osp);
sprintf((char *)temp, "%c%c%c%c%ld,%ld%c%c", IAC, SB, TELOPT_TSPEED,
- TELQUAL_IS, (long)ospeed, (long)ispeed, IAC, SE);
+ TELQUAL_IS, osp, isp, IAC, SE);
len = strlen((char *)temp+4) + 4; /* temp[3] is 0 ... */
if (len < NETROOM()) {
@@ -975,7 +975,7 @@ suboption(void)
unsigned char temp[50], *dp;
int len;
- if ((dp = env_getvalue((unsigned char *)"DISPLAY")) == NULL) {
+ if ((dp = env_getvalue((const unsigned char *)"DISPLAY")) == NULL) {
/*
* Something happened, we no longer have a DISPLAY
* variable. So, turn off the option.
@@ -1106,7 +1106,7 @@ lm_will(unsigned char *cmd, int len)
default:
str_lm[3] = DONT;
str_lm[4] = cmd[0];
- if (NETROOM() > sizeof(str_lm)) {
+ if ((size_t)NETROOM() > sizeof(str_lm)) {
ring_supply_data(&netoring, str_lm, sizeof(str_lm));
printsub('>', &str_lm[2], sizeof(str_lm)-2);
}
@@ -1142,7 +1142,7 @@ lm_do(unsigned char *cmd, int len)
default:
str_lm[3] = WONT;
str_lm[4] = cmd[0];
- if (NETROOM() > sizeof(str_lm)) {
+ if ((size_t)NETROOM() > sizeof(str_lm)) {
ring_supply_data(&netoring, str_lm, sizeof(str_lm));
printsub('>', &str_lm[2], sizeof(str_lm)-2);
}
@@ -1183,7 +1183,7 @@ lm_mode(unsigned char *cmd, int len, int
str_lm_mode[4] = linemode;
if (!init)
str_lm_mode[4] |= MODE_ACK;
- if (NETROOM() > sizeof(str_lm_mode)) {
+ if ((size_t)NETROOM() > sizeof(str_lm_mode)) {
ring_supply_data(&netoring, str_lm_mode, sizeof(str_lm_mode));
printsub('>', &str_lm_mode[2], sizeof(str_lm_mode)-2);
}
@@ -1297,7 +1297,7 @@ unsigned char slc_import_def[] = {
void
slc_import(int def)
{
- if (NETROOM() > sizeof(slc_import_val)) {
+ if ((size_t)NETROOM() > sizeof(slc_import_val)) {
if (def) {
ring_supply_data(&netoring, slc_import_def, sizeof(slc_import_def));
printsub('>', &slc_import_def[2], sizeof(slc_import_def)-2);
@@ -1438,7 +1438,7 @@ slc_start_reply(void)
void
slc_add_reply(unsigned int func, unsigned int flags, cc_t value)
{
- if ((slc_replyp - slc_reply) + 6 > sizeof(slc_reply))
+ if ((size_t)(slc_replyp - slc_reply) + 6 > sizeof(slc_reply))
return;
if ((*slc_replyp++ = func) == IAC)
*slc_replyp++ = IAC;
@@ -1454,7 +1454,7 @@ slc_end_reply(void)
int len;
len = slc_replyp - slc_reply;
- if (len <= 4 || (len + 2 > sizeof(slc_reply)))
+ if (len <= 4 || ((size_t)len + 2 > sizeof(slc_reply)))
return;
*slc_replyp++ = IAC;
*slc_replyp++ = SE;
@@ -1688,7 +1688,7 @@ env_opt_add(unsigned char *ep)
}
int
-opt_welldefined(char *ep)
+opt_welldefined(const char *ep)
{
if ((strcmp(ep, "USER") == 0) ||
(strcmp(ep, "DISPLAY") == 0) ||
@@ -2280,7 +2280,7 @@ telnet(const char *user)
send_will(TELOPT_LINEMODE, 1);
send_will(TELOPT_NEW_ENVIRON, 1);
send_do(TELOPT_STATUS, 1);
- if (env_getvalue((unsigned char *)"DISPLAY"))
+ if (env_getvalue((const unsigned char *)"DISPLAY"))
send_will(TELOPT_XDISPLOC, 1);
if (eight)
tel_enter_binary(eight);
Index: src/usr.bin/telnet/utilities.c
diff -u src/usr.bin/telnet/utilities.c:1.22 src/usr.bin/telnet/utilities.c:1.23
--- src/usr.bin/telnet/utilities.c:1.22 Sat Oct 7 13:27:57 2006
+++ src/usr.bin/telnet/utilities.c Mon Jan 9 11:08:55 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: utilities.c,v 1.22 2006/10/07 17:27:57 elad Exp $ */
+/* $NetBSD: utilities.c,v 1.23 2012/01/09 16:08:55 christos Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)utilities.c 8.3 (Berkeley) 5/30/95";
#else
-__RCSID("$NetBSD: utilities.c,v 1.22 2006/10/07 17:27:57 elad Exp $");
+__RCSID("$NetBSD: utilities.c,v 1.23 2012/01/09 16:08:55 christos Exp $");
#endif
#endif /* not lint */
@@ -172,7 +172,7 @@ Dump(int direction, unsigned char *buffe
void
-printoption(char *direction, int cmd, int option)
+printoption(const char *direction, int cmd, int option)
{
if (!showoptions)
return;
@@ -182,7 +182,7 @@ printoption(char *direction, int cmd, in
else
fprintf(NetTrace, "%s IAC %d", direction, option);
} else {
- char *fmt;
+ const char *fmt;
fmt = (cmd == WILL) ? "WILL" : (cmd == WONT) ? "WONT" :
(cmd == DO) ? "DO" : (cmd == DONT) ? "DONT" : 0;
if (fmt) {
@@ -654,7 +654,7 @@ printsub(
break;
case TELOPT_STATUS: {
- char *cp;
+ const char *cp;
int j, k;
fprintf(NetTrace, "STATUS");
@@ -768,7 +768,8 @@ printsub(
fprintf(NetTrace, "INFO ");
env_common:
{
- int noquote = 2;
+ static const char NQ[] = "\" ";
+ const char *noquote = NQ;
#if defined(ENV_HACK) && defined(OLD_ENVIRON)
extern int old_env_var, old_env_value;
#endif
@@ -780,14 +781,14 @@ printsub(
if (pointer[0] == TELOPT_OLD_ENVIRON) {
# ifdef ENV_HACK
if (old_env_var == OLD_ENV_VALUE)
- fprintf(NetTrace, "\" (VALUE) " + noquote);
+ fprintf(NetTrace, "%s(VALUE) ", noquote);
else
# endif
- fprintf(NetTrace, "\" VAR " + noquote);
+ fprintf(NetTrace, "%sVAR ", noquote);
} else
#endif /* OLD_ENVIRON */
- fprintf(NetTrace, "\" VALUE " + noquote);
- noquote = 2;
+ fprintf(NetTrace, "%sVALUE ", noquote);
+ noquote = NQ;
break;
case NEW_ENV_VAR:
@@ -796,37 +797,37 @@ printsub(
if (pointer[0] == TELOPT_OLD_ENVIRON) {
# ifdef ENV_HACK
if (old_env_value == OLD_ENV_VAR)
- fprintf(NetTrace, "\" (VAR) " + noquote);
+ fprintf(NetTrace, "%s(VAR) ", noquote);
else
# endif
- fprintf(NetTrace, "\" VALUE " + noquote);
+ fprintf(NetTrace, "%sVALUE ", noquote);
} else
#endif /* OLD_ENVIRON */
- fprintf(NetTrace, "\" VAR " + noquote);
- noquote = 2;
+ fprintf(NetTrace, "%sVAR ", noquote);
+ noquote = NQ;
break;
case ENV_ESC:
- fprintf(NetTrace, "\" ESC " + noquote);
- noquote = 2;
+ fprintf(NetTrace, "%sESC ", noquote);
+ noquote = NQ;
break;
case ENV_USERVAR:
- fprintf(NetTrace, "\" USERVAR " + noquote);
- noquote = 2;
+ fprintf(NetTrace, "%sUSERVAR ", noquote);
+ noquote = NQ;
break;
default:
if (isprint(pointer[i]) && pointer[i] != '"') {
- if (noquote) {
+ if (*noquote) {
putc('"', NetTrace);
- noquote = 0;
+ noquote = "";
}
putc(pointer[i], NetTrace);
} else {
- fprintf(NetTrace, "\" %03o " + noquote,
+ fprintf(NetTrace, "%s%03o ", noquote,
pointer[i]);
- noquote = 2;
+ noquote = NQ;
}
break;
}
@@ -916,7 +917,7 @@ Exit(int returnCode)
}
void
-ExitString(char *string, int returnCode)
+ExitString(const char *string, int returnCode)
{
SetForExit();
fwrite(string, 1, strlen(string), stderr);