PR/45805: Borodin Oleg: telnet/telnetd with -DAUTHENTICATION -DENCRYPTION

(rfc2941)
- separate MKCRYPTO from USE_KERBEROS
- WARNS=4
This commit is contained in:
christos 2012-01-09 16:36:48 +00:00
parent 9bc46f7ca5
commit 8ec0ca7829
6 changed files with 54 additions and 55 deletions

View File

@ -1,7 +1,7 @@
# $NetBSD: Makefile,v 1.48 2011/04/24 21:42:06 elric Exp $
# $NetBSD: Makefile,v 1.49 2012/01/09 16:36:48 christos Exp $
# from: @(#)Makefile 8.2 (Berkeley) 12/15/93
WARNS?= 2 # XXX: const issues in sys_term.c
WARNS?= 4 # XXX: const issues in sys_term.c
.include <bsd.own.mk>
@ -22,17 +22,18 @@ LIBTELNETDIR!= cd ${.CURDIR}/../../lib/libtelnet; ${PRINTOBJDIR}
.if (${USE_KERBEROS} != "no")
CPPFLAGS+=-DKRB5 -DAUTHENTICATION -DENCRYPTION
LDADD+= -lkrb5 -lasn1 -lcrypto -lcrypt
DPADD+= ${LIBKRB5} ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT}
LDADD+= -lkrb5 -lasn1 -lcom_err -lroken
DPADD+= ${LIBKRB5} ${LIBASN1} ${LIBCOM_ERR} ${LIBROKEN}
.endif
.if (${MKCRYPTO} != "no")
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
.include <bsd.prog.mk>

View File

@ -1,4 +1,4 @@
/* $NetBSD: ext.h,v 1.20 2005/06/21 22:29:53 lha Exp $ */
/* $NetBSD: ext.h,v 1.21 2012/01/09 16:36:48 christos Exp $ */
/*
* Copyright (c) 1989, 1993
@ -90,7 +90,7 @@ extern void
doeof(void),
dooption(int),
dontoption(int),
edithost(char *, char *),
edithost(const char *, const char *),
fatal(int, const char *),
fatalperror(int, const char *),
get_slc_defaults(void),
@ -103,7 +103,7 @@ extern void
netflush(void),
#ifdef DIAGNOSTICS
printoption(const char *, int),
printdata(char *, char *, int),
printdata(const char *, char *, int),
#ifndef ENCRYPTION
printsub(int, unsigned char *, int),
#endif
@ -130,7 +130,7 @@ extern void
tty_binaryout(int);
extern char *
putf(char *, char *);
putf(const char *, char *);
extern int
end_slc(unsigned char **),

View File

@ -1,4 +1,4 @@
/* $NetBSD: state.c,v 1.28 2011/12/23 16:56:54 christos Exp $ */
/* $NetBSD: state.c,v 1.29 2012/01/09 16:36:48 christos Exp $ */
/*
* Copyright (c) 1989, 1993
@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)state.c 8.5 (Berkeley) 5/30/95";
#else
__RCSID("$NetBSD: state.c,v 1.28 2011/12/23 16:56:54 christos Exp $");
__RCSID("$NetBSD: state.c,v 1.29 2012/01/09 16:36:48 christos Exp $");
#endif
#endif /* not lint */
@ -45,10 +45,6 @@ __RCSID("$NetBSD: state.c,v 1.28 2011/12/23 16:56:54 christos Exp $");
static int envvarok(char *);
unsigned const char doopt[] = { IAC, DO, '%', 'c', 0 };
unsigned const char dont[] = { IAC, DONT, '%', 'c', 0 };
unsigned const char will[] = { IAC, WILL, '%', 'c', 0 };
unsigned const char wont[] = { IAC, WONT, '%', 'c', 0 };
int not42 = 1;
/*
@ -437,7 +433,7 @@ send_do(int option, int init)
set_his_want_state_will(option);
do_dont_resp[option]++;
}
(void) output_data((const char *)doopt, option);
(void) output_data("%c%c%c", IAC, DO, option);
DIAG(TD_OPTIONS, printoption("td: send do", option));
}
@ -657,7 +653,7 @@ send_dont(int option, int init)
set_his_want_state_wont(option);
do_dont_resp[option]++;
}
(void) output_data((const char *)dont, option);
(void) output_data("%c%c%c", IAC, DONT, option);
DIAG(TD_OPTIONS, printoption("td: send dont", option));
}
@ -805,7 +801,7 @@ send_will(int option, int init)
set_my_want_state_will(option);
will_wont_resp[option]++;
}
(void) output_data((const char *)will, option);
(void) output_data("%c%c%c", IAC, WILL, option);
DIAG(TD_OPTIONS, printoption("td: send will", option));
}
@ -959,7 +955,7 @@ send_wont(int option, int init)
set_my_want_state_wont(option);
will_wont_resp[option]++;
}
(void) output_data((const char *)wont, option);
(void) output_data("%c%c%c", IAC, WONT, option);
DIAG(TD_OPTIONS, printoption("td: send wont", option));
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: sys_term.c,v 1.44 2007/01/17 21:44:50 hubertf Exp $ */
/* $NetBSD: sys_term.c,v 1.45 2012/01/09 16:36:48 christos Exp $ */
/*
* Copyright (c) 1989, 1993
@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)sys_term.c 8.4+1 (Berkeley) 5/30/95";
#else
__RCSID("$NetBSD: sys_term.c,v 1.44 2007/01/17 21:44:50 hubertf Exp $");
__RCSID("$NetBSD: sys_term.c,v 1.45 2012/01/09 16:36:48 christos Exp $");
#endif
#endif /* not lint */
@ -54,7 +54,7 @@ struct termios termbuf, termbuf2; /* pty control structure */
void getptyslave(void);
int cleanopen(char *);
char **addarg(char **, char *);
char **addarg(char **, const char *);
void scrub_env(void);
int getent(char *, char *);
char *getstr(const char *, char **);
@ -84,7 +84,7 @@ init_termbuf(void)
void
copy_termbuf(char *cp, int len)
{
if (len > sizeof(termbuf))
if ((size_t)len > sizeof(termbuf))
len = sizeof(termbuf);
memmove((char *)&termbuf, cp, len);
termbuf2 = termbuf;
@ -677,7 +677,7 @@ start_login(char *host, int autologin, char *name)
}
char **
addarg(char **argv, char *val)
addarg(char **argv, const char *val)
{
char **cpp;
char **nargv;
@ -707,7 +707,7 @@ addarg(char **argv, char *val)
argv++;
cpp = &argv[(long)argv[-1] - 10];
}
*cpp++ = val;
*cpp++ = __UNCONST(val);
*cpp = 0;
return(argv);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: telnetd.c,v 1.52 2011/04/24 21:18:24 elric Exp $ */
/* $NetBSD: telnetd.c,v 1.53 2012/01/09 16:36:48 christos Exp $ */
/*
* Copyright (C) 1997 and 1998 WIDE Project.
@ -65,7 +65,7 @@ __COPYRIGHT("@(#) Copyright (c) 1989, 1993\
#if 0
static char sccsid[] = "@(#)telnetd.c 8.4 (Berkeley) 5/30/95";
#else
__RCSID("$NetBSD: telnetd.c,v 1.52 2011/04/24 21:18:24 elric Exp $");
__RCSID("$NetBSD: telnetd.c,v 1.53 2012/01/09 16:36:48 christos Exp $");
#endif
#endif /* not lint */
@ -118,13 +118,13 @@ int hostinfo = 1; /* do we print login banner? */
static int debug = 0;
int keepalive = 1;
char *gettyname = "default";
const char *gettyname = "default";
char *progname;
int main(int, char *[]);
void usage(void);
int getterminaltype(char *, size_t);
int getent(char *, char *);
int getent(char *, const char *);
void doit(struct sockaddr *);
void _gettermname(void);
int terminaltypeok(char *);
@ -360,7 +360,7 @@ main(int argc, char *argv[])
if (debug) {
int s, ns, error;
socklen_t foo;
char *service = "telnet";
const char *service = "telnet";
struct addrinfo hints, *res;
if (argc > 1) {
@ -747,7 +747,8 @@ telnet(int f, int p)
char defent[TABBUFSIZ];
char defstrs[TABBUFSIZ];
#undef TABBUFSIZ
char *HE, *HN, *IM, *IF, *ptyibuf2ptr;
char *HE, *HN, *IF, *ptyibuf2ptr;
const char *IM;
struct pollfd set[2];
/*

View File

@ -1,4 +1,4 @@
/* $NetBSD: utility.c,v 1.31 2007/02/21 21:14:07 hubertf Exp $ */
/* $NetBSD: utility.c,v 1.32 2012/01/09 16:36:48 christos Exp $ */
/*
* Copyright (c) 1989, 1993
@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)utility.c 8.4 (Berkeley) 5/30/95";
#else
__RCSID("$NetBSD: utility.c,v 1.31 2007/02/21 21:14:07 hubertf Exp $");
__RCSID("$NetBSD: utility.c,v 1.32 2012/01/09 16:36:48 christos Exp $");
#endif
#endif /* not lint */
@ -370,7 +370,7 @@ fatalperror(f, msg)
char editedhost[MAXHOSTNAMELEN];
void
edithost(char *pat, char *host)
edithost(const char *pat, const char *host)
{
char *res = editedhost;
@ -427,11 +427,11 @@ putchr(int cc)
* This is split on two lines so that SCCS will not see the M
* between two % signs and expand it...
*/
static char fmtstr[] = { "%l:%M\
static const char fmtstr[] = { "%l:%M\
%p on %A, %d %B %Y" };
char *
putf(char *cp, char *where)
putf(const char *cp, char *where)
{
char *slash;
time_t t;
@ -740,7 +740,7 @@ printsub(
break;
case TELOPT_STATUS: {
char *cp;
const char *cp;
int j, k;
output_data("STATUS");
@ -841,39 +841,40 @@ printsub(
output_data("INFO ");
env_common:
{
int noquote = 2;
static const char NQ[] = "\" ";
const char *noquote = NQ;
for (i = 2; i < length; i++ ) {
switch (pointer[i]) {
case NEW_ENV_VAR:
output_data("%s", "\" VAR " + noquote);
noquote = 2;
output_data("%sVAR ", noquote);
noquote = NQ;
break;
case NEW_ENV_VALUE:
output_data("%s", "\" VALUE " + noquote);
noquote = 2;
output_data("%sVALUE ", noquote);
noquote = NQ;
break;
case ENV_ESC:
output_data("%s", "\" ESC " + noquote);
noquote = 2;
output_data("%sESC ", noquote);
noquote = NQ;
break;
case ENV_USERVAR:
output_data("%s", "\" USERVAR " + noquote);
noquote = 2;
output_data("%sUSERVAR ", noquote);
noquote = NQ;
break;
default:
if (isprint(pointer[i]) && pointer[i] != '"') {
if (noquote) {
if (*noquote) {
output_data("\"");
noquote = 0;
noquote = "";
}
output_data("%c", pointer[i]);
} else {
output_data("\" %03o " + noquote, pointer[i]);
noquote = 2;
output_data("%s%03o ", noquote, pointer[i]);
noquote = NQ;
}
break;
}
@ -1044,7 +1045,7 @@ printsub(
* Dump a data buffer in hex and ascii to the output data stream.
*/
void
printdata(char *tag, char *ptr, int cnt)
printdata(const char *tag, char *ptr, int cnt)
{
int i;
char xbuf[30];