[5154] in Kerberos

home help back first fref pref prev next nref lref last post

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/>

home help back first fref pref prev next nref lref last post