summaryrefslogtreecommitdiff
path: root/hurd/networking.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'hurd/networking.mdwn')
-rw-r--r--hurd/networking.mdwn17
1 files changed, 12 insertions, 5 deletions
diff --git a/hurd/networking.mdwn b/hurd/networking.mdwn
index bdf9def2..2f13813a 100644
--- a/hurd/networking.mdwn
+++ b/hurd/networking.mdwn
@@ -9,11 +9,18 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]
-For each supported `PF_*` protocol family, there is a file `/servers/socket/N`
-where `N` is the numberic value fo the `PF_*` symbol. Right now
-[[`PF_LOCAL`|translator/pflocal]] (a.k.a. `PF_UNIX`) and
-[[`PF_INET`|translator/pfinet]] (together with
-[[`PF_INET6`|translator/pfinet/ipv6]]) are supported.
+For each supported `PF_*` protocol family (domain), there is a file `/servers/socket/N`
+where `N` is the numeric value for the `PF_*` symbol. libc's `socket()`,
+`socketpair()` and friends use `_hurd_socket_server` to open them: the latter
+computes the `/servers/socket/N` path, then opens it with `__file_name_lookup`,
+and returns the result. Since those paths are translated (see showtrans on
+`/servers/socket/N`), it's a port to a translator which is returned. Right now
+[[`PF_LOCAL`|translator/pflocal]] (a.k.a. `PF_UNIX` or `AF_UNIX`) `N=1`,
+[[`PF_INET`|translator/pfinet]] (a.k.a `AF_INET`) `N=2` and
+[[`PF_INET6`|translator/pfinet/ipv6]] (a.k.a `AF_INET6`) `N=26` are supported.
+
+In case of problems to find out which server is called rpctrace can be of use:
+search for the output `dir_lookup ("servers/socket/N" ...)`
User programs open those files, and use the `socket_create` [[RPC]] to make a
new socket. With that socket, they can use the other `socket_*` RPCs and also