--- newchannels.c.orig Fri Apr 9 02:02:31 1999 +++ newchannels.c Fri Apr 9 02:28:42 1999 @@ -271,6 +271,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" @@ -1874,6 +1879,9 @@ if (gethostname(hostname, sizeof(hostname)) < 0) fatal("gethostname: %.100s", strerror(errno)); sprintf(buf, "%.400s:%d.%d", hostname, display_number, screen_number); +#if __FreeBSD_version >= 400004 + trimdomain(buf, UT_HOSTSIZE); +#endif #else /* HAVE_GETHOSTNAME */ if (uname(&uts) < 0) fatal("uname: %s", strerror(errno)); @@ -2139,6 +2139,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));