summaryrefslogtreecommitdiff
path: root/libguile/socket.c
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2015-11-13 11:38:13 -0500
committerAndy Wingo <wingo@pobox.com>2016-05-22 19:52:36 +0200
commit7d7e4bc6c0e9a109eafc68ae7e5494f6a1dcaab9 (patch)
treee1b91ee1dc3b8fd28932a037b31ed5524318d386 /libguile/socket.c
parentcfd4401a2ca723a6984e1ba2739e064bdca76199 (diff)
Fix getsockopt/setsockopt handling of SO_SNDBUF/SO_RCVBUF options.
Reported by Park SungMin <byulparan_eng@icloud.com> in <https://lists.gnu.org/archive/html/guile-user/2015-11/msg00026.html>. * libguile/socket.c (scm_getsockopt, scm_setsockopt): Remove code that incorrectly assumed that the argument for SO_SNDBUF and SO_RCVBUF options was of type 'size_t'. Both the Linux and POSIX documentation indicates that the argument is of type 'int', as is the case for most options.
Diffstat (limited to 'libguile/socket.c')
-rw-r--r--libguile/socket.c30
1 files changed, 2 insertions, 28 deletions
diff --git a/libguile/socket.c b/libguile/socket.c
index 2a9be5471..a6f1e5fca 100644
--- a/libguile/socket.c
+++ b/libguile/socket.c
@@ -1,5 +1,5 @@
-/* Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005,
- * 2006, 2007, 2009, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1998, 2000-2007, 2009, 2011-2015
+ * Free Software Foundation, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
@@ -508,19 +508,7 @@ SCM_DEFINE (scm_getsockopt, "getsockopt", 3, 0, 0,
scm_from_int (0));
#endif
}
- else
#endif
- if (0
-#ifdef SO_SNDBUF
- || ioptname == SO_SNDBUF
-#endif
-#ifdef SO_RCVBUF
- || ioptname == SO_RCVBUF
-#endif
- )
- {
- return scm_from_size_t (*(size_t *) &optval);
- }
}
return scm_from_int (*(int *) &optval);
}
@@ -649,21 +637,7 @@ SCM_DEFINE (scm_setsockopt, "setsockopt", 4, 0, 0,
optval = &opt_int;
#endif
}
- else
#endif
- if (0
-#ifdef SO_SNDBUF
- || ioptname == SO_SNDBUF
-#endif
-#ifdef SO_RCVBUF
- || ioptname == SO_RCVBUF
-#endif
- )
- {
- opt_int = scm_to_int (value);
- optlen = sizeof (size_t);
- optval = &opt_int;
- }
}
#ifdef HAVE_STRUCT_IP_MREQ