aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim F. Storm2006-01-04 00:20:08 +0000
committerKim F. Storm2006-01-04 00:20:08 +0000
commitb944a155cfeeb822c27cb31cfed4eb96e6eb50fb (patch)
treee4d9c0638a3fef0d2d59a24ef84e7414925b1cc4
parente1652a86127e201a0e867a62545ec53de7376f3b (diff)
downloademacs-b944a155cfeeb822c27cb31cfed4eb96e6eb50fb.tar.gz
emacs-b944a155cfeeb822c27cb31cfed4eb96e6eb50fb.zip
(Make Network): Add IPv6 addresses and handling.
(Network Feature Testing): Mention (:family ipv6). (Misc Network): Add IPv6 formats to format-network-address.
-rw-r--r--lispref/processes.texi34
1 files changed, 26 insertions, 8 deletions
diff --git a/lispref/processes.texi b/lispref/processes.texi
index 624fd5f912f..735a253259d 100644
--- a/lispref/processes.texi
+++ b/lispref/processes.texi
@@ -1782,8 +1782,10 @@ the system select an unused port number.
1782 1782
1783@item :family @var{family} 1783@item :family @var{family}
1784@var{family} specifies the address (and protocol) family for 1784@var{family} specifies the address (and protocol) family for
1785communication. @code{nil} stands for IPv4. @code{local} specifies a 1785communication. @code{nil} stands for automatically determine a the
1786Unix socket, in which case @var{host} is ignored. 1786proper address family for the given @var{host} and @var{service}.
1787@code{local} specifies a Unix socket, in which case @var{host} is ignored.
1788@code{ipv4} and @code{ipv6} specify to use IPv4 and IPv6 respectively.
1787 1789
1788@item :local @var{local-address} 1790@item :local @var{local-address}
1789For a server process, @var{local-address} is the address to listen on. 1791For a server process, @var{local-address} is the address to listen on.
@@ -1803,9 +1805,18 @@ the address family:
1803 1805
1804@itemize - 1806@itemize -
1805@item 1807@item
1806An IPv4 address is represented as a vector of integers @code{[@var{a} 1808An IPv4 address is represented as a five-element vector of four 8-bit
1807@var{b} @var{c} @var{d} @var{p}]} corresponding to numeric IP address 1809integers and one 16-bit integer
1808@var{a}.@var{b}.@var{c}.@var{d} and port number @var{p}. 1810@code{[@var{a} @var{b} @var{c} @var{d} @var{p}]} corresponding to
1811numeric IPv4 address @var{a}.@var{b}.@var{c}.@var{d} and port number
1812@var{p}.
1813
1814@item
1815An IPv6 address is represented as a nine-element vector of 16-bit
1816integers @code{[@var{a} @var{b} @var{c} @var{d} @var{e} @var{f}
1817@var{g} @var{h} @var{p}]} corresponding to numeric IPv6 address
1818@var{a}:@var{b}:@var{c}:@var{d}:@var{e}:@var{f}:@var{g}:@var{h} and
1819port number @var{p}.
1809 1820
1810@item 1821@item
1811A local address is represented as a string which specifies the address 1822A local address is represented as a string which specifies the address
@@ -1979,6 +1990,8 @@ Non-@code{nil} if non-blocking connect is supported.
1979Non-@code{nil} if datagrams are supported. 1990Non-@code{nil} if datagrams are supported.
1980@item (:family local) 1991@item (:family local)
1981Non-@code{nil} if local (aka ``UNIX domain'') sockets are supported. 1992Non-@code{nil} if local (aka ``UNIX domain'') sockets are supported.
1993@item (:family ipv6)
1994Non-@code{nil} if IPv6 is supported.
1982@item (:service t) 1995@item (:service t)
1983Non-@code{nil} if the system can select the port for a server. 1996Non-@code{nil} if the system can select the port for a server.
1984@end table 1997@end table
@@ -2041,14 +2054,19 @@ The current flags of the interface.
2041 2054
2042@defun format-network-address address &optional omit-port 2055@defun format-network-address address &optional omit-port
2043This function converts the Lisp representation of a network address to 2056This function converts the Lisp representation of a network address to
2044a string. For example, a five-element vector @code{[@var{a} @var{b} 2057a string.
2045@var{c} @var{d} @var{p}]} represents an IP address 2058 A five-element vector @code{[@var{a} @var{b}
2059@var{c} @var{d} @var{p}]} represents an IPv4 address
2046@var{a}.@var{b}.@var{c}.@var{d} and port number @var{p}. 2060@var{a}.@var{b}.@var{c}.@var{d} and port number @var{p}.
2047@code{format-network-address} converts that to the string 2061@code{format-network-address} converts that to the string
2048@code{"@var{a}.@var{b}.@var{c}.@var{d}:@var{p}"}. 2062@code{"@var{a}.@var{b}.@var{c}.@var{d}:@var{p}"}.
2063 A nine-element vector @code{[@var{a} @var{b} @var{c} @var{d} @var{e}
2064@var{f} @var{g} @var{h} @var{p}]} represents an IPv6 address and port
2065number. @code{format-network-address} converts that to the string
2066@code{"[@var{a}:@var{b}:@var{c}:@var{d}:@var{e}:@var{f}:@var{g}:@var{h}]:@var{p}"}.
2049 2067
2050If @var{omit-port} is non-@code{nil}, the value does not include 2068If @var{omit-port} is non-@code{nil}, the value does not include
2051the port number. 2069the port number, or the port number is ignored if it does.
2052@end defun 2070@end defun
2053 2071
2054@node Byte Packing 2072@node Byte Packing