From 0f9cd17271a616be1c8a1fef3697bcec96c17694 Mon Sep 17 00:00:00 2001 From: jjgarcia Date: Mon, 14 Feb 2005 11:11:37 +0000 Subject: [PATCH] BSD systems have an extra field sun_len in the sockaddr type which must be filled. Linux systems lack this field. --- contrib/sockets/sockets.lisp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/contrib/sockets/sockets.lisp b/contrib/sockets/sockets.lisp index 6b521897e..206a0c81d 100644 --- a/contrib/sockets/sockets.lisp +++ b/contrib/sockets/sockets.lisp @@ -617,10 +617,9 @@ also known as unix-domain sockets.")) struct sockaddr_un sockaddr; size_t size; - /* This does not seem to be needed and the field does not exist - * in linux: +#ifdef BSD sockaddr.sun_len = sizeof(struct sockaddr_un); - */ +#endif sockaddr.sun_family = #2; strncpy(&sockaddr.sun_path,#1,sizeof(sockaddr.sun_path)); sockaddr.sun_path[sizeof(sockaddr.sun_path)-1] = '\0'; @@ -672,10 +671,9 @@ static cl_object do_accept_un(cl_object cl_socket_fd) { struct sockaddr_un sockaddr; - /* This does not seem to be needed and the field does not exist - * in linux: +#ifdef BSD sockaddr.sun_len = sizeof(struct sockaddr_un); - */ +#endif sockaddr.sun_family = #1; strncpy(&sockaddr.sun_path,#2,sizeof(sockaddr.sun_path)); sockaddr.sun_path[sizeof(sockaddr.sun_path)-1] = '\0';