--- newchannels.c.orig Wed May 12 12:19:27 1999 +++ newchannels.c Fri Jun 18 12:10:26 1999 @@ -282,6 +282,11 @@ #endif /* NEED_SYS_SYSLOG_H */ #endif /* LIBWRAP */ +#ifdef __FreeBSD__ +#include +#include +#endif + /* Directory in which the fake unix-domain X11 displays reside. */ #ifndef X11_DIR #define X11_DIR "/tmp/.X11-unix" @@ -1891,6 +1896,9 @@ fatal("gethostname: %.100s", strerror(errno)); snprintf(buf, sizeof(buf), "%.400s:%d.%d", hostname, display_number, screen_number); +#if __FreeBSD_version >= 320000 + trimdomain(buf, UT_HOSTSIZE); +#endif #else /* HAVE_GETHOSTNAME */ if (uname(&uts) < 0) fatal("uname: %.100s", strerror(errno)); @@ -2412,6 +2420,10 @@ ssh-agent connections on your system */ old_umask = umask(S_IRUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH); + /* Make sure the socket doesn't already exist, left over from a system + crash perhaps. */ + unlink(channel_forwarded_auth_socket_name); + if (bind(sock, (struct sockaddr *)&sunaddr, AF_UNIX_SIZE(sunaddr)) < 0) packet_disconnect("Agent socket bind failed: %.100s", strerror(errno));