-@node sb-bsd-sockets
-@section sb-bsd-sockets
+@node Networking
+@comment node-name, next, previous, up
+@chapter Networking
@cindex Sockets, Networking
-The @code{sb-bsd-sockets} module provides a thinly disguised BSD socket
-API for SBCL. Ideas stolen from the BSD socket API for C and Graham
-Barr's IO::Socket classes for Perl.
+The @code{sb-bsd-sockets} module provides a thinly disguised BSD
+socket API for SBCL. Ideas have been stolen from the BSD socket API
+for C and Graham Barr's IO::Socket classes for Perl.
Sockets are represented as CLOS objects, and the API naming
conventions attempt to balance between the BSD names and good lisp style.
@end menu
@node Sockets Overview
-@subsection Sockets Overview
+@section Sockets Overview
Most of the functions are modelled on the BSD socket API. BSD sockets
are widely supported, portably @emph{(``portable'' by Unix standards, at least)}
@end itemize
@node General Sockets
-@subsection General Sockets
+@section General Sockets
@include class-sb-bsd-sockets-socket.texinfo
@include fun-sb-bsd-sockets-socket-receive.texinfo
+@include fun-sb-bsd-sockets-socket-send.texinfo
+
@include fun-sb-bsd-sockets-socket-listen.texinfo
+@include fun-sb-bsd-sockets-socket-open-p.texinfo
+
@include fun-sb-bsd-sockets-socket-close.texinfo
@include fun-sb-bsd-sockets-socket-make-stream.texinfo
@include fun-sb-bsd-sockets-non-blocking-mode.texinfo
@node Socket Options
-@subsection Socket Options
+@section Socket Options
A subset of socket options are supported, using a fairly general
framework which should make it simple to add more as required - see
@include fun-sb-bsd-sockets-sockopt-tcp-nodelay.texinfo
@node INET Domain Sockets
-@subsection INET Domain Sockets
+@section INET Domain Sockets
The TCP and UDP sockets that you know and love. Some representation
issues:
@include fun-sb-bsd-sockets-get-protocol-by-name.texinfo
@node Local (Unix) Domain Sockets
-@subsection Local (Unix) Domain Sockets
+@section Local (Unix) Domain Sockets
Local domain (@code{AF_LOCAL}) sockets are also known as Unix-domain
sockets, but were renamed by POSIX presumably on the basis that they
@include class-sb-bsd-sockets-local-socket.texinfo
@node Name Service
-@subsection Name Service
-
-Presently name service is implemented by calling whatever
-@code{gethostbyname(2)} uses. This may be any or all of
-@file{/etc/hosts}, NIS, DNS, or something completely different.
-Typically it's controlled by @file{/etc/nsswitch.conf}.
-
-Direct links to the asynchronous @code{resolver(3)} routines would be
-nice to have eventually, so that we can do DNS lookups in parallel
-with other things
+@section Name Service
+
+Presently name service is implemented by calling out to the
+@code{getaddrinfo(3)} and @code{gethostinfo(3)}, or to
+@code{gethostbyname(3)} @code{gethostbyaddr(3)} on platforms where
+the preferred functions are not available. The exact details of
+the name resolving process (for example the choice of whether
+DNS or a hosts file is used for lookup) are platform dependent.
+
+@c Direct links to the asynchronous @code{resolver(3)} routines would be
+@c nice to have eventually, so that we can do DNS lookups in parallel
+@c with other things.
@include class-sb-bsd-sockets-host-ent.texinfo
@include fun-sb-bsd-sockets-get-host-by-address.texinfo
@include fun-sb-bsd-sockets-host-ent-address.texinfo
-
-@include fun-sb-bsd-sockets-name-service-error.texinfo