[5154] in Kerberos
Re: K5B5 for BSDI 2.0
daemon@ATHENA.MIT.EDU (Wolfgang Rupprecht)
Fri May 12 05:39:47 1995
To: kerberos@MIT.EDU
Date: 12 May 1995 01:31:21 -0700
From: wolfgang@wsrcc.com (Wolfgang Rupprecht)
brian@warlock.ucsd.edu (Brian Kantor) writes:
>The following are the patches I had to make to the K5B5 distribution
>in order to get it to compile and pass the regression tests on a
>BSDI 2.0 system. They're pretty simple as such things go.
I also went through the files and have most of the apps running
between a BSDI 2.0 system and a SunOS 4.1.3. One thing that did was
go through the files and added all the initializations for the
"sockaddr.sin_len" struct elements.
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/bsd/loginpaths.h /usr/home/wolfgang/krb5.5/./src/appl/bsd/loginpaths.h
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/bsd/loginpaths.h Thu Aug 4 16:06:44 1994
--- /usr/home/wolfgang/krb5.5/./src/appl/bsd/loginpaths.h Mon May 8 12:56:52 1995
***************
*** 11,16 ****
--- 11,22 ----
#endif
#endif
+ /* grabbed from strings /usr/libexec/rshd | grep :/ */
+ #ifdef bsdi
+ #define LPATH "/usr/bin:/bin"
+ #define RPATH "/usr/bin:/bin"
+ #endif
+
#ifdef ultrix
#define LPATH ":/usr/ucb:/bin:/usr/bin"
#define RPATH ":/usr/ucb:/bin:/usr/bin"
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/bsd/kcmd.c /usr/home/wolfgang/krb5.5/./src/appl/bsd/kcmd.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/bsd/kcmd.c Tue May 2 19:14:11 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/bsd/kcmd.c Mon May 8 15:30:40 1995
***************
*** 169,174 ****
--- 169,177 ----
sin.sin_family = hp->h_addrtype;
memcpy((caddr_t)&sin.sin_addr,hp->h_addr, hp->h_length);
sin.sin_port = rport;
+ #ifdef bsdi
+ sin.sin_len = sizeof(sin);
+ #endif
if (connect(s, (struct sockaddr *)&sin, sizeof (sin)) >= 0)
break;
(void) close(s);
***************
*** 396,401 ****
--- 399,408 ----
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = INADDR_ANY;
+ #ifdef bsdi
+ sin.sin_len = sizeof(sin);
+ #endif
+
s = socket(AF_INET, SOCK_STREAM, 0);
if (s < 0)
return (-1);
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/bsd/krcp.c /usr/home/wolfgang/krb5.5/./src/appl/bsd/krcp.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/bsd/krcp.c Fri May 5 06:19:24 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/bsd/krcp.c Tue May 9 14:55:44 1995
***************
*** 107,113 ****
int errs;
krb5_sigtype lostconn();
int errno;
! extern char *sys_errlist[];
int iamremote, targetshouldbedirectory;
int iamrecursive;
int pflag;
--- 107,113 ----
int errs;
krb5_sigtype lostconn();
int errno;
! extern const char * const sys_errlist[];
int iamremote, targetshouldbedirectory;
int iamrecursive;
int pflag;
***************
*** 878,884 ****
mode_t mask = umask(0);
off_t i, j;
char *targ, *whopp, *cp;
! int of, wrerr, exists, first, count, amt, size;
struct buffer *bp;
static struct buffer buffer;
struct stat stb;
--- 878,885 ----
mode_t mask = umask(0);
off_t i, j;
char *targ, *whopp, *cp;
! int of, wrerr, exists, first, count, amt;
! off_t size; /* bsdi change, was int -wsr */
struct buffer *bp;
static struct buffer buffer;
struct stat stb;
***************
*** 1343,1349 ****
krb5_auth_context *auth_context = NULL;
if (config_file) {
! char * filenames[2];
filenames[1] = NULL;
filenames[0] = config_file;
if (status = krb5_set_config_files(bsd_context, filenames))
--- 1344,1350 ----
krb5_auth_context *auth_context = NULL;
if (config_file) {
! const char * filenames[2];
filenames[1] = NULL;
filenames[0] = config_file;
if (status = krb5_set_config_files(bsd_context, filenames))
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/bsd/krlogin.c /usr/home/wolfgang/krb5.5/./src/appl/bsd/krlogin.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/bsd/krlogin.c Wed May 10 10:04:46 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/bsd/krlogin.c Tue May 9 23:43:19 1995
***************
*** 946,952 ****
dosigwinch = 1;
}
!
krb5_sigtype
catchild()
--- 946,954 ----
dosigwinch = 1;
}
! #ifdef bsdi
! # define WAIT_USES_INT 1
! #endif
krb5_sigtype
catchild()
***************
*** 1011,1017 ****
FD_SET(0, &waitread);
n = select(8*sizeof(waitread), &waitread, 0, 0, 0, 0);
if (n < 0 && errno == EINTR)
! continue;
if (n > 0)
break;
else
--- 1013,1019 ----
FD_SET(0, &waitread);
n = select(8*sizeof(waitread), &waitread, 0, 0, 0, 0);
if (n < 0 && errno == EINTR)
! continue;
if (n > 0)
break;
else
***************
*** 1025,1031 ****
n = read(0, &c, 1);
if (n <= 0) {
if (n < 0 && errno == EINTR)
! continue;
break;
}
/*
--- 1027,1036 ----
n = read(0, &c, 1);
if (n <= 0) {
if (n < 0 && errno == EINTR)
! {
! errno = 0; /* not resetting errno is clearly a bug -wsr */
! continue;
! }
break;
}
/*
***************
*** 1370,1376 ****
/*
* reader: read from remote: line -> 1
*/
! reader(oldmask) /* child (base_pid + 1) */
#ifdef POSIX_SIGNALS
sigset_t *oldmask;
#else
--- 1375,1381 ----
/*
* reader: read from remote: line -> 1
*/
! reader(oldmask)
#ifdef POSIX_SIGNALS
sigset_t *oldmask;
#else
***************
*** 1440,1446 ****
return (0);
if (rcvcnt < 0) {
if (errno == EINTR)
! continue;
perror("read");
return (-1);
}
--- 1445,1454 ----
return (0);
if (rcvcnt < 0) {
if (errno == EINTR)
! {
! errno = 0; /* -wsr */
! continue;
! }
perror("read");
return (-1);
}
***************
*** 1485,1496 ****
--- 1493,1510 ----
/* newtty.c_iflag |= (BRKINT|ISTRIP|IXON|IXANY); */
newtty.c_iflag &= ~(IXON|IXANY);
newtty.c_iflag |= (BRKINT|ISTRIP);
+ #ifdef bsdi
+ newtty.c_oflag &= ~(ONLCR /* | ONOCR */);
+ #else
newtty.c_oflag &= ~(ONLCR|ONOCR);
+ #endif
newtty.c_oflag |= (OPOST);
}
+ #ifndef bsdi
/* preserve tab delays, but turn off XTABS */
if ((newtty.c_oflag & TABDLY) == TAB3)
newtty.c_oflag &= ~TABDLY;
+ #endif
if (litout)
newtty.c_oflag &= ~OPOST;
***************
*** 1697,1708 ****
/* See the comment in v4_des_read. */
do {
cc = krb5_net_read(bsd_context, fd, &c, 1);
-
- /* I added this test. This was looping forever when
- the remote closed the connection -wolfgang */
- if (cc == 0)
- return 0;
-
/* we should check for non-blocking here, but we'd have
to make it save partial reads as well. */
if (cc < 0) return 0; /* read error */
--- 1711,1716 ----
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/bsd/krlogind.c /usr/home/wolfgang/krb5.5/./src/appl/bsd/krlogind.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/bsd/krlogind.c Wed May 3 00:46:06 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/bsd/krlogind.c Mon May 8 15:32:25 1995
***************
*** 444,449 ****
--- 444,452 ----
sin.sin_family = AF_INET;
sin.sin_port = htons(debug_port);
sin.sin_addr.s_addr = INADDR_ANY;
+ #ifdef bsdi
+ sin.sin_len = sizeof(sin);
+ #endif
(void) setsockopt(s, SOL_SOCKET, SO_REUSEADDR,
(char *)&on, sizeof(on));
***************
*** 1120,1126 ****
{
char buf[512];
extern int sys_nerr;
! extern char *sys_errlist[];
if ((unsigned)errno < sys_nerr)
(void) sprintf(buf, "%s: %s", msg, sys_errlist[errno]);
--- 1123,1129 ----
{
char buf[512];
extern int sys_nerr;
! extern const char * const sys_errlist[];
if ((unsigned)errno < sys_nerr)
(void) sprintf(buf, "%s: %s", msg, sys_errlist[errno]);
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/bsd/krshd.c /usr/home/wolfgang/krb5.5/./src/appl/bsd/krshd.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/bsd/krshd.c Wed May 3 00:46:08 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/bsd/krshd.c Mon May 8 15:34:05 1995
***************
*** 379,384 ****
--- 379,387 ----
sin.sin_family = AF_INET;
sin.sin_port = htons(debug_port);
sin.sin_addr.s_addr = INADDR_ANY;
+ #ifdef bsdi
+ sin.sin_len = sizeof(sin);
+ #endif
(void) setsockopt(s, SOL_SOCKET, SO_REUSEADDR,
(char *)&on, sizeof(on));
***************
*** 393,399 ****
--- 396,406 ----
exit(2);
}
+ #ifdef bsdi
+ if ((fd = accept(s, (struct sockaddr *)&from, &fromlen)) < 0) {
+ #else
if ((fd = accept(s, &from, &fromlen)) < 0) {
+ #endif
fprintf(stderr, "Error in accept: %s\n", strerror(errno));
exit(2);
}
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/bsd/login.c /usr/home/wolfgang/krb5.5/./src/appl/bsd/login.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/bsd/login.c Fri Apr 28 17:36:13 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/bsd/login.c Mon May 8 12:58:36 1995
***************
*** 1329,1335 ****
--- 1329,1339 ----
tp->c_lflag |= ECHOKE;
#endif
tp->c_iflag |= ICRNL|BRKINT;
+ #ifdef bsdi
+ tp->c_oflag |= ONLCR|OPOST /* |TAB3 */;
+ #else
tp->c_oflag |= ONLCR|OPOST|TAB3;
+ #endif
#else /* !POSIX_TERMIOS */
tp->sg_flags = ECHO|CRMOD|ANYP|XTABS;
#endif
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/gss-sample/gss-client.c /usr/home/wolfgang/krb5.5/./src/appl/gss-sample/gss-client.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/gss-sample/gss-client.c Thu Aug 18 14:05:19 1994
--- /usr/home/wolfgang/krb5.5/./src/appl/gss-sample/gss-client.c Mon May 8 15:34:43 1995
***************
*** 192,197 ****
--- 192,200 ----
saddr.sin_family = hp->h_addrtype;
memcpy((char *)&saddr.sin_addr, hp->h_addr, hp->h_length);
saddr.sin_port = htons(port);
+ #ifdef bsdi
+ saddr.sin_len = sizeof(saddr);
+ #endif
if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
perror("creating socket");
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/gss-sample/gss-server.c /usr/home/wolfgang/krb5.5/./src/appl/gss-sample/gss-server.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/gss-sample/gss-server.c Fri Apr 28 12:34:56 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/gss-sample/gss-server.c Mon May 8 15:35:07 1995
***************
*** 125,130 ****
--- 125,133 ----
saddr.sin_family = AF_INET;
saddr.sin_port = htons(port);
saddr.sin_addr.s_addr = INADDR_ANY;
+ #ifdef bsdi
+ saddr.sin_len = sizeof(saddr);
+ #endif
if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
perror("creating socket");
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/mailquery/poplib.c /usr/home/wolfgang/krb5.5/./src/appl/mailquery/poplib.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/mailquery/poplib.c Mon Mar 27 06:11:54 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/mailquery/poplib.c Mon May 8 15:35:16 1995
***************
*** 113,118 ****
--- 113,121 ----
sin.sin_family = hp->h_addrtype;
memcpy((char *)&sin.sin_addr, hp->h_addr, hp->h_length);
sin.sin_port = sp->s_port;
+ #ifdef bsdi
+ sin.sin_len = sizeof(sin);
+ #endif
#ifdef KPOP
s = socket(AF_INET, SOCK_STREAM, 0);
#else /* !KPOP */
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/movemail/movemail.c /usr/home/wolfgang/krb5.5/./src/appl/movemail/movemail.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/movemail/movemail.c Fri Mar 31 19:14:56 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/movemail/movemail.c Mon May 8 15:35:27 1995
***************
*** 577,582 ****
--- 577,585 ----
sin.sin_family = hp->h_addrtype;
memcpy((char *)&sin.sin_addr, hp->h_addr, hp->h_length);
sin.sin_port = sp->s_port;
+ #ifdef bsdi
+ sin.sin_len = sizeof(sin);
+ #endif
#ifdef KERBEROS
s = socket(AF_INET, SOCK_STREAM, 0);
#else
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/popper/pop_init.c /usr/home/wolfgang/krb5.5/./src/appl/popper/pop_init.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/popper/pop_init.c Wed May 3 00:46:35 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/popper/pop_init.c Mon May 8 15:35:35 1995
***************
*** 118,123 ****
--- 118,126 ----
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = 0;
+ #ifdef bsdi
+ sin.sin_len = sizeof(sin);
+ #endif
#ifdef KERBEROS
#ifndef KPOP_SERVICE
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/sample/sclient/sclient.c /usr/home/wolfgang/krb5.5/./src/appl/sample/sclient/sclient.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/sample/sclient/sclient.c Wed May 10 13:43:20 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/sample/sclient/sclient.c Mon May 8 15:59:39 1995
***************
*** 80,85 ****
--- 80,88 ----
if (argc == 3) {
sin.sin_family = AF_INET;
sin.sin_port = htons(atoi(argv[2]));
+ #ifdef bsdi
+ sin.sin_len = sizeof(sin);
+ #endif
} else {
/* find the port number for knetd */
sp = getservbyname(SAMPLE_PORT, "tcp");
***************
*** 92,97 ****
--- 95,103 ----
/* copy the port number */
sin.sin_port = sp->s_port;
sin.sin_family = AF_INET;
+ #ifdef bsdi
+ sin.sin_len = sizeof(sin);
+ #endif
}
/* look up the server host */
***************
*** 110,115 ****
--- 116,124 ----
/* set up the address of the foreign socket for connect() */
sin.sin_family = hp->h_addrtype;
+ #ifdef bsdi
+ sin.sin_len = sizeof(sin);
+ #endif
(void) memcpy((char *)&sin.sin_addr,
(char *)hp->h_addr,
sizeof(hp->h_addr));
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/sample/sserver/sserver.c /usr/home/wolfgang/krb5.5/./src/appl/sample/sserver/sserver.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/sample/sserver/sserver.c Tue May 9 10:57:07 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/sample/sserver/sserver.c Mon May 8 15:35:56 1995
***************
*** 69,75 ****
krb5_principal server, client;
char repbuf[BUFSIZ];
char *cname;
- int on = 1;
krb5_init_context(&context);
krb5_init_ets(context);
--- 69,74 ----
***************
*** 97,108 ****
exit(3);
}
- (void) setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
- (char *)&on, sizeof(on));
-
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = 0;
sin.sin_port = htons(atoi(argv[1]));
if (bind(sock, &sin, sizeof(sin))) {
syslog(LOG_ERR, "bind: %m");
exit(3);
--- 96,107 ----
exit(3);
}
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = 0;
sin.sin_port = htons(atoi(argv[1]));
+ #ifdef bsdi
+ sin.sin_len = sizeof(sin);
+ #endif
if (bind(sock, &sin, sizeof(sin))) {
syslog(LOG_ERR, "bind: %m");
exit(3);
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/simple/client/sim_client.c /usr/home/wolfgang/krb5.5/./src/appl/simple/client/sim_client.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/simple/client/sim_client.c Mon May 1 13:46:56 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/simple/client/sim_client.c Mon May 8 15:36:50 1995
***************
*** 113,118 ****
--- 113,121 ----
#endif
s_sock.sin_family = AF_INET;
s_sock.sin_port = serv->s_port;
+ #ifdef bsdi
+ s_sock.sin_len = sizeof(s_sock);
+ #endif
/* Open a socket */
if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
***************
*** 122,127 ****
--- 125,133 ----
memset((char *)&c_sock, 0, sizeof(c_sock));
c_sock.sin_family = AF_INET;
+ #ifdef bsdi
+ c_sock.sin_len = sizeof(c_sock);
+ #endif
/* Bind it to set the address; kernel will fill in port # */
if (bind(sock, (struct sockaddr *)&c_sock, sizeof(c_sock)) < 0) {
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/simple/server/sim_server.c /usr/home/wolfgang/krb5.5/./src/appl/simple/server/sim_server.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/simple/server/sim_server.c Mon May 1 13:47:18 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/simple/server/sim_server.c Mon May 8 15:37:08 1995
***************
*** 86,91 ****
--- 86,94 ----
/* Set up server address */
memset((char *)&s_sock, 0, sizeof(s_sock));
s_sock.sin_family = AF_INET;
+ #ifdef bsdi
+ s_sock.sin_len = sizeof(s_sock);
+ #endif
/* Look up service */
if ((serv = getservbyname(SERVICE, "udp")) == NULL) {
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/telnet/libtelnet/kerberos5.c /usr/home/wolfgang/krb5.5/./src/appl/telnet/libtelnet/kerberos5.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/telnet/libtelnet/kerberos5.c Thu May 11 22:49:49 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/telnet/libtelnet/kerberos5.c Thu Apr 27 12:53:53 1995
***************
*** 273,279 ****
/*
* keep the key in our private storage, but don't use it yet
* ---see kerberos5_reply() below
! */
if (newkey && (newkey->keytype != KEYTYPE_DES)) {
if (new_creds->keyblock.keytype == KEYTYPE_DES)
/* use the session key in credentials instead */
--- 273,279 ----
/*
* keep the key in our private storage, but don't use it yet
* ---see kerberos5_reply() below
! * /
if (newkey && (newkey->keytype != KEYTYPE_DES)) {
if (new_creds->keyblock.keytype == KEYTYPE_DES)
/* use the session key in credentials instead */
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/telnet/telnet/commands.c /usr/home/wolfgang/krb5.5/./src/appl/telnet/telnet/commands.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/telnet/telnet/commands.c Mon Nov 7 22:42:49 1994
--- /usr/home/wolfgang/krb5.5/./src/appl/telnet/telnet/commands.c Mon May 8 16:01:56 1995
***************
*** 1143,1149 ****
}
int
! setmode(bit)
int bit;
{
return dolmmode(bit, 1);
--- 1143,1149 ----
}
int
! telnet_setmode(bit)
int bit;
{
return dolmmode(bit, 1);
***************
*** 1167,1197 ****
extern int modehelp();
static struct modelist ModeList[] = {
! { "character", "Disable LINEMODE option", docharmode, 1 },
#ifdef KLUDGELINEMODE
{ "", "(or disable obsolete line-by-line mode)", 0 },
#endif
! { "line", "Enable LINEMODE option", dolinemode, 1 },
#ifdef KLUDGELINEMODE
{ "", "(or enable obsolete line-by-line mode)", 0 },
#endif
{ "", "", 0 },
{ "", "These require the LINEMODE option to be enabled", 0 },
! { "isig", "Enable signal trapping", setmode, 1, MODE_TRAPSIG },
! { "+isig", 0, setmode, 1, MODE_TRAPSIG },
! { "-isig", "Disable signal trapping", clearmode, 1, MODE_TRAPSIG },
! { "edit", "Enable character editing", setmode, 1, MODE_EDIT },
! { "+edit", 0, setmode, 1, MODE_EDIT },
! { "-edit", "Disable character editing", clearmode, 1, MODE_EDIT },
! { "softtabs", "Enable tab expansion", setmode, 1, MODE_SOFT_TAB },
! { "+softtabs", 0, setmode, 1, MODE_SOFT_TAB },
! { "-softtabs", "Disable character editing", clearmode, 1, MODE_SOFT_TAB },
! { "litecho", "Enable literal character echo", setmode, 1, MODE_LIT_ECHO },
! { "+litecho", 0, setmode, 1, MODE_LIT_ECHO },
! { "-litecho", "Disable literal character echo", clearmode, 1, MODE_LIT_ECHO },
! { "help", 0, modehelp, 0 },
#ifdef KLUDGELINEMODE
! { "kludgeline", 0, dokludgemode, 1 },
#endif
{ "", "", 0 },
{ "?", "Print help information", modehelp, 0 },
--- 1167,1197 ----
extern int modehelp();
static struct modelist ModeList[] = {
! { "character", "Disable LINEMODE option", (int (*)())docharmode, 1 },
#ifdef KLUDGELINEMODE
{ "", "(or disable obsolete line-by-line mode)", 0 },
#endif
! { "line", "Enable LINEMODE option", (int (*)())dolinemode, 1 },
#ifdef KLUDGELINEMODE
{ "", "(or enable obsolete line-by-line mode)", 0 },
#endif
{ "", "", 0 },
{ "", "These require the LINEMODE option to be enabled", 0 },
! { "isig", "Enable signal trapping", (int (*)())telnet_setmode, 1, MODE_TRAPSIG },
! { "+isig", 0, (int (*)())telnet_setmode, 1, MODE_TRAPSIG },
! { "-isig", "Disable signal trapping", (int (*)())clearmode, 1, MODE_TRAPSIG },
! { "edit", "Enable character editing", (int (*)())telnet_setmode, 1, MODE_EDIT },
! { "+edit", 0, (int (*)())telnet_setmode, 1, MODE_EDIT },
! { "-edit", "Disable character editing", (int (*)())clearmode, 1, MODE_EDIT },
! { "softtabs", "Enable tab expansion", (int (*)())telnet_setmode, 1, MODE_SOFT_TAB },
! { "+softtabs", 0, (int (*)())telnet_setmode, 1, MODE_SOFT_TAB },
! { "-softtabs", "Disable character editing", (int (*)())clearmode, 1, MODE_SOFT_TAB },
! { "litecho", "Enable literal character echo", (int (*)())telnet_setmode, 1, MODE_LIT_ECHO },
! { "+litecho", 0, (int (*)())telnet_setmode, 1, MODE_LIT_ECHO },
! { "-litecho", "Disable literal character echo", (int (*)())clearmode, 1, MODE_LIT_ECHO },
! { "help", 0, (int (*)())modehelp, 0 },
#ifdef KLUDGELINEMODE
! { "kludgeline", 0, (int (*)())dokludgemode, 1 },
#endif
{ "", "", 0 },
{ "?", "Print help information", modehelp, 0 },
***************
*** 2313,2318 ****
--- 2313,2321 ----
} else {
sin.sin_addr.s_addr = temp;
sin.sin_family = AF_INET;
+ #ifdef bsdi
+ sin.sin_len = sizeof(sin);
+ #endif
}
} else {
#endif
***************
*** 2320,2331 ****
--- 2323,2340 ----
if (temp != (unsigned long) -1) {
sin.sin_addr.s_addr = temp;
sin.sin_family = AF_INET;
+ #ifdef bsdi
+ sin.sin_len = sizeof(sin);
+ #endif
(void) strcpy(_hostname, hostp);
hostname = _hostname;
} else {
host = gethostbyname(hostp);
if (host) {
sin.sin_family = host->h_addrtype;
+ #ifdef bsdi
+ sin.sin_len = sizeof(sin);
+ #endif
#if defined(h_addr) /* In 4.3, this is a #define */
memcpy((caddr_t)&sin.sin_addr,
host->h_addr_list[0], host->h_length);
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/user_user/client.c /usr/home/wolfgang/krb5.5/./src/appl/user_user/client.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/user_user/client.c Wed May 3 00:47:23 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/user_user/client.c Mon May 8 15:38:39 1995
***************
*** 107,112 ****
--- 107,115 ----
cli_net_addr.sin_family = AF_INET;
cli_net_addr.sin_port = 0;
cli_net_addr.sin_addr.s_addr = 0;
+ #ifdef bsdi
+ cli_net_addr.sin_len = sizeof(cli_net_addr);
+ #endif
if (bind (s, (struct sockaddr *)&cli_net_addr, sizeof (cli_net_addr)) < 0)
{
com_err ("uu-client", errno, "binding socket");
***************
*** 116,121 ****
--- 119,127 ----
serv_net_addr.sin_family = AF_INET;
serv_net_addr.sin_port = port;
+ #ifdef bsdi
+ serv_net_addr.sin_len = sizeof(serv_net_addr);
+ #endif
i = 0;
while (1)
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/appl/user_user/server.c /usr/home/wolfgang/krb5.5/./src/appl/user_user/server.c
*** /n/wsrcc.com/v/src/krb5.5/./src/appl/user_user/server.c Wed Apr 26 19:14:06 1995
--- /usr/home/wolfgang/krb5.5/./src/appl/user_user/server.c Mon May 8 15:39:03 1995
***************
*** 74,79 ****
--- 74,82 ----
l_inaddr.sin_family = AF_INET;
l_inaddr.sin_addr.s_addr = 0;
+ #ifdef bsdi
+ l_inaddr.sin_len = sizeof(l_inaddr);
+ #endif
if (!(sp = getservbyname("uu-sample", "tcp"))) {
com_err("uu-server", 0, "can't find uu-sample/tcp service");
exit(3);
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/kadmin.old/client/kadmin.c /usr/home/wolfgang/krb5.5/./src/kadmin.old/client/kadmin.c
*** /n/wsrcc.com/v/src/krb5.5/./src/kadmin.old/client/kadmin.c Tue May 2 19:31:00 1995
--- /usr/home/wolfgang/krb5.5/./src/kadmin.old/client/kadmin.c Mon May 8 15:39:31 1995
***************
*** 571,576 ****
--- 571,579 ----
/* set up the address of the foreign socket for connect() */
remote_sin.sin_family = remote_host->h_addrtype;
+ #ifdef bsdi
+ remote_sin.sin_len = sizeof(remote_sin);
+ #endif
(void) memcpy((char *) &remote_sin.sin_addr,
(char *) remote_host->h_addr,
sizeof(remote_host->h_addr));
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/kadmin.old/kpasswd/kpasswd.c /usr/home/wolfgang/krb5.5/./src/kadmin.old/kpasswd/kpasswd.c
*** /n/wsrcc.com/v/src/krb5.5/./src/kadmin.old/kpasswd/kpasswd.c Mon Apr 24 18:22:26 1995
--- /usr/home/wolfgang/krb5.5/./src/kadmin.old/kpasswd/kpasswd.c Mon May 8 15:39:45 1995
***************
*** 783,788 ****
--- 783,791 ----
/* set up the address of the foreign socket for connect() */
remote_sin.sin_family = remote_host->h_addrtype;
+ #ifdef bsdi
+ remote_sin.sin_len = sizeof(remote_sin);
+ #endif
(void) memcpy((char *) &remote_sin.sin_addr,
(char *) remote_host->h_addr,
sizeof(remote_host->h_addr));
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/kadmin.old/server/adm_network.c /usr/home/wolfgang/krb5.5/./src/kadmin.old/server/adm_network.c
*** /n/wsrcc.com/v/src/krb5.5/./src/kadmin.old/server/adm_network.c Wed May 3 14:00:41 1995
--- /usr/home/wolfgang/krb5.5/./src/kadmin.old/server/adm_network.c Mon May 8 15:41:17 1995
***************
*** 201,206 ****
--- 201,210 ----
#endif /* DEBUG */
client_server_info.server_name.sin_family = AF_INET;
+ #ifdef bsdi
+ client_server_info.server_name.sin_len =
+ sizeof(client_server_info.server_name);
+ #endif
#ifdef unicos61
memcpy((char *) &client_server_info.server_name.sin_addr,
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/kadmin.v4/server/kadm_ser_wrap.c /usr/home/wolfgang/krb5.5/./src/kadmin.v4/server/kadm_ser_wrap.c
*** /n/wsrcc.com/v/src/krb5.5/./src/kadmin.v4/server/kadm_ser_wrap.c Mon Apr 24 18:25:01 1995
--- /usr/home/wolfgang/krb5.5/./src/kadmin.v4/server/kadm_ser_wrap.c Mon May 8 16:03:42 1995
***************
*** 69,74 ****
--- 69,77 ----
return KADM_NO_SERV;
memset((char *)&server_parm.admin_addr, 0,sizeof(server_parm.admin_addr));
server_parm.admin_addr.sin_family = AF_INET;
+ #ifdef bsdi
+ server_parm.admin_addr.sin_len = sizeof(server_parm.admin_addr);
+ #endif
if ((hp = gethostbyname(hostname)) == NULL)
return KADM_NO_HOSTNAME;
memcpy((char *) &server_parm.admin_addr.sin_addr.s_addr, hp->h_addr,
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/kadmin/v5server/srv_net.c /usr/home/wolfgang/krb5.5/./src/kadmin/v5server/srv_net.c
*** /n/wsrcc.com/v/src/krb5.5/./src/kadmin/v5server/srv_net.c Fri Apr 28 14:49:24 1995
--- /usr/home/wolfgang/krb5.5/./src/kadmin/v5server/srv_net.c Mon May 8 16:04:04 1995
***************
*** 458,463 ****
--- 458,466 ----
/* Now initialize our network address */
net_server_addr.sin_family = AF_INET;
+ #ifdef bsdi
+ net_server_addr.sin_len = sizeof(net_server_addr);
+ #endif
memcpy((char *) &net_server_addr.sin_addr,
(char *) our_hostent->h_addr,
sizeof(net_server_addr.sin_addr));
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/kdc/kerberos_v4.c /usr/home/wolfgang/krb5.5/./src/kdc/kerberos_v4.c
*** /n/wsrcc.com/v/src/krb5.5/./src/kdc/kerberos_v4.c Sat Mar 18 19:00:29 1995
--- /usr/home/wolfgang/krb5.5/./src/kdc/kerberos_v4.c Mon May 8 16:04:25 1995
***************
*** 420,425 ****
--- 420,428 ----
*/
client_sockaddr.sin_family = AF_INET;
client_sockaddr.sin_port = client_fulladdr->port;
+ #ifdef bsdi
+ client_sockaddr.sin_len = sizeof(client_sockaddr);
+ #endif
memcpy( &client_sockaddr.sin_addr, addr->contents,
sizeof client_sockaddr.sin_addr);
memset( client_sockaddr.sin_zero, 0, sizeof client_sockaddr.sin_zero);
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/krb524/krb524d.c /usr/home/wolfgang/krb5.5/./src/krb524/krb524d.c
*** /n/wsrcc.com/v/src/krb5.5/./src/krb524/krb524d.c Tue Feb 28 02:33:28 1995
--- /usr/home/wolfgang/krb5.5/./src/krb524/krb524d.c Mon May 8 16:04:40 1995
***************
*** 110,115 ****
--- 110,118 ----
memset((char *) &saddr, 0, sizeof(struct sockaddr_in));
saddr.sin_family = AF_INET;
saddr.sin_addr.s_addr = INADDR_ANY;
+ #ifdef bsdi
+ saddr.sin_len = sizeof(saddr);
+ #endif
serv = getservbyname(KRB524_SERVICE, "udp");
if (serv == NULL) {
com_err(whoami, 0, "service entry not found, using %d", KRB524_PORT);
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/krb524/test.c /usr/home/wolfgang/krb5.5/./src/krb524/test.c
*** /n/wsrcc.com/v/src/krb5.5/./src/krb524/test.c Tue Feb 28 02:33:30 1995
--- /usr/home/wolfgang/krb5.5/./src/krb524/test.c Mon May 8 16:04:55 1995
***************
*** 274,279 ****
--- 274,282 ----
}
memset((char *) &saddr, 0, sizeof(struct sockaddr_in));
saddr.sin_family = AF_INET;
+ #ifdef bsdi
+ saddr.sin_len = sizeof(saddr);
+ #endif
memcpy((char *) &saddr.sin_addr.s_addr, hp->h_addr,
sizeof(struct in_addr));
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/lib/kadm/adm_conn.c /usr/home/wolfgang/krb5.5/./src/lib/kadm/adm_conn.c
*** /n/wsrcc.com/v/src/krb5.5/./src/lib/kadm/adm_conn.c Fri Apr 28 12:16:52 1995
--- /usr/home/wolfgang/krb5.5/./src/lib/kadm/adm_conn.c Mon May 8 16:05:10 1995
***************
*** 265,270 ****
--- 265,273 ----
remote_host = gethostbyname(hostlist[i]);
if (remote_host != (struct hostent *) NULL) {
in_remote.sin_family = remote_host->h_addrtype;
+ #ifdef bsdi
+ in_remote.sin_len = sizeof(in_remote);
+ #endif
(void) memcpy((char *) &in_remote.sin_addr,
(char *) remote_host->h_addr,
sizeof(in_remote.sin_addr));
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/lib/krb4/dest_tkt.c /usr/home/wolfgang/krb5.5/./src/lib/krb4/dest_tkt.c
*** /n/wsrcc.com/v/src/krb5.5/./src/lib/krb4/dest_tkt.c Thu Apr 27 08:49:10 1995
--- /usr/home/wolfgang/krb5.5/./src/lib/krb4/dest_tkt.c Mon May 8 11:54:31 1995
***************
*** 22,27 ****
--- 22,31 ----
#include <sys/fcntl.h>
#endif
+ #ifndef O_SYNC
+ # define O_SYNC O_FSYNC
+ #endif
+
/*
* dest_tkt() is used to destroy the ticket store upon logout.
* If the ticket file does not exist, dest_tkt() returns RET_TKFIL.
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/lib/krb4/in_tkt.c /usr/home/wolfgang/krb5.5/./src/lib/krb4/in_tkt.c
*** /n/wsrcc.com/v/src/krb5.5/./src/lib/krb4/in_tkt.c Thu Apr 27 08:49:41 1995
--- /usr/home/wolfgang/krb5.5/./src/lib/krb4/in_tkt.c Mon May 8 11:55:14 1995
***************
*** 22,27 ****
--- 22,31 ----
#include <sys/param.h>
#endif
+ #ifndef O_SYNC
+ # define O_SYNC O_FSYNC
+ #endif
+
extern int krb_debug;
/*
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/lib/krb4/macsock.c /usr/home/wolfgang/krb5.5/./src/lib/krb4/macsock.c
*** /n/wsrcc.com/v/src/krb5.5/./src/lib/krb4/macsock.c Thu Apr 27 08:50:02 1995
--- /usr/home/wolfgang/krb5.5/./src/lib/krb4/macsock.c Mon May 8 16:05:28 1995
***************
*** 296,301 ****
--- 296,304 ----
from->sin_family = AF_INET;
from->sin_port = pb.csParam.receive.remotePort;
from->sin_addr.s_addr = pb.csParam.receive.remoteHost;
+ #ifdef bsdi
+ from->sin_len = sizeof(struct sockaddr_in);
+ #endif
if( pb.csParam.receive.rcvBuffLen ) {
pb.csCode = UDPBfrReturn;
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/lib/krb4/send_to_kdc.c /usr/home/wolfgang/krb5.5/./src/lib/krb4/send_to_kdc.c
*** /n/wsrcc.com/v/src/krb5.5/./src/lib/krb4/send_to_kdc.c Thu Apr 27 08:50:55 1995
--- /usr/home/wolfgang/krb5.5/./src/lib/krb4/send_to_kdc.c Mon May 8 16:06:08 1995
***************
*** 153,158 ****
--- 153,161 ----
memset ((char *)&from, 0, S_AD_SZ);
from.sin_family = AF_INET;
from.sin_addr.s_addr = INADDR_ANY;
+ #ifdef bsdi
+ from.sin_len = sizeof(struct sockaddr_in);
+ #endif
if ( bind(f, (struct sockaddr *)&from, S_AD_SZ) == SOCKET_ERROR ) {
DEB (("%s : Can't bind\n", prog));
retval = SKDC_CANT;
***************
*** 234,239 ****
--- 237,245 ----
#endif /* ULTRIX022 || SunOS */
host->h_addr = cp;
to.sin_family = host->h_addrtype;
+ #ifdef bsdi
+ to.sin_len = sizeof(struct sockaddr_in);
+ #endif
memcpy((char *)&to.sin_addr, host->h_addr,
host->h_length);
to.sin_port = krb_udp_port;
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/lib/krb5/krb/recvauth.c /usr/home/wolfgang/krb5.5/./src/lib/krb5/krb/recvauth.c
*** /n/wsrcc.com/v/src/krb5.5/./src/lib/krb5/krb/recvauth.c Wed May 10 14:41:05 1995
--- /usr/home/wolfgang/krb5.5/./src/lib/krb5/krb/recvauth.c Wed May 3 00:48:48 1995
***************
*** 126,137 ****
* Now we actually write the response. If the response is non-zero,
* exit with a return value of problem
*/
! /*
! * The second arg was int "*fd".
! * For some unfathomable reason a pointer to an fd is called "fd",
! * thereby causing this sort of confusion. -wsr
! */
! if ((krb5_net_write(context, fd, (char *)&response, 1)) < 0) {
return(problem); /* We'll return the top-level problem */
}
if (problem)
--- 126,132 ----
* Now we actually write the response. If the response is non-zero,
* exit with a return value of problem
*/
! if ((krb5_net_write(context, *((int *)fd), (char *)&response, 1)) < 0) {
return(problem); /* We'll return the top-level problem */
}
if (problem)
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/lib/krb5/os/locate_kdc.c /usr/home/wolfgang/krb5.5/./src/lib/krb5/os/locate_kdc.c
*** /n/wsrcc.com/v/src/krb5.5/./src/lib/krb5/os/locate_kdc.c Tue Apr 25 02:00:13 1995
--- /usr/home/wolfgang/krb5.5/./src/lib/krb5/os/locate_kdc.c Mon May 8 15:44:38 1995
***************
*** 125,130 ****
--- 125,133 ----
memset ((char *)sin_p, 0, sizeof(struct sockaddr));
sin_p->sin_family = hp->h_addrtype;
sin_p->sin_port = port ? htons(atoi(port)) : udpport;
+ #ifdef bsdi
+ sin_p->sin_len = sizeof(struct sockaddr_in);
+ #endif
memcpy((char *)&sin_p->sin_addr,
(char *)hp->h_addr_list[j],
sizeof(struct in_addr));
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/lib/krb5/os/macsock.c /usr/home/wolfgang/krb5.5/./src/lib/krb5/os/macsock.c
*** /n/wsrcc.com/v/src/krb5.5/./src/lib/krb5/os/macsock.c Mon Mar 27 14:19:22 1995
--- /usr/home/wolfgang/krb5.5/./src/lib/krb5/os/macsock.c Mon May 8 15:45:16 1995
***************
*** 144,149 ****
--- 144,152 ----
theUDP->connect_addr.sin_family = 0;
theUDP->connect_addr.sin_port = 0;
theUDP->connect_addr.sin_addr.s_addr = 0;
+ #ifdef bsdi
+ theUDP->connect_addr.sin_len = sizeof(stuct sockaddr_in);
+ #endif
return theUDP;
}
***************
*** 303,308 ****
--- 306,314 ----
from->sin_family = AF_INET;
from->sin_port = pb.csParam.receive.remotePort;
from->sin_addr.s_addr = pb.csParam.receive.remoteHost;
+ #ifdef bsdi
+ from->sin_len = sizeof(struct sockaddr_in);
+ #endif
if( pb.csParam.receive.rcvBuffLen ) {
pb.csCode = UDPBfrReturn;
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/slave/kprop.c /usr/home/wolfgang/krb5.5/./src/slave/kprop.c
*** /n/wsrcc.com/v/src/krb5.5/./src/slave/kprop.c Mon Mar 27 06:50:27 1995
--- /usr/home/wolfgang/krb5.5/./src/slave/kprop.c Mon May 8 15:45:47 1995
***************
*** 316,321 ****
--- 316,324 ----
sin.sin_family = hp->h_addrtype;
memcpy((char *)&sin.sin_addr, hp->h_addr, hp->h_length);
sin.sin_port = sp->s_port;
+ #ifdef bsdi
+ sin.sin_len = sizeof(sin);
+ #endif
s = socket(AF_INET, SOCK_STREAM, 0);
if (s < 0) {
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/slave/kpropd.c /usr/home/wolfgang/krb5.5/./src/slave/kpropd.c
*** /n/wsrcc.com/v/src/krb5.5/./src/slave/kpropd.c Wed May 3 00:49:10 1995
--- /usr/home/wolfgang/krb5.5/./src/slave/kpropd.c Mon May 8 15:45:55 1995
***************
*** 153,158 ****
--- 153,161 ----
memset((char *) &sin,0, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_port = sp->s_port;
+ #ifdef bsdi
+ sin.sin_len = sizeof(sin);
+ #endif
if ((ret = bind(finet, (struct sockaddr *) &sin, sizeof(sin))) < 0) {
if (debug) {
int on = 1;
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/windows/gss/gss-clie.c /usr/home/wolfgang/krb5.5/./src/windows/gss/gss-clie.c
*** /n/wsrcc.com/v/src/krb5.5/./src/windows/gss/gss-clie.c Fri Apr 28 17:08:59 1995
--- /usr/home/wolfgang/krb5.5/./src/windows/gss/gss-clie.c Mon May 8 15:46:04 1995
***************
*** 160,165 ****
--- 160,168 ----
saddr.sin_family = hp->h_addrtype;
memcpy((char *)&saddr.sin_addr, hp->h_addr, hp->h_length);
saddr.sin_port = htons(port);
+ #ifdef bsdi
+ saddr.sin_len = sizeof(sin);
+ #endif
if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
my_perror("creating socket");
diff -rc /n/wsrcc.com/v/src/krb5.5/./src/windows/wintel/telnet.c /usr/home/wolfgang/krb5.5/./src/windows/wintel/telnet.c
*** /n/wsrcc.com/v/src/krb5.5/./src/windows/wintel/telnet.c Thu Apr 27 13:14:19 1995
--- /usr/home/wolfgang/krb5.5/./src/windows/wintel/telnet.c Mon May 8 15:46:57 1995
***************
*** 409,415 ****
remote_addr.sin_addr.S_un.S_un_b.s_b3 = remote_host->h_addr[2];
remote_addr.sin_addr.S_un.S_un_b.s_b4 = remote_host->h_addr[3];
remote_addr.sin_port = htons(port_no);
!
connect(con->socket, (struct sockaddr *) &remote_addr,
sizeof(struct sockaddr));
break;
--- 409,417 ----
remote_addr.sin_addr.S_un.S_un_b.s_b3 = remote_host->h_addr[2];
remote_addr.sin_addr.S_un.S_un_b.s_b4 = remote_host->h_addr[3];
remote_addr.sin_port = htons(port_no);
! #ifdef bsdi
! remote_addr.sin_len = sizeof(remote_addr);
! #endif
connect(con->socket, (struct sockaddr *) &remote_addr,
sizeof(struct sockaddr));
break;
***************
*** 584,589 ****
--- 586,594 ----
sockaddr.sin_family = AF_INET;
sockaddr.sin_addr.s_addr = htonl(INADDR_ANY);
sockaddr.sin_port = htons(0);
+ #ifdef bsdi
+ sockaddr.sin_len = sizeof(sockaddr);
+ #endif
ret = bind(con->socket, (struct sockaddr *) &sockaddr,
(int) sizeof(struct sockaddr_in));
#
--
Wolfgang Rupprecht <wolfgang@wsrcc.com> <http://www.wsrcc.com/>