summaryrefslogtreecommitdiff
path: root/libguile/socket.c
diff options
context:
space:
mode:
authorNoah Lavine <nlavine@haverford.edu>2011-02-13 15:31:32 -0500
committerAndy Wingo <wingo@pobox.com>2011-02-13 22:08:44 +0100
commit482d311b3945a2b7133888b18f1fd18e472f8ce8 (patch)
treeca67080bc2d4322c15e75b77edabd2da4adfc43a /libguile/socket.c
parente8ab529d57e2c3820e567737bd53c6e05e484c4d (diff)
downloadguile-482d311b3945a2b7133888b18f1fd18e472f8ce8.tar.gz
Set sockaddr_in.sin_len field when it exists.
* configure.ac: Detect when struct sockaddr_in has a sin_len field. Remove obsolete comment. * libguile/socket.c (scm_to_sockaddr, scm_fill_sockaddr): Set the sin_len field in our struct sockaddr_in when it exists.
Diffstat (limited to 'libguile/socket.c')
-rw-r--r--libguile/socket.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libguile/socket.c b/libguile/socket.c
index d8ab005f5..10597081d 100644
--- a/libguile/socket.c
+++ b/libguile/socket.c
@@ -798,7 +798,7 @@ scm_fill_sockaddr (int fam, SCM address, SCM *args, int which_arg,
soka = (struct sockaddr_in *) scm_malloc (sizeof (struct sockaddr_in));
memset (soka, '\0', sizeof (struct sockaddr_in));
-#ifdef HAVE_STRUCT_SOCKADDR_SIN_LEN
+#ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
soka->sin_len = sizeof (struct sockaddr_in);
#endif
soka->sin_family = AF_INET;
@@ -1134,6 +1134,10 @@ scm_to_sockaddr (SCM address, size_t *address_size)
memset (&c_inet, '\0', sizeof (struct sockaddr_in));
+#ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
+ c_inet.sin_len = sizeof (struct sockaddr_in);
+#endif
+
c_inet.sin_addr.s_addr =
htonl (scm_to_ulong (SCM_SIMPLE_VECTOR_REF (address, 1)));
c_inet.sin_port =