diff options
author | Ludovic Courtès <ludo@gnu.org> | 2022-07-04 11:49:31 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-07-04 11:49:31 +0200 |
commit | abd39f3328439c0c3d42296a895d54df448448b1 (patch) | |
tree | 2825ee397cdfd8ae100556f7cc6f664844a78ae3 | |
parent | 6da4be170ac40c8e86123d0e0d0907cb61e64872 (diff) | |
download | guile-abd39f3328439c0c3d42296a895d54df448448b1.tar.gz |
Define IPPROTO_IPV6 and IPV6_V6ONLY.
* libguile/socket.c (scm_init_socket): Define IPPROTO_IPV6 and IPV6_V6ONLY.
* doc/ref/posix.texi (Network Sockets and Communication): Document them.
-rw-r--r-- | doc/ref/posix.texi | 11 | ||||
-rw-r--r-- | libguile/socket.c | 7 |
2 files changed, 18 insertions, 0 deletions
diff --git a/doc/ref/posix.texi b/doc/ref/posix.texi index 50085cd80..19911a427 100644 --- a/doc/ref/posix.texi +++ b/doc/ref/posix.texi @@ -3202,6 +3202,7 @@ Databases}). @defvar SOL_SOCKET @defvarx IPPROTO_IP +@defvarx IPPROTO_IPV6 @defvarx IPPROTO_TCP @defvarx IPPROTO_UDP @end defvar @@ -3266,6 +3267,16 @@ the interface @var{INTERFACEADDR}. @var{INTERFACEADDR} can be @var{INTERFACEADDR} can also be an interface index number, on systems supporting that. @end defvar + +Last, for IPv6 level (@code{IPPROTO_IPV6}), the following @var{optname}s +are defined. See @command{man 7 ipv6} for details. + +@defvar IPV6_V6ONLY +Determines whether an @code{AF_INET6} socket is restricted to +transmitting IPv6 packets only, or whether it can also transmit packets +for an IPv4-mapped IPv6 address. +@end defvar + @end deffn For @code{IPPROTO_TCP} level the following @var{optname}s are defined diff --git a/libguile/socket.c b/libguile/socket.c index 3d5b89e63..b3482c8f3 100644 --- a/libguile/socket.c +++ b/libguile/socket.c @@ -1712,6 +1712,9 @@ scm_init_socket () #ifdef IPPROTO_IP scm_c_define ("IPPROTO_IP", scm_from_int (IPPROTO_IP)); #endif +#ifdef IPPROTO_IPV6 + scm_c_define ("IPPROTO_IPV6", scm_from_int (IPPROTO_IPV6)); +#endif #ifdef IPPROTO_TCP scm_c_define ("IPPROTO_TCP", scm_from_int (IPPROTO_TCP)); #endif @@ -1801,6 +1804,10 @@ scm_init_socket () scm_c_define ("IP_MULTICAST_IF", scm_from_int ( IP_MULTICAST_IF)); #endif +#ifdef IPV6_V6ONLY + scm_c_define ("IPV6_V6ONLY", scm_from_int (IPV6_V6ONLY)); +#endif + scm_add_feature ("socket"); #include "socket.x" |