Added configure check for the unix domain sockaddr length.

diff --git a/server/request.c b/server/request.c
index b7a5161..3fb7f7b 100644
--- a/server/request.c
+++ b/server/request.c
@@ -345,13 +345,17 @@
 void open_master_socket(void)
 {
     struct sockaddr_un addr;
-    int fd;
+    int fd, slen;
 
     create_server_dir();
     if ((fd = socket( AF_UNIX, SOCK_STREAM, 0 )) == -1) fatal_perror( "socket" );
     addr.sun_family = AF_UNIX;
-    strcpy( addr.sun_path, "socket" );
-    if (bind( fd, &addr, sizeof(addr.sun_family) + strlen(addr.sun_path) ) == -1)
+    strcpy( addr.sun_path, SOCKETNAME );
+    slen = sizeof(addr) - sizeof(addr.sun_path) + strlen(addr.sun_path) + 1;
+#ifdef HAVE_SOCKADDR_SUN_LEN
+    addr.sun_len = slen;
+#endif
+    if (bind( fd, (struct sockaddr *)&addr, slen ) == -1)
     {
         if ((errno == EEXIST) || (errno == EADDRINUSE))
             fatal_error( "another server is already running\n" );
@@ -360,7 +364,7 @@
     }
     atexit( socket_cleanup );
 
-    chmod( "socket", 0600 );  /* make sure no other user can connect */
+    chmod( SOCKETNAME, 0600 );  /* make sure no other user can connect */
     if (listen( fd, 5 ) == -1) fatal_perror( "listen" );
 
     if (!(master_socket = alloc_object( &master_socket_ops, fd )))