OSDN Git Service

(split) LDP: Update original to LDP v3.64
[linuxjm/LDP_man-pages.git] / po4a / net / po / net.pot
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 #, fuzzy
7 msgid ""
8 msgstr ""
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "POT-Creation-Date: 2014-04-13 10:27+0900\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
14 "Language: \n"
15 "MIME-Version: 1.0\n"
16 "Content-Type: text/plain; charset=UTF-8\n"
17 "Content-Transfer-Encoding: 8bit\n"
18
19 #. type: TH
20 #: build/C/man7/arp.7:13
21 #, no-wrap
22 msgid "ARP"
23 msgstr ""
24
25 #. type: TH
26 #: build/C/man7/arp.7:13
27 #, no-wrap
28 msgid "2008-11-25"
29 msgstr ""
30
31 #. type: TH
32 #: build/C/man7/arp.7:13 build/C/man3/cmsg.3:11 build/C/man7/ddp.7:12 build/C/man5/gai.conf.5:19 build/C/man1/getent.1:24 build/C/man3/getipnodebyname.3:26 build/C/man2/getpeername.2:42 build/C/man5/host.conf.5:26 build/C/man7/hostname.7:39 build/C/man5/hosts.5:27 build/C/man5/hosts.equiv.5:6 build/C/man7/icmp.7:12 build/C/man3/inet_ntop.3:26 build/C/man3/inet_pton.3:27 build/C/man7/ip.7:36 build/C/man7/ipv6.7:86 build/C/man7/netdevice.7:18 build/C/man5/nss.5:19 build/C/man5/nsswitch.conf.5:25 build/C/man7/packet.7:12 build/C/man5/protocols.5:29 build/C/man7/raw.7:13 build/C/man3/rcmd.3:43 build/C/man3/rexec.3:41 build/C/man5/services.5:34 build/C/man2/shutdown.2:40 build/C/man7/tcp.7:76 build/C/man7/udp.7:12 build/C/man7/udplite.7:27 build/C/man7/unix.7:18 build/C/man7/x25.7:12
33 #, no-wrap
34 msgid "Linux"
35 msgstr ""
36
37 #. type: TH
38 #: build/C/man7/arp.7:13 build/C/man3/byteorder.3:32 build/C/man3/cmsg.3:11 build/C/man7/ddp.7:12 build/C/man3/endian.3:28 build/C/man3/ether_aton.3:31 build/C/man5/gai.conf.5:19 build/C/man3/getaddrinfo.3:43 build/C/man3/getaddrinfo_a.3:29 build/C/man3/gethostbyname.3:38 build/C/man3/getipnodebyname.3:26 build/C/man3/getnameinfo.3:10 build/C/man3/getnetent.3:30 build/C/man3/getnetent_r.3:26 build/C/man2/getpeername.2:42 build/C/man3/getprotoent.3:30 build/C/man3/getprotoent_r.3:26 build/C/man3/getservent.3:34 build/C/man3/getservent_r.3:26 build/C/man7/hostname.7:39 build/C/man5/hosts.5:27 build/C/man5/hosts.equiv.5:6 build/C/man7/icmp.7:12 build/C/man3/inet.3:42 build/C/man3/inet_ntop.3:26 build/C/man3/inet_pton.3:27 build/C/man7/ip.7:36 build/C/man7/ipv6.7:86 build/C/man7/netdevice.7:18 build/C/man8/nscd.8:23 build/C/man5/nscd.conf.5:20 build/C/man5/nss.5:19 build/C/man5/nsswitch.conf.5:25 build/C/man7/packet.7:12 build/C/man5/protocols.5:29 build/C/man7/raw.7:13 build/C/man3/rcmd.3:43 build/C/man5/resolv.conf.5:23 build/C/man3/resolver.3:32 build/C/man3/rexec.3:41 build/C/man5/services.5:34 build/C/man3/setnetgrent.3:10 build/C/man2/shutdown.2:40 build/C/man7/tcp.7:76 build/C/man7/udp.7:12 build/C/man7/udplite.7:27 build/C/man7/unix.7:18 build/C/man7/x25.7:12
39 #, no-wrap
40 msgid "Linux Programmer's Manual"
41 msgstr ""
42
43 #. type: SH
44 #: build/C/man7/arp.7:14 build/C/man3/byteorder.3:33 build/C/man3/cmsg.3:12 build/C/man7/ddp.7:13 build/C/man3/endian.3:29 build/C/man3/ether_aton.3:32 build/C/man5/gai.conf.5:20 build/C/man3/getaddrinfo.3:44 build/C/man3/getaddrinfo_a.3:30 build/C/man1/getent.1:25 build/C/man3/gethostbyname.3:39 build/C/man3/getipnodebyname.3:27 build/C/man3/getnameinfo.3:11 build/C/man3/getnetent.3:31 build/C/man3/getnetent_r.3:27 build/C/man2/getpeername.2:43 build/C/man3/getprotoent.3:31 build/C/man3/getprotoent_r.3:27 build/C/man3/getservent.3:35 build/C/man3/getservent_r.3:27 build/C/man5/host.conf.5:27 build/C/man7/hostname.7:40 build/C/man5/hosts.5:28 build/C/man5/hosts.equiv.5:7 build/C/man7/icmp.7:13 build/C/man3/inet.3:43 build/C/man3/inet_ntop.3:27 build/C/man3/inet_pton.3:28 build/C/man7/ip.7:37 build/C/man7/ipv6.7:87 build/C/man7/netdevice.7:19 build/C/man5/networks.5:27 build/C/man8/nscd.8:24 build/C/man5/nscd.conf.5:21 build/C/man5/nss.5:20 build/C/man5/nsswitch.conf.5:26 build/C/man7/packet.7:13 build/C/man5/protocols.5:30 build/C/man7/raw.7:14 build/C/man3/rcmd.3:44 build/C/man5/resolv.conf.5:25 build/C/man3/resolver.3:33 build/C/man3/rexec.3:42 build/C/man5/services.5:35 build/C/man3/setnetgrent.3:11 build/C/man2/shutdown.2:41 build/C/man7/tcp.7:77 build/C/man7/udp.7:13 build/C/man7/udplite.7:28 build/C/man7/unix.7:19 build/C/man7/x25.7:13
45 #, no-wrap
46 msgid "NAME"
47 msgstr ""
48
49 #. type: Plain text
50 #: build/C/man7/arp.7:16
51 msgid "arp - Linux ARP kernel module."
52 msgstr ""
53
54 #. type: SH
55 #: build/C/man7/arp.7:16 build/C/man3/byteorder.3:48 build/C/man3/cmsg.3:37 build/C/man7/ddp.7:23 build/C/man3/endian.3:53 build/C/man3/ether_aton.3:57 build/C/man5/gai.conf.5:22 build/C/man3/getaddrinfo.3:75 build/C/man3/getaddrinfo_a.3:50 build/C/man1/getent.1:30 build/C/man3/gethostbyname.3:129 build/C/man3/getipnodebyname.3:44 build/C/man3/getnameinfo.3:32 build/C/man3/getnetent.3:48 build/C/man3/getnetent_r.3:62 build/C/man2/getpeername.2:50 build/C/man3/getprotoent.3:48 build/C/man3/getprotoent_r.3:59 build/C/man3/getservent.3:52 build/C/man3/getservent_r.3:59 build/C/man5/host.conf.5:29 build/C/man7/hostname.7:42 build/C/man5/hosts.5:32 build/C/man5/hosts.equiv.5:11 build/C/man7/icmp.7:15 build/C/man3/inet.3:75 build/C/man3/inet_ntop.3:36 build/C/man3/inet_pton.3:36 build/C/man7/ip.7:53 build/C/man7/ipv6.7:99 build/C/man7/netdevice.7:25 build/C/man5/networks.5:29 build/C/man8/nscd.8:26 build/C/man5/nscd.conf.5:23 build/C/man5/nss.5:22 build/C/man5/nsswitch.conf.5:28 build/C/man7/packet.7:25 build/C/man5/protocols.5:32 build/C/man7/raw.7:22 build/C/man3/rcmd.3:92 build/C/man5/resolv.conf.5:29 build/C/man3/resolver.3:85 build/C/man3/rexec.3:56 build/C/man5/services.5:37 build/C/man3/setnetgrent.3:44 build/C/man2/shutdown.2:47 build/C/man7/tcp.7:87 build/C/man7/udp.7:23 build/C/man7/udplite.7:38 build/C/man7/unix.7:29 build/C/man7/x25.7:21
56 #, no-wrap
57 msgid "DESCRIPTION"
58 msgstr ""
59
60 #. type: Plain text
61 #: build/C/man7/arp.7:24
62 msgid ""
63 "This kernel protocol module implements the Address Resolution Protocol "
64 "defined in RFC\\ 826.  It is used to convert between Layer2 hardware "
65 "addresses and IPv4 protocol addresses on directly connected networks.  The "
66 "user normally doesn't interact directly with this module except to configure "
67 "it; instead it provides a service for other protocols in the kernel."
68 msgstr ""
69
70 #. type: Plain text
71 #: build/C/man7/arp.7:37
72 msgid ""
73 "A user process can receive ARP packets by using B<packet>(7)  sockets.  "
74 "There is also a mechanism for managing the ARP cache in user-space by using "
75 "B<netlink>(7)  sockets.  The ARP table can also be controlled via "
76 "B<ioctl>(2)  on any B<AF_INET> socket."
77 msgstr ""
78
79 #. type: Plain text
80 #: build/C/man7/arp.7:49
81 msgid ""
82 "The ARP module maintains a cache of mappings between hardware addresses and "
83 "protocol addresses.  The cache has a limited size so old and less frequently "
84 "used entries are garbage-collected.  Entries which are marked as permanent "
85 "are never deleted by the garbage-collector.  The cache can be directly "
86 "manipulated by the use of ioctls and its behavior can be tuned by the "
87 "I</proc> interfaces described below."
88 msgstr ""
89
90 #. type: Plain text
91 #: build/C/man7/arp.7:72
92 msgid ""
93 "When there is no positive feedback for an existing mapping after some time "
94 "(see the I</proc> interfaces below), a neighbor cache entry is considered "
95 "stale.  Positive feedback can be gotten from a higher layer; for example "
96 "from a successful TCP ACK.  Other protocols can signal forward progress "
97 "using the B<MSG_CONFIRM> flag to B<sendmsg>(2).  When there is no forward "
98 "progress, ARP tries to reprobe.  It first tries to ask a local arp daemon "
99 "B<app_solicit> times for an updated MAC address.  If that fails and an old "
100 "MAC address is known, a unicast probe is sent B<ucast_solicit> times.  If "
101 "that fails too, it will broadcast a new ARP request to the network.  "
102 "Requests are sent only when there is data queued for sending."
103 msgstr ""
104
105 #. type: Plain text
106 #: build/C/man7/arp.7:77
107 msgid ""
108 "Linux will automatically add a nonpermanent proxy arp entry when it receives "
109 "a request for an address it forwards to and proxy arp is enabled on the "
110 "receiving interface.  When there is a reject route for the target, no proxy "
111 "arp entry is added."
112 msgstr ""
113
114 #. type: SS
115 #: build/C/man7/arp.7:77 build/C/man7/ddp.7:144 build/C/man7/ip.7:1047 build/C/man7/netdevice.7:64 build/C/man7/packet.7:449 build/C/man7/tcp.7:1109 build/C/man7/udp.7:202 build/C/man7/unix.7:284
116 #, no-wrap
117 msgid "Ioctls"
118 msgstr ""
119
120 #. type: Plain text
121 #: build/C/man7/arp.7:84
122 msgid ""
123 "Three ioctls are available on all B<AF_INET> sockets.  They take a pointer "
124 "to a I<struct arpreq> as their argument."
125 msgstr ""
126
127 #. type: Plain text
128 #: build/C/man7/arp.7:94
129 #, no-wrap
130 msgid ""
131 "struct arpreq {\n"
132 "    struct sockaddr arp_pa;      /* protocol address */\n"
133 "    struct sockaddr arp_ha;      /* hardware address */\n"
134 "    int             arp_flags;   /* flags */\n"
135 "    struct sockaddr arp_netmask; /* netmask of protocol address */\n"
136 "    char            arp_dev[16];\n"
137 "};\n"
138 msgstr ""
139
140 #. type: Plain text
141 #: build/C/man7/arp.7:103
142 msgid ""
143 "B<SIOCSARP>, B<SIOCDARP> and B<SIOCGARP> respectively set, delete and get an "
144 "ARP mapping.  Setting and deleting ARP maps are privileged operations and "
145 "may be performed only by a process with the B<CAP_NET_ADMIN> capability or "
146 "an effective UID of 0."
147 msgstr ""
148
149 #. type: Plain text
150 #: build/C/man7/arp.7:113
151 msgid ""
152 "I<arp_pa> must be an B<AF_INET> address and I<arp_ha> must have the same "
153 "type as the device which is specified in I<arp_dev>.  I<arp_dev> is a "
154 "zero-terminated string which names a device."
155 msgstr ""
156
157 #. type: tbl table
158 #: build/C/man7/arp.7:118
159 #, no-wrap
160 msgid "I<arp_flags>\n"
161 msgstr ""
162
163 #. type: tbl table
164 #: build/C/man7/arp.7:119
165 #, no-wrap
166 msgid "flag:meaning\n"
167 msgstr ""
168
169 #. type: tbl table
170 #: build/C/man7/arp.7:120
171 #, no-wrap
172 msgid "ATF_COM:Lookup complete\n"
173 msgstr ""
174
175 #. type: tbl table
176 #: build/C/man7/arp.7:121
177 #, no-wrap
178 msgid "ATF_PERM:Permanent entry\n"
179 msgstr ""
180
181 #. type: tbl table
182 #: build/C/man7/arp.7:122
183 #, no-wrap
184 msgid "ATF_PUBL:Publish entry\n"
185 msgstr ""
186
187 #. type: tbl table
188 #: build/C/man7/arp.7:123
189 #, no-wrap
190 msgid "ATF_USETRAILERS:Trailers requested\n"
191 msgstr ""
192
193 #. type: tbl table
194 #: build/C/man7/arp.7:124
195 #, no-wrap
196 msgid "ATF_NETMASK:Use a netmask\n"
197 msgstr ""
198
199 #. type: tbl table
200 #: build/C/man7/arp.7:125
201 #, no-wrap
202 msgid "ATF_DONTPUB:Don't answer\n"
203 msgstr ""
204
205 #. type: Plain text
206 #: build/C/man7/arp.7:138
207 msgid ""
208 "If the B<ATF_NETMASK> flag is set, then I<arp_netmask> should be valid.  "
209 "Linux 2.2 does not support proxy network ARP entries, so this should be set "
210 "to 0xffffffff, or 0 to remove an existing proxy arp entry.  "
211 "B<ATF_USETRAILERS> is obsolete and should not be used."
212 msgstr ""
213
214 #. type: SS
215 #: build/C/man7/arp.7:138 build/C/man7/ddp.7:122 build/C/man7/icmp.7:41 build/C/man7/ip.7:923 build/C/man7/tcp.7:219 build/C/man7/udp.7:137
216 #, no-wrap
217 msgid "/proc interfaces"
218 msgstr ""
219
220 #. type: Plain text
221 #: build/C/man7/arp.7:151
222 msgid ""
223 "ARP supports a range of I</proc> interfaces to configure parameters on a "
224 "global or per-interface basis.  The interfaces can be accessed by reading or "
225 "writing the I</proc/sys/net/ipv4/neigh/*/*> files.  Each interface in the "
226 "system has its own directory in I</proc/sys/net/ipv4/neigh/>.  The setting "
227 "in the \"default\" directory is used for all newly created devices.  Unless "
228 "otherwise specified, time-related interfaces are specified in seconds."
229 msgstr ""
230
231 #. type: TP
232 #: build/C/man7/arp.7:151
233 #, no-wrap
234 msgid "I<anycast_delay> (since Linux 2.2)"
235 msgstr ""
236
237 #.  Precisely: 2.1.79
238 #. type: Plain text
239 #: build/C/man7/arp.7:158
240 msgid ""
241 "The maximum number of jiffies to delay before replying to a IPv6 neighbor "
242 "solicitation message.  Anycast support is not yet implemented.  Defaults to "
243 "1 second."
244 msgstr ""
245
246 #. type: TP
247 #: build/C/man7/arp.7:158
248 #, no-wrap
249 msgid "I<app_solicit> (since Linux 2.2)"
250 msgstr ""
251
252 #.  Precisely: 2.1.79
253 #. type: Plain text
254 #: build/C/man7/arp.7:165
255 msgid ""
256 "The maximum number of probes to send to the user space ARP daemon via "
257 "netlink before dropping back to multicast probes (see I<mcast_solicit>).  "
258 "Defaults to 0."
259 msgstr ""
260
261 #. type: TP
262 #: build/C/man7/arp.7:165
263 #, no-wrap
264 msgid "I<base_reachable_time> (since Linux 2.2)"
265 msgstr ""
266
267 #.  Precisely: 2.1.79
268 #. type: Plain text
269 #: build/C/man7/arp.7:176
270 msgid ""
271 "Once a neighbor has been found, the entry is considered to be valid for at "
272 "least a random value between I<base_reachable_time>/2 and "
273 "3*I<base_reachable_time>/2.  An entry's validity will be extended if it "
274 "receives positive feedback from higher level protocols.  Defaults to 30 "
275 "seconds.  This file is now obsolete in favor of I<base_reachable_time_ms>."
276 msgstr ""
277
278 #. type: TP
279 #: build/C/man7/arp.7:176
280 #, no-wrap
281 msgid "I<base_reachable_time_ms> (since Linux 2.6.12)"
282 msgstr ""
283
284 #. type: Plain text
285 #: build/C/man7/arp.7:182
286 msgid ""
287 "As for I<base_reachable_time>, but measures time in milliseconds.  Defaults "
288 "to 30000 milliseconds."
289 msgstr ""
290
291 #. type: TP
292 #: build/C/man7/arp.7:182
293 #, no-wrap
294 msgid "I<delay_first_probe_time> (since Linux 2.2)"
295 msgstr ""
296
297 #.  Precisely: 2.1.79
298 #. type: Plain text
299 #: build/C/man7/arp.7:188
300 msgid ""
301 "Delay before first probe after it has been decided that a neighbor is "
302 "stale.  Defaults to 5 seconds."
303 msgstr ""
304
305 #. type: TP
306 #: build/C/man7/arp.7:188
307 #, no-wrap
308 msgid "I<gc_interval> (since Linux 2.2)"
309 msgstr ""
310
311 #.  Precisely: 2.1.79
312 #. type: Plain text
313 #: build/C/man7/arp.7:194
314 msgid ""
315 "How frequently the garbage collector for neighbor entries should attempt to "
316 "run.  Defaults to 30 seconds."
317 msgstr ""
318
319 #. type: TP
320 #: build/C/man7/arp.7:194
321 #, no-wrap
322 msgid "I<gc_stale_time> (since Linux 2.2)"
323 msgstr ""
324
325 #.  Precisely: 2.1.79
326 #. type: Plain text
327 #: build/C/man7/arp.7:201
328 msgid ""
329 "Determines how often to check for stale neighbor entries.  When a neighbor "
330 "entry is considered stale, it is resolved again before sending data to it.  "
331 "Defaults to 60 seconds."
332 msgstr ""
333
334 #. type: TP
335 #: build/C/man7/arp.7:201
336 #, no-wrap
337 msgid "I<gc_thresh1> (since Linux 2.2)"
338 msgstr ""
339
340 #.  Precisely: 2.1.79
341 #. type: Plain text
342 #: build/C/man7/arp.7:208
343 msgid ""
344 "The minimum number of entries to keep in the ARP cache.  The garbage "
345 "collector will not run if there are fewer than this number of entries in the "
346 "cache.  Defaults to 128."
347 msgstr ""
348
349 #. type: TP
350 #: build/C/man7/arp.7:208
351 #, no-wrap
352 msgid "I<gc_thresh2> (since Linux 2.2)"
353 msgstr ""
354
355 #.  Precisely: 2.1.79
356 #. type: Plain text
357 #: build/C/man7/arp.7:215
358 msgid ""
359 "The soft maximum number of entries to keep in the ARP cache.  The garbage "
360 "collector will allow the number of entries to exceed this for 5 seconds "
361 "before collection will be performed.  Defaults to 512."
362 msgstr ""
363
364 #. type: TP
365 #: build/C/man7/arp.7:215
366 #, no-wrap
367 msgid "I<gc_thresh3> (since Linux 2.2)"
368 msgstr ""
369
370 #.  Precisely: 2.1.79
371 #. type: Plain text
372 #: build/C/man7/arp.7:222
373 msgid ""
374 "The hard maximum number of entries to keep in the ARP cache.  The garbage "
375 "collector will always run if there are more than this number of entries in "
376 "the cache.  Defaults to 1024."
377 msgstr ""
378
379 #. type: TP
380 #: build/C/man7/arp.7:222
381 #, no-wrap
382 msgid "I<locktime> (since Linux 2.2)"
383 msgstr ""
384
385 #.  Precisely: 2.1.79
386 #. type: Plain text
387 #: build/C/man7/arp.7:229
388 msgid ""
389 "The minimum number of jiffies to keep an ARP entry in the cache.  This "
390 "prevents ARP cache thrashing if there is more than one potential mapping "
391 "(generally due to network misconfiguration).  Defaults to 1 second."
392 msgstr ""
393
394 #. type: TP
395 #: build/C/man7/arp.7:229
396 #, no-wrap
397 msgid "I<mcast_solicit> (since Linux 2.2)"
398 msgstr ""
399
400 #.  Precisely: 2.1.79
401 #. type: Plain text
402 #: build/C/man7/arp.7:235
403 msgid ""
404 "The maximum number of attempts to resolve an address by multicast/broadcast "
405 "before marking the entry as unreachable.  Defaults to 3."
406 msgstr ""
407
408 #. type: TP
409 #: build/C/man7/arp.7:235
410 #, no-wrap
411 msgid "I<proxy_delay> (since Linux 2.2)"
412 msgstr ""
413
414 #.  Precisely: 2.1.79
415 #. type: Plain text
416 #: build/C/man7/arp.7:243
417 msgid ""
418 "When an ARP request for a known proxy-ARP address is received, delay up to "
419 "I<proxy_delay> jiffies before replying.  This is used to prevent network "
420 "flooding in some cases.  Defaults to 0.8 seconds."
421 msgstr ""
422
423 #. type: TP
424 #: build/C/man7/arp.7:243
425 #, no-wrap
426 msgid "I<proxy_qlen> (since Linux 2.2)"
427 msgstr ""
428
429 #.  Precisely: 2.1.79
430 #. type: Plain text
431 #: build/C/man7/arp.7:248
432 msgid ""
433 "The maximum number of packets which may be queued to proxy-ARP addresses.  "
434 "Defaults to 64."
435 msgstr ""
436
437 #. type: TP
438 #: build/C/man7/arp.7:248
439 #, no-wrap
440 msgid "I<retrans_time> (since Linux 2.2)"
441 msgstr ""
442
443 #.  Precisely: 2.1.79
444 #. type: Plain text
445 #: build/C/man7/arp.7:255
446 msgid ""
447 "The number of jiffies to delay before retransmitting a request.  Defaults to "
448 "1 second.  This file is now obsolete in favor of I<retrans_time_ms>."
449 msgstr ""
450
451 #. type: TP
452 #: build/C/man7/arp.7:255
453 #, no-wrap
454 msgid "I<retrans_time_ms> (since Linux 2.6.12)"
455 msgstr ""
456
457 #. type: Plain text
458 #: build/C/man7/arp.7:259
459 msgid ""
460 "The number of milliseconds to delay before retransmitting a request.  "
461 "Defaults to 1000 milliseconds."
462 msgstr ""
463
464 #. type: TP
465 #: build/C/man7/arp.7:259
466 #, no-wrap
467 msgid "I<ucast_solicit> (since Linux 2.2)"
468 msgstr ""
469
470 #.  Precisely: 2.1.79
471 #. type: Plain text
472 #: build/C/man7/arp.7:266
473 msgid ""
474 "The maximum number of attempts to send unicast probes before asking the ARP "
475 "daemon (see I<app_solicit>).  Defaults to 3."
476 msgstr ""
477
478 #. type: TP
479 #: build/C/man7/arp.7:266
480 #, no-wrap
481 msgid "I<unres_qlen> (since Linux 2.2)"
482 msgstr ""
483
484 #.  Precisely: 2.1.79
485 #. type: Plain text
486 #: build/C/man7/arp.7:272
487 msgid ""
488 "The maximum number of packets which may be queued for each unresolved "
489 "address by other network layers.  Defaults to 3."
490 msgstr ""
491
492 #. type: SH
493 #: build/C/man7/arp.7:272 build/C/man7/ddp.7:221 build/C/man3/endian.3:74 build/C/man3/getnameinfo.3:203 build/C/man7/icmp.7:161 build/C/man7/ipv6.7:363 build/C/man7/packet.7:502 build/C/man7/raw.7:175 build/C/man3/rcmd.3:262 build/C/man3/rexec.3:138 build/C/man7/tcp.7:1226 build/C/man7/udp.7:251 build/C/man7/udplite.7:132 build/C/man7/unix.7:401 build/C/man7/x25.7:100
494 #, no-wrap
495 msgid "VERSIONS"
496 msgstr ""
497
498 #. type: Plain text
499 #: build/C/man7/arp.7:279
500 msgid ""
501 "The I<struct arpreq> changed in Linux 2.0 to include the I<arp_dev> member "
502 "and the ioctl numbers changed at the same time.  Support for the old ioctls "
503 "was dropped in Linux 2.2."
504 msgstr ""
505
506 #. type: Plain text
507 #: build/C/man7/arp.7:285
508 msgid ""
509 "Support for proxy arp entries for networks (netmask not equal 0xffffffff)  "
510 "was dropped in Linux 2.2.  It is replaced by automatic proxy arp setup by "
511 "the kernel for all reachable hosts on other interfaces (when forwarding and "
512 "proxy arp is enabled for the interface)."
513 msgstr ""
514
515 #. type: Plain text
516 #: build/C/man7/arp.7:289
517 msgid "The I<neigh/*> interfaces did not exist before Linux 2.2."
518 msgstr ""
519
520 #. type: SH
521 #: build/C/man7/arp.7:289 build/C/man7/ddp.7:244 build/C/man3/ether_aton.3:145 build/C/man3/gethostbyname.3:438 build/C/man3/inet_ntop.3:112 build/C/man3/inet_pton.3:150 build/C/man7/ip.7:1217 build/C/man7/ipv6.7:402 build/C/man7/netdevice.7:359 build/C/man7/packet.7:583 build/C/man7/raw.7:252 build/C/man3/rcmd.3:278 build/C/man3/rexec.3:158 build/C/man2/shutdown.2:104 build/C/man7/tcp.7:1233 build/C/man7/udplite.7:134 build/C/man7/x25.7:102
522 #, no-wrap
523 msgid "BUGS"
524 msgstr ""
525
526 #. type: Plain text
527 #: build/C/man7/arp.7:293
528 msgid ""
529 "Some timer settings are specified in jiffies, which is architecture- and "
530 "kernel version-dependent; see B<time>(7)."
531 msgstr ""
532
533 #. type: Plain text
534 #: build/C/man7/arp.7:299
535 msgid ""
536 "There is no way to signal positive feedback from user space.  This means "
537 "connection-oriented protocols implemented in user space will generate "
538 "excessive ARP traffic, because ndisc will regularly reprobe the MAC "
539 "address.  The same problem applies for some kernel protocols (e.g., NFS over "
540 "UDP)."
541 msgstr ""
542
543 #. type: Plain text
544 #: build/C/man7/arp.7:302
545 msgid ""
546 "This man page mashes together functionality that is IPv4-specific with "
547 "functionality that is shared between IPv4 and IPv6."
548 msgstr ""
549
550 #. type: SH
551 #: build/C/man7/arp.7:302 build/C/man3/byteorder.3:83 build/C/man3/cmsg.3:217 build/C/man7/ddp.7:249 build/C/man3/endian.3:151 build/C/man3/ether_aton.3:149 build/C/man5/gai.conf.5:93 build/C/man3/getaddrinfo.3:827 build/C/man3/getaddrinfo_a.3:600 build/C/man1/getent.1:368 build/C/man3/gethostbyname.3:443 build/C/man3/getipnodebyname.3:266 build/C/man3/getnameinfo.3:275 build/C/man3/getnetent.3:154 build/C/man3/getnetent_r.3:145 build/C/man2/getpeername.2:143 build/C/man3/getprotoent.3:142 build/C/man3/getprotoent_r.3:237 build/C/man3/getservent.3:159 build/C/man3/getservent_r.3:241 build/C/man5/host.conf.5:199 build/C/man7/hostname.7:85 build/C/man5/hosts.5:115 build/C/man5/hosts.equiv.5:84 build/C/man7/icmp.7:191 build/C/man3/inet.3:297 build/C/man3/inet_ntop.3:118 build/C/man3/inet_pton.3:215 build/C/man7/ip.7:1236 build/C/man7/ipv6.7:413 build/C/man7/netdevice.7:373 build/C/man5/networks.5:74 build/C/man8/nscd.8:85 build/C/man5/nscd.conf.5:239 build/C/man5/nss.5:110 build/C/man5/nsswitch.conf.5:352 build/C/man7/packet.7:614 build/C/man5/protocols.5:81 build/C/man7/raw.7:269 build/C/man3/rcmd.3:285 build/C/man5/resolv.conf.5:290 build/C/man3/resolver.3:274 build/C/man3/rexec.3:167 build/C/man5/services.5:210 build/C/man3/setnetgrent.3:107 build/C/man2/shutdown.2:113 build/C/man7/tcp.7:1245 build/C/man7/udp.7:256 build/C/man7/udplite.7:146 build/C/man7/unix.7:445 build/C/man7/x25.7:118
552 #, no-wrap
553 msgid "SEE ALSO"
554 msgstr ""
555
556 #. type: Plain text
557 #: build/C/man7/arp.7:305
558 msgid "B<capabilities>(7), B<ip>(7)"
559 msgstr ""
560
561 #. type: Plain text
562 #: build/C/man7/arp.7:310
563 msgid ""
564 "RFC\\ 826 for a description of ARP.  RFC\\ 2461 for a description of IPv6 "
565 "neighbor discovery and the base algorithms used.  Linux 2.2+ IPv4 ARP uses "
566 "the IPv6 algorithms when applicable."
567 msgstr ""
568
569 #. type: SH
570 #: build/C/man7/arp.7:310 build/C/man3/byteorder.3:87 build/C/man3/cmsg.3:222 build/C/man7/ddp.7:254 build/C/man3/endian.3:153 build/C/man3/ether_aton.3:151 build/C/man5/gai.conf.5:96 build/C/man3/getaddrinfo.3:837 build/C/man3/getaddrinfo_a.3:607 build/C/man1/getent.1:370 build/C/man3/gethostbyname.3:457 build/C/man3/getipnodebyname.3:271 build/C/man3/getnameinfo.3:308 build/C/man3/getnetent.3:161 build/C/man3/getnetent_r.3:148 build/C/man2/getpeername.2:150 build/C/man3/getprotoent.3:147 build/C/man3/getprotoent_r.3:240 build/C/man3/getservent.3:164 build/C/man3/getservent_r.3:244 build/C/man5/host.conf.5:204 build/C/man7/hostname.7:93 build/C/man5/hosts.5:126 build/C/man5/hosts.equiv.5:88 build/C/man7/icmp.7:195 build/C/man3/inet.3:307 build/C/man3/inet_ntop.3:122 build/C/man3/inet_pton.3:219 build/C/man7/ip.7:1254 build/C/man7/ipv6.7:420 build/C/man7/netdevice.7:378 build/C/man5/networks.5:80 build/C/man8/nscd.8:91 build/C/man5/nscd.conf.5:244 build/C/man5/nss.5:112 build/C/man5/nsswitch.conf.5:355 build/C/man7/packet.7:628 build/C/man5/protocols.5:86 build/C/man7/raw.7:282 build/C/man3/rcmd.3:293 build/C/man5/resolv.conf.5:297 build/C/man3/resolver.3:280 build/C/man3/rexec.3:170 build/C/man5/services.5:222 build/C/man3/setnetgrent.3:111 build/C/man2/shutdown.2:117 build/C/man7/tcp.7:1271 build/C/man7/udp.7:267 build/C/man7/udplite.7:156 build/C/man7/unix.7:454 build/C/man7/x25.7:127
571 #, no-wrap
572 msgid "COLOPHON"
573 msgstr ""
574
575 #. type: Plain text
576 #: build/C/man7/arp.7:317 build/C/man3/byteorder.3:94 build/C/man3/cmsg.3:229 build/C/man7/ddp.7:261 build/C/man3/endian.3:160 build/C/man3/ether_aton.3:158 build/C/man5/gai.conf.5:103 build/C/man3/getaddrinfo.3:844 build/C/man3/getaddrinfo_a.3:614 build/C/man1/getent.1:377 build/C/man3/gethostbyname.3:464 build/C/man3/getipnodebyname.3:278 build/C/man3/getnameinfo.3:315 build/C/man3/getnetent.3:168 build/C/man3/getnetent_r.3:155 build/C/man2/getpeername.2:157 build/C/man3/getprotoent.3:154 build/C/man3/getprotoent_r.3:247 build/C/man3/getservent.3:171 build/C/man3/getservent_r.3:251 build/C/man5/host.conf.5:211 build/C/man7/hostname.7:100 build/C/man5/hosts.5:133 build/C/man5/hosts.equiv.5:95 build/C/man7/icmp.7:202 build/C/man3/inet.3:314 build/C/man3/inet_ntop.3:129 build/C/man3/inet_pton.3:226 build/C/man7/ip.7:1261 build/C/man7/ipv6.7:427 build/C/man7/netdevice.7:385 build/C/man5/networks.5:87 build/C/man8/nscd.8:98 build/C/man5/nscd.conf.5:251 build/C/man5/nss.5:119 build/C/man5/nsswitch.conf.5:362 build/C/man7/packet.7:635 build/C/man5/protocols.5:93 build/C/man7/raw.7:289 build/C/man3/rcmd.3:300 build/C/man5/resolv.conf.5:304 build/C/man3/resolver.3:287 build/C/man3/rexec.3:177 build/C/man5/services.5:229 build/C/man3/setnetgrent.3:118 build/C/man2/shutdown.2:124 build/C/man7/tcp.7:1278 build/C/man7/udp.7:274 build/C/man7/udplite.7:163 build/C/man7/unix.7:461 build/C/man7/x25.7:134
577 msgid ""
578 "This page is part of release 3.63 of the Linux I<man-pages> project.  A "
579 "description of the project, and information about reporting bugs, can be "
580 "found at \\%http://www.kernel.org/doc/man-pages/."
581 msgstr ""
582
583 #. type: TH
584 #: build/C/man3/byteorder.3:32
585 #, no-wrap
586 msgid "BYTEORDER"
587 msgstr ""
588
589 #. type: TH
590 #: build/C/man3/byteorder.3:32
591 #, no-wrap
592 msgid "2009-01-15"
593 msgstr ""
594
595 #. type: TH
596 #: build/C/man3/byteorder.3:32 build/C/man3/endian.3:28 build/C/man3/ether_aton.3:31 build/C/man3/getaddrinfo.3:43 build/C/man3/getaddrinfo_a.3:29 build/C/man3/getnameinfo.3:10 build/C/man3/getnetent.3:30 build/C/man3/getnetent_r.3:26 build/C/man3/getprotoent.3:30 build/C/man3/getprotoent_r.3:26 build/C/man3/getservent.3:34 build/C/man3/getservent_r.3:26 build/C/man3/inet.3:42 build/C/man8/nscd.8:23 build/C/man5/nscd.conf.5:20 build/C/man3/resolver.3:32 build/C/man3/setnetgrent.3:10
597 #, no-wrap
598 msgid "GNU"
599 msgstr ""
600
601 #. type: Plain text
602 #: build/C/man3/byteorder.3:36
603 msgid ""
604 "htonl, htons, ntohl, ntohs - convert values between host and network byte "
605 "order"
606 msgstr ""
607
608 #. type: SH
609 #: build/C/man3/byteorder.3:36 build/C/man3/cmsg.3:14 build/C/man7/ddp.7:15 build/C/man3/endian.3:33 build/C/man3/ether_aton.3:35 build/C/man3/getaddrinfo.3:47 build/C/man3/getaddrinfo_a.3:33 build/C/man1/getent.1:27 build/C/man3/gethostbyname.3:46 build/C/man3/getipnodebyname.3:30 build/C/man3/getnameinfo.3:13 build/C/man3/getnetent.3:34 build/C/man3/getnetent_r.3:30 build/C/man2/getpeername.2:45 build/C/man3/getprotoent.3:34 build/C/man3/getprotoent_r.3:30 build/C/man3/getservent.3:38 build/C/man3/getservent_r.3:30 build/C/man5/hosts.5:30 build/C/man3/inet.3:46 build/C/man3/inet_ntop.3:29 build/C/man3/inet_pton.3:30 build/C/man7/ip.7:39 build/C/man7/ipv6.7:89 build/C/man7/netdevice.7:21 build/C/man7/packet.7:15 build/C/man7/raw.7:16 build/C/man3/rcmd.3:48 build/C/man5/resolv.conf.5:27 build/C/man3/resolver.3:36 build/C/man3/rexec.3:44 build/C/man3/setnetgrent.3:14 build/C/man2/shutdown.2:43 build/C/man7/tcp.7:79 build/C/man7/udp.7:15 build/C/man7/udplite.7:30 build/C/man7/unix.7:21 build/C/man7/x25.7:15
610 #, no-wrap
611 msgid "SYNOPSIS"
612 msgstr ""
613
614 #. type: Plain text
615 #: build/C/man3/byteorder.3:39 build/C/man3/inet_ntop.3:32 build/C/man3/inet_pton.3:33
616 #, no-wrap
617 msgid "B<#include E<lt>arpa/inet.hE<gt>>\n"
618 msgstr ""
619
620 #. type: Plain text
621 #: build/C/man3/byteorder.3:41
622 #, no-wrap
623 msgid "B<uint32_t htonl(uint32_t >I<hostlong>B<);>\n"
624 msgstr ""
625
626 #. type: Plain text
627 #: build/C/man3/byteorder.3:43
628 #, no-wrap
629 msgid "B<uint16_t htons(uint16_t >I<hostshort>B<);>\n"
630 msgstr ""
631
632 #. type: Plain text
633 #: build/C/man3/byteorder.3:45
634 #, no-wrap
635 msgid "B<uint32_t ntohl(uint32_t >I<netlong>B<);>\n"
636 msgstr ""
637
638 #. type: Plain text
639 #: build/C/man3/byteorder.3:47
640 #, no-wrap
641 msgid "B<uint16_t ntohs(uint16_t >I<netshort>B<);>\n"
642 msgstr ""
643
644 #. type: Plain text
645 #: build/C/man3/byteorder.3:54
646 msgid ""
647 "The B<htonl>()  function converts the unsigned integer I<hostlong> from host "
648 "byte order to network byte order."
649 msgstr ""
650
651 #. type: Plain text
652 #: build/C/man3/byteorder.3:60
653 msgid ""
654 "The B<htons>()  function converts the unsigned short integer I<hostshort> "
655 "from host byte order to network byte order."
656 msgstr ""
657
658 #. type: Plain text
659 #: build/C/man3/byteorder.3:66
660 msgid ""
661 "The B<ntohl>()  function converts the unsigned integer I<netlong> from "
662 "network byte order to host byte order."
663 msgstr ""
664
665 #. type: Plain text
666 #: build/C/man3/byteorder.3:72
667 msgid ""
668 "The B<ntohs>()  function converts the unsigned short integer I<netshort> "
669 "from network byte order to host byte order."
670 msgstr ""
671
672 #. type: Plain text
673 #: build/C/man3/byteorder.3:76
674 msgid ""
675 "On the i386 the host byte order is Least Significant Byte first, whereas the "
676 "network byte order, as used on the Internet, is Most Significant Byte first."
677 msgstr ""
678
679 #. type: SH
680 #: build/C/man3/byteorder.3:76 build/C/man3/cmsg.3:141 build/C/man3/endian.3:76 build/C/man3/ether_aton.3:143 build/C/man3/getaddrinfo.3:594 build/C/man3/getaddrinfo_a.3:305 build/C/man3/gethostbyname.3:317 build/C/man3/getipnodebyname.3:258 build/C/man3/getnameinfo.3:206 build/C/man3/getnetent.3:145 build/C/man3/getnetent_r.3:141 build/C/man2/getpeername.2:101 build/C/man3/getprotoent.3:140 build/C/man3/getprotoent_r.3:131 build/C/man3/getservent.3:157 build/C/man3/getservent_r.3:130 build/C/man3/inet.3:210 build/C/man3/inet_ntop.3:100 build/C/man3/inet_pton.3:129 build/C/man3/rcmd.3:270 build/C/man3/resolver.3:272 build/C/man3/rexec.3:149 build/C/man3/setnetgrent.3:92 build/C/man2/shutdown.2:91
681 #, no-wrap
682 msgid "CONFORMING TO"
683 msgstr ""
684
685 #. type: Plain text
686 #: build/C/man3/byteorder.3:78 build/C/man3/inet_pton.3:131
687 msgid "POSIX.1-2001."
688 msgstr ""
689
690 #. type: Plain text
691 #: build/C/man3/byteorder.3:83
692 msgid ""
693 "Some systems require the inclusion of I<E<lt>netinet/in.hE<gt>> instead of "
694 "I<E<lt>arpa/inet.hE<gt>>."
695 msgstr ""
696
697 #. type: Plain text
698 #: build/C/man3/byteorder.3:87
699 msgid "B<endian>(3), B<gethostbyname>(3), B<getservent>(3)"
700 msgstr ""
701
702 #. type: TH
703 #: build/C/man3/cmsg.3:11
704 #, no-wrap
705 msgid "CMSG"
706 msgstr ""
707
708 #. type: TH
709 #: build/C/man3/cmsg.3:11 build/C/man7/ddp.7:12
710 #, no-wrap
711 msgid "2008-11-20"
712 msgstr ""
713
714 #. type: Plain text
715 #: build/C/man3/cmsg.3:14
716 msgid "CMSG_ALIGN, CMSG_SPACE, CMSG_NXTHDR, CMSG_FIRSTHDR - access ancillary data"
717 msgstr ""
718
719 #. type: Plain text
720 #: build/C/man3/cmsg.3:16 build/C/man7/ddp.7:17 build/C/man2/getpeername.2:47 build/C/man7/ip.7:41 build/C/man7/ipv6.7:91 build/C/man7/raw.7:18 build/C/man2/shutdown.2:45 build/C/man7/tcp.7:81 build/C/man7/udp.7:17 build/C/man7/udplite.7:32 build/C/man7/unix.7:23 build/C/man7/x25.7:17
721 msgid "B<#include E<lt>sys/socket.hE<gt>>"
722 msgstr ""
723
724 #. type: Plain text
725 #: build/C/man3/cmsg.3:18
726 msgid "B<struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *>I<msgh>B<);>"
727 msgstr ""
728
729 #. type: Plain text
730 #: build/C/man3/cmsg.3:20
731 msgid ""
732 "B<struct cmsghdr *CMSG_NXTHDR(struct msghdr *>I<msgh>B<, struct cmsghdr "
733 "*>I<cmsg>B<);>"
734 msgstr ""
735
736 #. type: Plain text
737 #: build/C/man3/cmsg.3:22
738 msgid "B<size_t CMSG_ALIGN(size_t >I<length>B<);>"
739 msgstr ""
740
741 #. type: Plain text
742 #: build/C/man3/cmsg.3:24
743 msgid "B<size_t CMSG_SPACE(size_t >I<length>B<);>"
744 msgstr ""
745
746 #. type: Plain text
747 #: build/C/man3/cmsg.3:26
748 msgid "B<size_t CMSG_LEN(size_t >I<length>B<);>"
749 msgstr ""
750
751 #. type: Plain text
752 #: build/C/man3/cmsg.3:28
753 msgid "B<unsigned char *CMSG_DATA(struct cmsghdr *>I<cmsg>B<);>"
754 msgstr ""
755
756 #. type: Plain text
757 #: build/C/man3/cmsg.3:36
758 #, no-wrap
759 msgid ""
760 "struct cmsghdr {\n"
761 "    socklen_t cmsg_len;    /* data byte count, including header */\n"
762 "    int       cmsg_level;  /* originating protocol */\n"
763 "    int       cmsg_type;   /* protocol-specific type */\n"
764 "    /* followed by unsigned char cmsg_data[]; */\n"
765 "};\n"
766 msgstr ""
767
768 #. type: Plain text
769 #: build/C/man3/cmsg.3:51
770 msgid ""
771 "These macros are used to create and access control messages (also called "
772 "ancillary data) that are not a part of the socket payload.  This control "
773 "information may include the interface the packet was received on, various "
774 "rarely used header fields, an extended error description, a set of file "
775 "descriptors or UNIX credentials.  For instance, control messages can be used "
776 "to send additional header fields such as IP options.  Ancillary data is sent "
777 "by calling B<sendmsg>(2)  and received by calling B<recvmsg>(2).  See their "
778 "manual pages for more information."
779 msgstr ""
780
781 #. type: Plain text
782 #: build/C/man3/cmsg.3:62
783 msgid ""
784 "Ancillary data is a sequence of I<struct cmsghdr> structures with appended "
785 "data.  This sequence should be accessed using only the macros described in "
786 "this manual page and never directly.  See the specific protocol man pages "
787 "for the available control message types.  The maximum ancillary buffer size "
788 "allowed per socket can be set using I</proc/sys/net/core/optmem_max>; see "
789 "B<socket>(7)."
790 msgstr ""
791
792 #. type: Plain text
793 #: build/C/man3/cmsg.3:69
794 msgid ""
795 "B<CMSG_FIRSTHDR>()  returns a pointer to the first I<cmsghdr> in the "
796 "ancillary data buffer associated with the passed I<msghdr>."
797 msgstr ""
798
799 #. type: Plain text
800 #: build/C/man3/cmsg.3:76
801 msgid ""
802 "B<CMSG_NXTHDR>()  returns the next valid I<cmsghdr> after the passed "
803 "I<cmsghdr>.  It returns NULL when there isn't enough space left in the "
804 "buffer."
805 msgstr ""
806
807 #. type: Plain text
808 #: build/C/man3/cmsg.3:81
809 msgid ""
810 "B<CMSG_ALIGN>(), given a length, returns it including the required "
811 "alignment.  This is a constant expression."
812 msgstr ""
813
814 #. type: Plain text
815 #: build/C/man3/cmsg.3:86
816 msgid ""
817 "B<CMSG_SPACE>()  returns the number of bytes an ancillary element with "
818 "payload of the passed data length occupies.  This is a constant expression."
819 msgstr ""
820
821 #. type: Plain text
822 #: build/C/man3/cmsg.3:90
823 msgid "B<CMSG_DATA>()  returns a pointer to the data portion of a I<cmsghdr>."
824 msgstr ""
825
826 #. type: Plain text
827 #: build/C/man3/cmsg.3:101
828 msgid ""
829 "B<CMSG_LEN>()  returns the value to store in the I<cmsg_len> member of the "
830 "I<cmsghdr> structure, taking into account any necessary alignment.  It takes "
831 "the data length as an argument.  This is a constant expression."
832 msgstr ""
833
834 #. type: Plain text
835 #: build/C/man3/cmsg.3:134
836 msgid ""
837 "To create ancillary data, first initialize the I<msg_controllen> member of "
838 "the I<msghdr> with the length of the control message buffer.  Use "
839 "B<CMSG_FIRSTHDR>()  on the I<msghdr> to get the first control message and "
840 "B<CMSG_NXTHDR>()  to get all subsequent ones.  In each control message, "
841 "initialize I<cmsg_len> (with B<CMSG_LEN>()), the other I<cmsghdr> header "
842 "fields, and the data portion using B<CMSG_DATA>().  Finally, the "
843 "I<msg_controllen> field of the I<msghdr> should be set to the sum of the "
844 "B<CMSG_SPACE>()  of the length of all control messages in the buffer.  For "
845 "more information on the I<msghdr>, see B<recvmsg>(2)."
846 msgstr ""
847
848 #. type: Plain text
849 #: build/C/man3/cmsg.3:141
850 msgid ""
851 "When the control message buffer is too short to store all messages, the "
852 "B<MSG_CTRUNC> flag is set in the I<msg_flags> member of the I<msghdr>."
853 msgstr ""
854
855 #. type: Plain text
856 #: build/C/man3/cmsg.3:146
857 msgid ""
858 "This ancillary data model conforms to the POSIX.1g draft, 4.4BSD-Lite, the "
859 "IPv6 advanced API described in RFC\\ 2292 and the SUSv2.  B<CMSG_ALIGN>()  "
860 "is a Linux extension."
861 msgstr ""
862
863 #. type: SH
864 #: build/C/man3/cmsg.3:146 build/C/man7/ddp.7:226 build/C/man3/endian.3:91 build/C/man3/getaddrinfo.3:599 build/C/man3/getaddrinfo_a.3:308 build/C/man3/gethostbyname.3:341 build/C/man3/getipnodebyname.3:261 build/C/man3/getnameinfo.3:208 build/C/man3/getnetent.3:147 build/C/man2/getpeername.2:105 build/C/man5/host.conf.5:190 build/C/man5/hosts.5:88 build/C/man5/hosts.equiv.5:71 build/C/man7/icmp.7:169 build/C/man3/inet.3:218 build/C/man3/inet_pton.3:131 build/C/man7/ip.7:1155 build/C/man7/ipv6.7:392 build/C/man7/netdevice.7:341 build/C/man8/nscd.8:60 build/C/man5/nscd.conf.5:232 build/C/man5/nsswitch.conf.5:333 build/C/man7/packet.7:520 build/C/man7/raw.7:187 build/C/man3/setnetgrent.3:103 build/C/man2/shutdown.2:95 build/C/man7/unix.7:407
865 #, no-wrap
866 msgid "NOTES"
867 msgstr ""
868
869 #. type: Plain text
870 #: build/C/man3/cmsg.3:151
871 msgid ""
872 "For portability, ancillary data should be accessed using only the macros "
873 "described here.  B<CMSG_ALIGN>()  is a Linux extension and should not be "
874 "used in portable programs."
875 msgstr ""
876
877 #. type: Plain text
878 #: build/C/man3/cmsg.3:161
879 msgid ""
880 "In Linux, B<CMSG_LEN>(), B<CMSG_DATA>(), and B<CMSG_ALIGN>()  are constant "
881 "expressions (assuming their argument is constant); this could be used to "
882 "declare the size of global variables.  This may not be portable, however."
883 msgstr ""
884
885 #. type: SH
886 #: build/C/man3/cmsg.3:161 build/C/man3/endian.3:107 build/C/man5/gai.conf.5:74 build/C/man3/getaddrinfo.3:622 build/C/man3/getaddrinfo_a.3:314 build/C/man3/getnameinfo.3:236 build/C/man3/getprotoent_r.3:135 build/C/man3/getservent_r.3:134 build/C/man5/hosts.5:107 build/C/man3/inet.3:254 build/C/man3/inet_ntop.3:115 build/C/man3/inet_pton.3:156 build/C/man5/nss.5:100 build/C/man7/unix.7:437
887 #, no-wrap
888 msgid "EXAMPLE"
889 msgstr ""
890
891 #. type: Plain text
892 #: build/C/man3/cmsg.3:165
893 msgid "This code looks for the B<IP_TTL> option in a received ancillary buffer:"
894 msgstr ""
895
896 #. type: Plain text
897 #: build/C/man3/cmsg.3:172
898 #, no-wrap
899 msgid ""
900 "struct msghdr msgh;\n"
901 "struct cmsghdr *cmsg;\n"
902 "int *ttlptr;\n"
903 "int received_ttl;\n"
904 msgstr ""
905
906 #. type: Plain text
907 #: build/C/man3/cmsg.3:189
908 #, no-wrap
909 msgid ""
910 "/* Receive auxiliary data in msgh */\n"
911 "for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL;\n"
912 "        cmsg = CMSG_NXTHDR(&msgh,cmsg)) {\n"
913 "    if (cmsg-E<gt>cmsg_level == IPPROTO_IP\n"
914 "            && cmsg-E<gt>cmsg_type == IP_TTL) {\n"
915 "        ttlptr = (int *) CMSG_DATA(cmsg);\n"
916 "        received_ttl = *ttlptr;\n"
917 "        break;\n"
918 "    }\n"
919 "}\n"
920 "if (cmsg == NULL) {\n"
921 "    /*\n"
922 "     * Error: IP_TTL not enabled or small buffer\n"
923 "     * or I/O error.\n"
924 "     */\n"
925 "}\n"
926 msgstr ""
927
928 #. type: Plain text
929 #: build/C/man3/cmsg.3:195
930 msgid ""
931 "The code below passes an array of file descriptors over a UNIX domain socket "
932 "using B<SCM_RIGHTS>:"
933 msgstr ""
934
935 #. type: Plain text
936 #: build/C/man3/cmsg.3:203
937 #, no-wrap
938 msgid ""
939 "struct msghdr msg = {0};\n"
940 "struct cmsghdr *cmsg;\n"
941 "int myfds[NUM_FD]; /* Contains the file descriptors to pass. */\n"
942 "char buf[CMSG_SPACE(sizeof myfds)];  /* ancillary data buffer */\n"
943 "int *fdptr;\n"
944 msgstr ""
945
946 #. type: Plain text
947 #: build/C/man3/cmsg.3:215
948 #, no-wrap
949 msgid ""
950 "msg.msg_control = buf;\n"
951 "msg.msg_controllen = sizeof buf;\n"
952 "cmsg = CMSG_FIRSTHDR(&msg);\n"
953 "cmsg-E<gt>cmsg_level = SOL_SOCKET;\n"
954 "cmsg-E<gt>cmsg_type = SCM_RIGHTS;\n"
955 "cmsg-E<gt>cmsg_len = CMSG_LEN(sizeof(int) * NUM_FD);\n"
956 "/* Initialize the payload: */\n"
957 "fdptr = (int *) CMSG_DATA(cmsg);\n"
958 "memcpy(fdptr, myfds, NUM_FD * sizeof(int));\n"
959 "/* Sum of the length of all control messages in the buffer: */\n"
960 "msg.msg_controllen = cmsg-E<gt>cmsg_len;\n"
961 msgstr ""
962
963 #. type: Plain text
964 #: build/C/man3/cmsg.3:220
965 msgid "B<recvmsg>(2), B<sendmsg>(2)"
966 msgstr ""
967
968 #. type: Plain text
969 #: build/C/man3/cmsg.3:222
970 msgid "RFC\\ 2292"
971 msgstr ""
972
973 #. type: TH
974 #: build/C/man7/ddp.7:12
975 #, no-wrap
976 msgid "DDP"
977 msgstr ""
978
979 #. type: Plain text
980 #: build/C/man7/ddp.7:15
981 msgid "ddp - Linux AppleTalk protocol implementation"
982 msgstr ""
983
984 #. type: Plain text
985 #: build/C/man7/ddp.7:19
986 msgid "B<#include E<lt>netatalk/at.hE<gt>>"
987 msgstr ""
988
989 #. type: Plain text
990 #: build/C/man7/ddp.7:21
991 msgid "I<ddp_socket>B< = socket(AF_APPLETALK, SOCK_DGRAM, 0);>"
992 msgstr ""
993
994 #. type: Plain text
995 #: build/C/man7/ddp.7:23
996 msgid "I<raw_socket>B< = socket(AF_APPLETALK, SOCK_RAW, >I<protocol>B<);>"
997 msgstr ""
998
999 #. type: Plain text
1000 #: build/C/man7/ddp.7:34
1001 msgid ""
1002 "Linux implements the Appletalk protocols described in I<Inside Appletalk>.  "
1003 "Only the DDP layer and AARP are present in the kernel.  They are designed to "
1004 "be used via the B<netatalk> protocol libraries.  This page documents the "
1005 "interface for those who wish or need to use the DDP layer directly."
1006 msgstr ""
1007
1008 #. type: Plain text
1009 #: build/C/man7/ddp.7:39
1010 msgid ""
1011 "The communication between Appletalk and the user program works using a "
1012 "BSD-compatible socket interface.  For more information on sockets, see "
1013 "B<socket>(7)."
1014 msgstr ""
1015
1016 #. type: Plain text
1017 #: build/C/man7/ddp.7:60
1018 msgid ""
1019 "An AppleTalk socket is created by calling the B<socket>(2)  function with a "
1020 "B<AF_APPLETALK> socket family argument.  Valid socket types are "
1021 "B<SOCK_DGRAM> to open a B<ddp> socket or B<SOCK_RAW> to open a B<raw> "
1022 "socket.  I<protocol> is the Appletalk protocol to be received or sent.  For "
1023 "B<SOCK_RAW> you must specify B<ATPROTO_DDP>."
1024 msgstr ""
1025
1026 #. type: Plain text
1027 #: build/C/man7/ddp.7:65
1028 msgid ""
1029 "Raw sockets may be opened only by a process with effective user ID 0 or when "
1030 "the process has the B<CAP_NET_RAW> capability."
1031 msgstr ""
1032
1033 #. type: SS
1034 #: build/C/man7/ddp.7:65 build/C/man7/ip.7:123 build/C/man7/ipv6.7:142 build/C/man7/raw.7:93 build/C/man7/udp.7:98 build/C/man7/udplite.7:58 build/C/man7/unix.7:55
1035 #, no-wrap
1036 msgid "Address format"
1037 msgstr ""
1038
1039 #. type: Plain text
1040 #: build/C/man7/ddp.7:68
1041 msgid ""
1042 "An Appletalk socket address is defined as a combination of a network number, "
1043 "a node number, and a port number."
1044 msgstr ""
1045
1046 #. type: Plain text
1047 #: build/C/man7/ddp.7:75
1048 #, no-wrap
1049 msgid ""
1050 "struct at_addr {\n"
1051 "    unsigned short s_net;\n"
1052 "    unsigned char  s_node;\n"
1053 "};\n"
1054 msgstr ""
1055
1056 #. type: Plain text
1057 #: build/C/man7/ddp.7:81
1058 #, no-wrap
1059 msgid ""
1060 "struct sockaddr_atalk {\n"
1061 "    sa_family_t    sat_family;    /* address family */\n"
1062 "    unsigned char  sat_port;      /* port */\n"
1063 "    struct at_addr sat_addr;      /* net/node */\n"
1064 "};\n"
1065 msgstr ""
1066
1067 #.  FIXME this doesn't make sense [johnl]
1068 #. type: Plain text
1069 #: build/C/man7/ddp.7:120
1070 msgid ""
1071 "I<sat_family> is always set to B<AF_APPLETALK>.  I<sat_port> contains the "
1072 "port.  The port numbers below 129 are known as I<reserved ports>.  Only "
1073 "processes with the effective user ID 0 or the B<CAP_NET_BIND_SERVICE> "
1074 "capability may B<bind>(2)  to these sockets.  I<sat_addr> is the host "
1075 "address.  The I<net> member of I<struct at_addr> contains the host network "
1076 "in network byte order.  The value of B<AT_ANYNET> is a wildcard and also "
1077 "implies \\(lqthis network.\\(rq The I<node> member of I<struct at_addr> "
1078 "contains the host node number.  The value of B<AT_ANYNODE> is a wildcard and "
1079 "also implies \\(lqthis node.\\(rq The value of B<ATADDR_BCAST> is a link "
1080 "local broadcast address."
1081 msgstr ""
1082
1083 #. type: SS
1084 #: build/C/man7/ddp.7:120 build/C/man7/ip.7:224 build/C/man7/ipv6.7:192 build/C/man7/packet.7:180 build/C/man7/raw.7:109 build/C/man7/tcp.7:871 build/C/man7/udp.7:178 build/C/man7/udplite.7:67 build/C/man7/unix.7:137 build/C/man7/x25.7:72
1085 #, no-wrap
1086 msgid "Socket options"
1087 msgstr ""
1088
1089 #. type: Plain text
1090 #: build/C/man7/ddp.7:122
1091 msgid "No protocol-specific socket options are supported."
1092 msgstr ""
1093
1094 #. type: Plain text
1095 #: build/C/man7/ddp.7:128
1096 msgid ""
1097 "IP supports a set of I</proc> interfaces to configure some global AppleTalk "
1098 "parameters.  The parameters can be accessed by reading or writing files in "
1099 "the directory I</proc/sys/net/atalk/>."
1100 msgstr ""
1101
1102 #. type: TP
1103 #: build/C/man7/ddp.7:128
1104 #, no-wrap
1105 msgid "I<aarp-expiry-time>"
1106 msgstr ""
1107
1108 #. type: Plain text
1109 #: build/C/man7/ddp.7:131
1110 msgid "The time interval (in seconds) before an AARP cache entry expires."
1111 msgstr ""
1112
1113 #. type: TP
1114 #: build/C/man7/ddp.7:131
1115 #, no-wrap
1116 msgid "I<aarp-resolve-time>"
1117 msgstr ""
1118
1119 #. type: Plain text
1120 #: build/C/man7/ddp.7:134
1121 msgid "The time interval (in seconds) before an AARP cache entry is resolved."
1122 msgstr ""
1123
1124 #. type: TP
1125 #: build/C/man7/ddp.7:134
1126 #, no-wrap
1127 msgid "I<aarp-retransmit-limit>"
1128 msgstr ""
1129
1130 #. type: Plain text
1131 #: build/C/man7/ddp.7:138
1132 msgid ""
1133 "The number of retransmissions of an AARP query before the node is declared "
1134 "dead."
1135 msgstr ""
1136
1137 #. type: TP
1138 #: build/C/man7/ddp.7:138
1139 #, no-wrap
1140 msgid "I<aarp-tick-time>"
1141 msgstr ""
1142
1143 #. type: Plain text
1144 #: build/C/man7/ddp.7:141
1145 msgid "The timer rate (in seconds) for the timer driving AARP."
1146 msgstr ""
1147
1148 #. type: Plain text
1149 #: build/C/man7/ddp.7:144
1150 msgid ""
1151 "The default values match the specification and should never need to be "
1152 "changed."
1153 msgstr ""
1154
1155 #.  FIXME Add a section about multicasting
1156 #. type: Plain text
1157 #: build/C/man7/ddp.7:149
1158 msgid "All ioctls described in B<socket>(7)  apply to DDP."
1159 msgstr ""
1160
1161 #. type: SH
1162 #: build/C/man7/ddp.7:149 build/C/man3/gethostbyname.3:292 build/C/man3/getnetent_r.3:129 build/C/man2/getpeername.2:73 build/C/man3/getprotoent_r.3:119 build/C/man3/getservent_r.3:118 build/C/man3/inet_ntop.3:91 build/C/man7/ip.7:1064 build/C/man7/ipv6.7:351 build/C/man7/packet.7:466 build/C/man7/raw.7:144 build/C/man2/shutdown.2:74 build/C/man7/tcp.7:1208 build/C/man7/udp.7:241 build/C/man7/udplite.7:121 build/C/man7/unix.7:322
1163 #, no-wrap
1164 msgid "ERRORS"
1165 msgstr ""
1166
1167 #. type: TP
1168 #: build/C/man7/ddp.7:153 build/C/man7/ip.7:1068 build/C/man7/raw.7:145
1169 #, no-wrap
1170 msgid "B<EACCES>"
1171 msgstr ""
1172
1173 #. type: Plain text
1174 #: build/C/man7/ddp.7:160
1175 msgid ""
1176 "The user tried to execute an operation without the necessary permissions.  "
1177 "These include sending to a broadcast address without having the broadcast "
1178 "flag set, and trying to bind to a reserved port without effective user ID 0 "
1179 "or B<CAP_NET_BIND_SERVICE>."
1180 msgstr ""
1181
1182 #. type: TP
1183 #: build/C/man7/ddp.7:160 build/C/man7/ip.7:1084 build/C/man7/unix.7:323
1184 #, no-wrap
1185 msgid "B<EADDRINUSE>"
1186 msgstr ""
1187
1188 #. type: Plain text
1189 #: build/C/man7/ddp.7:163 build/C/man7/ip.7:1087
1190 msgid "Tried to bind to an address already in use."
1191 msgstr ""
1192
1193 #. type: TP
1194 #: build/C/man7/ddp.7:163 build/C/man7/ip.7:1087 build/C/man7/packet.7:467
1195 #, no-wrap
1196 msgid "B<EADDRNOTAVAIL>"
1197 msgstr ""
1198
1199 #. type: Plain text
1200 #: build/C/man7/ddp.7:167 build/C/man7/ip.7:1091
1201 msgid ""
1202 "A nonexistent interface was requested or the requested source address was "
1203 "not local."
1204 msgstr ""
1205
1206 #. type: TP
1207 #: build/C/man7/ddp.7:167 build/C/man7/ip.7:1091
1208 #, no-wrap
1209 msgid "B<EAGAIN>"
1210 msgstr ""
1211
1212 #. type: Plain text
1213 #: build/C/man7/ddp.7:170 build/C/man7/ip.7:1094
1214 msgid "Operation on a nonblocking socket would block."
1215 msgstr ""
1216
1217 #. type: TP
1218 #: build/C/man7/ddp.7:170 build/C/man7/ip.7:1094
1219 #, no-wrap
1220 msgid "B<EALREADY>"
1221 msgstr ""
1222
1223 #. type: Plain text
1224 #: build/C/man7/ddp.7:173
1225 msgid "A connection operation on a nonblocking socket is already in progress."
1226 msgstr ""
1227
1228 #. type: TP
1229 #: build/C/man7/ddp.7:173 build/C/man7/ip.7:1097
1230 #, no-wrap
1231 msgid "B<ECONNABORTED>"
1232 msgstr ""
1233
1234 #. type: Plain text
1235 #: build/C/man7/ddp.7:177 build/C/man7/ip.7:1101
1236 msgid "A connection was closed during an B<accept>(2)."
1237 msgstr ""
1238
1239 #. type: TP
1240 #: build/C/man7/ddp.7:177 build/C/man7/ip.7:1101
1241 #, no-wrap
1242 msgid "B<EHOSTUNREACH>"
1243 msgstr ""
1244
1245 #. type: Plain text
1246 #: build/C/man7/ddp.7:180
1247 msgid "No routing table entry matches the destination address."
1248 msgstr ""
1249
1250 #. type: TP
1251 #: build/C/man7/ddp.7:180 build/C/man2/getpeername.2:85 build/C/man7/ip.7:1106 build/C/man7/packet.7:473 build/C/man7/raw.7:152 build/C/man2/shutdown.2:79 build/C/man7/unix.7:339
1252 #, no-wrap
1253 msgid "B<EINVAL>"
1254 msgstr ""
1255
1256 #. type: Plain text
1257 #: build/C/man7/ddp.7:183
1258 msgid "Invalid argument passed."
1259 msgstr ""
1260
1261 #. type: TP
1262 #: build/C/man7/ddp.7:183 build/C/man7/ip.7:1112 build/C/man7/unix.7:348
1263 #, no-wrap
1264 msgid "B<EISCONN>"
1265 msgstr ""
1266
1267 #. type: Plain text
1268 #: build/C/man7/ddp.7:187 build/C/man7/ip.7:1116
1269 msgid "B<connect>(2)  was called on an already connected socket."
1270 msgstr ""
1271
1272 #. type: TP
1273 #: build/C/man7/ddp.7:187 build/C/man7/ip.7:1116 build/C/man7/packet.7:476 build/C/man7/raw.7:155
1274 #, no-wrap
1275 msgid "B<EMSGSIZE>"
1276 msgstr ""
1277
1278 #. type: Plain text
1279 #: build/C/man7/ddp.7:190
1280 msgid "Datagram is bigger than the DDP MTU."
1281 msgstr ""
1282
1283 #. type: TP
1284 #: build/C/man7/ddp.7:190 build/C/man7/ipv6.7:353 build/C/man7/packet.7:485
1285 #, no-wrap
1286 msgid "B<ENODEV>"
1287 msgstr ""
1288
1289 #. type: Plain text
1290 #: build/C/man7/ddp.7:193
1291 msgid "Network device not available or not capable of sending IP."
1292 msgstr ""
1293
1294 #. type: TP
1295 #: build/C/man7/ddp.7:193 build/C/man3/getnetent_r.3:130 build/C/man3/getprotoent_r.3:120 build/C/man3/getservent_r.3:119 build/C/man7/ip.7:1124 build/C/man7/packet.7:488 build/C/man7/unix.7:353
1296 #, no-wrap
1297 msgid "B<ENOENT>"
1298 msgstr ""
1299
1300 #. type: Plain text
1301 #: build/C/man7/ddp.7:197 build/C/man7/ip.7:1128
1302 msgid "B<SIOCGSTAMP> was called on a socket where no packet arrived."
1303 msgstr ""
1304
1305 #. type: TP
1306 #: build/C/man7/ddp.7:197
1307 #, no-wrap
1308 msgid "B<ENOMEM> and B<ENOBUFS>"
1309 msgstr ""
1310
1311 #. type: Plain text
1312 #: build/C/man7/ddp.7:200
1313 msgid "Not enough memory available."
1314 msgstr ""
1315
1316 #. type: TP
1317 #: build/C/man7/ddp.7:200 build/C/man7/ip.7:1128
1318 #, no-wrap
1319 msgid "B<ENOPKG>"
1320 msgstr ""
1321
1322 #. type: Plain text
1323 #: build/C/man7/ddp.7:203 build/C/man7/ip.7:1131
1324 msgid "A kernel subsystem was not configured."
1325 msgstr ""
1326
1327 #. type: TP
1328 #: build/C/man7/ddp.7:203 build/C/man7/ip.7:1131
1329 #, no-wrap
1330 msgid "B<ENOPROTOOPT> and B<EOPNOTSUPP>"
1331 msgstr ""
1332
1333 #. type: Plain text
1334 #: build/C/man7/ddp.7:206 build/C/man7/ip.7:1134
1335 msgid "Invalid socket option passed."
1336 msgstr ""
1337
1338 #. type: TP
1339 #: build/C/man7/ddp.7:206 build/C/man2/getpeername.2:93 build/C/man7/ip.7:1134 build/C/man7/packet.7:491 build/C/man2/shutdown.2:84 build/C/man7/unix.7:361
1340 #, no-wrap
1341 msgid "B<ENOTCONN>"
1342 msgstr ""
1343
1344 #. type: Plain text
1345 #: build/C/man7/ddp.7:210 build/C/man7/ip.7:1138
1346 msgid ""
1347 "The operation is defined only on a connected socket, but the socket wasn't "
1348 "connected."
1349 msgstr ""
1350
1351 #. type: TP
1352 #: build/C/man7/ddp.7:210 build/C/man7/ip.7:1138 build/C/man7/packet.7:497 build/C/man7/raw.7:166 build/C/man7/unix.7:368
1353 #, no-wrap
1354 msgid "B<EPERM>"
1355 msgstr ""
1356
1357 #. type: Plain text
1358 #: build/C/man7/ddp.7:215
1359 msgid ""
1360 "User doesn't have permission to set high priority, make a configuration "
1361 "change, or send signals to the requested process or group."
1362 msgstr ""
1363
1364 #. type: TP
1365 #: build/C/man7/ddp.7:215 build/C/man7/ip.7:1142 build/C/man7/tcp.7:1215 build/C/man7/unix.7:372
1366 #, no-wrap
1367 msgid "B<EPIPE>"
1368 msgstr ""
1369
1370 #. type: Plain text
1371 #: build/C/man7/ddp.7:218 build/C/man7/ip.7:1145
1372 msgid "The connection was unexpectedly closed or shut down by the other end."
1373 msgstr ""
1374
1375 #. type: TP
1376 #: build/C/man7/ddp.7:218 build/C/man7/ip.7:1145 build/C/man7/unix.7:394
1377 #, no-wrap
1378 msgid "B<ESOCKTNOSUPPORT>"
1379 msgstr ""
1380
1381 #. type: Plain text
1382 #: build/C/man7/ddp.7:221
1383 msgid "The socket was unconfigured, or an unknown socket type was requested."
1384 msgstr ""
1385
1386 #. type: Plain text
1387 #: build/C/man7/ddp.7:226
1388 msgid ""
1389 "Appletalk is supported by Linux 2.0 or higher.  The I</proc> interfaces "
1390 "exist since Linux 2.2."
1391 msgstr ""
1392
1393 #. type: Plain text
1394 #: build/C/man7/ddp.7:232
1395 msgid ""
1396 "Be very careful with the B<SO_BROADCAST> option - it is not privileged in "
1397 "Linux.  It is easy to overload the network with careless sending to "
1398 "broadcast addresses."
1399 msgstr ""
1400
1401 #. type: SS
1402 #: build/C/man7/ddp.7:232 build/C/man7/ip.7:1204 build/C/man7/packet.7:551
1403 #, no-wrap
1404 msgid "Compatibility"
1405 msgstr ""
1406
1407 #. type: Plain text
1408 #: build/C/man7/ddp.7:239
1409 msgid ""
1410 "The basic AppleTalk socket interface is compatible with B<netatalk> on "
1411 "BSD-derived systems.  Many BSD systems fail to check B<SO_BROADCAST> when "
1412 "sending broadcast frames; this can lead to compatibility problems."
1413 msgstr ""
1414
1415 #. type: Plain text
1416 #: build/C/man7/ddp.7:244
1417 msgid ""
1418 "The raw socket mode is unique to Linux and exists to support the alternative "
1419 "CAP package and AppleTalk monitoring tools more easily."
1420 msgstr ""
1421
1422 #. type: Plain text
1423 #: build/C/man7/ddp.7:246 build/C/man7/ip.7:1219
1424 msgid "There are too many inconsistent error values."
1425 msgstr ""
1426
1427 #. type: Plain text
1428 #: build/C/man7/ddp.7:249
1429 msgid ""
1430 "The ioctls used to configure routing tables, devices, AARP tables and other "
1431 "devices are not yet described."
1432 msgstr ""
1433
1434 #. type: Plain text
1435 #: build/C/man7/ddp.7:254
1436 msgid "B<recvmsg>(2), B<sendmsg>(2), B<capabilities>(7), B<socket>(7)"
1437 msgstr ""
1438
1439 #. type: TH
1440 #: build/C/man3/endian.3:28
1441 #, no-wrap
1442 msgid "ENDIAN"
1443 msgstr ""
1444
1445 #. type: TH
1446 #: build/C/man3/endian.3:28 build/C/man3/getnetent_r.3:26 build/C/man3/getprotoent_r.3:26 build/C/man3/getservent_r.3:26
1447 #, no-wrap
1448 msgid "2010-09-10"
1449 msgstr ""
1450
1451 #. type: Plain text
1452 #: build/C/man3/endian.3:33
1453 msgid ""
1454 "htobe16, htole16, be16toh, le16toh, htobe32, htole32, be32toh, le32toh, "
1455 "htobe64, htole64, be64toh, le64toh - convert values between host and "
1456 "big-/little-endian byte order"
1457 msgstr ""
1458
1459 #. type: Plain text
1460 #: build/C/man3/endian.3:37
1461 #, no-wrap
1462 msgid ""
1463 "B<#define _BSD_SOURCE>             /* See feature_test_macros(7) */\n"
1464 "B<#include E<lt>endian.hE<gt>>\n"
1465 msgstr ""
1466
1467 #. type: Plain text
1468 #: build/C/man3/endian.3:42
1469 #, no-wrap
1470 msgid ""
1471 "B<uint16_t htobe16(uint16_t >I<host_16bits>B<);>\n"
1472 "B<uint16_t htole16(uint16_t >I<host_16bits>B<);>\n"
1473 "B<uint16_t be16toh(uint16_t >I<big_endian_16bits>B<);>\n"
1474 "B<uint16_t le16toh(uint16_t >I<little_endian_16bits>B<);>\n"
1475 msgstr ""
1476
1477 #. type: Plain text
1478 #: build/C/man3/endian.3:47
1479 #, no-wrap
1480 msgid ""
1481 "B<uint32_t htobe32(uint32_t >I<host_32bits>B<);>\n"
1482 "B<uint32_t htole32(uint32_t >I<host_32bits>B<);>\n"
1483 "B<uint32_t be32toh(uint32_t >I<big_endian_32bits>B<);>\n"
1484 "B<uint32_t le32toh(uint32_t >I<little_endian_32bits>B<);>\n"
1485 msgstr ""
1486
1487 #. type: Plain text
1488 #: build/C/man3/endian.3:52
1489 #, no-wrap
1490 msgid ""
1491 "B<uint64_t htobe64(uint64_t >I<host_64bits>B<);>\n"
1492 "B<uint64_t htole64(uint64_t >I<host_64bits>B<);>\n"
1493 "B<uint64_t be64toh(uint64_t >I<big_endian_64bits>B<);>\n"
1494 "B<uint64_t le64toh(uint64_t >I<little_endian_64bits>B<);>\n"
1495 msgstr ""
1496
1497 #. type: Plain text
1498 #: build/C/man3/endian.3:57
1499 msgid ""
1500 "These functions convert the byte encoding of integer values from the byte "
1501 "order that the current CPU (the \"host\") uses, to and from little-endian "
1502 "and big-endian byte order."
1503 msgstr ""
1504
1505 #. type: Plain text
1506 #: build/C/man3/endian.3:62
1507 msgid ""
1508 "The number, I<nn>, in the name of each function indicates the size of "
1509 "integer handled by the function, either 16, 32, or 64 bits."
1510 msgstr ""
1511
1512 #. type: Plain text
1513 #: build/C/man3/endian.3:65
1514 msgid ""
1515 "The functions with names of the form \"htobeI<nn>\" convert from host byte "
1516 "order to big-endian order."
1517 msgstr ""
1518
1519 #. type: Plain text
1520 #: build/C/man3/endian.3:68
1521 msgid ""
1522 "The functions with names of the form \"htoleI<nn>\" convert from host byte "
1523 "order to little-endian order."
1524 msgstr ""
1525
1526 #. type: Plain text
1527 #: build/C/man3/endian.3:71
1528 msgid ""
1529 "The functions with names of the form \"beI<nn>toh\" convert from big-endian "
1530 "order to host byte order."
1531 msgstr ""
1532
1533 #. type: Plain text
1534 #: build/C/man3/endian.3:74
1535 msgid ""
1536 "The functions with names of the form \"leI<nn>toh\" convert from "
1537 "little-endian order to host byte order."
1538 msgstr ""
1539
1540 #. type: Plain text
1541 #: build/C/man3/endian.3:76
1542 msgid "These functions were added to glibc in version 2.9."
1543 msgstr ""
1544
1545 #. type: Plain text
1546 #: build/C/man3/endian.3:91
1547 msgid ""
1548 "These functions are nonstandard.  Similar functions are present on the BSDs, "
1549 "where the required header file is I<E<lt>sys/endian.hE<gt>> instead of "
1550 "I<E<lt>endian.hE<gt>>.  Unfortunately, NetBSD, FreeBSD, and glibc haven't "
1551 "followed the original OpenBSD naming convention for these functions, whereby "
1552 "the I<nn> component always appears at the end of the function name (thus, "
1553 "for example, in NetBSD, FreeBSD, and glibc, the equivalent of OpenBSDs "
1554 "\"betoh32\" is \"be32toh\")."
1555 msgstr ""
1556
1557 #. type: Plain text
1558 #: build/C/man3/endian.3:99
1559 msgid ""
1560 "These functions are similar to the older B<byteorder>(3)  family of "
1561 "functions.  For example, B<be32toh>()  is identical to B<ntohl>()."
1562 msgstr ""
1563
1564 #. type: Plain text
1565 #: build/C/man3/endian.3:107
1566 msgid ""
1567 "The advantage of the B<byteorder>(3)  functions is that they are standard "
1568 "functions available on all UNIX systems.  On the other hand, the fact that "
1569 "they were designed for use in the context of TCP/IP means that they lack the "
1570 "64-bit and little-endian variants described in this page."
1571 msgstr ""
1572
1573 #. type: Plain text
1574 #: build/C/man3/endian.3:114
1575 msgid ""
1576 "The program below display the results of converting an integer from host "
1577 "byte order to both little-endian and big-endian byte order.  Since host byte "
1578 "order is either little-endian or big-endian, only one of these conversions "
1579 "will have an effect.  When we run this program on a little-endian system "
1580 "such as x86-32, we see the following:"
1581 msgstr ""
1582
1583 #. type: Plain text
1584 #: build/C/man3/endian.3:121
1585 #, no-wrap
1586 msgid ""
1587 "$ B<./a.out>\n"
1588 "x.u32 = 0x44332211\n"
1589 "htole32(x.u32) = 0x44332211\n"
1590 "htobe32(x.u32) = 0x11223344\n"
1591 msgstr ""
1592
1593 #. type: SS
1594 #: build/C/man3/endian.3:123 build/C/man3/getprotoent_r.3:162 build/C/man3/getservent_r.3:160 build/C/man3/inet.3:270 build/C/man3/inet_pton.3:173
1595 #, no-wrap
1596 msgid "Program source"
1597 msgstr ""
1598
1599 #. type: Plain text
1600 #: build/C/man3/endian.3:130
1601 #, no-wrap
1602 msgid ""
1603 "#include E<lt>endian.hE<gt>\n"
1604 "#include E<lt>stdint.hE<gt>\n"
1605 "#include E<lt>stdio.hE<gt>\n"
1606 "#include E<lt>stdlib.hE<gt>\n"
1607 msgstr ""
1608
1609 #. type: Plain text
1610 #: build/C/man3/endian.3:138
1611 #, no-wrap
1612 msgid ""
1613 "int\n"
1614 "main(int argc, char *argv[])\n"
1615 "{\n"
1616 "    union {\n"
1617 "        uint32_t u32;\n"
1618 "        uint8_t arr[4];\n"
1619 "    } x;\n"
1620 msgstr ""
1621
1622 #. type: Plain text
1623 #: build/C/man3/endian.3:143
1624 #, no-wrap
1625 msgid ""
1626 "    x.arr[0] = 0x11;\t/* Lowest-address byte */\n"
1627 "    x.arr[1] = 0x22;\n"
1628 "    x.arr[2] = 0x33;\n"
1629 "    x.arr[3] = 0x44;\t/* Highest-address byte */\n"
1630 msgstr ""
1631
1632 #. type: Plain text
1633 #: build/C/man3/endian.3:147
1634 #, no-wrap
1635 msgid ""
1636 "    printf(\"x.u32 = 0x%x\\en\", x.u32);\n"
1637 "    printf(\"htole32(x.u32) = 0x%x\\en\", htole32(x.u32));\n"
1638 "    printf(\"htobe32(x.u32) = 0x%x\\en\", htobe32(x.u32));\n"
1639 msgstr ""
1640
1641 #. type: Plain text
1642 #: build/C/man3/endian.3:150 build/C/man3/getaddrinfo.3:826 build/C/man3/getprotoent_r.3:236 build/C/man3/getservent_r.3:240 build/C/man3/inet_pton.3:214
1643 #, no-wrap
1644 msgid ""
1645 "    exit(EXIT_SUCCESS);\n"
1646 "}\n"
1647 msgstr ""
1648
1649 #. type: Plain text
1650 #: build/C/man3/endian.3:153
1651 msgid "B<byteorder>(3)"
1652 msgstr ""
1653
1654 #. type: TH
1655 #: build/C/man3/ether_aton.3:31
1656 #, no-wrap
1657 msgid "ETHER_ATON"
1658 msgstr ""
1659
1660 #. type: TH
1661 #: build/C/man3/ether_aton.3:31
1662 #, no-wrap
1663 msgid "2013-07-04"
1664 msgstr ""
1665
1666 #. type: Plain text
1667 #: build/C/man3/ether_aton.3:35
1668 msgid ""
1669 "ether_aton, ether_ntoa, ether_ntohost, ether_hostton, ether_line, "
1670 "ether_ntoa_r, ether_aton_r - Ethernet address manipulation routines"
1671 msgstr ""
1672
1673 #. type: Plain text
1674 #: build/C/man3/ether_aton.3:38
1675 #, no-wrap
1676 msgid "B<#include E<lt>netinet/ether.hE<gt>>\n"
1677 msgstr ""
1678
1679 #. type: Plain text
1680 #: build/C/man3/ether_aton.3:40
1681 #, no-wrap
1682 msgid "B<char *ether_ntoa(const struct ether_addr *>I<addr>B<);>\n"
1683 msgstr ""
1684
1685 #. type: Plain text
1686 #: build/C/man3/ether_aton.3:42
1687 #, no-wrap
1688 msgid "B<struct ether_addr *ether_aton(const char *>I<asc>B<);>\n"
1689 msgstr ""
1690
1691 #. type: Plain text
1692 #: build/C/man3/ether_aton.3:44
1693 #, no-wrap
1694 msgid ""
1695 "B<int ether_ntohost(char *>I<hostname>B<, const struct ether_addr "
1696 "*>I<addr>B<);>\n"
1697 msgstr ""
1698
1699 #. type: Plain text
1700 #: build/C/man3/ether_aton.3:46
1701 #, no-wrap
1702 msgid ""
1703 "B<int ether_hostton(const char *>I<hostname>B<, struct ether_addr "
1704 "*>I<addr>B<);>\n"
1705 msgstr ""
1706
1707 #. type: Plain text
1708 #: build/C/man3/ether_aton.3:49
1709 #, no-wrap
1710 msgid ""
1711 "B<int ether_line(const char *>I<line>B<, struct ether_addr *>I<addr>B<,>\n"
1712 "B<               char *>I<hostname>B<);>\n"
1713 msgstr ""
1714
1715 #. type: Plain text
1716 #: build/C/man3/ether_aton.3:51 build/C/man3/gethostbyname.3:70
1717 #, no-wrap
1718 msgid "/* GNU extensions */\n"
1719 msgstr ""
1720
1721 #. type: Plain text
1722 #: build/C/man3/ether_aton.3:53
1723 #, no-wrap
1724 msgid ""
1725 "B<char *ether_ntoa_r(const struct ether_addr *>I<addr>B<, char "
1726 "*>I<buf>B<);>\n"
1727 msgstr ""
1728
1729 #. type: Plain text
1730 #: build/C/man3/ether_aton.3:56
1731 #, no-wrap
1732 msgid ""
1733 "B<struct ether_addr *ether_aton_r(const char *>I<asc>B<,>\n"
1734 "B<                                struct ether_addr *>I<addr>B<);>\n"
1735 msgstr ""
1736
1737 #. type: Plain text
1738 #: build/C/man3/ether_aton.3:67
1739 msgid ""
1740 "B<ether_aton>()  converts the 48-bit Ethernet host address I<asc> from the "
1741 "standard hex-digits-and-colons notation into binary data in network byte "
1742 "order and returns a pointer to it in a statically allocated buffer, which "
1743 "subsequent calls will overwrite.  B<ether_aton>()  returns NULL if the "
1744 "address is invalid."
1745 msgstr ""
1746
1747 #. type: Plain text
1748 #: build/C/man3/ether_aton.3:76
1749 msgid ""
1750 "The B<ether_ntoa>()  function converts the Ethernet host address I<addr> "
1751 "given in network byte order to a string in standard hex-digits-and-colons "
1752 "notation, omitting leading zeros.  The string is returned in a statically "
1753 "allocated buffer, which subsequent calls will overwrite."
1754 msgstr ""
1755
1756 #. type: Plain text
1757 #: build/C/man3/ether_aton.3:83
1758 msgid ""
1759 "The B<ether_ntohost>()  function maps an Ethernet address to the "
1760 "corresponding hostname in I</etc/ethers> and returns nonzero if it cannot be "
1761 "found."
1762 msgstr ""
1763
1764 #. type: Plain text
1765 #: build/C/man3/ether_aton.3:90
1766 msgid ""
1767 "The B<ether_hostton>()  function maps a hostname to the corresponding "
1768 "Ethernet address in I</etc/ethers> and returns nonzero if it cannot be "
1769 "found."
1770 msgstr ""
1771
1772 #. type: Plain text
1773 #: build/C/man3/ether_aton.3:102
1774 msgid ""
1775 "The B<ether_line>()  function parses a line in I</etc/ethers> format "
1776 "(ethernet address followed by whitespace followed by hostname; \\(aq#\\(aq "
1777 "introduces a comment) and returns an address and hostname pair, or nonzero "
1778 "if it cannot be parsed.  The buffer pointed to by I<hostname> must be "
1779 "sufficiently long, for example, have the same length as I<line>."
1780 msgstr ""
1781
1782 #. type: Plain text
1783 #: build/C/man3/ether_aton.3:113
1784 msgid ""
1785 "The functions B<ether_ntoa_r>()  and B<ether_aton_r>()  are reentrant "
1786 "thread-safe versions of B<ether_ntoa>()  and B<ether_aton>()  respectively, "
1787 "and do not use static buffers."
1788 msgstr ""
1789
1790 #. type: Plain text
1791 #: build/C/man3/ether_aton.3:119
1792 msgid "The structure I<ether_addr> is defined in I<E<lt>net/ethernet.hE<gt>> as:"
1793 msgstr ""
1794
1795 #. type: Plain text
1796 #: build/C/man3/ether_aton.3:125
1797 #, no-wrap
1798 msgid ""
1799 "struct ether_addr {\n"
1800 "    uint8_t ether_addr_octet[6];\n"
1801 "}\n"
1802 msgstr ""
1803
1804 #. type: SH
1805 #: build/C/man3/ether_aton.3:127 build/C/man3/rexec.3:142
1806 #, no-wrap
1807 msgid "ATTRIBUTES"
1808 msgstr ""
1809
1810 #. type: SS
1811 #: build/C/man3/ether_aton.3:128 build/C/man3/rexec.3:143
1812 #, no-wrap
1813 msgid "Multithreading (see pthreads(7))"
1814 msgstr ""
1815
1816 #. type: Plain text
1817 #: build/C/man3/ether_aton.3:134
1818 msgid "The B<ether_aton>()  and B<ether_ntoa>()  functions are not thread-safe."
1819 msgstr ""
1820
1821 #. type: Plain text
1822 #: build/C/man3/ether_aton.3:143
1823 msgid ""
1824 "The B<ether_ntohost>(), B<ether_hostton>(), B<ether_line>(), "
1825 "B<ether_ntoa_r>()  and B<ether_aton_r>()  functions are thread-safe."
1826 msgstr ""
1827
1828 #. type: Plain text
1829 #: build/C/man3/ether_aton.3:145
1830 msgid "4.3BSD, SunOS."
1831 msgstr ""
1832
1833 #. type: Plain text
1834 #: build/C/man3/ether_aton.3:149
1835 msgid "The glibc 2.2.5 implementation of B<ether_line>()  is broken."
1836 msgstr ""
1837
1838 #. type: Plain text
1839 #: build/C/man3/ether_aton.3:151
1840 msgid "B<ethers>(5)"
1841 msgstr ""
1842
1843 #. type: TH
1844 #: build/C/man5/gai.conf.5:19
1845 #, no-wrap
1846 msgid "GAI.CONF"
1847 msgstr ""
1848
1849 #. type: TH
1850 #: build/C/man5/gai.conf.5:19 build/C/man5/nss.5:19
1851 #, no-wrap
1852 msgid "2013-02-13"
1853 msgstr ""
1854
1855 #. type: Plain text
1856 #: build/C/man5/gai.conf.5:22
1857 msgid "gai.conf - getaddrinfo(3) configuration file"
1858 msgstr ""
1859
1860 #. type: Plain text
1861 #: build/C/man5/gai.conf.5:36
1862 msgid ""
1863 "A call to B<getaddrinfo>(3)  might return multiple answers.  According to "
1864 "RFC\\ 3484 these answers must be sorted so that the answer with the highest "
1865 "success rate is first in the list.  The RFC provides an algorithm for the "
1866 "sorting.  The static rules are not always adequate, though.  For this "
1867 "reason, the RFC also requires that system administrators should have the "
1868 "possibility to dynamically change the sorting.  For the glibc "
1869 "implementation, this can be achieved with the I</etc/gai.conf> file."
1870 msgstr ""
1871
1872 #. type: Plain text
1873 #: build/C/man5/gai.conf.5:40
1874 msgid ""
1875 "Each line in the configuration file consists of a keyword and its "
1876 "parameters.  White spaces in any place are ignored.  Lines starting with "
1877 "\\(aq#\\(aq are comments and are ignored."
1878 msgstr ""
1879
1880 #. type: Plain text
1881 #: build/C/man5/gai.conf.5:42
1882 msgid "The keywords currently recognized are:"
1883 msgstr ""
1884
1885 #. type: TP
1886 #: build/C/man5/gai.conf.5:42
1887 #, no-wrap
1888 msgid "B<label> I<netmask> I<precedence>"
1889 msgstr ""
1890
1891 #. type: Plain text
1892 #: build/C/man5/gai.conf.5:51
1893 msgid ""
1894 "The value is added to the label table used in the RFC\\ 3484 sorting.  If "
1895 "any B<label> definition is present in the configuration file is present, the "
1896 "default table is not used.  All the label definitions of the default table "
1897 "which are to be maintained have to be duplicated.  Following the keyword, "
1898 "the line has to contain a network mask and a label value."
1899 msgstr ""
1900
1901 #. type: TP
1902 #: build/C/man5/gai.conf.5:51
1903 #, no-wrap
1904 msgid "B<precedence> I<netmask> I<precedence>"
1905 msgstr ""
1906
1907 #. type: Plain text
1908 #: build/C/man5/gai.conf.5:58
1909 msgid ""
1910 "This keyword is similar to B<label>, but instead the value is added to the "
1911 "precedence table as specified in RFC\\ 3484.  Once again, the presence of a "
1912 "single B<precedence> line in the configuration file causes the default table "
1913 "to not be used."
1914 msgstr ""
1915
1916 #. type: TP
1917 #: build/C/man5/gai.conf.5:58
1918 #, no-wrap
1919 msgid "B<reload> E<lt>B<yes>|B<no>E<gt>"
1920 msgstr ""
1921
1922 #. type: Plain text
1923 #: build/C/man5/gai.conf.5:67
1924 msgid ""
1925 "This keyword controls whether a process checks whether the configuration "
1926 "file has been changed since the last time it was read.  If the value is "
1927 "\"B<yes>\" the file is re-read.  This might cause problems in multithreaded "
1928 "applications and is generally a bad idea.  The default is \"B<no>\"."
1929 msgstr ""
1930
1931 #. type: TP
1932 #: build/C/man5/gai.conf.5:67
1933 #, no-wrap
1934 msgid "B<scopev4> I<mask> I<value>"
1935 msgstr ""
1936
1937 #. type: Plain text
1938 #: build/C/man5/gai.conf.5:72
1939 msgid ""
1940 "Add another rule to the RFC\\ 3484 scope table for IPv4 address.  By "
1941 "default, the scope IDs described in section 3.2 in RFC\\ 3438 are used.  "
1942 "Changing these defaults should hardly ever be necessary."
1943 msgstr ""
1944
1945 #. type: SH
1946 #: build/C/man5/gai.conf.5:72 build/C/man3/getaddrinfo.3:592 build/C/man3/gethostbyname.3:307 build/C/man3/getnameinfo.3:197 build/C/man3/getnetent.3:141 build/C/man3/getprotoent.3:134 build/C/man3/getservent.3:153 build/C/man5/host.conf.5:180 build/C/man5/hosts.5:86 build/C/man5/hosts.equiv.5:69 build/C/man5/networks.5:70 build/C/man5/nss.5:98 build/C/man5/nsswitch.conf.5:298 build/C/man5/protocols.5:77 build/C/man5/resolv.conf.5:287 build/C/man3/resolver.3:267 build/C/man5/services.5:185 build/C/man3/setnetgrent.3:88 build/C/man7/udplite.7:126
1947 #, no-wrap
1948 msgid "FILES"
1949 msgstr ""
1950
1951 #. type: Plain text
1952 #: build/C/man5/gai.conf.5:74 build/C/man3/getaddrinfo.3:594
1953 msgid "I</etc/gai.conf>"
1954 msgstr ""
1955
1956 #. type: Plain text
1957 #: build/C/man5/gai.conf.5:77
1958 msgid ""
1959 "The default table according to RFC\\ 3484 would be specified with the "
1960 "following configuration file:"
1961 msgstr ""
1962
1963 #. type: Plain text
1964 #: build/C/man5/gai.conf.5:89
1965 #, no-wrap
1966 msgid ""
1967 "label  ::1/128       0\n"
1968 "label  ::/0          1\n"
1969 "label  2002::/16     2\n"
1970 "label ::/96          3\n"
1971 "label ::ffff:0:0/96  4\n"
1972 "precedence  ::1/128       50\n"
1973 "precedence  ::/0          40\n"
1974 "precedence  2002::/16     30\n"
1975 "precedence ::/96          20\n"
1976 "precedence ::ffff:0:0/96  10\n"
1977 msgstr ""
1978
1979 #. type: Plain text
1980 #: build/C/man5/gai.conf.5:96
1981 msgid "B<getaddrinfo>(3), RFC\\ 3484"
1982 msgstr ""
1983
1984 #. type: TH
1985 #: build/C/man3/getaddrinfo.3:43
1986 #, no-wrap
1987 msgid "GETADDRINFO"
1988 msgstr ""
1989
1990 #. type: TH
1991 #: build/C/man3/getaddrinfo.3:43
1992 #, no-wrap
1993 msgid "2013-11-08"
1994 msgstr ""
1995
1996 #. type: Plain text
1997 #: build/C/man3/getaddrinfo.3:47
1998 msgid ""
1999 "getaddrinfo, freeaddrinfo, gai_strerror - network address and service "
2000 "translation"
2001 msgstr ""
2002
2003 #. type: Plain text
2004 #: build/C/man3/getaddrinfo.3:52 build/C/man3/getipnodebyname.3:35
2005 #, no-wrap
2006 msgid ""
2007 "B<#include E<lt>sys/types.hE<gt>>\n"
2008 "B<#include E<lt>sys/socket.hE<gt>>\n"
2009 "B<#include E<lt>netdb.hE<gt>>\n"
2010 msgstr ""
2011
2012 #. type: Plain text
2013 #: build/C/man3/getaddrinfo.3:56
2014 #, no-wrap
2015 msgid ""
2016 "B<int getaddrinfo(const char *>I<node>B<, const char *>I<service>B<,>\n"
2017 "B<                const struct addrinfo *>I<hints>B<,>\n"
2018 "B<                struct addrinfo **>I<res>B<);>\n"
2019 msgstr ""
2020
2021 #. type: Plain text
2022 #: build/C/man3/getaddrinfo.3:58
2023 #, no-wrap
2024 msgid "B<void freeaddrinfo(struct addrinfo *>I<res>B<);>\n"
2025 msgstr ""
2026
2027 #. type: Plain text
2028 #: build/C/man3/getaddrinfo.3:60
2029 #, no-wrap
2030 msgid "B<const char *gai_strerror(int >I<errcode>B<);>\n"
2031 msgstr ""
2032
2033 #. type: Plain text
2034 #: build/C/man3/getaddrinfo.3:65 build/C/man3/gethostbyname.3:93 build/C/man3/getnameinfo.3:26 build/C/man3/getnetent_r.3:52 build/C/man3/getprotoent_r.3:49 build/C/man3/getservent_r.3:49 build/C/man3/inet.3:70 build/C/man3/rcmd.3:81 build/C/man3/setnetgrent.3:34
2035 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
2036 msgstr ""
2037
2038 #. type: Plain text
2039 #: build/C/man3/getaddrinfo.3:71
2040 msgid "B<getaddrinfo>(), B<freeaddrinfo>(), B<gai_strerror>():"
2041 msgstr ""
2042
2043 #. type: Plain text
2044 #: build/C/man3/getaddrinfo.3:73
2045 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
2046 msgstr ""
2047
2048 #.  .BR getipnodebyname (3),
2049 #.  .BR getipnodebyaddr (3),
2050 #. type: Plain text
2051 #: build/C/man3/getaddrinfo.3:100
2052 msgid ""
2053 "Given I<node> and I<service>, which identify an Internet host and a service, "
2054 "B<getaddrinfo>()  returns one or more I<addrinfo> structures, each of which "
2055 "contains an Internet address that can be specified in a call to B<bind>(2)  "
2056 "or B<connect>(2).  The B<getaddrinfo>()  function combines the functionality "
2057 "provided by the B<gethostbyname>(3)  and B<getservbyname>(3)  functions into "
2058 "a single interface, but unlike the latter functions, B<getaddrinfo>()  is "
2059 "reentrant and allows programs to eliminate IPv4-versus-IPv6 dependencies."
2060 msgstr ""
2061
2062 #. type: Plain text
2063 #: build/C/man3/getaddrinfo.3:106
2064 msgid ""
2065 "The I<addrinfo> structure used by B<getaddrinfo>()  contains the following "
2066 "fields:"
2067 msgstr ""
2068
2069 #. type: Plain text
2070 #: build/C/man3/getaddrinfo.3:119
2071 #, no-wrap
2072 msgid ""
2073 "struct addrinfo {\n"
2074 "    int              ai_flags;\n"
2075 "    int              ai_family;\n"
2076 "    int              ai_socktype;\n"
2077 "    int              ai_protocol;\n"
2078 "    socklen_t        ai_addrlen;\n"
2079 "    struct sockaddr *ai_addr;\n"
2080 "    char            *ai_canonname;\n"
2081 "    struct addrinfo *ai_next;\n"
2082 "};\n"
2083 msgstr ""
2084
2085 #. type: Plain text
2086 #: build/C/man3/getaddrinfo.3:141
2087 msgid ""
2088 "The I<hints> argument points to an I<addrinfo> structure that specifies "
2089 "criteria for selecting the socket address structures returned in the list "
2090 "pointed to by I<res>.  If I<hints> is not NULL it points to an I<addrinfo> "
2091 "structure whose I<ai_family>, I<ai_socktype>, and I<ai_protocol> specify "
2092 "criteria that limit the set of socket addresses returned by "
2093 "B<getaddrinfo>(), as follows:"
2094 msgstr ""
2095
2096 #. type: TP
2097 #: build/C/man3/getaddrinfo.3:141
2098 #, no-wrap
2099 msgid "I<ai_family>"
2100 msgstr ""
2101
2102 #. type: Plain text
2103 #: build/C/man3/getaddrinfo.3:157
2104 msgid ""
2105 "This field specifies the desired address family for the returned addresses.  "
2106 "Valid values for this field include B<AF_INET> and B<AF_INET6>.  The value "
2107 "B<AF_UNSPEC> indicates that B<getaddrinfo>()  should return socket addresses "
2108 "for any address family (either IPv4 or IPv6, for example) that can be used "
2109 "with I<node> and I<service>."
2110 msgstr ""
2111
2112 #. type: TP
2113 #: build/C/man3/getaddrinfo.3:157
2114 #, no-wrap
2115 msgid "I<ai_socktype>"
2116 msgstr ""
2117
2118 #. type: Plain text
2119 #: build/C/man3/getaddrinfo.3:166
2120 msgid ""
2121 "This field specifies the preferred socket type, for example B<SOCK_STREAM> "
2122 "or B<SOCK_DGRAM>.  Specifying 0 in this field indicates that socket "
2123 "addresses of any type can be returned by B<getaddrinfo>()."
2124 msgstr ""
2125
2126 #. type: TP
2127 #: build/C/man3/getaddrinfo.3:166
2128 #, no-wrap
2129 msgid "I<ai_protocol>"
2130 msgstr ""
2131
2132 #. type: Plain text
2133 #: build/C/man3/getaddrinfo.3:172
2134 msgid ""
2135 "This field specifies the protocol for the returned socket addresses.  "
2136 "Specifying 0 in this field indicates that socket addresses with any protocol "
2137 "can be returned by B<getaddrinfo>()."
2138 msgstr ""
2139
2140 #. type: TP
2141 #: build/C/man3/getaddrinfo.3:172
2142 #, no-wrap
2143 msgid "I<ai_flags>"
2144 msgstr ""
2145
2146 #. type: Plain text
2147 #: build/C/man3/getaddrinfo.3:176
2148 msgid ""
2149 "This field specifies additional options, described below.  Multiple flags "
2150 "are specified by bitwise OR-ing them together."
2151 msgstr ""
2152
2153 #. type: Plain text
2154 #: build/C/man3/getaddrinfo.3:180
2155 msgid ""
2156 "All the other fields in the structure pointed to by I<hints> must contain "
2157 "either 0 or a null pointer, as appropriate."
2158 msgstr ""
2159
2160 #. type: Plain text
2161 #: build/C/man3/getaddrinfo.3:215
2162 msgid ""
2163 "Specifying I<hints> as NULL is equivalent to setting I<ai_socktype> and "
2164 "I<ai_protocol> to 0; I<ai_family> to B<AF_UNSPEC>; and I<ai_flags> to "
2165 "B<(AI_V4MAPPED\\ |\\ AI_ADDRCONFIG)>.  (POSIX specifies different defaults "
2166 "for I<ai_flags>; see NOTES.)  I<node> specifies either a numerical network "
2167 "address (for IPv4, numbers-and-dots notation as supported by "
2168 "B<inet_aton>(3); for IPv6, hexadecimal string format as supported by "
2169 "B<inet_pton>(3)), or a network hostname, whose network addresses are looked "
2170 "up and resolved.  If I<hints.ai_flags> contains the B<AI_NUMERICHOST> flag "
2171 "then I<node> must be a numerical network address.  The B<AI_NUMERICHOST> "
2172 "flag suppresses any potentially lengthy network host address lookups."
2173 msgstr ""
2174
2175 #. type: Plain text
2176 #: build/C/man3/getaddrinfo.3:240
2177 msgid ""
2178 "If the B<AI_PASSIVE> flag is specified in I<hints.ai_flags>, and I<node> is "
2179 "NULL, then the returned socket addresses will be suitable for B<bind>(2)ing "
2180 "a socket that will B<accept>(2)  connections.  The returned socket address "
2181 "will contain the \"wildcard address\" (B<INADDR_ANY> for IPv4 addresses, "
2182 "B<IN6ADDR_ANY_INIT> for IPv6 address).  The wildcard address is used by "
2183 "applications (typically servers)  that intend to accept connections on any "
2184 "of the hosts's network addresses.  If I<node> is not NULL, then the "
2185 "B<AI_PASSIVE> flag is ignored."
2186 msgstr ""
2187
2188 #. type: Plain text
2189 #: build/C/man3/getaddrinfo.3:260
2190 msgid ""
2191 "If the B<AI_PASSIVE> flag is not set in I<hints.ai_flags>, then the returned "
2192 "socket addresses will be suitable for use with B<connect>(2), B<sendto>(2), "
2193 "or B<sendmsg>(2).  If I<node> is NULL, then the network address will be set "
2194 "to the loopback interface address (B<INADDR_LOOPBACK> for IPv4 addresses, "
2195 "B<IN6ADDR_LOOPBACK_INIT> for IPv6 address); this is used by applications "
2196 "that intend to communicate with peers running on the same host."
2197 msgstr ""
2198
2199 #. type: Plain text
2200 #: build/C/man3/getaddrinfo.3:283
2201 msgid ""
2202 "I<service> sets the port in each returned address structure.  If this "
2203 "argument is a service name (see B<services>(5)), it is translated to the "
2204 "corresponding port number.  This argument can also be specified as a decimal "
2205 "number, which is simply converted to binary.  If I<service> is NULL, then "
2206 "the port number of the returned socket addresses will be left "
2207 "uninitialized.  If B<AI_NUMERICSERV> is specified in I<hints.ai_flags> and "
2208 "I<service> is not NULL, then I<service> must point to a string containing a "
2209 "numeric port number.  This flag is used to inhibit the invocation of a name "
2210 "resolution service in cases where it is known not to be required."
2211 msgstr ""
2212
2213 #. type: Plain text
2214 #: build/C/man3/getaddrinfo.3:289
2215 msgid "Either I<node> or I<service>, but not both, may be NULL."
2216 msgstr ""
2217
2218 #. type: Plain text
2219 #: build/C/man3/getaddrinfo.3:305
2220 msgid ""
2221 "The B<getaddrinfo>()  function allocates and initializes a linked list of "
2222 "I<addrinfo> structures, one for each network address that matches I<node> "
2223 "and I<service>, subject to any restrictions imposed by I<hints>, and returns "
2224 "a pointer to the start of the list in I<res>.  The items in the linked list "
2225 "are linked by the I<ai_next> field."
2226 msgstr ""
2227
2228 #. type: Plain text
2229 #: build/C/man3/getaddrinfo.3:327
2230 msgid ""
2231 "There are several reasons why the linked list may have more than one "
2232 "I<addrinfo> structure, including: the network host is multihomed, accessible "
2233 "over multiple protocols (e.g., both B<AF_INET> and B<AF_INET6>); or the same "
2234 "service is available from multiple socket types (one B<SOCK_STREAM> address "
2235 "and another B<SOCK_DGRAM> address, for example).  Normally, the application "
2236 "should try using the addresses in the order in which they are returned.  The "
2237 "sorting function used within B<getaddrinfo>()  is defined in RFC\\ 3484; the "
2238 "order can be tweaked for a particular system by editing I</etc/gai.conf> "
2239 "(available since glibc 2.5)."
2240 msgstr ""
2241
2242 #.  In glibc prior to 2.3.4, the ai_canonname of each addrinfo
2243 #.  structure was set pointing to the canonical name; that was
2244 #.  more than POSIX.1-2001 specified, or other implementations provided.
2245 #.  MTK, Aug 05
2246 #. type: Plain text
2247 #: build/C/man3/getaddrinfo.3:342
2248 msgid ""
2249 "If I<hints.ai_flags> includes the B<AI_CANONNAME> flag, then the "
2250 "I<ai_canonname> field of the first of the I<addrinfo> structures in the "
2251 "returned list is set to point to the official name of the host."
2252 msgstr ""
2253
2254 #. type: Plain text
2255 #: build/C/man3/getaddrinfo.3:346
2256 msgid ""
2257 "The remaining fields of each returned I<addrinfo> structure are initialized "
2258 "as follows:"
2259 msgstr ""
2260
2261 #. type: IP
2262 #: build/C/man3/getaddrinfo.3:346 build/C/man3/getaddrinfo.3:369 build/C/man3/getaddrinfo_a.3:191 build/C/man3/getaddrinfo_a.3:195 build/C/man3/getaddrinfo_a.3:197 build/C/man5/nsswitch.conf.5:144 build/C/man5/nsswitch.conf.5:148 build/C/man7/unix.7:74 build/C/man7/unix.7:91 build/C/man7/unix.7:111
2263 #, no-wrap
2264 msgid "*"
2265 msgstr ""
2266
2267 #. type: Plain text
2268 #: build/C/man3/getaddrinfo.3:369
2269 msgid ""
2270 "The I<ai_family>, I<ai_socktype>, and I<ai_protocol> fields return the "
2271 "socket creation parameters (i.e., these fields have the same meaning as the "
2272 "corresponding arguments of B<socket>(2)).  For example, I<ai_family> might "
2273 "return B<AF_INET> or B<AF_INET6>; I<ai_socktype> might return B<SOCK_DGRAM> "
2274 "or B<SOCK_STREAM>; and I<ai_protocol> returns the protocol for the socket."
2275 msgstr ""
2276
2277 #. type: Plain text
2278 #: build/C/man3/getaddrinfo.3:376
2279 msgid ""
2280 "A pointer to the socket address is placed in the I<ai_addr> field, and the "
2281 "length of the socket address, in bytes, is placed in the I<ai_addrlen> "
2282 "field."
2283 msgstr ""
2284
2285 #. type: Plain text
2286 #: build/C/man3/getaddrinfo.3:395
2287 msgid ""
2288 "If I<hints.ai_flags> includes the B<AI_ADDRCONFIG> flag, then IPv4 addresses "
2289 "are returned in the list pointed to by I<res> only if the local system has "
2290 "at least one IPv4 address configured, and IPv6 addresses are returned only "
2291 "if the local system has at least one IPv6 address configured.  The loopback "
2292 "address is not considered for this case as valid as a configured address.  "
2293 "This flag is useful on, for example, IPv4-only systems, to ensure that "
2294 "B<getaddrinfo>()  does not return IPv6 socket addresses that would always "
2295 "fail in B<connect>(2)  or B<bind>(2)."
2296 msgstr ""
2297
2298 #. type: Plain text
2299 #: build/C/man3/getaddrinfo.3:420
2300 msgid ""
2301 "If I<hints.ai_flags> specifies the B<AI_V4MAPPED> flag, and "
2302 "I<hints.ai_family> was specified as B<AF_INET6>, and no matching IPv6 "
2303 "addresses could be found, then return IPv4-mapped IPv6 addresses in the list "
2304 "pointed to by I<res>.  If both B<AI_V4MAPPED> and B<AI_ALL> are specified in "
2305 "I<hints.ai_flags>, then return both IPv6 and IPv4-mapped IPv6 addresses in "
2306 "the list pointed to by I<res>.  B<AI_ALL> is ignored if B<AI_V4MAPPED> is "
2307 "not also specified."
2308 msgstr ""
2309
2310 #. type: Plain text
2311 #: build/C/man3/getaddrinfo.3:426
2312 msgid ""
2313 "The B<freeaddrinfo>()  function frees the memory that was allocated for the "
2314 "dynamically allocated linked list I<res>."
2315 msgstr ""
2316
2317 #. type: SS
2318 #: build/C/man3/getaddrinfo.3:426
2319 #, no-wrap
2320 msgid "Extensions to getaddrinfo() for Internationalized Domain Names"
2321 msgstr ""
2322
2323 #. type: Plain text
2324 #: build/C/man3/getaddrinfo.3:435
2325 msgid ""
2326 "Starting with glibc 2.3.4, B<getaddrinfo>()  has been extended to "
2327 "selectively allow the incoming and outgoing hostnames to be transparently "
2328 "converted to and from the Internationalized Domain Name (IDN) format (see "
2329 "RFC 3490, I<Internationalizing Domain Names in Applications (IDNA)>).  Four "
2330 "new flags are defined:"
2331 msgstr ""
2332
2333 #. type: TP
2334 #: build/C/man3/getaddrinfo.3:435
2335 #, no-wrap
2336 msgid "B<AI_IDN>"
2337 msgstr ""
2338
2339 #. type: Plain text
2340 #: build/C/man3/getaddrinfo.3:441
2341 msgid ""
2342 "If this flag is specified, then the node name given in I<node> is converted "
2343 "to IDN format if necessary.  The source encoding is that of the current "
2344 "locale."
2345 msgstr ""
2346
2347 #.  Implementation Detail:
2348 #.  To minimize effects on system performance the implementation might
2349 #.  want to check whether the input string contains any non-ASCII
2350 #.  characters.  If there are none the IDN step can be skipped completely.
2351 #.  On systems which allow not-ASCII safe encodings for a locale this
2352 #.  might be a problem.
2353 #. type: Plain text
2354 #: build/C/man3/getaddrinfo.3:453
2355 msgid ""
2356 "If the input name contains non-ASCII characters, then the IDN encoding is "
2357 "used.  Those parts of the node name (delimited by dots) that contain "
2358 "non-ASCII characters are encoded using ASCII Compatible Encoding (ACE)  "
2359 "before being passed to the name resolution functions."
2360 msgstr ""
2361
2362 #. type: TP
2363 #: build/C/man3/getaddrinfo.3:453
2364 #, no-wrap
2365 msgid "B<AI_CANONIDN>"
2366 msgstr ""
2367
2368 #. type: Plain text
2369 #: build/C/man3/getaddrinfo.3:465
2370 msgid ""
2371 "After a successful name lookup, and if the B<AI_CANONNAME> flag was "
2372 "specified, B<getaddrinfo>()  will return the canonical name of the node "
2373 "corresponding to the I<addrinfo> structure value passed back.  The return "
2374 "value is an exact copy of the value returned by the name resolution "
2375 "function."
2376 msgstr ""
2377
2378 #
2379 #. Implementation Detail:
2380 #. If no component of the returned name starts with xn\-\- the IDN
2381 #. step can be skipped, therefore avoiding unnecessary slowdowns.
2382 #. type: Plain text
2383 #: build/C/man3/getaddrinfo.3:478
2384 msgid ""
2385 "If the name is encoded using ACE, then it will contain the I<xn--> prefix "
2386 "for one or more components of the name.  To convert these components into a "
2387 "readable form the B<AI_CANONIDN> flag can be passed in addition to "
2388 "B<AI_CANONNAME>.  The resulting string is encoded using the current locale's "
2389 "encoding."
2390 msgstr ""
2391
2392 #. type: TP
2393 #: build/C/man3/getaddrinfo.3:478
2394 #, no-wrap
2395 msgid "B<AI_IDN_ALLOW_UNASSIGNED>, B<AI_IDN_USE_STD3_ASCII_RULES>"
2396 msgstr ""
2397
2398 #. type: Plain text
2399 #: build/C/man3/getaddrinfo.3:485 build/C/man3/getnameinfo.3:139
2400 msgid ""
2401 "Setting these flags will enable the IDNA_ALLOW_UNASSIGNED (allow unassigned "
2402 "Unicode code points) and IDNA_USE_STD3_ASCII_RULES (check output to make "
2403 "sure it is a STD3 conforming hostname)  flags respectively to be used in the "
2404 "IDNA handling."
2405 msgstr ""
2406
2407 #. type: SH
2408 #: build/C/man3/getaddrinfo.3:485 build/C/man3/getaddrinfo_a.3:242 build/C/man3/gethostbyname.3:280 build/C/man3/getipnodebyname.3:186 build/C/man3/getnameinfo.3:139 build/C/man3/getnetent.3:130 build/C/man3/getnetent_r.3:118 build/C/man2/getpeername.2:68 build/C/man3/getprotoent.3:123 build/C/man3/getprotoent_r.3:108 build/C/man3/getservent.3:142 build/C/man3/getservent_r.3:107 build/C/man3/inet_ntop.3:83 build/C/man3/inet_pton.3:116 build/C/man3/rcmd.3:239 build/C/man3/resolver.3:245 build/C/man3/setnetgrent.3:86 build/C/man2/shutdown.2:69
2409 #, no-wrap
2410 msgid "RETURN VALUE"
2411 msgstr ""
2412
2413 #.  FIXME glibc defines the following additional errors, some which
2414 #.  can probably be returned by getaddrinfo(); they need to
2415 #.  be documented.
2416 #.  #ifdef __USE_GNU
2417 #.  #define EAI_INPROGRESS  -100  /* Processing request in progress.  */
2418 #.  #define EAI_CANCELED    -101  /* Request canceled.  */
2419 #.  #define EAI_NOTCANCELED -102  /* Request not canceled.  */
2420 #.  #define EAI_ALLDONE     -103  /* All requests done.  */
2421 #.  #define EAI_INTR        -104  /* Interrupted by a signal.  */
2422 #.  #define EAI_IDN_ENCODE  -105  /* IDN encoding failed.  */
2423 #.  #endif
2424 #. type: Plain text
2425 #: build/C/man3/getaddrinfo.3:499
2426 msgid ""
2427 "B<getaddrinfo>()  returns 0 if it succeeds, or one of the following nonzero "
2428 "error codes:"
2429 msgstr ""
2430
2431 #. type: TP
2432 #: build/C/man3/getaddrinfo.3:499
2433 #, no-wrap
2434 msgid "B<EAI_ADDRFAMILY>"
2435 msgstr ""
2436
2437 #.  Not in SUSv3
2438 #. type: Plain text
2439 #: build/C/man3/getaddrinfo.3:504
2440 msgid ""
2441 "The specified network host does not have any network addresses in the "
2442 "requested address family."
2443 msgstr ""
2444
2445 #. type: TP
2446 #: build/C/man3/getaddrinfo.3:504 build/C/man3/getaddrinfo_a.3:247 build/C/man3/getaddrinfo_a.3:264 build/C/man3/getnameinfo.3:155
2447 #, no-wrap
2448 msgid "B<EAI_AGAIN>"
2449 msgstr ""
2450
2451 #. type: Plain text
2452 #: build/C/man3/getaddrinfo.3:508
2453 msgid "The name server returned a temporary failure indication.  Try again later."
2454 msgstr ""
2455
2456 #. type: TP
2457 #: build/C/man3/getaddrinfo.3:508 build/C/man3/getnameinfo.3:159
2458 #, no-wrap
2459 msgid "B<EAI_BADFLAGS>"
2460 msgstr ""
2461
2462 #. type: Plain text
2463 #: build/C/man3/getaddrinfo.3:518
2464 msgid ""
2465 "I<hints.ai_flags> contains invalid flags; or, I<hints.ai_flags> included "
2466 "B<AI_CANONNAME> and I<name> was NULL."
2467 msgstr ""
2468
2469 #. type: TP
2470 #: build/C/man3/getaddrinfo.3:518 build/C/man3/getnameinfo.3:164
2471 #, no-wrap
2472 msgid "B<EAI_FAIL>"
2473 msgstr ""
2474
2475 #. type: Plain text
2476 #: build/C/man3/getaddrinfo.3:521
2477 msgid "The name server returned a permanent failure indication."
2478 msgstr ""
2479
2480 #. type: TP
2481 #: build/C/man3/getaddrinfo.3:521 build/C/man3/getnameinfo.3:167
2482 #, no-wrap
2483 msgid "B<EAI_FAMILY>"
2484 msgstr ""
2485
2486 #. type: Plain text
2487 #: build/C/man3/getaddrinfo.3:524
2488 msgid "The requested address family is not supported."
2489 msgstr ""
2490
2491 #. type: TP
2492 #: build/C/man3/getaddrinfo.3:524 build/C/man3/getaddrinfo_a.3:252 build/C/man3/getnameinfo.3:171
2493 #, no-wrap
2494 msgid "B<EAI_MEMORY>"
2495 msgstr ""
2496
2497 #. type: Plain text
2498 #: build/C/man3/getaddrinfo.3:527 build/C/man3/getaddrinfo_a.3:255 build/C/man3/getnameinfo.3:174 build/C/man7/unix.7:361
2499 msgid "Out of memory."
2500 msgstr ""
2501
2502 #. type: TP
2503 #: build/C/man3/getaddrinfo.3:527
2504 #, no-wrap
2505 msgid "B<EAI_NODATA>"
2506 msgstr ""
2507
2508 #.  Not in SUSv3
2509 #. type: Plain text
2510 #: build/C/man3/getaddrinfo.3:532
2511 msgid ""
2512 "The specified network host exists, but does not have any network addresses "
2513 "defined."
2514 msgstr ""
2515
2516 #. type: TP
2517 #: build/C/man3/getaddrinfo.3:532 build/C/man3/getnameinfo.3:174
2518 #, no-wrap
2519 msgid "B<EAI_NONAME>"
2520 msgstr ""
2521
2522 #. type: Plain text
2523 #: build/C/man3/getaddrinfo.3:549
2524 msgid ""
2525 "The I<node> or I<service> is not known; or both I<node> and I<service> are "
2526 "NULL; or B<AI_NUMERICSERV> was specified in I<hints.ai_flags> and I<service> "
2527 "was not a numeric port-number string."
2528 msgstr ""
2529
2530 #. type: TP
2531 #: build/C/man3/getaddrinfo.3:549
2532 #, no-wrap
2533 msgid "B<EAI_SERVICE>"
2534 msgstr ""
2535
2536 #. type: Plain text
2537 #: build/C/man3/getaddrinfo.3:570
2538 msgid ""
2539 "The requested service is not available for the requested socket type.  It "
2540 "may be available through another socket type.  For example, this error could "
2541 "occur if I<service> was \"shell\" (a service available only on stream "
2542 "sockets), and either I<hints.ai_protocol> was B<IPPROTO_UDP>, or "
2543 "I<hints.ai_socktype> was B<SOCK_DGRAM>; or the error could occur if "
2544 "I<service> was not NULL, and I<hints.ai_socktype> was B<SOCK_RAW> (a socket "
2545 "type that does not support the concept of services)."
2546 msgstr ""
2547
2548 #. type: TP
2549 #: build/C/man3/getaddrinfo.3:570
2550 #, no-wrap
2551 msgid "B<EAI_SOCKTYPE>"
2552 msgstr ""
2553
2554 #. type: Plain text
2555 #: build/C/man3/getaddrinfo.3:582
2556 msgid ""
2557 "The requested socket type is not supported.  This could occur, for example, "
2558 "if I<hints.ai_socktype> and I<hints.ai_protocol> are inconsistent (e.g., "
2559 "B<SOCK_DGRAM> and B<IPPROTO_TCP>, respectively)."
2560 msgstr ""
2561
2562 #. type: TP
2563 #: build/C/man3/getaddrinfo.3:582 build/C/man3/getaddrinfo_a.3:255 build/C/man3/getnameinfo.3:187
2564 #, no-wrap
2565 msgid "B<EAI_SYSTEM>"
2566 msgstr ""
2567
2568 #. type: Plain text
2569 #: build/C/man3/getaddrinfo.3:587
2570 msgid "Other system error, check I<errno> for details."
2571 msgstr ""
2572
2573 #. type: Plain text
2574 #: build/C/man3/getaddrinfo.3:592
2575 msgid ""
2576 "The B<gai_strerror>()  function translates these error codes to a human "
2577 "readable string, suitable for error reporting."
2578 msgstr ""
2579
2580 #. type: Plain text
2581 #: build/C/man3/getaddrinfo.3:599
2582 msgid "POSIX.1-2001.  The B<getaddrinfo>()  function is documented in RFC\\ 2553."
2583 msgstr ""
2584
2585 #. type: Plain text
2586 #: build/C/man3/getaddrinfo.3:604
2587 msgid ""
2588 "B<getaddrinfo>()  supports the I<address>B<%>I<scope-id> notation for "
2589 "specifying the IPv6 scope-ID."
2590 msgstr ""
2591
2592 #. type: Plain text
2593 #: build/C/man3/getaddrinfo.3:612
2594 msgid ""
2595 "B<AI_ADDRCONFIG>, B<AI_ALL>, and B<AI_V4MAPPED> are available since glibc "
2596 "2.3.3.  B<AI_NUMERICSERV> is available since glibc 2.3.4."
2597 msgstr ""
2598
2599 #. type: Plain text
2600 #: build/C/man3/getaddrinfo.3:622
2601 msgid ""
2602 "According to POSIX.1-2001, specifying I<hints> as NULL should cause "
2603 "I<ai_flags> to be assumed as 0.  The GNU C library instead assumes a value "
2604 "of B<(AI_V4MAPPED\\ |\\ AI_ADDRCONFIG)> for this case, since this value is "
2605 "considered an improvement on the specification."
2606 msgstr ""
2607
2608 #.  getnameinfo.3 refers to this example
2609 #.  socket.2 refers to this example
2610 #.  bind.2 refers to this example
2611 #.  connect.2 refers to this example
2612 #.  recvfrom.2 refers to this example
2613 #.  sendto.2 refers to this example
2614 #. type: Plain text
2615 #: build/C/man3/getaddrinfo.3:636
2616 msgid ""
2617 "The following programs demonstrate the use of B<getaddrinfo>(), "
2618 "B<gai_strerror>(), B<freeaddrinfo>(), and B<getnameinfo>(3).  The programs "
2619 "are an echo server and client for UDP datagrams."
2620 msgstr ""
2621
2622 #. type: SS
2623 #: build/C/man3/getaddrinfo.3:636
2624 #, no-wrap
2625 msgid "Server program"
2626 msgstr ""
2627
2628 #. type: Plain text
2629 #: build/C/man3/getaddrinfo.3:646
2630 #, no-wrap
2631 msgid ""
2632 "#include E<lt>sys/types.hE<gt>\n"
2633 "#include E<lt>stdio.hE<gt>\n"
2634 "#include E<lt>stdlib.hE<gt>\n"
2635 "#include E<lt>unistd.hE<gt>\n"
2636 "#include E<lt>string.hE<gt>\n"
2637 "#include E<lt>sys/socket.hE<gt>\n"
2638 "#include E<lt>netdb.hE<gt>\n"
2639 msgstr ""
2640
2641 #. type: Plain text
2642 #: build/C/man3/getaddrinfo.3:648 build/C/man3/getaddrinfo.3:743
2643 #, no-wrap
2644 msgid "#define BUF_SIZE 500\n"
2645 msgstr ""
2646
2647 #. type: Plain text
2648 #: build/C/man3/getaddrinfo.3:659
2649 #, no-wrap
2650 msgid ""
2651 "int\n"
2652 "main(int argc, char *argv[])\n"
2653 "{\n"
2654 "    struct addrinfo hints;\n"
2655 "    struct addrinfo *result, *rp;\n"
2656 "    int sfd, s;\n"
2657 "    struct sockaddr_storage peer_addr;\n"
2658 "    socklen_t peer_addr_len;\n"
2659 "    ssize_t nread;\n"
2660 "    char buf[BUF_SIZE];\n"
2661 msgstr ""
2662
2663 #. type: Plain text
2664 #: build/C/man3/getaddrinfo.3:664
2665 #, no-wrap
2666 msgid ""
2667 "    if (argc != 2) {\n"
2668 "        fprintf(stderr, \"Usage: %s port\\en\", argv[0]);\n"
2669 "        exit(EXIT_FAILURE);\n"
2670 "    }\n"
2671 msgstr ""
2672
2673 #. type: Plain text
2674 #: build/C/man3/getaddrinfo.3:673
2675 #, no-wrap
2676 msgid ""
2677 "    memset(&hints, 0, sizeof(struct addrinfo));\n"
2678 "    hints.ai_family = AF_UNSPEC;    /* Allow IPv4 or IPv6 */\n"
2679 "    hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */\n"
2680 "    hints.ai_flags = AI_PASSIVE;    /* For wildcard IP address */\n"
2681 "    hints.ai_protocol = 0;          /* Any protocol */\n"
2682 "    hints.ai_canonname = NULL;\n"
2683 "    hints.ai_addr = NULL;\n"
2684 "    hints.ai_next = NULL;\n"
2685 msgstr ""
2686
2687 #. type: Plain text
2688 #: build/C/man3/getaddrinfo.3:679
2689 #, no-wrap
2690 msgid ""
2691 "    s = getaddrinfo(NULL, argv[1], &hints, &result);\n"
2692 "    if (s != 0) {\n"
2693 "        fprintf(stderr, \"getaddrinfo: %s\\en\", gai_strerror(s));\n"
2694 "        exit(EXIT_FAILURE);\n"
2695 "    }\n"
2696 msgstr ""
2697
2698 #. type: Plain text
2699 #: build/C/man3/getaddrinfo.3:684
2700 #, no-wrap
2701 msgid ""
2702 "    /* getaddrinfo() returns a list of address structures.\n"
2703 "       Try each address until we successfully bind(2).\n"
2704 "       If socket(2) (or bind(2)) fails, we (close the socket\n"
2705 "       and) try the next address. */\n"
2706 msgstr ""
2707
2708 #. type: Plain text
2709 #: build/C/man3/getaddrinfo.3:690
2710 #, no-wrap
2711 msgid ""
2712 "    for (rp = result; rp != NULL; rp = rp-E<gt>ai_next) {\n"
2713 "        sfd = socket(rp-E<gt>ai_family, rp-E<gt>ai_socktype,\n"
2714 "                rp-E<gt>ai_protocol);\n"
2715 "        if (sfd == -1)\n"
2716 "            continue;\n"
2717 msgstr ""
2718
2719 #. type: Plain text
2720 #: build/C/man3/getaddrinfo.3:693
2721 #, no-wrap
2722 msgid ""
2723 "        if (bind(sfd, rp-E<gt>ai_addr, rp-E<gt>ai_addrlen) == 0)\n"
2724 "            break;                  /* Success */\n"
2725 msgstr ""
2726
2727 #. type: Plain text
2728 #: build/C/man3/getaddrinfo.3:696 build/C/man3/getaddrinfo.3:789
2729 #, no-wrap
2730 msgid ""
2731 "        close(sfd);\n"
2732 "    }\n"
2733 msgstr ""
2734
2735 #. type: Plain text
2736 #: build/C/man3/getaddrinfo.3:701
2737 #, no-wrap
2738 msgid ""
2739 "    if (rp == NULL) {               /* No address succeeded */\n"
2740 "        fprintf(stderr, \"Could not bind\\en\");\n"
2741 "        exit(EXIT_FAILURE);\n"
2742 "    }\n"
2743 msgstr ""
2744
2745 #. type: Plain text
2746 #: build/C/man3/getaddrinfo.3:703 build/C/man3/getaddrinfo.3:796
2747 #, no-wrap
2748 msgid "    freeaddrinfo(result);           /* No longer needed */\n"
2749 msgstr ""
2750
2751 #. type: Plain text
2752 #: build/C/man3/getaddrinfo.3:705
2753 #, no-wrap
2754 msgid "    /* Read datagrams and echo them back to sender */\n"
2755 msgstr ""
2756
2757 #. type: Plain text
2758 #: build/C/man3/getaddrinfo.3:712
2759 #, no-wrap
2760 msgid ""
2761 "    for (;;) {\n"
2762 "        peer_addr_len = sizeof(struct sockaddr_storage);\n"
2763 "        nread = recvfrom(sfd, buf, BUF_SIZE, 0,\n"
2764 "                (struct sockaddr *) &peer_addr, &peer_addr_len);\n"
2765 "        if (nread == -1)\n"
2766 "            continue;               /* Ignore failed request */\n"
2767 msgstr ""
2768
2769 #. type: Plain text
2770 #: build/C/man3/getaddrinfo.3:714
2771 #, no-wrap
2772 msgid "        char host[NI_MAXHOST], service[NI_MAXSERV];\n"
2773 msgstr ""
2774
2775 #. type: Plain text
2776 #: build/C/man3/getaddrinfo.3:723
2777 #, no-wrap
2778 msgid ""
2779 "        s = getnameinfo((struct sockaddr *) &peer_addr,\n"
2780 "                        peer_addr_len, host, NI_MAXHOST,\n"
2781 "                        service, NI_MAXSERV, NI_NUMERICSERV);\n"
2782 "       if (s == 0)\n"
2783 "            printf(\"Received %ld bytes from %s:%s\\en\",\n"
2784 "                    (long) nread, host, service);\n"
2785 "        else\n"
2786 "            fprintf(stderr, \"getnameinfo: %s\\en\", gai_strerror(s));\n"
2787 msgstr ""
2788
2789 #. type: Plain text
2790 #: build/C/man3/getaddrinfo.3:730
2791 #, no-wrap
2792 msgid ""
2793 "        if (sendto(sfd, buf, nread, 0,\n"
2794 "                    (struct sockaddr *) &peer_addr,\n"
2795 "                    peer_addr_len) != nread)\n"
2796 "            fprintf(stderr, \"Error sending response\\en\");\n"
2797 "    }\n"
2798 "}\n"
2799 msgstr ""
2800
2801 #. type: SS
2802 #: build/C/man3/getaddrinfo.3:731
2803 #, no-wrap
2804 msgid "Client program"
2805 msgstr ""
2806
2807 #. type: Plain text
2808 #: build/C/man3/getaddrinfo.3:741
2809 #, no-wrap
2810 msgid ""
2811 "#include E<lt>sys/types.hE<gt>\n"
2812 "#include E<lt>sys/socket.hE<gt>\n"
2813 "#include E<lt>netdb.hE<gt>\n"
2814 "#include E<lt>stdio.hE<gt>\n"
2815 "#include E<lt>stdlib.hE<gt>\n"
2816 "#include E<lt>unistd.hE<gt>\n"
2817 "#include E<lt>string.hE<gt>\n"
2818 msgstr ""
2819
2820 #. type: Plain text
2821 #: build/C/man3/getaddrinfo.3:753
2822 #, no-wrap
2823 msgid ""
2824 "int\n"
2825 "main(int argc, char *argv[])\n"
2826 "{\n"
2827 "    struct addrinfo hints;\n"
2828 "    struct addrinfo *result, *rp;\n"
2829 "    int sfd, s, j;\n"
2830 "    size_t len;\n"
2831 "    ssize_t nread;\n"
2832 "    char buf[BUF_SIZE];\n"
2833 msgstr ""
2834
2835 #. type: Plain text
2836 #: build/C/man3/getaddrinfo.3:758
2837 #, no-wrap
2838 msgid ""
2839 "    if (argc E<lt> 3) {\n"
2840 "        fprintf(stderr, \"Usage: %s host port msg...\\en\", argv[0]);\n"
2841 "        exit(EXIT_FAILURE);\n"
2842 "    }\n"
2843 msgstr ""
2844
2845 #. type: Plain text
2846 #: build/C/man3/getaddrinfo.3:760
2847 #, no-wrap
2848 msgid "    /* Obtain address(es) matching host/port */\n"
2849 msgstr ""
2850
2851 #. type: Plain text
2852 #: build/C/man3/getaddrinfo.3:766
2853 #, no-wrap
2854 msgid ""
2855 "    memset(&hints, 0, sizeof(struct addrinfo));\n"
2856 "    hints.ai_family = AF_UNSPEC;    /* Allow IPv4 or IPv6 */\n"
2857 "    hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */\n"
2858 "    hints.ai_flags = 0;\n"
2859 "    hints.ai_protocol = 0;          /* Any protocol */\n"
2860 msgstr ""
2861
2862 #. type: Plain text
2863 #: build/C/man3/getaddrinfo.3:772
2864 #, no-wrap
2865 msgid ""
2866 "    s = getaddrinfo(argv[1], argv[2], &hints, &result);\n"
2867 "    if (s != 0) {\n"
2868 "        fprintf(stderr, \"getaddrinfo: %s\\en\", gai_strerror(s));\n"
2869 "        exit(EXIT_FAILURE);\n"
2870 "    }\n"
2871 msgstr ""
2872
2873 #. type: Plain text
2874 #: build/C/man3/getaddrinfo.3:777
2875 #, no-wrap
2876 msgid ""
2877 "    /* getaddrinfo() returns a list of address structures.\n"
2878 "       Try each address until we successfully connect(2).\n"
2879 "       If socket(2) (or connect(2)) fails, we (close the socket\n"
2880 "       and) try the next address. */\n"
2881 msgstr ""
2882
2883 #. type: Plain text
2884 #: build/C/man3/getaddrinfo.3:783
2885 #, no-wrap
2886 msgid ""
2887 "    for (rp = result; rp != NULL; rp = rp-E<gt>ai_next) {\n"
2888 "        sfd = socket(rp-E<gt>ai_family, rp-E<gt>ai_socktype,\n"
2889 "                     rp-E<gt>ai_protocol);\n"
2890 "        if (sfd == -1)\n"
2891 "            continue;\n"
2892 msgstr ""
2893
2894 #. type: Plain text
2895 #: build/C/man3/getaddrinfo.3:786
2896 #, no-wrap
2897 msgid ""
2898 "        if (connect(sfd, rp-E<gt>ai_addr, rp-E<gt>ai_addrlen) != -1)\n"
2899 "            break;                  /* Success */\n"
2900 msgstr ""
2901
2902 #. type: Plain text
2903 #: build/C/man3/getaddrinfo.3:794
2904 #, no-wrap
2905 msgid ""
2906 "    if (rp == NULL) {               /* No address succeeded */\n"
2907 "        fprintf(stderr, \"Could not connect\\en\");\n"
2908 "        exit(EXIT_FAILURE);\n"
2909 "    }\n"
2910 msgstr ""
2911
2912 #. type: Plain text
2913 #: build/C/man3/getaddrinfo.3:799
2914 #, no-wrap
2915 msgid ""
2916 "    /* Send remaining command-line arguments as separate\n"
2917 "       datagrams, and read responses from server */\n"
2918 msgstr ""
2919
2920 #. type: Plain text
2921 #: build/C/man3/getaddrinfo.3:803
2922 #, no-wrap
2923 msgid ""
2924 "    for (j = 3; j E<lt> argc; j++) {\n"
2925 "        len = strlen(argv[j]) + 1;\n"
2926 "                /* +1 for terminating null byte */\n"
2927 msgstr ""
2928
2929 #. type: Plain text
2930 #: build/C/man3/getaddrinfo.3:809
2931 #, no-wrap
2932 msgid ""
2933 "        if (len + 1 E<gt> BUF_SIZE) {\n"
2934 "            fprintf(stderr,\n"
2935 "                    \"Ignoring long message in argument %d\\en\", j);\n"
2936 "            continue;\n"
2937 "        }\n"
2938 msgstr ""
2939
2940 #. type: Plain text
2941 #: build/C/man3/getaddrinfo.3:814
2942 #, no-wrap
2943 msgid ""
2944 "        if (write(sfd, argv[j], len) != len) {\n"
2945 "            fprintf(stderr, \"partial/failed write\\en\");\n"
2946 "            exit(EXIT_FAILURE);\n"
2947 "        }\n"
2948 msgstr ""
2949
2950 #. type: Plain text
2951 #: build/C/man3/getaddrinfo.3:820
2952 #, no-wrap
2953 msgid ""
2954 "        nread = read(sfd, buf, BUF_SIZE);\n"
2955 "        if (nread == -1) {\n"
2956 "            perror(\"read\");\n"
2957 "            exit(EXIT_FAILURE);\n"
2958 "        }\n"
2959 msgstr ""
2960
2961 #. type: Plain text
2962 #: build/C/man3/getaddrinfo.3:823
2963 #, no-wrap
2964 msgid ""
2965 "        printf(\"Received %ld bytes: %s\\en\", (long) nread, buf);\n"
2966 "    }\n"
2967 msgstr ""
2968
2969 #.  .BR getipnodebyaddr (3),
2970 #.  .BR getipnodebyname (3),
2971 #. type: Plain text
2972 #: build/C/man3/getaddrinfo.3:837
2973 msgid ""
2974 "B<getaddrinfo_a>(3), B<gethostbyname>(3), B<getnameinfo>(3), B<inet>(3), "
2975 "B<gai.conf>(5), B<hostname>(7), B<ip>(7)"
2976 msgstr ""
2977
2978 #. type: TH
2979 #: build/C/man3/getaddrinfo_a.3:29
2980 #, no-wrap
2981 msgid "GETADDRINFO_A"
2982 msgstr ""
2983
2984 #. type: TH
2985 #: build/C/man3/getaddrinfo_a.3:29
2986 #, no-wrap
2987 msgid "2010-09-27"
2988 msgstr ""
2989
2990 #. type: Plain text
2991 #: build/C/man3/getaddrinfo_a.3:33
2992 msgid ""
2993 "getaddrinfo_a, gai_suspend, gai_error, gai_cancel - asynchronous network "
2994 "address and service translation"
2995 msgstr ""
2996
2997 #. type: Plain text
2998 #: build/C/man3/getaddrinfo_a.3:37
2999 #, no-wrap
3000 msgid ""
3001 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
3002 "B<#include E<lt>netdb.hE<gt>>\n"
3003 msgstr ""
3004
3005 #. type: Plain text
3006 #: build/C/man3/getaddrinfo_a.3:40
3007 #, no-wrap
3008 msgid ""
3009 "B<int getaddrinfo_a(int >I<mode>B<, struct gaicb *>I<list[]>B<,>\n"
3010 "B<                int >I<nitems>B<, struct sigevent *>I<sevp>B<);>\n"
3011 msgstr ""
3012
3013 #. type: Plain text
3014 #: build/C/man3/getaddrinfo_a.3:43
3015 #, no-wrap
3016 msgid ""
3017 "B<int gai_suspend(struct gaicb *>I<list[]>B<, int >I<nitems>B<,>\n"
3018 "B<                struct timespec *>I<timeout>B<);>\n"
3019 msgstr ""
3020
3021 #. type: Plain text
3022 #: build/C/man3/getaddrinfo_a.3:45
3023 #, no-wrap
3024 msgid "B<int gai_error(struct gaicb *>I<req>B<);>\n"
3025 msgstr ""
3026
3027 #. type: Plain text
3028 #: build/C/man3/getaddrinfo_a.3:47
3029 #, no-wrap
3030 msgid "B<int gai_cancel(struct gaicb *>I<req>B<);>\n"
3031 msgstr ""
3032
3033 #. type: Plain text
3034 #: build/C/man3/getaddrinfo_a.3:49
3035 #, no-wrap
3036 msgid "Link with I<-lanl>.\n"
3037 msgstr ""
3038
3039 #. type: Plain text
3040 #: build/C/man3/getaddrinfo_a.3:57
3041 msgid ""
3042 "The B<getaddrinfo_a>()  function performs the same task as "
3043 "B<getaddrinfo>(3), but allows multiple name look-ups to be performed "
3044 "asynchronously, with optional notification on completion of look-up "
3045 "operations."
3046 msgstr ""
3047
3048 #. type: Plain text
3049 #: build/C/man3/getaddrinfo_a.3:61
3050 msgid "The I<mode> argument has one of the following values:"
3051 msgstr ""
3052
3053 #. type: TP
3054 #: build/C/man3/getaddrinfo_a.3:61
3055 #, no-wrap
3056 msgid "B<GAI_WAIT>"
3057 msgstr ""
3058
3059 #. type: Plain text
3060 #: build/C/man3/getaddrinfo_a.3:65
3061 msgid ""
3062 "Perform the look-ups synchronously.  The call blocks until the look-ups have "
3063 "completed."
3064 msgstr ""
3065
3066 #. type: TP
3067 #: build/C/man3/getaddrinfo_a.3:65
3068 #, no-wrap
3069 msgid "B<GAI_NOWAIT>"
3070 msgstr ""
3071
3072 #. type: Plain text
3073 #: build/C/man3/getaddrinfo_a.3:73
3074 msgid ""
3075 "Perform the look-ups asynchronously.  The call returns immediately, and the "
3076 "requests are resolved in the background.  See the discussion of the I<sevp> "
3077 "argument below."
3078 msgstr ""
3079
3080 #. type: Plain text
3081 #: build/C/man3/getaddrinfo_a.3:88
3082 msgid ""
3083 "The array I<list> specifies the look-up requests to process.  The I<nitems> "
3084 "argument specifies the number of elements in I<list>.  The requested look-up "
3085 "operations are started in parallel.  NULL elements in I<list> are ignored.  "
3086 "Each request is described by a I<gaicb> structure, defined as follows:"
3087 msgstr ""
3088
3089 #. type: Plain text
3090 #: build/C/man3/getaddrinfo_a.3:97
3091 #, no-wrap
3092 msgid ""
3093 "struct gaicb {\n"
3094 "    const char            *ar_name;\n"
3095 "    const char            *ar_service;\n"
3096 "    const struct addrinfo *ar_request;\n"
3097 "    struct addrinfo       *ar_result;\n"
3098 "};\n"
3099 msgstr ""
3100
3101 #. type: Plain text
3102 #: build/C/man3/getaddrinfo_a.3:128
3103 msgid ""
3104 "The elements of this structure correspond to the arguments of "
3105 "B<getaddrinfo>(3).  Thus, I<ar_name> corresponds to the I<node> argument and "
3106 "I<ar_service> to the I<service> argument, identifying an Internet host and a "
3107 "service.  The I<ar_request> element corresponds to the I<hints> argument, "
3108 "specifying the criteria for selecting the returned socket address "
3109 "structures.  Finally, I<ar_result> corresponds to the I<res> argument; you "
3110 "do not need to initialize this element, it will be automatically set when "
3111 "the request is resolved.  The I<addrinfo> structure referenced by the last "
3112 "two elements is described in B<getaddrinfo>(3)."
3113 msgstr ""
3114
3115 #. type: Plain text
3116 #: build/C/man3/getaddrinfo_a.3:144
3117 msgid ""
3118 "When I<mode> is specified as B<GAI_NOWAIT>, notifications about resolved "
3119 "requests can be obtained by employing the I<sigevent> structure pointed to "
3120 "by the I<sevp> argument.  For the definition and general details of this "
3121 "structure, see B<sigevent>(7).  The I<sevp-E<gt>sigev_notify> field can have "
3122 "the following values:"
3123 msgstr ""
3124
3125 #. type: TP
3126 #: build/C/man3/getaddrinfo_a.3:144
3127 #, no-wrap
3128 msgid "B<SIGEV_NONE>"
3129 msgstr ""
3130
3131 #. type: Plain text
3132 #: build/C/man3/getaddrinfo_a.3:147
3133 msgid "Don't provide any notification."
3134 msgstr ""
3135
3136 #. type: TP
3137 #: build/C/man3/getaddrinfo_a.3:147
3138 #, no-wrap
3139 msgid "B<SIGEV_SIGNAL>"
3140 msgstr ""
3141
3142 #.  si_pid and si_uid are also set, to the values of the calling process,
3143 #.  which doesn't provide useful information, so we'll skip mentioning it.
3144 #. type: Plain text
3145 #: build/C/man3/getaddrinfo_a.3:163
3146 msgid ""
3147 "When a look-up completes, generate the signal I<sigev_signo> for the "
3148 "process.  See B<sigevent>(7)  for general details.  The I<si_code> field of "
3149 "the I<siginfo_t> structure will be set to B<SI_ASYNCNL>."
3150 msgstr ""
3151
3152 #. type: TP
3153 #: build/C/man3/getaddrinfo_a.3:163
3154 #, no-wrap
3155 msgid "B<SIGEV_THREAD>"
3156 msgstr ""
3157
3158 #. type: Plain text
3159 #: build/C/man3/getaddrinfo_a.3:171
3160 msgid ""
3161 "When a look-up completes, invoke I<sigev_notify_function> as if it were the "
3162 "start function of a new thread.  See B<sigevent>(7)  for details."
3163 msgstr ""
3164
3165 #. type: Plain text
3166 #: build/C/man3/getaddrinfo_a.3:180
3167 msgid ""
3168 "For B<SIGEV_SIGNAL> and B<SIGEV_THREAD>, it may be useful to point "
3169 "I<sevp-E<gt>sigev_value.sival_ptr> to I<list>."
3170 msgstr ""
3171
3172 #. type: Plain text
3173 #: build/C/man3/getaddrinfo_a.3:191
3174 msgid ""
3175 "The B<gai_suspend>()  function suspends execution of the calling thread, "
3176 "waiting for the completion of one or more requests in the array I<list>.  "
3177 "The I<nitems> argument specifies the size of the array I<list>.  The call "
3178 "blocks until one of the following occurs:"
3179 msgstr ""
3180
3181 #. type: Plain text
3182 #: build/C/man3/getaddrinfo_a.3:195
3183 msgid "One or more of the operations in I<list> completes."
3184 msgstr ""
3185
3186 #. type: Plain text
3187 #: build/C/man3/getaddrinfo_a.3:197
3188 msgid "The call is interrupted by a signal that is caught."
3189 msgstr ""
3190
3191 #. type: Plain text
3192 #: build/C/man3/getaddrinfo_a.3:210
3193 msgid ""
3194 "The time interval specified in I<timeout> elapses.  This argument specifies "
3195 "a timeout in seconds plus nanoseconds (see B<nanosleep>(2)  for details of "
3196 "the I<timespec> structure).  If I<timeout> is NULL, then the call blocks "
3197 "indefinitely (until one of the events above occurs)."
3198 msgstr ""
3199
3200 #. type: Plain text
3201 #: build/C/man3/getaddrinfo_a.3:215
3202 msgid ""
3203 "No explicit indication of which request was completed is given; you must "
3204 "determine which request(s) have completed by iterating with B<gai_error>()  "
3205 "over the list of requests."
3206 msgstr ""
3207
3208 #. type: Plain text
3209 #: build/C/man3/getaddrinfo_a.3:225
3210 msgid ""
3211 "The B<gai_error>()  function returns the status of the request I<req>: "
3212 "either B<EAI_INPROGRESS> if the request was not completed yet, 0 if it was "
3213 "handled successfully, or an error code if the request could not be resolved."
3214 msgstr ""
3215
3216 #. type: Plain text
3217 #: build/C/man3/getaddrinfo_a.3:242
3218 msgid ""
3219 "The B<gai_cancel>()  function cancels the request I<req>.  If the request "
3220 "has been canceled successfully, the error status of the request will be set "
3221 "to B<EAI_CANCELLED> and normal asynchronous notification will be performed.  "
3222 "The request cannot be canceled if it is currently being processed; in that "
3223 "case, it will be handled as if B<gai_cancel>()  has never been called.  If "
3224 "I<req> is NULL, an attempt is made to cancel all outstanding requests that "
3225 "the process has made."
3226 msgstr ""
3227
3228 #. type: Plain text
3229 #: build/C/man3/getaddrinfo_a.3:247
3230 msgid ""
3231 "The B<getaddrinfo_a>()  function returns 0 if all of the requests have been "
3232 "enqueued successfully, or one of the following nonzero error codes:"
3233 msgstr ""
3234
3235 #. type: Plain text
3236 #: build/C/man3/getaddrinfo_a.3:252
3237 msgid ""
3238 "The resources necessary to enqueue the look-up requests were not available.  "
3239 "The application may check the error status of each request to determine "
3240 "which ones failed."
3241 msgstr ""
3242
3243 #. type: Plain text
3244 #: build/C/man3/getaddrinfo_a.3:259
3245 msgid "I<mode> is invalid."
3246 msgstr ""
3247
3248 #. type: Plain text
3249 #: build/C/man3/getaddrinfo_a.3:264
3250 msgid ""
3251 "The B<gai_suspend>()  function returns 0 if at least one of the listed "
3252 "requests has been completed.  Otherwise, it returns one of the following "
3253 "nonzero error codes:"
3254 msgstr ""
3255
3256 #. type: Plain text
3257 #: build/C/man3/getaddrinfo_a.3:267
3258 msgid "The given timeout expired before any of the requests could be completed."
3259 msgstr ""
3260
3261 #. type: TP
3262 #: build/C/man3/getaddrinfo_a.3:267 build/C/man3/getaddrinfo_a.3:297
3263 #, no-wrap
3264 msgid "B<EAI_ALLDONE>"
3265 msgstr ""
3266
3267 #. type: Plain text
3268 #: build/C/man3/getaddrinfo_a.3:270
3269 msgid "There were no actual requests given to the function."
3270 msgstr ""
3271
3272 #. type: TP
3273 #: build/C/man3/getaddrinfo_a.3:270
3274 #, no-wrap
3275 msgid "B<EAI_INTR>"
3276 msgstr ""
3277
3278 #. type: Plain text
3279 #: build/C/man3/getaddrinfo_a.3:275
3280 msgid ""
3281 "A signal has interrupted the function.  Note that this interruption might "
3282 "have been caused by signal notification of some completed look-up request."
3283 msgstr ""
3284
3285 #. type: Plain text
3286 #: build/C/man3/getaddrinfo_a.3:287
3287 msgid ""
3288 "The B<gai_error>()  function can return B<EAI_INPROGRESS> for an unfinished "
3289 "look-up request, 0 for a successfully completed look-up (as described "
3290 "above), one of the error codes that could be returned by B<getaddrinfo>(3), "
3291 "or the error code B<EAI_CANCELLED> if the request has been canceled "
3292 "explicitly before it could be finished."
3293 msgstr ""
3294
3295 #. type: Plain text
3296 #: build/C/man3/getaddrinfo_a.3:291
3297 msgid "The B<gai_cancel>()  function can return one of these values:"
3298 msgstr ""
3299
3300 #. type: TP
3301 #: build/C/man3/getaddrinfo_a.3:291
3302 #, no-wrap
3303 msgid "B<EAI_CANCELLED>"
3304 msgstr ""
3305
3306 #. type: Plain text
3307 #: build/C/man3/getaddrinfo_a.3:294
3308 msgid "The request has been canceled successfully."
3309 msgstr ""
3310
3311 #. type: TP
3312 #: build/C/man3/getaddrinfo_a.3:294
3313 #, no-wrap
3314 msgid "B<EAI_NOTCANCELLED>"
3315 msgstr ""
3316
3317 #. type: Plain text
3318 #: build/C/man3/getaddrinfo_a.3:297
3319 msgid "The request has not been canceled."
3320 msgstr ""
3321
3322 #. type: Plain text
3323 #: build/C/man3/getaddrinfo_a.3:300
3324 msgid "The request has already completed."
3325 msgstr ""
3326
3327 #. type: Plain text
3328 #: build/C/man3/getaddrinfo_a.3:305 build/C/man3/getnameinfo.3:197
3329 msgid ""
3330 "The B<gai_strerror>(3)  function translates these error codes to a human "
3331 "readable string, suitable for error reporting."
3332 msgstr ""
3333
3334 #. type: Plain text
3335 #: build/C/man3/getaddrinfo_a.3:308
3336 msgid ""
3337 "These functions are GNU extensions; they first appeared in glibc in version "
3338 "2.2.3."
3339 msgstr ""
3340
3341 #. type: Plain text
3342 #: build/C/man3/getaddrinfo_a.3:314
3343 msgid ""
3344 "The interface of B<getaddrinfo_a>()  was modeled after the B<lio_listio>(3)  "
3345 "interface."
3346 msgstr ""
3347
3348 #. type: Plain text
3349 #: build/C/man3/getaddrinfo_a.3:318
3350 msgid ""
3351 "Two examples are provided: a simple example that resolves several requests "
3352 "in parallel synchronously, and a complex example showing some of the "
3353 "asynchronous capabilities."
3354 msgstr ""
3355
3356 #. type: SS
3357 #: build/C/man3/getaddrinfo_a.3:318
3358 #, no-wrap
3359 msgid "Synchronous example"
3360 msgstr ""
3361
3362 #. type: Plain text
3363 #: build/C/man3/getaddrinfo_a.3:323
3364 msgid ""
3365 "The program below simply resolves several hostnames in parallel, giving a "
3366 "speed-up compared to resolving the hostnames sequentially using "
3367 "B<getaddrinfo>(3).  The program might be used like this:"
3368 msgstr ""
3369
3370 #. type: Plain text
3371 #: build/C/man3/getaddrinfo_a.3:330
3372 #, no-wrap
3373 msgid ""
3374 "$ B<./a.out ftp.us.kernel.org enoent.linuxfoundation.org gnu.cz>\n"
3375 "ftp.us.kernel.org: 128.30.2.36\n"
3376 "enoent.linuxfoundation.org: Name or service not known\n"
3377 "gnu.cz: 87.236.197.13\n"
3378 msgstr ""
3379
3380 #. type: Plain text
3381 #: build/C/man3/getaddrinfo_a.3:334
3382 msgid "Here is the program source code"
3383 msgstr ""
3384
3385 #. type: Plain text
3386 #: build/C/man3/getaddrinfo_a.3:341 build/C/man3/getaddrinfo_a.3:430
3387 #, no-wrap
3388 msgid ""
3389 "#define _GNU_SOURCE\n"
3390 "#include E<lt>netdb.hE<gt>\n"
3391 "#include E<lt>stdio.hE<gt>\n"
3392 "#include E<lt>stdlib.hE<gt>\n"
3393 "#include E<lt>string.hE<gt>\n"
3394 msgstr ""
3395
3396 #. type: Plain text
3397 #: build/C/man3/getaddrinfo_a.3:349
3398 #, no-wrap
3399 msgid ""
3400 "int\n"
3401 "main(int argc, char *argv[])\n"
3402 "{\n"
3403 "    int i, ret;\n"
3404 "    struct gaicb *reqs[argc - 1];\n"
3405 "    char host[NI_MAXHOST];\n"
3406 "    struct addrinfo *res;\n"
3407 msgstr ""
3408
3409 #. type: Plain text
3410 #: build/C/man3/getaddrinfo_a.3:354
3411 #, no-wrap
3412 msgid ""
3413 "    if (argc E<lt> 2) {\n"
3414 "        fprintf(stderr, \"Usage: %s HOST...\\en\", argv[0]);\n"
3415 "        exit(EXIT_FAILURE);\n"
3416 "    }\n"
3417 msgstr ""
3418
3419 #. type: Plain text
3420 #: build/C/man3/getaddrinfo_a.3:364
3421 #, no-wrap
3422 msgid ""
3423 "    for (i = 0; i E<lt> argc - 1; i++) {\n"
3424 "        reqs[i] = malloc(sizeof(*reqs[0]));\n"
3425 "        if (reqs[i] == NULL) {\n"
3426 "            perror(\"malloc\");\n"
3427 "            exit(EXIT_FAILURE);\n"
3428 "        }\n"
3429 "        memset(reqs[i], 0, sizeof(*reqs[0]));\n"
3430 "        reqs[i]-E<gt>ar_name = argv[i + 1];\n"
3431 "    }\n"
3432 msgstr ""
3433
3434 #. type: Plain text
3435 #: build/C/man3/getaddrinfo_a.3:371
3436 #, no-wrap
3437 msgid ""
3438 "    ret = getaddrinfo_a(GAI_WAIT, reqs, argc - 1, NULL);\n"
3439 "    if (ret != 0) {\n"
3440 "        fprintf(stderr, \"getaddrinfo_a() failed: %s\\en\",\n"
3441 "                gai_strerror(ret));\n"
3442 "        exit(EXIT_FAILURE);\n"
3443 "    }\n"
3444 msgstr ""
3445
3446 #. type: Plain text
3447 #: build/C/man3/getaddrinfo_a.3:377
3448 #, no-wrap
3449 msgid ""
3450 "    for (i = 0; i E<lt> argc - 1; i++) {\n"
3451 "        printf(\"%s: \", reqs[i]-E<gt>ar_name);\n"
3452 "        ret = gai_error(reqs[i]);\n"
3453 "        if (ret == 0) {\n"
3454 "            res = reqs[i]-E<gt>ar_result;\n"
3455 msgstr ""
3456
3457 #. type: Plain text
3458 #: build/C/man3/getaddrinfo_a.3:387
3459 #, no-wrap
3460 msgid ""
3461 "            ret = getnameinfo(res-E<gt>ai_addr, res-E<gt>ai_addrlen,\n"
3462 "                    host, sizeof(host),\n"
3463 "                    NULL, 0, NI_NUMERICHOST);\n"
3464 "            if (ret != 0) {\n"
3465 "                fprintf(stderr, \"getnameinfo() failed: %s\\en\",\n"
3466 "                        gai_strerror(ret));\n"
3467 "                exit(EXIT_FAILURE);\n"
3468 "            }\n"
3469 "            puts(host);\n"
3470 msgstr ""
3471
3472 #. type: Plain text
3473 #: build/C/man3/getaddrinfo_a.3:394
3474 #, no-wrap
3475 msgid ""
3476 "        } else {\n"
3477 "            puts(gai_strerror(ret));\n"
3478 "        }\n"
3479 "    }\n"
3480 "    exit(EXIT_SUCCESS);\n"
3481 "}\n"
3482 msgstr ""
3483
3484 #. type: SS
3485 #: build/C/man3/getaddrinfo_a.3:395
3486 #, no-wrap
3487 msgid "Asynchronous example"
3488 msgstr ""
3489
3490 #. type: Plain text
3491 #: build/C/man3/getaddrinfo_a.3:400
3492 msgid ""
3493 "This example shows a simple interactive B<getaddrinfo_a>()  front-end.  The "
3494 "notification facility is not demonstrated."
3495 msgstr ""
3496
3497 #. type: Plain text
3498 #: build/C/man3/getaddrinfo_a.3:402
3499 msgid "An example session might look like this:"
3500 msgstr ""
3501
3502 #. type: Plain text
3503 #: build/C/man3/getaddrinfo_a.3:419
3504 #, no-wrap
3505 msgid ""
3506 "$ B<./a.out>\n"
3507 "E<gt> a ftp.us.kernel.org enoent.linuxfoundation.org gnu.cz\n"
3508 "E<gt> c 2\n"
3509 "[2] gnu.cz: Request not canceled\n"
3510 "E<gt> w 0 1\n"
3511 "[00] ftp.us.kernel.org: Finished\n"
3512 "E<gt> l\n"
3513 "[00] ftp.us.kernel.org: 216.165.129.139\n"
3514 "[01] enoent.linuxfoundation.org: Processing request in progress\n"
3515 "[02] gnu.cz: 87.236.197.13\n"
3516 "E<gt> l\n"
3517 "[00] ftp.us.kernel.org: 216.165.129.139\n"
3518 "[01] enoent.linuxfoundation.org: Name or service not known\n"
3519 "[02] gnu.cz: 87.236.197.13\n"
3520 msgstr ""
3521
3522 #. type: Plain text
3523 #: build/C/man3/getaddrinfo_a.3:423
3524 msgid "The program source is as follows:"
3525 msgstr ""
3526
3527 #. type: Plain text
3528 #: build/C/man3/getaddrinfo_a.3:433
3529 #, no-wrap
3530 msgid ""
3531 "static struct gaicb **reqs = NULL;\n"
3532 "static int nreqs = 0;\n"
3533 msgstr ""
3534
3535 #. type: Plain text
3536 #: build/C/man3/getaddrinfo_a.3:438
3537 #, no-wrap
3538 msgid ""
3539 "static char *\n"
3540 "getcmd(void)\n"
3541 "{\n"
3542 "    static char buf[256];\n"
3543 msgstr ""
3544
3545 #. type: Plain text
3546 #: build/C/man3/getaddrinfo_a.3:442
3547 #, no-wrap
3548 msgid ""
3549 "    fputs(\"E<gt> \", stdout); fflush(stdout);\n"
3550 "    if (fgets(buf, sizeof(buf), stdin) == NULL)\n"
3551 "        return NULL;\n"
3552 msgstr ""
3553
3554 #. type: Plain text
3555 #: build/C/man3/getaddrinfo_a.3:445
3556 #, no-wrap
3557 msgid ""
3558 "    if (buf[strlen(buf) - 1] == \\(aq\\en\\(aq)\n"
3559 "        buf[strlen(buf) - 1] = 0;\n"
3560 msgstr ""
3561
3562 #. type: Plain text
3563 #: build/C/man3/getaddrinfo_a.3:448
3564 #, no-wrap
3565 msgid ""
3566 "    return buf;\n"
3567 "}\n"
3568 msgstr ""
3569
3570 #. type: Plain text
3571 #: build/C/man3/getaddrinfo_a.3:456
3572 #, no-wrap
3573 msgid ""
3574 "/* Add requests for specified hostnames */\n"
3575 "static void\n"
3576 "add_requests(void)\n"
3577 "{\n"
3578 "    int nreqs_base = nreqs;\n"
3579 "    char *host;\n"
3580 "    int ret;\n"
3581 msgstr ""
3582
3583 #. type: Plain text
3584 #: build/C/man3/getaddrinfo_a.3:460
3585 #, no-wrap
3586 msgid ""
3587 "    while ((host = strtok(NULL, \" \"))) {\n"
3588 "        nreqs++;\n"
3589 "        reqs = realloc(reqs, nreqs * sizeof(reqs[0]));\n"
3590 msgstr ""
3591
3592 #. type: Plain text
3593 #: build/C/man3/getaddrinfo_a.3:464
3594 #, no-wrap
3595 msgid ""
3596 "        reqs[nreqs - 1] = calloc(1, sizeof(*reqs[0]));\n"
3597 "        reqs[nreqs - 1]-E<gt>ar_name = strdup(host);\n"
3598 "    }\n"
3599 msgstr ""
3600
3601 #. type: Plain text
3602 #: build/C/man3/getaddrinfo_a.3:466
3603 #, no-wrap
3604 msgid "    /* Queue nreqs_base..nreqs requests. */\n"
3605 msgstr ""
3606
3607 #. type: Plain text
3608 #: build/C/man3/getaddrinfo_a.3:475
3609 #, no-wrap
3610 msgid ""
3611 "    ret = getaddrinfo_a(GAI_NOWAIT, &reqs[nreqs_base],\n"
3612 "                        nreqs - nreqs_base, NULL);\n"
3613 "    if (ret) {\n"
3614 "        fprintf(stderr, \"getaddrinfo_a() failed: %s\\en\",\n"
3615 "                gai_strerror(ret));\n"
3616 "        exit(EXIT_FAILURE);\n"
3617 "    }\n"
3618 "}\n"
3619 msgstr ""
3620
3621 #. type: Plain text
3622 #: build/C/man3/getaddrinfo_a.3:484
3623 #, no-wrap
3624 msgid ""
3625 "/* Wait until at least one of specified requests completes */\n"
3626 "static void\n"
3627 "wait_requests(void)\n"
3628 "{\n"
3629 "    char *id;\n"
3630 "    int i, ret, n;\n"
3631 "    struct gaicb const **wait_reqs = calloc(nreqs, sizeof(*wait_reqs));\n"
3632 "                /* NULL elements are ignored by gai_suspend(). */\n"
3633 msgstr ""
3634
3635 #. type: Plain text
3636 #: build/C/man3/getaddrinfo_a.3:487 build/C/man3/getaddrinfo_a.3:524
3637 #, no-wrap
3638 msgid ""
3639 "    while ((id = strtok(NULL, \" \")) != NULL) {\n"
3640 "        n = atoi(id);\n"
3641 msgstr ""
3642
3643 #. type: Plain text
3644 #: build/C/man3/getaddrinfo_a.3:492 build/C/man3/getaddrinfo_a.3:529
3645 #, no-wrap
3646 msgid ""
3647 "        if (n E<gt>= nreqs) {\n"
3648 "            printf(\"Bad request number: %s\\en\", id);\n"
3649 "            return;\n"
3650 "        }\n"
3651 msgstr ""
3652
3653 #. type: Plain text
3654 #: build/C/man3/getaddrinfo_a.3:495
3655 #, no-wrap
3656 msgid ""
3657 "        wait_reqs[n] = reqs[n];\n"
3658 "    }\n"
3659 msgstr ""
3660
3661 #. type: Plain text
3662 #: build/C/man3/getaddrinfo_a.3:501
3663 #, no-wrap
3664 msgid ""
3665 "    ret = gai_suspend(wait_reqs, nreqs, NULL);\n"
3666 "    if (ret) {\n"
3667 "        printf(\"gai_suspend(): %s\\en\", gai_strerror(ret));\n"
3668 "        return;\n"
3669 "    }\n"
3670 msgstr ""
3671
3672 #. type: Plain text
3673 #: build/C/man3/getaddrinfo_a.3:505
3674 #, no-wrap
3675 msgid ""
3676 "    for (i = 0; i E<lt> nreqs; i++) {\n"
3677 "        if (wait_reqs[i] == NULL)\n"
3678 "            continue;\n"
3679 msgstr ""
3680
3681 #. type: Plain text
3682 #: build/C/man3/getaddrinfo_a.3:509
3683 #, no-wrap
3684 msgid ""
3685 "        ret = gai_error(reqs[i]);\n"
3686 "        if (ret == EAI_INPROGRESS)\n"
3687 "            continue;\n"
3688 msgstr ""
3689
3690 #. type: Plain text
3691 #: build/C/man3/getaddrinfo_a.3:514
3692 #, no-wrap
3693 msgid ""
3694 "        printf(\"[%02d] %s: %s\\en\", i, reqs[i]-E<gt>ar_name,\n"
3695 "               ret == 0 ? \"Finished\" : gai_strerror(ret));\n"
3696 "    }\n"
3697 "}\n"
3698 msgstr ""
3699
3700 #. type: Plain text
3701 #: build/C/man3/getaddrinfo_a.3:521
3702 #, no-wrap
3703 msgid ""
3704 "/* Cancel specified requests */\n"
3705 "static void\n"
3706 "cancel_requests(void)\n"
3707 "{\n"
3708 "    char *id;\n"
3709 "    int ret, n;\n"
3710 msgstr ""
3711
3712 #. type: Plain text
3713 #: build/C/man3/getaddrinfo_a.3:535
3714 #, no-wrap
3715 msgid ""
3716 "        ret = gai_cancel(reqs[n]);\n"
3717 "        printf(\"[%s] %s: %s\\en\", id, reqs[atoi(id)]-E<gt>ar_name,\n"
3718 "               gai_strerror(ret));\n"
3719 "    }\n"
3720 "}\n"
3721 msgstr ""
3722
3723 #. type: Plain text
3724 #: build/C/man3/getaddrinfo_a.3:543
3725 #, no-wrap
3726 msgid ""
3727 "/* List all requests */\n"
3728 "static void\n"
3729 "list_requests(void)\n"
3730 "{\n"
3731 "    int i, ret;\n"
3732 "    char host[NI_MAXHOST];\n"
3733 "    struct addrinfo *res;\n"
3734 msgstr ""
3735
3736 #. type: Plain text
3737 #: build/C/man3/getaddrinfo_a.3:547
3738 #, no-wrap
3739 msgid ""
3740 "    for (i = 0; i E<lt> nreqs; i++) {\n"
3741 "        printf(\"[%02d] %s: \", i, reqs[i]-E<gt>ar_name);\n"
3742 "        ret = gai_error(reqs[i]);\n"
3743 msgstr ""
3744
3745 #. type: Plain text
3746 #: build/C/man3/getaddrinfo_a.3:550
3747 #, no-wrap
3748 msgid ""
3749 "        if (!ret) {\n"
3750 "            res = reqs[i]-E<gt>ar_result;\n"
3751 msgstr ""
3752
3753 #. type: Plain text
3754 #: build/C/man3/getaddrinfo_a.3:565
3755 #, no-wrap
3756 msgid ""
3757 "            ret = getnameinfo(res-E<gt>ai_addr, res-E<gt>ai_addrlen,\n"
3758 "                              host, sizeof(host),\n"
3759 "                              NULL, 0, NI_NUMERICHOST);\n"
3760 "            if (ret) {\n"
3761 "                fprintf(stderr, \"getnameinfo() failed: %s\\en\",\n"
3762 "                        gai_strerror(ret));\n"
3763 "                exit(EXIT_FAILURE);\n"
3764 "            }\n"
3765 "            puts(host);\n"
3766 "        } else {\n"
3767 "            puts(gai_strerror(ret));\n"
3768 "        }\n"
3769 "    }\n"
3770 "}\n"
3771 msgstr ""
3772
3773 #. type: Plain text
3774 #: build/C/man3/getaddrinfo_a.3:571
3775 #, no-wrap
3776 msgid ""
3777 "int\n"
3778 "main(int argc, char *argv[])\n"
3779 "{\n"
3780 "    char *cmdline;\n"
3781 "    char *cmd;\n"
3782 msgstr ""
3783
3784 #. type: Plain text
3785 #: build/C/man3/getaddrinfo_a.3:574
3786 #, no-wrap
3787 msgid ""
3788 "    while ((cmdline = getcmd()) != NULL) {\n"
3789 "        cmd = strtok(cmdline, \" \");\n"
3790 msgstr ""
3791
3792 #. type: Plain text
3793 #: build/C/man3/getaddrinfo_a.3:599
3794 #, no-wrap
3795 msgid ""
3796 "        if (cmd == NULL) {\n"
3797 "            list_requests();\n"
3798 "        } else {\n"
3799 "            switch (cmd[0]) {\n"
3800 "            case \\(aqa\\(aq:\n"
3801 "                add_requests();\n"
3802 "                break;\n"
3803 "            case \\(aqw\\(aq:\n"
3804 "                wait_requests();\n"
3805 "                break;\n"
3806 "            case \\(aqc\\(aq:\n"
3807 "                cancel_requests();\n"
3808 "                break;\n"
3809 "            case \\(aql\\(aq:\n"
3810 "                list_requests();\n"
3811 "                break;\n"
3812 "            default:\n"
3813 "                fprintf(stderr, \"Bad command: %c\\en\", cmd[0]);\n"
3814 "                break;\n"
3815 "            }\n"
3816 "        }\n"
3817 "    }\n"
3818 "    exit(EXIT_SUCCESS);\n"
3819 "}\n"
3820 msgstr ""
3821
3822 #. type: Plain text
3823 #: build/C/man3/getaddrinfo_a.3:607
3824 msgid ""
3825 "B<getaddrinfo>(3), B<inet>(3), B<lio_listio>(3), B<hostname>(7), B<ip>(7), "
3826 "B<sigevent>(7)"
3827 msgstr ""
3828
3829 #. type: TH
3830 #: build/C/man1/getent.1:24
3831 #, no-wrap
3832 msgid "GETENT"
3833 msgstr ""
3834
3835 #. type: TH
3836 #: build/C/man1/getent.1:24
3837 #, no-wrap
3838 msgid "2013-03-15"
3839 msgstr ""
3840
3841 #. type: TH
3842 #: build/C/man1/getent.1:24
3843 #, no-wrap
3844 msgid "User Commands"
3845 msgstr ""
3846
3847 #. type: Plain text
3848 #: build/C/man1/getent.1:27
3849 msgid "getent - get entries from Name Service Switch libraries"
3850 msgstr ""
3851
3852 #. type: Plain text
3853 #: build/C/man1/getent.1:30
3854 msgid "B<getent> I<database> [I<key> ...]"
3855 msgstr ""
3856
3857 #. type: Plain text
3858 #: build/C/man1/getent.1:45
3859 msgid ""
3860 "The B<getent> command displays entries from databases supported by the Name "
3861 "Service Switch libraries, which are configured in I</etc/nsswitch.conf>.  If "
3862 "one or more I<key> arguments are provided, then only the entries that match "
3863 "the supplied keys will be displayed.  Otherwise, if no I<key> is provided, "
3864 "all entries will be displayed (unless the database does not support "
3865 "enumeration)."
3866 msgstr ""
3867
3868 #. type: Plain text
3869 #: build/C/man1/getent.1:49
3870 msgid ""
3871 "The I<database> may be any of those supported by the GNU C Library, listed "
3872 "below:"
3873 msgstr ""
3874
3875 #. type: TP
3876 #: build/C/man1/getent.1:50
3877 #, no-wrap
3878 msgid "B<ahosts>"
3879 msgstr ""
3880
3881 #. type: Plain text
3882 #: build/C/man1/getent.1:71
3883 msgid ""
3884 "When no I<key> is provided, use B<sethostent>(3), B<gethostent>(3), and "
3885 "B<endhostent>(3)  to enumerate the hosts database.  This is identical to "
3886 "using B<hosts>.  When one or more I<key> arguments are provided, pass each "
3887 "I<key> in succession to B<getaddrinfo>(3)  with the address family "
3888 "B<AF_UNSPEC>, enumerating each socket address structure returned."
3889 msgstr ""
3890
3891 #. type: TP
3892 #: build/C/man1/getent.1:71
3893 #, no-wrap
3894 msgid "B<ahostsv4>"
3895 msgstr ""
3896
3897 #. type: Plain text
3898 #: build/C/man1/getent.1:77
3899 msgid "Same as B<ahosts>, but use the address family B<AF_INET>."
3900 msgstr ""
3901
3902 #. type: TP
3903 #: build/C/man1/getent.1:77
3904 #, no-wrap
3905 msgid "B<ahostsv6>"
3906 msgstr ""
3907
3908 #. type: Plain text
3909 #: build/C/man1/getent.1:88
3910 msgid ""
3911 "Same as B<ahosts>, but use the address family B<AF_INET6>.  The call to "
3912 "B<getaddrinfo>(3)  in this case includes the B<AI_V4MAPPED> flag."
3913 msgstr ""
3914
3915 #. type: TP
3916 #: build/C/man1/getent.1:88 build/C/man5/nsswitch.conf.5:44
3917 #, no-wrap
3918 msgid "B<aliases>"
3919 msgstr ""
3920
3921 #. type: Plain text
3922 #: build/C/man1/getent.1:105
3923 msgid ""
3924 "When no I<key> is provided, use B<setaliasent>(3), B<getaliasent>(3), and "
3925 "B<endaliasent>(3)  to enumerate the aliases database.  When one or more "
3926 "I<key> arguments are provided, pass each I<key> in succession to "
3927 "B<getaliasbyname>(3)  and display the result."
3928 msgstr ""
3929
3930 #. type: TP
3931 #: build/C/man1/getent.1:105 build/C/man5/nsswitch.conf.5:49
3932 #, no-wrap
3933 msgid "B<ethers>"
3934 msgstr ""
3935
3936 #. type: Plain text
3937 #: build/C/man1/getent.1:121
3938 msgid ""
3939 "When one or more I<key> arguments are provided, pass each I<key> in "
3940 "succession to B<ether_aton>(3)  and B<ether_hostton>(3)  until a result is "
3941 "obtained, and display the result.  Enumeration is not supported on "
3942 "B<ethers>, so a I<key> must be provided."
3943 msgstr ""
3944
3945 #. type: TP
3946 #: build/C/man1/getent.1:121 build/C/man5/nsswitch.conf.5:52
3947 #, no-wrap
3948 msgid "B<group>"
3949 msgstr ""
3950
3951 #. type: Plain text
3952 #: build/C/man1/getent.1:142
3953 msgid ""
3954 "When no I<key> is provided, use B<setgrent>(3), B<getgrent>(3), and "
3955 "B<endgrent>(3)  to enumerate the group database.  When one or more I<key> "
3956 "arguments are provided, pass each numeric I<key> to B<getgrgid>(3)  and each "
3957 "nonnumeric I<key> to B<getgrnam>(3)  and display the result."
3958 msgstr ""
3959
3960 #. type: TP
3961 #: build/C/man1/getent.1:142
3962 #, no-wrap
3963 msgid "B<gshadow>"
3964 msgstr ""
3965
3966 #. type: Plain text
3967 #: build/C/man1/getent.1:159
3968 msgid ""
3969 "When no I<key> is provided, use B<setsgent>(3), B<getsgent>(3), and "
3970 "B<endsgent>(3)  to enumerate the gshadow database.  When one or more I<key> "
3971 "arguments are provided, pass each I<key> in succession to B<getsgnam>(3)  "
3972 "and display the result."
3973 msgstr ""
3974
3975 #. type: TP
3976 #: build/C/man1/getent.1:159 build/C/man5/nsswitch.conf.5:57
3977 #, no-wrap
3978 msgid "B<hosts>"
3979 msgstr ""
3980
3981 #. type: Plain text
3982 #: build/C/man1/getent.1:182
3983 msgid ""
3984 "When no I<key> is provided, use B<sethostent>(3), B<gethostent>(3), and "
3985 "B<endhostent>(3)  to enumerate the hosts database.  When one or more I<key> "
3986 "arguments are provided, pass each I<key> to B<gethostbyaddr>(3)  or "
3987 "B<gethostbyname2>(3), depending on whether a call to B<inet_pton>(3)  "
3988 "indicates that the I<key> is an IPv6 or IPv4 address or not, and display the "
3989 "result."
3990 msgstr ""
3991
3992 #. type: TP
3993 #: build/C/man1/getent.1:182 build/C/man5/nsswitch.conf.5:62
3994 #, no-wrap
3995 msgid "B<initgroups>"
3996 msgstr ""
3997
3998 #. type: Plain text
3999 #: build/C/man1/getent.1:196
4000 msgid ""
4001 "When one or more I<key> arguments are provided, pass each I<key> in "
4002 "succession to B<getgrouplist>(3)  and display the result.  Enumeration is "
4003 "not supported on B<initgroups>, so a I<key> must be provided."
4004 msgstr ""
4005
4006 #. type: TP
4007 #: build/C/man1/getent.1:196 build/C/man5/nsswitch.conf.5:67
4008 #, no-wrap
4009 msgid "B<netgroup>"
4010 msgstr ""
4011
4012 #. type: Plain text
4013 #: build/C/man1/getent.1:222
4014 msgid ""
4015 "When one I<key> is provided, pass the I<key> to B<setnetgrent>(3)  and, "
4016 "using B<getnetgrent>(3)  display the resulting string triple (I<hostname>, "
4017 "I<username>, I<domainname>).  Alternatively, three I<keys> may be provided, "
4018 "which are interpreted as the I<hostname>, I<username> and I<domainname> to "
4019 "match to a netgroup name via B<innetgr>(3).  Enumeration is not supported on "
4020 "B<netgroup>, so either one or three I<keys> must be provided."
4021 msgstr ""
4022
4023 #. type: TP
4024 #: build/C/man1/getent.1:222 build/C/man5/nsswitch.conf.5:71
4025 #, no-wrap
4026 msgid "B<networks>"
4027 msgstr ""
4028
4029 #. type: Plain text
4030 #: build/C/man1/getent.1:243
4031 msgid ""
4032 "When no I<key> is provided, use B<setnetent>(3), B<getnetent>(3), and "
4033 "B<endnetent>(3)  to enumerate the networks database.  When one or more "
4034 "I<key> arguments are provided, pass each numeric I<key> to "
4035 "B<getnetbyaddr>(3)  and each nonnumeric I<key> to B<getnetbyname>(3)  and "
4036 "display the result."
4037 msgstr ""
4038
4039 #. type: TP
4040 #: build/C/man1/getent.1:243 build/C/man5/nsswitch.conf.5:76
4041 #, no-wrap
4042 msgid "B<passwd>"
4043 msgstr ""
4044
4045 #. type: Plain text
4046 #: build/C/man1/getent.1:264
4047 msgid ""
4048 "When no I<key> is provided, use B<setpwent>(3), B<getpwent>(3), and "
4049 "B<endpwent>(3)  to enumerate the passwd database.  When one or more I<key> "
4050 "arguments are provided, pass each numeric I<key> to B<getpwuid>(3)  and each "
4051 "nonnumeric I<key> to B<getpwnam>(3)  and display the result."
4052 msgstr ""
4053
4054 #. type: TP
4055 #: build/C/man1/getent.1:264 build/C/man5/nsswitch.conf.5:81
4056 #, no-wrap
4057 msgid "B<protocols>"
4058 msgstr ""
4059
4060 #. type: Plain text
4061 #: build/C/man1/getent.1:285
4062 msgid ""
4063 "When no I<key> is provided, use B<setprotoent>(3), B<getprotoent>(3), and "
4064 "B<endprotoent>(3)  to enumerate the protocols database.  When one or more "
4065 "I<key> arguments are provided, pass each numeric I<key> to "
4066 "B<getprotobynumber>(3)  and each nonnumeric I<key> to B<getprotobyname>(3)  "
4067 "and display the result."
4068 msgstr ""
4069
4070 #. type: TP
4071 #: build/C/man1/getent.1:285 build/C/man5/nsswitch.conf.5:89
4072 #, no-wrap
4073 msgid "B<rpc>"
4074 msgstr ""
4075
4076 #. type: Plain text
4077 #: build/C/man1/getent.1:306
4078 msgid ""
4079 "When no I<key> is provided, use B<setrpcent>(3), B<getrpcent>(3), and "
4080 "B<endrpcent>(3)  to enumerate the rpc database.  When one or more I<key> "
4081 "arguments are provided, pass each numeric I<key> to B<getrpcbynumber>(3)  "
4082 "and each nonnumeric I<key> to B<getrpcbyname>(3)  and display the result."
4083 msgstr ""
4084
4085 #. type: TP
4086 #: build/C/man1/getent.1:306 build/C/man5/nsswitch.conf.5:94
4087 #, no-wrap
4088 msgid "B<services>"
4089 msgstr ""
4090
4091 #. type: Plain text
4092 #: build/C/man1/getent.1:327
4093 msgid ""
4094 "When no I<key> is provided, use B<setservent>(3), B<getservent>(3), and "
4095 "B<endservent>(3)  to enumerate the services database.  When one or more "
4096 "I<key> arguments are provided, pass each numeric I<key> to "
4097 "B<getservbynumber>(3)  and each nonnumeric I<key> to B<getservbyname>(3)  "
4098 "and display the result."
4099 msgstr ""
4100
4101 #. type: TP
4102 #: build/C/man1/getent.1:327 build/C/man5/nsswitch.conf.5:99
4103 #, no-wrap
4104 msgid "B<shadow>"
4105 msgstr ""
4106
4107 #. type: Plain text
4108 #: build/C/man1/getent.1:344
4109 msgid ""
4110 "When no I<key> is provided, use B<setspent>(3), B<getspent>(3), and "
4111 "B<endspent>(3)  to enumerate the shadow database.  When one or more I<key> "
4112 "arguments are provided, pass each I<key> in succession to B<getspnam>(3)  "
4113 "and display the result."
4114 msgstr ""
4115
4116 #. type: SH
4117 #: build/C/man1/getent.1:345
4118 #, no-wrap
4119 msgid "EXIT STATUS"
4120 msgstr ""
4121
4122 #. type: Plain text
4123 #: build/C/man1/getent.1:348
4124 msgid "One of the following exit values can be returned by B<getent>:"
4125 msgstr ""
4126
4127 #. type: TP
4128 #: build/C/man1/getent.1:349
4129 #, no-wrap
4130 msgid "B<0>"
4131 msgstr ""
4132
4133 #. type: Plain text
4134 #: build/C/man1/getent.1:352
4135 msgid "Command completed successfully."
4136 msgstr ""
4137
4138 #. type: TP
4139 #: build/C/man1/getent.1:352
4140 #, no-wrap
4141 msgid "B<1>"
4142 msgstr ""
4143
4144 #. type: Plain text
4145 #: build/C/man1/getent.1:357
4146 msgid "Missing arguments, or I<database> unknown."
4147 msgstr ""
4148
4149 #. type: TP
4150 #: build/C/man1/getent.1:357
4151 #, no-wrap
4152 msgid "B<2>"
4153 msgstr ""
4154
4155 #. type: Plain text
4156 #: build/C/man1/getent.1:363
4157 msgid "One or more supplied I<key> could not be found in the I<database>."
4158 msgstr ""
4159
4160 #. type: TP
4161 #: build/C/man1/getent.1:363
4162 #, no-wrap
4163 msgid "B<3>"
4164 msgstr ""
4165
4166 #. type: Plain text
4167 #: build/C/man1/getent.1:367
4168 msgid "Enumeration not supported on this I<database>."
4169 msgstr ""
4170
4171 #. type: Plain text
4172 #: build/C/man1/getent.1:370
4173 msgid "B<nsswitch.conf>(5)"
4174 msgstr ""
4175
4176 #. type: TH
4177 #: build/C/man3/gethostbyname.3:38
4178 #, no-wrap
4179 msgid "GETHOSTBYNAME"
4180 msgstr ""
4181
4182 #. type: TH
4183 #: build/C/man3/gethostbyname.3:38
4184 #, no-wrap
4185 msgid "2014-03-11"
4186 msgstr ""
4187
4188 #. type: Plain text
4189 #: build/C/man3/gethostbyname.3:46
4190 msgid ""
4191 "gethostbyname, gethostbyaddr, sethostent, gethostent, endhostent, h_errno, "
4192 "herror, hstrerror, gethostbyaddr_r, gethostbyname2, gethostbyname2_r, "
4193 "gethostbyname_r, gethostent_r - get network host entry"
4194 msgstr ""
4195
4196 #. type: Plain text
4197 #: build/C/man3/gethostbyname.3:50
4198 #, no-wrap
4199 msgid ""
4200 "B<#include E<lt>netdb.hE<gt>>\n"
4201 "B<extern int h_errno;>\n"
4202 msgstr ""
4203
4204 #. type: Plain text
4205 #: build/C/man3/gethostbyname.3:52
4206 #, no-wrap
4207 msgid "B<struct hostent *gethostbyname(const char *>I<name>B<);>\n"
4208 msgstr ""
4209
4210 #. type: Plain text
4211 #: build/C/man3/gethostbyname.3:56
4212 #, no-wrap
4213 msgid ""
4214 "B<#include E<lt>sys/socket.hE<gt>>       /* for AF_INET */\n"
4215 "B<struct hostent *gethostbyaddr(const void *>I<addr>B<,>\n"
4216 "B<                              socklen_t >I<len>B<, int >I<type>B<);>\n"
4217 msgstr ""
4218
4219 #. type: Plain text
4220 #: build/C/man3/gethostbyname.3:58
4221 #, no-wrap
4222 msgid "B<void sethostent(int >I<stayopen>B<);>\n"
4223 msgstr ""
4224
4225 #. type: Plain text
4226 #: build/C/man3/gethostbyname.3:60
4227 #, no-wrap
4228 msgid "B<void endhostent(void);>\n"
4229 msgstr ""
4230
4231 #. type: Plain text
4232 #: build/C/man3/gethostbyname.3:62
4233 #, no-wrap
4234 msgid "B<void herror(const char *>I<s>B<);>\n"
4235 msgstr ""
4236
4237 #. type: Plain text
4238 #: build/C/man3/gethostbyname.3:64
4239 #, no-wrap
4240 msgid "B<const char *hstrerror(int >I<err>B<);>\n"
4241 msgstr ""
4242
4243 #. type: Plain text
4244 #: build/C/man3/gethostbyname.3:66
4245 #, no-wrap
4246 msgid "/* System V/POSIX extension */\n"
4247 msgstr ""
4248
4249 #. type: Plain text
4250 #: build/C/man3/gethostbyname.3:68
4251 #, no-wrap
4252 msgid "B<struct hostent *gethostent(void);>\n"
4253 msgstr ""
4254
4255 #. type: Plain text
4256 #: build/C/man3/gethostbyname.3:72
4257 #, no-wrap
4258 msgid "B<struct hostent *gethostbyname2(const char *>I<name>B<, int >I<af>B<);>\n"
4259 msgstr ""
4260
4261 #. type: Plain text
4262 #: build/C/man3/gethostbyname.3:76
4263 #, no-wrap
4264 msgid ""
4265 "B<int gethostent_r(>\n"
4266 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4267 ">I<buflen>B<,>\n"
4268 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4269 msgstr ""
4270
4271 #. type: Plain text
4272 #: build/C/man3/gethostbyname.3:80
4273 #, no-wrap
4274 msgid ""
4275 "B<int gethostbyaddr_r(const void *>I<addr>B<, socklen_t >I<len>B<, int "
4276 ">I<type>B<,>\n"
4277 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4278 ">I<buflen>B<,>\n"
4279 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4280 msgstr ""
4281
4282 #. type: Plain text
4283 #: build/C/man3/gethostbyname.3:84
4284 #, no-wrap
4285 msgid ""
4286 "B<int gethostbyname_r(const char *>I<name>B<,>\n"
4287 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4288 ">I<buflen>B<,>\n"
4289 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4290 msgstr ""
4291
4292 #. type: Plain text
4293 #: build/C/man3/gethostbyname.3:88
4294 #, no-wrap
4295 msgid ""
4296 "B<int gethostbyname2_r(const char *>I<name>B<, int >I<af,>\n"
4297 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4298 ">I<buflen>B<,>\n"
4299 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4300 msgstr ""
4301
4302 #. type: Plain text
4303 #: build/C/man3/gethostbyname.3:102
4304 msgid ""
4305 "B<gethostbyname2>(), B<gethostent_r>(), B<gethostbyaddr_r>(), "
4306 "B<gethostbyname_r>(), B<gethostbyname2_r>():"
4307 msgstr ""
4308
4309 #. type: Plain text
4310 #: build/C/man3/gethostbyname.3:104 build/C/man3/gethostbyname.3:112 build/C/man3/getnetent_r.3:60 build/C/man3/getprotoent_r.3:57 build/C/man3/getservent_r.3:57
4311 msgid "_BSD_SOURCE || _SVID_SOURCE"
4312 msgstr ""
4313
4314 #. type: Plain text
4315 #: build/C/man3/gethostbyname.3:108
4316 msgid "B<herror>(), B<hstrerror>():"
4317 msgstr ""
4318
4319 #. type: TP
4320 #: build/C/man3/gethostbyname.3:109
4321 #, no-wrap
4322 msgid "Since glibc 2.8:"
4323 msgstr ""
4324
4325 #. type: TP
4326 #: build/C/man3/gethostbyname.3:112
4327 #, no-wrap
4328 msgid "Before glibc 2.8:"
4329 msgstr ""
4330
4331 #. type: Plain text
4332 #: build/C/man3/gethostbyname.3:115 build/C/man3/gethostbyname.3:126
4333 msgid "none"
4334 msgstr ""
4335
4336 #. type: Plain text
4337 #: build/C/man3/gethostbyname.3:118
4338 msgid "B<h_errno>:"
4339 msgstr ""
4340
4341 #. type: TP
4342 #: build/C/man3/gethostbyname.3:119
4343 #, no-wrap
4344 msgid "Since glibc 2.12:"
4345 msgstr ""
4346
4347 #. type: Plain text
4348 #: build/C/man3/gethostbyname.3:123
4349 #, no-wrap
4350 msgid ""
4351 "_BSD_SOURCE || _SVID_SOURCE ||\n"
4352 "    (_POSIX_C_SOURCE E<lt> 200809L && _XOPEN_SOURCE E<lt> 700)\n"
4353 msgstr ""
4354
4355 #. type: TP
4356 #: build/C/man3/gethostbyname.3:123
4357 #, no-wrap
4358 msgid "Before glibc 2.12:"
4359 msgstr ""
4360
4361 #. type: Plain text
4362 #: build/C/man3/gethostbyname.3:143
4363 msgid ""
4364 "The B<gethostbyname*>(), B<gethostbyaddr*>(), B<herror>(), and "
4365 "B<hstrerror>()  functions are obsolete.  Applications should use "
4366 "B<getaddrinfo>(3), B<getnameinfo>(3), and B<gai_strerror>(3)  instead."
4367 msgstr ""
4368
4369 #. type: Plain text
4370 #: build/C/man3/gethostbyname.3:184
4371 msgid ""
4372 "The B<gethostbyname>()  function returns a structure of type I<hostent> for "
4373 "the given host I<name>.  Here I<name> is either a hostname, or an IPv4 "
4374 "address in standard dot notation (as for B<inet_addr>(3)), or an IPv6 "
4375 "address in colon (and possibly dot) notation.  (See RFC\\ 1884 for the "
4376 "description of IPv6 addresses.)  If I<name> is an IPv4 or IPv6 address, no "
4377 "lookup is performed and B<gethostbyname>()  simply copies I<name> into the "
4378 "I<h_name> field and its I<struct in_addr> equivalent into the "
4379 "I<h_addr_list[0]> field of the returned I<hostent> structure.  If I<name> "
4380 "doesn't end in a dot and the environment variable B<HOSTALIASES> is set, the "
4381 "alias file pointed to by B<HOSTALIASES> will first be searched for I<name> "
4382 "(see B<hostname>(7)  for the file format).  The current domain and its "
4383 "parents are searched unless I<name> ends in a dot."
4384 msgstr ""
4385
4386 #. type: Plain text
4387 #: build/C/man3/gethostbyname.3:200
4388 msgid ""
4389 "The B<gethostbyaddr>()  function returns a structure of type I<hostent> for "
4390 "the given host address I<addr> of length I<len> and address type I<type>.  "
4391 "Valid address types are B<AF_INET> and B<AF_INET6>.  The host address "
4392 "argument is a pointer to a struct of a type depending on the address type, "
4393 "for example a I<struct in_addr *> (probably obtained via a call to "
4394 "B<inet_addr>(3))  for address type B<AF_INET>."
4395 msgstr ""
4396
4397 #. type: Plain text
4398 #: build/C/man3/gethostbyname.3:207
4399 msgid ""
4400 "The B<sethostent>()  function specifies, if I<stayopen> is true (1), that a "
4401 "connected TCP socket should be used for the name server queries and that the "
4402 "connection should remain open during successive queries.  Otherwise, name "
4403 "server queries will use UDP datagrams."
4404 msgstr ""
4405
4406 #. type: Plain text
4407 #: build/C/man3/gethostbyname.3:212
4408 msgid ""
4409 "The B<endhostent>()  function ends the use of a TCP connection for name "
4410 "server queries."
4411 msgstr ""
4412
4413 #. type: Plain text
4414 #: build/C/man3/gethostbyname.3:217
4415 msgid ""
4416 "The (obsolete)  B<herror>()  function prints the error message associated "
4417 "with the current value of I<h_errno> on I<stderr>."
4418 msgstr ""
4419
4420 #. type: Plain text
4421 #: build/C/man3/gethostbyname.3:222
4422 msgid ""
4423 "The (obsolete)  B<hstrerror>()  function takes an error number (typically "
4424 "I<h_errno>) and returns the corresponding message string."
4425 msgstr ""
4426
4427 #.  (See
4428 #.  .BR resolv+ (8)).
4429 #. type: Plain text
4430 #: build/C/man3/gethostbyname.3:239
4431 msgid ""
4432 "The domain name queries carried out by B<gethostbyname>()  and "
4433 "B<gethostbyaddr>()  use a combination of any or all of the name server "
4434 "B<named>(8), a broken out line from I</etc/hosts>, and the Network "
4435 "Information Service (NIS or YP), depending upon the contents of the I<order> "
4436 "line in I</etc/host.conf>.  The default action is to query B<named>(8), "
4437 "followed by I</etc/hosts>."
4438 msgstr ""
4439
4440 #. type: Plain text
4441 #: build/C/man3/gethostbyname.3:241
4442 msgid "The I<hostent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
4443 msgstr ""
4444
4445 #. type: Plain text
4446 #: build/C/man3/gethostbyname.3:253
4447 #, no-wrap
4448 msgid ""
4449 "struct hostent {\n"
4450 "    char  *h_name;            /* official name of host */\n"
4451 "    char **h_aliases;         /* alias list */\n"
4452 "    int    h_addrtype;        /* host address type */\n"
4453 "    int    h_length;          /* length of address */\n"
4454 "    char **h_addr_list;       /* list of addresses */\n"
4455 "}\n"
4456 "#define h_addr h_addr_list[0] /* for backward compatibility */\n"
4457 msgstr ""
4458
4459 #. type: Plain text
4460 #: build/C/man3/gethostbyname.3:257
4461 msgid "The members of the I<hostent> structure are:"
4462 msgstr ""
4463
4464 #. type: TP
4465 #: build/C/man3/gethostbyname.3:257 build/C/man3/getipnodebyname.3:210
4466 #, no-wrap
4467 msgid "I<h_name>"
4468 msgstr ""
4469
4470 #. type: Plain text
4471 #: build/C/man3/gethostbyname.3:260
4472 msgid "The official name of the host."
4473 msgstr ""
4474
4475 #. type: TP
4476 #: build/C/man3/gethostbyname.3:260 build/C/man3/getipnodebyname.3:213
4477 #, no-wrap
4478 msgid "I<h_aliases>"
4479 msgstr ""
4480
4481 #. type: Plain text
4482 #: build/C/man3/gethostbyname.3:263
4483 msgid "An array of alternative names for the host, terminated by a null pointer."
4484 msgstr ""
4485
4486 #. type: TP
4487 #: build/C/man3/gethostbyname.3:263 build/C/man3/getipnodebyname.3:217
4488 #, no-wrap
4489 msgid "I<h_addrtype>"
4490 msgstr ""
4491
4492 #. type: Plain text
4493 #: build/C/man3/gethostbyname.3:270
4494 msgid "The type of address; always B<AF_INET> or B<AF_INET6> at present."
4495 msgstr ""
4496
4497 #. type: TP
4498 #: build/C/man3/gethostbyname.3:270 build/C/man3/getipnodebyname.3:239
4499 #, no-wrap
4500 msgid "I<h_length>"
4501 msgstr ""
4502
4503 #. type: Plain text
4504 #: build/C/man3/gethostbyname.3:273
4505 msgid "The length of the address in bytes."
4506 msgstr ""
4507
4508 #. type: TP
4509 #: build/C/man3/gethostbyname.3:273 build/C/man3/getipnodebyname.3:253
4510 #, no-wrap
4511 msgid "I<h_addr_list>"
4512 msgstr ""
4513
4514 #. type: Plain text
4515 #: build/C/man3/gethostbyname.3:277
4516 msgid ""
4517 "An array of pointers to network addresses for the host (in network byte "
4518 "order), terminated by a null pointer."
4519 msgstr ""
4520
4521 #. type: TP
4522 #: build/C/man3/gethostbyname.3:277
4523 #, no-wrap
4524 msgid "I<h_addr>"
4525 msgstr ""
4526
4527 #. type: Plain text
4528 #: build/C/man3/gethostbyname.3:280
4529 msgid "The first address in I<h_addr_list> for backward compatibility."
4530 msgstr ""
4531
4532 #. type: Plain text
4533 #: build/C/man3/gethostbyname.3:292
4534 msgid ""
4535 "The B<gethostbyname>()  and B<gethostbyaddr>()  functions return the "
4536 "I<hostent> structure or a null pointer if an error occurs.  On error, the "
4537 "I<h_errno> variable holds an error number.  When non-NULL, the return value "
4538 "may point at static data, see the notes below."
4539 msgstr ""
4540
4541 #. type: Plain text
4542 #: build/C/man3/gethostbyname.3:294
4543 msgid "The variable I<h_errno> can have the following values:"
4544 msgstr ""
4545
4546 #. type: TP
4547 #: build/C/man3/gethostbyname.3:294 build/C/man3/getipnodebyname.3:190
4548 #, no-wrap
4549 msgid "B<HOST_NOT_FOUND>"
4550 msgstr ""
4551
4552 #. type: Plain text
4553 #: build/C/man3/gethostbyname.3:297
4554 msgid "The specified host is unknown."
4555 msgstr ""
4556
4557 #. type: TP
4558 #: build/C/man3/gethostbyname.3:297
4559 #, no-wrap
4560 msgid "B<NO_ADDRESS> or B<NO_DATA>"
4561 msgstr ""
4562
4563 #. type: Plain text
4564 #: build/C/man3/gethostbyname.3:300
4565 msgid "The requested name is valid but does not have an IP address."
4566 msgstr ""
4567
4568 #. type: TP
4569 #: build/C/man3/gethostbyname.3:300 build/C/man3/getipnodebyname.3:199
4570 #, no-wrap
4571 msgid "B<NO_RECOVERY>"
4572 msgstr ""
4573
4574 #. type: Plain text
4575 #: build/C/man3/gethostbyname.3:303
4576 msgid "A nonrecoverable name server error occurred."
4577 msgstr ""
4578
4579 #. type: TP
4580 #: build/C/man3/gethostbyname.3:303 build/C/man3/getipnodebyname.3:202
4581 #, no-wrap
4582 msgid "B<TRY_AGAIN>"
4583 msgstr ""
4584
4585 #. type: Plain text
4586 #: build/C/man3/gethostbyname.3:307
4587 msgid ""
4588 "A temporary error occurred on an authoritative name server.  Try again "
4589 "later."
4590 msgstr ""
4591
4592 #. type: TP
4593 #: build/C/man3/gethostbyname.3:308 build/C/man5/host.conf.5:181
4594 #, no-wrap
4595 msgid "I</etc/host.conf>"
4596 msgstr ""
4597
4598 #. type: Plain text
4599 #: build/C/man3/gethostbyname.3:311
4600 msgid "resolver configuration file"
4601 msgstr ""
4602
4603 #. type: Plain text
4604 #: build/C/man3/gethostbyname.3:311 build/C/man5/host.conf.5:187 build/C/man5/hosts.5:88
4605 #, no-wrap
4606 msgid "I</etc/hosts>"
4607 msgstr ""
4608
4609 #. type: Plain text
4610 #: build/C/man3/gethostbyname.3:314
4611 msgid "host database file"
4612 msgstr ""
4613
4614 #. type: Plain text
4615 #: build/C/man3/gethostbyname.3:314 build/C/man5/nsswitch.conf.5:306 build/C/man3/setnetgrent.3:92
4616 #, no-wrap
4617 msgid "I</etc/nsswitch.conf>"
4618 msgstr ""
4619
4620 #. type: Plain text
4621 #: build/C/man3/gethostbyname.3:317
4622 msgid "name service switch configuration"
4623 msgstr ""
4624
4625 #. type: Plain text
4626 #: build/C/man3/gethostbyname.3:341
4627 msgid ""
4628 "POSIX.1-2001 specifies B<gethostbyname>(), B<gethostbyaddr>(), "
4629 "B<sethostent>(), B<endhostent>(), B<gethostent>(), and I<h_errno>; "
4630 "B<gethostbyname>(), B<gethostbyaddr>(), and I<h_errno> are marked "
4631 "obsolescent in that standard.  POSIX.1-2008 removes the specifications of "
4632 "B<gethostbyname>(), B<gethostbyaddr>(), and I<h_errno>, recommending the use "
4633 "of B<getaddrinfo>(3)  and B<getnameinfo>(3)  instead."
4634 msgstr ""
4635
4636 #. type: Plain text
4637 #: build/C/man3/gethostbyname.3:351
4638 msgid ""
4639 "The functions B<gethostbyname>()  and B<gethostbyaddr>()  may return "
4640 "pointers to static data, which may be overwritten by later calls.  Copying "
4641 "the I<struct hostent> does not suffice, since it contains pointers; a deep "
4642 "copy is required."
4643 msgstr ""
4644
4645 #. type: Plain text
4646 #: build/C/man3/gethostbyname.3:375
4647 msgid ""
4648 "In the original BSD implementation the I<len> argument of B<gethostbyname>()  "
4649 "was an I<int>.  The SUSv2 standard is buggy and declares the I<len> argument "
4650 "of B<gethostbyaddr>()  to be of type I<size_t>.  (That is wrong, because it "
4651 "has to be I<int>, and I<size_t> is not.  POSIX.1-2001 makes it I<socklen_t>, "
4652 "which is OK.)  See also B<accept>(2)."
4653 msgstr ""
4654
4655 #. type: Plain text
4656 #: build/C/man3/gethostbyname.3:381
4657 msgid ""
4658 "The BSD prototype for B<gethostbyaddr>()  uses I<const char\\ *> for the "
4659 "first argument."
4660 msgstr ""
4661
4662 #. type: SS
4663 #: build/C/man3/gethostbyname.3:381
4664 #, no-wrap
4665 msgid "System V/POSIX extension"
4666 msgstr ""
4667
4668 #.  e.g., Linux, FreeBSD, UnixWare, HP-UX
4669 #.  e.g., FreeBSD, AIX
4670 #. type: Plain text
4671 #: build/C/man3/gethostbyname.3:398
4672 msgid ""
4673 "POSIX requires the B<gethostent>()  call, that should return the next entry "
4674 "in the host data base.  When using DNS/BIND this does not make much sense, "
4675 "but it may be reasonable if the host data base is a file that can be read "
4676 "line by line.  On many systems a routine of this name reads from the file "
4677 "I</etc/hosts>.  It may be available only when the library was built without "
4678 "DNS support.  The glibc version will ignore ipv6 entries.  This function is "
4679 "not reentrant, and glibc adds a reentrant version B<gethostent_r>()."
4680 msgstr ""
4681
4682 #. type: SS
4683 #: build/C/man3/gethostbyname.3:398
4684 #, no-wrap
4685 msgid "GNU extensions"
4686 msgstr ""
4687
4688 #. type: Plain text
4689 #: build/C/man3/gethostbyname.3:404
4690 msgid ""
4691 "Glibc2 also has a B<gethostbyname2>()  that works like B<gethostbyname>(), "
4692 "but permits to specify the address family to which the address must belong."
4693 msgstr ""
4694
4695 #. type: Plain text
4696 #: build/C/man3/gethostbyname.3:438
4697 msgid ""
4698 "Glibc2 also has reentrant versions B<gethostent_r>(), B<gethostbyaddr_r>(), "
4699 "B<gethostbyname_r>()  and B<gethostbyname2_r>().  The caller supplies a "
4700 "I<hostent> structure I<ret> which will be filled in on success, and a "
4701 "temporary work buffer I<buf> of size I<buflen>.  After the call, I<result> "
4702 "will point to the result on success.  In case of an error or if no entry is "
4703 "found I<result> will be NULL.  The functions return 0 on success and a "
4704 "nonzero error number on failure.  In addition to the errors returned by the "
4705 "nonreentrant versions of these functions, if I<buf> is too small, the "
4706 "functions will return B<ERANGE>, and the call should be retried with a "
4707 "larger buffer.  The global variable I<h_errno> is not modified, but the "
4708 "address of a variable in which to store error numbers is passed in "
4709 "I<h_errnop>."
4710 msgstr ""
4711
4712 #.  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482973
4713 #. type: Plain text
4714 #: build/C/man3/gethostbyname.3:443
4715 msgid ""
4716 "B<gethostbyname>()  does not recognize components of a dotted IPv4 address "
4717 "string that are expressed in hexadecimal."
4718 msgstr ""
4719
4720 #.  .BR getipnodebyaddr (3),
4721 #.  .BR getipnodebyname (3),
4722 #.  .BR resolv+ (8)
4723 #. type: Plain text
4724 #: build/C/man3/gethostbyname.3:457
4725 msgid ""
4726 "B<getaddrinfo>(3), B<getnameinfo>(3), B<inet>(3), B<inet_ntop>(3), "
4727 "B<inet_pton>(3), B<resolver>(3), B<hosts>(5), B<nsswitch.conf>(5), "
4728 "B<hostname>(7), B<named>(8)"
4729 msgstr ""
4730
4731 #. type: TH
4732 #: build/C/man3/getipnodebyname.3:26
4733 #, no-wrap
4734 msgid "GETIPNODEBYNAME"
4735 msgstr ""
4736
4737 #. type: TH
4738 #: build/C/man3/getipnodebyname.3:26
4739 #, no-wrap
4740 msgid "2010-09-04"
4741 msgstr ""
4742
4743 #. type: Plain text
4744 #: build/C/man3/getipnodebyname.3:30
4745 msgid ""
4746 "getipnodebyname, getipnodebyaddr, freehostent - get network hostnames and "
4747 "addresses"
4748 msgstr ""
4749
4750 #. type: Plain text
4751 #: build/C/man3/getipnodebyname.3:38
4752 #, no-wrap
4753 msgid ""
4754 "B<struct hostent *getipnodebyname(const char *>I<name>B<, int >I<af>B<,>\n"
4755 "B<                                int >I<flags>B<, int *>I<error_num>B<);>\n"
4756 msgstr ""
4757
4758 #. type: Plain text
4759 #: build/C/man3/getipnodebyname.3:41
4760 #, no-wrap
4761 msgid ""
4762 "B<struct hostent *getipnodebyaddr(const void *>I<addr>B<, size_t "
4763 ">I<len>B<,>\n"
4764 "B<                                int >I<af>B<, int *>I<error_num>B<);>\n"
4765 msgstr ""
4766
4767 #. type: Plain text
4768 #: build/C/man3/getipnodebyname.3:43
4769 #, no-wrap
4770 msgid "B<void freehostent(struct hostent *>I<ip>B<);>\n"
4771 msgstr ""
4772
4773 #. type: Plain text
4774 #: build/C/man3/getipnodebyname.3:51
4775 msgid ""
4776 "These functions are deprecated (and unavailable in glibc).  Use "
4777 "B<getaddrinfo>(3)  and B<getnameinfo>(3)  instead."
4778 msgstr ""
4779
4780 #. type: Plain text
4781 #: build/C/man3/getipnodebyname.3:59
4782 msgid ""
4783 "The B<getipnodebyname>()  and B<getipnodebyaddr>()  functions return the "
4784 "names and addresses of a network host.  These functions return a pointer to "
4785 "the following structure:"
4786 msgstr ""
4787
4788 #. type: Plain text
4789 #: build/C/man3/getipnodebyname.3:69
4790 #, no-wrap
4791 msgid ""
4792 "struct hostent {\n"
4793 "    char  *h_name;\n"
4794 "    char **h_aliases;\n"
4795 "    int    h_addrtype;\n"
4796 "    int    h_length;\n"
4797 "    char **h_addr_list;\n"
4798 "};\n"
4799 msgstr ""
4800
4801 #. type: Plain text
4802 #: build/C/man3/getipnodebyname.3:82
4803 msgid ""
4804 "These functions replace the B<gethostbyname>(3)  and B<gethostbyaddr>(3)  "
4805 "functions, which could access only the IPv4 network address family.  The "
4806 "B<getipnodebyname>()  and B<getipnodebyaddr>()  functions can access "
4807 "multiple network address families."
4808 msgstr ""
4809
4810 #. type: Plain text
4811 #: build/C/man3/getipnodebyname.3:93
4812 msgid ""
4813 "Unlike the B<gethostby> functions, these functions return pointers to "
4814 "dynamically allocated memory.  The B<freehostent>()  function is used to "
4815 "release the dynamically allocated memory after the caller no longer needs "
4816 "the I<hostent> structure."
4817 msgstr ""
4818
4819 #. type: SS
4820 #: build/C/man3/getipnodebyname.3:93
4821 #, no-wrap
4822 msgid "getipnodebyname() arguments"
4823 msgstr ""
4824
4825 #. type: Plain text
4826 #: build/C/man3/getipnodebyname.3:104
4827 msgid ""
4828 "The B<getipnodebyname>()  function looks up network addresses for the host "
4829 "specified by the I<name> argument.  The I<af> argument specifies one of the "
4830 "following values:"
4831 msgstr ""
4832
4833 #. type: TP
4834 #: build/C/man3/getipnodebyname.3:104 build/C/man3/getipnodebyname.3:166 build/C/man3/inet_ntop.3:57 build/C/man3/inet_pton.3:53
4835 #, no-wrap
4836 msgid "B<AF_INET>"
4837 msgstr ""
4838
4839 #. type: Plain text
4840 #: build/C/man3/getipnodebyname.3:110
4841 msgid ""
4842 "The I<name> argument points to a dotted-quad IPv4 address or a name of an "
4843 "IPv4 network host."
4844 msgstr ""
4845
4846 #. type: TP
4847 #: build/C/man3/getipnodebyname.3:110 build/C/man3/getipnodebyname.3:176 build/C/man3/inet_ntop.3:70 build/C/man3/inet_pton.3:67
4848 #, no-wrap
4849 msgid "B<AF_INET6>"
4850 msgstr ""
4851
4852 #. type: Plain text
4853 #: build/C/man3/getipnodebyname.3:116
4854 msgid ""
4855 "The I<name> argument points to a hexadecimal IPv6 address or a name of an "
4856 "IPv6 network host."
4857 msgstr ""
4858
4859 #. type: Plain text
4860 #: build/C/man3/getipnodebyname.3:125
4861 msgid ""
4862 "The I<flags> argument specifies additional options.  More than one option "
4863 "can be specified by bitwise OR-ing them together.  I<flags> should be set to "
4864 "0 if no options are desired."
4865 msgstr ""
4866
4867 #. type: TP
4868 #: build/C/man3/getipnodebyname.3:125
4869 #, no-wrap
4870 msgid "B<AI_V4MAPPED>"
4871 msgstr ""
4872
4873 #. type: Plain text
4874 #: build/C/man3/getipnodebyname.3:132
4875 msgid ""
4876 "This flag is used with B<AF_INET6> to request a query for IPv4 addresses "
4877 "instead of IPv6 addresses; the IPv4 addresses will be mapped to IPv6 "
4878 "addresses."
4879 msgstr ""
4880
4881 #. type: TP
4882 #: build/C/man3/getipnodebyname.3:132
4883 #, no-wrap
4884 msgid "B<AI_ALL>"
4885 msgstr ""
4886
4887 #. type: Plain text
4888 #: build/C/man3/getipnodebyname.3:138
4889 msgid ""
4890 "This flag is used with B<AI_V4MAPPED> to request a query for both IPv4 and "
4891 "IPv6 addresses.  Any IPv4 address found will be mapped to an IPv6 address."
4892 msgstr ""
4893
4894 #. type: TP
4895 #: build/C/man3/getipnodebyname.3:138
4896 #, no-wrap
4897 msgid "B<AI_ADDRCONFIG>"
4898 msgstr ""
4899
4900 #. type: Plain text
4901 #: build/C/man3/getipnodebyname.3:150
4902 msgid ""
4903 "This flag is used with B<AF_INET6> to further request that queries for IPv6 "
4904 "addresses should not be made unless the system has at least one IPv6 address "
4905 "assigned to a network interface, and that queries for IPv4 addresses should "
4906 "not be made unless the system has at least one IPv4 address assigned to a "
4907 "network interface.  This flag may be used by itself or with the "
4908 "B<AI_V4MAPPED> flag."
4909 msgstr ""
4910
4911 #. type: TP
4912 #: build/C/man3/getipnodebyname.3:150
4913 #, no-wrap
4914 msgid "B<AI_DEFAULT>"
4915 msgstr ""
4916
4917 #. type: Plain text
4918 #: build/C/man3/getipnodebyname.3:154
4919 msgid "This flag is equivalent to B<(AI_ADDRCONFIG | AI_V4MAPPED)>."
4920 msgstr ""
4921
4922 #. type: SS
4923 #: build/C/man3/getipnodebyname.3:154
4924 #, no-wrap
4925 msgid "getipnodebyaddr() arguments"
4926 msgstr ""
4927
4928 #. type: Plain text
4929 #: build/C/man3/getipnodebyname.3:166
4930 msgid ""
4931 "The B<getipnodebyaddr>()  function looks up the name of the host whose "
4932 "network address is specified by the I<addr> argument.  The I<af> argument "
4933 "specifies one of the following values:"
4934 msgstr ""
4935
4936 #. type: Plain text
4937 #: build/C/man3/getipnodebyname.3:176
4938 msgid ""
4939 "The I<addr> argument points to a I<struct in_addr> and I<len> must be set to "
4940 "I<sizeof(struct in_addr)>."
4941 msgstr ""
4942
4943 #. type: Plain text
4944 #: build/C/man3/getipnodebyname.3:186
4945 msgid ""
4946 "The I<addr> argument points to a I<struct in6_addr> and I<len> must be set "
4947 "to I<sizeof(struct in6_addr)>."
4948 msgstr ""
4949
4950 #. type: Plain text
4951 #: build/C/man3/getipnodebyname.3:190
4952 msgid ""
4953 "NULL is returned if an error occurred, and I<error_num> will contain an "
4954 "error code from the following list:"
4955 msgstr ""
4956
4957 #. type: Plain text
4958 #: build/C/man3/getipnodebyname.3:193
4959 msgid "The hostname or network address was not found."
4960 msgstr ""
4961
4962 #. type: TP
4963 #: build/C/man3/getipnodebyname.3:193
4964 #, no-wrap
4965 msgid "B<NO_ADDRESS>"
4966 msgstr ""
4967
4968 #. type: Plain text
4969 #: build/C/man3/getipnodebyname.3:199
4970 msgid ""
4971 "The domain name server recognized the network address or name, but no answer "
4972 "was returned.  This can happen if the network host has only IPv4 addresses "
4973 "and a request has been made for IPv6 information only, or vice versa."
4974 msgstr ""
4975
4976 #. type: Plain text
4977 #: build/C/man3/getipnodebyname.3:202
4978 msgid "The domain name server returned a permanent failure response."
4979 msgstr ""
4980
4981 #. type: Plain text
4982 #: build/C/man3/getipnodebyname.3:206
4983 msgid ""
4984 "The domain name server returned a temporary failure response.  You might "
4985 "have better luck next time."
4986 msgstr ""
4987
4988 #. type: Plain text
4989 #: build/C/man3/getipnodebyname.3:210
4990 msgid ""
4991 "A successful query returns a pointer to a I<hostent> structure that contains "
4992 "the following fields:"
4993 msgstr ""
4994
4995 #. type: Plain text
4996 #: build/C/man3/getipnodebyname.3:213
4997 msgid "This is the official name of this network host."
4998 msgstr ""
4999
5000 #. type: Plain text
5001 #: build/C/man3/getipnodebyname.3:217
5002 msgid ""
5003 "This is an array of pointers to unofficial aliases for the same host.  The "
5004 "array is terminated by a null pointer."
5005 msgstr ""
5006
5007 #. type: Plain text
5008 #: build/C/man3/getipnodebyname.3:239
5009 msgid ""
5010 "This is a copy of the I<af> argument to B<getipnodebyname>()  or "
5011 "B<getipnodebyaddr>().  I<h_addrtype> will always be B<AF_INET> if the I<af> "
5012 "argument was B<AF_INET>.  I<h_addrtype> will always be B<AF_INET6> if the "
5013 "I<af> argument was B<AF_INET6>."
5014 msgstr ""
5015
5016 #. type: Plain text
5017 #: build/C/man3/getipnodebyname.3:253
5018 msgid ""
5019 "This field will be set to I<sizeof(struct in_addr)> if I<h_addrtype> is "
5020 "B<AF_INET>, and to I<sizeof(struct in6_addr)> if I<h_addrtype> is "
5021 "B<AF_INET6>."
5022 msgstr ""
5023
5024 #. type: Plain text
5025 #: build/C/man3/getipnodebyname.3:258
5026 msgid ""
5027 "This is an array of one or more pointers to network address structures for "
5028 "the network host.  The array is terminated by a null pointer."
5029 msgstr ""
5030
5031 #.  Not in POSIX.1-2001.
5032 #. type: Plain text
5033 #: build/C/man3/getipnodebyname.3:261
5034 msgid "RFC\\ 2553."
5035 msgstr ""
5036
5037 #. type: Plain text
5038 #: build/C/man3/getipnodebyname.3:266
5039 msgid ""
5040 "These functions were present in glibc 2.1.91-95, but were removed again.  "
5041 "Several UNIX-like systems support them, but all call them deprecated."
5042 msgstr ""
5043
5044 #. type: Plain text
5045 #: build/C/man3/getipnodebyname.3:271
5046 msgid "B<getaddrinfo>(3), B<getnameinfo>(3), B<inet_ntop>(3), B<inet_pton>(3)"
5047 msgstr ""
5048
5049 #. type: TH
5050 #: build/C/man3/getnameinfo.3:10
5051 #, no-wrap
5052 msgid "GETNAMEINFO"
5053 msgstr ""
5054
5055 #. type: TH
5056 #: build/C/man3/getnameinfo.3:10
5057 #, no-wrap
5058 msgid "2013-01-15"
5059 msgstr ""
5060
5061 #. type: Plain text
5062 #: build/C/man3/getnameinfo.3:13
5063 msgid "getnameinfo - address-to-name translation in protocol-independent manner"
5064 msgstr ""
5065
5066 #. type: Plain text
5067 #: build/C/man3/getnameinfo.3:17
5068 #, no-wrap
5069 msgid ""
5070 "B<#include E<lt>sys/socket.hE<gt>>\n"
5071 "B<#include E<lt>netdb.hE<gt>>\n"
5072 msgstr ""
5073
5074 #. type: Plain text
5075 #: build/C/man3/getnameinfo.3:21
5076 #, no-wrap
5077 msgid ""
5078 "B<int getnameinfo(const struct sockaddr *>I<sa>B<, socklen_t >I<salen>B<,>\n"
5079 "B<                char *>I<host>B<, size_t >I<hostlen>B<,>\n"
5080 "B<                char *>I<serv>B<, size_t >I<servlen>B<, int "
5081 ">I<flags>B<);>\n"
5082 msgstr ""
5083
5084 #. type: Plain text
5085 #: build/C/man3/getnameinfo.3:31
5086 msgid ""
5087 "B<getnameinfo>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
5088 "_POSIX_SOURCE"
5089 msgstr ""
5090
5091 #. type: Plain text
5092 #: build/C/man3/getnameinfo.3:47
5093 msgid ""
5094 "The B<getnameinfo>()  function is the inverse of B<getaddrinfo>(3): it "
5095 "converts a socket address to a corresponding host and service, in a "
5096 "protocol-independent manner.  It combines the functionality of "
5097 "B<gethostbyaddr>(3)  and B<getservbyport>(3), but unlike those functions, "
5098 "B<getnameinfo>()  is reentrant and allows programs to eliminate "
5099 "IPv4-versus-IPv6 dependencies."
5100 msgstr ""
5101
5102 #. type: Plain text
5103 #: build/C/man3/getnameinfo.3:70
5104 msgid ""
5105 "The I<sa> argument is a pointer to a generic socket address structure (of "
5106 "type I<sockaddr_in> or I<sockaddr_in6>)  of size I<salen> that holds the "
5107 "input IP address and port number.  The arguments I<host> and I<serv> are "
5108 "pointers to caller-allocated buffers (of size I<hostlen> and I<servlen> "
5109 "respectively) into which B<getnameinfo>()  places null-terminated strings "
5110 "containing the host and service names respectively."
5111 msgstr ""
5112
5113 #. type: Plain text
5114 #: build/C/man3/getnameinfo.3:83
5115 msgid ""
5116 "The caller can specify that no hostname (or no service name)  is required by "
5117 "providing a NULL I<host> (or I<serv>)  argument or a zero I<hostlen> (or "
5118 "I<servlen>)  argument.  However, at least one of hostname or service name "
5119 "must be requested."
5120 msgstr ""
5121
5122 #. type: Plain text
5123 #: build/C/man3/getnameinfo.3:89
5124 msgid "The I<flags> argument modifies the behavior of B<getnameinfo>()  as follows:"
5125 msgstr ""
5126
5127 #. type: TP
5128 #: build/C/man3/getnameinfo.3:89
5129 #, no-wrap
5130 msgid "B<NI_NAMEREQD>"
5131 msgstr ""
5132
5133 #. type: Plain text
5134 #: build/C/man3/getnameinfo.3:92
5135 msgid "If set, then an error is returned if the hostname cannot be determined."
5136 msgstr ""
5137
5138 #. type: TP
5139 #: build/C/man3/getnameinfo.3:92
5140 #, no-wrap
5141 msgid "B<NI_DGRAM>"
5142 msgstr ""
5143
5144 #. type: Plain text
5145 #: build/C/man3/getnameinfo.3:98
5146 msgid ""
5147 "If set, then the service is datagram (UDP) based rather than stream (TCP) "
5148 "based.  This is required for the few ports (512-514)  that have different "
5149 "services for UDP and TCP."
5150 msgstr ""
5151
5152 #. type: TP
5153 #: build/C/man3/getnameinfo.3:98
5154 #, no-wrap
5155 msgid "B<NI_NOFQDN>"
5156 msgstr ""
5157
5158 #. type: Plain text
5159 #: build/C/man3/getnameinfo.3:102
5160 msgid ""
5161 "If set, return only the hostname part of the fully qualified domain name for "
5162 "local hosts."
5163 msgstr ""
5164
5165 #. type: TP
5166 #: build/C/man3/getnameinfo.3:102
5167 #, no-wrap
5168 msgid "B<NI_NUMERICHOST>"
5169 msgstr ""
5170
5171 #.  For example, by calling
5172 #.  .BR inet_ntop ()
5173 #.  instead of
5174 #.  .BR gethostbyaddr ().
5175 #.  POSIX.1-2003 has NI_NUMERICSCOPE, but glibc doesn't have it.
5176 #. type: Plain text
5177 #: build/C/man3/getnameinfo.3:112
5178 msgid ""
5179 "If set, then the numeric form of the hostname is returned.  (When not set, "
5180 "this will still happen in case the node's name cannot be determined.)"
5181 msgstr ""
5182
5183 #. type: TP
5184 #: build/C/man3/getnameinfo.3:112
5185 #, no-wrap
5186 msgid "B<NI_NUMERICSERV>"
5187 msgstr ""
5188
5189 #. type: Plain text
5190 #: build/C/man3/getnameinfo.3:117
5191 msgid ""
5192 "If set, then the numeric form of the service address is returned.  (When not "
5193 "set, this will still happen in case the service's name cannot be "
5194 "determined.)"
5195 msgstr ""
5196
5197 #. type: SS
5198 #: build/C/man3/getnameinfo.3:117
5199 #, no-wrap
5200 msgid "Extensions to getnameinfo() for Internationalized Domain Names"
5201 msgstr ""
5202
5203 #. type: Plain text
5204 #: build/C/man3/getnameinfo.3:126
5205 msgid ""
5206 "Starting with glibc 2.3.4, B<getnameinfo>()  has been extended to "
5207 "selectively allow hostnames to be transparently converted to and from the "
5208 "Internationalized Domain Name (IDN) format (see RFC 3490, "
5209 "I<Internationalizing Domain Names in Applications (IDNA)>).  Three new flags "
5210 "are defined:"
5211 msgstr ""
5212
5213 #. type: TP
5214 #: build/C/man3/getnameinfo.3:126
5215 #, no-wrap
5216 msgid "B<NI_IDN>"
5217 msgstr ""
5218
5219 #. type: Plain text
5220 #: build/C/man3/getnameinfo.3:132
5221 msgid ""
5222 "If this flag is used, then the name found in the lookup process is converted "
5223 "from IDN format to the locale's encoding if necessary.  ASCII-only names are "
5224 "not affected by the conversion, which makes this flag usable in existing "
5225 "programs and environments."
5226 msgstr ""
5227
5228 #. type: TP
5229 #: build/C/man3/getnameinfo.3:132
5230 #, no-wrap
5231 msgid "B<NI_IDN_ALLOW_UNASSIGNED>, B<NI_IDN_USE_STD3_ASCII_RULES>"
5232 msgstr ""
5233
5234 #.  FIXME glibc defines the following additional errors, some which
5235 #.  can probably be returned by getnameinfo(); they need to
5236 #.  be documented.
5237 #.  #ifdef __USE_GNU
5238 #.  #define EAI_INPROGRESS  -100  /* Processing request in progress.  */
5239 #.  #define EAI_CANCELED    -101  /* Request canceled.  */
5240 #.  #define EAI_NOTCANCELED -102  /* Request not canceled.  */
5241 #.  #define EAI_ALLDONE     -103  /* All requests done.  */
5242 #.  #define EAI_INTR        -104  /* Interrupted by a signal.  */
5243 #.  #define EAI_IDN_ENCODE  -105  /* IDN encoding failed.  */
5244 #.  #endif
5245 #. type: Plain text
5246 #: build/C/man3/getnameinfo.3:155
5247 msgid ""
5248 "On success 0 is returned, and node and service names, if requested, are "
5249 "filled with null-terminated strings, possibly truncated to fit the specified "
5250 "buffer lengths.  On error, one of the following nonzero error codes is "
5251 "returned:"
5252 msgstr ""
5253
5254 #. type: Plain text
5255 #: build/C/man3/getnameinfo.3:159
5256 msgid "The name could not be resolved at this time.  Try again later."
5257 msgstr ""
5258
5259 #. type: Plain text
5260 #: build/C/man3/getnameinfo.3:164
5261 msgid "The I<flags> argument has an invalid value."
5262 msgstr ""
5263
5264 #. type: Plain text
5265 #: build/C/man3/getnameinfo.3:167
5266 msgid "A nonrecoverable error occurred."
5267 msgstr ""
5268
5269 #. type: Plain text
5270 #: build/C/man3/getnameinfo.3:171
5271 msgid ""
5272 "The address family was not recognized, or the address length was invalid for "
5273 "the specified family."
5274 msgstr ""
5275
5276 #. type: Plain text
5277 #: build/C/man3/getnameinfo.3:180
5278 msgid ""
5279 "The name does not resolve for the supplied arguments.  B<NI_NAMEREQD> is set "
5280 "and the host's name cannot be located, or neither hostname nor service name "
5281 "were requested."
5282 msgstr ""
5283
5284 #. type: TP
5285 #: build/C/man3/getnameinfo.3:180
5286 #, no-wrap
5287 msgid "B<EAI_OVERFLOW>"
5288 msgstr ""
5289
5290 #. type: Plain text
5291 #: build/C/man3/getnameinfo.3:187
5292 msgid "The buffer pointed to by I<host> or I<serv> was too small."
5293 msgstr ""
5294
5295 #. type: Plain text
5296 #: build/C/man3/getnameinfo.3:192
5297 msgid "A system error occurred.  The error code can be found in I<errno>."
5298 msgstr ""
5299
5300 #. type: Plain text
5301 #: build/C/man3/getnameinfo.3:199
5302 msgid "/etc/hosts"
5303 msgstr ""
5304
5305 #. type: Plain text
5306 #: build/C/man3/getnameinfo.3:201
5307 msgid "/etc/nsswitch.conf"
5308 msgstr ""
5309
5310 #. type: Plain text
5311 #: build/C/man3/getnameinfo.3:203
5312 msgid "/etc/resolv.conf"
5313 msgstr ""
5314
5315 #. type: Plain text
5316 #: build/C/man3/getnameinfo.3:206
5317 msgid "B<getnameinfo>()  is provided in glibc since version 2.1."
5318 msgstr ""
5319
5320 #. type: Plain text
5321 #: build/C/man3/getnameinfo.3:208
5322 msgid "RFC\\ 2553, POSIX.1-2001."
5323 msgstr ""
5324
5325 #. type: Plain text
5326 #: build/C/man3/getnameinfo.3:213
5327 msgid ""
5328 "In order to assist the programmer in choosing reasonable sizes for the "
5329 "supplied buffers, I<E<lt>netdb.hE<gt>> defines the constants"
5330 msgstr ""
5331
5332 #. type: Plain text
5333 #: build/C/man3/getnameinfo.3:218
5334 #, no-wrap
5335 msgid ""
5336 "#define NI_MAXHOST      1025\n"
5337 "#define NI_MAXSERV      32\n"
5338 msgstr ""
5339
5340 #. type: Plain text
5341 #: build/C/man3/getnameinfo.3:228
5342 msgid ""
5343 "Since glibc 2.8, these definitions are exposed only if one of the feature "
5344 "test macros B<_BSD_SOURCE>, B<_SVID_SOURCE>, or B<_GNU_SOURCE> is defined."
5345 msgstr ""
5346
5347 #. type: Plain text
5348 #: build/C/man3/getnameinfo.3:236
5349 msgid ""
5350 "The former is the constant B<MAXDNAME> in recent versions of BIND's "
5351 "I<E<lt>arpa/nameser.hE<gt>> header file.  The latter is a guess based on the "
5352 "services listed in the current Assigned Numbers RFC."
5353 msgstr ""
5354
5355 #. type: Plain text
5356 #: build/C/man3/getnameinfo.3:241
5357 msgid ""
5358 "The following code tries to get the numeric hostname and service name, for a "
5359 "given socket address.  Note that there is no hardcoded reference to a "
5360 "particular address family."
5361 msgstr ""
5362
5363 #. type: Plain text
5364 #: build/C/man3/getnameinfo.3:247
5365 #, no-wrap
5366 msgid ""
5367 "struct sockaddr *sa;    /* input */\n"
5368 "socklen_t len;         /* input */\n"
5369 "char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV];\n"
5370 msgstr ""
5371
5372 #. type: Plain text
5373 #: build/C/man3/getnameinfo.3:251
5374 #, no-wrap
5375 msgid ""
5376 "if (getnameinfo(sa, len, hbuf, sizeof(hbuf), sbuf,\n"
5377 "            sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV) == 0)\n"
5378 "    printf(\"host=%s, serv=%s\\en\", hbuf, sbuf);\n"
5379 msgstr ""
5380
5381 #. type: Plain text
5382 #: build/C/man3/getnameinfo.3:256
5383 msgid ""
5384 "The following version checks if the socket address has a reverse address "
5385 "mapping."
5386 msgstr ""
5387
5388 #. type: Plain text
5389 #: build/C/man3/getnameinfo.3:262
5390 #, no-wrap
5391 msgid ""
5392 "struct sockaddr *sa;    /* input */\n"
5393 "socklen_t len;         /* input */\n"
5394 "char hbuf[NI_MAXHOST];\n"
5395 msgstr ""
5396
5397 #. type: Plain text
5398 #: build/C/man3/getnameinfo.3:268
5399 #, no-wrap
5400 msgid ""
5401 "if (getnameinfo(sa, len, hbuf, sizeof(hbuf),\n"
5402 "            NULL, 0, NI_NAMEREQD))\n"
5403 "    printf(\"could not resolve hostname\");\n"
5404 "else\n"
5405 "    printf(\"host=%s\\en\", hbuf);\n"
5406 msgstr ""
5407
5408 #. type: Plain text
5409 #: build/C/man3/getnameinfo.3:275
5410 msgid ""
5411 "An example program using B<getnameinfo>()  can be found in "
5412 "B<getaddrinfo>(3)."
5413 msgstr ""
5414
5415 #. type: Plain text
5416 #: build/C/man3/getnameinfo.3:290
5417 msgid ""
5418 "B<accept>(2), B<getpeername>(2), B<getsockname>(2), B<recvfrom>(2), "
5419 "B<socket>(2), B<getaddrinfo>(3), B<gethostbyaddr>(3), B<getservbyname>(3), "
5420 "B<getservbyport>(3), B<inet_ntop>(3), B<hosts>(5), B<services>(5), "
5421 "B<hostname>(7), B<named>(8)"
5422 msgstr ""
5423
5424 #. type: Plain text
5425 #: build/C/man3/getnameinfo.3:294
5426 msgid ""
5427 "R. Gilligan, S. Thomson, J. Bound and W. Stevens, I<Basic Socket Interface "
5428 "Extensions for IPv6>, RFC\\ 2553, March 1999."
5429 msgstr ""
5430
5431 #. type: Plain text
5432 #: build/C/man3/getnameinfo.3:300
5433 msgid ""
5434 "Tatsuya Jinmei and Atsushi Onoe, I<An Extension of Format for IPv6 Scoped "
5435 "Addresses>, internet draft, work in progress E<.UR "
5436 "ftp://ftp.ietf.org\\:/internet-drafts\\:/draft-ietf-ipngwg-scopedaddr-format-02.txt> "
5437 "E<.UE .>"
5438 msgstr ""
5439
5440 #. type: Plain text
5441 #: build/C/man3/getnameinfo.3:305
5442 msgid ""
5443 "Craig Metz, I<Protocol Independence Using the Sockets API>, Proceedings of "
5444 "the freenix track: 2000 USENIX annual technical conference, June 2000"
5445 msgstr ""
5446
5447 #. type: Plain text
5448 #: build/C/man3/getnameinfo.3:308
5449 msgid ""
5450 "E<.UR "
5451 "http://www.usenix.org\\:/publications\\:/library\\:/proceedings\\:/usenix2000\\:/freenix\\:/metzprotocol.html> "
5452 "E<.UE .>"
5453 msgstr ""
5454
5455 #. type: TH
5456 #: build/C/man3/getnetent.3:30
5457 #, no-wrap
5458 msgid "GETNETENT"
5459 msgstr ""
5460
5461 #. type: TH
5462 #: build/C/man3/getnetent.3:30 build/C/man3/getprotoent.3:30 build/C/man3/getservent.3:34
5463 #, no-wrap
5464 msgid "2008-08-19"
5465 msgstr ""
5466
5467 #. type: Plain text
5468 #: build/C/man3/getnetent.3:34
5469 msgid ""
5470 "getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent - get network "
5471 "entry"
5472 msgstr ""
5473
5474 #. type: Plain text
5475 #: build/C/man3/getnetent.3:37 build/C/man3/getnetent_r.3:33 build/C/man3/getprotoent.3:37 build/C/man3/getprotoent_r.3:33 build/C/man3/getservent.3:41 build/C/man3/getservent_r.3:33 build/C/man3/setnetgrent.3:17
5476 #, no-wrap
5477 msgid "B<#include E<lt>netdb.hE<gt>>\n"
5478 msgstr ""
5479
5480 #. type: Plain text
5481 #: build/C/man3/getnetent.3:39
5482 #, no-wrap
5483 msgid "B<struct netent *getnetent(void);>\n"
5484 msgstr ""
5485
5486 #. type: Plain text
5487 #: build/C/man3/getnetent.3:41
5488 #, no-wrap
5489 msgid "B<struct netent *getnetbyname(const char *>I<name>B<);>\n"
5490 msgstr ""
5491
5492 #. type: Plain text
5493 #: build/C/man3/getnetent.3:43
5494 #, no-wrap
5495 msgid "B<struct netent *getnetbyaddr(uint32_t >I<net>B<, int >I<type>B<);>\n"
5496 msgstr ""
5497
5498 #. type: Plain text
5499 #: build/C/man3/getnetent.3:45
5500 #, no-wrap
5501 msgid "B<void setnetent(int >I<stayopen>B<);>\n"
5502 msgstr ""
5503
5504 #. type: Plain text
5505 #: build/C/man3/getnetent.3:47
5506 #, no-wrap
5507 msgid "B<void endnetent(void);>\n"
5508 msgstr ""
5509
5510 #. type: Plain text
5511 #: build/C/man3/getnetent.3:57
5512 msgid ""
5513 "The B<getnetent>()  function reads the next entry from the networks database "
5514 "and returns a I<netent> structure containing the broken-out fields from the "
5515 "entry.  A connection is opened to the database if necessary."
5516 msgstr ""
5517
5518 #. type: Plain text
5519 #: build/C/man3/getnetent.3:66
5520 msgid ""
5521 "The B<getnetbyname>()  function returns a I<netent> structure for the entry "
5522 "from the database that matches the network I<name>."
5523 msgstr ""
5524
5525 #. type: Plain text
5526 #: build/C/man3/getnetent.3:80
5527 msgid ""
5528 "The B<getnetbyaddr>()  function returns a I<netent> structure for the entry "
5529 "from the database that matches the network number I<net> of type I<type>.  "
5530 "The I<net> argument must be in host byte order."
5531 msgstr ""
5532
5533 #. type: Plain text
5534 #: build/C/man3/getnetent.3:92
5535 msgid ""
5536 "The B<setnetent>()  function opens a connection to the database, and sets "
5537 "the next entry to the first entry.  If I<stayopen> is nonzero, then the "
5538 "connection to the database will not be closed between calls to one of the "
5539 "B<getnet*>()  functions."
5540 msgstr ""
5541
5542 #. type: Plain text
5543 #: build/C/man3/getnetent.3:96
5544 msgid "The B<endnetent>()  function closes the connection to the database."
5545 msgstr ""
5546
5547 #. type: Plain text
5548 #: build/C/man3/getnetent.3:102
5549 msgid "The I<netent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
5550 msgstr ""
5551
5552 #. type: Plain text
5553 #: build/C/man3/getnetent.3:111
5554 #, no-wrap
5555 msgid ""
5556 "struct netent {\n"
5557 "    char      *n_name;     /* official network name */\n"
5558 "    char     **n_aliases;  /* alias list */\n"
5559 "    int        n_addrtype; /* net address type */\n"
5560 "    uint32_t   n_net;      /* network number */\n"
5561 "}\n"
5562 msgstr ""
5563
5564 #. type: Plain text
5565 #: build/C/man3/getnetent.3:117
5566 msgid "The members of the I<netent> structure are:"
5567 msgstr ""
5568
5569 #. type: TP
5570 #: build/C/man3/getnetent.3:117
5571 #, no-wrap
5572 msgid "I<n_name>"
5573 msgstr ""
5574
5575 #. type: Plain text
5576 #: build/C/man3/getnetent.3:120
5577 msgid "The official name of the network."
5578 msgstr ""
5579
5580 #. type: TP
5581 #: build/C/man3/getnetent.3:120
5582 #, no-wrap
5583 msgid "I<n_aliases>"
5584 msgstr ""
5585
5586 #. type: Plain text
5587 #: build/C/man3/getnetent.3:123
5588 msgid "A NULL-terminated list of alternative names for the network."
5589 msgstr ""
5590
5591 #. type: TP
5592 #: build/C/man3/getnetent.3:123
5593 #, no-wrap
5594 msgid "I<n_addrtype>"
5595 msgstr ""
5596
5597 #. type: Plain text
5598 #: build/C/man3/getnetent.3:127
5599 msgid "The type of the network number; always B<AF_INET>."
5600 msgstr ""
5601
5602 #. type: TP
5603 #: build/C/man3/getnetent.3:127
5604 #, no-wrap
5605 msgid "I<n_net>"
5606 msgstr ""
5607
5608 #. type: Plain text
5609 #: build/C/man3/getnetent.3:130
5610 msgid "The network number in host byte order."
5611 msgstr ""
5612
5613 #. type: Plain text
5614 #: build/C/man3/getnetent.3:141
5615 msgid ""
5616 "The B<getnetent>(), B<getnetbyname>()  and B<getnetbyaddr>()  functions "
5617 "return a pointer to a statically allocated I<netent> structure, or a null "
5618 "pointer if an error occurs or the end of the file is reached."
5619 msgstr ""
5620
5621 #. type: TP
5622 #: build/C/man3/getnetent.3:142 build/C/man5/networks.5:71
5623 #, no-wrap
5624 msgid "I</etc/networks>"
5625 msgstr ""
5626
5627 #. type: Plain text
5628 #: build/C/man3/getnetent.3:145
5629 msgid "networks database file"
5630 msgstr ""
5631
5632 #. type: Plain text
5633 #: build/C/man3/getnetent.3:147 build/C/man3/getprotoent.3:142 build/C/man3/getservent.3:159
5634 msgid "4.3BSD, POSIX.1-2001."
5635 msgstr ""
5636
5637 #. type: Plain text
5638 #: build/C/man3/getnetent.3:154
5639 msgid ""
5640 "In glibc versions before 2.2, the I<net> argument of B<getnetbyaddr>()  was "
5641 "of type I<long>."
5642 msgstr ""
5643
5644 #.  .BR networks (5)
5645 #. type: Plain text
5646 #: build/C/man3/getnetent.3:159
5647 msgid "B<getnetent_r>(3), B<getprotoent>(3), B<getservent>(3)"
5648 msgstr ""
5649
5650 #. type: Plain text
5651 #: build/C/man3/getnetent.3:161
5652 msgid "RFC\\ 1101"
5653 msgstr ""
5654
5655 #. type: TH
5656 #: build/C/man3/getnetent_r.3:26
5657 #, no-wrap
5658 msgid "GETNETENT_R"
5659 msgstr ""
5660
5661 #. type: Plain text
5662 #: build/C/man3/getnetent_r.3:30
5663 msgid "getnetent_r, getnetbyname_r, getnetbyaddr_r - get network entry (reentrant)"
5664 msgstr ""
5665
5666 #. type: Plain text
5667 #: build/C/man3/getnetent_r.3:37
5668 #, no-wrap
5669 msgid ""
5670 "B<int getnetent_r(struct netent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5671 "B<                size_t >I<buflen>B<, struct netent **>I<result>B<,>\n"
5672 "B<                int *>I<h_errnop>B<);>\n"
5673 msgstr ""
5674
5675 #. type: Plain text
5676 #: build/C/man3/getnetent_r.3:42
5677 #, no-wrap
5678 msgid ""
5679 "B<int getnetbyname_r(const char *>I<name>B<,>\n"
5680 "B<                struct netent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5681 "B<                size_t >I<buflen>B<, struct netent **>I<result>B<,>\n"
5682 "B<                int *>I<h_errnop>B<);>\n"
5683 msgstr ""
5684
5685 #. type: Plain text
5686 #: build/C/man3/getnetent_r.3:47
5687 #, no-wrap
5688 msgid ""
5689 "B<int getnetbyaddr_r(uint32_t >I<net>B<, int >I<type>B<,>\n"
5690 "B<                struct netent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5691 "B<                size_t >I<buflen>B<, struct netent **>I<result>B<,>\n"
5692 "B<                int *>I<h_errnop>B<);>\n"
5693 msgstr ""
5694
5695 #. type: Plain text
5696 #: build/C/man3/getnetent_r.3:58
5697 msgid "B<getnetent_r>(), B<getnetbyname_r>(), B<getnetbyaddr_r>():"
5698 msgstr ""
5699
5700 #. type: Plain text
5701 #: build/C/man3/getnetent_r.3:79
5702 msgid ""
5703 "The B<getnetent_r>(), B<getnetbyname_r>(), and B<getnetbyaddr_r>()  "
5704 "functions are the reentrant equivalents of, respectively, B<getnetent>(3), "
5705 "B<getnetbyname>(3), and B<getnetbynumber>(3).  They differ in the way that "
5706 "the I<netent> structure is returned, and in the function calling signature "
5707 "and return value.  This manual page describes just the differences from the "
5708 "nonreentrant functions."
5709 msgstr ""
5710
5711 #. type: Plain text
5712 #: build/C/man3/getnetent_r.3:85
5713 msgid ""
5714 "Instead of returning a pointer to a statically allocated I<netent> structure "
5715 "as the function result, these functions copy the structure into the location "
5716 "pointed to by I<result_buf>."
5717 msgstr ""
5718
5719 #.  I can find no information on the required/recommended buffer size;
5720 #.  the nonreentrant functions use a 1024 byte buffer -- mtk.
5721 #. type: Plain text
5722 #: build/C/man3/getnetent_r.3:102
5723 msgid ""
5724 "The I<buf> array is used to store the string fields pointed to by the "
5725 "returned I<netent> structure.  (The nonreentrant functions allocate these "
5726 "strings in static storage.)  The size of this array is specified in "
5727 "I<buflen>.  If I<buf> is too small, the call fails with the error B<ERANGE>, "
5728 "and the caller must try again with a larger buffer.  (A buffer of length "
5729 "1024 bytes should be sufficient for most applications.)"
5730 msgstr ""
5731
5732 #. type: Plain text
5733 #: build/C/man3/getnetent_r.3:110
5734 msgid ""
5735 "If the function call successfully obtains a network record, then I<*result> "
5736 "is set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
5737 msgstr ""
5738
5739 #.  getnetent.3 doesn't document any use of h_errno, but nevertheless
5740 #.  the nonreentrant functions no seem to set h_errno.
5741 #. type: Plain text
5742 #: build/C/man3/getnetent_r.3:118
5743 msgid ""
5744 "The buffer pointed to by I<h_errnop> is used to return the value that would "
5745 "be stored in the global variable I<h_errno> by the nonreentrant versions of "
5746 "these functions."
5747 msgstr ""
5748
5749 #. type: Plain text
5750 #: build/C/man3/getnetent_r.3:121 build/C/man3/getprotoent_r.3:111
5751 msgid ""
5752 "On success, these functions return 0.  On error, they return one of the "
5753 "positive error numbers listed in ERRORS."
5754 msgstr ""
5755
5756 #. type: Plain text
5757 #: build/C/man3/getnetent_r.3:129
5758 msgid ""
5759 "On error, record not found (B<getnetbyname_r>(), B<getnetbyaddr_r>()), or "
5760 "end of input (B<getnetent_r>())  I<result> is set to NULL."
5761 msgstr ""
5762
5763 #. type: Plain text
5764 #: build/C/man3/getnetent_r.3:134
5765 msgid "(B<getnetent_r>())  No more records in database."
5766 msgstr ""
5767
5768 #. type: TP
5769 #: build/C/man3/getnetent_r.3:134 build/C/man3/getprotoent_r.3:124 build/C/man3/getservent_r.3:123
5770 #, no-wrap
5771 msgid "B<ERANGE>"
5772 msgstr ""
5773
5774 #. type: Plain text
5775 #: build/C/man3/getnetent_r.3:141 build/C/man3/getprotoent_r.3:131 build/C/man3/getservent_r.3:130
5776 msgid ""
5777 "I<buf> is too small.  Try again with a larger buffer (and increased "
5778 "I<buflen>)."
5779 msgstr ""
5780
5781 #. type: Plain text
5782 #: build/C/man3/getnetent_r.3:145 build/C/man3/getprotoent_r.3:135 build/C/man3/getservent_r.3:134
5783 msgid ""
5784 "These functions are GNU extensions.  Functions with similar names exist on "
5785 "some other systems, though typically with different calling signatures."
5786 msgstr ""
5787
5788 #. type: Plain text
5789 #: build/C/man3/getnetent_r.3:148
5790 msgid "B<getnetent>(3), B<networks>(5)"
5791 msgstr ""
5792
5793 #. type: TH
5794 #: build/C/man2/getpeername.2:42
5795 #, no-wrap
5796 msgid "GETPEERNAME"
5797 msgstr ""
5798
5799 #. type: TH
5800 #: build/C/man2/getpeername.2:42 build/C/man5/nsswitch.conf.5:25
5801 #, no-wrap
5802 msgid "2013-02-12"
5803 msgstr ""
5804
5805 #. type: Plain text
5806 #: build/C/man2/getpeername.2:45
5807 msgid "getpeername - get name of connected peer socket"
5808 msgstr ""
5809
5810 #. type: Plain text
5811 #: build/C/man2/getpeername.2:50
5812 msgid ""
5813 "B<int getpeername(int >I<sockfd>B<, struct sockaddr *>I<addr>B<, socklen_t "
5814 "*>I<addrlen>B<);>"
5815 msgstr ""
5816
5817 #. type: Plain text
5818 #: build/C/man2/getpeername.2:63
5819 msgid ""
5820 "B<getpeername>()  returns the address of the peer connected to the socket "
5821 "I<sockfd>, in the buffer pointed to by I<addr>.  The I<addrlen> argument "
5822 "should be initialized to indicate the amount of space pointed to by "
5823 "I<addr>.  On return it contains the actual size of the name returned (in "
5824 "bytes).  The name is truncated if the buffer provided is too small."
5825 msgstr ""
5826
5827 #. type: Plain text
5828 #: build/C/man2/getpeername.2:68
5829 msgid ""
5830 "The returned address is truncated if the buffer provided is too small; in "
5831 "this case, I<addrlen> will return a value greater than was supplied to the "
5832 "call."
5833 msgstr ""
5834
5835 #. type: Plain text
5836 #: build/C/man2/getpeername.2:73 build/C/man2/shutdown.2:74
5837 msgid ""
5838 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
5839 "appropriately."
5840 msgstr ""
5841
5842 #. type: TP
5843 #: build/C/man2/getpeername.2:74 build/C/man2/shutdown.2:75
5844 #, no-wrap
5845 msgid "B<EBADF>"
5846 msgstr ""
5847
5848 #. type: Plain text
5849 #: build/C/man2/getpeername.2:79
5850 msgid "The argument I<sockfd> is not a valid descriptor."
5851 msgstr ""
5852
5853 #. type: TP
5854 #: build/C/man2/getpeername.2:79 build/C/man7/packet.7:470 build/C/man7/raw.7:149 build/C/man7/unix.7:336
5855 #, no-wrap
5856 msgid "B<EFAULT>"
5857 msgstr ""
5858
5859 #. type: Plain text
5860 #: build/C/man2/getpeername.2:85
5861 msgid ""
5862 "The I<addr> argument points to memory not in a valid part of the process "
5863 "address space."
5864 msgstr ""
5865
5866 #. type: Plain text
5867 #: build/C/man2/getpeername.2:89
5868 msgid "I<addrlen> is invalid (e.g., is negative)."
5869 msgstr ""
5870
5871 #. type: TP
5872 #: build/C/man2/getpeername.2:89 build/C/man7/packet.7:482
5873 #, no-wrap
5874 msgid "B<ENOBUFS>"
5875 msgstr ""
5876
5877 #. type: Plain text
5878 #: build/C/man2/getpeername.2:93
5879 msgid ""
5880 "Insufficient resources were available in the system to perform the "
5881 "operation."
5882 msgstr ""
5883
5884 #. type: Plain text
5885 #: build/C/man2/getpeername.2:96
5886 msgid "The socket is not connected."
5887 msgstr ""
5888
5889 #. type: TP
5890 #: build/C/man2/getpeername.2:96 build/C/man2/shutdown.2:87
5891 #, no-wrap
5892 msgid "B<ENOTSOCK>"
5893 msgstr ""
5894
5895 #. type: Plain text
5896 #: build/C/man2/getpeername.2:101
5897 msgid "The argument I<sockfd> is a file, not a socket."
5898 msgstr ""
5899
5900 #. type: Plain text
5901 #: build/C/man2/getpeername.2:105
5902 msgid ""
5903 "SVr4, 4.4BSD (the B<getpeername>()  function call first appeared in 4.2BSD), "
5904 "POSIX.1-2001."
5905 msgstr ""
5906
5907 #. type: Plain text
5908 #: build/C/man2/getpeername.2:116
5909 msgid ""
5910 "The third argument of B<getpeername>()  is in reality an I<int\\ *> (and "
5911 "this is what 4.x BSD and libc4 and libc5 have).  Some POSIX confusion "
5912 "resulted in the present I<socklen_t>, also used by glibc.  See also "
5913 "B<accept>(2)."
5914 msgstr ""
5915
5916 #. type: Plain text
5917 #: build/C/man2/getpeername.2:143
5918 msgid ""
5919 "For stream sockets, once a B<connect>(2)  has been performed, either socket "
5920 "can call B<getpeername>()  to obtain the address of the peer socket.  On the "
5921 "other hand, datagram sockets are connectionless.  Calling B<connect>(2)  on "
5922 "a datagram socket merely sets the peer address for outgoing datagrams sent "
5923 "with B<write>(2)  or B<recv>(2).  The caller of B<connect>(2)  can use "
5924 "B<getpeername>()  to obtain the peer address that it earlier set for the "
5925 "socket.  However, the peer socket is unaware of this information, and "
5926 "calling B<getpeername>()  on the peer socket will return no useful "
5927 "information (unless a B<connect>(2)  call was also executed on the peer).  "
5928 "Note also that the receiver of a datagram can obtain the address of the "
5929 "sender when using B<recvfrom>(2)."
5930 msgstr ""
5931
5932 #. type: Plain text
5933 #: build/C/man2/getpeername.2:150
5934 msgid ""
5935 "B<accept>(2), B<bind>(2), B<getsockname>(2), B<ip>(7), B<socket>(7), "
5936 "B<unix>(7)"
5937 msgstr ""
5938
5939 #. type: TH
5940 #: build/C/man3/getprotoent.3:30
5941 #, no-wrap
5942 msgid "GETPROTOENT"
5943 msgstr ""
5944
5945 #. type: Plain text
5946 #: build/C/man3/getprotoent.3:34
5947 msgid ""
5948 "getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent - "
5949 "get protocol entry"
5950 msgstr ""
5951
5952 #. type: Plain text
5953 #: build/C/man3/getprotoent.3:39
5954 #, no-wrap
5955 msgid "B<struct protoent *getprotoent(void);>\n"
5956 msgstr ""
5957
5958 #. type: Plain text
5959 #: build/C/man3/getprotoent.3:41
5960 #, no-wrap
5961 msgid "B<struct protoent *getprotobyname(const char *>I<name>B<);>\n"
5962 msgstr ""
5963
5964 #. type: Plain text
5965 #: build/C/man3/getprotoent.3:43
5966 #, no-wrap
5967 msgid "B<struct protoent *getprotobynumber(int >I<proto>B<);>\n"
5968 msgstr ""
5969
5970 #. type: Plain text
5971 #: build/C/man3/getprotoent.3:45
5972 #, no-wrap
5973 msgid "B<void setprotoent(int >I<stayopen>B<);>\n"
5974 msgstr ""
5975
5976 #. type: Plain text
5977 #: build/C/man3/getprotoent.3:47
5978 #, no-wrap
5979 msgid "B<void endprotoent(void);>\n"
5980 msgstr ""
5981
5982 #. type: Plain text
5983 #: build/C/man3/getprotoent.3:58
5984 msgid ""
5985 "The B<getprotoent>()  function reads the next entry from the protocols "
5986 "database (see B<protocols>(5))  and returns a I<protoent> structure "
5987 "containing the broken-out fields from the entry.  A connection is opened to "
5988 "the database if necessary."
5989 msgstr ""
5990
5991 #. type: Plain text
5992 #: build/C/man3/getprotoent.3:68
5993 msgid ""
5994 "The B<getprotobyname>()  function returns a I<protoent> structure for the "
5995 "entry from the database that matches the protocol name I<name>.  A "
5996 "connection is opened to the database if necessary."
5997 msgstr ""
5998
5999 #. type: Plain text
6000 #: build/C/man3/getprotoent.3:78
6001 msgid ""
6002 "The B<getprotobynumber>()  function returns a I<protoent> structure for the "
6003 "entry from the database that matches the protocol number I<number>.  A "
6004 "connection is opened to the database if necessary."
6005 msgstr ""
6006
6007 #. type: Plain text
6008 #: build/C/man3/getprotoent.3:90
6009 msgid ""
6010 "The B<setprotoent>()  function opens a connection to the database, and sets "
6011 "the next entry to the first entry.  If I<stayopen> is nonzero, then the "
6012 "connection to the database will not be closed between calls to one of the "
6013 "B<getproto*>()  functions."
6014 msgstr ""
6015
6016 #. type: Plain text
6017 #: build/C/man3/getprotoent.3:94
6018 msgid "The B<endprotoent>()  function closes the connection to the database."
6019 msgstr ""
6020
6021 #. type: Plain text
6022 #: build/C/man3/getprotoent.3:100
6023 msgid "The I<protoent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
6024 msgstr ""
6025
6026 #. type: Plain text
6027 #: build/C/man3/getprotoent.3:108
6028 #, no-wrap
6029 msgid ""
6030 "struct protoent {\n"
6031 "    char  *p_name;       /* official protocol name */\n"
6032 "    char **p_aliases;    /* alias list */\n"
6033 "    int    p_proto;      /* protocol number */\n"
6034 "}\n"
6035 msgstr ""
6036
6037 #. type: Plain text
6038 #: build/C/man3/getprotoent.3:114
6039 msgid "The members of the I<protoent> structure are:"
6040 msgstr ""
6041
6042 #. type: TP
6043 #: build/C/man3/getprotoent.3:114
6044 #, no-wrap
6045 msgid "I<p_name>"
6046 msgstr ""
6047
6048 #. type: Plain text
6049 #: build/C/man3/getprotoent.3:117
6050 msgid "The official name of the protocol."
6051 msgstr ""
6052
6053 #. type: TP
6054 #: build/C/man3/getprotoent.3:117
6055 #, no-wrap
6056 msgid "I<p_aliases>"
6057 msgstr ""
6058
6059 #. type: Plain text
6060 #: build/C/man3/getprotoent.3:120
6061 msgid "A NULL-terminated list of alternative names for the protocol."
6062 msgstr ""
6063
6064 #. type: TP
6065 #: build/C/man3/getprotoent.3:120
6066 #, no-wrap
6067 msgid "I<p_proto>"
6068 msgstr ""
6069
6070 #. type: Plain text
6071 #: build/C/man3/getprotoent.3:123
6072 msgid "The protocol number."
6073 msgstr ""
6074
6075 #. type: Plain text
6076 #: build/C/man3/getprotoent.3:134
6077 msgid ""
6078 "The B<getprotoent>(), B<getprotobyname>()  and B<getprotobynumber>()  "
6079 "functions return a pointer to a statically allocated I<protoent> structure, "
6080 "or a null pointer if an error occurs or the end of the file is reached."
6081 msgstr ""
6082
6083 #. type: TP
6084 #: build/C/man3/getprotoent.3:136 build/C/man5/protocols.5:78
6085 #, no-wrap
6086 msgid "I</etc/protocols>"
6087 msgstr ""
6088
6089 #. type: Plain text
6090 #: build/C/man3/getprotoent.3:139
6091 msgid "protocol database file"
6092 msgstr ""
6093
6094 #. type: Plain text
6095 #: build/C/man3/getprotoent.3:147
6096 msgid "B<getnetent>(3), B<getprotoent_r>(3), B<getservent>(3), B<protocols>(5)"
6097 msgstr ""
6098
6099 #. type: TH
6100 #: build/C/man3/getprotoent_r.3:26
6101 #, no-wrap
6102 msgid "GETPROTOENT_R"
6103 msgstr ""
6104
6105 #. type: Plain text
6106 #: build/C/man3/getprotoent_r.3:30
6107 msgid ""
6108 "getprotoent_r, getprotobyname_r, getprotobynumber_r - get protocol entry "
6109 "(reentrant)"
6110 msgstr ""
6111
6112 #. type: Plain text
6113 #: build/C/man3/getprotoent_r.3:36
6114 #, no-wrap
6115 msgid ""
6116 "B<int getprotoent_r(struct protoent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6117 "B<                size_t >I<buflen>B<, struct protoent **>I<result>B<);>\n"
6118 msgstr ""
6119
6120 #. type: Plain text
6121 #: build/C/man3/getprotoent_r.3:40
6122 #, no-wrap
6123 msgid ""
6124 "B<int getprotobyname_r(const char *>I<name>B<,>\n"
6125 "B<                struct protoent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6126 "B<                size_t >I<buflen>B<, struct protoent **>I<result>B<);>\n"
6127 msgstr ""
6128
6129 #. type: Plain text
6130 #: build/C/man3/getprotoent_r.3:44
6131 #, no-wrap
6132 msgid ""
6133 "B<int getprotobynumber_r(int >I<proto>B<,>\n"
6134 "B<                struct protoent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6135 "B<                size_t >I<buflen>B<, struct protoent **>I<result>B<);>\n"
6136 msgstr ""
6137
6138 #. type: Plain text
6139 #: build/C/man3/getprotoent_r.3:55
6140 msgid "B<getprotoent_r>(), B<getprotobyname_r>(), B<getprotobynumber_r>():"
6141 msgstr ""
6142
6143 #. type: Plain text
6144 #: build/C/man3/getprotoent_r.3:76
6145 msgid ""
6146 "The B<getprotoent_r>(), B<getprotobyname_r>(), and B<getprotobynumber_r>()  "
6147 "functions are the reentrant equivalents of, respectively, B<getprotoent>(3), "
6148 "B<getprotobyname>(3), and B<getprotobynumber>(3).  They differ in the way "
6149 "that the I<protoent> structure is returned, and in the function calling "
6150 "signature and return value.  This manual page describes just the differences "
6151 "from the nonreentrant functions."
6152 msgstr ""
6153
6154 #. type: Plain text
6155 #: build/C/man3/getprotoent_r.3:82
6156 msgid ""
6157 "Instead of returning a pointer to a statically allocated I<protoent> "
6158 "structure as the function result, these functions copy the structure into "
6159 "the location pointed to by I<result_buf>."
6160 msgstr ""
6161
6162 #.  I can find no information on the required/recommended buffer size;
6163 #.  the nonreentrant functions use a 1024 byte buffer.
6164 #.  The 1024 byte value is also what the Solaris man page suggests. -- mtk
6165 #. type: Plain text
6166 #: build/C/man3/getprotoent_r.3:100
6167 msgid ""
6168 "The I<buf> array is used to store the string fields pointed to by the "
6169 "returned I<protoent> structure.  (The nonreentrant functions allocate these "
6170 "strings in static storage.)  The size of this array is specified in "
6171 "I<buflen>.  If I<buf> is too small, the call fails with the error B<ERANGE>, "
6172 "and the caller must try again with a larger buffer.  (A buffer of length "
6173 "1024 bytes should be sufficient for most applications.)"
6174 msgstr ""
6175
6176 #. type: Plain text
6177 #: build/C/man3/getprotoent_r.3:108
6178 msgid ""
6179 "If the function call successfully obtains a protocol record, then I<*result> "
6180 "is set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
6181 msgstr ""
6182
6183 #. type: Plain text
6184 #: build/C/man3/getprotoent_r.3:119
6185 msgid ""
6186 "On error, record not found (B<getprotobyname_r>(), B<getprotobynumber_r>()), "
6187 "or end of input (B<getprotoent_r>())  I<result> is set to NULL."
6188 msgstr ""
6189
6190 #. type: Plain text
6191 #: build/C/man3/getprotoent_r.3:124
6192 msgid "(B<getprotoent_r>())  No more records in database."
6193 msgstr ""
6194
6195 #. type: Plain text
6196 #: build/C/man3/getprotoent_r.3:149
6197 msgid ""
6198 "The program below uses B<getprotobyname_r>()  to retrieve the protocol "
6199 "record for the protocol named in its first command-line argument.  If a "
6200 "second (integer) command-line argument is supplied, it is used as the "
6201 "initial value for I<buflen>; if B<getprotobyname_r>()  fails with the error "
6202 "B<ERANGE>, the program retries with larger buffer sizes.  The following "
6203 "shell session shows a couple of sample runs:"
6204 msgstr ""
6205
6206 #. type: Plain text
6207 #: build/C/man3/getprotoent_r.3:160
6208 #, no-wrap
6209 msgid ""
6210 "$B< ./a.out tcp 1>\n"
6211 "ERANGE! Retrying with larger buffer\n"
6212 "getprotobyname_r() returned: 0 (success)  (buflen=78)\n"
6213 "p_name=tcp; p_proto=6; aliases=TCP\n"
6214 "$B< ./a.out xxx 1>\n"
6215 "ERANGE! Retrying with larger buffer\n"
6216 "getprotobyname_r() returned: 0 (success)  (buflen=100)\n"
6217 "Call failed/record not found\n"
6218 msgstr ""
6219
6220 #. type: Plain text
6221 #: build/C/man3/getprotoent_r.3:172 build/C/man3/getservent_r.3:170
6222 #, no-wrap
6223 msgid ""
6224 "#define _GNU_SOURCE\n"
6225 "#include E<lt>ctype.hE<gt>\n"
6226 "#include E<lt>netdb.hE<gt>\n"
6227 "#include E<lt>stdlib.hE<gt>\n"
6228 "#include E<lt>stdio.hE<gt>\n"
6229 "#include E<lt>errno.hE<gt>\n"
6230 "#include E<lt>string.hE<gt>\n"
6231 msgstr ""
6232
6233 #. type: Plain text
6234 #: build/C/man3/getprotoent_r.3:174 build/C/man3/getservent_r.3:172
6235 #, no-wrap
6236 msgid "#define MAX_BUF 10000\n"
6237 msgstr ""
6238
6239 #. type: Plain text
6240 #: build/C/man3/getprotoent_r.3:183
6241 #, no-wrap
6242 msgid ""
6243 "int\n"
6244 "main(int argc, char *argv[])\n"
6245 "{\n"
6246 "    int buflen, erange_cnt, s;\n"
6247 "    struct protoent result_buf;\n"
6248 "    struct protoent *result;\n"
6249 "    char buf[MAX_BUF];\n"
6250 "    char **p;\n"
6251 msgstr ""
6252
6253 #. type: Plain text
6254 #: build/C/man3/getprotoent_r.3:188
6255 #, no-wrap
6256 msgid ""
6257 "    if (argc E<lt> 2) {\n"
6258 "        printf(\"Usage: %s proto-name [buflen]\\en\", argv[0]);\n"
6259 "        exit(EXIT_FAILURE);\n"
6260 "    }\n"
6261 msgstr ""
6262
6263 #. type: Plain text
6264 #: build/C/man3/getprotoent_r.3:192
6265 #, no-wrap
6266 msgid ""
6267 "    buflen = 1024;\n"
6268 "    if (argc E<gt> 2)\n"
6269 "        buflen = atoi(argv[2]);\n"
6270 msgstr ""
6271
6272 #. type: Plain text
6273 #: build/C/man3/getprotoent_r.3:197 build/C/man3/getservent_r.3:200
6274 #, no-wrap
6275 msgid ""
6276 "    if (buflen E<gt> MAX_BUF) {\n"
6277 "        printf(\"Exceeded buffer limit (%d)\\en\", MAX_BUF);\n"
6278 "        exit(EXIT_FAILURE);\n"
6279 "    }\n"
6280 msgstr ""
6281
6282 #. type: Plain text
6283 #: build/C/man3/getprotoent_r.3:206
6284 #, no-wrap
6285 msgid ""
6286 "    erange_cnt = 0;\n"
6287 "    do {\n"
6288 "        s = getprotobyname_r(argv[1], &result_buf,\n"
6289 "                     buf, buflen, &result);\n"
6290 "        if (s == ERANGE) {\n"
6291 "            if (erange_cnt == 0)\n"
6292 "                printf(\"ERANGE! Retrying with larger buffer\\en\");\n"
6293 "            erange_cnt++;\n"
6294 msgstr ""
6295
6296 #. type: Plain text
6297 #: build/C/man3/getprotoent_r.3:209 build/C/man3/getservent_r.3:212
6298 #, no-wrap
6299 msgid ""
6300 "            /* Increment a byte at a time so we can see exactly\n"
6301 "               what size buffer was required */\n"
6302 msgstr ""
6303
6304 #. type: Plain text
6305 #: build/C/man3/getprotoent_r.3:211 build/C/man3/getservent_r.3:214
6306 #, no-wrap
6307 msgid "            buflen++;\n"
6308 msgstr ""
6309
6310 #. type: Plain text
6311 #: build/C/man3/getprotoent_r.3:218 build/C/man3/getservent_r.3:221
6312 #, no-wrap
6313 msgid ""
6314 "            if (buflen E<gt> MAX_BUF) {\n"
6315 "                printf(\"Exceeded buffer limit (%d)\\en\", MAX_BUF);\n"
6316 "                exit(EXIT_FAILURE);\n"
6317 "            }\n"
6318 "        }\n"
6319 "    } while (s == ERANGE);\n"
6320 msgstr ""
6321
6322 #. type: Plain text
6323 #: build/C/man3/getprotoent_r.3:222
6324 #, no-wrap
6325 msgid ""
6326 "    printf(\"getprotobyname_r() returned: %s  (buflen=%d)\\en\",\n"
6327 "            (s == 0) ? \"0 (success)\" : (s == ENOENT) ? \"ENOENT\" :\n"
6328 "            strerror(s), buflen);\n"
6329 msgstr ""
6330
6331 #. type: Plain text
6332 #: build/C/man3/getprotoent_r.3:227 build/C/man3/getservent_r.3:230
6333 #, no-wrap
6334 msgid ""
6335 "    if (s != 0 || result == NULL) {\n"
6336 "        printf(\"Call failed/record not found\\en\");\n"
6337 "        exit(EXIT_FAILURE);\n"
6338 "    }\n"
6339 msgstr ""
6340
6341 #. type: Plain text
6342 #: build/C/man3/getprotoent_r.3:233
6343 #, no-wrap
6344 msgid ""
6345 "    printf(\"p_name=%s; p_proto=%d; aliases=\",\n"
6346 "                result_buf.p_name, result_buf.p_proto);\n"
6347 "    for (p = result_buf.p_aliases; *p != NULL; p++)\n"
6348 "        printf(\"%s \", *p);\n"
6349 "    printf(\"\\en\");\n"
6350 msgstr ""
6351
6352 #. type: Plain text
6353 #: build/C/man3/getprotoent_r.3:240
6354 msgid "B<getprotoent>(3), B<protocols>(5)"
6355 msgstr ""
6356
6357 #. type: TH
6358 #: build/C/man3/getservent.3:34
6359 #, no-wrap
6360 msgid "GETSERVENT"
6361 msgstr ""
6362
6363 #. type: Plain text
6364 #: build/C/man3/getservent.3:38
6365 msgid ""
6366 "getservent, getservbyname, getservbyport, setservent, endservent - get "
6367 "service entry"
6368 msgstr ""
6369
6370 #. type: Plain text
6371 #: build/C/man3/getservent.3:43
6372 #, no-wrap
6373 msgid "B<struct servent *getservent(void);>\n"
6374 msgstr ""
6375
6376 #. type: Plain text
6377 #: build/C/man3/getservent.3:45
6378 #, no-wrap
6379 msgid ""
6380 "B<struct servent *getservbyname(const char *>I<name>B<, const char "
6381 "*>I<proto>B<);>\n"
6382 msgstr ""
6383
6384 #. type: Plain text
6385 #: build/C/man3/getservent.3:47
6386 #, no-wrap
6387 msgid "B<struct servent *getservbyport(int >I<port>B<, const char *>I<proto>B<);>\n"
6388 msgstr ""
6389
6390 #. type: Plain text
6391 #: build/C/man3/getservent.3:49
6392 #, no-wrap
6393 msgid "B<void setservent(int >I<stayopen>B<);>\n"
6394 msgstr ""
6395
6396 #. type: Plain text
6397 #: build/C/man3/getservent.3:51
6398 #, no-wrap
6399 msgid "B<void endservent(void);>\n"
6400 msgstr ""
6401
6402 #. type: Plain text
6403 #: build/C/man3/getservent.3:62
6404 msgid ""
6405 "The B<getservent>()  function reads the next entry from the services "
6406 "database (see B<services>(5))  and returns a I<servent> structure containing "
6407 "the broken-out fields from the entry.  A connection is opened to the "
6408 "database if necessary."
6409 msgstr ""
6410
6411 #. type: Plain text
6412 #: build/C/man3/getservent.3:77
6413 msgid ""
6414 "The B<getservbyname>()  function returns a I<servent> structure for the "
6415 "entry from the database that matches the service I<name> using protocol "
6416 "I<proto>.  If I<proto> is NULL, any protocol will be matched.  A connection "
6417 "is opened to the database if necessary."
6418 msgstr ""
6419
6420 #. type: Plain text
6421 #: build/C/man3/getservent.3:93
6422 msgid ""
6423 "The B<getservbyport>()  function returns a I<servent> structure for the "
6424 "entry from the database that matches the port I<port> (given in network byte "
6425 "order)  using protocol I<proto>.  If I<proto> is NULL, any protocol will be "
6426 "matched.  A connection is opened to the database if necessary."
6427 msgstr ""
6428
6429 #. type: Plain text
6430 #: build/C/man3/getservent.3:105
6431 msgid ""
6432 "The B<setservent>()  function opens a connection to the database, and sets "
6433 "the next entry to the first entry.  If I<stayopen> is nonzero, then the "
6434 "connection to the database will not be closed between calls to one of the "
6435 "B<getserv*>()  functions."
6436 msgstr ""
6437
6438 #. type: Plain text
6439 #: build/C/man3/getservent.3:109
6440 msgid "The B<endservent>()  function closes the connection to the database."
6441 msgstr ""
6442
6443 #. type: Plain text
6444 #: build/C/man3/getservent.3:115
6445 msgid "The I<servent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
6446 msgstr ""
6447
6448 #. type: Plain text
6449 #: build/C/man3/getservent.3:124
6450 #, no-wrap
6451 msgid ""
6452 "struct servent {\n"
6453 "    char  *s_name;       /* official service name */\n"
6454 "    char **s_aliases;    /* alias list */\n"
6455 "    int    s_port;       /* port number */\n"
6456 "    char  *s_proto;      /* protocol to use */\n"
6457 "}\n"
6458 msgstr ""
6459
6460 #. type: Plain text
6461 #: build/C/man3/getservent.3:130
6462 msgid "The members of the I<servent> structure are:"
6463 msgstr ""
6464
6465 #. type: TP
6466 #: build/C/man3/getservent.3:130
6467 #, no-wrap
6468 msgid "I<s_name>"
6469 msgstr ""
6470
6471 #. type: Plain text
6472 #: build/C/man3/getservent.3:133
6473 msgid "The official name of the service."
6474 msgstr ""
6475
6476 #. type: TP
6477 #: build/C/man3/getservent.3:133
6478 #, no-wrap
6479 msgid "I<s_aliases>"
6480 msgstr ""
6481
6482 #. type: Plain text
6483 #: build/C/man3/getservent.3:136
6484 msgid "A NULL-terminated list of alternative names for the service."
6485 msgstr ""
6486
6487 #. type: TP
6488 #: build/C/man3/getservent.3:136
6489 #, no-wrap
6490 msgid "I<s_port>"
6491 msgstr ""
6492
6493 #. type: Plain text
6494 #: build/C/man3/getservent.3:139
6495 msgid "The port number for the service given in network byte order."
6496 msgstr ""
6497
6498 #. type: TP
6499 #: build/C/man3/getservent.3:139
6500 #, no-wrap
6501 msgid "I<s_proto>"
6502 msgstr ""
6503
6504 #. type: Plain text
6505 #: build/C/man3/getservent.3:142
6506 msgid "The name of the protocol to use with this service."
6507 msgstr ""
6508
6509 #. type: Plain text
6510 #: build/C/man3/getservent.3:153
6511 msgid ""
6512 "The B<getservent>(), B<getservbyname>()  and B<getservbyport>()  functions "
6513 "return a pointer to a statically allocated I<servent> structure, or NULL if "
6514 "an error occurs or the end of the file is reached."
6515 msgstr ""
6516
6517 #. type: TP
6518 #: build/C/man3/getservent.3:154 build/C/man5/services.5:186
6519 #, no-wrap
6520 msgid "I</etc/services>"
6521 msgstr ""
6522
6523 #. type: Plain text
6524 #: build/C/man3/getservent.3:157
6525 msgid "services database file"
6526 msgstr ""
6527
6528 #. type: Plain text
6529 #: build/C/man3/getservent.3:164
6530 msgid "B<getnetent>(3), B<getprotoent>(3), B<getservent_r>(3), B<services>(5)"
6531 msgstr ""
6532
6533 #. type: TH
6534 #: build/C/man3/getservent_r.3:26
6535 #, no-wrap
6536 msgid "GETSERVENT_R"
6537 msgstr ""
6538
6539 #. type: Plain text
6540 #: build/C/man3/getservent_r.3:30
6541 msgid ""
6542 "getservent_r, getservbyname_r, getservbyport_r - get service entry "
6543 "(reentrant)"
6544 msgstr ""
6545
6546 #. type: Plain text
6547 #: build/C/man3/getservent_r.3:36
6548 #, no-wrap
6549 msgid ""
6550 "B<int getservent_r(struct servent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6551 "B<                size_t >I<buflen>B<, struct servent **>I<result>B<);>\n"
6552 msgstr ""
6553
6554 #. type: Plain text
6555 #: build/C/man3/getservent_r.3:40
6556 #, no-wrap
6557 msgid ""
6558 "B<int getservbyname_r(const char *>I<name>B<, const char *>I<proto>B<,>\n"
6559 "B<                struct servent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6560 "B<                size_t >I<buflen>B<, struct servent **>I<result>B<);>\n"
6561 msgstr ""
6562
6563 #. type: Plain text
6564 #: build/C/man3/getservent_r.3:44
6565 #, no-wrap
6566 msgid ""
6567 "B<int getservbyport_r(int >I<port>B<, const char *>I<proto>B<,>\n"
6568 "B<                struct servent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6569 "B<                size_t >I<buflen>B<, struct servent **>I<result>B<);>\n"
6570 msgstr ""
6571
6572 #. type: Plain text
6573 #: build/C/man3/getservent_r.3:55
6574 msgid "B<getservent_r>(), B<getservbyname_r>(), B<getservbyport_r>():"
6575 msgstr ""
6576
6577 #. type: Plain text
6578 #: build/C/man3/getservent_r.3:76
6579 msgid ""
6580 "The B<getservent_r>(), B<getservbyname_r>(), and B<getservbyport_r>()  "
6581 "functions are the reentrant equivalents of, respectively, B<getservent>(3), "
6582 "B<getservbyname>(3), and B<getservbyport>(3).  They differ in the way that "
6583 "the I<servent> structure is returned, and in the function calling signature "
6584 "and return value.  This manual page describes just the differences from the "
6585 "nonreentrant functions."
6586 msgstr ""
6587
6588 #. type: Plain text
6589 #: build/C/man3/getservent_r.3:82
6590 msgid ""
6591 "Instead of returning a pointer to a statically allocated I<servent> "
6592 "structure as the function result, these functions copy the structure into "
6593 "the location pointed to by I<result_buf>."
6594 msgstr ""
6595
6596 #.  I can find no information on the required/recommended buffer size;
6597 #.  the nonreentrant functions use a 1024 byte buffer -- mtk.
6598 #. type: Plain text
6599 #: build/C/man3/getservent_r.3:99
6600 msgid ""
6601 "The I<buf> array is used to store the string fields pointed to by the "
6602 "returned I<servent> structure.  (The nonreentrant functions allocate these "
6603 "strings in static storage.)  The size of this array is specified in "
6604 "I<buflen>.  If I<buf> is too small, the call fails with the error B<ERANGE>, "
6605 "and the caller must try again with a larger buffer.  (A buffer of length "
6606 "1024 bytes should be sufficient for most applications.)"
6607 msgstr ""
6608
6609 #. type: Plain text
6610 #: build/C/man3/getservent_r.3:107
6611 msgid ""
6612 "If the function call successfully obtains a service record, then I<*result> "
6613 "is set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
6614 msgstr ""
6615
6616 #. type: Plain text
6617 #: build/C/man3/getservent_r.3:110
6618 msgid ""
6619 "On success, these functions return 0.  On error, they return one of the "
6620 "positive error numbers listed in errors."
6621 msgstr ""
6622
6623 #. type: Plain text
6624 #: build/C/man3/getservent_r.3:118
6625 msgid ""
6626 "On error, record not found (B<getservbyname_r>(), B<getservbyport_r>()), or "
6627 "end of input (B<getservent_r>())  I<result> is set to NULL."
6628 msgstr ""
6629
6630 #. type: Plain text
6631 #: build/C/man3/getservent_r.3:123
6632 msgid "(B<getservent_r>())  No more records in database."
6633 msgstr ""
6634
6635 #. type: Plain text
6636 #: build/C/man3/getservent_r.3:148
6637 msgid ""
6638 "The program below uses B<getservbyport_r>()  to retrieve the service record "
6639 "for the port and protocol named in its first command-line argument.  If a "
6640 "third (integer) command-line argument is supplied, it is used as the initial "
6641 "value for I<buflen>; if B<getservbyport_r>()  fails with the error "
6642 "B<ERANGE>, the program retries with larger buffer sizes.  The following "
6643 "shell session shows a couple of sample runs:"
6644 msgstr ""
6645
6646 #. type: Plain text
6647 #: build/C/man3/getservent_r.3:158
6648 #, no-wrap
6649 msgid ""
6650 "$B< ./a.out 7 tcp 1>\n"
6651 "ERANGE! Retrying with larger buffer\n"
6652 "getservbyport_r() returned: 0 (success)  (buflen=87)\n"
6653 "s_name=echo; s_proto=tcp; s_port=7; aliases=\n"
6654 "$B< ./a.out 77777 tcp>\n"
6655 "getservbyport_r() returned: 0 (success)  (buflen=1024)\n"
6656 "Call failed/record not found\n"
6657 msgstr ""
6658
6659 #. type: Plain text
6660 #: build/C/man3/getservent_r.3:182
6661 #, no-wrap
6662 msgid ""
6663 "int\n"
6664 "main(int argc, char *argv[])\n"
6665 "{\n"
6666 "    int buflen, erange_cnt, port, s;\n"
6667 "    struct servent result_buf;\n"
6668 "    struct servent *result;\n"
6669 "    char buf[MAX_BUF];\n"
6670 "    char *protop;\n"
6671 "    char **p;\n"
6672 msgstr ""
6673
6674 #. type: Plain text
6675 #: build/C/man3/getservent_r.3:187
6676 #, no-wrap
6677 msgid ""
6678 "    if (argc E<lt> 3) {\n"
6679 "        printf(\"Usage: %s port-num proto-name [buflen]\\en\", argv[0]);\n"
6680 "        exit(EXIT_FAILURE);\n"
6681 "    }\n"
6682 msgstr ""
6683
6684 #. type: Plain text
6685 #: build/C/man3/getservent_r.3:191
6686 #, no-wrap
6687 msgid ""
6688 "    port = htons(atoi(argv[1]));\n"
6689 "    protop = (strcmp(argv[2], \"null\") == 0 ||\n"
6690 "              strcmp(argv[2], \"NULL\") == 0) ?  NULL : argv[2];\n"
6691 msgstr ""
6692
6693 #. type: Plain text
6694 #: build/C/man3/getservent_r.3:195
6695 #, no-wrap
6696 msgid ""
6697 "    buflen = 1024;\n"
6698 "    if (argc E<gt> 3)\n"
6699 "        buflen = atoi(argv[3]);\n"
6700 msgstr ""
6701
6702 #. type: Plain text
6703 #: build/C/man3/getservent_r.3:209
6704 #, no-wrap
6705 msgid ""
6706 "    erange_cnt = 0;\n"
6707 "    do {\n"
6708 "        s = getservbyport_r(port, protop, &result_buf,\n"
6709 "                     buf, buflen, &result);\n"
6710 "        if (s == ERANGE) {\n"
6711 "            if (erange_cnt == 0)\n"
6712 "                printf(\"ERANGE! Retrying with larger buffer\\en\");\n"
6713 "            erange_cnt++;\n"
6714 msgstr ""
6715
6716 #. type: Plain text
6717 #: build/C/man3/getservent_r.3:225
6718 #, no-wrap
6719 msgid ""
6720 "    printf(\"getservbyport_r() returned: %s  (buflen=%d)\\en\",\n"
6721 "            (s == 0) ? \"0 (success)\" : (s == ENOENT) ? \"ENOENT\" :\n"
6722 "            strerror(s), buflen);\n"
6723 msgstr ""
6724
6725 #. type: Plain text
6726 #: build/C/man3/getservent_r.3:237
6727 #, no-wrap
6728 msgid ""
6729 "    printf(\"s_name=%s; s_proto=%s; s_port=%d; aliases=\",\n"
6730 "                result_buf.s_name, result_buf.s_proto,\n"
6731 "                ntohs(result_buf.s_port));\n"
6732 "    for (p = result_buf.s_aliases; *p != NULL; p++)\n"
6733 "        printf(\"%s \", *p);\n"
6734 "    printf(\"\\en\");\n"
6735 msgstr ""
6736
6737 #. type: Plain text
6738 #: build/C/man3/getservent_r.3:244
6739 msgid "B<getservent>(3), B<services>(5)"
6740 msgstr ""
6741
6742 #. type: TH
6743 #: build/C/man5/host.conf.5:26
6744 #, no-wrap
6745 msgid "HOST.CONF"
6746 msgstr ""
6747
6748 #. type: TH
6749 #: build/C/man5/host.conf.5:26
6750 #, no-wrap
6751 msgid "2003-08-23"
6752 msgstr ""
6753
6754 #. type: TH
6755 #: build/C/man5/host.conf.5:26 build/C/man5/networks.5:26
6756 #, no-wrap
6757 msgid "Linux System Administration"
6758 msgstr ""
6759
6760 #. type: Plain text
6761 #: build/C/man5/host.conf.5:29
6762 msgid "host.conf - resolver configuration file"
6763 msgstr ""
6764
6765 #. type: Plain text
6766 #: build/C/man5/host.conf.5:38
6767 msgid ""
6768 "The file I</etc/host.conf> contains configuration information specific to "
6769 "the resolver library.  It should contain one configuration keyword per line, "
6770 "followed by appropriate configuration information.  The keywords recognized "
6771 "are I<order>, I<trim>, I<multi>, I<nospoof>, I<spoof>, and I<reorder>.  "
6772 "These keywords are described below."
6773 msgstr ""
6774
6775 #. type: TP
6776 #: build/C/man5/host.conf.5:38
6777 #, no-wrap
6778 msgid "I<order>"
6779 msgstr ""
6780
6781 #. type: Plain text
6782 #: build/C/man5/host.conf.5:44
6783 msgid ""
6784 "This keyword specifies how host lookups are to be performed.  It should be "
6785 "followed by one or more lookup methods, separated by commas.  Valid methods "
6786 "are I<bind>, I<hosts>, and I<nis>."
6787 msgstr ""
6788
6789 #. type: TP
6790 #: build/C/man5/host.conf.5:44
6791 #, no-wrap
6792 msgid "I<trim>"
6793 msgstr ""
6794
6795 #. type: Plain text
6796 #: build/C/man5/host.conf.5:61
6797 msgid ""
6798 "This keyword may be listed more than once.  Each time it should be followed "
6799 "by a list of domains, separated by colons (\\(aq:\\(aq), semicolons "
6800 "(\\(aq;\\(aq) or commas (\\(aq,\\(aq), with the leading dot.  When set, the "
6801 "resolv+ library will automatically trim the given domain name from the end "
6802 "of any hostname resolved via DNS.  This is intended for use with local hosts "
6803 "and domains.  (Related note: trim will not affect hostnames gathered via NIS "
6804 "or the hosts file.  Care should be taken to ensure that the first hostname "
6805 "for each entry in the hosts file is fully qualified or unqualified, as "
6806 "appropriate for the local installation.)"
6807 msgstr ""
6808
6809 #. type: TP
6810 #: build/C/man5/host.conf.5:61
6811 #, no-wrap
6812 msgid "I<multi>"
6813 msgstr ""
6814
6815 #. type: Plain text
6816 #: build/C/man5/host.conf.5:76
6817 msgid ""
6818 "Valid values are I<on> and I<off>.  If set to I<on>, the resolv+ library "
6819 "will return all valid addresses for a host that appears in the I</etc/hosts> "
6820 "file, instead of only the first.  This is I<off> by default, as it may cause "
6821 "a substantial performance loss at sites with large hosts files."
6822 msgstr ""
6823
6824 #. type: TP
6825 #: build/C/man5/host.conf.5:76
6826 #, no-wrap
6827 msgid "I<nospoof>"
6828 msgstr ""
6829
6830 #. type: Plain text
6831 #: build/C/man5/host.conf.5:91
6832 msgid ""
6833 "Valid values are I<on> and I<off>.  If set to I<on>, the resolv+ library "
6834 "will attempt to prevent hostname spoofing to enhance the security of "
6835 "B<rlogin> and B<rsh>.  It works as follows: after performing a host address "
6836 "lookup, resolv+ will perform a hostname lookup for that address.  If the two "
6837 "hostnames do not match, the query will fail.  The default value is I<off>."
6838 msgstr ""
6839
6840 #. type: TP
6841 #: build/C/man5/host.conf.5:91
6842 #, no-wrap
6843 msgid "I<spoofalert>"
6844 msgstr ""
6845
6846 #. type: Plain text
6847 #: build/C/man5/host.conf.5:103
6848 msgid ""
6849 "Valid values are I<on> and I<off>.  If this option is set to I<on> and the "
6850 "I<nospoof> option is also set, resolv+ will log a warning of the error via "
6851 "the syslog facility.  The default value is I<off>."
6852 msgstr ""
6853
6854 #. type: TP
6855 #: build/C/man5/host.conf.5:103
6856 #, no-wrap
6857 msgid "I<spoof>"
6858 msgstr ""
6859
6860 #. type: Plain text
6861 #: build/C/man5/host.conf.5:122
6862 msgid ""
6863 "Valid values are I<off>, I<nowarn> and I<warn>.  If this option is set to "
6864 "I<off>, spoofed addresses are permitted and no warnings will be emitted via "
6865 "the syslog facility.  If this option is set to I<warn>, resolv+ will attempt "
6866 "to prevent hostname spoofing to enhance the security and log a warning of "
6867 "the error via the syslog facility.  If this option is set to I<nowarn>, the "
6868 "resolv+ library will attempt to prevent hostname spoofing to enhance the "
6869 "security but not emit warnings via the syslog facility.  Setting this option "
6870 "to anything else is equal to setting it to I<nowarn>."
6871 msgstr ""
6872
6873 #. type: TP
6874 #: build/C/man5/host.conf.5:122
6875 #, no-wrap
6876 msgid "I<reorder>"
6877 msgstr ""
6878
6879 #. type: Plain text
6880 #: build/C/man5/host.conf.5:135
6881 msgid ""
6882 "Valid values are I<on> and I<off>.  If set to I<on>, resolv+ will attempt to "
6883 "reorder host addresses so that local addresses (i.e., on the same subnet) "
6884 "are listed first when a B<gethostbyname>(3)  is performed.  Reordering is "
6885 "done for all lookup methods.  The default value is I<off>."
6886 msgstr ""
6887
6888 #. type: SH
6889 #: build/C/man5/host.conf.5:135
6890 #, no-wrap
6891 msgid "ENVIRONMENT"
6892 msgstr ""
6893
6894 #. type: Plain text
6895 #: build/C/man5/host.conf.5:139
6896 msgid ""
6897 "There are six environment variables that can be used to allow users to "
6898 "override the behavior which is configured in I</etc/host.conf>."
6899 msgstr ""
6900
6901 #. type: TP
6902 #: build/C/man5/host.conf.5:139
6903 #, no-wrap
6904 msgid "B<RESOLV_HOST_CONF>"
6905 msgstr ""
6906
6907 #. type: Plain text
6908 #: build/C/man5/host.conf.5:143
6909 msgid ""
6910 "If set this variable points to a file that should be read instead of "
6911 "I</etc/host.conf>."
6912 msgstr ""
6913
6914 #. type: TP
6915 #: build/C/man5/host.conf.5:143
6916 #, no-wrap
6917 msgid "B<RESOLV_SERV_ORDER>"
6918 msgstr ""
6919
6920 #. type: Plain text
6921 #: build/C/man5/host.conf.5:148
6922 msgid "Overrides the I<order> command."
6923 msgstr ""
6924
6925 #. type: TP
6926 #: build/C/man5/host.conf.5:148
6927 #, no-wrap
6928 msgid "B<RESOLV_SPOOF_CHECK>"
6929 msgstr ""
6930
6931 #. type: Plain text
6932 #: build/C/man5/host.conf.5:157
6933 msgid ""
6934 "Overrides the I<nospoof>, I<spoofalert> and I<spoof> commands in the same "
6935 "way as the I<spoof> command is parsed.  Valid values are I<off>, I<nowarn> "
6936 "and I<warn>."
6937 msgstr ""
6938
6939 #. type: TP
6940 #: build/C/man5/host.conf.5:157
6941 #, no-wrap
6942 msgid "B<RESOLV_MULTI>"
6943 msgstr ""
6944
6945 #. type: Plain text
6946 #: build/C/man5/host.conf.5:162
6947 msgid "Overrides the I<multi> command."
6948 msgstr ""
6949
6950 #. type: TP
6951 #: build/C/man5/host.conf.5:162
6952 #, no-wrap
6953 msgid "B<RESOLV_REORDER>"
6954 msgstr ""
6955
6956 #. type: Plain text
6957 #: build/C/man5/host.conf.5:167
6958 msgid "Overrides the I<reorder> command."
6959 msgstr ""
6960
6961 #. type: TP
6962 #: build/C/man5/host.conf.5:167
6963 #, no-wrap
6964 msgid "B<RESOLV_ADD_TRIM_DOMAINS>"
6965 msgstr ""
6966
6967 #. type: Plain text
6968 #: build/C/man5/host.conf.5:172
6969 msgid ""
6970 "A list of domains, separated by colons (\\(aq:\\(aq), semicolons "
6971 "(\\(aq;\\(aq) or commas (\\(aq,\\(aq), with the leading dot, which will be "
6972 "added to the list of domains that should be trimmed."
6973 msgstr ""
6974
6975 #. type: TP
6976 #: build/C/man5/host.conf.5:172
6977 #, no-wrap
6978 msgid "B<RESOLV_OVERRIDE_TRIM_DOMAINS>"
6979 msgstr ""
6980
6981 #. type: Plain text
6982 #: build/C/man5/host.conf.5:180
6983 msgid ""
6984 "A list of domains, separated by colons (\\(aq:\\(aq), semicolons "
6985 "(\\(aq;\\(aq) or commas (\\(aq,\\(aq), with the leading dot, which will "
6986 "replace the list of domains that should be trimmed.  Overrides the I<trim> "
6987 "command."
6988 msgstr ""
6989
6990 #. type: Plain text
6991 #: build/C/man5/host.conf.5:184 build/C/man5/host.conf.5:187
6992 msgid "Resolver configuration file"
6993 msgstr ""
6994
6995 #. type: TP
6996 #: build/C/man5/host.conf.5:184
6997 #, no-wrap
6998 msgid "I</etc/resolv.conf>"
6999 msgstr ""
7000
7001 #. type: Plain text
7002 #: build/C/man5/host.conf.5:190
7003 msgid "Local hosts database"
7004 msgstr ""
7005
7006 #. type: Plain text
7007 #: build/C/man5/host.conf.5:199
7008 msgid ""
7009 "The following differences exist compared to the original implementation.  A "
7010 "new command I<spoof> and a new environment variable B<RESOLV_SPOOF_CHECK> "
7011 "can take arguments like I<off>, I<nowarn> and I<warn>.  Line comments can "
7012 "appear anywhere and not only at the beginning of a line."
7013 msgstr ""
7014
7015 #. type: Plain text
7016 #: build/C/man5/host.conf.5:204
7017 msgid "B<gethostbyname>(3), B<hostname>(7), B<named>(8), B<resolv+>(8)"
7018 msgstr ""
7019
7020 #. type: TH
7021 #: build/C/man7/hostname.7:39
7022 #, no-wrap
7023 msgid "HOSTNAME"
7024 msgstr ""
7025
7026 #. type: TH
7027 #: build/C/man7/hostname.7:39
7028 #, no-wrap
7029 msgid "2010-11-07"
7030 msgstr ""
7031
7032 #. type: Plain text
7033 #: build/C/man7/hostname.7:42
7034 msgid "hostname - hostname resolution description"
7035 msgstr ""
7036
7037 #. type: Plain text
7038 #: build/C/man7/hostname.7:46
7039 msgid ""
7040 "Hostnames are domains, where a domain is a hierarchical, dot-separated list "
7041 "of subdomains; for example, the machine monet, in the Berkeley subdomain of "
7042 "the EDU domain would be represented as \"monet.Berkeley.EDU\"."
7043 msgstr ""
7044
7045 #. type: Plain text
7046 #: build/C/man7/hostname.7:55
7047 msgid ""
7048 "Hostnames are often used with network client and server programs, which must "
7049 "generally translate the name to an address for use.  (This task is generally "
7050 "performed by either B<getaddrinfo>(3)  or the obsolete B<gethostbyname>(3).)  "
7051 "Hostnames are resolved by the Internet name resolver in the following "
7052 "fashion."
7053 msgstr ""
7054
7055 #. type: Plain text
7056 #: build/C/man7/hostname.7:68
7057 msgid ""
7058 "If the name consists of a single component, that is, contains no dot, and if "
7059 "the environment variable B<HOSTALIASES> is set to the name of a file, that "
7060 "file is searched for any string matching the input hostname.  The file "
7061 "should consist of lines made up of two white-space separated strings, the "
7062 "first of which is the hostname alias, and the second of which is the "
7063 "complete hostname to be substituted for that alias.  If a case-insensitive "
7064 "match is found between the hostname to be resolved and the first field of a "
7065 "line in the file, the substituted name is looked up with no further "
7066 "processing."
7067 msgstr ""
7068
7069 #. type: Plain text
7070 #: build/C/man7/hostname.7:72
7071 msgid ""
7072 "If the input name ends with a trailing dot, the trailing dot is removed, and "
7073 "the remaining name is looked up with no further processing."
7074 msgstr ""
7075
7076 #. type: Plain text
7077 #: build/C/man7/hostname.7:85
7078 msgid ""
7079 "If the input name does not end with a trailing dot, it is looked up by "
7080 "searching through a list of domains until a match is found.  The default "
7081 "search list includes first the local domain, then its parent domains with at "
7082 "least 2 name components (longest first).  For example, in the domain "
7083 "CS.Berkeley.EDU, the name lithium.CChem will be checked first as "
7084 "lithium.CChem.CS.Berkeley.EDU and then as lithium.CChem.Berkeley.EDU.  "
7085 "Lithium.CChem.EDU will not be tried, as there is only one component "
7086 "remaining from the local domain.  The search path can be changed from the "
7087 "default by a system-wide configuration file (see B<resolver>(5))."
7088 msgstr ""
7089
7090 #.  .SH HISTORY
7091 #.  Hostname appeared in
7092 #.  4.2BSD.
7093 #. type: Plain text
7094 #: build/C/man7/hostname.7:93
7095 msgid "B<gethostbyname>(3), B<resolver>(5), B<mailaddr>(7), B<named>(8)"
7096 msgstr ""
7097
7098 #. type: TH
7099 #: build/C/man5/hosts.5:27
7100 #, no-wrap
7101 msgid "HOSTS"
7102 msgstr ""
7103
7104 #. type: TH
7105 #: build/C/man5/hosts.5:27
7106 #, no-wrap
7107 msgid "2002-06-16"
7108 msgstr ""
7109
7110 #. type: Plain text
7111 #: build/C/man5/hosts.5:30
7112 msgid "hosts - static table lookup for hostnames"
7113 msgstr ""
7114
7115 #. type: Plain text
7116 #: build/C/man5/hosts.5:32
7117 msgid "B</etc/hosts>"
7118 msgstr ""
7119
7120 #. type: Plain text
7121 #: build/C/man5/hosts.5:40
7122 msgid ""
7123 "This manual page describes the format of the I</etc/hosts> file.  This file "
7124 "is a simple text file that associates IP addresses with hostnames, one line "
7125 "per IP address.  For each host a single line should be present with the "
7126 "following information:"
7127 msgstr ""
7128
7129 #. type: Plain text
7130 #: build/C/man5/hosts.5:43
7131 msgid "IP_address canonical_hostname [aliases...]"
7132 msgstr ""
7133
7134 #. type: Plain text
7135 #: build/C/man5/hosts.5:56
7136 msgid ""
7137 "Fields of the entry are separated by any number of blanks and/or tab "
7138 "characters.  Text from a \"#\" character until the end of the line is a "
7139 "comment, and is ignored.  Host names may contain only alphanumeric "
7140 "characters, minus signs (\"-\"), and periods (\".\").  They must begin with "
7141 "an alphabetic character and end with an alphanumeric character.  Optional "
7142 "aliases provide for name changes, alternate spellings, shorter hostnames, or "
7143 "generic hostnames (for example, I<localhost>)."
7144 msgstr ""
7145
7146 #. type: Plain text
7147 #: build/C/man5/hosts.5:64
7148 msgid ""
7149 "The Berkeley Internet Name Domain (BIND) Server implements the Internet name "
7150 "server for UNIX systems.  It augments or replaces the I</etc/hosts> file or "
7151 "hostname lookup, and frees a host from relying on I</etc/hosts> being up to "
7152 "date and complete."
7153 msgstr ""
7154
7155 #. type: Plain text
7156 #: build/C/man5/hosts.5:67
7157 msgid ""
7158 "In modern systems, even though the host table has been superseded by DNS, it "
7159 "is still widely used for:"
7160 msgstr ""
7161
7162 #. type: TP
7163 #: build/C/man5/hosts.5:67
7164 #, no-wrap
7165 msgid "B<bootstrapping>"
7166 msgstr ""
7167
7168 #. type: Plain text
7169 #: build/C/man5/hosts.5:73
7170 msgid ""
7171 "Most systems have a small host table containing the name and address "
7172 "information for important hosts on the local network.  This is useful when "
7173 "DNS is not running, for example during system bootup."
7174 msgstr ""
7175
7176 #. type: TP
7177 #: build/C/man5/hosts.5:73
7178 #, no-wrap
7179 msgid "B<NIS>"
7180 msgstr ""
7181
7182 #. type: Plain text
7183 #: build/C/man5/hosts.5:79
7184 msgid ""
7185 "Sites that use NIS use the host table as input to the NIS host database.  "
7186 "Even though NIS can be used with DNS, most NIS sites still use the host "
7187 "table with an entry for all local hosts as a backup."
7188 msgstr ""
7189
7190 #. type: TP
7191 #: build/C/man5/hosts.5:79
7192 #, no-wrap
7193 msgid "B<isolated nodes>"
7194 msgstr ""
7195
7196 #. type: Plain text
7197 #: build/C/man5/hosts.5:86
7198 msgid ""
7199 "Very small sites that are isolated from the network use the host table "
7200 "instead of DNS.  If the local information rarely changes, and the network is "
7201 "not connected to the Internet, DNS offers little advantage."
7202 msgstr ""
7203
7204 #. type: Plain text
7205 #: build/C/man5/hosts.5:91
7206 msgid ""
7207 "Modifications to this file normally take effect immediately, except in cases "
7208 "where the file is cached by applications."
7209 msgstr ""
7210
7211 #. type: SS
7212 #: build/C/man5/hosts.5:91
7213 #, no-wrap
7214 msgid "Historical notes"
7215 msgstr ""
7216
7217 #. type: Plain text
7218 #: build/C/man5/hosts.5:94
7219 msgid ""
7220 "RFC\\ 952 gave the original format for the host table, though it has since "
7221 "changed."
7222 msgstr ""
7223
7224 #. type: Plain text
7225 #: build/C/man5/hosts.5:107
7226 msgid ""
7227 "Before the advent of DNS, the host table was the only way of resolving "
7228 "hostnames on the fledgling Internet.  Indeed, this file could be created "
7229 "from the official host data base maintained at the Network Information "
7230 "Control Center (NIC), though local changes were often required to bring it "
7231 "up to date regarding unofficial aliases and/or unknown hosts.  The NIC no "
7232 "longer maintains the hosts.txt files, though looking around at the time of "
7233 "writing (circa 2000), there are historical hosts.txt files on the WWW.  I "
7234 "just found three, from 92, 94, and 95."
7235 msgstr ""
7236
7237 #. type: Plain text
7238 #: build/C/man5/hosts.5:114
7239 #, no-wrap
7240 msgid ""
7241 "127.0.0.1       localhost\n"
7242 "192.168.1.10    foo.mydomain.org       foo\n"
7243 "192.168.1.13    bar.mydomain.org       bar\n"
7244 "146.82.138.7    master.debian.org      master\n"
7245 "209.237.226.90  www.opensource.org\n"
7246 msgstr ""
7247
7248 #. type: Plain text
7249 #: build/C/man5/hosts.5:121
7250 msgid "B<hostname>(1), B<resolver>(3), B<resolver>(5), B<hostname>(7), B<named>(8)"
7251 msgstr ""
7252
7253 #.  .SH AUTHOR
7254 #.  This manual page was written by Manoj Srivastava <srivasta@debian.org>,
7255 #.  for the Debian GNU/Linux system.
7256 #. type: Plain text
7257 #: build/C/man5/hosts.5:126
7258 msgid "Internet RFC\\ 952"
7259 msgstr ""
7260
7261 #. type: TH
7262 #: build/C/man5/hosts.equiv.5:6
7263 #, no-wrap
7264 msgid "HOSTS.EQUIV"
7265 msgstr ""
7266
7267 #. type: TH
7268 #: build/C/man5/hosts.equiv.5:6
7269 #, no-wrap
7270 msgid "2003-08-24"
7271 msgstr ""
7272
7273 #. type: Plain text
7274 #: build/C/man5/hosts.equiv.5:11
7275 msgid ""
7276 "/etc/hosts.equiv - list of hosts and users that are granted \"trusted\" B<r> "
7277 "command access to your system"
7278 msgstr ""
7279
7280 #. type: Plain text
7281 #: build/C/man5/hosts.equiv.5:22
7282 msgid ""
7283 "The B<hosts.equiv> file allows or denies hosts and users to use the "
7284 "B<r>-commands (e.g., B<rlogin>, B<rsh>, or B<rcp>)  without supplying a "
7285 "password."
7286 msgstr ""
7287
7288 #. type: Plain text
7289 #: build/C/man5/hosts.equiv.5:24
7290 msgid "The file uses the following format:"
7291 msgstr ""
7292
7293 #. type: TP
7294 #: build/C/man5/hosts.equiv.5:24
7295 #, no-wrap
7296 msgid "I<[ + | - ]> I<[hostname]> I<[username]>"
7297 msgstr ""
7298
7299 #. type: Plain text
7300 #: build/C/man5/hosts.equiv.5:43
7301 msgid ""
7302 "The I<hostname> is the name of a host which is logically equivalent to the "
7303 "local host.  Users logged into that host are allowed to access like-named "
7304 "user accounts on the local host without supplying a password.  The "
7305 "I<hostname> may be (optionally) preceded by a plus (+) sign.  If the plus "
7306 "sign is used alone it allows any host to access your system.  You can "
7307 "explicitly deny access to a host by preceding the I<hostname> by a minus (-) "
7308 "sign.  Users from that host must always supply a password.  For security "
7309 "reasons you should always use the FQDN of the hostname and not the short "
7310 "hostname."
7311 msgstr ""
7312
7313 #. type: Plain text
7314 #: build/C/man5/hosts.equiv.5:61
7315 msgid ""
7316 "The I<username> entry grants a specific user access to all user accounts "
7317 "(except root) without supplying a password.  That means the user is NOT "
7318 "restricted to like-named accounts.  The I<username> may be (optionally) "
7319 "preceded by a plus (+) sign.  You can also explicitly deny access to a "
7320 "specific user by preceding the I<username> with a minus (-) sign.  This says "
7321 "that the user is not trusted no matter what other entries for that host "
7322 "exist."
7323 msgstr ""
7324
7325 #. type: Plain text
7326 #: build/C/man5/hosts.equiv.5:63
7327 msgid "Netgroups can be specified by preceding the netgroup by an @ sign."
7328 msgstr ""
7329
7330 #. type: Plain text
7331 #: build/C/man5/hosts.equiv.5:69
7332 msgid ""
7333 "Be extremely careful when using the plus (+) sign.  A simple typographical "
7334 "error could result in a standalone plus sign.  A standalone plus sign is a "
7335 "wildcard character that means \"any host\"!"
7336 msgstr ""
7337
7338 #. type: Plain text
7339 #: build/C/man5/hosts.equiv.5:71
7340 msgid "I</etc/hosts.equiv>"
7341 msgstr ""
7342
7343 #. type: Plain text
7344 #: build/C/man5/hosts.equiv.5:76
7345 msgid ""
7346 "Some systems will honor the contents of this file only when it has owner "
7347 "root and no write permission for anybody else.  Some exceptionally paranoid "
7348 "systems even require that there be no other hard links to the file."
7349 msgstr ""
7350
7351 #. type: Plain text
7352 #: build/C/man5/hosts.equiv.5:84
7353 msgid ""
7354 "Modern systems use the Pluggable Authentication Modules library (PAM).  With "
7355 "PAM a standalone plus sign is considered a wildcard character which means "
7356 "\"any host\" only when the word I<promiscuous> is added to the auth "
7357 "component line in your PAM file for the particular service (e.g., "
7358 "B<rlogin>)."
7359 msgstr ""
7360
7361 #. type: Plain text
7362 #: build/C/man5/hosts.equiv.5:88
7363 msgid "B<rhosts>(5), B<rlogind>(8), B<rshd>(8)"
7364 msgstr ""
7365
7366 #. type: TH
7367 #: build/C/man7/icmp.7:12
7368 #, no-wrap
7369 msgid "ICMP"
7370 msgstr ""
7371
7372 #. type: TH
7373 #: build/C/man7/icmp.7:12 build/C/man8/nscd.8:23 build/C/man7/raw.7:13 build/C/man7/unix.7:18
7374 #, no-wrap
7375 msgid "2012-05-10"
7376 msgstr ""
7377
7378 #. type: Plain text
7379 #: build/C/man7/icmp.7:15
7380 msgid "icmp - Linux IPv4 ICMP kernel module."
7381 msgstr ""
7382
7383 #. type: Plain text
7384 #: build/C/man7/icmp.7:23
7385 msgid ""
7386 "This kernel protocol module implements the Internet Control Message Protocol "
7387 "defined in RFC\\ 792.  It is used to signal error conditions and for "
7388 "diagnosis.  The user doesn't interact directly with this module; instead it "
7389 "communicates with the other protocols in the kernel and these pass the ICMP "
7390 "errors to the application layers.  The kernel ICMP module also answers ICMP "
7391 "requests."
7392 msgstr ""
7393
7394 #. type: Plain text
7395 #: build/C/man7/icmp.7:35
7396 msgid ""
7397 "A user protocol may receive ICMP packets for all local sockets by opening a "
7398 "raw socket with the protocol B<IPPROTO_ICMP>.  See B<raw>(7)  for more "
7399 "information.  The types of ICMP packets passed to the socket can be filtered "
7400 "using the B<ICMP_FILTER> socket option.  ICMP packets are always processed "
7401 "by the kernel too, even when passed to a user socket."
7402 msgstr ""
7403
7404 #. type: Plain text
7405 #: build/C/man7/icmp.7:41
7406 msgid ""
7407 "Linux limits the rate of ICMP error packets to each destination.  "
7408 "B<ICMP_REDIRECT> and B<ICMP_DEST_UNREACH> are also limited by the "
7409 "destination route of the incoming packets."
7410 msgstr ""
7411
7412 #.  FIXME better description needed
7413 #. type: Plain text
7414 #: build/C/man7/icmp.7:54
7415 msgid ""
7416 "ICMP supports a set of I</proc> interfaces to configure some global IP "
7417 "parameters.  The parameters can be accessed by reading or writing files in "
7418 "the directory I</proc/sys/net/ipv4/>.  Most of these parameters are rate "
7419 "limitations for specific ICMP types.  Linux 2.2 uses a token bucket filter "
7420 "to limit ICMPs.  The value is the timeout in jiffies until the token bucket "
7421 "filter is cleared after a burst.  A jiffy is a system dependent unit, "
7422 "usually 10ms on i386 and about 1ms on alpha and ia64."
7423 msgstr ""
7424
7425 #. type: TP
7426 #: build/C/man7/icmp.7:54
7427 #, no-wrap
7428 msgid "I<icmp_destunreach_rate> (Linux 2.2 to 2.4.9)"
7429 msgstr ""
7430
7431 #.  Precisely: from 2.1.102
7432 #. type: Plain text
7433 #: build/C/man7/icmp.7:63
7434 msgid ""
7435 "Maximum rate to send ICMP Destination Unreachable packets.  This limits the "
7436 "rate at which packets are sent to any individual route or destination.  The "
7437 "limit does not affect sending of B<ICMP_FRAG_NEEDED> packets needed for path "
7438 "MTU discovery."
7439 msgstr ""
7440
7441 #. type: TP
7442 #: build/C/man7/icmp.7:63
7443 #, no-wrap
7444 msgid "I<icmp_echo_ignore_all> (since Linux 2.2)"
7445 msgstr ""
7446
7447 #.  Precisely: 2.1.68
7448 #. type: Plain text
7449 #: build/C/man7/icmp.7:69
7450 msgid "If this value is nonzero, Linux will ignore all B<ICMP_ECHO> requests."
7451 msgstr ""
7452
7453 #. type: TP
7454 #: build/C/man7/icmp.7:69
7455 #, no-wrap
7456 msgid "I<icmp_echo_ignore_broadcasts> (since Linux 2.2)"
7457 msgstr ""
7458
7459 #.  Precisely: from 2.1.68
7460 #. type: Plain text
7461 #: build/C/man7/icmp.7:75
7462 msgid ""
7463 "If this value is nonzero, Linux will ignore all B<ICMP_ECHO> packets sent to "
7464 "broadcast addresses."
7465 msgstr ""
7466
7467 #. type: TP
7468 #: build/C/man7/icmp.7:75
7469 #, no-wrap
7470 msgid "I<icmp_echoreply_rate> (Linux 2.2 to 2.4.9)"
7471 msgstr ""
7472
7473 #.  Precisely: from 2.1.102
7474 #. type: Plain text
7475 #: build/C/man7/icmp.7:83
7476 msgid ""
7477 "Maximum rate for sending B<ICMP_ECHOREPLY> packets in response to "
7478 "B<ICMP_ECHOREQUEST> packets."
7479 msgstr ""
7480
7481 #. type: TP
7482 #: build/C/man7/icmp.7:83
7483 #, no-wrap
7484 msgid ""
7485 "I<icmp_errors_use_inbound_ifaddr> (Boolean; default: disabled; since Linux "
7486 "2.6.12)"
7487 msgstr ""
7488
7489 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7490 #. type: Plain text
7491 #: build/C/man7/icmp.7:88
7492 msgid ""
7493 "If disabled, ICMP error messages are sent with the primary address of the "
7494 "exiting interface."
7495 msgstr ""
7496
7497 #. type: Plain text
7498 #: build/C/man7/icmp.7:94
7499 msgid ""
7500 "If enabled, the message will be sent with the primary address of the "
7501 "interface that received the packet that caused the ICMP error.  This is the "
7502 "behavior that many network administrators will expect from a router.  And it "
7503 "can make debugging complicated network layouts much easier."
7504 msgstr ""
7505
7506 #. type: Plain text
7507 #: build/C/man7/icmp.7:98
7508 msgid ""
7509 "Note that if no primary address exists for the interface selected, then the "
7510 "primary address of the first non-loopback interface that has one will be "
7511 "used regardless of this setting."
7512 msgstr ""
7513
7514 #. type: TP
7515 #: build/C/man7/icmp.7:98
7516 #, no-wrap
7517 msgid ""
7518 "I<icmp_ignore_bogus_error_responses> (Boolean; default: disabled; since "
7519 "Linux 2.2)"
7520 msgstr ""
7521
7522 #.  precisely: since 2.1.32
7523 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7524 #. type: Plain text
7525 #: build/C/man7/icmp.7:106
7526 msgid ""
7527 "Some routers violate RFC1122 by sending bogus responses to broadcast "
7528 "frames.  Such violations are normally logged via a kernel warning.  If this "
7529 "parameter is enabled, the kernel will not give such warnings, which will "
7530 "avoid log file clutter."
7531 msgstr ""
7532
7533 #. type: TP
7534 #: build/C/man7/icmp.7:106
7535 #, no-wrap
7536 msgid "I<icmp_paramprob_rate> (Linux 2.2 to 2.4.9)"
7537 msgstr ""
7538
7539 #.  Precisely: from 2.1.102
7540 #. type: Plain text
7541 #: build/C/man7/icmp.7:113
7542 msgid ""
7543 "Maximum rate for sending B<ICMP_PARAMETERPROB> packets.  These packets are "
7544 "sent when a packet arrives with an invalid IP header."
7545 msgstr ""
7546
7547 #. type: TP
7548 #: build/C/man7/icmp.7:113
7549 #, no-wrap
7550 msgid "I<icmp_ratelimit> (integer; default: 1000; since Linux 2.4.10)"
7551 msgstr ""
7552
7553 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7554 #. type: Plain text
7555 #: build/C/man7/icmp.7:121
7556 msgid ""
7557 "Limit the maximum rates for sending ICMP packets whose type matches "
7558 "I<icmp_ratemask> (see below) to specific targets.  0 to disable any "
7559 "limiting, otherwise the minimum space between responses in milliseconds."
7560 msgstr ""
7561
7562 #. type: TP
7563 #: build/C/man7/icmp.7:121
7564 #, no-wrap
7565 msgid "I<icmp_ratemask> (integer; default: see below; since Linux 2.4.10)"
7566 msgstr ""
7567
7568 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7569 #. type: Plain text
7570 #: build/C/man7/icmp.7:125
7571 msgid "Mask made of ICMP types for which rates are being limited."
7572 msgstr ""
7573
7574 #. type: Plain text
7575 #: build/C/man7/icmp.7:127
7576 msgid "Significant bits: IHGFEDCBA9876543210"
7577 msgstr ""
7578
7579 #. type: Plain text
7580 #: build/C/man7/icmp.7:129
7581 msgid "Default mask: 0000001100000011000 (0x1818)"
7582 msgstr ""
7583
7584 #. type: Plain text
7585 #: build/C/man7/icmp.7:132
7586 msgid "Bit definitions (see the Linux kernel source file I<include/linux/icmp.h>):"
7587 msgstr ""
7588
7589 #. type: tbl table
7590 #: build/C/man7/icmp.7:136
7591 #, no-wrap
7592 msgid "0 Echo Reply\n"
7593 msgstr ""
7594
7595 #. type: tbl table
7596 #: build/C/man7/icmp.7:137
7597 #, no-wrap
7598 msgid "3 Destination Unreachable *\n"
7599 msgstr ""
7600
7601 #. type: tbl table
7602 #: build/C/man7/icmp.7:138
7603 #, no-wrap
7604 msgid "4 Source Quench *\n"
7605 msgstr ""
7606
7607 #. type: tbl table
7608 #: build/C/man7/icmp.7:139
7609 #, no-wrap
7610 msgid "5 Redirect\n"
7611 msgstr ""
7612
7613 #. type: tbl table
7614 #: build/C/man7/icmp.7:140
7615 #, no-wrap
7616 msgid "8 Echo Request\n"
7617 msgstr ""
7618
7619 #. type: tbl table
7620 #: build/C/man7/icmp.7:141
7621 #, no-wrap
7622 msgid "B Time Exceeded *\n"
7623 msgstr ""
7624
7625 #. type: tbl table
7626 #: build/C/man7/icmp.7:142
7627 #, no-wrap
7628 msgid "C Parameter Problem *\n"
7629 msgstr ""
7630
7631 #. type: tbl table
7632 #: build/C/man7/icmp.7:143
7633 #, no-wrap
7634 msgid "D Timestamp Request\n"
7635 msgstr ""
7636
7637 #. type: tbl table
7638 #: build/C/man7/icmp.7:144
7639 #, no-wrap
7640 msgid "E Timestamp Reply\n"
7641 msgstr ""
7642
7643 #. type: tbl table
7644 #: build/C/man7/icmp.7:145
7645 #, no-wrap
7646 msgid "F Info Request\n"
7647 msgstr ""
7648
7649 #. type: tbl table
7650 #: build/C/man7/icmp.7:146
7651 #, no-wrap
7652 msgid "G Info Reply\n"
7653 msgstr ""
7654
7655 #. type: tbl table
7656 #: build/C/man7/icmp.7:147
7657 #, no-wrap
7658 msgid "H Address Mask Request\n"
7659 msgstr ""
7660
7661 #. type: tbl table
7662 #: build/C/man7/icmp.7:148
7663 #, no-wrap
7664 msgid "I Address Mask Reply\n"
7665 msgstr ""
7666
7667 #. type: Plain text
7668 #: build/C/man7/icmp.7:154
7669 msgid ""
7670 "The bits marked with an asterisk are rate limited by default (see the "
7671 "default mask above)."
7672 msgstr ""
7673
7674 #. type: TP
7675 #: build/C/man7/icmp.7:154
7676 #, no-wrap
7677 msgid "I<icmp_timeexceed_rate> (Linux 2.2 to 2.4.9)"
7678 msgstr ""
7679
7680 #. type: Plain text
7681 #: build/C/man7/icmp.7:161
7682 msgid ""
7683 "Maximum rate for sending B<ICMP_TIME_EXCEEDED> packets.  These packets are "
7684 "sent to prevent loops when a packet has crossed too many hops."
7685 msgstr ""
7686
7687 #. type: Plain text
7688 #: build/C/man7/icmp.7:165
7689 msgid "Support for the B<ICMP_ADDRESS> request was removed in 2.2."
7690 msgstr ""
7691
7692 #. type: Plain text
7693 #: build/C/man7/icmp.7:169
7694 msgid "Support for B<ICMP_SOURCE_QUENCH> was removed in Linux 2.2."
7695 msgstr ""
7696
7697 #.  not really true ATM
7698 #.  .PP
7699 #.  Linux ICMP should be compliant to RFC 1122.
7700 #. type: Plain text
7701 #: build/C/man7/icmp.7:177
7702 msgid ""
7703 "As many other implementations don't support B<IPPROTO_ICMP> raw sockets, "
7704 "this feature should not be relied on in portable programs."
7705 msgstr ""
7706
7707 #. type: Plain text
7708 #: build/C/man7/icmp.7:182
7709 msgid ""
7710 "B<ICMP_REDIRECT> packets are not sent when Linux is not acting as a router.  "
7711 "They are also accepted only from the old gateway defined in the routing "
7712 "table and the redirect routes are expired after some time."
7713 msgstr ""
7714
7715 #. type: Plain text
7716 #: build/C/man7/icmp.7:186
7717 msgid ""
7718 "The 64-bit timestamp returned by B<ICMP_TIMESTAMP> is in milliseconds since "
7719 "the Epoch, 1970-01-01 00:00:00 +0000 (UTC)."
7720 msgstr ""
7721
7722 #. type: Plain text
7723 #: build/C/man7/icmp.7:191
7724 msgid ""
7725 "Linux ICMP internally uses a raw socket to send ICMPs.  This raw socket may "
7726 "appear in B<netstat>(8)  output with a zero inode."
7727 msgstr ""
7728
7729 #. type: Plain text
7730 #: build/C/man7/icmp.7:193
7731 msgid "B<ip>(7)"
7732 msgstr ""
7733
7734 #. type: Plain text
7735 #: build/C/man7/icmp.7:195
7736 msgid "RFC\\ 792 for a description of the ICMP protocol."
7737 msgstr ""
7738
7739 #. type: TH
7740 #: build/C/man3/inet.3:42
7741 #, no-wrap
7742 msgid "INET"
7743 msgstr ""
7744
7745 #. type: TH
7746 #: build/C/man3/inet.3:42
7747 #, no-wrap
7748 msgid "2013-02-10"
7749 msgstr ""
7750
7751 #. type: Plain text
7752 #: build/C/man3/inet.3:46
7753 msgid ""
7754 "inet_aton, inet_addr, inet_network, inet_ntoa, inet_makeaddr, inet_lnaof, "
7755 "inet_netof - Internet address manipulation routines"
7756 msgstr ""
7757
7758 #. type: Plain text
7759 #: build/C/man3/inet.3:51
7760 #, no-wrap
7761 msgid ""
7762 "B<#include E<lt>sys/socket.hE<gt>>\n"
7763 "B<#include E<lt>netinet/in.hE<gt>>\n"
7764 "B<#include E<lt>arpa/inet.hE<gt>>\n"
7765 msgstr ""
7766
7767 #. type: Plain text
7768 #: build/C/man3/inet.3:53
7769 #, no-wrap
7770 msgid "B<int inet_aton(const char *>I<cp>B<, struct in_addr *>I<inp>B<);>\n"
7771 msgstr ""
7772
7773 #. type: Plain text
7774 #: build/C/man3/inet.3:55
7775 #, no-wrap
7776 msgid "B<in_addr_t inet_addr(const char *>I<cp>B<);>\n"
7777 msgstr ""
7778
7779 #. type: Plain text
7780 #: build/C/man3/inet.3:57
7781 #, no-wrap
7782 msgid "B<in_addr_t inet_network(const char *>I<cp>B<);>\n"
7783 msgstr ""
7784
7785 #. type: Plain text
7786 #: build/C/man3/inet.3:59
7787 #, no-wrap
7788 msgid "B<char *inet_ntoa(struct in_addr >I<in>B<);>\n"
7789 msgstr ""
7790
7791 #. type: Plain text
7792 #: build/C/man3/inet.3:61
7793 #, no-wrap
7794 msgid "B<struct in_addr inet_makeaddr(int >I<net>B<, int >I<host>B<);>\n"
7795 msgstr ""
7796
7797 #. type: Plain text
7798 #: build/C/man3/inet.3:63
7799 #, no-wrap
7800 msgid "B<in_addr_t inet_lnaof(struct in_addr >I<in>B<);>\n"
7801 msgstr ""
7802
7803 #. type: Plain text
7804 #: build/C/man3/inet.3:65
7805 #, no-wrap
7806 msgid "B<in_addr_t inet_netof(struct in_addr >I<in>B<);>\n"
7807 msgstr ""
7808
7809 #. type: Plain text
7810 #: build/C/man3/inet.3:75
7811 msgid "B<inet_aton>(), B<inet_ntoa>(): _BSD_SOURCE || _SVID_SOURCE"
7812 msgstr ""
7813
7814 #. type: Plain text
7815 #: build/C/man3/inet.3:85
7816 msgid ""
7817 "B<inet_aton>()  converts the Internet host address I<cp> from the IPv4 "
7818 "numbers-and-dots notation into binary form (in network byte order)  and "
7819 "stores it in the structure that I<inp> points to.  B<inet_aton>()  returns "
7820 "nonzero if the address is valid, zero if not.  The address supplied in I<cp> "
7821 "can have one of the following forms:"
7822 msgstr ""
7823
7824 #. type: TP
7825 #: build/C/man3/inet.3:85
7826 #, no-wrap
7827 msgid "I<a.b.c.d>"
7828 msgstr ""
7829
7830 #. type: Plain text
7831 #: build/C/man3/inet.3:89
7832 msgid ""
7833 "Each of the four numeric parts specifies a byte of the address; the bytes "
7834 "are assigned in left-to-right order to produce the binary address."
7835 msgstr ""
7836
7837 #. type: TP
7838 #: build/C/man3/inet.3:89
7839 #, no-wrap
7840 msgid "I<a.b.c>"
7841 msgstr ""
7842
7843 #. type: Plain text
7844 #: build/C/man3/inet.3:102
7845 msgid ""
7846 "Parts I<a> and I<b> specify the first two bytes of the binary address.  Part "
7847 "I<c> is interpreted as a 16-bit value that defines the rightmost two bytes "
7848 "of the binary address.  This notation is suitable for specifying (outmoded) "
7849 "Class B network addresses."
7850 msgstr ""
7851
7852 #. type: TP
7853 #: build/C/man3/inet.3:102
7854 #, no-wrap
7855 msgid "I<a.b>"
7856 msgstr ""
7857
7858 #. type: Plain text
7859 #: build/C/man3/inet.3:113
7860 msgid ""
7861 "Part I<a> specifies the first byte of the binary address.  Part I<b> is "
7862 "interpreted as a 24-bit value that defines the rightmost three bytes of the "
7863 "binary address.  This notation is suitable for specifying (outmoded) Class C "
7864 "network addresses."
7865 msgstr ""
7866
7867 #. type: TP
7868 #: build/C/man3/inet.3:113
7869 #, no-wrap
7870 msgid "I<a>"
7871 msgstr ""
7872
7873 #. type: Plain text
7874 #: build/C/man3/inet.3:119
7875 msgid ""
7876 "The value I<a> is interpreted as a 32-bit value that is stored directly into "
7877 "the binary address without any byte rearrangement."
7878 msgstr ""
7879
7880 #. type: Plain text
7881 #: build/C/man3/inet.3:132
7882 msgid ""
7883 "In all of the above forms, components of the dotted address can be specified "
7884 "in decimal, octal (with a leading I<0>), or hexadecimal, with a leading "
7885 "I<0X>).  Addresses in any of these forms are collectively termed I<IPV4 "
7886 "numbers-and-dots notation>.  The form that uses exactly four decimal numbers "
7887 "is referred to as I<IPv4 dotted-decimal notation> (or sometimes: I<IPv4 "
7888 "dotted-quad notation>)."
7889 msgstr ""
7890
7891 #. type: Plain text
7892 #: build/C/man3/inet.3:149
7893 msgid ""
7894 "The B<inet_addr>()  function converts the Internet host address I<cp> from "
7895 "IPv4 numbers-and-dots notation into binary data in network byte order.  If "
7896 "the input is invalid, B<INADDR_NONE> (usually -1) is returned.  Use of this "
7897 "function is problematic because -1 is a valid address (255.255.255.255).  "
7898 "Avoid its use in favor of B<inet_aton>(), B<inet_pton>(3), or "
7899 "B<getaddrinfo>(3)  which provide a cleaner way to indicate error return."
7900 msgstr ""
7901
7902 #. type: Plain text
7903 #: build/C/man3/inet.3:159
7904 msgid ""
7905 "The B<inet_network>()  function converts I<cp>, a string in IPv4 "
7906 "numbers-and-dots notation, into a number in host byte order suitable for use "
7907 "as an Internet network address.  On success, the converted address is "
7908 "returned.  If the input is invalid, -1 is returned."
7909 msgstr ""
7910
7911 #. type: Plain text
7912 #: build/C/man3/inet.3:167
7913 msgid ""
7914 "The B<inet_ntoa>()  function converts the Internet host address I<in>, given "
7915 "in network byte order, to a string in IPv4 dotted-decimal notation.  The "
7916 "string is returned in a statically allocated buffer, which subsequent calls "
7917 "will overwrite."
7918 msgstr ""
7919
7920 #. type: Plain text
7921 #: build/C/man3/inet.3:173
7922 msgid ""
7923 "The B<inet_lnaof>()  function returns the local network address part of the "
7924 "Internet address I<in>.  The returned value is in host byte order."
7925 msgstr ""
7926
7927 #. type: Plain text
7928 #: build/C/man3/inet.3:179
7929 msgid ""
7930 "The B<inet_netof>()  function returns the network number part of the "
7931 "Internet address I<in>.  The returned value is in host byte order."
7932 msgstr ""
7933
7934 #. type: Plain text
7935 #: build/C/man3/inet.3:190
7936 msgid ""
7937 "The B<inet_makeaddr>()  function is the converse of B<inet_netof>()  and "
7938 "B<inet_lnaof>().  It returns an Internet host address in network byte order, "
7939 "created by combining the network number I<net> with the local address "
7940 "I<host>, both in host byte order."
7941 msgstr ""
7942
7943 #. type: Plain text
7944 #: build/C/man3/inet.3:200
7945 msgid ""
7946 "The structure I<in_addr> as used in B<inet_ntoa>(), B<inet_makeaddr>(), "
7947 "B<inet_lnaof>()  and B<inet_netof>()  is defined in "
7948 "I<E<lt>netinet/in.hE<gt>> as:"
7949 msgstr ""
7950
7951 #. type: Plain text
7952 #: build/C/man3/inet.3:204
7953 #, no-wrap
7954 msgid "typedef uint32_t in_addr_t;\n"
7955 msgstr ""
7956
7957 #. type: Plain text
7958 #: build/C/man3/inet.3:208
7959 #, no-wrap
7960 msgid ""
7961 "struct in_addr {\n"
7962 "    in_addr_t s_addr;\n"
7963 "};\n"
7964 msgstr ""
7965
7966 #. type: Plain text
7967 #: build/C/man3/inet.3:218
7968 msgid ""
7969 "4.3BSD.  B<inet_addr>()  and B<inet_ntoa>()  are specified in POSIX.1-2001.  "
7970 "B<inet_aton>()  is not specified in POSIX.1-2001, but is available on most "
7971 "systems."
7972 msgstr ""
7973
7974 #. type: Plain text
7975 #: build/C/man3/inet.3:222
7976 msgid ""
7977 "On the i386 the host byte order is Least Significant Byte first (little "
7978 "endian), whereas the network byte order, as used on the Internet, is Most "
7979 "Significant Byte first (big endian)."
7980 msgstr ""
7981
7982 #. type: Plain text
7983 #: build/C/man3/inet.3:231
7984 msgid ""
7985 "B<inet_lnaof>(), B<inet_netof>(), and B<inet_makeaddr>()  are legacy "
7986 "functions that assume they are dealing with I<classful network addresses>.  "
7987 "Classful networking divides IPv4 network addresses into host and network "
7988 "components at byte boundaries, as follows:"
7989 msgstr ""
7990
7991 #. type: TP
7992 #: build/C/man3/inet.3:231
7993 #, no-wrap
7994 msgid "Class A"
7995 msgstr ""
7996
7997 #. type: Plain text
7998 #: build/C/man3/inet.3:237
7999 msgid ""
8000 "This address type is indicated by the value 0 in the most significant bit of "
8001 "the (network byte ordered) address.  The network address is contained in the "
8002 "most significant byte, and the host address occupies the remaining three "
8003 "bytes."
8004 msgstr ""
8005
8006 #. type: TP
8007 #: build/C/man3/inet.3:237
8008 #, no-wrap
8009 msgid "Class B"
8010 msgstr ""
8011
8012 #. type: Plain text
8013 #: build/C/man3/inet.3:243
8014 msgid ""
8015 "This address type is indicated by the binary value 10 in the most "
8016 "significant two bits of the address.  The network address is contained in "
8017 "the two most significant bytes, and the host address occupies the remaining "
8018 "two bytes."
8019 msgstr ""
8020
8021 #. type: TP
8022 #: build/C/man3/inet.3:243
8023 #, no-wrap
8024 msgid "Class C"
8025 msgstr ""
8026
8027 #. type: Plain text
8028 #: build/C/man3/inet.3:249
8029 msgid ""
8030 "This address type is indicated by the binary value 110 in the most "
8031 "significant three bits of the address.  The network address is contained in "
8032 "the three most significant bytes, and the host address occupies the "
8033 "remaining byte."
8034 msgstr ""
8035
8036 #. type: Plain text
8037 #: build/C/man3/inet.3:254
8038 msgid ""
8039 "Classful network addresses are now obsolete, having been superseded by "
8040 "Classless Inter-Domain Routing (CIDR), which divides addresses into network "
8041 "and host components at arbitrary bit (rather than byte) boundaries."
8042 msgstr ""
8043
8044 #. type: Plain text
8045 #: build/C/man3/inet.3:261
8046 msgid ""
8047 "An example of the use of B<inet_aton>()  and B<inet_ntoa>()  is shown "
8048 "below.  Here are some example runs:"
8049 msgstr ""
8050
8051 #. type: Plain text
8052 #: build/C/man3/inet.3:268
8053 #, no-wrap
8054 msgid ""
8055 "$B< ./a.out 226.000.000.037>      # Last byte is in octal\n"
8056 "226.0.0.31\n"
8057 "$B< ./a.out 0x7f.1         >      # First byte is in hex\n"
8058 "127.0.0.1\n"
8059 msgstr ""
8060
8061 #. type: Plain text
8062 #: build/C/man3/inet.3:277
8063 #, no-wrap
8064 msgid ""
8065 "#define _BSD_SOURCE\n"
8066 "#include E<lt>arpa/inet.hE<gt>\n"
8067 "#include E<lt>stdio.hE<gt>\n"
8068 "#include E<lt>stdlib.hE<gt>\n"
8069 msgstr ""
8070
8071 #. type: Plain text
8072 #: build/C/man3/inet.3:282
8073 #, no-wrap
8074 msgid ""
8075 "int\n"
8076 "main(int argc, char *argv[])\n"
8077 "{\n"
8078 "    struct in_addr addr;\n"
8079 msgstr ""
8080
8081 #. type: Plain text
8082 #: build/C/man3/inet.3:287
8083 #, no-wrap
8084 msgid ""
8085 "    if (argc != 2) {\n"
8086 "        fprintf(stderr, \"%s E<lt>dotted-addressE<gt>\\en\", argv[0]);\n"
8087 "        exit(EXIT_FAILURE);\n"
8088 "    }\n"
8089 msgstr ""
8090
8091 #. type: Plain text
8092 #: build/C/man3/inet.3:292
8093 #, no-wrap
8094 msgid ""
8095 "    if (inet_aton(argv[1], &addr) == 0) {\n"
8096 "        fprintf(stderr, \"Invalid address\\en\");\n"
8097 "        exit(EXIT_FAILURE);\n"
8098 "    }\n"
8099 msgstr ""
8100
8101 #. type: Plain text
8102 #: build/C/man3/inet.3:296
8103 #, no-wrap
8104 msgid ""
8105 "    printf(\"%s\\en\", inet_ntoa(addr));\n"
8106 "    exit(EXIT_SUCCESS);\n"
8107 "}\n"
8108 msgstr ""
8109
8110 #. type: Plain text
8111 #: build/C/man3/inet.3:307
8112 msgid ""
8113 "B<byteorder>(3), B<getaddrinfo>(3), B<gethostbyname>(3), B<getnameinfo>(3), "
8114 "B<getnetent>(3), B<inet_ntop>(3), B<inet_pton>(3), B<hosts>(5), "
8115 "B<networks>(5)"
8116 msgstr ""
8117
8118 #. type: TH
8119 #: build/C/man3/inet_ntop.3:26
8120 #, no-wrap
8121 msgid "INET_NTOP"
8122 msgstr ""
8123
8124 #. type: TH
8125 #: build/C/man3/inet_ntop.3:26
8126 #, no-wrap
8127 msgid "2008-11-11"
8128 msgstr ""
8129
8130 #. type: Plain text
8131 #: build/C/man3/inet_ntop.3:29
8132 msgid "inet_ntop - convert IPv4 and IPv6 addresses from binary to text form"
8133 msgstr ""
8134
8135 #. type: Plain text
8136 #: build/C/man3/inet_ntop.3:35
8137 #, no-wrap
8138 msgid ""
8139 "B<const char *inet_ntop(int >I<af>B<, const void *>I<src>B<,>\n"
8140 "B<                      char *>I<dst>B<, socklen_t >I<size>B<);>\n"
8141 msgstr ""
8142
8143 #. type: Plain text
8144 #: build/C/man3/inet_ntop.3:48
8145 msgid ""
8146 "This function converts the network address structure I<src> in the I<af> "
8147 "address family into a character string.  The resulting string is copied to "
8148 "the buffer pointed to by I<dst>, which must be a non-null pointer.  The "
8149 "caller specifies the number of bytes available in this buffer in the "
8150 "argument I<size>."
8151 msgstr ""
8152
8153 #. type: Plain text
8154 #: build/C/man3/inet_ntop.3:57
8155 msgid ""
8156 "B<inet_ntop>()  extends the B<inet_ntoa>(3)  function to support multiple "
8157 "address families, B<inet_ntoa>(3)  is now considered to be deprecated in "
8158 "favor of B<inet_ntop>().  The following address families are currently "
8159 "supported:"
8160 msgstr ""
8161
8162 #. type: Plain text
8163 #: build/C/man3/inet_ntop.3:70
8164 msgid ""
8165 "I<src> points to a I<struct in_addr> (in network byte order)  which is "
8166 "converted to an IPv4 network address in the dotted-decimal format, "
8167 "\"I<ddd.ddd.ddd.ddd>\".  The buffer I<dst> must be at least "
8168 "B<INET_ADDRSTRLEN> bytes long."
8169 msgstr ""
8170
8171 #. type: Plain text
8172 #: build/C/man3/inet_ntop.3:83
8173 msgid ""
8174 "I<src> points to a I<struct in6_addr> (in network byte order)  which is "
8175 "converted to a representation of this address in the most appropriate IPv6 "
8176 "network address format for this address.  The buffer I<dst> must be at least "
8177 "B<INET6_ADDRSTRLEN> bytes long."
8178 msgstr ""
8179
8180 #. type: Plain text
8181 #: build/C/man3/inet_ntop.3:91
8182 msgid ""
8183 "On success, B<inet_ntop>()  returns a non-null pointer to I<dst>.  NULL is "
8184 "returned if there was an error, with I<errno> set to indicate the error."
8185 msgstr ""
8186
8187 #. type: TP
8188 #: build/C/man3/inet_ntop.3:92
8189 #, no-wrap
8190 msgid "B<EAFNOSUPPORT>"
8191 msgstr ""
8192
8193 #. type: Plain text
8194 #: build/C/man3/inet_ntop.3:96
8195 msgid "I<af> was not a valid address family."
8196 msgstr ""
8197
8198 #. type: TP
8199 #: build/C/man3/inet_ntop.3:96
8200 #, no-wrap
8201 msgid "B<ENOSPC>"
8202 msgstr ""
8203
8204 #. type: Plain text
8205 #: build/C/man3/inet_ntop.3:100
8206 msgid "The converted address string would exceed the size given by I<size>."
8207 msgstr ""
8208
8209 #.  2.1.3: size_t, 2.1.91: socklen_t
8210 #. type: Plain text
8211 #: build/C/man3/inet_ntop.3:112
8212 msgid ""
8213 "POSIX.1-2001.  Note that RFC\\ 2553 defines a prototype where the last "
8214 "argument I<size> is of type I<size_t>.  Many systems follow RFC\\ 2553.  "
8215 "Glibc 2.0 and 2.1 have I<size_t>, but 2.2 and later have I<socklen_t>."
8216 msgstr ""
8217
8218 #. type: Plain text
8219 #: build/C/man3/inet_ntop.3:115
8220 msgid "B<AF_INET6> converts IPv4-mapped IPv6 addresses into an IPv6 format."
8221 msgstr ""
8222
8223 #. type: Plain text
8224 #: build/C/man3/inet_ntop.3:118
8225 msgid "See B<inet_pton>(3)."
8226 msgstr ""
8227
8228 #. type: Plain text
8229 #: build/C/man3/inet_ntop.3:122
8230 msgid "B<getnameinfo>(3), B<inet>(3), B<inet_pton>(3)"
8231 msgstr ""
8232
8233 #. type: TH
8234 #: build/C/man3/inet_pton.3:27
8235 #, no-wrap
8236 msgid "INET_PTON"
8237 msgstr ""
8238
8239 #. type: TH
8240 #: build/C/man3/inet_pton.3:27
8241 #, no-wrap
8242 msgid "2008-06-18"
8243 msgstr ""
8244
8245 #. type: Plain text
8246 #: build/C/man3/inet_pton.3:30
8247 msgid "inet_pton - convert IPv4 and IPv6 addresses from text to binary form"
8248 msgstr ""
8249
8250 #. type: Plain text
8251 #: build/C/man3/inet_pton.3:35
8252 #, no-wrap
8253 msgid "B<int inet_pton(int >I<af>B<, const char *>I<src>B<, void *>I<dst>B<);>\n"
8254 msgstr ""
8255
8256 #. type: Plain text
8257 #: build/C/man3/inet_pton.3:51
8258 msgid ""
8259 "This function converts the character string I<src> into a network address "
8260 "structure in the I<af> address family, then copies the network address "
8261 "structure to I<dst>.  The I<af> argument must be either B<AF_INET> or "
8262 "B<AF_INET6>."
8263 msgstr ""
8264
8265 #. type: Plain text
8266 #: build/C/man3/inet_pton.3:53
8267 msgid "The following address families are currently supported:"
8268 msgstr ""
8269
8270 #. type: Plain text
8271 #: build/C/man3/inet_pton.3:67
8272 msgid ""
8273 "I<src> points to a character string containing an IPv4 network address in "
8274 "dotted-decimal format, \"I<ddd.ddd.ddd.ddd>\", where I<ddd> is a decimal "
8275 "number of up to three digits in the range 0 to 255.  The address is "
8276 "converted to a I<struct in_addr> and copied to I<dst>, which must be "
8277 "I<sizeof(struct in_addr)> (4) bytes (32 bits) long."
8278 msgstr ""
8279
8280 #. type: Plain text
8281 #: build/C/man3/inet_pton.3:79
8282 msgid ""
8283 "I<src> points to a character string containing an IPv6 network address.  The "
8284 "address is converted to a I<struct in6_addr> and copied to I<dst>, which "
8285 "must be I<sizeof(struct in6_addr)> (16) bytes (128 bits) long.  The allowed "
8286 "formats for IPv6 addresses follow these rules:"
8287 msgstr ""
8288
8289 #. type: IP
8290 #: build/C/man3/inet_pton.3:80
8291 #, no-wrap
8292 msgid "1."
8293 msgstr ""
8294
8295 #. type: Plain text
8296 #: build/C/man3/inet_pton.3:87
8297 msgid ""
8298 "The preferred format is I<x:x:x:x:x:x:x:x>.  This form consists of eight "
8299 "hexadecimal numbers, each of which expresses a 16-bit value (i.e., each I<x> "
8300 "can be up to 4 hex digits)."
8301 msgstr ""
8302
8303 #. type: IP
8304 #: build/C/man3/inet_pton.3:87
8305 #, no-wrap
8306 msgid "2."
8307 msgstr ""
8308
8309 #. type: Plain text
8310 #: build/C/man3/inet_pton.3:100
8311 msgid ""
8312 "A series of contiguous zero values in the preferred format can be "
8313 "abbreviated to I<::>.  Only one instance of I<::> can occur in an address.  "
8314 "For example, the loopback address I<0:0:0:0:0:0:0:1> can be abbreviated as "
8315 "I<::1>.  The wildcard address, consisting of all zeros, can be written as "
8316 "I<::>."
8317 msgstr ""
8318
8319 #. type: IP
8320 #: build/C/man3/inet_pton.3:100
8321 #, no-wrap
8322 msgid "3."
8323 msgstr ""
8324
8325 #. type: Plain text
8326 #: build/C/man3/inet_pton.3:113
8327 msgid ""
8328 "An alternate format is useful for expressing IPv4-mapped IPv6 addresses.  "
8329 "This form is written as I<x:x:x:x:x:x:d.d.d.d>, where the six leading I<x>s "
8330 "are hexadecimal values that define the six most-significant 16-bit pieces of "
8331 "the address (i.e., 96 bits), and the I<d>s express a value in dotted-decimal "
8332 "notation that defines the least significant 32 bits of the address.  An "
8333 "example of such an address is I<::FFFF:204.152.189.116>."
8334 msgstr ""
8335
8336 #. type: Plain text
8337 #: build/C/man3/inet_pton.3:116
8338 msgid "See RFC 2373 for further details on the representation of IPv6 addresses."
8339 msgstr ""
8340
8341 #. type: Plain text
8342 #: build/C/man3/inet_pton.3:129
8343 msgid ""
8344 "B<inet_pton>()  returns 1 on success (network address was successfully "
8345 "converted).  0 is returned if I<src> does not contain a character string "
8346 "representing a valid network address in the specified address family.  If "
8347 "I<af> does not contain a valid address family, -1 is returned and I<errno> "
8348 "is set to B<EAFNOSUPPORT>."
8349 msgstr ""
8350
8351 #. type: Plain text
8352 #: build/C/man3/inet_pton.3:150
8353 msgid ""
8354 "Unlike B<inet_aton>(3)  and B<inet_addr>(3), B<inet_pton>()  supports IPv6 "
8355 "addresses.  On the other hand, B<inet_pton>()  accepts only IPv4 addresses "
8356 "in dotted-decimal notation, whereas B<inet_aton>(3)  and B<inet_addr>(3)  "
8357 "allow the more general numbers-and-dots notation (hexadecimal and octal "
8358 "number formats, and formats that don't require all four bytes to be "
8359 "explicitly written).  For an interface that handles both IPv6 addresses, and "
8360 "IPv4 addresses in numbers-and-dots notation, see B<getaddrinfo>(3)."
8361 msgstr ""
8362
8363 #. type: Plain text
8364 #: build/C/man3/inet_pton.3:156
8365 msgid ""
8366 "B<AF_INET6> does not recognize IPv4 addresses.  An explicit IPv4-mapped IPv6 "
8367 "address must be supplied in I<src> instead."
8368 msgstr ""
8369
8370 #. type: Plain text
8371 #: build/C/man3/inet_pton.3:162
8372 msgid ""
8373 "The program below demonstrates the use of B<inet_pton>()  and "
8374 "B<inet_ntop>(3).  Here are some example runs:"
8375 msgstr ""
8376
8377 #. type: Plain text
8378 #: build/C/man3/inet_pton.3:171
8379 #, no-wrap
8380 msgid ""
8381 "$B< ./a.out i6 0:0:0:0:0:0:0:0>\n"
8382 "::\n"
8383 "$B< ./a.out i6 1:0:0:0:0:0:0:8>\n"
8384 "1::8\n"
8385 "$B< ./a.out i6 0:0:0:0:0:FFFF:204.152.189.116>\n"
8386 "::ffff:204.152.189.116\n"
8387 msgstr ""
8388
8389 #. type: Plain text
8390 #: build/C/man3/inet_pton.3:180
8391 #, no-wrap
8392 msgid ""
8393 "#include E<lt>arpa/inet.hE<gt>\n"
8394 "#include E<lt>stdio.hE<gt>\n"
8395 "#include E<lt>stdlib.hE<gt>\n"
8396 "#include E<lt>string.hE<gt>\n"
8397 msgstr ""
8398
8399 #. type: Plain text
8400 #: build/C/man3/inet_pton.3:187
8401 #, no-wrap
8402 msgid ""
8403 "int\n"
8404 "main(int argc, char *argv[])\n"
8405 "{\n"
8406 "    unsigned char buf[sizeof(struct in6_addr)];\n"
8407 "    int domain, s;\n"
8408 "    char str[INET6_ADDRSTRLEN];\n"
8409 msgstr ""
8410
8411 #. type: Plain text
8412 #: build/C/man3/inet_pton.3:192
8413 #, no-wrap
8414 msgid ""
8415 "    if (argc != 3) {\n"
8416 "        fprintf(stderr, \"Usage: %s {i4|i6|E<lt>numE<gt>} string\\en\", "
8417 "argv[0]);\n"
8418 "        exit(EXIT_FAILURE);\n"
8419 "    }\n"
8420 msgstr ""
8421
8422 #. type: Plain text
8423 #: build/C/man3/inet_pton.3:195
8424 #, no-wrap
8425 msgid ""
8426 "    domain = (strcmp(argv[1], \"i4\") == 0) ? AF_INET :\n"
8427 "             (strcmp(argv[1], \"i6\") == 0) ? AF_INET6 : atoi(argv[1]);\n"
8428 msgstr ""
8429
8430 #. type: Plain text
8431 #: build/C/man3/inet_pton.3:204
8432 #, no-wrap
8433 msgid ""
8434 "    s = inet_pton(domain, argv[2], buf);\n"
8435 "    if (s E<lt>= 0) {\n"
8436 "        if (s == 0)\n"
8437 "            fprintf(stderr, \"Not in presentation format\");\n"
8438 "        else\n"
8439 "            perror(\"inet_pton\");\n"
8440 "        exit(EXIT_FAILURE);\n"
8441 "    }\n"
8442 msgstr ""
8443
8444 #. type: Plain text
8445 #: build/C/man3/inet_pton.3:209
8446 #, no-wrap
8447 msgid ""
8448 "    if (inet_ntop(domain, buf, str, INET6_ADDRSTRLEN) == NULL) {\n"
8449 "        perror(\"inet_ntop\");\n"
8450 "        exit(EXIT_FAILURE);\n"
8451 "    }\n"
8452 msgstr ""
8453
8454 #. type: Plain text
8455 #: build/C/man3/inet_pton.3:211
8456 #, no-wrap
8457 msgid "    printf(\"%s\\en\", str);\n"
8458 msgstr ""
8459
8460 #. type: Plain text
8461 #: build/C/man3/inet_pton.3:219
8462 msgid "B<getaddrinfo>(3), B<inet>(3), B<inet_ntop>(3)"
8463 msgstr ""
8464
8465 #. type: TH
8466 #: build/C/man7/ip.7:36
8467 #, no-wrap
8468 msgid "IP"
8469 msgstr ""
8470
8471 #. type: TH
8472 #: build/C/man7/ip.7:36
8473 #, no-wrap
8474 msgid "2013-09-17"
8475 msgstr ""
8476
8477 #. type: Plain text
8478 #: build/C/man7/ip.7:39
8479 msgid "ip - Linux IPv4 protocol implementation"
8480 msgstr ""
8481
8482 #. type: Plain text
8483 #: build/C/man7/ip.7:45 build/C/man7/ipv6.7:93 build/C/man7/raw.7:20 build/C/man7/tcp.7:83 build/C/man7/udp.7:19
8484 msgid "B<#include E<lt>netinet/in.hE<gt>>"
8485 msgstr ""
8486
8487 #. type: Plain text
8488 #: build/C/man7/ip.7:47
8489 msgid "B<#include E<lt>netinet/ip.hE<gt> >/* superset of previous */"
8490 msgstr ""
8491
8492 #. type: Plain text
8493 #: build/C/man7/ip.7:49
8494 msgid "I<tcp_socket>B< = socket(AF_INET, SOCK_STREAM, 0);>"
8495 msgstr ""
8496
8497 #. type: Plain text
8498 #: build/C/man7/ip.7:51
8499 msgid "I<udp_socket>B< = socket(AF_INET, SOCK_DGRAM, 0);>"
8500 msgstr ""
8501
8502 #. type: Plain text
8503 #: build/C/man7/ip.7:53
8504 msgid "I<raw_socket>B< = socket(AF_INET, SOCK_RAW, >I<protocol>B<);>"
8505 msgstr ""
8506
8507 #.  FIXME has someone verified that 2.1 is really 1812 compliant?
8508 #. type: Plain text
8509 #: build/C/man7/ip.7:60
8510 msgid ""
8511 "Linux implements the Internet Protocol, version 4, described in RFC\\ 791 "
8512 "and RFC\\ 1122.  B<ip> contains a level 2 multicasting implementation "
8513 "conforming to RFC\\ 1112.  It also contains an IP router including a packet "
8514 "filter."
8515 msgstr ""
8516
8517 #. type: Plain text
8518 #: build/C/man7/ip.7:64
8519 msgid ""
8520 "The programming interface is BSD-sockets compatible.  For more information "
8521 "on sockets, see B<socket>(7)."
8522 msgstr ""
8523
8524 #. type: Plain text
8525 #: build/C/man7/ip.7:95
8526 msgid ""
8527 "An IP socket is created by calling the B<socket>(2)  function as "
8528 "B<socket(AF_INET, >I<socket_type>B<, >I<protocol>B<)>.  Valid socket types "
8529 "are B<SOCK_STREAM> to open a B<tcp>(7)  socket, B<SOCK_DGRAM> to open a "
8530 "B<udp>(7)  socket, or B<SOCK_RAW> to open a B<raw>(7)  socket to access the "
8531 "IP protocol directly.  I<protocol> is the IP protocol in the IP header to be "
8532 "received or sent.  The only valid values for I<protocol> are 0 and "
8533 "B<IPPROTO_TCP> for TCP sockets, and 0 and B<IPPROTO_UDP> for UDP sockets.  "
8534 "For B<SOCK_RAW> you may specify a valid IANA IP protocol defined in RFC\\ "
8535 "1700 assigned numbers."
8536 msgstr ""
8537
8538 #. type: Plain text
8539 #: build/C/man7/ip.7:117
8540 msgid ""
8541 "When a process wants to receive new incoming packets or connections, it "
8542 "should bind a socket to a local interface address using B<bind>(2).  In this "
8543 "case, only one IP socket may be bound to any given local (address, port) "
8544 "pair.  When B<INADDR_ANY> is specified in the bind call, the socket will be "
8545 "bound to I<all> local interfaces.  When B<listen>(2)  is called on an "
8546 "unbound socket, the socket is automatically bound to a random free port with "
8547 "the local address set to B<INADDR_ANY>.  When B<connect>(2)  is called on an "
8548 "unbound socket, the socket is automatically bound to a random free port or "
8549 "to a usable shared port with the local address set to B<INADDR_ANY>."
8550 msgstr ""
8551
8552 #. type: Plain text
8553 #: build/C/man7/ip.7:123
8554 msgid ""
8555 "A TCP local socket address that has been bound is unavailable for some time "
8556 "after closing, unless the B<SO_REUSEADDR> flag has been set.  Care should be "
8557 "taken when using this flag as it makes TCP less reliable."
8558 msgstr ""
8559
8560 #. type: Plain text
8561 #: build/C/man7/ip.7:134
8562 msgid ""
8563 "An IP socket address is defined as a combination of an IP interface address "
8564 "and a 16-bit port number.  The basic IP protocol does not supply port "
8565 "numbers, they are implemented by higher level protocols like B<udp>(7)  and "
8566 "B<tcp>(7).  On raw sockets I<sin_port> is set to the IP protocol."
8567 msgstr ""
8568
8569 #. type: Plain text
8570 #: build/C/man7/ip.7:142
8571 #, no-wrap
8572 msgid ""
8573 "struct sockaddr_in {\n"
8574 "    sa_family_t    sin_family; /* address family: AF_INET */\n"
8575 "    in_port_t      sin_port;   /* port in network byte order */\n"
8576 "    struct in_addr sin_addr;   /* internet address */\n"
8577 "};\n"
8578 msgstr ""
8579
8580 #. type: Plain text
8581 #: build/C/man7/ip.7:147
8582 #, no-wrap
8583 msgid ""
8584 "/* Internet address. */\n"
8585 "struct in_addr {\n"
8586 "    uint32_t       s_addr;     /* address in network byte order */\n"
8587 "};\n"
8588 msgstr ""
8589
8590 #. type: Plain text
8591 #: build/C/man7/ip.7:172
8592 msgid ""
8593 "I<sin_family> is always set to B<AF_INET>.  This is required; in Linux 2.2 "
8594 "most networking functions return B<EINVAL> when this setting is missing.  "
8595 "I<sin_port> contains the port in network byte order.  The port numbers below "
8596 "1024 are called I<privileged ports> (or sometimes: I<reserved ports>).  Only "
8597 "privileged processes (i.e., those having the B<CAP_NET_BIND_SERVICE> "
8598 "capability) may B<bind>(2)  to these sockets.  Note that the raw IPv4 "
8599 "protocol as such has no concept of a port, they are implemented only by "
8600 "higher protocols like B<tcp>(7)  and B<udp>(7)."
8601 msgstr ""
8602
8603 #. type: Plain text
8604 #: build/C/man7/ip.7:191
8605 msgid ""
8606 "I<sin_addr> is the IP host address.  The I<s_addr> member of I<struct "
8607 "in_addr> contains the host interface address in network byte order.  "
8608 "I<in_addr> should be assigned one of the B<INADDR_*> values (e.g., "
8609 "B<INADDR_ANY>)  or set using the B<inet_aton>(3), B<inet_addr>(3), "
8610 "B<inet_makeaddr>(3)  library functions or directly with the name resolver "
8611 "(see B<gethostbyname>(3))."
8612 msgstr ""
8613
8614 #.  Leave a loophole for XTP @)
8615 #. type: Plain text
8616 #: build/C/man7/ip.7:203
8617 msgid ""
8618 "IPv4 addresses are divided into unicast, broadcast and multicast addresses.  "
8619 "Unicast addresses specify a single interface of a host, broadcast addresses "
8620 "specify all hosts on a network and multicast addresses address all hosts in "
8621 "a multicast group.  Datagrams to broadcast addresses can be sent or received "
8622 "only when the B<SO_BROADCAST> socket flag is set.  In the current "
8623 "implementation, connection-oriented sockets are allowed to use only unicast "
8624 "addresses."
8625 msgstr ""
8626
8627 #. type: Plain text
8628 #: build/C/man7/ip.7:211
8629 msgid ""
8630 "Note that the address and the port are always stored in network byte order.  "
8631 "In particular, this means that you need to call B<htons>(3)  on the number "
8632 "that is assigned to a port.  All address/port manipulation functions in the "
8633 "standard library work in network byte order."
8634 msgstr ""
8635
8636 #. type: Plain text
8637 #: build/C/man7/ip.7:224
8638 msgid ""
8639 "There are several special addresses: B<INADDR_LOOPBACK> (127.0.0.1)  always "
8640 "refers to the local host via the loopback device; B<INADDR_ANY> (0.0.0.0)  "
8641 "means any address for binding; B<INADDR_BROADCAST> (255.255.255.255)  means "
8642 "any host and has the same effect on bind as B<INADDR_ANY> for historical "
8643 "reasons."
8644 msgstr ""
8645
8646 #.  or SOL_IP on Linux
8647 #. type: Plain text
8648 #: build/C/man7/ip.7:233
8649 msgid ""
8650 "IP supports some protocol-specific socket options that can be set with "
8651 "B<setsockopt>(2)  and read with B<getsockopt>(2).  The socket option level "
8652 "for IP is B<IPPROTO_IP>.  A boolean integer flag is zero when it is false, "
8653 "otherwise true."
8654 msgstr ""
8655
8656 #. type: TP
8657 #: build/C/man7/ip.7:233
8658 #, no-wrap
8659 msgid "B<IP_ADD_MEMBERSHIP> (since Linux 1.2)"
8660 msgstr ""
8661
8662 #. type: Plain text
8663 #: build/C/man7/ip.7:239
8664 msgid "Join a multicast group.  Argument is an I<ip_mreqn> structure."
8665 msgstr ""
8666
8667 #. type: Plain text
8668 #: build/C/man7/ip.7:249
8669 #, no-wrap
8670 msgid ""
8671 "struct ip_mreqn {\n"
8672 "    struct in_addr imr_multiaddr; /* IP multicast group\n"
8673 "                                     address */\n"
8674 "    struct in_addr imr_address;   /* IP address of local\n"
8675 "                                     interface */\n"
8676 "    int            imr_ifindex;   /* interface index */\n"
8677 "};\n"
8678 msgstr ""
8679
8680 #.  (i.e., within the 224.0.0.0-239.255.255.255 range)
8681 #. type: Plain text
8682 #: build/C/man7/ip.7:270
8683 msgid ""
8684 "I<imr_multiaddr> contains the address of the multicast group the application "
8685 "wants to join or leave.  It must be a valid multicast address (or "
8686 "B<setsockopt>(2)  fails with the error B<EINVAL>).  I<imr_address> is the "
8687 "address of the local interface with which the system should join the "
8688 "multicast group; if it is equal to B<INADDR_ANY> an appropriate interface is "
8689 "chosen by the system.  I<imr_ifindex> is the interface index of the "
8690 "interface that should join/leave the I<imr_multiaddr> group, or 0 to "
8691 "indicate any interface."
8692 msgstr ""
8693
8694 #. type: Plain text
8695 #: build/C/man7/ip.7:285
8696 msgid ""
8697 "The I<ip_mreqn> structure is available only since Linux 2.2.  For "
8698 "compatibility, the old I<ip_mreq> structure (present since Linux 1.2) is "
8699 "still supported; it differs from I<ip_mreqn> only by not including the "
8700 "I<imr_ifindex> field.  Only valid as a B<setsockopt>(2)."
8701 msgstr ""
8702
8703 #. type: TP
8704 #: build/C/man7/ip.7:285
8705 #, no-wrap
8706 msgid "B<IP_ADD_SOURCE_MEMBERSHIP> (since Linux 2.4.22 / 2.5.68)"
8707 msgstr ""
8708
8709 #. type: Plain text
8710 #: build/C/man7/ip.7:292
8711 msgid ""
8712 "Join a multicast group and allow receiving data only from a specified "
8713 "source.  Argument is an I<ip_mreq_source> structure."
8714 msgstr ""
8715
8716 #. type: Plain text
8717 #: build/C/man7/ip.7:303
8718 #, no-wrap
8719 msgid ""
8720 "struct ip_mreq_source {\n"
8721 "    struct in_addr imr_multiaddr;  /* IP multicast group\n"
8722 "                                      address */\n"
8723 "    struct in_addr imr_interface;  /* IP address of local\n"
8724 "                                      interface */\n"
8725 "    struct in_addr imr_sourceaddr; /* IP address of\n"
8726 "                                      multicast source */\n"
8727 "};\n"
8728 msgstr ""
8729
8730 #. type: Plain text
8731 #: build/C/man7/ip.7:324
8732 msgid ""
8733 "The I<ip_mreq_source> structure is similar to I<ip_mreqn> described under "
8734 "B<IP_ADD_MEMBERSIP>.  The I<imr_multiaddr> field contains the address of the "
8735 "multicast group the application wants to join or leave.  The "
8736 "I<imr_interface> field is the address of the local interface with which the "
8737 "system should join the multicast group.  Finally, the I<imr_sourceaddr> "
8738 "field contains the address of the source the application wants to receive "
8739 "data from."
8740 msgstr ""
8741
8742 #. type: Plain text
8743 #: build/C/man7/ip.7:327
8744 msgid ""
8745 "This option can be used multiple times to allow receiving data from more "
8746 "than one source."
8747 msgstr ""
8748
8749 #. type: TP
8750 #: build/C/man7/ip.7:327
8751 #, no-wrap
8752 msgid "B<IP_BLOCK_SOURCE> (since Linux 2.4.22 / 2.5.68)"
8753 msgstr ""
8754
8755 #. type: Plain text
8756 #: build/C/man7/ip.7:335
8757 msgid ""
8758 "Stop receiving multicast data from a specific source in a given group.  This "
8759 "is valid only after the application has subscribed to the multicast group "
8760 "using either B<IP_ADD_MEMBERSHIP> or B<IP_ADD_SOURCE_MEMBERSHIP>."
8761 msgstr ""
8762
8763 #. type: Plain text
8764 #: build/C/man7/ip.7:340 build/C/man7/ip.7:362 build/C/man7/ip.7:923
8765 msgid ""
8766 "Argument is an I<ip_mreq_source> structure as described under "
8767 "B<IP_ADD_SOURCE_MEMBERSHIP>."
8768 msgstr ""
8769
8770 #. type: TP
8771 #: build/C/man7/ip.7:340
8772 #, no-wrap
8773 msgid "B<IP_DROP_MEMBERSHIP> (since Linux 1.2)"
8774 msgstr ""
8775
8776 #. type: Plain text
8777 #: build/C/man7/ip.7:349
8778 msgid ""
8779 "Leave a multicast group.  Argument is an I<ip_mreqn> or I<ip_mreq> structure "
8780 "similar to B<IP_ADD_MEMBERSHIP>."
8781 msgstr ""
8782
8783 #. type: TP
8784 #: build/C/man7/ip.7:349
8785 #, no-wrap
8786 msgid "B<IP_DROP_SOURCE_MEMBERSHIP> (since Linux 2.4.22 / 2.5.68)"
8787 msgstr ""
8788
8789 #. type: Plain text
8790 #: build/C/man7/ip.7:357
8791 msgid ""
8792 "Leave a source-specific group\\(emthat is, stop receiving data from a given "
8793 "multicast group that come from a given source.  If the application has "
8794 "subscribed to multiple sources within the same group, data from the "
8795 "remaining sources will still be delivered.  To stop receiving data from all "
8796 "sources at once, use B<IP_LEAVE_GROUP>."
8797 msgstr ""
8798
8799 #. type: TP
8800 #: build/C/man7/ip.7:362
8801 #, no-wrap
8802 msgid "B<IP_FREEBIND> (since Linux 2.4)"
8803 msgstr ""
8804
8805 #.  Precisely: 2.4.0-test10
8806 #. type: Plain text
8807 #: build/C/man7/ip.7:375
8808 msgid ""
8809 "If enabled, this boolean option allows binding to an IP address that is "
8810 "nonlocal or does not (yet) exist.  This permits listening on a socket, "
8811 "without requiring the underlying network interface or the specified dynamic "
8812 "IP address to be up at the time that the application is trying to bind to "
8813 "it.  This option is the per-socket equivalent of the I<ip_nonlocal_bind> "
8814 "I</proc> interface described below."
8815 msgstr ""
8816
8817 #. type: TP
8818 #: build/C/man7/ip.7:375
8819 #, no-wrap
8820 msgid "B<IP_HDRINCL> (since Linux 2.0)"
8821 msgstr ""
8822
8823 #. type: Plain text
8824 #: build/C/man7/ip.7:391
8825 msgid ""
8826 "If enabled, the user supplies an IP header in front of the user data.  Only "
8827 "valid for B<SOCK_RAW> sockets.  See B<raw>(7)  for more information.  When "
8828 "this flag is enabled the values set by B<IP_OPTIONS>, B<IP_TTL> and "
8829 "B<IP_TOS> are ignored."
8830 msgstr ""
8831
8832 #. type: TP
8833 #: build/C/man7/ip.7:391
8834 #, no-wrap
8835 msgid "B<IP_MSFILTER> (since Linux 2.4.22 / 2.5.68)"
8836 msgstr ""
8837
8838 #. type: Plain text
8839 #: build/C/man7/ip.7:397
8840 msgid ""
8841 "This option provides access to the advanced full-state filtering API.  "
8842 "Argument is an I<ip_msfilter> structure."
8843 msgstr ""
8844
8845 #. type: Plain text
8846 #: build/C/man7/ip.7:406
8847 #, no-wrap
8848 msgid ""
8849 "struct ip_msfilter {\n"
8850 "    struct in_addr imsf_multiaddr; /* IP multicast group\n"
8851 "                                      address */\n"
8852 "    struct in_addr imsf_interface; /* IP address of local\n"
8853 "                                      interface */\n"
8854 "    uint32_t       imsf_fmode;     /* Filter-mode */\n"
8855 msgstr ""
8856
8857 #. type: Plain text
8858 #: build/C/man7/ip.7:412
8859 #, no-wrap
8860 msgid ""
8861 "    uint32_t       imsf_numsrc;    /* Number of sources in\n"
8862 "                                      the following array */\n"
8863 "    struct in_addr imsf_slist[1];  /* Array of source\n"
8864 "                                      addresses */\n"
8865 "};\n"
8866 msgstr ""
8867
8868 #. type: Plain text
8869 #: build/C/man7/ip.7:427
8870 msgid ""
8871 "There are two macros, B<MCAST_INCLUDE> and B<MCAST_EXCLUDE>, which can be "
8872 "used to specify the filtering mode.  Additionally, the "
8873 "B<IP_MSFILTER_SIZE>(n)  macro exists to determine how much memory is needed "
8874 "to store I<ip_msfilter> structure with I<n> sources in the source list."
8875 msgstr ""
8876
8877 #. type: Plain text
8878 #: build/C/man7/ip.7:430
8879 msgid "For the full description of multicast source filtering refer to RFC 3376."
8880 msgstr ""
8881
8882 #. type: TP
8883 #: build/C/man7/ip.7:430
8884 #, no-wrap
8885 msgid "B<IP_MTU> (since Linux 2.2)"
8886 msgstr ""
8887
8888 #.  Precisely: 2.1.124
8889 #. type: Plain text
8890 #: build/C/man7/ip.7:438
8891 msgid ""
8892 "Retrieve the current known path MTU of the current socket.  Valid only when "
8893 "the socket has been connected.  Returns an integer.  Only valid as a "
8894 "B<getsockopt>(2)."
8895 msgstr ""
8896
8897 #. type: TP
8898 #: build/C/man7/ip.7:438
8899 #, no-wrap
8900 msgid "B<IP_MTU_DISCOVER> (since Linux 2.2)"
8901 msgstr ""
8902
8903 #.  Precisely: 2.1.124
8904 #. type: Plain text
8905 #: build/C/man7/ip.7:459
8906 msgid ""
8907 "Set or receive the Path MTU Discovery setting for a socket.  When enabled, "
8908 "Linux will perform Path MTU Discovery as defined in RFC\\ 1191 on "
8909 "B<SOCK_STREAM> sockets.  For non-B<SOCK_STREAM> sockets, B<IP_PMTUDISC_DO> "
8910 "forces the don't-fragment flag to be set on all outgoing packets.  It is the "
8911 "user's responsibility to packetize the data in MTU-sized chunks and to do "
8912 "the retransmits if necessary.  The kernel will reject (with B<EMSGSIZE>)  "
8913 "datagrams that are bigger than the known path MTU.  B<IP_PMTUDISC_WANT> will "
8914 "fragment a datagram if needed according to the path MTU, or will set the "
8915 "don't-fragment flag otherwise."
8916 msgstr ""
8917
8918 #. type: Plain text
8919 #: build/C/man7/ip.7:467
8920 msgid ""
8921 "The system-wide default can be toggled between B<IP_PMTUDISC_WANT> and "
8922 "B<IP_PMTUDISC_DONT> by writing (respectively, zero and nonzero values) to "
8923 "the I</proc/sys/net/ipv4/ip_no_pmtu_disc> file."
8924 msgstr ""
8925
8926 #. type: tbl table
8927 #: build/C/man7/ip.7:471
8928 #, no-wrap
8929 msgid "Path MTU discovery value:Meaning\n"
8930 msgstr ""
8931
8932 #. type: tbl table
8933 #: build/C/man7/ip.7:472
8934 #, no-wrap
8935 msgid "IP_PMTUDISC_WANT:Use per-route settings.\n"
8936 msgstr ""
8937
8938 #. type: tbl table
8939 #: build/C/man7/ip.7:473
8940 #, no-wrap
8941 msgid "IP_PMTUDISC_DONT:Never do Path MTU Discovery.\n"
8942 msgstr ""
8943
8944 #. type: tbl table
8945 #: build/C/man7/ip.7:474
8946 #, no-wrap
8947 msgid "IP_PMTUDISC_DO:Always do Path MTU Discovery.\n"
8948 msgstr ""
8949
8950 #. type: tbl table
8951 #: build/C/man7/ip.7:475
8952 #, no-wrap
8953 msgid "IP_PMTUDISC_PROBE:Set DF but ignore Path MTU.\n"
8954 msgstr ""
8955
8956 #. type: Plain text
8957 #: build/C/man7/ip.7:493
8958 msgid ""
8959 "When PMTU discovery is enabled, the kernel automatically keeps track of the "
8960 "path MTU per destination host.  When it is connected to a specific peer with "
8961 "B<connect>(2), the currently known path MTU can be retrieved conveniently "
8962 "using the B<IP_MTU> socket option (e.g., after an B<EMSGSIZE> error "
8963 "occurred).  The path MTU may change over time.  For connectionless sockets "
8964 "with many destinations, the new MTU for a given destination can also be "
8965 "accessed using the error queue (see B<IP_RECVERR>).  A new error will be "
8966 "queued for every incoming MTU update."
8967 msgstr ""
8968
8969 #. type: Plain text
8970 #: build/C/man7/ip.7:498
8971 msgid ""
8972 "While MTU discovery is in progress, initial packets from datagram sockets "
8973 "may be dropped.  Applications using UDP should be aware of this and not take "
8974 "it into account for their packet retransmit strategy."
8975 msgstr ""
8976
8977 #.  FIXME this is an ugly hack
8978 #. type: Plain text
8979 #: build/C/man7/ip.7:503
8980 msgid ""
8981 "To bootstrap the path MTU discovery process on unconnected sockets, it is "
8982 "possible to start with a big datagram size (up to 64K-headers bytes long) "
8983 "and let it shrink by updates of the path MTU."
8984 msgstr ""
8985
8986 #. type: Plain text
8987 #: build/C/man7/ip.7:512
8988 msgid ""
8989 "To get an initial estimate of the path MTU, connect a datagram socket to the "
8990 "destination address using B<connect>(2)  and retrieve the MTU by calling "
8991 "B<getsockopt>(2)  with the B<IP_MTU> option."
8992 msgstr ""
8993
8994 #. type: Plain text
8995 #: build/C/man7/ip.7:524
8996 msgid ""
8997 "It is possible to implement RFC 4821 MTU probing with B<SOCK_DGRAM> or "
8998 "B<SOCK_RAW> sockets by setting a value of B<IP_PMTUDISC_PROBE> (available "
8999 "since Linux 2.6.22).  This is also particularly useful for diagnostic tools "
9000 "such as B<tracepath>(8)  that wish to deliberately send probe packets larger "
9001 "than the observed Path MTU."
9002 msgstr ""
9003
9004 #. type: TP
9005 #: build/C/man7/ip.7:524
9006 #, no-wrap
9007 msgid "B<IP_MULTICAST_ALL> (since Linux 2.6.31)"
9008 msgstr ""
9009
9010 #. type: Plain text
9011 #: build/C/man7/ip.7:538
9012 msgid ""
9013 "This option can be used to modify the delivery policy of multicast messages "
9014 "to sockets bound to the wildcard B<INADDR_ANY> address.  The argument is a "
9015 "boolean integer (defaults to 1).  If set to 1, the socket will receive "
9016 "messages from all the groups that have been joined globally on the whole "
9017 "system.  Otherwise, it will deliver messages only from the groups that have "
9018 "been explicitly joined (for example via the B<IP_ADD_MEMBERSHIP> option) on "
9019 "this particular socket."
9020 msgstr ""
9021
9022 #. type: TP
9023 #: build/C/man7/ip.7:538
9024 #, no-wrap
9025 msgid "B<IP_MULTICAST_IF> (since Linux 1.2)"
9026 msgstr ""
9027
9028 #.  net: IP_MULTICAST_IF setsockopt now recognizes struct mreq
9029 #.  Commit: 3a084ddb4bf299a6e898a9a07c89f3917f0713f7
9030 #. type: Plain text
9031 #: build/C/man7/ip.7:550
9032 msgid ""
9033 "Set the local device for a multicast socket.  Argument is an I<ip_mreqn> or "
9034 "I<ip_mreq> (since Linux 3.5)  structure similar to B<IP_ADD_MEMBERSHIP>."
9035 msgstr ""
9036
9037 #. type: Plain text
9038 #: build/C/man7/ip.7:554
9039 msgid "When an invalid socket option is passed, B<ENOPROTOOPT> is returned."
9040 msgstr ""
9041
9042 #. type: TP
9043 #: build/C/man7/ip.7:554
9044 #, no-wrap
9045 msgid "B<IP_MULTICAST_LOOP> (since Linux 1.2)"
9046 msgstr ""
9047
9048 #. type: Plain text
9049 #: build/C/man7/ip.7:558
9050 msgid ""
9051 "Set or read a boolean integer argument that determines whether sent "
9052 "multicast packets should be looped back to the local sockets."
9053 msgstr ""
9054
9055 #. type: TP
9056 #: build/C/man7/ip.7:558
9057 #, no-wrap
9058 msgid "B<IP_MULTICAST_TTL> (since Linux 1.2)"
9059 msgstr ""
9060
9061 #. type: Plain text
9062 #: build/C/man7/ip.7:566
9063 msgid ""
9064 "Set or read the time-to-live value of outgoing multicast packets for this "
9065 "socket.  It is very important for multicast packets to set the smallest TTL "
9066 "possible.  The default is 1 which means that multicast packets don't leave "
9067 "the local network unless the user program explicitly requests it.  Argument "
9068 "is an integer."
9069 msgstr ""
9070
9071 #. type: TP
9072 #: build/C/man7/ip.7:566
9073 #, no-wrap
9074 msgid "B<IP_NODEFRAG> (since Linux 2.6.36)"
9075 msgstr ""
9076
9077 #. type: Plain text
9078 #: build/C/man7/ip.7:574
9079 msgid ""
9080 "If enabled (argument is nonzero), the reassembly of outgoing packets is "
9081 "disabled in the netfilter layer.  This option is valid only for B<SOCK_RAW> "
9082 "sockets.  The argument is an integer."
9083 msgstr ""
9084
9085 #. type: TP
9086 #: build/C/man7/ip.7:574
9087 #, no-wrap
9088 msgid "B<IP_OPTIONS> (since Linux 2.0)"
9089 msgstr ""
9090
9091 #.  Precisely: 1.3.30
9092 #. type: Plain text
9093 #: build/C/man7/ip.7:603
9094 msgid ""
9095 "Set or get the IP options to be sent with every packet from this socket.  "
9096 "The arguments are a pointer to a memory buffer containing the options and "
9097 "the option length.  The B<setsockopt>(2)  call sets the IP options "
9098 "associated with a socket.  The maximum option size for IPv4 is 40 bytes.  "
9099 "See RFC\\ 791 for the allowed options.  When the initial connection request "
9100 "packet for a B<SOCK_STREAM> socket contains IP options, the IP options will "
9101 "be set automatically to the options from the initial packet with routing "
9102 "headers reversed.  Incoming packets are not allowed to change options after "
9103 "the connection is established.  The processing of all incoming source "
9104 "routing options is disabled by default and can be enabled by using the "
9105 "I<accept_source_route> I</proc> interface.  Other options like timestamps "
9106 "are still handled.  For datagram sockets, IP options can be only set by the "
9107 "local user.  Calling B<getsockopt>(2)  with B<IP_OPTIONS> puts the current "
9108 "IP options used for sending into the supplied buffer."
9109 msgstr ""
9110
9111 #. type: TP
9112 #: build/C/man7/ip.7:603
9113 #, no-wrap
9114 msgid "B<IP_PKTINFO> (since Linux 2.2)"
9115 msgstr ""
9116
9117 #.  Precisely: 2.1.68
9118 #. type: Plain text
9119 #: build/C/man7/ip.7:620
9120 msgid ""
9121 "Pass an B<IP_PKTINFO> ancillary message that contains a I<pktinfo> structure "
9122 "that supplies some information about the incoming packet.  This only works "
9123 "for datagram oriented sockets.  The argument is a flag that tells the socket "
9124 "whether the B<IP_PKTINFO> message should be passed or not.  The message "
9125 "itself can only be sent/retrieved as control message with a packet using "
9126 "B<recvmsg>(2)  or B<sendmsg>(2)."
9127 msgstr ""
9128
9129 #. type: Plain text
9130 #: build/C/man7/ip.7:629
9131 #, no-wrap
9132 msgid ""
9133 "struct in_pktinfo {\n"
9134 "    unsigned int   ipi_ifindex;  /* Interface index */\n"
9135 "    struct in_addr ipi_spec_dst; /* Local address */\n"
9136 "    struct in_addr ipi_addr;     /* Header Destination\n"
9137 "                                    address */\n"
9138 "};\n"
9139 msgstr ""
9140
9141 #.  FIXME elaborate on that.
9142 #.  This field is grossly misnamed
9143 #. type: Plain text
9144 #: build/C/man7/ip.7:654
9145 msgid ""
9146 "I<ipi_ifindex> is the unique index of the interface the packet was received "
9147 "on.  I<ipi_spec_dst> is the local address of the packet and I<ipi_addr> is "
9148 "the destination address in the packet header.  If B<IP_PKTINFO> is passed to "
9149 "B<sendmsg>(2)  and I<ipi_spec_dst> is not zero, then it is used as the local "
9150 "source address for the routing table lookup and for setting up IP source "
9151 "route options.  When I<ipi_ifindex> is not zero, the primary local address "
9152 "of the interface specified by the index overwrites I<ipi_spec_dst> for the "
9153 "routing table lookup."
9154 msgstr ""
9155
9156 #. type: TP
9157 #: build/C/man7/ip.7:654
9158 #, no-wrap
9159 msgid "B<IP_RECVERR> (since Linux 2.2)"
9160 msgstr ""
9161
9162 #.  Precisely: 2.1.15
9163 #.  or SOL_IP on Linux
9164 #. type: Plain text
9165 #: build/C/man7/ip.7:676
9166 msgid ""
9167 "Enable extended reliable error message passing.  When enabled on a datagram "
9168 "socket, all generated errors will be queued in a per-socket error queue.  "
9169 "When the user receives an error from a socket operation, the errors can be "
9170 "received by calling B<recvmsg>(2)  with the B<MSG_ERRQUEUE> flag set.  The "
9171 "I<sock_extended_err> structure describing the error will be passed in an "
9172 "ancillary message with the type B<IP_RECVERR> and the level B<IPPROTO_IP>.  "
9173 "This is useful for reliable error handling on unconnected sockets.  The "
9174 "received data portion of the error queue contains the error packet."
9175 msgstr ""
9176
9177 #. type: Plain text
9178 #: build/C/man7/ip.7:682
9179 msgid "The B<IP_RECVERR> control message contains a I<sock_extended_err> structure:"
9180 msgstr ""
9181
9182 #. type: Plain text
9183 #: build/C/man7/ip.7:690
9184 #, no-wrap
9185 msgid ""
9186 "#define SO_EE_ORIGIN_NONE    0\n"
9187 "#define SO_EE_ORIGIN_LOCAL   1\n"
9188 "#define SO_EE_ORIGIN_ICMP    2\n"
9189 "#define SO_EE_ORIGIN_ICMP6   3\n"
9190 msgstr ""
9191
9192 #. type: Plain text
9193 #: build/C/man7/ip.7:701
9194 #, no-wrap
9195 msgid ""
9196 "struct sock_extended_err {\n"
9197 "    uint32_t ee_errno;   /* error number */\n"
9198 "    uint8_t  ee_origin;  /* where the error originated */\n"
9199 "    uint8_t  ee_type;    /* type */\n"
9200 "    uint8_t  ee_code;    /* code */\n"
9201 "    uint8_t  ee_pad;\n"
9202 "    uint32_t ee_info;    /* additional information */\n"
9203 "    uint32_t ee_data;    /* other data */\n"
9204 "    /* More data may follow */\n"
9205 "};\n"
9206 msgstr ""
9207
9208 #. type: Plain text
9209 #: build/C/man7/ip.7:703
9210 #, no-wrap
9211 msgid "struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *);\n"
9212 msgstr ""
9213
9214 #. type: Plain text
9215 #: build/C/man7/ip.7:726
9216 msgid ""
9217 "I<ee_errno> contains the I<errno> number of the queued error.  I<ee_origin> "
9218 "is the origin code of where the error originated.  The other fields are "
9219 "protocol-specific.  The macro B<SO_EE_OFFENDER> returns a pointer to the "
9220 "address of the network object where the error originated from given a "
9221 "pointer to the ancillary message.  If this address is not known, the "
9222 "I<sa_family> member of the I<sockaddr> contains B<AF_UNSPEC> and the other "
9223 "fields of the I<sockaddr> are undefined."
9224 msgstr ""
9225
9226 #.  FIXME . Is it a good idea to document that? It is a dubious feature.
9227 #.  On
9228 #.  .B SOCK_STREAM
9229 #.  sockets,
9230 #.  .B IP_RECVERR
9231 #.  has slightly different semantics. Instead of
9232 #.  saving the errors for the next timeout, it passes all incoming
9233 #.  errors immediately to the user.
9234 #.  This might be useful for very short-lived TCP connections which
9235 #.  need fast error handling. Use this option with care:
9236 #.  it makes TCP unreliable
9237 #.  by not allowing it to recover properly from routing
9238 #.  shifts and other normal
9239 #.  conditions and breaks the protocol specification.
9240 #. type: Plain text
9241 #: build/C/man7/ip.7:785
9242 msgid ""
9243 "IP uses the I<sock_extended_err> structure as follows: I<ee_origin> is set "
9244 "to B<SO_EE_ORIGIN_ICMP> for errors received as an ICMP packet, or "
9245 "B<SO_EE_ORIGIN_LOCAL> for locally generated errors.  Unknown values should "
9246 "be ignored.  I<ee_type> and I<ee_code> are set from the type and code fields "
9247 "of the ICMP header.  I<ee_info> contains the discovered MTU for B<EMSGSIZE> "
9248 "errors.  The message also contains the I<sockaddr_in of the node> caused the "
9249 "error, which can be accessed with the B<SO_EE_OFFENDER> macro.  The "
9250 "I<sin_family> field of the B<SO_EE_OFFENDER> address is B<AF_UNSPEC> when "
9251 "the source was unknown.  When the error originated from the network, all IP "
9252 "options (B<IP_OPTIONS>, B<IP_TTL>, etc.) enabled on the socket and contained "
9253 "in the error packet are passed as control messages.  The payload of the "
9254 "packet causing the error is returned as normal payload.  Note that TCP has "
9255 "no error queue; B<MSG_ERRQUEUE> is not permitted on B<SOCK_STREAM> sockets.  "
9256 "B<IP_RECVERR> is valid for TCP, but all errors are returned by socket "
9257 "function return or B<SO_ERROR> only."
9258 msgstr ""
9259
9260 #. type: Plain text
9261 #: build/C/man7/ip.7:790
9262 msgid ""
9263 "For raw sockets, B<IP_RECVERR> enables passing of all received ICMP errors "
9264 "to the application, otherwise errors are only reported on connected sockets"
9265 msgstr ""
9266
9267 #. type: Plain text
9268 #: build/C/man7/ip.7:794
9269 msgid ""
9270 "It sets or retrieves an integer boolean flag.  B<IP_RECVERR> defaults to "
9271 "off."
9272 msgstr ""
9273
9274 #. type: TP
9275 #: build/C/man7/ip.7:794
9276 #, no-wrap
9277 msgid "B<IP_RECVOPTS> (since Linux 2.2)"
9278 msgstr ""
9279
9280 #.  Precisely: 2.1.15
9281 #. type: Plain text
9282 #: build/C/man7/ip.7:805
9283 msgid ""
9284 "Pass all incoming IP options to the user in a B<IP_OPTIONS> control "
9285 "message.  The routing header and other options are already filled in for the "
9286 "local host.  Not supported for B<SOCK_STREAM> sockets."
9287 msgstr ""
9288
9289 #. type: TP
9290 #: build/C/man7/ip.7:805
9291 #, no-wrap
9292 msgid "B<IP_RECVORIGDSTADDR> (since Linux 2.6.29)"
9293 msgstr ""
9294
9295 #.  commit e8b2dfe9b4501ed0047459b2756ba26e5a940a69
9296 #. type: Plain text
9297 #: build/C/man7/ip.7:816
9298 msgid ""
9299 "This boolean option enables the B<IP_ORIGDSTADDR> ancillary message in "
9300 "B<recvmsg>(2), in which the kernel returns the original destination address "
9301 "of the datagram being received.  The ancillary message contains a I<struct "
9302 "sockaddr_in>."
9303 msgstr ""
9304
9305 #. type: TP
9306 #: build/C/man7/ip.7:816
9307 #, no-wrap
9308 msgid "B<IP_RECVTOS> (since Linux 2.2)"
9309 msgstr ""
9310
9311 #.  Precisely: 2.1.68
9312 #. type: Plain text
9313 #: build/C/man7/ip.7:825
9314 msgid ""
9315 "If enabled the B<IP_TOS> ancillary message is passed with incoming packets.  "
9316 "It contains a byte which specifies the Type of Service/Precedence field of "
9317 "the packet header.  Expects a boolean integer flag."
9318 msgstr ""
9319
9320 #. type: TP
9321 #: build/C/man7/ip.7:825
9322 #, no-wrap
9323 msgid "B<IP_RECVTTL> (since Linux 2.2)"
9324 msgstr ""
9325
9326 #.  Precisely: 2.1.68
9327 #. type: Plain text
9328 #: build/C/man7/ip.7:835
9329 msgid ""
9330 "When this flag is set, pass a B<IP_TTL> control message with the time to "
9331 "live field of the received packet as a byte.  Not supported for "
9332 "B<SOCK_STREAM> sockets."
9333 msgstr ""
9334
9335 #. type: TP
9336 #: build/C/man7/ip.7:835
9337 #, no-wrap
9338 msgid "B<IP_RETOPTS> (since Linux 2.2)"
9339 msgstr ""
9340
9341 #.  Precisely: 2.1.15
9342 #. type: Plain text
9343 #: build/C/man7/ip.7:842
9344 msgid ""
9345 "Identical to B<IP_RECVOPTS>, but returns raw unprocessed options with "
9346 "timestamp and route record options not filled in for this hop."
9347 msgstr ""
9348
9349 #. type: TP
9350 #: build/C/man7/ip.7:842
9351 #, no-wrap
9352 msgid "B<IP_ROUTER_ALERT> (since Linux 2.2)"
9353 msgstr ""
9354
9355 #.  Precisely: 2.1.68
9356 #. type: Plain text
9357 #: build/C/man7/ip.7:854
9358 msgid ""
9359 "Pass all to-be forwarded packets with the IP Router Alert option set to this "
9360 "socket.  Only valid for raw sockets.  This is useful, for instance, for "
9361 "user-space RSVP daemons.  The tapped packets are not forwarded by the "
9362 "kernel; it is the user's responsibility to send them out again.  Socket "
9363 "binding is ignored, such packets are only filtered by protocol.  Expects an "
9364 "integer flag."
9365 msgstr ""
9366
9367 #. type: TP
9368 #: build/C/man7/ip.7:854
9369 #, no-wrap
9370 msgid "B<IP_TOS> (since Linux 1.0)"
9371 msgstr ""
9372
9373 #.  FIXME elaborate on this
9374 #.  Needs CAP_NET_ADMIN
9375 #.  Boolean
9376 #.  Since Linux 2.6.27
9377 #.  Author: KOVACS Krisztian <hidden@sch.bme.hu>
9378 #.  http://lwn.net/Articles/252545/
9379 #. type: Plain text
9380 #: build/C/man7/ip.7:888
9381 msgid ""
9382 "Set or receive the Type-Of-Service (TOS) field that is sent with every IP "
9383 "packet originating from this socket.  It is used to prioritize packets on "
9384 "the network.  TOS is a byte.  There are some standard TOS flags defined: "
9385 "B<IPTOS_LOWDELAY> to minimize delays for interactive traffic, "
9386 "B<IPTOS_THROUGHPUT> to optimize throughput, B<IPTOS_RELIABILITY> to optimize "
9387 "for reliability, B<IPTOS_MINCOST> should be used for \"filler data\" where "
9388 "slow transmission doesn't matter.  At most one of these TOS values can be "
9389 "specified.  Other bits are invalid and shall be cleared.  Linux sends "
9390 "B<IPTOS_LOWDELAY> datagrams first by default, but the exact behavior depends "
9391 "on the configured queueing discipline.  Some high priority levels may "
9392 "require superuser privileges (the B<CAP_NET_ADMIN> capability).  The "
9393 "priority can also be set in a protocol independent way by the "
9394 "(B<SOL_SOCKET>, B<SO_PRIORITY>)  socket option (see B<socket>(7))."
9395 msgstr ""
9396
9397 #. type: TP
9398 #: build/C/man7/ip.7:888
9399 #, no-wrap
9400 msgid "B<IP_TRANSPARENT> (since Linux 2.6.24)"
9401 msgstr ""
9402
9403 #.  commit f5715aea4564f233767ea1d944b2637a5fd7cd2e
9404 #.      This patch introduces the IP_TRANSPARENT socket option: enabling that
9405 #.      will make the IPv4 routing omit the non-local source address check on
9406 #.      output. Setting IP_TRANSPARENT requires NET_ADMIN capability.
9407 #.  http://lwn.net/Articles/252545/
9408 #. type: Plain text
9409 #: build/C/man7/ip.7:905
9410 msgid ""
9411 "Setting this boolean option enables transparent proxying on this socket.  "
9412 "This socket option allows the calling application to bind to a nonlocal IP "
9413 "address and operate both as a client and a server with the foreign address "
9414 "as the local endpoint.  NOTE: this requires that routing be set up in a way "
9415 "that packets going to the foreign address are routed through the TProxy "
9416 "box.  Enabling this socket option requires superuser privileges (the "
9417 "B<CAP_NET_ADMIN> capability)."
9418 msgstr ""
9419
9420 #. type: Plain text
9421 #: build/C/man7/ip.7:908
9422 msgid ""
9423 "TProxy redirection with the iptables TPROXY target also requires that this "
9424 "option be set on the redirected socket."
9425 msgstr ""
9426
9427 #. type: TP
9428 #: build/C/man7/ip.7:908
9429 #, no-wrap
9430 msgid "B<IP_TTL> (since Linux 1.0)"
9431 msgstr ""
9432
9433 #. type: Plain text
9434 #: build/C/man7/ip.7:912
9435 msgid ""
9436 "Set or retrieve the current time-to-live field that is used in every packet "
9437 "sent from this socket."
9438 msgstr ""
9439
9440 #. type: TP
9441 #: build/C/man7/ip.7:912
9442 #, no-wrap
9443 msgid "B<IP_UNBLOCK_SOURCE> (since Linux 2.4.22 / 2.5.68)"
9444 msgstr ""
9445
9446 #. type: Plain text
9447 #: build/C/man7/ip.7:918
9448 msgid ""
9449 "Unblock previously blocked multicast source.  Returns B<EADDRNOTAVAIL> when "
9450 "given source is not being blocked."
9451 msgstr ""
9452
9453 #.  FIXME As at 2.6.12, 14 Jun 2005, the following are undocumented:
9454 #.      ip_queue_maxlen
9455 #.      ip_conntrack_max
9456 #. type: Plain text
9457 #: build/C/man7/ip.7:939
9458 msgid ""
9459 "The IP protocol supports a set of I</proc> interfaces to configure some "
9460 "global parameters.  The parameters can be accessed by reading or writing "
9461 "files in the directory I</proc/sys/net/ipv4/>.  Interfaces described as "
9462 "I<Boolean> take an integer value, with a nonzero value (\"true\") meaning "
9463 "that the corresponding option is enabled, and a zero value (\"false\")  "
9464 "meaning that the option is disabled."
9465 msgstr ""
9466
9467 #. type: TP
9468 #: build/C/man7/ip.7:939
9469 #, no-wrap
9470 msgid "I<ip_always_defrag> (Boolean; since Linux 2.2.13)"
9471 msgstr ""
9472
9473 #. type: Plain text
9474 #: build/C/man7/ip.7:945
9475 msgid ""
9476 "[New with kernel 2.2.13; in earlier kernel versions this feature was "
9477 "controlled at compile time by the B<CONFIG_IP_ALWAYS_DEFRAG> option; this "
9478 "option is not present in 2.4.x and later]"
9479 msgstr ""
9480
9481 #. type: Plain text
9482 #: build/C/man7/ip.7:952
9483 msgid ""
9484 "When this boolean flag is enabled (not equal 0), incoming fragments (parts "
9485 "of IP packets that arose when some host between origin and destination "
9486 "decided that the packets were too large and cut them into pieces) will be "
9487 "reassembled (defragmented) before being processed, even if they are about to "
9488 "be forwarded."
9489 msgstr ""
9490
9491 #. type: Plain text
9492 #: build/C/man7/ip.7:959
9493 msgid ""
9494 "Only enable if running either a firewall that is the sole link to your "
9495 "network or a transparent proxy; never ever use it for a normal router or "
9496 "host.  Otherwise fragmented communication can be disturbed if the fragments "
9497 "travel over different links.  Defragmentation also has a large memory and "
9498 "CPU time cost."
9499 msgstr ""
9500
9501 #. type: Plain text
9502 #: build/C/man7/ip.7:963
9503 msgid ""
9504 "This is automagically turned on when masquerading or transparent proxying "
9505 "are configured."
9506 msgstr ""
9507
9508 #. type: TP
9509 #: build/C/man7/ip.7:963
9510 #, no-wrap
9511 msgid "I<ip_autoconfig> (since Linux 2.2 to 2.6.17)"
9512 msgstr ""
9513
9514 #.  Precisely: since 2.1.68
9515 #.  FIXME document ip_autoconfig
9516 #. type: Plain text
9517 #: build/C/man7/ip.7:969
9518 msgid "Not documented."
9519 msgstr ""
9520
9521 #. type: TP
9522 #: build/C/man7/ip.7:969
9523 #, no-wrap
9524 msgid "I<ip_default_ttl> (integer; default: 64; since Linux 2.2)"
9525 msgstr ""
9526
9527 #.  Precisely: 2.1.15
9528 #. type: Plain text
9529 #: build/C/man7/ip.7:977
9530 msgid ""
9531 "Set the default time-to-live value of outgoing packets.  This can be changed "
9532 "per socket with the B<IP_TTL> option."
9533 msgstr ""
9534
9535 #. type: TP
9536 #: build/C/man7/ip.7:977
9537 #, no-wrap
9538 msgid "I<ip_dynaddr> (Boolean; default: disabled; since Linux 2.0.31)"
9539 msgstr ""
9540
9541 #. type: Plain text
9542 #: build/C/man7/ip.7:984
9543 msgid ""
9544 "Enable dynamic socket address and masquerading entry rewriting on interface "
9545 "address change.  This is useful for dialup interface with changing IP "
9546 "addresses.  0 means no rewriting, 1 turns it on and 2 enables verbose mode."
9547 msgstr ""
9548
9549 #. type: TP
9550 #: build/C/man7/ip.7:984
9551 #, no-wrap
9552 msgid "I<ip_forward> (Boolean; default: disabled; since Linux 1.2)"
9553 msgstr ""
9554
9555 #. type: Plain text
9556 #: build/C/man7/ip.7:989
9557 msgid ""
9558 "Enable IP forwarding with a boolean flag.  IP forwarding can be also set on "
9559 "a per-interface basis."
9560 msgstr ""
9561
9562 #. type: TP
9563 #: build/C/man7/ip.7:989
9564 #, no-wrap
9565 msgid "I<ip_local_port_range> (since Linux 2.2)"
9566 msgstr ""
9567
9568 #.  Precisely: since 2.1.68
9569 #. type: Plain text
9570 #: build/C/man7/ip.7:1003
9571 msgid ""
9572 "Contains two integers that define the default local port range allocated to "
9573 "sockets.  Allocation starts with the first number and ends with the second "
9574 "number.  Note that these should not conflict with the ports used by "
9575 "masquerading (although the case is handled).  Also arbitrary choices may "
9576 "cause problems with some firewall packet filters that make assumptions about "
9577 "the local ports in use.  First number should be at least greater than 1024, "
9578 "or better, greater than 4096, to avoid clashes with well known ports and to "
9579 "minimize firewall problems."
9580 msgstr ""
9581
9582 #. type: TP
9583 #: build/C/man7/ip.7:1003
9584 #, no-wrap
9585 msgid "I<ip_no_pmtu_disc> (Boolean; default: disabled; since Linux 2.2)"
9586 msgstr ""
9587
9588 #.  Precisely: 2.1.15
9589 #
9590 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
9591 #. type: Plain text
9592 #: build/C/man7/ip.7:1015
9593 msgid ""
9594 "If enabled, don't do Path MTU Discovery for TCP sockets by default.  Path "
9595 "MTU discovery may fail if misconfigured firewalls (that drop all ICMP "
9596 "packets) or misconfigured interfaces (e.g., a point-to-point link where the "
9597 "both ends don't agree on the MTU) are on the path.  It is better to fix the "
9598 "broken routers on the path than to turn off Path MTU Discovery globally, "
9599 "because not doing it incurs a high cost to the network."
9600 msgstr ""
9601
9602 #. type: TP
9603 #: build/C/man7/ip.7:1015
9604 #, no-wrap
9605 msgid "I<ip_nonlocal_bind> (Boolean; default: disabled; since Linux 2.4)"
9606 msgstr ""
9607
9608 #.  Precisely: patch-2.4.0-test10
9609 #
9610 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
9611 #. type: Plain text
9612 #: build/C/man7/ip.7:1024
9613 msgid ""
9614 "If set, allows processes to B<bind>(2)  to nonlocal IP addresses, which can "
9615 "be quite useful, but may break some applications."
9616 msgstr ""
9617
9618 #. type: TP
9619 #: build/C/man7/ip.7:1024
9620 #, no-wrap
9621 msgid "I<ip6frag_time> (integer; default: 30)"
9622 msgstr ""
9623
9624 #
9625 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
9626 #. type: Plain text
9627 #: build/C/man7/ip.7:1029
9628 msgid "Time in seconds to keep an IPv6 fragment in memory."
9629 msgstr ""
9630
9631 #. type: TP
9632 #: build/C/man7/ip.7:1029
9633 #, no-wrap
9634 msgid "I<ip6frag_secret_interval> (integer; default: 600)"
9635 msgstr ""
9636
9637 #. type: Plain text
9638 #: build/C/man7/ip.7:1033
9639 msgid ""
9640 "Regeneration interval (in seconds) of the hash secret (or lifetime for the "
9641 "hash secret) for IPv6 fragments."
9642 msgstr ""
9643
9644 #. type: TP
9645 #: build/C/man7/ip.7:1033
9646 #, no-wrap
9647 msgid "I<ipfrag_high_thresh> (integer), I<ipfrag_low_thresh> (integer)"
9648 msgstr ""
9649
9650 #. type: Plain text
9651 #: build/C/man7/ip.7:1040
9652 msgid ""
9653 "If the amount of queued IP fragments reaches I<ipfrag_high_thresh>, the "
9654 "queue is pruned down to I<ipfrag_low_thresh>.  Contains an integer with the "
9655 "number of bytes."
9656 msgstr ""
9657
9658 #. type: TP
9659 #: build/C/man7/ip.7:1040
9660 #, no-wrap
9661 msgid "I<neigh/*>"
9662 msgstr ""
9663
9664 #.  FIXME Document the conf/*/* interfaces
9665 #.  FIXME Document the route/* interfaces
9666 #.  FIXME document them all
9667 #. type: Plain text
9668 #: build/C/man7/ip.7:1047
9669 msgid "See B<arp>(7)."
9670 msgstr ""
9671
9672 #.  2006-04-02, mtk
9673 #.  commented out the following because ipchains is obsolete
9674 #.  .PP
9675 #.  The ioctls to configure firewalling are documented in
9676 #.  .BR ipfw (4)
9677 #.  from the
9678 #.  .B ipchains
9679 #.  package.
9680 #. type: Plain text
9681 #: build/C/man7/ip.7:1060
9682 msgid "All ioctls described in B<socket>(7)  apply to B<ip>."
9683 msgstr ""
9684
9685 #.  FIXME Add a discussion of multicasting
9686 #. type: Plain text
9687 #: build/C/man7/ip.7:1064
9688 msgid ""
9689 "Ioctls to configure generic device parameters are described in "
9690 "B<netdevice>(7)."
9691 msgstr ""
9692
9693 #. type: Plain text
9694 #: build/C/man7/ip.7:1084
9695 msgid ""
9696 "The user tried to execute an operation without the necessary permissions.  "
9697 "These include: sending a packet to a broadcast address without having the "
9698 "B<SO_BROADCAST> flag set; sending a packet via a I<prohibit> route; "
9699 "modifying firewall settings without superuser privileges (the "
9700 "B<CAP_NET_ADMIN> capability); binding to a privileged port without superuser "
9701 "privileges (the B<CAP_NET_BIND_SERVICE> capability)."
9702 msgstr ""
9703
9704 #. type: Plain text
9705 #: build/C/man7/ip.7:1097
9706 msgid "An connection operation on a nonblocking socket is already in progress."
9707 msgstr ""
9708
9709 #. type: Plain text
9710 #: build/C/man7/ip.7:1106
9711 msgid ""
9712 "No valid routing table entry matches the destination address.  This error "
9713 "can be caused by a ICMP message from a remote router or for the local "
9714 "routing table."
9715 msgstr ""
9716
9717 #. type: Plain text
9718 #: build/C/man7/ip.7:1112
9719 msgid ""
9720 "Invalid argument passed.  For send operations this can be caused by sending "
9721 "to a I<blackhole> route."
9722 msgstr ""
9723
9724 #. type: Plain text
9725 #: build/C/man7/ip.7:1119
9726 msgid "Datagram is bigger than an MTU on the path and it cannot be fragmented."
9727 msgstr ""
9728
9729 #. type: TP
9730 #: build/C/man7/ip.7:1119
9731 #, no-wrap
9732 msgid "B<ENOBUFS>, B<ENOMEM>"
9733 msgstr ""
9734
9735 #. type: Plain text
9736 #: build/C/man7/ip.7:1124
9737 msgid ""
9738 "Not enough free memory.  This often means that the memory allocation is "
9739 "limited by the socket buffer limits, not by the system memory, but this is "
9740 "not 100% consistent."
9741 msgstr ""
9742
9743 #. type: Plain text
9744 #: build/C/man7/ip.7:1142
9745 msgid ""
9746 "User doesn't have permission to set high priority, change configuration, or "
9747 "send signals to the requested process or group."
9748 msgstr ""
9749
9750 #. type: Plain text
9751 #: build/C/man7/ip.7:1148
9752 msgid "The socket is not configured or an unknown socket type was requested."
9753 msgstr ""
9754
9755 #. type: Plain text
9756 #: build/C/man7/ip.7:1155
9757 msgid ""
9758 "Other errors may be generated by the overlaying protocols; see B<tcp>(7), "
9759 "B<raw>(7), B<udp>(7)  and B<socket>(7)."
9760 msgstr ""
9761
9762 #.  IP_PASSSEC is Linux-specific
9763 #.  IP_XFRM_POLICY is Linux-specific
9764 #.  IP_IPSEC_POLICY is a nonstandard extension, also present on some BSDs
9765 #. type: Plain text
9766 #: build/C/man7/ip.7:1170
9767 msgid ""
9768 "B<IP_FREEBIND>, B<IP_MSFILTER>, B<IP_MTU>, B<IP_MTU_DISCOVER>, "
9769 "B<IP_RECVORIGDSTADDR>, B<IP_PKTINFO>, B<IP_RECVERR>, B<IP_ROUTER_ALERT>, and "
9770 "B<IP_TRANSPARENT> are Linux-specific."
9771 msgstr ""
9772
9773 #. type: Plain text
9774 #: build/C/man7/ip.7:1179
9775 msgid ""
9776 "Be very careful with the B<SO_BROADCAST> option - it is not privileged in "
9777 "Linux.  It is easy to overload the network with careless broadcasts.  For "
9778 "new application protocols it is better to use a multicast group instead of "
9779 "broadcasting.  Broadcasting is discouraged."
9780 msgstr ""
9781
9782 #. type: Plain text
9783 #: build/C/man7/ip.7:1189
9784 msgid ""
9785 "Some other BSD sockets implementations provide B<IP_RCVDSTADDR> and "
9786 "B<IP_RECVIF> socket options to get the destination address and the interface "
9787 "of received datagrams.  Linux has the more general B<IP_PKTINFO> for the "
9788 "same task."
9789 msgstr ""
9790
9791 #. type: Plain text
9792 #: build/C/man7/ip.7:1198
9793 msgid ""
9794 "Some BSD sockets implementations also provide an B<IP_RECVTTL> option, but "
9795 "an ancillary message with type B<IP_RECVTTL> is passed with the incoming "
9796 "packet.  This is different from the B<IP_TTL> option used in Linux."
9797 msgstr ""
9798
9799 #. type: Plain text
9800 #: build/C/man7/ip.7:1204
9801 msgid ""
9802 "Using B<SOL_IP> socket options level isn't portable, BSD-based stacks use "
9803 "B<IPPROTO_IP> level."
9804 msgstr ""
9805
9806 #. type: Plain text
9807 #: build/C/man7/ip.7:1217
9808 msgid ""
9809 "For compatibility with Linux 2.0, the obsolete B<socket(AF_INET, "
9810 "SOCK_PACKET, >I<protocol>B<)> syntax is still supported to open a "
9811 "B<packet>(7)  socket.  This is deprecated and should be replaced by "
9812 "B<socket(AF_PACKET, SOCK_RAW, >I<protocol>B<)> instead.  The main difference "
9813 "is the new I<sockaddr_ll> address structure for generic link layer "
9814 "information instead of the old B<sockaddr_pkt>."
9815 msgstr ""
9816
9817 #. type: Plain text
9818 #: build/C/man7/ip.7:1222
9819 msgid ""
9820 "The ioctls to configure IP-specific interface options and ARP tables are not "
9821 "described."
9822 msgstr ""
9823
9824 #. type: Plain text
9825 #: build/C/man7/ip.7:1226
9826 msgid ""
9827 "Some versions of glibc forget to declare I<in_pktinfo>.  Workaround "
9828 "currently is to copy it into your program from this man page."
9829 msgstr ""
9830
9831 #.  .SH AUTHORS
9832 #.  This man page was written by Andi Kleen.
9833 #. type: Plain text
9834 #: build/C/man7/ip.7:1236
9835 msgid ""
9836 "Receiving the original destination address with B<MSG_ERRQUEUE> in "
9837 "I<msg_name> by B<recvmsg>(2)  does not work in some 2.2 kernels."
9838 msgstr ""
9839
9840 #. type: Plain text
9841 #: build/C/man7/ip.7:1249
9842 msgid ""
9843 "B<recvmsg>(2), B<sendmsg>(2), B<byteorder>(3), B<ipfw>(4), "
9844 "B<capabilities>(7), B<icmp>(7), B<ipv6>(7), B<netlink>(7), B<raw>(7), "
9845 "B<socket>(7), B<tcp>(7), B<udp>(7)"
9846 msgstr ""
9847
9848 #.  FIXME autobind INADDR REUSEADDR
9849 #. type: Plain text
9850 #: build/C/man7/ip.7:1254
9851 msgid ""
9852 "RFC\\ 791 for the original IP specification.  RFC\\ 1122 for the IPv4 host "
9853 "requirements.  RFC\\ 1812 for the IPv4 router requirements."
9854 msgstr ""
9855
9856 #. type: TH
9857 #: build/C/man7/ipv6.7:86
9858 #, no-wrap
9859 msgid "IPV6"
9860 msgstr ""
9861
9862 #. type: TH
9863 #: build/C/man7/ipv6.7:86
9864 #, no-wrap
9865 msgid "2012-12-16"
9866 msgstr ""
9867
9868 #. type: Plain text
9869 #: build/C/man7/ipv6.7:89
9870 msgid "ipv6 - Linux IPv6 protocol implementation"
9871 msgstr ""
9872
9873 #. type: Plain text
9874 #: build/C/man7/ipv6.7:95
9875 msgid "I<tcp6_socket>B< = socket(AF_INET6, SOCK_STREAM, 0);>"
9876 msgstr ""
9877
9878 #. type: Plain text
9879 #: build/C/man7/ipv6.7:97
9880 msgid "I<raw6_socket>B< = socket(AF_INET6, SOCK_RAW, >I<protocol>B<);>"
9881 msgstr ""
9882
9883 #. type: Plain text
9884 #: build/C/man7/ipv6.7:99
9885 msgid "I<udp6_socket>B< = socket(AF_INET6, SOCK_DGRAM, >I<protocol>B<);>"
9886 msgstr ""
9887
9888 #. type: Plain text
9889 #: build/C/man7/ipv6.7:106
9890 msgid ""
9891 "Linux 2.2 optionally implements the Internet Protocol, version 6.  This man "
9892 "page contains a description of the IPv6 basic API as implemented by the "
9893 "Linux kernel and glibc 2.1.  The interface is based on the BSD sockets "
9894 "interface; see B<socket>(7)."
9895 msgstr ""
9896
9897 #. type: Plain text
9898 #: build/C/man7/ipv6.7:111
9899 msgid ""
9900 "The IPv6 API aims to be mostly compatible with the IPv4 API (see B<ip>(7)).  "
9901 "Only differences are described in this man page."
9902 msgstr ""
9903
9904 #. type: Plain text
9905 #: build/C/man7/ipv6.7:123
9906 msgid ""
9907 "To bind an B<AF_INET6> socket to any process, the local address should be "
9908 "copied from the I<in6addr_any> variable which has I<in6_addr> type.  In "
9909 "static initializations, B<IN6ADDR_ANY_INIT> may also be used, which expands "
9910 "to a constant expression.  Both of them are in network byte order."
9911 msgstr ""
9912
9913 #. type: Plain text
9914 #: build/C/man7/ipv6.7:130
9915 msgid ""
9916 "The IPv6 loopback address (::1) is available in the global "
9917 "I<in6addr_loopback> variable.  For initializations, B<IN6ADDR_LOOPBACK_INIT> "
9918 "should be used."
9919 msgstr ""
9920
9921 #. type: Plain text
9922 #: build/C/man7/ipv6.7:137
9923 msgid ""
9924 "IPv4 connections can be handled with the v6 API by using the v4-mapped-on-v6 "
9925 "address type; thus a program only needs to support this API type to support "
9926 "both protocols.  This is handled transparently by the address handling "
9927 "functions in the C library."
9928 msgstr ""
9929
9930 #. type: Plain text
9931 #: build/C/man7/ipv6.7:142
9932 msgid ""
9933 "IPv4 and IPv6 share the local port space.  When you get an IPv4 connection "
9934 "or packet to a IPv6 socket, its source address will be mapped to v6 and it "
9935 "will be mapped to v6."
9936 msgstr ""
9937
9938 #. type: Plain text
9939 #: build/C/man7/ipv6.7:152
9940 #, no-wrap
9941 msgid ""
9942 "struct sockaddr_in6 {\n"
9943 "    sa_family_t     sin6_family;   /* AF_INET6 */\n"
9944 "    in_port_t       sin6_port;     /* port number */\n"
9945 "    uint32_t        sin6_flowinfo; /* IPv6 flow information */\n"
9946 "    struct in6_addr sin6_addr;     /* IPv6 address */\n"
9947 "    uint32_t        sin6_scope_id; /* Scope ID (new in 2.4) */\n"
9948 "};\n"
9949 msgstr ""
9950
9951 #. type: Plain text
9952 #: build/C/man7/ipv6.7:156
9953 #, no-wrap
9954 msgid ""
9955 "struct in6_addr {\n"
9956 "    unsigned char   s6_addr[16];   /* IPv6 address */\n"
9957 "};\n"
9958 msgstr ""
9959
9960 #. type: Plain text
9961 #: build/C/man7/ipv6.7:178
9962 msgid ""
9963 "I<sin6_family> is always set to B<AF_INET6>; I<sin6_port> is the protocol "
9964 "port (see I<sin_port> in B<ip>(7)); I<sin6_flowinfo> is the IPv6 flow "
9965 "identifier; I<sin6_addr> is the 128-bit IPv6 address.  I<sin6_scope_id> is "
9966 "an ID depending on the scope of the address.  It is new in Linux 2.4.  Linux "
9967 "supports it only for link-local addresses, in that case I<sin6_scope_id> "
9968 "contains the interface index (see B<netdevice>(7))"
9969 msgstr ""
9970
9971 #. type: Plain text
9972 #: build/C/man7/ipv6.7:184
9973 msgid ""
9974 "IPv6 supports several address types: unicast to address a single host, "
9975 "multicast to address a group of hosts, anycast to address the nearest member "
9976 "of a group of hosts (not implemented in Linux), IPv4-on-IPv6 to address a "
9977 "IPv4 host, and other reserved address types."
9978 msgstr ""
9979
9980 #. type: Plain text
9981 #: build/C/man7/ipv6.7:190
9982 msgid ""
9983 "The address notation for IPv6 is a group of 8 4-digit hexadecimal numbers, "
9984 "separated with a \\(aq:\\(aq.  \\&\"::\" stands for a string of 0 bits.  "
9985 "Special addresses are ::1 for loopback and ::FFFF:E<lt>IPv4 addressE<gt> for "
9986 "IPv4-mapped-on-IPv6."
9987 msgstr ""
9988
9989 #. type: Plain text
9990 #: build/C/man7/ipv6.7:192
9991 msgid "The port space of IPv6 is shared with IPv4."
9992 msgstr ""
9993
9994 #. type: Plain text
9995 #: build/C/man7/ipv6.7:200
9996 msgid ""
9997 "IPv6 supports some protocol-specific socket options that can be set with "
9998 "B<setsockopt>(2)  and read with B<getsockopt>(2).  The socket option level "
9999 "for IPv6 is B<IPPROTO_IPV6>.  A boolean integer flag is zero when it is "
10000 "false, otherwise true."
10001 msgstr ""
10002
10003 #. type: TP
10004 #: build/C/man7/ipv6.7:200
10005 #, no-wrap
10006 msgid "B<IPV6_ADDRFORM>"
10007 msgstr ""
10008
10009 #. type: Plain text
10010 #: build/C/man7/ipv6.7:214
10011 msgid ""
10012 "Turn an B<AF_INET6> socket into a socket of a different address family.  "
10013 "Only B<AF_INET> is currently supported for that.  It is allowed only for "
10014 "IPv6 sockets that are connected and bound to a v4-mapped-on-v6 address.  The "
10015 "argument is a pointer to an integer containing B<AF_INET>.  This is useful "
10016 "to pass v4-mapped sockets as file descriptors to programs that don't know "
10017 "how to deal with the IPv6 API."
10018 msgstr ""
10019
10020 #. type: TP
10021 #: build/C/man7/ipv6.7:214
10022 #, no-wrap
10023 msgid "B<IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP>"
10024 msgstr ""
10025
10026 #. type: Plain text
10027 #: build/C/man7/ipv6.7:219
10028 msgid ""
10029 "Control membership in multicast groups.  Argument is a pointer to a I<struct "
10030 "ipv6_mreq>."
10031 msgstr ""
10032
10033 #. type: TP
10034 #: build/C/man7/ipv6.7:219
10035 #, no-wrap
10036 msgid "B<IPV6_MTU>"
10037 msgstr ""
10038
10039 #. type: Plain text
10040 #: build/C/man7/ipv6.7:225
10041 msgid ""
10042 "B<getsockopt>(): Retrieve the current known path MTU of the current socket.  "
10043 "Only valid when the socket has been connected.  Returns an integer."
10044 msgstr ""
10045
10046 #. type: Plain text
10047 #: build/C/man7/ipv6.7:231
10048 msgid ""
10049 "B<setsockopt>(): Set the MTU to be used for the socket.  The MTU is limited "
10050 "by the device MTU or the path MTU when path MTU discovery is enabled.  "
10051 "Argument is a pointer to integer."
10052 msgstr ""
10053
10054 #. type: TP
10055 #: build/C/man7/ipv6.7:231
10056 #, no-wrap
10057 msgid "B<IPV6_MTU_DISCOVER>"
10058 msgstr ""
10059
10060 #. type: Plain text
10061 #: build/C/man7/ipv6.7:239
10062 msgid ""
10063 "Control path-MTU discovery on the socket.  See B<IP_MTU_DISCOVER> in "
10064 "B<ip>(7)  for details."
10065 msgstr ""
10066
10067 #. type: TP
10068 #: build/C/man7/ipv6.7:239
10069 #, no-wrap
10070 msgid "B<IPV6_MULTICAST_HOPS>"
10071 msgstr ""
10072
10073 #. type: Plain text
10074 #: build/C/man7/ipv6.7:246
10075 msgid ""
10076 "Set the multicast hop limit for the socket.  Argument is a pointer to an "
10077 "integer.  -1 in the value means use the route default, otherwise it should "
10078 "be between 0 and 255."
10079 msgstr ""
10080
10081 #. type: TP
10082 #: build/C/man7/ipv6.7:246
10083 #, no-wrap
10084 msgid "B<IPV6_MULTICAST_IF>"
10085 msgstr ""
10086
10087 #. type: Plain text
10088 #: build/C/man7/ipv6.7:257
10089 msgid ""
10090 "Set the device for outgoing multicast packets on the socket.  This is "
10091 "allowed only for B<SOCK_DGRAM> and B<SOCK_RAW> socket.  The argument is a "
10092 "pointer to an interface index (see B<netdevice>(7))  in an integer."
10093 msgstr ""
10094
10095 #. type: TP
10096 #: build/C/man7/ipv6.7:257
10097 #, no-wrap
10098 msgid "B<IPV6_MULTICAST_LOOP>"
10099 msgstr ""
10100
10101 #. type: Plain text
10102 #: build/C/man7/ipv6.7:261
10103 msgid ""
10104 "Control whether the socket sees multicast packets that it has send itself.  "
10105 "Argument is a pointer to boolean."
10106 msgstr ""
10107
10108 #. type: TP
10109 #: build/C/man7/ipv6.7:261
10110 #, no-wrap
10111 msgid "B<IPV6_RECVPKTINFO> (since Linux 2.6.14)"
10112 msgstr ""
10113
10114 #. type: Plain text
10115 #: build/C/man7/ipv6.7:275
10116 msgid ""
10117 "Set delivery of the B<IPV6_PKTINFO> control message on incoming datagrams.  "
10118 "Such control messages contain a I<struct in6_pktinfo>, as per RFC 3542.  "
10119 "Only allowed for B<SOCK_DGRAM> or B<SOCK_RAW> sockets.  Argument is a "
10120 "pointer to a boolean value in an integer."
10121 msgstr ""
10122
10123 #. type: Plain text
10124 #: build/C/man7/ipv6.7:278
10125 #, no-wrap
10126 msgid ""
10127 "B<IPV6_RTHDR, IPV6_AUTHHDR, IPV6_DSTOPTS, IPV6_HOPOPTS, IPV6_FLOWINFO, "
10128 "IPV6_HOPLIMIT>\n"
10129 msgstr ""
10130
10131 #. type: Plain text
10132 #: build/C/man7/ipv6.7:303
10133 msgid ""
10134 "Set delivery of control messages for incoming datagrams containing extension "
10135 "headers from the received packet.  B<IPV6_RTHDR> delivers the routing "
10136 "header, B<IPV6_AUTHHDR> delivers the authentication header, B<IPV6_DSTOPTS> "
10137 "delivers the destination options, B<IPV6_HOPOPTS> delivers the hop options, "
10138 "B<IPV6_FLOWINFO> delivers an integer containing the flow ID, "
10139 "B<IPV6_HOPLIMIT> delivers an integer containing the hop count of the "
10140 "packet.  The control messages have the same type as the socket option.  All "
10141 "these header options can also be set for outgoing packets by putting the "
10142 "appropriate control message into the control buffer of B<sendmsg>(2).  Only "
10143 "allowed for B<SOCK_DGRAM> or B<SOCK_RAW> sockets.  Argument is a pointer to "
10144 "a boolean value."
10145 msgstr ""
10146
10147 #. type: TP
10148 #: build/C/man7/ipv6.7:303
10149 #, no-wrap
10150 msgid "B<IPV6_RECVERR>"
10151 msgstr ""
10152
10153 #. type: Plain text
10154 #: build/C/man7/ipv6.7:312
10155 msgid ""
10156 "Control receiving of asynchronous error options.  See B<IP_RECVERR> in "
10157 "B<ip>(7)  for details.  Argument is a pointer to boolean."
10158 msgstr ""
10159
10160 #. type: TP
10161 #: build/C/man7/ipv6.7:312
10162 #, no-wrap
10163 msgid "B<IPV6_ROUTER_ALERT>"
10164 msgstr ""
10165
10166 #. type: Plain text
10167 #: build/C/man7/ipv6.7:327
10168 msgid ""
10169 "Pass forwarded packets containing a router alert hop-by-hop option to this "
10170 "socket.  Only allowed for B<SOCK_RAW> sockets.  The tapped packets are not "
10171 "forwarded by the kernel, it is the user's responsibility to send them out "
10172 "again.  Argument is a pointer to an integer.  A positive integer indicates a "
10173 "router alert option value to intercept.  Packets carrying a router alert "
10174 "option with a value field containing this integer will be delivered to the "
10175 "socket.  A negative integer disables delivery of packets with router alert "
10176 "options to this socket."
10177 msgstr ""
10178
10179 #. type: TP
10180 #: build/C/man7/ipv6.7:327
10181 #, no-wrap
10182 msgid "B<IPV6_UNICAST_HOPS>"
10183 msgstr ""
10184
10185 #. type: Plain text
10186 #: build/C/man7/ipv6.7:333
10187 msgid ""
10188 "Set the unicast hop limit for the socket.  Argument is a pointer to an "
10189 "integer.  -1 in the value means use the route default, otherwise it should "
10190 "be between 0 and 255."
10191 msgstr ""
10192
10193 #. type: TP
10194 #: build/C/man7/ipv6.7:333
10195 #, no-wrap
10196 msgid "B<IPV6_V6ONLY> (since Linux 2.4.21 and 2.6)"
10197 msgstr ""
10198
10199 #.  See RFC 3493
10200 #. type: Plain text
10201 #: build/C/man7/ipv6.7:340
10202 msgid ""
10203 "If this flag is set to true (nonzero), then the socket is restricted to "
10204 "sending and receiving IPv6 packets only.  In this case, an IPv4 and an IPv6 "
10205 "application can bind to a single port at the same time."
10206 msgstr ""
10207
10208 #. type: Plain text
10209 #: build/C/man7/ipv6.7:344
10210 msgid ""
10211 "If this flag is set to false (zero), then the socket can be used to send and "
10212 "receive packets to and from an IPv6 address or an IPv4-mapped IPv6 address."
10213 msgstr ""
10214
10215 #. type: Plain text
10216 #: build/C/man7/ipv6.7:346
10217 msgid "The argument is a pointer to a boolean value in an integer."
10218 msgstr ""
10219
10220 #.  FLOWLABEL_MGR, FLOWINFO_SEND
10221 #. type: Plain text
10222 #: build/C/man7/ipv6.7:351
10223 msgid ""
10224 "The default value for this flag is defined by the contents of the file "
10225 "I</proc/sys/net/ipv6/bindv6only>.  The default value for that file is 0 "
10226 "(false)."
10227 msgstr ""
10228
10229 #. type: Plain text
10230 #: build/C/man7/ipv6.7:363
10231 msgid ""
10232 "The user tried to B<bind>(2)  to a link-local IPv6 address, but the "
10233 "I<sin6_scope_id> in the supplied I<sockaddr_in6> structure is not a valid "
10234 "interface index."
10235 msgstr ""
10236
10237 #. type: Plain text
10238 #: build/C/man7/ipv6.7:368
10239 msgid ""
10240 "The older I<libinet6> libc5 based IPv6 API implementation for Linux is not "
10241 "described here and may vary in details."
10242 msgstr ""
10243
10244 #. type: Plain text
10245 #: build/C/man7/ipv6.7:384
10246 msgid ""
10247 "Linux 2.4 will break binary compatibility for the I<sockaddr_in6> for 64-bit "
10248 "hosts by changing the alignment of I<in6_addr> and adding an additional "
10249 "I<sin6_scope_id> field.  The kernel interfaces stay compatible, but a "
10250 "program including I<sockaddr_in6> or I<in6_addr> into other structures may "
10251 "not be.  This is not a problem for 32-bit hosts like i386."
10252 msgstr ""
10253
10254 #. type: Plain text
10255 #: build/C/man7/ipv6.7:392
10256 msgid ""
10257 "The I<sin6_flowinfo> field is new in Linux 2.4.  It is transparently "
10258 "passed/read by the kernel when the passed address length contains it.  Some "
10259 "programs that pass a longer address buffer and then check the outgoing "
10260 "address length may break."
10261 msgstr ""
10262
10263 #. type: Plain text
10264 #: build/C/man7/ipv6.7:402
10265 msgid ""
10266 "The I<sockaddr_in6> structure is bigger than the generic I<sockaddr>.  "
10267 "Programs that assume that all address types can be stored safely in a "
10268 "I<struct sockaddr> need to be changed to use I<struct sockaddr_storage> for "
10269 "that instead."
10270 msgstr ""
10271
10272 #. type: Plain text
10273 #: build/C/man7/ipv6.7:407
10274 msgid ""
10275 "The IPv6 extended API as in RFC\\ 2292 is currently only partly implemented; "
10276 "although the 2.2 kernel has near complete support for receiving options, the "
10277 "macros for generating IPv6 options are missing in glibc 2.1."
10278 msgstr ""
10279
10280 #. type: Plain text
10281 #: build/C/man7/ipv6.7:409
10282 msgid "IPSec support for EH and AH headers is missing."
10283 msgstr ""
10284
10285 #. type: Plain text
10286 #: build/C/man7/ipv6.7:411
10287 msgid "Flow label management is not complete and not documented here."
10288 msgstr ""
10289
10290 #. type: Plain text
10291 #: build/C/man7/ipv6.7:413
10292 msgid "This man page is not complete."
10293 msgstr ""
10294
10295 #. type: Plain text
10296 #: build/C/man7/ipv6.7:416
10297 msgid "B<cmsg>(3), B<ip>(7)"
10298 msgstr ""
10299
10300 #. type: Plain text
10301 #: build/C/man7/ipv6.7:420
10302 msgid ""
10303 "RFC\\ 2553: IPv6 BASIC API; Linux tries to be compliant to this.  RFC\\ "
10304 "2460: IPv6 specification."
10305 msgstr ""
10306
10307 #. type: TH
10308 #: build/C/man7/netdevice.7:18
10309 #, no-wrap
10310 msgid "NETDEVICE"
10311 msgstr ""
10312
10313 #. type: TH
10314 #: build/C/man7/netdevice.7:18
10315 #, no-wrap
10316 msgid "2014-01-24"
10317 msgstr ""
10318
10319 #. type: Plain text
10320 #: build/C/man7/netdevice.7:21
10321 msgid "netdevice - low-level access to Linux network devices"
10322 msgstr ""
10323
10324 #. type: Plain text
10325 #: build/C/man7/netdevice.7:23
10326 msgid "B<#include E<lt>sys/ioctl.hE<gt>>"
10327 msgstr ""
10328
10329 #. type: Plain text
10330 #: build/C/man7/netdevice.7:25
10331 msgid "B<#include E<lt>net/if.hE<gt>>"
10332 msgstr ""
10333
10334 #. type: Plain text
10335 #: build/C/man7/netdevice.7:28
10336 msgid ""
10337 "This man page describes the sockets interface which is used to configure "
10338 "network devices."
10339 msgstr ""
10340
10341 #. type: Plain text
10342 #: build/C/man7/netdevice.7:35
10343 msgid ""
10344 "Linux supports some standard ioctls to configure network devices.  They can "
10345 "be used on any socket's file descriptor regardless of the family or type.  "
10346 "Most of them pass an I<ifreq> structure:"
10347 msgstr ""
10348
10349 #. type: Plain text
10350 #: build/C/man7/netdevice.7:56
10351 #, no-wrap
10352 msgid ""
10353 "struct ifreq {\n"
10354 "    char ifr_name[IFNAMSIZ]; /* Interface name */\n"
10355 "    union {\n"
10356 "        struct sockaddr ifr_addr;\n"
10357 "        struct sockaddr ifr_dstaddr;\n"
10358 "        struct sockaddr ifr_broadaddr;\n"
10359 "        struct sockaddr ifr_netmask;\n"
10360 "        struct sockaddr ifr_hwaddr;\n"
10361 "        short           ifr_flags;\n"
10362 "        int             ifr_ifindex;\n"
10363 "        int             ifr_metric;\n"
10364 "        int             ifr_mtu;\n"
10365 "        struct ifmap    ifr_map;\n"
10366 "        char            ifr_slave[IFNAMSIZ];\n"
10367 "        char            ifr_newname[IFNAMSIZ];\n"
10368 "        char           *ifr_data;\n"
10369 "    };\n"
10370 "};\n"
10371 msgstr ""
10372
10373 #. type: Plain text
10374 #: build/C/man7/netdevice.7:64
10375 msgid ""
10376 "Normally, the user specifies which device to affect by setting I<ifr_name> "
10377 "to the name of the interface.  All other members of the structure may share "
10378 "memory."
10379 msgstr ""
10380
10381 #. type: Plain text
10382 #: build/C/man7/netdevice.7:72
10383 msgid ""
10384 "If an ioctl is marked as privileged, then using it requires an effective "
10385 "user ID of 0 or the B<CAP_NET_ADMIN> capability.  If this is not the case "
10386 "B<EPERM> will be returned."
10387 msgstr ""
10388
10389 #. type: TP
10390 #: build/C/man7/netdevice.7:72
10391 #, no-wrap
10392 msgid "B<SIOCGIFNAME>"
10393 msgstr ""
10394
10395 #. type: Plain text
10396 #: build/C/man7/netdevice.7:80
10397 msgid ""
10398 "Given the I<ifr_ifindex>, return the name of the interface in I<ifr_name>.  "
10399 "This is the only ioctl which returns its result in I<ifr_name>."
10400 msgstr ""
10401
10402 #. type: TP
10403 #: build/C/man7/netdevice.7:80
10404 #, no-wrap
10405 msgid "B<SIOCGIFINDEX>"
10406 msgstr ""
10407
10408 #. type: Plain text
10409 #: build/C/man7/netdevice.7:84
10410 msgid "Retrieve the interface index of the interface into I<ifr_ifindex>."
10411 msgstr ""
10412
10413 #. type: TP
10414 #: build/C/man7/netdevice.7:84
10415 #, no-wrap
10416 msgid "B<SIOCGIFFLAGS>, B<SIOCSIFFLAGS>"
10417 msgstr ""
10418
10419 #.  Do not right adjust text blocks in tables
10420 #. type: Plain text
10421 #: build/C/man7/netdevice.7:90
10422 msgid ""
10423 "Get or set the active flag word of the device.  I<ifr_flags> contains a bit "
10424 "mask of the following values:"
10425 msgstr ""
10426
10427 #. type: tbl table
10428 #: build/C/man7/netdevice.7:95
10429 #, no-wrap
10430 msgid "Device flags\n"
10431 msgstr ""
10432
10433 #. type: tbl table
10434 #: build/C/man7/netdevice.7:96
10435 #, no-wrap
10436 msgid "IFF_UP:Interface is running.\n"
10437 msgstr ""
10438
10439 #. type: tbl table
10440 #: build/C/man7/netdevice.7:97
10441 #, no-wrap
10442 msgid "IFF_BROADCAST:Valid broadcast address set.\n"
10443 msgstr ""
10444
10445 #. type: tbl table
10446 #: build/C/man7/netdevice.7:98
10447 #, no-wrap
10448 msgid "IFF_DEBUG:Internal debugging flag.\n"
10449 msgstr ""
10450
10451 #. type: tbl table
10452 #: build/C/man7/netdevice.7:99
10453 #, no-wrap
10454 msgid "IFF_LOOPBACK:Interface is a loopback interface.\n"
10455 msgstr ""
10456
10457 #. type: tbl table
10458 #: build/C/man7/netdevice.7:100
10459 #, no-wrap
10460 msgid "IFF_POINTOPOINT:Interface is a point-to-point link.\n"
10461 msgstr ""
10462
10463 #. type: tbl table
10464 #: build/C/man7/netdevice.7:101
10465 #, no-wrap
10466 msgid "IFF_RUNNING:Resources allocated.\n"
10467 msgstr ""
10468
10469 #. type: tbl table
10470 #: build/C/man7/netdevice.7:102
10471 #, no-wrap
10472 msgid "IFF_NOARP:T{\n"
10473 msgstr ""
10474
10475 #. type: tbl table
10476 #: build/C/man7/netdevice.7:103
10477 #, no-wrap
10478 msgid "No arp protocol, L2 destination address not set.\n"
10479 msgstr ""
10480
10481 #. type: tbl table
10482 #: build/C/man7/netdevice.7:104 build/C/man7/netdevice.7:115
10483 #, no-wrap
10484 msgid "T}\n"
10485 msgstr ""
10486
10487 #. type: tbl table
10488 #: build/C/man7/netdevice.7:105
10489 #, no-wrap
10490 msgid "IFF_PROMISC:Interface is in promiscuous mode.\n"
10491 msgstr ""
10492
10493 #. type: tbl table
10494 #: build/C/man7/netdevice.7:106
10495 #, no-wrap
10496 msgid "IFF_NOTRAILERS:Avoid use of trailers.\n"
10497 msgstr ""
10498
10499 #. type: tbl table
10500 #: build/C/man7/netdevice.7:107
10501 #, no-wrap
10502 msgid "IFF_ALLMULTI:Receive all multicast packets.\n"
10503 msgstr ""
10504
10505 #. type: tbl table
10506 #: build/C/man7/netdevice.7:108
10507 #, no-wrap
10508 msgid "IFF_MASTER:Master of a load balancing bundle.\n"
10509 msgstr ""
10510
10511 #. type: tbl table
10512 #: build/C/man7/netdevice.7:109
10513 #, no-wrap
10514 msgid "IFF_SLAVE:Slave of a load balancing bundle.\n"
10515 msgstr ""
10516
10517 #. type: tbl table
10518 #: build/C/man7/netdevice.7:110
10519 #, no-wrap
10520 msgid "IFF_MULTICAST:Supports multicast\n"
10521 msgstr ""
10522
10523 #. type: tbl table
10524 #: build/C/man7/netdevice.7:111
10525 #, no-wrap
10526 msgid "IFF_PORTSEL:Is able to select media type via ifmap.\n"
10527 msgstr ""
10528
10529 #. type: tbl table
10530 #: build/C/man7/netdevice.7:112
10531 #, no-wrap
10532 msgid "IFF_AUTOMEDIA:Auto media selection active.\n"
10533 msgstr ""
10534
10535 #. type: tbl table
10536 #: build/C/man7/netdevice.7:113
10537 #, no-wrap
10538 msgid "IFF_DYNAMIC:T{\n"
10539 msgstr ""
10540
10541 #. type: tbl table
10542 #: build/C/man7/netdevice.7:114
10543 #, no-wrap
10544 msgid "The addresses are lost when the interface goes down.\n"
10545 msgstr ""
10546
10547 #. type: tbl table
10548 #: build/C/man7/netdevice.7:116
10549 #, no-wrap
10550 msgid "IFF_LOWER_UP:Driver signals L1 up (since Linux 2.6.17)\n"
10551 msgstr ""
10552
10553 #. type: tbl table
10554 #: build/C/man7/netdevice.7:117
10555 #, no-wrap
10556 msgid "IFF_DORMANT:Driver signals dormant (since Linux 2.6.17)\n"
10557 msgstr ""
10558
10559 #. type: tbl table
10560 #: build/C/man7/netdevice.7:118
10561 #, no-wrap
10562 msgid "IFF_ECHO:Echo sent packets (since Linux 2.6.25)\n"
10563 msgstr ""
10564
10565 #. type: Plain text
10566 #: build/C/man7/netdevice.7:124
10567 msgid ""
10568 "Setting the active flag word is a privileged operation, but any process may "
10569 "read it."
10570 msgstr ""
10571
10572 #. type: TP
10573 #: build/C/man7/netdevice.7:124
10574 #, no-wrap
10575 msgid "B<SIOCGIFPFLAGS>, B<SIOCSIFPFLAGS>"
10576 msgstr ""
10577
10578 #. type: Plain text
10579 #: build/C/man7/netdevice.7:129
10580 msgid ""
10581 "Get or set extended (private) flags for the device.  I<ifr_flags> contains a "
10582 "bit mask of the following values:"
10583 msgstr ""
10584
10585 #. type: tbl table
10586 #: build/C/man7/netdevice.7:133
10587 #, no-wrap
10588 msgid "Private flags\n"
10589 msgstr ""
10590
10591 #. type: tbl table
10592 #: build/C/man7/netdevice.7:134
10593 #, no-wrap
10594 msgid "IFF_802_1Q_VLAN:Interface is 802.1Q VLAN device.\n"
10595 msgstr ""
10596
10597 #. type: tbl table
10598 #: build/C/man7/netdevice.7:135
10599 #, no-wrap
10600 msgid "IFF_EBRIDGE:Interface is Ethernet bridging device.\n"
10601 msgstr ""
10602
10603 #. type: tbl table
10604 #: build/C/man7/netdevice.7:136
10605 #, no-wrap
10606 msgid "IFF_SLAVE_INACTIVE:Interface is inactive bonding slave.\n"
10607 msgstr ""
10608
10609 #. type: tbl table
10610 #: build/C/man7/netdevice.7:137
10611 #, no-wrap
10612 msgid "IFF_MASTER_8023AD:Interface is 802.3ad bonding master.\n"
10613 msgstr ""
10614
10615 #. type: tbl table
10616 #: build/C/man7/netdevice.7:138
10617 #, no-wrap
10618 msgid "IFF_MASTER_ALB:Interface is balanced-alb bonding master.\n"
10619 msgstr ""
10620
10621 #. type: tbl table
10622 #: build/C/man7/netdevice.7:139
10623 #, no-wrap
10624 msgid "IFF_BONDING:Interface is a bonding master or slave.\n"
10625 msgstr ""
10626
10627 #. type: tbl table
10628 #: build/C/man7/netdevice.7:140
10629 #, no-wrap
10630 msgid "IFF_SLAVE_NEEDARP:Interface needs ARPs for validation.\n"
10631 msgstr ""
10632
10633 #. type: tbl table
10634 #: build/C/man7/netdevice.7:141
10635 #, no-wrap
10636 msgid "IFF_ISATAP:Interface is RFC4214 ISATAP interface.\n"
10637 msgstr ""
10638
10639 #. type: Plain text
10640 #: build/C/man7/netdevice.7:145
10641 msgid "Setting the extended (private) interface flags is a privileged operation."
10642 msgstr ""
10643
10644 #. type: TP
10645 #: build/C/man7/netdevice.7:145
10646 #, no-wrap
10647 msgid "B<SIOCGIFADDR>, B<SIOCSIFADDR>"
10648 msgstr ""
10649
10650 #. type: Plain text
10651 #: build/C/man7/netdevice.7:153
10652 msgid ""
10653 "Get or set the address of the device using I<ifr_addr>.  Setting the "
10654 "interface address is a privileged operation.  For compatibility, only "
10655 "B<AF_INET> addresses are accepted or returned."
10656 msgstr ""
10657
10658 #. type: TP
10659 #: build/C/man7/netdevice.7:153
10660 #, no-wrap
10661 msgid "B<SIOCGIFDSTADDR>, B<SIOCSIFDSTADDR>"
10662 msgstr ""
10663
10664 #. type: Plain text
10665 #: build/C/man7/netdevice.7:161
10666 msgid ""
10667 "Get or set the destination address of a point-to-point device using "
10668 "I<ifr_dstaddr>.  For compatibility, only B<AF_INET> addresses are accepted "
10669 "or returned.  Setting the destination address is a privileged operation."
10670 msgstr ""
10671
10672 #. type: TP
10673 #: build/C/man7/netdevice.7:161
10674 #, no-wrap
10675 msgid "B<SIOCGIFBRDADDR>, B<SIOCSIFBRDADDR>"
10676 msgstr ""
10677
10678 #. type: Plain text
10679 #: build/C/man7/netdevice.7:169
10680 msgid ""
10681 "Get or set the broadcast address for a device using I<ifr_brdaddr>.  For "
10682 "compatibility, only B<AF_INET> addresses are accepted or returned.  Setting "
10683 "the broadcast address is a privileged operation."
10684 msgstr ""
10685
10686 #. type: TP
10687 #: build/C/man7/netdevice.7:169
10688 #, no-wrap
10689 msgid "B<SIOCGIFNETMASK>, B<SIOCSIFNETMASK>"
10690 msgstr ""
10691
10692 #. type: Plain text
10693 #: build/C/man7/netdevice.7:177
10694 msgid ""
10695 "Get or set the network mask for a device using I<ifr_netmask>.  For "
10696 "compatibility, only B<AF_INET> addresses are accepted or returned.  Setting "
10697 "the network mask is a privileged operation."
10698 msgstr ""
10699
10700 #. type: TP
10701 #: build/C/man7/netdevice.7:177
10702 #, no-wrap
10703 msgid "B<SIOCGIFMETRIC>, B<SIOCSIFMETRIC>"
10704 msgstr ""
10705
10706 #. type: Plain text
10707 #: build/C/man7/netdevice.7:186
10708 msgid ""
10709 "Get or set the metric of the device using I<ifr_metric>.  This is currently "
10710 "not implemented; it sets I<ifr_metric> to 0 if you attempt to read it and "
10711 "returns B<EOPNOTSUPP> if you attempt to set it."
10712 msgstr ""
10713
10714 #. type: TP
10715 #: build/C/man7/netdevice.7:186
10716 #, no-wrap
10717 msgid "B<SIOCGIFMTU>, B<SIOCSIFMTU>"
10718 msgstr ""
10719
10720 #. type: Plain text
10721 #: build/C/man7/netdevice.7:193
10722 msgid ""
10723 "Get or set the MTU (Maximum Transfer Unit) of a device using I<ifr_mtu>.  "
10724 "Setting the MTU is a privileged operation.  Setting the MTU to too small "
10725 "values may cause kernel crashes."
10726 msgstr ""
10727
10728 #. type: TP
10729 #: build/C/man7/netdevice.7:193
10730 #, no-wrap
10731 msgid "B<SIOCGIFHWADDR>, B<SIOCSIFHWADDR>"
10732 msgstr ""
10733
10734 #. type: Plain text
10735 #: build/C/man7/netdevice.7:204
10736 msgid ""
10737 "Get or set the hardware address of a device using I<ifr_hwaddr>.  The "
10738 "hardware address is specified in a struct I<sockaddr>.  I<sa_family> "
10739 "contains the ARPHRD_* device type, I<sa_data> the L2 hardware address "
10740 "starting from byte 0.  Setting the hardware address is a privileged "
10741 "operation."
10742 msgstr ""
10743
10744 #. type: TP
10745 #: build/C/man7/netdevice.7:204
10746 #, no-wrap
10747 msgid "B<SIOCSIFHWBROADCAST>"
10748 msgstr ""
10749
10750 #. type: Plain text
10751 #: build/C/man7/netdevice.7:209
10752 msgid ""
10753 "Set the hardware broadcast address of a device from I<ifr_hwaddr>.  This is "
10754 "a privileged operation."
10755 msgstr ""
10756
10757 #. type: TP
10758 #: build/C/man7/netdevice.7:209
10759 #, no-wrap
10760 msgid "B<SIOCGIFMAP>, B<SIOCSIFMAP>"
10761 msgstr ""
10762
10763 #. type: Plain text
10764 #: build/C/man7/netdevice.7:214
10765 msgid ""
10766 "Get or set the interface's hardware parameters using I<ifr_map>.  Setting "
10767 "the parameters is a privileged operation."
10768 msgstr ""
10769
10770 #. type: Plain text
10771 #: build/C/man7/netdevice.7:225
10772 #, no-wrap
10773 msgid ""
10774 "struct ifmap {\n"
10775 "    unsigned long   mem_start;\n"
10776 "    unsigned long   mem_end;\n"
10777 "    unsigned short  base_addr;\n"
10778 "    unsigned char   irq;\n"
10779 "    unsigned char   dma;\n"
10780 "    unsigned char   port;\n"
10781 "};\n"
10782 msgstr ""
10783
10784 #. type: Plain text
10785 #: build/C/man7/netdevice.7:230
10786 msgid ""
10787 "The interpretation of the ifmap structure depends on the device driver and "
10788 "the architecture."
10789 msgstr ""
10790
10791 #. type: TP
10792 #: build/C/man7/netdevice.7:230
10793 #, no-wrap
10794 msgid "B<SIOCADDMULTI>, B<SIOCDELMULTI>"
10795 msgstr ""
10796
10797 #. type: Plain text
10798 #: build/C/man7/netdevice.7:239
10799 msgid ""
10800 "Add an address to or delete an address from the device's link layer "
10801 "multicast filters using I<ifr_hwaddr>.  These are privileged operations.  "
10802 "See also B<packet>(7)  for an alternative."
10803 msgstr ""
10804
10805 #. type: TP
10806 #: build/C/man7/netdevice.7:239
10807 #, no-wrap
10808 msgid "B<SIOCGIFTXQLEN>, B<SIOCSIFTXQLEN>"
10809 msgstr ""
10810
10811 #. type: Plain text
10812 #: build/C/man7/netdevice.7:244
10813 msgid ""
10814 "Get or set the transmit queue length of a device using I<ifr_qlen>.  Setting "
10815 "the transmit queue length is a privileged operation."
10816 msgstr ""
10817
10818 #. type: TP
10819 #: build/C/man7/netdevice.7:244
10820 #, no-wrap
10821 msgid "B<SIOCSIFNAME>"
10822 msgstr ""
10823
10824 #. type: Plain text
10825 #: build/C/man7/netdevice.7:253
10826 msgid ""
10827 "Changes the name of the interface specified in I<ifr_name> to "
10828 "I<ifr_newname>.  This is a privileged operation.  It is allowed only when "
10829 "the interface is not up."
10830 msgstr ""
10831
10832 #. type: TP
10833 #: build/C/man7/netdevice.7:253
10834 #, no-wrap
10835 msgid "B<SIOCGIFCONF>"
10836 msgstr ""
10837
10838 #. type: Plain text
10839 #: build/C/man7/netdevice.7:263
10840 msgid ""
10841 "Return a list of interface (transport layer) addresses.  This currently "
10842 "means only addresses of the B<AF_INET> (IPv4) family for compatibility.  "
10843 "Unlike the others, this ioctl passes an I<ifconf> structure:"
10844 msgstr ""
10845
10846 #. type: Plain text
10847 #: build/C/man7/netdevice.7:273
10848 #, no-wrap
10849 msgid ""
10850 "struct ifconf {\n"
10851 "    int                 ifc_len; /* size of buffer */\n"
10852 "    union {\n"
10853 "        char           *ifc_buf; /* buffer address */\n"
10854 "        struct ifreq   *ifc_req; /* array of structures */\n"
10855 "    };\n"
10856 "};\n"
10857 msgstr ""
10858
10859 #. type: Plain text
10860 #: build/C/man7/netdevice.7:299
10861 msgid ""
10862 "If I<ifc_req> is NULL, B<SIOCGIFCONF> returns the necessary buffer size in "
10863 "bytes for receiving all available addresses in I<ifc_len>.  Otherwise "
10864 "I<ifc_req> contains a pointer to an array of I<ifreq> structures to be "
10865 "filled with all currently active L3 interface addresses.  I<ifc_len> "
10866 "contains the size of the array in bytes.  Within each I<ifreq> structure, "
10867 "I<ifr_name> will receive the interface name, and I<ifr_addr> the address.  "
10868 "The actual number of bytes transferred is returned in I<ifc_len>."
10869 msgstr ""
10870
10871 #. type: Plain text
10872 #: build/C/man7/netdevice.7:315
10873 msgid ""
10874 "If the size specified by I<ifc_len> is insufficient to store all the "
10875 "addresses, the kernel will skip the exceeding ones and return success.  "
10876 "There is no reliable way of detecting this condition once it has occurred.  "
10877 "It is therefore recommended to either determine the necessary buffer size "
10878 "beforehand by calling B<SIOCGIFCONF> with I<ifc_req> set to NULL, or to "
10879 "retry the call with a bigger buffer whenever I<ifc_len> upon return differs "
10880 "by less than I<sizeof(struct ifreq)> from its original value."
10881 msgstr ""
10882
10883 #.  Slaving isn't supported in 2.2
10884 #.  .
10885 #.  .TP
10886 #.  .BR SIOCGIFSLAVE ", " SIOCSIFSLAVE
10887 #.  Get or set the slave device using
10888 #.  .IR ifr_slave .
10889 #.  Setting the slave device is a privileged operation.
10890 #.  .PP
10891 #.  FIXME add amateur radio stuff.
10892 #. type: Plain text
10893 #: build/C/man7/netdevice.7:332
10894 msgid ""
10895 "If an error occurs accessing the I<ifconf> or I<ifreq> structures, B<EFAULT> "
10896 "will be returned."
10897 msgstr ""
10898
10899 #. type: Plain text
10900 #: build/C/man7/netdevice.7:338
10901 msgid ""
10902 "Most protocols support their own ioctls to configure protocol-specific "
10903 "interface options.  See the protocol man pages for a description.  For "
10904 "configuring IP addresses, see B<ip>(7)."
10905 msgstr ""
10906
10907 #. type: Plain text
10908 #: build/C/man7/netdevice.7:341
10909 msgid ""
10910 "In addition, some devices support private ioctls.  These are not described "
10911 "here."
10912 msgstr ""
10913
10914 #. type: Plain text
10915 #: build/C/man7/netdevice.7:349
10916 msgid ""
10917 "Strictly speaking, B<SIOCGIFCONF> and the other ioctls that accept or return "
10918 "only B<AF_INET> socket addresses, are IP-specific and belong in B<ip>(7)."
10919 msgstr ""
10920
10921 #. type: Plain text
10922 #: build/C/man7/netdevice.7:354
10923 msgid ""
10924 "The names of interfaces with no addresses or that don't have the "
10925 "B<IFF_RUNNING> flag set can be found via I</proc/net/dev>."
10926 msgstr ""
10927
10928 #. type: Plain text
10929 #: build/C/man7/netdevice.7:359
10930 msgid ""
10931 "Local IPv6 IP addresses can be found via I</proc/net> or via "
10932 "B<rtnetlink>(7)."
10933 msgstr ""
10934
10935 #. type: Plain text
10936 #: build/C/man7/netdevice.7:365
10937 msgid ""
10938 "glibc 2.1 is missing the I<ifr_newname> macro in I<E<lt>net/if.hE<gt>>.  Add "
10939 "the following to your program as a workaround:"
10940 msgstr ""
10941
10942 #. type: Plain text
10943 #: build/C/man7/netdevice.7:371
10944 #, no-wrap
10945 msgid ""
10946 "#ifndef ifr_newname\n"
10947 "#define ifr_newname     ifr_ifru.ifru_slave\n"
10948 "#endif\n"
10949 msgstr ""
10950
10951 #. type: Plain text
10952 #: build/C/man7/netdevice.7:378
10953 msgid "B<proc>(5), B<capabilities>(7), B<ip>(7), B<rtnetlink>(7)"
10954 msgstr ""
10955
10956 #. type: TH
10957 #: build/C/man5/networks.5:26
10958 #, no-wrap
10959 msgid "NETWORKS"
10960 msgstr ""
10961
10962 #. type: TH
10963 #: build/C/man5/networks.5:26
10964 #, no-wrap
10965 msgid "2008-09-04"
10966 msgstr ""
10967
10968 #. type: TH
10969 #: build/C/man5/networks.5:26
10970 #, no-wrap
10971 msgid "GNU/Linux"
10972 msgstr ""
10973
10974 #. type: Plain text
10975 #: build/C/man5/networks.5:29
10976 msgid "networks - network name information"
10977 msgstr ""
10978
10979 #. type: Plain text
10980 #: build/C/man5/networks.5:35
10981 msgid ""
10982 "The file I</etc/networks> is a plain ASCII file that describes known DARPA "
10983 "networks and symbolic names for these networks.  Each line represents a "
10984 "network and has the following structure:"
10985 msgstr ""
10986
10987 #. type: Plain text
10988 #: build/C/man5/networks.5:38
10989 msgid "I<name number aliases ...>"
10990 msgstr ""
10991
10992 #. type: Plain text
10993 #: build/C/man5/networks.5:46
10994 msgid ""
10995 "where the fields are delimited by spaces or tabs.  Empty lines are ignored.  "
10996 "The hash character (B<#>) indicates the start of a comment: this character, "
10997 "and the remaining characters up to the end of the current line, are ignored "
10998 "by library functions that process the file."
10999 msgstr ""
11000
11001 #. type: Plain text
11002 #: build/C/man5/networks.5:48 build/C/man5/protocols.5:59
11003 msgid "The field descriptions are:"
11004 msgstr ""
11005
11006 #. type: TP
11007 #: build/C/man5/networks.5:48
11008 #, no-wrap
11009 msgid "I<name>"
11010 msgstr ""
11011
11012 #. type: Plain text
11013 #: build/C/man5/networks.5:53
11014 msgid ""
11015 "The symbolic name for the network.  Network names can contain any printable "
11016 "characters execept white-space characters or the comment character."
11017 msgstr ""
11018
11019 #. type: TP
11020 #: build/C/man5/networks.5:53 build/C/man5/protocols.5:67
11021 #, no-wrap
11022 msgid "I<number>"
11023 msgstr ""
11024
11025 #. type: Plain text
11026 #: build/C/man5/networks.5:58
11027 msgid ""
11028 "The official number for this network in numbers-and-dots notation (see "
11029 "B<inet>(3)).  The trailing \".0\" (for the host component of the network "
11030 "address) may be omitted."
11031 msgstr ""
11032
11033 #. type: TP
11034 #: build/C/man5/networks.5:58 build/C/man5/protocols.5:71 build/C/man5/services.5:120
11035 #, no-wrap
11036 msgid "I<aliases>"
11037 msgstr ""
11038
11039 #. type: Plain text
11040 #: build/C/man5/networks.5:61
11041 msgid "Optional aliases for the network."
11042 msgstr ""
11043
11044 #. type: Plain text
11045 #: build/C/man5/networks.5:70
11046 msgid ""
11047 "This file is read by the B<route>(8)  and B<netstat>(8)  utilities.  Only "
11048 "Class A, B or C networks are supported, partitioned networks (i.e., "
11049 "network/26 or network/28) are not supported by this facility."
11050 msgstr ""
11051
11052 #. type: Plain text
11053 #: build/C/man5/networks.5:74
11054 msgid "The networks definition file."
11055 msgstr ""
11056
11057 #. type: Plain text
11058 #: build/C/man5/networks.5:80
11059 msgid ""
11060 "B<getnetbyaddr>(3), B<getnetbyname>(3), B<getnetent>(3), B<netstat>(8), "
11061 "B<route>(8)"
11062 msgstr ""
11063
11064 #. type: TH
11065 #: build/C/man8/nscd.8:23
11066 #, no-wrap
11067 msgid "NSCD"
11068 msgstr ""
11069
11070 #. type: Plain text
11071 #: build/C/man8/nscd.8:26
11072 msgid "nscd - name service cache daemon"
11073 msgstr ""
11074
11075 #. type: Plain text
11076 #: build/C/man8/nscd.8:34
11077 msgid ""
11078 "Nscd is a daemon that provides a cache for the most common name service "
11079 "requests.  The default configuration file, I</etc/nscd.conf>, determines the "
11080 "behavior of the cache daemon.  See B<nscd.conf>(5)."
11081 msgstr ""
11082
11083 #. type: Plain text
11084 #: build/C/man8/nscd.8:47
11085 msgid ""
11086 "Nscd provides caching for accesses of the B<passwd>(5), B<group>(5), and "
11087 "B<hosts>(5)  databases through standard libc interfaces, such as "
11088 "B<getpwnam>(3), B<getpwuid>(3), B<getgrnam>(3), B<getgrgid>(3), "
11089 "B<gethostbyname>(3), and others."
11090 msgstr ""
11091
11092 #. type: Plain text
11093 #: build/C/man8/nscd.8:56
11094 msgid ""
11095 "There are two caches for each database: a positive one for items found, and "
11096 "a negative one for items not found.  Each cache has a separate TTL "
11097 "(time-to-live)  period for its data.  Note that the shadow file is "
11098 "specifically not cached.  B<getspnam>(3)  calls remain uncached as a result."
11099 msgstr ""
11100
11101 #. type: SH
11102 #: build/C/man8/nscd.8:56
11103 #, no-wrap
11104 msgid "OPTIONS"
11105 msgstr ""
11106
11107 #. type: TP
11108 #: build/C/man8/nscd.8:57
11109 #, no-wrap
11110 msgid "B<--help>"
11111 msgstr ""
11112
11113 #. type: Plain text
11114 #: build/C/man8/nscd.8:60
11115 msgid "will give you a list with all options and what they do."
11116 msgstr ""
11117
11118 #. type: Plain text
11119 #: build/C/man8/nscd.8:83
11120 msgid ""
11121 "The daemon will try to watch for changes in configuration files appropriate "
11122 "for each database (e.g., I</etc/passwd> for the I<passwd> database or "
11123 "I</etc/hosts> and I</etc/resolv.conf> for the I<hosts> database), and flush "
11124 "the cache when these are changed.  However, this will happen only after a "
11125 "short delay (unless the B<inotify>(7)  mechanism is available and glibc 2.9 "
11126 "or later is available), and this auto-detection does not cover configuration "
11127 "files required by nonstandard NSS modules, if any are specified in "
11128 "I</etc/nsswitch.conf>.  In that case, you need to run the following command "
11129 "after changing the configuration file of the database so that B<nscd> "
11130 "invalidates its cache:"
11131 msgstr ""
11132
11133 #. type: Plain text
11134 #: build/C/man8/nscd.8:85
11135 #, no-wrap
11136 msgid "    $ B<nscd -i> I<E<lt>databaseE<gt>>\n"
11137 msgstr ""
11138
11139 #.  .SH AUTHOR
11140 #.  .B nscd
11141 #.  was written by Thorsten Kukuk and Ulrich Drepper.
11142 #. type: Plain text
11143 #: build/C/man8/nscd.8:91
11144 msgid "B<nscd.conf>(5), B<nsswitch.conf>(5)"
11145 msgstr ""
11146
11147 #. type: TH
11148 #: build/C/man5/nscd.conf.5:20
11149 #, no-wrap
11150 msgid "NSCD.CONF"
11151 msgstr ""
11152
11153 #. type: TH
11154 #: build/C/man5/nscd.conf.5:20
11155 #, no-wrap
11156 msgid "2014-02-07"
11157 msgstr ""
11158
11159 #. type: Plain text
11160 #: build/C/man5/nscd.conf.5:23
11161 msgid "/etc/nscd.conf - name service cache daemon configuration file"
11162 msgstr ""
11163
11164 #. type: Plain text
11165 #: build/C/man5/nscd.conf.5:36
11166 msgid ""
11167 "The file I</etc/nscd.conf> is read from B<nscd>(8)  at startup.  Each line "
11168 "specifies either an attribute and a value, or an attribute, service, and a "
11169 "value.  Fields are separated either by SPACE or TAB characters.  A "
11170 "\\(aq#\\(aq (number sign) indicates the beginning of a comment; following "
11171 "characters, up to the end of the line, are not interpreted by nscd."
11172 msgstr ""
11173
11174 #. type: Plain text
11175 #: build/C/man5/nscd.conf.5:39
11176 msgid ""
11177 "Valid services are I<passwd>, I<group>, I<hosts>, I<services>, or "
11178 "I<netgroup>."
11179 msgstr ""
11180
11181 #. type: Plain text
11182 #: build/C/man5/nscd.conf.5:42
11183 msgid "B<logfile> I<debug-file-name>"
11184 msgstr ""
11185
11186 #. type: Plain text
11187 #: build/C/man5/nscd.conf.5:44
11188 msgid "Specifies name of the file to which debug info should be written."
11189 msgstr ""
11190
11191 #. type: Plain text
11192 #: build/C/man5/nscd.conf.5:48
11193 msgid "B<debug-level> I<value>"
11194 msgstr ""
11195
11196 #. type: Plain text
11197 #: build/C/man5/nscd.conf.5:51
11198 msgid "Sets the desired debug level.  The default is 0."
11199 msgstr ""
11200
11201 #. type: Plain text
11202 #: build/C/man5/nscd.conf.5:55
11203 msgid "B<threads> I<number>"
11204 msgstr ""
11205
11206 #. type: Plain text
11207 #: build/C/man5/nscd.conf.5:59
11208 msgid ""
11209 "This is the number of threads that are started to wait for requests.  At "
11210 "least five threads will always be created."
11211 msgstr ""
11212
11213 #. type: Plain text
11214 #: build/C/man5/nscd.conf.5:63
11215 msgid "B<max-threads> I<number>"
11216 msgstr ""
11217
11218 #. type: Plain text
11219 #: build/C/man5/nscd.conf.5:66
11220 msgid "Specifies the maximum number of threads.  The default is 32."
11221 msgstr ""
11222
11223 #. type: Plain text
11224 #: build/C/man5/nscd.conf.5:70
11225 msgid "B<server-user> I<user>"
11226 msgstr ""
11227
11228 #. type: Plain text
11229 #: build/C/man5/nscd.conf.5:74
11230 msgid ""
11231 "If this option is set, nscd will run as this user and not as root.  If a "
11232 "separate cache for every user is used (-S parameter), this option is "
11233 "ignored."
11234 msgstr ""
11235
11236 #. type: Plain text
11237 #: build/C/man5/nscd.conf.5:78
11238 msgid "B<stat-user> I<user>"
11239 msgstr ""
11240
11241 #. type: Plain text
11242 #: build/C/man5/nscd.conf.5:80
11243 msgid "Specifies the user who is allowed to request statistics."
11244 msgstr ""
11245
11246 #. type: Plain text
11247 #: build/C/man5/nscd.conf.5:85
11248 msgid "B<reload-count> unlimited | I<number>"
11249 msgstr ""
11250
11251 #. type: Plain text
11252 #: build/C/man5/nscd.conf.5:89
11253 msgid ""
11254 "Limit on the number of times a cached entry gets reloaded without being used "
11255 "before it gets removed.  The default is 5."
11256 msgstr ""
11257
11258 #. type: Plain text
11259 #: build/C/man5/nscd.conf.5:93
11260 msgid "B<paranoia> I<E<lt>yes|noE<gt>>"
11261 msgstr ""
11262
11263 #. type: Plain text
11264 #: build/C/man5/nscd.conf.5:96
11265 msgid ""
11266 "Enabling paranoia mode causes nscd to restart itself periodically.  The "
11267 "default is no."
11268 msgstr ""
11269
11270 #. type: Plain text
11271 #: build/C/man5/nscd.conf.5:100
11272 msgid "B<restart-interval> I<time>"
11273 msgstr ""
11274
11275 #. type: Plain text
11276 #: build/C/man5/nscd.conf.5:108
11277 msgid ""
11278 "Sets the restart interval to I<time> seconds if periodic restart is enabled "
11279 "by enabling B<paranoia> mode.  The default is 3600."
11280 msgstr ""
11281
11282 #. type: Plain text
11283 #: build/C/man5/nscd.conf.5:113
11284 msgid "B<enable-cache> I<service> I<E<lt>yes|noE<gt>>"
11285 msgstr ""
11286
11287 #. type: Plain text
11288 #: build/C/man5/nscd.conf.5:118
11289 msgid "Enables or disables the specified I<service> cache.  The default is no."
11290 msgstr ""
11291
11292 #. type: Plain text
11293 #: build/C/man5/nscd.conf.5:123
11294 msgid "B<positive-time-to-live> I<service> I<value>"
11295 msgstr ""
11296
11297 #. type: Plain text
11298 #: build/C/man5/nscd.conf.5:131
11299 msgid ""
11300 "Sets the TTL (time-to-live) for positive entries (successful queries)  in "
11301 "the specified cache for I<service>.  I<Value> is in seconds.  Larger values "
11302 "increase cache hit rates and reduce mean response times, but increase "
11303 "problems with cache coherence."
11304 msgstr ""
11305
11306 #. type: Plain text
11307 #: build/C/man5/nscd.conf.5:136
11308 msgid "B<negative-time-to-live> I<service> I<value>"
11309 msgstr ""
11310
11311 #. type: Plain text
11312 #: build/C/man5/nscd.conf.5:146
11313 msgid ""
11314 "Sets the TTL (time-to-live) for negative entries (unsuccessful queries)  in "
11315 "the specified cache for I<service>.  I<Value> is in seconds.  Can result in "
11316 "significant performance improvements if there are several files owned by "
11317 "UIDs (user IDs) not in system databases (for example untarring the Linux "
11318 "kernel sources as root); should be kept small to reduce cache coherency "
11319 "problems."
11320 msgstr ""
11321
11322 #. type: Plain text
11323 #: build/C/man5/nscd.conf.5:151
11324 msgid "B<suggested-size> I<service> I<value>"
11325 msgstr ""
11326
11327 #. type: Plain text
11328 #: build/C/man5/nscd.conf.5:156
11329 msgid ""
11330 "This is the internal hash table size, I<value> should remain a prime number "
11331 "for optimum efficiency.  The default is 211."
11332 msgstr ""
11333
11334 #. type: Plain text
11335 #: build/C/man5/nscd.conf.5:161
11336 msgid "B<check-files> I<service> I<E<lt>yes|noE<gt>>"
11337 msgstr ""
11338
11339 #. type: Plain text
11340 #: build/C/man5/nscd.conf.5:173
11341 msgid ""
11342 "Enables or disables checking the file belonging to the specified I<service> "
11343 "for changes.  The files are I</etc/passwd>, I</etc/group>, I</etc/hosts>, "
11344 "I</etc/services> and I</etc/netgroup>.  The default is yes."
11345 msgstr ""
11346
11347 #. type: Plain text
11348 #: build/C/man5/nscd.conf.5:178
11349 msgid "B<persistent> I<service> I<E<lt>yes|noE<gt>>"
11350 msgstr ""
11351
11352 #. type: Plain text
11353 #: build/C/man5/nscd.conf.5:185
11354 msgid ""
11355 "Keep the content of the cache for I<service> over server restarts; useful "
11356 "when B<paranoia> mode is set.  The default is no."
11357 msgstr ""
11358
11359 #. type: Plain text
11360 #: build/C/man5/nscd.conf.5:190
11361 msgid "B<shared> I<service> I<E<lt>yes|noE<gt>>"
11362 msgstr ""
11363
11364 #. type: Plain text
11365 #: build/C/man5/nscd.conf.5:197
11366 msgid ""
11367 "The memory mapping of the nscd databases for I<service> is shared with the "
11368 "clients so that they can directly search in them instead of having to ask "
11369 "the daemon over the socket each time a lookup is performed.  The default is "
11370 "no."
11371 msgstr ""
11372
11373 #. type: Plain text
11374 #: build/C/man5/nscd.conf.5:202
11375 msgid "B<max-db-size> I<service> I<bytes>"
11376 msgstr ""
11377
11378 #. type: Plain text
11379 #: build/C/man5/nscd.conf.5:206
11380 msgid ""
11381 "The maximum allowable size, in bytes, of the database files for the "
11382 "I<service>.  The default is 33554432."
11383 msgstr ""
11384
11385 #. type: Plain text
11386 #: build/C/man5/nscd.conf.5:211
11387 msgid "B<auto-propagate> I<service> I<E<lt>yes|noE<gt>>"
11388 msgstr ""
11389
11390 #. type: Plain text
11391 #: build/C/man5/nscd.conf.5:231
11392 msgid ""
11393 "When set to I<no> for I<passwd> or I<group> service, then the I<.byname> "
11394 "requests are not added to I<passwd.byuid> or I<group.bygid> cache.  This can "
11395 "help with tables containing multiple records for the same ID.  The default "
11396 "is yes.  This option is valid only for services I<passwd> and I<group>."
11397 msgstr ""
11398
11399 #. type: Plain text
11400 #: build/C/man5/nscd.conf.5:239
11401 msgid ""
11402 "The default values stated in this manual page originate from the source code "
11403 "of B<nscd>(8)  and are used if not overridden in the configuration file.  "
11404 "The default values used in the configuration file of your distribution might "
11405 "differ."
11406 msgstr ""
11407
11408 #.  .SH AUTHOR
11409 #.  .B nscd
11410 #.  was written by Thorsten Kukuk and Ulrich Drepper.
11411 #. type: Plain text
11412 #: build/C/man5/nscd.conf.5:244
11413 msgid "B<nscd>(8)"
11414 msgstr ""
11415
11416 #. type: TH
11417 #: build/C/man5/nss.5:19
11418 #, no-wrap
11419 msgid "NSS"
11420 msgstr ""
11421
11422 #. type: Plain text
11423 #: build/C/man5/nss.5:22
11424 msgid "nss - Name Service Switch configuration file"
11425 msgstr ""
11426
11427 #. type: Plain text
11428 #: build/C/man5/nss.5:29
11429 msgid ""
11430 "Each call to a function which retrieves data from a system database like the "
11431 "password or group database is handled by the Name Service Switch "
11432 "implementation in the GNU C library.  The various services provided are "
11433 "implemented by independent modules, each of which naturally varies widely "
11434 "from the other."
11435 msgstr ""
11436
11437 #. type: Plain text
11438 #: build/C/man5/nss.5:38
11439 msgid ""
11440 "The default implementations coming with the GNU C library are by default "
11441 "conservative and do not use unsafe data.  This might be very costly in some "
11442 "situations, especially when the databases are large.  Some modules allow the "
11443 "system administrator to request taking shortcuts if these are known to be "
11444 "safe.  It is then the system administrator's responsibility to ensure the "
11445 "assumption is correct."
11446 msgstr ""
11447
11448 #. type: Plain text
11449 #: build/C/man5/nss.5:42
11450 msgid ""
11451 "There are other modules where the implementation changed over time.  If an "
11452 "implementation used to sacrifice speed for memory consumption it might "
11453 "create problems if the preference is switched."
11454 msgstr ""
11455
11456 #. type: Plain text
11457 #: build/C/man5/nss.5:51
11458 msgid ""
11459 "The I</etc/default/nss> file contains a number of variable assignments.  "
11460 "Each variable controls the behavior of one or more NSS modules.  White "
11461 "spaces are ignored.  Lines beginning with \\(aq#\\(aq are treated as "
11462 "comments."
11463 msgstr ""
11464
11465 #. type: Plain text
11466 #: build/C/man5/nss.5:53
11467 msgid "The variables currently recognized are:"
11468 msgstr ""
11469
11470 #. type: TP
11471 #: build/C/man5/nss.5:53
11472 #, no-wrap
11473 msgid "B<NETID_AUTHORITATIVE => I<TRUE>|I<FALSE>"
11474 msgstr ""
11475
11476 #. type: Plain text
11477 #: build/C/man5/nss.5:68
11478 msgid ""
11479 "If set to TRUE, the NIS backend for the B<initgroups>(3)  function will "
11480 "accept the information from the I<netid.byname> NIS map as authoritative.  "
11481 "This can speed up the function significantly if the I<group.byname> map is "
11482 "large.  The content of the I<netid.byname> map is used B<as is>.  The system "
11483 "administrator has to make sure it is correctly generated."
11484 msgstr ""
11485
11486 #. type: TP
11487 #: build/C/man5/nss.5:68
11488 #, no-wrap
11489 msgid "B<SERVICES_AUTHORITATIVE => I<TRUE>|I<FALSE>"
11490 msgstr ""
11491
11492 #. type: Plain text
11493 #: build/C/man5/nss.5:80
11494 msgid ""
11495 "If set to TRUE, the NIS backend for the B<getservbyname>(3)  and "
11496 "B<getservbyname_r>(3)  functions will assume that the "
11497 "I<services.byservicename> NIS map exists and is authoritative, particularly "
11498 "that it contains both keys with /proto and without /proto for both primary "
11499 "service names and service aliases.  The system administrator has to make "
11500 "sure it is correctly generated."
11501 msgstr ""
11502
11503 #. type: TP
11504 #: build/C/man5/nss.5:80
11505 #, no-wrap
11506 msgid "B<SETENT_BATCH_READ => I<TRUE>|I<FALSE>"
11507 msgstr ""
11508
11509 #. type: Plain text
11510 #: build/C/man5/nss.5:98
11511 msgid ""
11512 "If set to TRUE, the NIS backend for the B<setpwent>(3)  and B<setgrent>(3)  "
11513 "functions will read the entire database at once and then hand out the "
11514 "requests one by one from memory with every corresponding B<getpwent>(3)  or "
11515 "B<getgrent>(3)  call respectively.  Otherwise each B<getpwent>(3)  or "
11516 "B<getgrent>(3)  call might result in a network communication with the server "
11517 "to get the next entry."
11518 msgstr ""
11519
11520 #. type: Plain text
11521 #: build/C/man5/nss.5:100
11522 msgid "I</etc/default/nss>"
11523 msgstr ""
11524
11525 #. type: Plain text
11526 #: build/C/man5/nss.5:102
11527 msgid "The default configuration corresponds to the following configuration file:"
11528 msgstr ""
11529
11530 #.  .SH AUTHOR
11531 #.  Ulrich Drepper <drepper@redhat.com>
11532 #. type: Plain text
11533 #: build/C/man5/nss.5:110
11534 #, no-wrap
11535 msgid ""
11536 "NETID_AUTHORITATIVE=FALSE\n"
11537 "SERVICES_AUTHORITATIVE=FALSE\n"
11538 "SETENT_BATCH_READ=FALSE\n"
11539 msgstr ""
11540
11541 #. type: Plain text
11542 #: build/C/man5/nss.5:112
11543 msgid "I<nsswitch.conf>"
11544 msgstr ""
11545
11546 #. type: TH
11547 #: build/C/man5/nsswitch.conf.5:25
11548 #, no-wrap
11549 msgid "NSSWITCH.CONF"
11550 msgstr ""
11551
11552 #. type: Plain text
11553 #: build/C/man5/nsswitch.conf.5:28
11554 msgid "nsswitch.conf - Name Service Switch configuration file"
11555 msgstr ""
11556
11557 #. type: Plain text
11558 #: build/C/man5/nsswitch.conf.5:36
11559 msgid ""
11560 "The Name Service Switch (NSS) configuration file, I</etc/nsswitch.conf>, is "
11561 "used by the GNU C Library to determine the sources from which to obtain "
11562 "name-service information in a range of categories, and in what order.  Each "
11563 "category of information is identified by a database name."
11564 msgstr ""
11565
11566 #. type: Plain text
11567 #: build/C/man5/nsswitch.conf.5:42
11568 msgid ""
11569 "The file is plain ASCII text, with columns separated by spaces or tab "
11570 "characters.  The first column specifies the database name.  The remaining "
11571 "columns describe the order of sources to query and a limited set of actions "
11572 "that can be performed by lookup result."
11573 msgstr ""
11574
11575 #. type: Plain text
11576 #: build/C/man5/nsswitch.conf.5:44
11577 msgid "The following databases are understood by the GNU C Library:"
11578 msgstr ""
11579
11580 #. type: Plain text
11581 #: build/C/man5/nsswitch.conf.5:49
11582 msgid "Mail aliases, used by B<getaliasent>(3)  and related functions."
11583 msgstr ""
11584
11585 #. type: Plain text
11586 #: build/C/man5/nsswitch.conf.5:52
11587 msgid "Ethernet numbers."
11588 msgstr ""
11589
11590 #. type: Plain text
11591 #: build/C/man5/nsswitch.conf.5:57
11592 msgid "Groups of users, used by B<getgrent>(3)  and related functions."
11593 msgstr ""
11594
11595 #. type: Plain text
11596 #: build/C/man5/nsswitch.conf.5:62
11597 msgid "Host names and numbers, used by B<gethostbyname>(3)  and related functions."
11598 msgstr ""
11599
11600 #. type: Plain text
11601 #: build/C/man5/nsswitch.conf.5:67
11602 msgid "Supplementary group access list, used by B<getgrouplist>(3)  function."
11603 msgstr ""
11604
11605 #. type: Plain text
11606 #: build/C/man5/nsswitch.conf.5:71
11607 msgid ""
11608 "Network-wide list of hosts and users, used for access rules.  C libraries "
11609 "before glibc 2.1 supported netgroups only over NIS."
11610 msgstr ""
11611
11612 #. type: Plain text
11613 #: build/C/man5/nsswitch.conf.5:76
11614 msgid "Network names and numbers, used by B<getnetent>(3)  and related functions."
11615 msgstr ""
11616
11617 #. type: Plain text
11618 #: build/C/man5/nsswitch.conf.5:81
11619 msgid "User passwords, used by B<getpwent>(3)  and related functions."
11620 msgstr ""
11621
11622 #. type: Plain text
11623 #: build/C/man5/nsswitch.conf.5:86
11624 msgid "Network protocols, used by B<getprotoent>(3)  and related functions."
11625 msgstr ""
11626
11627 #. type: TP
11628 #: build/C/man5/nsswitch.conf.5:86
11629 #, no-wrap
11630 msgid "B<publickey>"
11631 msgstr ""
11632
11633 #. type: Plain text
11634 #: build/C/man5/nsswitch.conf.5:89
11635 msgid "Public and secret keys for Secure_RPC used by NFS and NIS+."
11636 msgstr ""
11637
11638 #. type: Plain text
11639 #: build/C/man5/nsswitch.conf.5:94
11640 msgid ""
11641 "Remote procedure call names and numbers, used by B<getrpcbyname>(3)  and "
11642 "related functions."
11643 msgstr ""
11644
11645 #. type: Plain text
11646 #: build/C/man5/nsswitch.conf.5:99
11647 msgid "Network services, used by B<getservent>(3)  and related functions."
11648 msgstr ""
11649
11650 #. type: Plain text
11651 #: build/C/man5/nsswitch.conf.5:104
11652 msgid "Shadow user passwords, used by B<getspnam>(3)  and related functions."
11653 msgstr ""
11654
11655 #. type: Plain text
11656 #: build/C/man5/nsswitch.conf.5:108
11657 msgid "Here is an example I</etc/nsswitch.conf> file:"
11658 msgstr ""
11659
11660 #. type: TP
11661 #: build/C/man5/nsswitch.conf.5:111
11662 #, no-wrap
11663 msgid "passwd:"
11664 msgstr ""
11665
11666 #. type: Plain text
11667 #: build/C/man5/nsswitch.conf.5:114 build/C/man5/nsswitch.conf.5:117 build/C/man5/nsswitch.conf.5:120
11668 msgid "compat"
11669 msgstr ""
11670
11671 #. type: TP
11672 #: build/C/man5/nsswitch.conf.5:114
11673 #, no-wrap
11674 msgid "group:"
11675 msgstr ""
11676
11677 #. type: TP
11678 #: build/C/man5/nsswitch.conf.5:117
11679 #, no-wrap
11680 msgid "shadow:"
11681 msgstr ""
11682
11683 #. type: TP
11684 #: build/C/man5/nsswitch.conf.5:121
11685 #, no-wrap
11686 msgid "hosts:"
11687 msgstr ""
11688
11689 #. type: Plain text
11690 #: build/C/man5/nsswitch.conf.5:124
11691 msgid "dns [!UNAVAIL=return] files"
11692 msgstr ""
11693
11694 #. type: TP
11695 #: build/C/man5/nsswitch.conf.5:124
11696 #, no-wrap
11697 msgid "networks:"
11698 msgstr ""
11699
11700 #. type: Plain text
11701 #: build/C/man5/nsswitch.conf.5:127 build/C/man5/nsswitch.conf.5:130 build/C/man5/nsswitch.conf.5:133 build/C/man5/nsswitch.conf.5:136 build/C/man5/nsswitch.conf.5:139
11702 msgid "nis [NOTFOUND=return] files"
11703 msgstr ""
11704
11705 #. type: TP
11706 #: build/C/man5/nsswitch.conf.5:127
11707 #, no-wrap
11708 msgid "ethers:"
11709 msgstr ""
11710
11711 #. type: TP
11712 #: build/C/man5/nsswitch.conf.5:130
11713 #, no-wrap
11714 msgid "protocols:"
11715 msgstr ""
11716
11717 #. type: TP
11718 #: build/C/man5/nsswitch.conf.5:133
11719 #, no-wrap
11720 msgid "rpc:"
11721 msgstr ""
11722
11723 #. type: TP
11724 #: build/C/man5/nsswitch.conf.5:136
11725 #, no-wrap
11726 msgid "services:"
11727 msgstr ""
11728
11729 #. type: Plain text
11730 #: build/C/man5/nsswitch.conf.5:144
11731 msgid "The first column is the database name.  The remaining columns specify:"
11732 msgstr ""
11733
11734 #. type: Plain text
11735 #: build/C/man5/nsswitch.conf.5:148
11736 msgid ""
11737 "One or more service specifications, for example, \"files\", \"db\", or "
11738 "\"nis\".  The order of the services on the line determines the order in "
11739 "which those services will be queried, in turn, until a result is found."
11740 msgstr ""
11741
11742 #. type: Plain text
11743 #: build/C/man5/nsswitch.conf.5:151
11744 msgid ""
11745 "Optional actions to perform if a particular result is obtained from the "
11746 "preceding service, for example, \"[NOTFOUND=return]\"."
11747 msgstr ""
11748
11749 #. type: Plain text
11750 #: build/C/man5/nsswitch.conf.5:177
11751 msgid ""
11752 "The service specifications supported on your system depend on the presence "
11753 "of shared libraries, and are therefore extensible.  Libraries called "
11754 "I</lib/libnss_SERVICE.so.>B<X> will provide the named I<SERVICE>.  On a "
11755 "standard installation, you can use \"files\", \"db\", \"nis\", and "
11756 "\"nisplus\".  For the B<hosts> database, you can additionally specify "
11757 "\"dns\".  For the B<passwd>, B<group>, and B<shadow> databases, you can "
11758 "additionally specify \"compat\" (see B<Compatibility mode> below).  The "
11759 "version number B<X> may be 1 for glibc 2.0, or 2 for glibc 2.1 and later.  "
11760 "On systems with additional libraries installed, you may have access to "
11761 "further services such as \"hesiod\", \"ldap\", \"winbind\" and \"wins\"."
11762 msgstr ""
11763
11764 #. type: Plain text
11765 #: build/C/man5/nsswitch.conf.5:182
11766 msgid ""
11767 "An action may also be specified following a service specification.  The "
11768 "action modifies the behavior following a result obtained from the preceding "
11769 "data source.  Action items take the general form:"
11770 msgstr ""
11771
11772 #. type: Plain text
11773 #: build/C/man5/nsswitch.conf.5:185
11774 msgid "[I<STATUS>=I<ACTION>]"
11775 msgstr ""
11776
11777 #. type: Plain text
11778 #: build/C/man5/nsswitch.conf.5:187
11779 msgid "[!I<STATUS>=I<ACTION>]"
11780 msgstr ""
11781
11782 #. type: Plain text
11783 #: build/C/man5/nsswitch.conf.5:190
11784 msgid "where"
11785 msgstr ""
11786
11787 #. type: Plain text
11788 #: build/C/man5/nsswitch.conf.5:201
11789 msgid "I<STATUS> =E<gt> B<success> | B<notfound> | B<unavail> | B<tryagain>"
11790 msgstr ""
11791
11792 #. type: Plain text
11793 #: build/C/man5/nsswitch.conf.5:207
11794 msgid "I<ACTION> =E<gt> B<return> | B<continue>"
11795 msgstr ""
11796
11797 #. type: Plain text
11798 #: build/C/man5/nsswitch.conf.5:212
11799 msgid ""
11800 "The ! negates the test, matching all possible results except the one "
11801 "specified.  The case of the keywords is not significant."
11802 msgstr ""
11803
11804 #. type: Plain text
11805 #: build/C/man5/nsswitch.conf.5:217
11806 msgid ""
11807 "The I<STATUS> value is matched against the result of the lookup function "
11808 "called by the preceding service specification, and can be one of:"
11809 msgstr ""
11810
11811 #. type: TP
11812 #: build/C/man5/nsswitch.conf.5:218
11813 #, no-wrap
11814 msgid "B<success>"
11815 msgstr ""
11816
11817 #. type: Plain text
11818 #: build/C/man5/nsswitch.conf.5:222
11819 msgid ""
11820 "No error occurred and the requested entry is returned.  The default action "
11821 "for this condition is \"return\"."
11822 msgstr ""
11823
11824 #. type: TP
11825 #: build/C/man5/nsswitch.conf.5:222
11826 #, no-wrap
11827 msgid "B<notfound>"
11828 msgstr ""
11829
11830 #. type: Plain text
11831 #: build/C/man5/nsswitch.conf.5:226
11832 msgid ""
11833 "The lookup succeeded, but the requested entry was not found.  The default "
11834 "action for this condition is \"continue\"."
11835 msgstr ""
11836
11837 #. type: TP
11838 #: build/C/man5/nsswitch.conf.5:226
11839 #, no-wrap
11840 msgid "B<unavail>"
11841 msgstr ""
11842
11843 #. type: Plain text
11844 #: build/C/man5/nsswitch.conf.5:233
11845 msgid ""
11846 "The service is permanently unavailable.  This can mean either that the "
11847 "required file cannot be read, or, for network services, that the server is "
11848 "not available or does not allow queries.  The default action for this "
11849 "condition is \"continue\"."
11850 msgstr ""
11851
11852 #. type: TP
11853 #: build/C/man5/nsswitch.conf.5:233
11854 #, no-wrap
11855 msgid "B<tryagain>"
11856 msgstr ""
11857
11858 #. type: Plain text
11859 #: build/C/man5/nsswitch.conf.5:239
11860 msgid ""
11861 "The service is temporarily unavailable.  This could mean a file is locked or "
11862 "a server currently cannot accept more connections.  The default action for "
11863 "this condition is \"continue\"."
11864 msgstr ""
11865
11866 #. type: Plain text
11867 #: build/C/man5/nsswitch.conf.5:244
11868 msgid "The I<ACTION> value can be one of:"
11869 msgstr ""
11870
11871 #. type: TP
11872 #: build/C/man5/nsswitch.conf.5:245
11873 #, no-wrap
11874 msgid "B<return>"
11875 msgstr ""
11876
11877 #. type: Plain text
11878 #: build/C/man5/nsswitch.conf.5:257
11879 msgid ""
11880 "Return a result now.  Do not call any further lookup functions.  However, "
11881 "for compatibility reasons, if this is the selected action for the B<group> "
11882 "database and the B<notfound> status, and the configuration file does not "
11883 "contain the B<initgroups> line, the next lookup function is always called, "
11884 "without affecting the search result."
11885 msgstr ""
11886
11887 #. type: TP
11888 #: build/C/man5/nsswitch.conf.5:257
11889 #, no-wrap
11890 msgid "B<continue>"
11891 msgstr ""
11892
11893 #. type: Plain text
11894 #: build/C/man5/nsswitch.conf.5:260
11895 msgid "Call the next lookup function."
11896 msgstr ""
11897
11898 #. type: SS
11899 #: build/C/man5/nsswitch.conf.5:261
11900 #, no-wrap
11901 msgid "Compatibility mode (compat)"
11902 msgstr ""
11903
11904 #. type: Plain text
11905 #: build/C/man5/nsswitch.conf.5:267
11906 msgid ""
11907 "The NSS \"compat\" service is similar to \"files\" except that it "
11908 "additionally permits special entries in I</etc/passwd> for granting users or "
11909 "members of netgroups access to the system.  The following entries are valid "
11910 "in this mode:"
11911 msgstr ""
11912
11913 #. type: TP
11914 #: build/C/man5/nsswitch.conf.5:268
11915 #, no-wrap
11916 msgid "B<+>I<user>"
11917 msgstr ""
11918
11919 #. type: Plain text
11920 #: build/C/man5/nsswitch.conf.5:273
11921 msgid "Include the specified I<user> from the NIS passwd map."
11922 msgstr ""
11923
11924 #. type: TP
11925 #: build/C/man5/nsswitch.conf.5:273
11926 #, no-wrap
11927 msgid "B<+@>I<netgroup>"
11928 msgstr ""
11929
11930 #. type: Plain text
11931 #: build/C/man5/nsswitch.conf.5:277
11932 msgid "Include all users in the given I<netgroup>."
11933 msgstr ""
11934
11935 #. type: TP
11936 #: build/C/man5/nsswitch.conf.5:277
11937 #, no-wrap
11938 msgid "B<->I<user>"
11939 msgstr ""
11940
11941 #. type: Plain text
11942 #: build/C/man5/nsswitch.conf.5:282
11943 msgid "Exclude the specified I<user> from the NIS passwd map."
11944 msgstr ""
11945
11946 #. type: TP
11947 #: build/C/man5/nsswitch.conf.5:282
11948 #, no-wrap
11949 msgid "B<-@>I<netgroup>"
11950 msgstr ""
11951
11952 #. type: Plain text
11953 #: build/C/man5/nsswitch.conf.5:286
11954 msgid "Exclude all users in the given I<netgroup>."
11955 msgstr ""
11956
11957 #. type: TP
11958 #: build/C/man5/nsswitch.conf.5:286
11959 #, no-wrap
11960 msgid "B<+>"
11961 msgstr ""
11962
11963 #. type: Plain text
11964 #: build/C/man5/nsswitch.conf.5:290
11965 msgid ""
11966 "Include every user, except previously excluded ones, from the NIS passwd "
11967 "map."
11968 msgstr ""
11969
11970 #. type: Plain text
11971 #: build/C/man5/nsswitch.conf.5:298
11972 msgid ""
11973 "By default the source is \"nis\", but this may be overridden by specifying "
11974 "\"nisplus\" as the source for the pseudo-databases B<passwd_compat>, "
11975 "B<group_compat>, and B<shadow_compat>."
11976 msgstr ""
11977
11978 #. type: Plain text
11979 #: build/C/man5/nsswitch.conf.5:305
11980 msgid ""
11981 "A service named I<SERVICE> is implemented by a shared object library named "
11982 "I<libnss_SERVICE.so.>B<X> that resides in I</lib>."
11983 msgstr ""
11984
11985 #. type: Plain text
11986 #: build/C/man5/nsswitch.conf.5:310
11987 msgid "NSS configuration file."
11988 msgstr ""
11989
11990 #. type: TP
11991 #: build/C/man5/nsswitch.conf.5:310
11992 #, no-wrap
11993 msgid "I</lib/libnss_compat.so.>B<X>"
11994 msgstr ""
11995
11996 #. type: Plain text
11997 #: build/C/man5/nsswitch.conf.5:313
11998 msgid "implements \"compat\" source."
11999 msgstr ""
12000
12001 #. type: TP
12002 #: build/C/man5/nsswitch.conf.5:313
12003 #, no-wrap
12004 msgid "I</lib/libnss_db.so.>B<X>"
12005 msgstr ""
12006
12007 #. type: Plain text
12008 #: build/C/man5/nsswitch.conf.5:316
12009 msgid "implements \"db\" source."
12010 msgstr ""
12011
12012 #. type: TP
12013 #: build/C/man5/nsswitch.conf.5:316
12014 #, no-wrap
12015 msgid "I</lib/libnss_dns.so.>B<X>"
12016 msgstr ""
12017
12018 #. type: Plain text
12019 #: build/C/man5/nsswitch.conf.5:319
12020 msgid "implements \"dns\" source."
12021 msgstr ""
12022
12023 #. type: TP
12024 #: build/C/man5/nsswitch.conf.5:319
12025 #, no-wrap
12026 msgid "I</lib/libnss_files.so.>B<X>"
12027 msgstr ""
12028
12029 #. type: Plain text
12030 #: build/C/man5/nsswitch.conf.5:322
12031 msgid "implements \"files\" source."
12032 msgstr ""
12033
12034 #. type: TP
12035 #: build/C/man5/nsswitch.conf.5:322
12036 #, no-wrap
12037 msgid "I</lib/libnss_hesiod.so.>B<X>"
12038 msgstr ""
12039
12040 #. type: Plain text
12041 #: build/C/man5/nsswitch.conf.5:325
12042 msgid "implements \"hesiod\" source."
12043 msgstr ""
12044
12045 #. type: TP
12046 #: build/C/man5/nsswitch.conf.5:325
12047 #, no-wrap
12048 msgid "I</lib/libnss_nis.so.>B<X>"
12049 msgstr ""
12050
12051 #. type: Plain text
12052 #: build/C/man5/nsswitch.conf.5:328
12053 msgid "implements \"nis\" source."
12054 msgstr ""
12055
12056 #. type: TP
12057 #: build/C/man5/nsswitch.conf.5:328
12058 #, no-wrap
12059 msgid "I</lib/libnss_nisplus.so.>B<X>"
12060 msgstr ""
12061
12062 #. type: Plain text
12063 #: build/C/man5/nsswitch.conf.5:331
12064 msgid "implements \"nisplus\" source."
12065 msgstr ""
12066
12067 #. type: Plain text
12068 #: build/C/man5/nsswitch.conf.5:339
12069 msgid ""
12070 "Within each process that uses B<nsswitch.conf>, the entire file is read only "
12071 "once.  If the file is later changed, the process will continue using the old "
12072 "configuration."
12073 msgstr ""
12074
12075 #. type: Plain text
12076 #: build/C/man5/nsswitch.conf.5:352
12077 msgid ""
12078 "Traditionally, there was only a single source for service information, often "
12079 "in the form of a single configuration file (e.g., I</etc/passwd>).  However, "
12080 "as other name services, such as the Network Information Service (NIS) and "
12081 "the Domain Name Service (DNS), became popular, a method was needed that "
12082 "would be more flexible than fixed search orders coded into the C library.  "
12083 "The Name Service Switch mechanism, which was based on the mechanism used by "
12084 "Sun Microsystems in the Solaris 2 C library, introduced a cleaner solution "
12085 "to the problem."
12086 msgstr ""
12087
12088 #. type: Plain text
12089 #: build/C/man5/nsswitch.conf.5:355
12090 msgid "B<getent>(1), B<nss>(5)"
12091 msgstr ""
12092
12093 #. type: TH
12094 #: build/C/man7/packet.7:12
12095 #, no-wrap
12096 msgid "PACKET"
12097 msgstr ""
12098
12099 #. type: TH
12100 #: build/C/man7/packet.7:12
12101 #, no-wrap
12102 msgid "2014-02-26"
12103 msgstr ""
12104
12105 #. type: Plain text
12106 #: build/C/man7/packet.7:15
12107 msgid "packet - packet interface on device level"
12108 msgstr ""
12109
12110 #. type: Plain text
12111 #: build/C/man7/packet.7:18
12112 #, no-wrap
12113 msgid "B<#include E<lt>sys/socket.hE<gt>>\n"
12114 msgstr ""
12115
12116 #. type: Plain text
12117 #: build/C/man7/packet.7:20
12118 #, no-wrap
12119 msgid "B<#include E<lt>netpacket/packet.hE<gt>>\n"
12120 msgstr ""
12121
12122 #. type: Plain text
12123 #: build/C/man7/packet.7:22
12124 #, no-wrap
12125 msgid "B<#include E<lt>net/ethernet.hE<gt> /* the L2 protocols */>\n"
12126 msgstr ""
12127
12128 #. type: Plain text
12129 #: build/C/man7/packet.7:24
12130 #, no-wrap
12131 msgid ""
12132 "B<packet_socket = socket(AF_PACKET, int >I<socket_type>B<, int "
12133 ">I<protocol>B<);>\n"
12134 msgstr ""
12135
12136 #. type: Plain text
12137 #: build/C/man7/packet.7:30
12138 msgid ""
12139 "Packet sockets are used to receive or send raw packets at the device driver "
12140 "(OSI Layer 2) level.  They allow the user to implement protocol modules in "
12141 "user space on top of the physical layer."
12142 msgstr ""
12143
12144 #. type: Plain text
12145 #: build/C/man7/packet.7:51
12146 msgid ""
12147 "The I<socket_type> is either B<SOCK_RAW> for raw packets including the "
12148 "link-level header or B<SOCK_DGRAM> for cooked packets with the link-level "
12149 "header removed.  The link-level header information is available in a common "
12150 "format in a I<sockaddr_ll>.  I<protocol> is the IEEE 802.3 protocol number "
12151 "in network byte order.  See the I<E<lt>linux/if_ether.hE<gt>> include file "
12152 "for a list of allowed protocols.  When protocol is set to "
12153 "B<htons(ETH_P_ALL)> then all protocols are received.  All incoming packets "
12154 "of that protocol type will be passed to the packet socket before they are "
12155 "passed to the protocols implemented in the kernel."
12156 msgstr ""
12157
12158 #. type: Plain text
12159 #: build/C/man7/packet.7:55
12160 msgid ""
12161 "Only processes with effective UID 0 or the B<CAP_NET_RAW> capability may "
12162 "open packet sockets."
12163 msgstr ""
12164
12165 #. type: Plain text
12166 #: build/C/man7/packet.7:73
12167 msgid ""
12168 "B<SOCK_RAW> packets are passed to and from the device driver without any "
12169 "changes in the packet data.  When receiving a packet, the address is still "
12170 "parsed and passed in a standard I<sockaddr_ll> address structure.  When "
12171 "transmitting a packet, the user supplied buffer should contain the physical "
12172 "layer header.  That packet is then queued unmodified to the network driver "
12173 "of the interface defined by the destination address.  Some device drivers "
12174 "always add other headers.  B<SOCK_RAW> is similar to but not compatible with "
12175 "the obsolete B<AF_INET/SOCK_PACKET> of Linux 2.0."
12176 msgstr ""
12177
12178 #. type: Plain text
12179 #: build/C/man7/packet.7:83
12180 msgid ""
12181 "B<SOCK_DGRAM> operates on a slightly higher level.  The physical header is "
12182 "removed before the packet is passed to the user.  Packets sent through a "
12183 "B<SOCK_DGRAM> packet socket get a suitable physical layer header based on "
12184 "the information in the I<sockaddr_ll> destination address before they are "
12185 "queued."
12186 msgstr ""
12187
12188 #. type: Plain text
12189 #: build/C/man7/packet.7:96
12190 msgid ""
12191 "By default all packets of the specified protocol type are passed to a packet "
12192 "socket.  To get packets only from a specific interface use B<bind>(2)  "
12193 "specifying an address in a I<struct sockaddr_ll> to bind the packet socket "
12194 "to an interface.  Only the I<sll_protocol> and the I<sll_ifindex> address "
12195 "fields are used for purposes of binding."
12196 msgstr ""
12197
12198 #. type: Plain text
12199 #: build/C/man7/packet.7:100
12200 msgid "The B<connect>(2)  operation is not supported on packet sockets."
12201 msgstr ""
12202
12203 #. type: Plain text
12204 #: build/C/man7/packet.7:109
12205 msgid ""
12206 "When the B<MSG_TRUNC> flag is passed to B<recvmsg>(2), B<recv>(2), "
12207 "B<recvfrom>(2)  the real length of the packet on the wire is always "
12208 "returned, even when it is longer than the buffer."
12209 msgstr ""
12210
12211 #. type: SS
12212 #: build/C/man7/packet.7:109
12213 #, no-wrap
12214 msgid "Address types"
12215 msgstr ""
12216
12217 #. type: Plain text
12218 #: build/C/man7/packet.7:113
12219 msgid "The I<sockaddr_ll> is a device independent physical layer address."
12220 msgstr ""
12221
12222 #. type: Plain text
12223 #: build/C/man7/packet.7:125
12224 #, no-wrap
12225 msgid ""
12226 "struct sockaddr_ll {\n"
12227 "    unsigned short sll_family;   /* Always AF_PACKET */\n"
12228 "    unsigned short sll_protocol; /* Physical layer protocol */\n"
12229 "    int            sll_ifindex;  /* Interface number */\n"
12230 "    unsigned short sll_hatype;   /* ARP hardware type */\n"
12231 "    unsigned char  sll_pkttype;  /* Packet type */\n"
12232 "    unsigned char  sll_halen;    /* Length of address */\n"
12233 "    unsigned char  sll_addr[8];  /* Physical layer address */\n"
12234 "};\n"
12235 msgstr ""
12236
12237 #. type: Plain text
12238 #: build/C/man7/packet.7:164
12239 msgid ""
12240 "I<sll_protocol> is the standard ethernet protocol type in network byte order "
12241 "as defined in the I<E<lt>linux/if_ether.hE<gt>> include file.  It defaults "
12242 "to the socket's protocol.  I<sll_ifindex> is the interface index of the "
12243 "interface (see B<netdevice>(7)); 0 matches any interface (only permitted for "
12244 "binding).  I<sll_hatype> is an ARP type as defined in the "
12245 "I<E<lt>linux/if_arp.hE<gt>> include file.  I<sll_pkttype> contains the "
12246 "packet type.  Valid types are B<PACKET_HOST> for a packet addressed to the "
12247 "local host, B<PACKET_BROADCAST> for a physical layer broadcast packet, "
12248 "B<PACKET_MULTICAST> for a packet sent to a physical layer multicast address, "
12249 "B<PACKET_OTHERHOST> for a packet to some other host that has been caught by "
12250 "a device driver in promiscuous mode, and B<PACKET_OUTGOING> for a packet "
12251 "originated from the local host that is looped back to a packet socket.  "
12252 "These types make sense only for receiving.  I<sll_addr> and I<sll_halen> "
12253 "contain the physical layer (e.g., IEEE 802.3) address and its length.  The "
12254 "exact interpretation depends on the device."
12255 msgstr ""
12256
12257 #. type: Plain text
12258 #: build/C/man7/packet.7:180
12259 msgid ""
12260 "When you send packets it is enough to specify I<sll_family>, I<sll_addr>, "
12261 "I<sll_halen>, I<sll_ifindex>.  The other fields should be 0.  I<sll_hatype> "
12262 "and I<sll_pkttype> are set on received packets for your information.  For "
12263 "bind only I<sll_protocol> and I<sll_ifindex> are used."
12264 msgstr ""
12265
12266 #. type: Plain text
12267 #: build/C/man7/packet.7:185
12268 msgid ""
12269 "Packet socket options are configured by calling B<setsockopt>(2)  with level "
12270 "B<SOL_PACKET>."
12271 msgstr ""
12272
12273 #. type: TP
12274 #: build/C/man7/packet.7:185
12275 #, no-wrap
12276 msgid "B<PACKET_ADD_MEMBERSHIP>"
12277 msgstr ""
12278
12279 #. type: TP
12280 #: build/C/man7/packet.7:188
12281 #, no-wrap
12282 msgid "B<PACKET_DROP_MEMBERSHIP>"
12283 msgstr ""
12284
12285 #. type: Plain text
12286 #: build/C/man7/packet.7:200
12287 msgid ""
12288 "Packet sockets can be used to configure physical layer multicasting and "
12289 "promiscuous mode.  B<PACKET_ADD_MEMBERSHIP> adds a binding and "
12290 "B<PACKET_DROP_MEMBERSHIP> drops it.  They both expect a I<packet_mreq> "
12291 "structure as argument:"
12292 msgstr ""
12293
12294 #. type: Plain text
12295 #: build/C/man7/packet.7:209
12296 #, no-wrap
12297 msgid ""
12298 "struct packet_mreq {\n"
12299 "    int            mr_ifindex;    /* interface index */\n"
12300 "    unsigned short mr_type;       /* action */\n"
12301 "    unsigned short mr_alen;       /* address length */\n"
12302 "    unsigned char  mr_address[8]; /* physical layer address */\n"
12303 "};\n"
12304 msgstr ""
12305
12306 #. type: Plain text
12307 #: build/C/man7/packet.7:230
12308 msgid ""
12309 "B<mr_ifindex> contains the interface index for the interface whose status "
12310 "should be changed.  The B<mr_type> parameter specifies which action to "
12311 "perform.  B<PACKET_MR_PROMISC> enables receiving all packets on a shared "
12312 "medium (often known as \"promiscuous mode\"), B<PACKET_MR_MULTICAST> binds "
12313 "the socket to the physical layer multicast group specified in B<mr_address> "
12314 "and B<mr_alen>, and B<PACKET_MR_ALLMULTI> sets the socket up to receive all "
12315 "multicast packets arriving at the interface."
12316 msgstr ""
12317
12318 #. type: Plain text
12319 #: build/C/man7/packet.7:236
12320 msgid ""
12321 "In addition, the traditional ioctls B<SIOCSIFFLAGS>, B<SIOCADDMULTI>, "
12322 "B<SIOCDELMULTI> can be used for the same purpose."
12323 msgstr ""
12324
12325 #. type: TP
12326 #: build/C/man7/packet.7:236
12327 #, no-wrap
12328 msgid "B<PACKET_AUXDATA> (since Linux 2.6.21)"
12329 msgstr ""
12330
12331 #.  commit 8dc4194474159660d7f37c495e3fc3f10d0db8cc
12332 #. type: Plain text
12333 #: build/C/man7/packet.7:246
12334 msgid ""
12335 "If this binary option is enabled, the packet socket passes a metadata "
12336 "structure along with each packet in the B<recvmsg>(2)  control field.  The "
12337 "structure can be read with B<cmsg>(3).  It is defined as"
12338 msgstr ""
12339
12340 #. type: Plain text
12341 #: build/C/man7/packet.7:258
12342 #, no-wrap
12343 msgid ""
12344 "struct tpacket_auxdata {\n"
12345 "    __u32 tp_status;\n"
12346 "    __u32 tp_len;      /* packet length */\n"
12347 "    __u32 tp_snaplen;  /* captured length */\n"
12348 "    __u16 tp_mac;\n"
12349 "    __u16 tp_net;\n"
12350 "    __u16 tp_vlan_tci;\n"
12351 "    __u16 tp_padding;\n"
12352 "};\n"
12353 msgstr ""
12354
12355 #. type: TP
12356 #: build/C/man7/packet.7:260
12357 #, no-wrap
12358 msgid "B<PACKET_FANOUT> (since Linux 3.1)"
12359 msgstr ""
12360
12361 #.  commit dc99f600698dcac69b8f56dda9a8a00d645c5ffc
12362 #. type: Plain text
12363 #: build/C/man7/packet.7:282
12364 msgid ""
12365 "To scale processing across threads, packet sockets can form a fanout group.  "
12366 "In this mode, each matching packet is enqueued onto only one socket in the "
12367 "group.  A socket joins a fanout group by calling B<setsockopt>(2)  with "
12368 "level B<SOL_PACKET> and option B<PACKET_FANOUT>.  Each network namespace can "
12369 "have up to 65536 independent groups.  A socket selects a group by encoding "
12370 "the ID in the first 16 bits of the integer option value.  The first packet "
12371 "socket to join a group implicitly creates it.  To successfully join an "
12372 "existing group, subsequent packet sockets must have the same protocol, "
12373 "device settings, fanout mode and flags (see below).  Packet sockets can "
12374 "leave a fanout group only by closing the socket.  The group is deleted when "
12375 "the last socket is closed."
12376 msgstr ""
12377
12378 #.  commit 2d36097d26b5991d71a2cf4a20c1a158f0f1bfcd
12379 #. type: Plain text
12380 #: build/C/man7/packet.7:305
12381 msgid ""
12382 "Fanout supports multiple algorithms to spread traffic between sockets.  The "
12383 "default mode, B<PACKET_FANOUT_HASH>, sends packets from the same flow to the "
12384 "same socket to maintain per-flow ordering.  For each packet, it chooses a "
12385 "socket by taking the packet flow hash modulo the number of sockets in the "
12386 "group, where a flow hash is a hash over network-layer address and optional "
12387 "transport-layer port fields.  The load-balance mode B<PACKET_FANOUT_LB> "
12388 "implements a round-robin algorithm.  B<PACKET_FANOUT_CPU> selects the socket "
12389 "based on the CPU that the packet arrived on.  B<PACKET_FANOUT_ROLLOVER> "
12390 "processes all data on a single socket, moves to the next when one becomes "
12391 "backlogged.  B<PACKET_FANOUT_RND> selects the socket using a pseudo-random "
12392 "number generator.  B<PACKET_FANOUT_QM> (available since Linux 3.14)  selects "
12393 "the socket using the recorded queue_mapping of the received skb."
12394 msgstr ""
12395
12396 #. type: Plain text
12397 #: build/C/man7/packet.7:320
12398 msgid ""
12399 "Fanout modes can take additional options.  IP fragmentation causes packets "
12400 "from the same flow to have different flow hashes.  The flag "
12401 "B<PACKET_FANOUT_FLAG_DEFRAG>, if set, causes packet to be defragmented "
12402 "before fanout is applied, to preserve order even in this case.  Fanout mode "
12403 "and options are communicated in the second 16 bits of the integer option "
12404 "value.  The flag B<PACKET_FANOUT_FLAG_ROLLOVER> enables the roll over "
12405 "mechanism as a backup strategy: if the original fanout algorithm selects a "
12406 "backlogged socket, the packet rolls over to the next available one."
12407 msgstr ""
12408
12409 #. type: TP
12410 #: build/C/man7/packet.7:320
12411 #, no-wrap
12412 msgid "B<PACKET_LOSS> (with B<PACKET_TX_RING>)"
12413 msgstr ""
12414
12415 #. type: Plain text
12416 #: build/C/man7/packet.7:325
12417 msgid ""
12418 "If set, do not silently drop a packet on transmission error, but return it "
12419 "with status set to B<TP_STATUS_WRONG_FORMAT>."
12420 msgstr ""
12421
12422 #. type: TP
12423 #: build/C/man7/packet.7:325
12424 #, no-wrap
12425 msgid "B<PACKET_RESERVE> (with B<PACKET_RX_RING>)"
12426 msgstr ""
12427
12428 #. type: Plain text
12429 #: build/C/man7/packet.7:330
12430 msgid ""
12431 "By default, a packet receive ring writes packets immediately following the "
12432 "metadata structure and alignment padding.  This integer option reserves "
12433 "additional headroom."
12434 msgstr ""
12435
12436 #. type: TP
12437 #: build/C/man7/packet.7:330
12438 #, no-wrap
12439 msgid "B<PACKET_RX_RING>"
12440 msgstr ""
12441
12442 #. type: Plain text
12443 #: build/C/man7/packet.7:370
12444 msgid ""
12445 "Create a memory-mapped ring buffer for asynchronous packet reception.  The "
12446 "packet socket reserves a contiguous region of application address space, "
12447 "lays it out into an array of packet slots and copies packets (up to "
12448 "I<tp_snaplen>)  into subsequent slots.  Each packet is preceded by a "
12449 "metadata structure similar to I<tpacket_auxdata>.  The protocol fields "
12450 "encode the offset to the data from the start of the metadata header.  "
12451 "I<tp_net> stores the offset to the network layer.  If the packet socket is "
12452 "of type B<SOCK_DGRAM>, then I<tp_mac> is the same.  If it is of type "
12453 "B<SOCK_RAW>, then that field stores the offset to the link-layer frame.  "
12454 "Packet socket and application communicate the head and tail of the ring "
12455 "through the I<tp_status> field.  The packet socket owns all slots with "
12456 "status B<TP_STATUS_KERNEL>.  After filling a slot, it changes the status of "
12457 "the slot to transfer ownership to the application.  During normal operation, "
12458 "the new status is B<TP_STATUS_USER>, to signal that a correctly received "
12459 "packet has been stored.  When the application has finished processing a "
12460 "packet, it transfers ownership of the slot back to the socket by setting the "
12461 "status to B<TP_STATUS_KERNEL>.  Packet sockets implement multiple variants "
12462 "of the packet ring.  The implementation details are described in "
12463 "I<Documentation/networking/packet_mmap.txt> in the Linux kernel source tree."
12464 msgstr ""
12465
12466 #. type: TP
12467 #: build/C/man7/packet.7:370
12468 #, no-wrap
12469 msgid "B<PACKET_STATISTICS>"
12470 msgstr ""
12471
12472 #. type: Plain text
12473 #: build/C/man7/packet.7:373
12474 msgid "Retrieve packet socket statistics in the form of a structure"
12475 msgstr ""
12476
12477 #. type: Plain text
12478 #: build/C/man7/packet.7:380
12479 #, no-wrap
12480 msgid ""
12481 "struct tpacket_stats {\n"
12482 "    unsigned int tp_packets;  /* Total packet count */\n"
12483 "    unsigned int tp_drops;    /* Dropped packet count */\n"
12484 "};\n"
12485 msgstr ""
12486
12487 #. type: Plain text
12488 #: build/C/man7/packet.7:386
12489 msgid ""
12490 "Receiving statistics resets the internal counters.  The statistics structure "
12491 "differs when using a ring of variant B<TPACKET_V3>."
12492 msgstr ""
12493
12494 #. type: TP
12495 #: build/C/man7/packet.7:386
12496 #, no-wrap
12497 msgid "B<PACKET_TIMESTAMP> (with B<PACKET_RX_RING>; since Linux 2.6.36)"
12498 msgstr ""
12499
12500 #.  commit 614f60fa9d73a9e8fdff3df83381907fea7c5649
12501 #. type: Plain text
12502 #: build/C/man7/packet.7:396
12503 msgid ""
12504 "The packet receive ring always stores a timestamp in the metadata header.  "
12505 "By default, this is a software generated timestamp generated when the packet "
12506 "is copied into the ring.  This integer option selects the type of "
12507 "timestamp.  Besides the default, it support the two hardware formats "
12508 "described in I<Documentation/networking/timestamping.txt> in the Linux "
12509 "kernel source tree."
12510 msgstr ""
12511
12512 #. type: TP
12513 #: build/C/man7/packet.7:396
12514 #, no-wrap
12515 msgid "B<PACKET_TX_RING> (since Linux 2.6.31)"
12516 msgstr ""
12517
12518 #.  commit 69e3c75f4d541a6eb151b3ef91f34033cb3ad6e1
12519 #. type: Plain text
12520 #: build/C/man7/packet.7:425
12521 msgid ""
12522 "Create a memory-mapped ring buffer for packet transmission.  This option is "
12523 "similar to B<PACKET_RX_RING> and takes the same arguments.  The application "
12524 "writes packets into slots with status B<TP_STATUS_AVAILABLE> and schedules "
12525 "them for transmission by changing the status to B<TP_STATUS_SEND_REQUEST>.  "
12526 "When packets are ready to be transmitted, the application calls B<send>(2)  "
12527 "or a variant thereof.  The I<buf> and I<len> fields of this call are "
12528 "ignored.  If an address is passed using B<sendto>(2)  or B<sendmsg>(2), then "
12529 "that overrides the socket default.  On successful transmission, the socket "
12530 "resets the slot to B<TP_STATUS_AVAILABLE>.  It discards packets silently on "
12531 "error unless B<PACKET_LOSS> is set."
12532 msgstr ""
12533
12534 #. type: TP
12535 #: build/C/man7/packet.7:425
12536 #, no-wrap
12537 msgid "B<PACKET_VERSION> (with B<PACKET_RX_RING>; since Linux 2.6.27)"
12538 msgstr ""
12539
12540 #.  commit bbd6ef87c544d88c30e4b762b1b61ef267a7d279
12541 #. type: Plain text
12542 #: build/C/man7/packet.7:434
12543 msgid ""
12544 "By default, B<PACKET_RX_RING> creates a packet receive ring of variant "
12545 "B<TPACKET_V1>.  To create another variant, configure the desired variant by "
12546 "setting this integer option before creating the ring."
12547 msgstr ""
12548
12549 #. type: TP
12550 #: build/C/man7/packet.7:434
12551 #, no-wrap
12552 msgid "B<PACKET_QDISC_BYPASS> (since Linux 3.14)"
12553 msgstr ""
12554
12555 #.  commit d346a3fae3ff1d99f5d0c819bf86edf9094a26a1
12556 #. type: Plain text
12557 #: build/C/man7/packet.7:449
12558 msgid ""
12559 "By default, packets sent through packet sockets pass through the kernel's "
12560 "qdisc (traffic control) layer, which is fine for the vast majority of use "
12561 "cases.  For traffic generator appliances using packet sockets that intend to "
12562 "brute-force flood the network\\(emfor example, to test devices under load in "
12563 "a similar fashion to pktgen\\(emthis layer can be bypassed by setting this "
12564 "integer option to 1.  A side effect is that packet buffering in the qdisc "
12565 "layer is avoided, which will lead to increased drops when network device "
12566 "transmit queues are busy; therefore, use at your own risk."
12567 msgstr ""
12568
12569 #.  FIXME Document SIOCGSTAMPNS
12570 #. type: Plain text
12571 #: build/C/man7/packet.7:456
12572 msgid ""
12573 "B<SIOCGSTAMP> can be used to receive the timestamp of the last received "
12574 "packet.  Argument is a I<struct timeval> variable."
12575 msgstr ""
12576
12577 #. type: Plain text
12578 #: build/C/man7/packet.7:462
12579 msgid ""
12580 "In addition, all standard ioctls defined in B<netdevice>(7)  and "
12581 "B<socket>(7)  are valid on packet sockets."
12582 msgstr ""
12583
12584 #. type: SS
12585 #: build/C/man7/packet.7:462 build/C/man7/raw.7:131 build/C/man7/tcp.7:1192 build/C/man7/udp.7:103
12586 #, no-wrap
12587 msgid "Error handling"
12588 msgstr ""
12589
12590 #. type: Plain text
12591 #: build/C/man7/packet.7:466
12592 msgid ""
12593 "Packet sockets do no error handling other than errors occurred while passing "
12594 "the packet to the device driver.  They don't have the concept of a pending "
12595 "error."
12596 msgstr ""
12597
12598 #. type: Plain text
12599 #: build/C/man7/packet.7:470
12600 msgid "Unknown multicast group address passed."
12601 msgstr ""
12602
12603 #. type: Plain text
12604 #: build/C/man7/packet.7:473
12605 msgid "User passed invalid memory address."
12606 msgstr ""
12607
12608 #. type: Plain text
12609 #: build/C/man7/packet.7:476 build/C/man7/raw.7:155
12610 msgid "Invalid argument."
12611 msgstr ""
12612
12613 #. type: Plain text
12614 #: build/C/man7/packet.7:479
12615 msgid "Packet is bigger than interface MTU."
12616 msgstr ""
12617
12618 #. type: TP
12619 #: build/C/man7/packet.7:479
12620 #, no-wrap
12621 msgid "B<ENETDOWN>"
12622 msgstr ""
12623
12624 #. type: Plain text
12625 #: build/C/man7/packet.7:482
12626 msgid "Interface is not up."
12627 msgstr ""
12628
12629 #. type: Plain text
12630 #: build/C/man7/packet.7:485
12631 msgid "Not enough memory to allocate the packet."
12632 msgstr ""
12633
12634 #. type: Plain text
12635 #: build/C/man7/packet.7:488
12636 msgid "Unknown device name or interface index specified in interface address."
12637 msgstr ""
12638
12639 #. type: Plain text
12640 #: build/C/man7/packet.7:491
12641 msgid "No packet received."
12642 msgstr ""
12643
12644 #. type: Plain text
12645 #: build/C/man7/packet.7:494
12646 msgid "No interface address passed."
12647 msgstr ""
12648
12649 #. type: TP
12650 #: build/C/man7/packet.7:494
12651 #, no-wrap
12652 msgid "B<ENXIO>"
12653 msgstr ""
12654
12655 #. type: Plain text
12656 #: build/C/man7/packet.7:497
12657 msgid "Interface address contained an invalid interface index."
12658 msgstr ""
12659
12660 #. type: Plain text
12661 #: build/C/man7/packet.7:500
12662 msgid "User has insufficient privileges to carry out this operation."
12663 msgstr ""
12664
12665 #. type: Plain text
12666 #: build/C/man7/packet.7:502
12667 msgid "In addition, other errors may be generated by the low-level driver."
12668 msgstr ""
12669
12670 #. type: Plain text
12671 #: build/C/man7/packet.7:507
12672 msgid ""
12673 "B<AF_PACKET> is a new feature in Linux 2.2.  Earlier Linux versions "
12674 "supported only B<SOCK_PACKET>."
12675 msgstr ""
12676
12677 #. type: Plain text
12678 #: build/C/man7/packet.7:512
12679 msgid ""
12680 "The include file I<E<lt>netpacket/packet.hE<gt>> is present since glibc "
12681 "2.1.  Older systems need:"
12682 msgstr ""
12683
12684 #. type: Plain text
12685 #: build/C/man7/packet.7:518
12686 #, no-wrap
12687 msgid ""
12688 "#include E<lt>asm/types.hE<gt>\n"
12689 "#include E<lt>linux/if_packet.hE<gt>\n"
12690 "#include E<lt>linux/if_ether.hE<gt>  /* The L2 protocols */\n"
12691 msgstr ""
12692
12693 #. type: Plain text
12694 #: build/C/man7/packet.7:528
12695 msgid ""
12696 "For portable programs it is suggested to use B<AF_PACKET> via B<pcap>(3); "
12697 "although this covers only a subset of the B<AF_PACKET> features."
12698 msgstr ""
12699
12700 #. type: Plain text
12701 #: build/C/man7/packet.7:549
12702 msgid ""
12703 "The B<SOCK_DGRAM> packet sockets make no attempt to create or parse the IEEE "
12704 "802.2 LLC header for a IEEE 802.3 frame.  When B<ETH_P_802_3> is specified "
12705 "as protocol for sending the kernel creates the 802.3 frame and fills out the "
12706 "length field; the user has to supply the LLC header to get a fully "
12707 "conforming packet.  Incoming 802.3 packets are not multiplexed on the "
12708 "DSAP/SSAP protocol fields; instead they are supplied to the user as protocol "
12709 "B<ETH_P_802_2> with the LLC header prefixed.  It is thus not possible to "
12710 "bind to B<ETH_P_802_3>; bind to B<ETH_P_802_2> instead and do the protocol "
12711 "multiplex yourself.  The default for sending is the standard Ethernet DIX "
12712 "encapsulation with the protocol filled in."
12713 msgstr ""
12714
12715 #. type: Plain text
12716 #: build/C/man7/packet.7:551
12717 msgid "Packet sockets are not subject to the input or output firewall chains."
12718 msgstr ""
12719
12720 #. type: Plain text
12721 #: build/C/man7/packet.7:561
12722 msgid ""
12723 "In Linux 2.0, the only way to get a packet socket was by calling "
12724 "B<socket(AF_INET, SOCK_PACKET, >I<protocol>B<)>.  This is still supported "
12725 "but strongly deprecated.  The main difference between the two methods is "
12726 "that B<SOCK_PACKET> uses the old I<struct sockaddr_pkt> to specify an "
12727 "interface, which doesn't provide physical layer independence."
12728 msgstr ""
12729
12730 #. type: Plain text
12731 #: build/C/man7/packet.7:569
12732 #, no-wrap
12733 msgid ""
12734 "struct sockaddr_pkt {\n"
12735 "    unsigned short spkt_family;\n"
12736 "    unsigned char  spkt_device[14];\n"
12737 "    unsigned short spkt_protocol;\n"
12738 "};\n"
12739 msgstr ""
12740
12741 #. type: Plain text
12742 #: build/C/man7/packet.7:581
12743 msgid ""
12744 "I<spkt_family> contains the device type, I<spkt_protocol> is the IEEE 802.3 "
12745 "protocol type as defined in I<E<lt>sys/if_ether.hE<gt>> and I<spkt_device> "
12746 "is the device name as a null-terminated string, for example, eth0."
12747 msgstr ""
12748
12749 #. type: Plain text
12750 #: build/C/man7/packet.7:583
12751 msgid "This structure is obsolete and should not be used in new code."
12752 msgstr ""
12753
12754 #. type: Plain text
12755 #: build/C/man7/packet.7:587
12756 msgid ""
12757 "glibc 2.1 does not have a define for B<SOL_PACKET>.  The suggested "
12758 "workaround is to use:"
12759 msgstr ""
12760
12761 #. type: Plain text
12762 #: build/C/man7/packet.7:593
12763 #, no-wrap
12764 msgid ""
12765 "#ifndef SOL_PACKET\n"
12766 "#define SOL_PACKET 263\n"
12767 "#endif\n"
12768 msgstr ""
12769
12770 #. type: Plain text
12771 #: build/C/man7/packet.7:598
12772 msgid ""
12773 "This is fixed in later glibc versions and also does not occur on libc5 "
12774 "systems."
12775 msgstr ""
12776
12777 #. type: Plain text
12778 #: build/C/man7/packet.7:600
12779 msgid "The IEEE 802.2/803.3 LLC handling could be considered as a bug."
12780 msgstr ""
12781
12782 #. type: Plain text
12783 #: build/C/man7/packet.7:602
12784 msgid "Socket filters are not documented."
12785 msgstr ""
12786
12787 #.  .SH CREDITS
12788 #.  This man page was written by Andi Kleen with help from Matthew Wilcox.
12789 #.  AF_PACKET in Linux 2.2 was implemented
12790 #.  by Alexey Kuznetsov, based on code by Alan Cox and others.
12791 #. type: Plain text
12792 #: build/C/man7/packet.7:614
12793 msgid ""
12794 "The B<MSG_TRUNC> B<recvmsg>(2)  extension is an ugly hack and should be "
12795 "replaced by a control message.  There is currently no way to get the "
12796 "original destination address of packets via B<SOCK_DGRAM>."
12797 msgstr ""
12798
12799 #. type: Plain text
12800 #: build/C/man7/packet.7:621
12801 msgid ""
12802 "B<socket>(2), B<pcap>(3), B<capabilities>(7), B<ip>(7), B<raw>(7), "
12803 "B<socket>(7)"
12804 msgstr ""
12805
12806 #. type: Plain text
12807 #: build/C/man7/packet.7:624
12808 msgid ""
12809 "RFC\\ 894 for the standard IP Ethernet encapsulation.  RFC\\ 1700 for the "
12810 "IEEE 802.3 IP encapsulation."
12811 msgstr ""
12812
12813 #. type: Plain text
12814 #: build/C/man7/packet.7:628
12815 msgid "The I<E<lt>linux/if_ether.hE<gt>> include file for physical layer protocols."
12816 msgstr ""
12817
12818 #. type: TH
12819 #: build/C/man5/protocols.5:29
12820 #, no-wrap
12821 msgid "PROTOCOLS"
12822 msgstr ""
12823
12824 #. type: TH
12825 #: build/C/man5/protocols.5:29 build/C/man7/x25.7:12
12826 #, no-wrap
12827 msgid "2012-08-05"
12828 msgstr ""
12829
12830 #. type: Plain text
12831 #: build/C/man5/protocols.5:32
12832 msgid "protocols - protocols definition file"
12833 msgstr ""
12834
12835 #. type: Plain text
12836 #: build/C/man5/protocols.5:40
12837 msgid ""
12838 "This file is a plain ASCII file, describing the various DARPA internet "
12839 "protocols that are available from the TCP/IP subsystem.  It should be "
12840 "consulted instead of using the numbers in the ARPA include files, or, even "
12841 "worse, just guessing them.  These numbers will occur in the protocol field "
12842 "of any IP header."
12843 msgstr ""
12844
12845 #.  .. by the DDN Network Information Center.
12846 #. type: Plain text
12847 #: build/C/man5/protocols.5:46
12848 msgid ""
12849 "Keep this file untouched since changes would result in incorrect IP "
12850 "packages.  Protocol numbers and names are specified by the IANA (Internet "
12851 "Assigned Numbers Authority)."
12852 msgstr ""
12853
12854 #. type: Plain text
12855 #: build/C/man5/protocols.5:48
12856 msgid "Each line is of the following format:"
12857 msgstr ""
12858
12859 #. type: Plain text
12860 #: build/C/man5/protocols.5:51
12861 msgid "I<protocol number aliases ...>"
12862 msgstr ""
12863
12864 #. type: Plain text
12865 #: build/C/man5/protocols.5:57
12866 msgid ""
12867 "where the fields are delimited by spaces or tabs.  Empty lines are ignored.  "
12868 "If a line contains a hash mark (#), the hash mark and the part of the line "
12869 "following it are ignored."
12870 msgstr ""
12871
12872 #. type: TP
12873 #: build/C/man5/protocols.5:59 build/C/man5/services.5:109
12874 #, no-wrap
12875 msgid "I<protocol>"
12876 msgstr ""
12877
12878 #. type: Plain text
12879 #: build/C/man5/protocols.5:67
12880 msgid "the native name for the protocol.  For example I<ip>, I<tcp>, or I<udp>."
12881 msgstr ""
12882
12883 #. type: Plain text
12884 #: build/C/man5/protocols.5:71
12885 msgid ""
12886 "the official number for this protocol as it will appear within the IP "
12887 "header."
12888 msgstr ""
12889
12890 #. type: Plain text
12891 #: build/C/man5/protocols.5:74
12892 msgid "optional aliases for the protocol."
12893 msgstr ""
12894
12895 #.  The following is not true as at glibc 2.8 (a line with a comma is
12896 #.  ignored by getservent()); it's not clear if/when it was ever true.
12897 #.    As a backward compatibility feature, the slash (/) between the
12898 #.    .I port
12899 #.    number and
12900 #.    .I protocol
12901 #.    name can in fact be either a slash or a comma (,).
12902 #.    Use of the comma in
12903 #.    modern installations is deprecated.
12904 #. type: Plain text
12905 #: build/C/man5/protocols.5:77 build/C/man5/services.5:165
12906 msgid ""
12907 "This file might be distributed over a network using a network-wide naming "
12908 "service like Yellow Pages/NIS or BIND/Hesiod."
12909 msgstr ""
12910
12911 #. type: Plain text
12912 #: build/C/man5/protocols.5:81
12913 msgid "The protocols definition file."
12914 msgstr ""
12915
12916 #. type: Plain text
12917 #: build/C/man5/protocols.5:83
12918 msgid "B<getprotoent>(3)"
12919 msgstr ""
12920
12921 #. type: Plain text
12922 #: build/C/man5/protocols.5:86
12923 msgid "E<.UR http://www.iana.org\\:/assignments\\:/protocol-numbers> E<.UE>"
12924 msgstr ""
12925
12926 #. type: TH
12927 #: build/C/man7/raw.7:13
12928 #, no-wrap
12929 msgid "RAW"
12930 msgstr ""
12931
12932 #. type: Plain text
12933 #: build/C/man7/raw.7:16
12934 msgid "raw - Linux IPv4 raw sockets"
12935 msgstr ""
12936
12937 #. type: Plain text
12938 #: build/C/man7/raw.7:22
12939 msgid "B<raw_socket = socket(AF_INET, SOCK_RAW, int >I<protocol>B<);>"
12940 msgstr ""
12941
12942 #. type: Plain text
12943 #: build/C/man7/raw.7:26
12944 msgid ""
12945 "Raw sockets allow new IPv4 protocols to be implemented in user space.  A raw "
12946 "socket receives or sends the raw datagram not including link level headers."
12947 msgstr ""
12948
12949 #. type: Plain text
12950 #: build/C/man7/raw.7:32
12951 msgid ""
12952 "The IPv4 layer generates an IP header when sending a packet unless the "
12953 "B<IP_HDRINCL> socket option is enabled on the socket.  When it is enabled, "
12954 "the packet must contain an IP header.  For receiving the IP header is always "
12955 "included in the packet."
12956 msgstr ""
12957
12958 #. type: Plain text
12959 #: build/C/man7/raw.7:36
12960 msgid ""
12961 "Only processes with an effective user ID of 0 or the B<CAP_NET_RAW> "
12962 "capability are allowed to open raw sockets."
12963 msgstr ""
12964
12965 #. type: Plain text
12966 #: build/C/man7/raw.7:43
12967 msgid ""
12968 "All packets or errors matching the I<protocol> number specified for the raw "
12969 "socket are passed to this socket.  For a list of the allowed protocols see "
12970 "RFC\\ 1700 assigned numbers and B<getprotobyname>(3)."
12971 msgstr ""
12972
12973 #. type: Plain text
12974 #: build/C/man7/raw.7:53
12975 msgid ""
12976 "A protocol of B<IPPROTO_RAW> implies enabled B<IP_HDRINCL> and is able to "
12977 "send any IP protocol that is specified in the passed header.  Receiving of "
12978 "all IP protocols via B<IPPROTO_RAW> is not possible using raw sockets."
12979 msgstr ""
12980
12981 #. type: tbl table
12982 #: build/C/man7/raw.7:58
12983 #, no-wrap
12984 msgid "IP Header fields modified on sending by B<IP_HDRINCL>\n"
12985 msgstr ""
12986
12987 #. type: tbl table
12988 #: build/C/man7/raw.7:59
12989 #, no-wrap
12990 msgid "IP Checksum:Always filled in.\n"
12991 msgstr ""
12992
12993 #. type: tbl table
12994 #: build/C/man7/raw.7:60
12995 #, no-wrap
12996 msgid "Source Address:Filled in when zero.\n"
12997 msgstr ""
12998
12999 #. type: tbl table
13000 #: build/C/man7/raw.7:61
13001 #, no-wrap
13002 msgid "Packet Id:Filled in when zero.\n"
13003 msgstr ""
13004
13005 #. type: tbl table
13006 #: build/C/man7/raw.7:62
13007 #, no-wrap
13008 msgid "Total Length:Always filled in.\n"
13009 msgstr ""
13010
13011 #. type: Plain text
13012 #: build/C/man7/raw.7:76
13013 msgid ""
13014 "If B<IP_HDRINCL> is specified and the IP header has a nonzero destination "
13015 "address then the destination address of the socket is used to route the "
13016 "packet.  When B<MSG_DONTROUTE> is specified, the destination address should "
13017 "refer to a local interface, otherwise a routing table lookup is done anyway "
13018 "but gatewayed routes are ignored."
13019 msgstr ""
13020
13021 #. type: Plain text
13022 #: build/C/man7/raw.7:84
13023 msgid ""
13024 "If B<IP_HDRINCL> isn't set, then IP header options can be set on raw sockets "
13025 "with B<setsockopt>(2); see B<ip>(7)  for more information."
13026 msgstr ""
13027
13028 #. type: Plain text
13029 #: build/C/man7/raw.7:89
13030 msgid ""
13031 "In Linux 2.2, all IP header fields and options can be set using IP socket "
13032 "options.  This means raw sockets are usually needed only for new protocols "
13033 "or protocols with no user interface (like ICMP)."
13034 msgstr ""
13035
13036 #. type: Plain text
13037 #: build/C/man7/raw.7:93
13038 msgid ""
13039 "When a packet is received, it is passed to any raw sockets which have been "
13040 "bound to its protocol before it is passed to other protocol handlers (e.g., "
13041 "kernel protocol modules)."
13042 msgstr ""
13043
13044 #. type: Plain text
13045 #: build/C/man7/raw.7:109
13046 msgid ""
13047 "Raw sockets use the standard I<sockaddr_in> address structure defined in "
13048 "B<ip>(7).  The I<sin_port> field could be used to specify the IP protocol "
13049 "number, but it is ignored for sending in Linux 2.2 and should be always set "
13050 "to 0 (see BUGS).  For incoming packets, I<sin_port> is set to the protocol "
13051 "of the packet.  See the I<E<lt>netinet/in.hE<gt>> include file for valid IP "
13052 "protocols."
13053 msgstr ""
13054
13055 #.  Or SOL_RAW on Linux
13056 #. type: Plain text
13057 #: build/C/man7/raw.7:118
13058 msgid ""
13059 "Raw socket options can be set with B<setsockopt>(2)  and read with "
13060 "B<getsockopt>(2)  by passing the B<IPPROTO_RAW> family flag."
13061 msgstr ""
13062
13063 #. type: TP
13064 #: build/C/man7/raw.7:118
13065 #, no-wrap
13066 msgid "B<ICMP_FILTER>"
13067 msgstr ""
13068
13069 #. type: Plain text
13070 #: build/C/man7/raw.7:126
13071 msgid ""
13072 "Enable a special filter for raw sockets bound to the B<IPPROTO_ICMP> "
13073 "protocol.  The value has a bit set for each ICMP message type which should "
13074 "be filtered out.  The default is to filter no ICMP messages."
13075 msgstr ""
13076
13077 #. type: Plain text
13078 #: build/C/man7/raw.7:131
13079 msgid ""
13080 "In addition, all B<ip>(7)  B<IPPROTO_IP> socket options valid for datagram "
13081 "sockets are supported."
13082 msgstr ""
13083
13084 #. type: Plain text
13085 #: build/C/man7/raw.7:144
13086 msgid ""
13087 "Errors originating from the network are passed to the user only when the "
13088 "socket is connected or the B<IP_RECVERR> flag is enabled.  For connected "
13089 "sockets, only B<EMSGSIZE> and B<EPROTO> are passed for compatibility.  With "
13090 "B<IP_RECVERR>, all network errors are saved in the error queue."
13091 msgstr ""
13092
13093 #. type: Plain text
13094 #: build/C/man7/raw.7:149
13095 msgid ""
13096 "User tried to send to a broadcast address without having the broadcast flag "
13097 "set on the socket."
13098 msgstr ""
13099
13100 #. type: Plain text
13101 #: build/C/man7/raw.7:152
13102 msgid "An invalid memory address was supplied."
13103 msgstr ""
13104
13105 #. type: Plain text
13106 #: build/C/man7/raw.7:162
13107 msgid ""
13108 "Packet too big.  Either Path MTU Discovery is enabled (the "
13109 "B<IP_MTU_DISCOVER> socket flag) or the packet size exceeds the maximum "
13110 "allowed IPv4 packet size of 64KB."
13111 msgstr ""
13112
13113 #. type: TP
13114 #: build/C/man7/raw.7:162 build/C/man7/unix.7:364
13115 #, no-wrap
13116 msgid "B<EOPNOTSUPP>"
13117 msgstr ""
13118
13119 #. type: Plain text
13120 #: build/C/man7/raw.7:166
13121 msgid "Invalid flag has been passed to a socket call (like B<MSG_OOB>)."
13122 msgstr ""
13123
13124 #. type: Plain text
13125 #: build/C/man7/raw.7:172
13126 msgid ""
13127 "The user doesn't have permission to open raw sockets.  Only processes with "
13128 "an effective user ID of 0 or the B<CAP_NET_RAW> attribute may do that."
13129 msgstr ""
13130
13131 #. type: TP
13132 #: build/C/man7/raw.7:172
13133 #, no-wrap
13134 msgid "B<EPROTO>"
13135 msgstr ""
13136
13137 #. type: Plain text
13138 #: build/C/man7/raw.7:175
13139 msgid "An ICMP error has arrived reporting a parameter problem."
13140 msgstr ""
13141
13142 #. type: Plain text
13143 #: build/C/man7/raw.7:181
13144 msgid ""
13145 "B<IP_RECVERR> and B<ICMP_FILTER> are new in Linux 2.2.  They are Linux "
13146 "extensions and should not be used in portable programs."
13147 msgstr ""
13148
13149 #. type: Plain text
13150 #: build/C/man7/raw.7:187
13151 msgid ""
13152 "Linux 2.0 enabled some bug-to-bug compatibility with BSD in the raw socket "
13153 "code when the B<SO_BSDCOMPAT> socket option was set \\(em since Linux 2.2, "
13154 "this option no longer has that effect."
13155 msgstr ""
13156
13157 #. type: Plain text
13158 #: build/C/man7/raw.7:205
13159 msgid ""
13160 "By default, raw sockets do path MTU (Maximum Transmission Unit) discovery.  "
13161 "This means the kernel will keep track of the MTU to a specific target IP "
13162 "address and return B<EMSGSIZE> when a raw packet write exceeds it.  When "
13163 "this happens, the application should decrease the packet size.  Path MTU "
13164 "discovery can be also turned off using the B<IP_MTU_DISCOVER> socket option "
13165 "or the I</proc/sys/net/ipv4/ip_no_pmtu_disc> file, see B<ip>(7)  for "
13166 "details.  When turned off, raw sockets will fragment outgoing packets that "
13167 "exceed the interface MTU.  However, disabling it is not recommended for "
13168 "performance and reliability reasons."
13169 msgstr ""
13170
13171 #. type: Plain text
13172 #: build/C/man7/raw.7:214
13173 msgid ""
13174 "A raw socket can be bound to a specific local address using the B<bind>(2)  "
13175 "call.  If it isn't bound, all packets with the specified IP protocol are "
13176 "received.  In addition, a RAW socket can be bound to a specific network "
13177 "device using B<SO_BINDTODEVICE>; see B<socket>(7)."
13178 msgstr ""
13179
13180 #. type: Plain text
13181 #: build/C/man7/raw.7:225
13182 msgid ""
13183 "An B<IPPROTO_RAW> socket is send only.  If you really want to receive all IP "
13184 "packets, use a B<packet>(7)  socket with the B<ETH_P_IP> protocol.  Note "
13185 "that packet sockets don't reassemble IP fragments, unlike raw sockets."
13186 msgstr ""
13187
13188 #. type: Plain text
13189 #: build/C/man7/raw.7:231
13190 msgid ""
13191 "If you want to receive all ICMP packets for a datagram socket, it is often "
13192 "better to use B<IP_RECVERR> on that particular socket; see B<ip>(7)."
13193 msgstr ""
13194
13195 #. type: Plain text
13196 #: build/C/man7/raw.7:238
13197 msgid ""
13198 "Raw sockets may tap all IP protocols in Linux, even protocols like ICMP or "
13199 "TCP which have a protocol module in the kernel.  In this case, the packets "
13200 "are passed to both the kernel module and the raw socket(s).  This should not "
13201 "be relied upon in portable programs, many other BSD socket implementation "
13202 "have limitations here."
13203 msgstr ""
13204
13205 #. type: Plain text
13206 #: build/C/man7/raw.7:243
13207 msgid ""
13208 "Linux never changes headers passed from the user (except for filling in some "
13209 "zeroed fields as described for B<IP_HDRINCL>).  This differs from many other "
13210 "implementations of raw sockets."
13211 msgstr ""
13212
13213 #. type: Plain text
13214 #: build/C/man7/raw.7:246
13215 msgid ""
13216 "RAW sockets are generally rather unportable and should be avoided in "
13217 "programs intended to be portable."
13218 msgstr ""
13219
13220 #. type: Plain text
13221 #: build/C/man7/raw.7:252
13222 msgid ""
13223 "Sending on raw sockets should take the IP protocol from I<sin_port>; this "
13224 "ability was lost in Linux 2.2.  The workaround is to use B<IP_HDRINCL>."
13225 msgstr ""
13226
13227 #. type: Plain text
13228 #: build/C/man7/raw.7:254
13229 msgid "Transparent proxy extensions are not described."
13230 msgstr ""
13231
13232 #. type: Plain text
13233 #: build/C/man7/raw.7:259
13234 msgid ""
13235 "When the B<IP_HDRINCL> option is set, datagrams will not be fragmented and "
13236 "are limited to the interface MTU."
13237 msgstr ""
13238
13239 #.  .SH AUTHORS
13240 #.  This man page was written by Andi Kleen.
13241 #. type: Plain text
13242 #: build/C/man7/raw.7:269
13243 msgid ""
13244 "Setting the IP protocol for sending in I<sin_port> got lost in Linux 2.2.  "
13245 "The protocol that the socket was bound to or that was specified in the "
13246 "initial B<socket>(2)  call is always used."
13247 msgstr ""
13248
13249 #. type: Plain text
13250 #: build/C/man7/raw.7:275
13251 msgid "B<recvmsg>(2), B<sendmsg>(2), B<capabilities>(7), B<ip>(7), B<socket>(7)"
13252 msgstr ""
13253
13254 #. type: Plain text
13255 #: build/C/man7/raw.7:282
13256 msgid ""
13257 "B<RFC\\ 1191> for path MTU discovery.  B<RFC\\ 791> and the "
13258 "I<E<lt>linux/ip.hE<gt>> header file for the IP protocol."
13259 msgstr ""
13260
13261 #. type: TH
13262 #: build/C/man3/rcmd.3:43
13263 #, no-wrap
13264 msgid "RCMD"
13265 msgstr ""
13266
13267 #. type: TH
13268 #: build/C/man3/rcmd.3:43
13269 #, no-wrap
13270 msgid "2012-04-23"
13271 msgstr ""
13272
13273 #. type: Plain text
13274 #: build/C/man3/rcmd.3:48
13275 msgid ""
13276 "rcmd, rresvport, iruserok, ruserok, rcmd_af, rresvport_af, iruserok_af, "
13277 "ruserok_af - routines for returning a stream to a remote command"
13278 msgstr ""
13279
13280 #. type: Plain text
13281 #: build/C/man3/rcmd.3:51
13282 #, no-wrap
13283 msgid ""
13284 "B<#include E<lt>netdb.hE<gt> \\ \\ >/* Or E<lt>unistd.hE<gt> on some systems "
13285 "*/\n"
13286 msgstr ""
13287
13288 #. type: Plain text
13289 #: build/C/man3/rcmd.3:54
13290 #, no-wrap
13291 msgid ""
13292 "B<int rcmd(char **>I<ahost>B<, int >I<inport>B<, const char *>I<locuser>B<, "
13293 ">\n"
13294 "B<         const char *>I<remuser>B<, const char *>I<cmd>B<, int "
13295 "*>I<fd2p>B<);>\n"
13296 msgstr ""
13297
13298 #. type: Plain text
13299 #: build/C/man3/rcmd.3:56
13300 #, no-wrap
13301 msgid "B<int rresvport(int *>I<port>B<);>\n"
13302 msgstr ""
13303
13304 #. type: Plain text
13305 #: build/C/man3/rcmd.3:59
13306 #, no-wrap
13307 msgid ""
13308 "B<int iruserok(uint32_t >I<raddr>B<, int >I<superuser>B<, >\n"
13309 "B<             const char *>I<ruser>B<, const char *>I<luser>B<);>\n"
13310 msgstr ""
13311
13312 #. type: Plain text
13313 #: build/C/man3/rcmd.3:62
13314 #, no-wrap
13315 msgid ""
13316 "B<int ruserok(const char *>I<rhost>B<, int >I<superuser>B<, >\n"
13317 "B<            const char *>I<ruser>B<, const char *>I<luser>B<);>\n"
13318 msgstr ""
13319
13320 #. type: Plain text
13321 #: build/C/man3/rcmd.3:66
13322 #, no-wrap
13323 msgid ""
13324 "B<int rcmd_af(char **>I<ahost>B<, int >I<inport>B<, const char "
13325 "*>I<locuser>B<, >\n"
13326 "B<            const char *>I<remuser>B<, const char *>I<cmd>B<, int "
13327 "*>I<fd2p>B<,>\n"
13328 "B<            sa_family_t >I<af>B<);>\n"
13329 msgstr ""
13330
13331 #. type: Plain text
13332 #: build/C/man3/rcmd.3:68
13333 #, no-wrap
13334 msgid "B<int rresvport_af(int *>I<port>B<, sa_family_t >I<af>B<);>\n"
13335 msgstr ""
13336
13337 #. type: Plain text
13338 #: build/C/man3/rcmd.3:72
13339 #, no-wrap
13340 msgid ""
13341 "B<int iruserok_af(uint32_t >I<raddr>B<, int >I<superuser>B<, >\n"
13342 "B<                const char *>I<ruser>B<, const char *>I<luser>B<, "
13343 "sa_family_t >I<af>B<);>\n"
13344 msgstr ""
13345
13346 #. type: Plain text
13347 #: build/C/man3/rcmd.3:76
13348 #, no-wrap
13349 msgid ""
13350 "B<int ruserok_af(const char *>I<rhost>B<, int >I<superuser>B<, >\n"
13351 "B<               const char *>I<ruser>B<, const char *>I<luser>B<, "
13352 "sa_family_t >I<af>B<);>\n"
13353 msgstr ""
13354
13355 #. type: Plain text
13356 #: build/C/man3/rcmd.3:92
13357 msgid ""
13358 "B<rcmd>(), B<rcmd_af>(), B<rresvport>(), B<rresvport_af>(), B<iruserok>(), "
13359 "B<iruserok_af>(), B<ruserok>(), B<ruserok_af>(): _BSD_SOURCE"
13360 msgstr ""
13361
13362 #. type: Plain text
13363 #: build/C/man3/rcmd.3:113
13364 msgid ""
13365 "The B<rcmd>()  function is used by the superuser to execute a command on a "
13366 "remote machine using an authentication scheme based on privileged port "
13367 "numbers.  The B<rresvport>()  function returns a descriptor to a socket with "
13368 "an address in the privileged port space.  The B<iruserok>()  and "
13369 "B<ruserok>()  functions are used by servers to authenticate clients "
13370 "requesting service with B<rcmd>().  All four functions are used by the "
13371 "B<rshd>(8)  server (among others)."
13372 msgstr ""
13373
13374 #. type: SS
13375 #: build/C/man3/rcmd.3:113
13376 #, no-wrap
13377 msgid "rcmd()"
13378 msgstr ""
13379
13380 #. type: Plain text
13381 #: build/C/man3/rcmd.3:129
13382 msgid ""
13383 "The B<rcmd>()  function looks up the host I<*ahost> using "
13384 "B<gethostbyname>(3), returning -1 if the host does not exist.  Otherwise "
13385 "I<*ahost> is set to the standard name of the host and a connection is "
13386 "established to a server residing at the well-known Internet port I<inport>."
13387 msgstr ""
13388
13389 #. type: Plain text
13390 #: build/C/man3/rcmd.3:158
13391 msgid ""
13392 "If the connection succeeds, a socket in the Internet domain of type "
13393 "B<SOCK_STREAM> is returned to the caller, and given to the remote command as "
13394 "I<stdin> and I<stdout>.  If I<fd2p> is nonzero, then an auxiliary channel to "
13395 "a control process will be set up, and a descriptor for it will be placed in "
13396 "I<*fd2p>.  The control process will return diagnostic output from the "
13397 "command (unit 2) on this channel, and will also accept bytes on this channel "
13398 "as being UNIX signal numbers, to be forwarded to the process group of the "
13399 "command.  If I<fd2p> is 0, then the I<stderr> (unit 2 of the remote command) "
13400 "will be made the same as the I<stdout> and no provision is made for sending "
13401 "arbitrary signals to the remote process, although you may be able to get its "
13402 "attention by using out-of-band data."
13403 msgstr ""
13404
13405 #. type: Plain text
13406 #: build/C/man3/rcmd.3:161
13407 msgid "The protocol is described in detail in B<rshd>(8)."
13408 msgstr ""
13409
13410 #. type: SS
13411 #: build/C/man3/rcmd.3:161
13412 #, no-wrap
13413 msgid "rresvport()"
13414 msgstr ""
13415
13416 #. type: Plain text
13417 #: build/C/man3/rcmd.3:183
13418 msgid ""
13419 "The B<rresvport>()  function is used to obtain a socket with a privileged "
13420 "port bound to it.  This socket is suitable for use by B<rcmd>()  and several "
13421 "other functions.  Privileged ports are those in the range 0 to 1023.  Only a "
13422 "privileged process (B<CAP_NET_BIND_SERVICE>)  is allowed to bind to a "
13423 "privileged port.  In the glibc implementation, this function restricts its "
13424 "search to the ports from 512 to 1023.  The I<port> argument is value-result: "
13425 "the value it supplies to the call is used as the starting point for a "
13426 "circular search of the port range; on (successful) return, it contains the "
13427 "port number that was bound to."
13428 msgstr ""
13429
13430 #. type: SS
13431 #: build/C/man3/rcmd.3:183
13432 #, no-wrap
13433 msgid "iruserok() and ruserok()"
13434 msgstr ""
13435
13436 #. type: Plain text
13437 #: build/C/man3/rcmd.3:201
13438 msgid ""
13439 "The B<iruserok>()  and B<ruserok>()  functions take a remote host's IP "
13440 "address or name, respectively, two usernames and a flag indicating whether "
13441 "the local user's name is that of the superuser.  Then, if the user is I<not> "
13442 "the superuser, it checks the I</etc/hosts.equiv> file.  If that lookup is "
13443 "not done, or is unsuccessful, the I<.rhosts> in the local user's home "
13444 "directory is checked to see if the request for service is allowed."
13445 msgstr ""
13446
13447 #. type: Plain text
13448 #: build/C/man3/rcmd.3:217
13449 msgid ""
13450 "If this file does not exist, is not a regular file, is owned by anyone other "
13451 "than the user or the superuser, or is writable by anyone other than the "
13452 "owner, the check automatically fails.  Zero is returned if the machine name "
13453 "is listed in the I<hosts.equiv> file, or the host and remote username are "
13454 "found in the I<.rhosts> file; otherwise B<iruserok>()  and B<ruserok>()  "
13455 "return -1.  If the local domain (as obtained from B<gethostname>(2))  is the "
13456 "same as the remote domain, only the machine name need be specified."
13457 msgstr ""
13458
13459 #. type: Plain text
13460 #: build/C/man3/rcmd.3:223
13461 msgid ""
13462 "If the IP address of the remote host is known, B<iruserok>()  should be used "
13463 "in preference to B<ruserok>(), as it does not require trusting the DNS "
13464 "server for the remote host's domain."
13465 msgstr ""
13466
13467 #. type: SS
13468 #: build/C/man3/rcmd.3:223
13469 #, no-wrap
13470 msgid "*_af() variants"
13471 msgstr ""
13472
13473 #. type: Plain text
13474 #: build/C/man3/rcmd.3:239
13475 msgid ""
13476 "All of the functions described above work with IPv4 (B<AF_INET>)  sockets.  "
13477 "The \"_af\" variants take an extra argument that allows the socket address "
13478 "family to be specified.  For these functions, the I<af> argument can be "
13479 "specified as B<AF_INET> or B<AF_INET6>.  In addition, B<rcmd_af>()  supports "
13480 "the use of B<AF_UNSPEC>."
13481 msgstr ""
13482
13483 #. type: Plain text
13484 #: build/C/man3/rcmd.3:245
13485 msgid ""
13486 "The B<rcmd>()  function returns a valid socket descriptor on success.  It "
13487 "returns -1 on error and prints a diagnostic message on the standard error."
13488 msgstr ""
13489
13490 #. type: Plain text
13491 #: build/C/man3/rcmd.3:256
13492 msgid ""
13493 "The B<rresvport>()  function returns a valid, bound socket descriptor on "
13494 "success.  It returns -1 on error with the global value I<errno> set "
13495 "according to the reason for failure.  The error code B<EAGAIN> is overloaded "
13496 "to mean \"All network ports in use.\""
13497 msgstr ""
13498
13499 #. type: Plain text
13500 #: build/C/man3/rcmd.3:262
13501 msgid ""
13502 "For information on the return from B<ruserok>()  and B<iruserok>(), see "
13503 "above."
13504 msgstr ""
13505
13506 #. type: Plain text
13507 #: build/C/man3/rcmd.3:270
13508 msgid ""
13509 "The functions B<iruserok_af>(), B<rcmd_af>(), B<rresvport_af>(), and "
13510 "B<ruserok_af>()  functions are provide in glibc since version 2.2."
13511 msgstr ""
13512
13513 #. type: Plain text
13514 #: build/C/man3/rcmd.3:278
13515 msgid ""
13516 "Not in POSIX.1-2001.  Present on the BSDs, Solaris, and many other systems.  "
13517 "These functions appeared in 4.2BSD.  The \"_af\" variants are more recent "
13518 "additions, and are not present on as wide a range of systems."
13519 msgstr ""
13520
13521 #.  Bug filed 25 Nov 2007:
13522 #.  http://sources.redhat.com/bugzilla/show_bug.cgi?id=5399
13523 #. type: Plain text
13524 #: build/C/man3/rcmd.3:285
13525 msgid ""
13526 "B<iruserok>()  and B<iruserok_af>()  are declared in glibc headers only "
13527 "since version 2.12."
13528 msgstr ""
13529
13530 #. type: Plain text
13531 #: build/C/man3/rcmd.3:293
13532 msgid ""
13533 "B<rlogin>(1), B<rsh>(1), B<intro>(2), B<rexec>(3), B<rexecd>(8), "
13534 "B<rlogind>(8), B<rshd>(8)"
13535 msgstr ""
13536
13537 #. type: TH
13538 #: build/C/man5/resolv.conf.5:23
13539 #, no-wrap
13540 msgid "RESOLV.CONF"
13541 msgstr ""
13542
13543 #. type: TH
13544 #: build/C/man5/resolv.conf.5:23
13545 #, no-wrap
13546 msgid "2014-02-22"
13547 msgstr ""
13548
13549 #. type: Plain text
13550 #: build/C/man5/resolv.conf.5:27
13551 msgid "resolv.conf - resolver configuration file"
13552 msgstr ""
13553
13554 #. type: Plain text
13555 #: build/C/man5/resolv.conf.5:29
13556 msgid "B</etc/resolv.conf>"
13557 msgstr ""
13558
13559 #. type: Plain text
13560 #: build/C/man5/resolv.conf.5:41
13561 msgid ""
13562 "The I<resolver> is a set of routines in the C library that provide access to "
13563 "the Internet Domain Name System (DNS).  The resolver configuration file "
13564 "contains information that is read by the resolver routines the first time "
13565 "they are invoked by a process.  The file is designed to be human readable "
13566 "and contains a list of keywords with values that provide various types of "
13567 "resolver information.  The configuration file is considered a trusted source "
13568 "of DNS information (e.g., DNSSEC AD-bit information will be returned "
13569 "unmodified from this source)."
13570 msgstr ""
13571
13572 #. type: Plain text
13573 #: build/C/man5/resolv.conf.5:46
13574 msgid ""
13575 "If this file does not exist, only the name server on the local machine will "
13576 "be queried; the domain name is determined from the hostname and the domain "
13577 "search path is constructed from the domain name."
13578 msgstr ""
13579
13580 #. type: Plain text
13581 #: build/C/man5/resolv.conf.5:48
13582 msgid "The different configuration options are:"
13583 msgstr ""
13584
13585 #. type: TP
13586 #: build/C/man5/resolv.conf.5:48
13587 #, no-wrap
13588 msgid "B<nameserver> Name server IP address"
13589 msgstr ""
13590
13591 #. type: Plain text
13592 #: build/C/man5/resolv.conf.5:65
13593 msgid ""
13594 "Internet address of a name server that the resolver should query, either an "
13595 "IPv4 address (in dot notation), or an IPv6 address in colon (and possibly "
13596 "dot) notation as per RFC 2373.  Up to B<MAXNS> (currently 3, see "
13597 "I<E<lt>resolv.hE<gt>>) name servers may be listed, one per keyword.  If "
13598 "there are multiple servers, the resolver library queries them in the order "
13599 "listed.  If no B<nameserver> entries are present, the default is to use the "
13600 "name server on the local machine.  (The algorithm used is to try a name "
13601 "server, and if the query times out, try the next, until out of name servers, "
13602 "then repeat trying all the name servers until a maximum number of retries "
13603 "are made.)"
13604 msgstr ""
13605
13606 #. type: TP
13607 #: build/C/man5/resolv.conf.5:65
13608 #, no-wrap
13609 msgid "B<domain> Local domain name."
13610 msgstr ""
13611
13612 #. type: Plain text
13613 #: build/C/man5/resolv.conf.5:76
13614 msgid ""
13615 "Most queries for names within this domain can use short names relative to "
13616 "the local domain.  If set to \\(aq.\\(aq, the root domain is considered.  If "
13617 "no B<domain> entry is present, the domain is determined from the local "
13618 "hostname returned by B<gethostname>(2); the domain part is taken to be "
13619 "everything after the first \\(aq.\\(aq.  Finally, if the hostname does not "
13620 "contain a domain part, the root domain is assumed."
13621 msgstr ""
13622
13623 #. type: TP
13624 #: build/C/man5/resolv.conf.5:76
13625 #, no-wrap
13626 msgid "B<search> Search list for host-name lookup."
13627 msgstr ""
13628
13629 #.  When having a resolv.conv with a line
13630 #.   search subdomain.domain.tld domain.tld
13631 #.  and doing a hostlookup, for example by
13632 #.   ping host.anothersubdomain
13633 #.  it sends dns-requests for
13634 #.   host.anothersubdomain.
13635 #.   host.anothersubdomain.subdomain.domain.tld.
13636 #.   host.anothersubdomain.domain.tld.
13637 #.  thus not only causing unnecessary traffic for the root-dns-servers
13638 #.  but broadcasting information to the outside and making man-in-the-middle
13639 #.  attacks possible.
13640 #. type: Plain text
13641 #: build/C/man5/resolv.conf.5:106
13642 msgid ""
13643 "The search list is normally determined from the local domain name; by "
13644 "default, it contains only the local domain name.  This may be changed by "
13645 "listing the desired domain search path following the I<search> keyword with "
13646 "spaces or tabs separating the names.  Resolver queries having fewer than "
13647 "I<ndots> dots (default is 1) in them will be attempted using each component "
13648 "of the search path in turn until a match is found.  For environments with "
13649 "multiple subdomains please read B<options ndots:>I<n> below to avoid "
13650 "man-in-the-middle attacks and unnecessary traffic for the root-dns-servers.  "
13651 "Note that this process may be slow and will generate a lot of network "
13652 "traffic if the servers for the listed domains are not local, and that "
13653 "queries will time out if no server is available for one of the domains."
13654 msgstr ""
13655
13656 #. type: Plain text
13657 #: build/C/man5/resolv.conf.5:109
13658 msgid ""
13659 "The search list is currently limited to six domains with a total of 256 "
13660 "characters."
13661 msgstr ""
13662
13663 #. type: TP
13664 #: build/C/man5/resolv.conf.5:109
13665 #, no-wrap
13666 msgid "B<sortlist>"
13667 msgstr ""
13668
13669 #. type: Plain text
13670 #: build/C/man5/resolv.conf.5:122
13671 msgid ""
13672 "This option allows addresses returned by B<gethostbyname>(3)  to be sorted.  "
13673 "A sortlist is specified by IP-address-netmask pairs.  The netmask is "
13674 "optional and defaults to the natural netmask of the net.  The IP address and "
13675 "optional network pairs are separated by slashes.  Up to 10 pairs may be "
13676 "specified.  Here is an example:"
13677 msgstr ""
13678
13679 #. type: Plain text
13680 #: build/C/man5/resolv.conf.5:125
13681 msgid "sortlist 130.155.160.0/255.255.240.0 130.155.0.0"
13682 msgstr ""
13683
13684 #. type: TP
13685 #: build/C/man5/resolv.conf.5:127
13686 #, no-wrap
13687 msgid "B<options>"
13688 msgstr ""
13689
13690 #. type: Plain text
13691 #: build/C/man5/resolv.conf.5:131
13692 msgid ""
13693 "Options allows certain internal resolver variables to be modified.  The "
13694 "syntax is"
13695 msgstr ""
13696
13697 #. type: Plain text
13698 #: build/C/man5/resolv.conf.5:134
13699 msgid "B<options> I<option> I<...>"
13700 msgstr ""
13701
13702 #. type: Plain text
13703 #: build/C/man5/resolv.conf.5:136
13704 msgid "where I<option> is one of the following:"
13705 msgstr ""
13706
13707 #. type: TP
13708 #: build/C/man5/resolv.conf.5:136
13709 #, no-wrap
13710 msgid "B<debug>"
13711 msgstr ""
13712
13713 #.  Since glibc 2.2?
13714 #. type: Plain text
13715 #: build/C/man5/resolv.conf.5:145
13716 msgid ""
13717 "sets B<RES_DEBUG> in I<_res.options> (effective only if glibc was built with "
13718 "debug support; see B<resolver>(3))."
13719 msgstr ""
13720
13721 #. type: TP
13722 #: build/C/man5/resolv.conf.5:145
13723 #, no-wrap
13724 msgid "B<ndots:>I<n>"
13725 msgstr ""
13726
13727 #.  Since glibc 2.2
13728 #. type: Plain text
13729 #: build/C/man5/resolv.conf.5:159
13730 msgid ""
13731 "sets a threshold for the number of dots which must appear in a name given to "
13732 "B<res_query>(3)  (see B<resolver>(3))  before an I<initial absolute query> "
13733 "will be made.  The default for I<n> is 1, meaning that if there are any dots "
13734 "in a name, the name will be tried first as an absolute name before any "
13735 "I<search list> elements are appended to it.  The value for this option is "
13736 "silently capped to 15."
13737 msgstr ""
13738
13739 #. type: TP
13740 #: build/C/man5/resolv.conf.5:159
13741 #, no-wrap
13742 msgid "B<timeout:>I<n>"
13743 msgstr ""
13744
13745 #.  Since glibc 2.2
13746 #. type: Plain text
13747 #: build/C/man5/resolv.conf.5:170
13748 msgid ""
13749 "sets the amount of time the resolver will wait for a response from a remote "
13750 "name server before retrying the query via a different name server.  Measured "
13751 "in seconds, the default is B<RES_TIMEOUT> (currently 5, see "
13752 "I<E<lt>resolv.hE<gt>>).  The value for this option is silently capped to 30."
13753 msgstr ""
13754
13755 #. type: TP
13756 #: build/C/man5/resolv.conf.5:170
13757 #, no-wrap
13758 msgid "B<attempts:>I<n>"
13759 msgstr ""
13760
13761 #. type: Plain text
13762 #: build/C/man5/resolv.conf.5:179
13763 msgid ""
13764 "sets the number of times the resolver will send a query to its name servers "
13765 "before giving up and returning an error to the calling application.  The "
13766 "default is B<RES_DFLRETRY> (currently 2, see I<E<lt>resolv.hE<gt>>).  The "
13767 "value for this option is silently capped to 5."
13768 msgstr ""
13769
13770 #. type: TP
13771 #: build/C/man5/resolv.conf.5:179
13772 #, no-wrap
13773 msgid "B<rotate>"
13774 msgstr ""
13775
13776 #.  Since glibc 2.2
13777 #. type: Plain text
13778 #: build/C/man5/resolv.conf.5:189
13779 msgid ""
13780 "sets B<RES_ROTATE> in I<_res.options>, which causes round-robin selection of "
13781 "name servers from among those listed.  This has the effect of spreading the "
13782 "query load among all listed servers, rather than having all clients try the "
13783 "first listed server first every time."
13784 msgstr ""
13785
13786 #. type: TP
13787 #: build/C/man5/resolv.conf.5:189
13788 #, no-wrap
13789 msgid "B<no-check-names>"
13790 msgstr ""
13791
13792 #.  since glibc 2.2
13793 #. type: Plain text
13794 #: build/C/man5/resolv.conf.5:199
13795 msgid ""
13796 "sets B<RES_NOCHECKNAME> in I<_res.options>, which disables the modern BIND "
13797 "checking of incoming hostnames and mail names for invalid characters such as "
13798 "underscore (_), non-ASCII, or control characters."
13799 msgstr ""
13800
13801 #. type: TP
13802 #: build/C/man5/resolv.conf.5:199
13803 #, no-wrap
13804 msgid "B<inet6>"
13805 msgstr ""
13806
13807 #.  Since glibc 2.2
13808 #. type: Plain text
13809 #: build/C/man5/resolv.conf.5:210
13810 msgid ""
13811 "sets B<RES_USE_INET6> in I<_res.options>.  This has the effect of trying a "
13812 "AAAA query before an A query inside the B<gethostbyname>(3)  function, and "
13813 "of mapping IPv4 responses in IPv6 \"tunneled form\" if no AAAA records are "
13814 "found but an A record set exists."
13815 msgstr ""
13816
13817 #. type: TP
13818 #: build/C/man5/resolv.conf.5:210
13819 #, no-wrap
13820 msgid "B<ip6-bytestring> (since glibc 2.3.4)"
13821 msgstr ""
13822
13823 #. type: Plain text
13824 #: build/C/man5/resolv.conf.5:219
13825 msgid ""
13826 "sets B<RES_USE_BSTRING> in I<_res.options>.  This causes reverse IPv6 "
13827 "lookups to be made using the bit-label format described in RFC\\ 2673; if "
13828 "this option is not set, then nibble format is used."
13829 msgstr ""
13830
13831 #. type: TP
13832 #: build/C/man5/resolv.conf.5:219
13833 #, no-wrap
13834 msgid "B<ip6-dotint>/B<no-ip6-dotint> (since glibc 2.3.4)"
13835 msgstr ""
13836
13837 #. type: Plain text
13838 #: build/C/man5/resolv.conf.5:236
13839 msgid ""
13840 "Clear/set B<RES_NOIP6DOTINT> in I<_res.options>.  When this option is clear "
13841 "(B<ip6-dotint>), reverse IPv6 lookups are made in the (deprecated)  "
13842 "I<ip6.int> zone; when this option is set (B<no-ip6-dotint>), reverse IPv6 "
13843 "lookups are made in the I<ip6.arpa> zone by default.  This option is set by "
13844 "default."
13845 msgstr ""
13846
13847 #. type: TP
13848 #: build/C/man5/resolv.conf.5:236
13849 #, no-wrap
13850 msgid "B<edns0> (since glibc 2.6)"
13851 msgstr ""
13852
13853 #. type: Plain text
13854 #: build/C/man5/resolv.conf.5:243
13855 msgid ""
13856 "sets B<RES_USE_EDNSO> in I<_res.options>.  This enables support for the DNS "
13857 "extensions described in RFC\\ 2671."
13858 msgstr ""
13859
13860 #. type: TP
13861 #: build/C/man5/resolv.conf.5:243
13862 #, no-wrap
13863 msgid "B<single-request> (since glibc 2.10)"
13864 msgstr ""
13865
13866 #. type: Plain text
13867 #: build/C/man5/resolv.conf.5:256
13868 msgid ""
13869 "sets B<RES_SNGLKUP> in I<_res.options>.  By default, glibc performs IPv4 and "
13870 "IPv6 lookups in parallel since version 2.9.  Some appliance DNS servers "
13871 "cannot handle these queries properly and make the requests time out.  This "
13872 "option disables the behavior and makes glibc perform the IPv6 and IPv4 "
13873 "requests sequentially (at the cost of some slowdown of the resolving "
13874 "process)."
13875 msgstr ""
13876
13877 #. type: TP
13878 #: build/C/man5/resolv.conf.5:256
13879 #, no-wrap
13880 msgid "B<single-request-reopen> (since glibc 2.9)"
13881 msgstr ""
13882
13883 #. type: Plain text
13884 #: build/C/man5/resolv.conf.5:264
13885 msgid ""
13886 "The resolver uses the same socket for the A and AAAA requests.  Some "
13887 "hardware mistakenly sends back only one reply.  When that happens the client "
13888 "system will sit and wait for the second reply.  Turning this option on "
13889 "changes this behavior so that if two requests from the same port are not "
13890 "handled correctly it will close the socket and open a new one before sending "
13891 "the second request."
13892 msgstr ""
13893
13894 #. type: Plain text
13895 #: build/C/man5/resolv.conf.5:269
13896 msgid ""
13897 "The I<domain> and I<search> keywords are mutually exclusive.  If more than "
13898 "one instance of these keywords is present, the last instance wins."
13899 msgstr ""
13900
13901 #. type: Plain text
13902 #: build/C/man5/resolv.conf.5:274
13903 msgid ""
13904 "The I<search> keyword of a system's I<resolv.conf> file can be overridden on "
13905 "a per-process basis by setting the environment variable B<LOCALDOMAIN> to a "
13906 "space-separated list of search domains."
13907 msgstr ""
13908
13909 #. type: Plain text
13910 #: build/C/man5/resolv.conf.5:280
13911 msgid ""
13912 "The I<options> keyword of a system's I<resolv.conf> file can be amended on a "
13913 "per-process basis by setting the environment variable B<RES_OPTIONS> to a "
13914 "space-separated list of resolver options as explained above under "
13915 "B<options>."
13916 msgstr ""
13917
13918 #. type: Plain text
13919 #: build/C/man5/resolv.conf.5:284
13920 msgid ""
13921 "The keyword and value must appear on a single line, and the keyword (e.g., "
13922 "B<nameserver>) must start the line.  The value follows the keyword, "
13923 "separated by white space."
13924 msgstr ""
13925
13926 #. type: Plain text
13927 #: build/C/man5/resolv.conf.5:287
13928 msgid ""
13929 "Lines that contain a semicolon (;) or hash character (#)  in the first "
13930 "column are treated as comments."
13931 msgstr ""
13932
13933 #. type: Plain text
13934 #: build/C/man5/resolv.conf.5:290
13935 msgid "I</etc/resolv.conf>, I<E<lt>resolv.hE<gt>>"
13936 msgstr ""
13937
13938 #. type: Plain text
13939 #: build/C/man5/resolv.conf.5:295
13940 msgid "B<gethostbyname>(3), B<resolver>(3), B<hostname>(7), B<named>(8)"
13941 msgstr ""
13942
13943 #. type: Plain text
13944 #: build/C/man5/resolv.conf.5:297
13945 msgid "Name Server Operations Guide for BIND"
13946 msgstr ""
13947
13948 #. type: TH
13949 #: build/C/man3/resolver.3:32
13950 #, no-wrap
13951 msgid "RESOLVER"
13952 msgstr ""
13953
13954 #. type: TH
13955 #: build/C/man3/resolver.3:32
13956 #, no-wrap
13957 msgid "2013-03-05"
13958 msgstr ""
13959
13960 #. type: Plain text
13961 #: build/C/man3/resolver.3:36
13962 msgid ""
13963 "res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, "
13964 "dn_comp, dn_expand - resolver routines"
13965 msgstr ""
13966
13967 #. type: Plain text
13968 #: build/C/man3/resolver.3:42
13969 #, no-wrap
13970 msgid ""
13971 "B<#include E<lt>netinet/in.hE<gt>>\n"
13972 "B<#include E<lt>arpa/nameser.hE<gt>>\n"
13973 "B<#include E<lt>resolv.hE<gt>>\n"
13974 "B<extern struct state _res;>\n"
13975 msgstr ""
13976
13977 #. type: Plain text
13978 #: build/C/man3/resolver.3:44
13979 #, no-wrap
13980 msgid "B<int res_init(void);>\n"
13981 msgstr ""
13982
13983 #. type: Plain text
13984 #: build/C/man3/resolver.3:46
13985 #, no-wrap
13986 msgid "B<int res_query(const char *>I<dname>B<, int >I<class>B<, int >I<type>B<,>\n"
13987 msgstr ""
13988
13989 #. type: Plain text
13990 #: build/C/man3/resolver.3:48 build/C/man3/resolver.3:53
13991 #, no-wrap
13992 msgid "B<unsigned char *>I<answer>B<, int >I<anslen>B<);>\n"
13993 msgstr ""
13994
13995 #. type: Plain text
13996 #: build/C/man3/resolver.3:51
13997 #, no-wrap
13998 msgid ""
13999 "B<int res_search(const char *>I<dname>B<, int >I<class>B<, int "
14000 ">I<type>B<,>\n"
14001 msgstr ""
14002
14003 #. type: Plain text
14004 #: build/C/man3/resolver.3:56
14005 #, no-wrap
14006 msgid "B<int res_querydomain(const char *>I<name>B<, const char *>I<domain>B<,>\n"
14007 msgstr ""
14008
14009 #. type: Plain text
14010 #: build/C/man3/resolver.3:59
14011 #, no-wrap
14012 msgid ""
14013 "B<int >I<class>B<, int >I<type>B<, unsigned char *>I<answer>B<,>\n"
14014 "B<int >I<anslen>B<);>\n"
14015 msgstr ""
14016
14017 #. type: Plain text
14018 #: build/C/man3/resolver.3:62
14019 #, no-wrap
14020 msgid "B<int res_mkquery(int >I<op>B<, const char *>I<dname>B<, int >I<class>B<,>\n"
14021 msgstr ""
14022
14023 #. type: Plain text
14024 #: build/C/man3/resolver.3:65
14025 #, no-wrap
14026 msgid ""
14027 "B<int >I<type>B<, char *>I<data>B<, int >I<datalen>B<, struct rrec "
14028 "*>I<newrr>B<,>\n"
14029 "B<char *>I<buf>B<, int >I<buflen>B<);>\n"
14030 msgstr ""
14031
14032 #. type: Plain text
14033 #: build/C/man3/resolver.3:68
14034 #, no-wrap
14035 msgid ""
14036 "B<int res_send(const char *>I<msg>B<, int >I<msglen>B<, char "
14037 "*>I<answer>B<,>\n"
14038 msgstr ""
14039
14040 #. type: Plain text
14041 #: build/C/man3/resolver.3:70
14042 #, no-wrap
14043 msgid "B<int >I<anslen>B<);>\n"
14044 msgstr ""
14045
14046 #. type: Plain text
14047 #: build/C/man3/resolver.3:73
14048 #, no-wrap
14049 msgid "B<int dn_comp(unsigned char *>I<exp_dn>B<, unsigned char *>I<comp_dn>B<,>\n"
14050 msgstr ""
14051
14052 #. type: Plain text
14053 #: build/C/man3/resolver.3:75
14054 #, no-wrap
14055 msgid ""
14056 "B<int >I<length>B<, unsigned char **>I<dnptrs>B<, unsigned char "
14057 "**>I<lastdnptr>B<);>\n"
14058 msgstr ""
14059
14060 #. type: Plain text
14061 #: build/C/man3/resolver.3:78
14062 #, no-wrap
14063 msgid "B<int dn_expand(unsigned char *>I<msg>B<, unsigned char *>I<eomorig>B<,>\n"
14064 msgstr ""
14065
14066 #. type: Plain text
14067 #: build/C/man3/resolver.3:81
14068 #, no-wrap
14069 msgid ""
14070 "B<unsigned char *>I<comp_dn>B<, char *>I<exp_dn>B<,>\n"
14071 "B<int >I<length>B<);>\n"
14072 msgstr ""
14073
14074 #. type: Plain text
14075 #: build/C/man3/resolver.3:85
14076 msgid "Link with I<-lresolv>."
14077 msgstr ""
14078
14079 #. type: Plain text
14080 #: build/C/man3/resolver.3:88
14081 msgid ""
14082 "These functions make queries to and interpret the responses from Internet "
14083 "domain name servers."
14084 msgstr ""
14085
14086 #. type: Plain text
14087 #: build/C/man3/resolver.3:102
14088 msgid ""
14089 "The B<res_init>()  function reads the configuration files (see "
14090 "B<resolv.conf>(5))  to get the default domain name, search order and name "
14091 "server address(es).  If no server is given, the local host is tried.  If no "
14092 "domain is given, that associated with the local host is used.  It can be "
14093 "overridden with the environment variable B<LOCALDOMAIN>.  B<res_init>()  is "
14094 "normally executed by the first call to one of the other functions."
14095 msgstr ""
14096
14097 #. type: Plain text
14098 #: build/C/man3/resolver.3:110
14099 msgid ""
14100 "The B<res_query>()  function queries the name server for the fully qualified "
14101 "domain name I<name> of specified I<type> and I<class>.  The reply is left in "
14102 "the buffer I<answer> of length I<anslen> supplied by the caller."
14103 msgstr ""
14104
14105 #. type: Plain text
14106 #: build/C/man3/resolver.3:123
14107 msgid ""
14108 "The B<res_search>()  function makes a query and waits for the response like "
14109 "B<res_query>(), but in addition implements the default and search rules "
14110 "controlled by B<RES_DEFNAMES> and B<RES_DNSRCH> (see description of I<_res> "
14111 "options below)."
14112 msgstr ""
14113
14114 #. type: Plain text
14115 #: build/C/man3/resolver.3:129
14116 msgid ""
14117 "The B<res_querydomain>()  function makes a query using B<res_query>()  on "
14118 "the concatenation of I<name> and I<domain>."
14119 msgstr ""
14120
14121 #. type: Plain text
14122 #: build/C/man3/resolver.3:132
14123 msgid "The following functions are lower-level routines used by B<res_query>()."
14124 msgstr ""
14125
14126 #. type: Plain text
14127 #: build/C/man3/resolver.3:143
14128 msgid ""
14129 "The B<res_mkquery>()  function constructs a query message in I<buf> of "
14130 "length I<buflen> for the domain name I<dname>.  The query type I<op> is "
14131 "usually B<QUERY>, but can be any of the types defined in "
14132 "I<E<lt>arpa/nameser.hE<gt>>.  I<newrr> is currently unused."
14133 msgstr ""
14134
14135 #. type: Plain text
14136 #: build/C/man3/resolver.3:153
14137 msgid ""
14138 "The B<res_send>()  function sends a preformatted query given in I<msg> of "
14139 "length I<msglen> and returns the answer in I<answer> which is of length "
14140 "I<anslen>.  It will call B<res_init>(), if it has not already been called."
14141 msgstr ""
14142
14143 #. type: Plain text
14144 #: build/C/man3/resolver.3:166
14145 msgid ""
14146 "The B<dn_comp>()  function compresses the domain name I<exp_dn> and stores "
14147 "it in the buffer I<comp_dn> of length I<length>.  The compression uses an "
14148 "array of pointers I<dnptrs> to previously compressed names in the current "
14149 "message.  The first pointer points to the beginning of the message and the "
14150 "list ends with NULL.  The limit of the array is specified by I<lastdnptr>.  "
14151 "If I<dnptr> is NULL, domain names are not compressed.  If I<lastdnptr> is "
14152 "NULL, the list of labels is not updated."
14153 msgstr ""
14154
14155 #. type: Plain text
14156 #: build/C/man3/resolver.3:175
14157 msgid ""
14158 "The B<dn_expand>()  function expands the compressed domain name I<comp_dn> "
14159 "to a full domain name, which is placed in the buffer I<exp_dn> of size "
14160 "I<length>.  The compressed name is contained in a query or reply message, "
14161 "and I<msg> points to the beginning of the message."
14162 msgstr ""
14163
14164 #. type: Plain text
14165 #: build/C/man3/resolver.3:183
14166 msgid ""
14167 "The resolver routines use global configuration and state information "
14168 "contained in the structure I<_res>, which is defined in "
14169 "I<E<lt>resolv.hE<gt>>.  The only field that is normally manipulated by the "
14170 "user is I<_res.options>.  This field can contain the bitwise \"OR\" of the "
14171 "following options:"
14172 msgstr ""
14173
14174 #. type: TP
14175 #: build/C/man3/resolver.3:183
14176 #, no-wrap
14177 msgid "B<RES_INIT>"
14178 msgstr ""
14179
14180 #. type: Plain text
14181 #: build/C/man3/resolver.3:188
14182 msgid "True if B<res_init>()  has been called."
14183 msgstr ""
14184
14185 #. type: TP
14186 #: build/C/man3/resolver.3:188
14187 #, no-wrap
14188 msgid "B<RES_DEBUG>"
14189 msgstr ""
14190
14191 #.  See resolv/README.
14192 #.  Support for RES_DEBUG was made conditional in glibc 2.2.
14193 #. type: Plain text
14194 #: build/C/man3/resolver.3:195
14195 msgid ""
14196 "Print debugging messages.  This option is available only if glibc was built "
14197 "with debugging enabled, which is not the default."
14198 msgstr ""
14199
14200 #. type: TP
14201 #: build/C/man3/resolver.3:195
14202 #, no-wrap
14203 msgid "B<RES_AAONLY>"
14204 msgstr ""
14205
14206 #. type: Plain text
14207 #: build/C/man3/resolver.3:202
14208 msgid ""
14209 "Accept authoritative answers only.  B<res_send>()  continues until it finds "
14210 "an authoritative answer or returns an error.  [Not currently implemented]."
14211 msgstr ""
14212
14213 #. type: TP
14214 #: build/C/man3/resolver.3:202
14215 #, no-wrap
14216 msgid "B<RES_USEVC>"
14217 msgstr ""
14218
14219 #. type: Plain text
14220 #: build/C/man3/resolver.3:205
14221 msgid "Use TCP connections for queries rather than UDP datagrams."
14222 msgstr ""
14223
14224 #. type: TP
14225 #: build/C/man3/resolver.3:205
14226 #, no-wrap
14227 msgid "B<RES_PRIMARY>"
14228 msgstr ""
14229
14230 #. type: Plain text
14231 #: build/C/man3/resolver.3:208
14232 msgid "Query primary domain name server only."
14233 msgstr ""
14234
14235 #. type: TP
14236 #: build/C/man3/resolver.3:208
14237 #, no-wrap
14238 msgid "B<RES_IGNTC>"
14239 msgstr ""
14240
14241 #. type: Plain text
14242 #: build/C/man3/resolver.3:213
14243 msgid ""
14244 "Ignore truncation errors.  Don't retry with TCP.  [Not currently "
14245 "implemented]."
14246 msgstr ""
14247
14248 #. type: TP
14249 #: build/C/man3/resolver.3:213
14250 #, no-wrap
14251 msgid "B<RES_RECURSE>"
14252 msgstr ""
14253
14254 #. type: Plain text
14255 #: build/C/man3/resolver.3:220
14256 msgid ""
14257 "Set the recursion desired bit in queries.  Recursion is carried out by the "
14258 "domain name server, not by B<res_send>().  [Enabled by default]."
14259 msgstr ""
14260
14261 #. type: TP
14262 #: build/C/man3/resolver.3:220
14263 #, no-wrap
14264 msgid "B<RES_DEFNAMES>"
14265 msgstr ""
14266
14267 #. type: Plain text
14268 #: build/C/man3/resolver.3:227
14269 msgid ""
14270 "If set, B<res_search>()  will append the default domain name to single "
14271 "component names\\(emthat is, those that do not contain a dot.  [Enabled by "
14272 "default]."
14273 msgstr ""
14274
14275 #. type: TP
14276 #: build/C/man3/resolver.3:227
14277 #, no-wrap
14278 msgid "B<RES_STAYOPEN>"
14279 msgstr ""
14280
14281 #. type: Plain text
14282 #: build/C/man3/resolver.3:232
14283 msgid "Used with B<RES_USEVC> to keep the TCP connection open between queries."
14284 msgstr ""
14285
14286 #. type: TP
14287 #: build/C/man3/resolver.3:232
14288 #, no-wrap
14289 msgid "B<RES_DNSRCH>"
14290 msgstr ""
14291
14292 #. type: Plain text
14293 #: build/C/man3/resolver.3:241
14294 msgid ""
14295 "If set, B<res_search>()  will search for hostnames in the current domain and "
14296 "in parent domains.  This option is used by B<gethostbyname>(3).  [Enabled by "
14297 "default]."
14298 msgstr ""
14299
14300 #. type: Plain text
14301 #: build/C/man3/resolver.3:245
14302 msgid ""
14303 "This list is not complete.  You can find some other flags described in "
14304 "B<resolv.conf>(5)."
14305 msgstr ""
14306
14307 #. type: Plain text
14308 #: build/C/man3/resolver.3:250
14309 msgid "The B<res_init>()  function returns 0 on success, or -1 if an error occurs."
14310 msgstr ""
14311
14312 #. type: Plain text
14313 #: build/C/man3/resolver.3:260
14314 msgid ""
14315 "The B<res_query>(), B<res_search>(), B<res_querydomain>(), B<res_mkquery>()  "
14316 "and B<res_send>()  functions return the length of the response, or -1 if an "
14317 "error occurs."
14318 msgstr ""
14319
14320 #. type: Plain text
14321 #: build/C/man3/resolver.3:267
14322 msgid ""
14323 "The B<dn_comp>()  and B<dn_expand>()  functions return the length of the "
14324 "compressed name, or -1 if an error occurs."
14325 msgstr ""
14326
14327 #. type: Plain text
14328 #: build/C/man3/resolver.3:271
14329 #, no-wrap
14330 msgid ""
14331 "/etc/resolv.conf          resolver configuration file\n"
14332 "/etc/host.conf            resolver configuration file\n"
14333 msgstr ""
14334
14335 #. type: Plain text
14336 #: build/C/man3/resolver.3:274
14337 msgid "4.3BSD."
14338 msgstr ""
14339
14340 #. type: Plain text
14341 #: build/C/man3/resolver.3:280
14342 msgid ""
14343 "B<gethostbyname>(3), B<resolv.conf>(5), B<resolver>(5), B<hostname>(7), "
14344 "B<named>(8)"
14345 msgstr ""
14346
14347 #. type: TH
14348 #: build/C/man3/rexec.3:41
14349 #, no-wrap
14350 msgid "REXEC"
14351 msgstr ""
14352
14353 #. type: TH
14354 #: build/C/man3/rexec.3:41
14355 #, no-wrap
14356 msgid "2013-09-26"
14357 msgstr ""
14358
14359 #. type: Plain text
14360 #: build/C/man3/rexec.3:44
14361 msgid "rexec, rexec_af - return stream to a remote command"
14362 msgstr ""
14363
14364 #. type: Plain text
14365 #: build/C/man3/rexec.3:48
14366 #, no-wrap
14367 msgid ""
14368 "B<#define _BSD_SOURCE>             /* See feature_test_macros(7) */\n"
14369 "B<#include E<lt>netdb.hE<gt>>\n"
14370 msgstr ""
14371
14372 #. type: Plain text
14373 #: build/C/man3/rexec.3:51
14374 #, no-wrap
14375 msgid ""
14376 "B<int rexec(char **>I<ahost>B<, int >I<inport>B<, char *>I<user>B<, >\n"
14377 "B<          char *>I<passwd>B<, char *>I<cmd>B<, int *>I<fd2p>B<);>\n"
14378 msgstr ""
14379
14380 #. type: Plain text
14381 #: build/C/man3/rexec.3:55
14382 #, no-wrap
14383 msgid ""
14384 "B<int rexec_af(char **>I<ahost>B<, int >I<inport>B<, char *>I<user>B<, >\n"
14385 "B<             char *>I<passwd>B<, char *>I<cmd>B<, int *>I<fd2p>B<,>\n"
14386 "B<             sa_family_t >I<af>B<);>\n"
14387 msgstr ""
14388
14389 #. type: Plain text
14390 #: build/C/man3/rexec.3:59
14391 msgid "This interface is obsoleted by B<rcmd>(3)."
14392 msgstr ""
14393
14394 #. type: Plain text
14395 #: build/C/man3/rexec.3:78
14396 msgid ""
14397 "The B<rexec>()  function looks up the host I<*ahost> using "
14398 "B<gethostbyname>(3), returning -1 if the host does not exist.  Otherwise "
14399 "I<*ahost> is set to the standard name of the host.  If a username and "
14400 "password are both specified, then these are used to authenticate to the "
14401 "foreign host; otherwise the environment and then the I<.netrc> file in "
14402 "user's home directory are searched for appropriate information.  If all this "
14403 "fails, the user is prompted for the information."
14404 msgstr ""
14405
14406 #. type: Plain text
14407 #: build/C/man3/rexec.3:89
14408 msgid ""
14409 "The port I<inport> specifies which well-known DARPA Internet port to use for "
14410 "the connection; the call I<getservbyname(\"exec\", \"tcp\")> (see "
14411 "B<getservent>(3))  will return a pointer to a structure that contains the "
14412 "necessary port.  The protocol for connection is described in detail in "
14413 "B<rexecd>(8)."
14414 msgstr ""
14415
14416 #. type: Plain text
14417 #: build/C/man3/rexec.3:122
14418 msgid ""
14419 "If the connection succeeds, a socket in the Internet domain of type "
14420 "B<SOCK_STREAM> is returned to the caller, and given to the remote command as "
14421 "I<stdin> and I<stdout>.  If I<fd2p> is nonzero, then an auxiliary channel to "
14422 "a control process will be setup, and a descriptor for it will be placed in "
14423 "I<*fd2p>.  The control process will return diagnostic output from the "
14424 "command (unit 2) on this channel, and will also accept bytes on this channel "
14425 "as being UNIX signal numbers, to be forwarded to the process group of the "
14426 "command.  The diagnostic information returned does not include remote "
14427 "authorization failure, as the secondary connection is set up after "
14428 "authorization has been verified.  If I<fd2p> is 0, then the I<stderr> (unit "
14429 "2 of the remote command) will be made the same as the I<stdout> and no "
14430 "provision is made for sending arbitrary signals to the remote process, "
14431 "although you may be able to get its attention by using out-of-band data."
14432 msgstr ""
14433
14434 #. type: SS
14435 #: build/C/man3/rexec.3:122
14436 #, no-wrap
14437 msgid "rexec_af()"
14438 msgstr ""
14439
14440 #. type: Plain text
14441 #: build/C/man3/rexec.3:138
14442 msgid ""
14443 "The B<rexec>()  function works over IPv4 (B<AF_INET>).  By contrast, the "
14444 "B<rexec_af>()  function provides an extra argument, I<af>, that allows the "
14445 "caller to select the protocol.  This argument can be specified as "
14446 "B<AF_INET>, B<AF_INET6>, or B<AF_UNSPEC> (to allow the implementation to "
14447 "select the protocol)."
14448 msgstr ""
14449
14450 #. type: Plain text
14451 #: build/C/man3/rexec.3:142
14452 msgid "The B<rexec_af>()  function was added to glibc in version 2.2."
14453 msgstr ""
14454
14455 #. type: Plain text
14456 #: build/C/man3/rexec.3:149
14457 msgid "The B<rexec>()  and B<rexec_af>()  functions are not thread-safe."
14458 msgstr ""
14459
14460 #. type: Plain text
14461 #: build/C/man3/rexec.3:158
14462 msgid ""
14463 "These functions are not in POSIX.1-2001.  The B<rexec>()  function first "
14464 "appeared in 4.2BSD, and is present on the BSDs, Solaris, and many other "
14465 "systems.  The B<rexec_af>()  function is more recent, and less widespread."
14466 msgstr ""
14467
14468 #. type: Plain text
14469 #: build/C/man3/rexec.3:162
14470 msgid "The B<rexec>()  function sends the unencrypted password across the network."
14471 msgstr ""
14472
14473 #. type: Plain text
14474 #: build/C/man3/rexec.3:167
14475 msgid ""
14476 "The underlying service is considered a big security hole and therefore not "
14477 "enabled on many sites; see B<rexecd>(8)  for explanations."
14478 msgstr ""
14479
14480 #. type: Plain text
14481 #: build/C/man3/rexec.3:170
14482 msgid "B<rcmd>(3), B<rexecd>(8)"
14483 msgstr ""
14484
14485 #. type: TH
14486 #: build/C/man5/services.5:34
14487 #, no-wrap
14488 msgid "SERVICES"
14489 msgstr ""
14490
14491 #. type: TH
14492 #: build/C/man5/services.5:34
14493 #, no-wrap
14494 msgid "2010-05-22"
14495 msgstr ""
14496
14497 #. type: Plain text
14498 #: build/C/man5/services.5:37
14499 msgid "services - Internet network services list"
14500 msgstr ""
14501
14502 #. type: Plain text
14503 #: build/C/man5/services.5:52
14504 msgid ""
14505 "B<services> is a plain ASCII file providing a mapping between human-friendly "
14506 "textual names for internet services, and their underlying assigned port "
14507 "numbers and protocol types.  Every networking program should look into this "
14508 "file to get the port number (and protocol) for its service.  The C library "
14509 "routines B<getservent>(3), B<getservbyname>(3), B<getservbyport>(3), "
14510 "B<setservent>(3), and B<endservent>(3)  support querying this file from "
14511 "programs."
14512 msgstr ""
14513
14514 #. type: Plain text
14515 #: build/C/man5/services.5:58
14516 msgid ""
14517 "Port numbers are assigned by the IANA (Internet Assigned Numbers Authority), "
14518 "and their current policy is to assign both TCP and UDP protocols when "
14519 "assigning a port number.  Therefore, most entries will have two entries, "
14520 "even for TCP-only services."
14521 msgstr ""
14522
14523 #. type: Plain text
14524 #: build/C/man5/services.5:70
14525 msgid ""
14526 "Port numbers below 1024 (so-called \"low numbered\" ports) can be bound to "
14527 "only by root (see B<bind>(2), B<tcp>(7), and B<udp>(7)).  This is so clients "
14528 "connecting to low numbered ports can trust that the service running on the "
14529 "port is the standard implementation, and not a rogue service run by a user "
14530 "of the machine.  Well-known port numbers specified by the IANA are normally "
14531 "located in this root-only space."
14532 msgstr ""
14533
14534 #. type: Plain text
14535 #: build/C/man5/services.5:85
14536 msgid ""
14537 "The presence of an entry for a service in the B<services> file does not "
14538 "necessarily mean that the service is currently running on the machine.  See "
14539 "B<inetd.conf>(5)  for the configuration of Internet services offered.  Note "
14540 "that not all networking services are started by B<inetd>(8), and so won't "
14541 "appear in B<inetd.conf>(5).  In particular, news (NNTP) and mail (SMTP) "
14542 "servers are often initialized from the system boot scripts."
14543 msgstr ""
14544
14545 #. type: Plain text
14546 #: build/C/man5/services.5:94
14547 msgid ""
14548 "The location of the B<services> file is defined by B<_PATH_SERVICES> in "
14549 "I<E<lt>netdb.hE<gt>>.  This is usually set to I</etc/services>."
14550 msgstr ""
14551
14552 #. type: Plain text
14553 #: build/C/man5/services.5:96
14554 msgid "Each line describes one service, and is of the form:"
14555 msgstr ""
14556
14557 #. type: Plain text
14558 #: build/C/man5/services.5:98
14559 msgid "I<service-name\\ \\ \\ port>B</>I<protocol\\ \\ \\ >[I<aliases ...>]"
14560 msgstr ""
14561
14562 #. type: TP
14563 #: build/C/man5/services.5:98
14564 #, no-wrap
14565 msgid "where:"
14566 msgstr ""
14567
14568 #. type: TP
14569 #: build/C/man5/services.5:100
14570 #, no-wrap
14571 msgid "I<service-name>"
14572 msgstr ""
14573
14574 #. type: Plain text
14575 #: build/C/man5/services.5:106
14576 msgid ""
14577 "is the friendly name the service is known by and looked up under.  It is "
14578 "case sensitive.  Often, the client program is named after the "
14579 "I<service-name>."
14580 msgstr ""
14581
14582 #. type: TP
14583 #: build/C/man5/services.5:106
14584 #, no-wrap
14585 msgid "I<port>"
14586 msgstr ""
14587
14588 #. type: Plain text
14589 #: build/C/man5/services.5:109
14590 msgid "is the port number (in decimal) to use for this service."
14591 msgstr ""
14592
14593 #. type: Plain text
14594 #: build/C/man5/services.5:120
14595 msgid ""
14596 "is the type of protocol to be used.  This field should match an entry in the "
14597 "B<protocols>(5)  file.  Typical values include B<tcp> and B<udp>."
14598 msgstr ""
14599
14600 #. type: Plain text
14601 #: build/C/man5/services.5:126
14602 msgid ""
14603 "is an optional space or tab separated list of other names for this service.  "
14604 "Again, the names are case sensitive."
14605 msgstr ""
14606
14607 #. type: Plain text
14608 #: build/C/man5/services.5:128
14609 msgid "Either spaces or tabs may be used to separate the fields."
14610 msgstr ""
14611
14612 #. type: Plain text
14613 #: build/C/man5/services.5:132
14614 msgid ""
14615 "Comments are started by the hash sign (#) and continue until the end of the "
14616 "line.  Blank lines are skipped."
14617 msgstr ""
14618
14619 #. type: Plain text
14620 #: build/C/man5/services.5:143
14621 msgid ""
14622 "The I<service-name> should begin in the first column of the file, since "
14623 "leading spaces are not stripped.  I<service-names> can be any printable "
14624 "characters excluding space and tab.  However, a conservative choice of "
14625 "characters should be used to minimize compatibility problems.  E.g., a-z, "
14626 "0-9, and hyphen (-) would seem a sensible choice."
14627 msgstr ""
14628
14629 #. type: Plain text
14630 #: build/C/man5/services.5:152
14631 msgid ""
14632 "Lines not matching this format should not be present in the file.  "
14633 "(Currently, they are silently skipped by B<getservent>(3), "
14634 "B<getservbyname>(3), and B<getservbyport>(3).  However, this behavior should "
14635 "not be relied on.)"
14636 msgstr ""
14637
14638 #. type: Plain text
14639 #: build/C/man5/services.5:169
14640 msgid "A sample B<services> file might look like this:"
14641 msgstr ""
14642
14643 #. type: Plain text
14644 #: build/C/man5/services.5:182
14645 #, no-wrap
14646 msgid ""
14647 "CW<netstat         15/tcp\n"
14648 "qotd            17/tcp          quote\n"
14649 "msp             18/tcp          # message send protocol\n"
14650 "msp             18/udp          # message send protocol\n"
14651 "chargen         19/tcp          ttytst source\n"
14652 "chargen         19/udp          ttytst source\n"
14653 "ftp             21/tcp\n"
14654 "# 22 - unassigned\n"
14655 "telnet          23/tcp>\n"
14656 msgstr ""
14657
14658 #. type: Plain text
14659 #: build/C/man5/services.5:189
14660 msgid "The Internet network services list"
14661 msgstr ""
14662
14663 #. type: TP
14664 #: build/C/man5/services.5:189
14665 #, no-wrap
14666 msgid "I<E<lt>netdb.hE<gt>>"
14667 msgstr ""
14668
14669 #.  .SH BUGS
14670 #.  It's not clear when/if the following was ever true;
14671 #.  it isn't true for glibc 2.8:
14672 #.     There is a maximum of 35 aliases, due to the way the
14673 #.     .BR getservent (3)
14674 #.     code is written.
14675 #
14676 #.  It's not clear when/if the following was ever true;
14677 #.  it isn't true for glibc 2.8:
14678 #.     Lines longer than
14679 #.     .B BUFSIZ
14680 #.     (currently 1024) characters will be ignored by
14681 #.     .BR getservent (3),
14682 #.     .BR getservbyname (3),
14683 #.     and
14684 #.     .BR getservbyport (3).
14685 #.     However, this will also cause the next line to be mis-parsed.
14686 #. type: Plain text
14687 #: build/C/man5/services.5:210
14688 msgid "Definition of B<_PATH_SERVICES>"
14689 msgstr ""
14690
14691 #. type: Plain text
14692 #: build/C/man5/services.5:220
14693 msgid ""
14694 "B<listen>(2), B<endservent>(3), B<getservbyname>(3), B<getservbyport>(3), "
14695 "B<getservent>(3), B<setservent>(3), B<inetd.conf>(5), B<protocols>(5), "
14696 "B<inetd>(8)"
14697 msgstr ""
14698
14699 #. type: Plain text
14700 #: build/C/man5/services.5:222
14701 msgid "Assigned Numbers RFC, most recently RFC\\ 1700, (AKA STD0002)."
14702 msgstr ""
14703
14704 #. type: TH
14705 #: build/C/man3/setnetgrent.3:10
14706 #, no-wrap
14707 msgid "SETNETGRENT"
14708 msgstr ""
14709
14710 #. type: TH
14711 #: build/C/man3/setnetgrent.3:10
14712 #, no-wrap
14713 msgid "2007-07-26"
14714 msgstr ""
14715
14716 #. type: Plain text
14717 #: build/C/man3/setnetgrent.3:14
14718 msgid ""
14719 "setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr - handle "
14720 "network group entries"
14721 msgstr ""
14722
14723 #. type: Plain text
14724 #: build/C/man3/setnetgrent.3:19
14725 #, no-wrap
14726 msgid "B<int setnetgrent(const char *>I<netgroup>B<);>\n"
14727 msgstr ""
14728
14729 #. type: Plain text
14730 #: build/C/man3/setnetgrent.3:21
14731 #, no-wrap
14732 msgid "B<void endnetgrent(void);>\n"
14733 msgstr ""
14734
14735 #. type: Plain text
14736 #: build/C/man3/setnetgrent.3:23
14737 #, no-wrap
14738 msgid ""
14739 "B<int getnetgrent(char **>I<host>B<, char **>I<user>B<, char "
14740 "**>I<domain>B<);>\n"
14741 msgstr ""
14742
14743 #. type: Plain text
14744 #: build/C/man3/setnetgrent.3:26
14745 #, no-wrap
14746 msgid ""
14747 "B<int getnetgrent_r(char **>I<host>B<, char **>I<user>B<,>\n"
14748 "B<                  char **>I<domain>B<, char *>I<buf>B<, int "
14749 ">I<buflen>B<);>\n"
14750 msgstr ""
14751
14752 #. type: Plain text
14753 #: build/C/man3/setnetgrent.3:29
14754 #, no-wrap
14755 msgid ""
14756 "B<int innetgr(const char *>I<netgroup>B<, const char *>I<host>B<,>\n"
14757 "B<            const char *>I<user>B<, const char *>I<domain>B<);>\n"
14758 msgstr ""
14759
14760 #. type: Plain text
14761 #: build/C/man3/setnetgrent.3:43
14762 msgid ""
14763 "B<setnetgrent>(), B<endnetgrent>(), B<getnetgrent>(), B<getnetgrent_r>(), "
14764 "B<innetgr>(): _BSD_SOURCE || _SVID_SOURCE"
14765 msgstr ""
14766
14767 #. type: Plain text
14768 #: build/C/man3/setnetgrent.3:57
14769 msgid ""
14770 "The I<netgroup> is a SunOS invention.  A netgroup database is a list of "
14771 "string triples (I<hostname>, I<username>, I<domainname>)  or other netgroup "
14772 "names.  Any of the elements in a triple can be empty, which means that "
14773 "anything matches.  The functions described here allow access to the netgroup "
14774 "databases.  The file I</etc/nsswitch.conf> defines what database is "
14775 "searched."
14776 msgstr ""
14777
14778 #. type: Plain text
14779 #: build/C/man3/setnetgrent.3:77
14780 msgid ""
14781 "The B<setnetgrent>()  call defines the netgroup that will be searched by "
14782 "subsequent B<getnetgrent>()  calls.  The B<getnetgrent>()  function "
14783 "retrieves the next netgroup entry, and returns pointers in I<host>, I<user>, "
14784 "I<domain>.  A null pointer means that the corresponding entry matches any "
14785 "string.  The pointers are valid only as long as there is no call to other "
14786 "netgroup-related functions.  To avoid this problem you can use the GNU "
14787 "function B<getnetgrent_r>()  that stores the strings in the supplied "
14788 "buffer.  To free all allocated buffers use B<endnetgrent>()."
14789 msgstr ""
14790
14791 #. type: Plain text
14792 #: build/C/man3/setnetgrent.3:86
14793 msgid ""
14794 "In most cases you want to check only if the triplet (I<hostname>, "
14795 "I<username>, I<domainname>)  is a member of a netgroup.  The function "
14796 "B<innetgr>()  can be used for this without calling the above three "
14797 "functions.  Again, a null pointer is a wildcard and matches any string.  The "
14798 "function is thread-safe."
14799 msgstr ""
14800
14801 #. type: Plain text
14802 #: build/C/man3/setnetgrent.3:88
14803 msgid "These functions return 1 on success and 0 for failure."
14804 msgstr ""
14805
14806 #. type: Plain text
14807 #: build/C/man3/setnetgrent.3:90
14808 msgid "I</etc/netgroup>"
14809 msgstr ""
14810
14811 #.  getnetgrent_r() is on Solaris 8 and AIX 5.1, but not the BSDs.
14812 #. type: Plain text
14813 #: build/C/man3/setnetgrent.3:103
14814 msgid ""
14815 "These functions are not in POSIX.1-2001, but B<setnetgrent>(), "
14816 "B<endnetgrent>(), B<getnetgrent>(), and B<innetgr>()  are available on most "
14817 "UNIX systems.  B<getnetgrent_r>()  is not widely available on other systems."
14818 msgstr ""
14819
14820 #. type: Plain text
14821 #: build/C/man3/setnetgrent.3:107
14822 msgid "In the BSD implementation, B<setnetgrent>()  returns void."
14823 msgstr ""
14824
14825 #. type: Plain text
14826 #: build/C/man3/setnetgrent.3:111
14827 msgid "B<sethostent>(3), B<setprotoent>(3), B<setservent>(3)"
14828 msgstr ""
14829
14830 #. type: TH
14831 #: build/C/man2/shutdown.2:40
14832 #, no-wrap
14833 msgid "SHUTDOWN"
14834 msgstr ""
14835
14836 #. type: TH
14837 #: build/C/man2/shutdown.2:40
14838 #, no-wrap
14839 msgid "2012-09-06"
14840 msgstr ""
14841
14842 #. type: Plain text
14843 #: build/C/man2/shutdown.2:43
14844 msgid "shutdown - shut down part of a full-duplex connection"
14845 msgstr ""
14846
14847 #. type: Plain text
14848 #: build/C/man2/shutdown.2:47
14849 msgid "B<int shutdown(int >I<sockfd>B<, int >I<how>B<);>"
14850 msgstr ""
14851
14852 #. type: Plain text
14853 #: build/C/man2/shutdown.2:69
14854 msgid ""
14855 "The B<shutdown>()  call causes all or part of a full-duplex connection on "
14856 "the socket associated with I<sockfd> to be shut down.  If I<how> is "
14857 "B<SHUT_RD>, further receptions will be disallowed.  If I<how> is B<SHUT_WR>, "
14858 "further transmissions will be disallowed.  If I<how> is B<SHUT_RDWR>, "
14859 "further receptions and transmissions will be disallowed."
14860 msgstr ""
14861
14862 #. type: Plain text
14863 #: build/C/man2/shutdown.2:79
14864 msgid "I<sockfd> is not a valid descriptor."
14865 msgstr ""
14866
14867 #. type: Plain text
14868 #: build/C/man2/shutdown.2:84
14869 msgid "An invalid value was specified in I<how> (but see BUGS)."
14870 msgstr ""
14871
14872 #. type: Plain text
14873 #: build/C/man2/shutdown.2:87
14874 msgid "The specified socket is not connected."
14875 msgstr ""
14876
14877 #. type: Plain text
14878 #: build/C/man2/shutdown.2:91
14879 msgid "I<sockfd> is a file, not a socket."
14880 msgstr ""
14881
14882 #. type: Plain text
14883 #: build/C/man2/shutdown.2:95
14884 msgid ""
14885 "POSIX.1-2001, 4.4BSD (the B<shutdown>()  function call first appeared in "
14886 "4.2BSD)."
14887 msgstr ""
14888
14889 #. type: Plain text
14890 #: build/C/man2/shutdown.2:104
14891 msgid ""
14892 "The constants B<SHUT_RD>, B<SHUT_WR>, B<SHUT_RDWR> have the value 0, 1, 2, "
14893 "respectively, and are defined in I<E<lt>sys/socket.hE<gt>> since "
14894 "glibc-2.1.91."
14895 msgstr ""
14896
14897 #.  FIXME
14898 #.  https://bugzilla.kernel.org/show_bug.cgi?id=47111
14899 #. type: Plain text
14900 #: build/C/man2/shutdown.2:113
14901 msgid ""
14902 "As currently implemented, checks for the validity of I<how> are done in "
14903 "domain-specific code, and not all domains perform these checks.  Most "
14904 "notably, UNIX domain sockets simply ignore invalid values; this may change "
14905 "in the future."
14906 msgstr ""
14907
14908 #. type: Plain text
14909 #: build/C/man2/shutdown.2:117
14910 msgid "B<connect>(2), B<socket>(2), B<socket>(7)"
14911 msgstr ""
14912
14913 #. type: TH
14914 #: build/C/man7/tcp.7:76
14915 #, no-wrap
14916 msgid "TCP"
14917 msgstr ""
14918
14919 #. type: TH
14920 #: build/C/man7/tcp.7:76
14921 #, no-wrap
14922 msgid "2014-01-23"
14923 msgstr ""
14924
14925 #. type: Plain text
14926 #: build/C/man7/tcp.7:79
14927 msgid "tcp - TCP protocol"
14928 msgstr ""
14929
14930 #. type: Plain text
14931 #: build/C/man7/tcp.7:85
14932 msgid "B<#include E<lt>netinet/tcp.hE<gt>>"
14933 msgstr ""
14934
14935 #. type: Plain text
14936 #: build/C/man7/tcp.7:87
14937 msgid "B<tcp_socket = socket(AF_INET, SOCK_STREAM, 0);>"
14938 msgstr ""
14939
14940 #. type: Plain text
14941 #: build/C/man7/tcp.7:100
14942 msgid ""
14943 "This is an implementation of the TCP protocol defined in RFC\\ 793, RFC\\ "
14944 "1122 and RFC\\ 2001 with the NewReno and SACK extensions.  It provides a "
14945 "reliable, stream-oriented, full-duplex connection between two sockets on top "
14946 "of B<ip>(7), for both v4 and v6 versions.  TCP guarantees that the data "
14947 "arrives in order and retransmits lost packets.  It generates and checks a "
14948 "per-packet checksum to catch transmission errors.  TCP does not preserve "
14949 "record boundaries."
14950 msgstr ""
14951
14952 #. type: Plain text
14953 #: build/C/man7/tcp.7:119
14954 msgid ""
14955 "A newly created TCP socket has no remote or local address and is not fully "
14956 "specified.  To create an outgoing TCP connection use B<connect>(2)  to "
14957 "establish a connection to another TCP socket.  To receive new incoming "
14958 "connections, first B<bind>(2)  the socket to a local address and port and "
14959 "then call B<listen>(2)  to put the socket into the listening state.  After "
14960 "that a new socket for each incoming connection can be accepted using "
14961 "B<accept>(2).  A socket which has had B<accept>(2)  or B<connect>(2)  "
14962 "successfully called on it is fully specified and may transmit data.  Data "
14963 "cannot be transmitted on listening or not yet connected sockets."
14964 msgstr ""
14965
14966 #. type: Plain text
14967 #: build/C/man7/tcp.7:139
14968 msgid ""
14969 "Linux supports RFC\\ 1323 TCP high performance extensions.  These include "
14970 "Protection Against Wrapped Sequence Numbers (PAWS), Window Scaling and "
14971 "Timestamps.  Window scaling allows the use of large (E<gt> 64K) TCP windows "
14972 "in order to support links with high latency or bandwidth.  To make use of "
14973 "them, the send and receive buffer sizes must be increased.  They can be set "
14974 "globally with the I</proc/sys/net/ipv4/tcp_wmem> and "
14975 "I</proc/sys/net/ipv4/tcp_rmem> files, or on individual sockets by using the "
14976 "B<SO_SNDBUF> and B<SO_RCVBUF> socket options with the B<setsockopt>(2)  "
14977 "call."
14978 msgstr ""
14979
14980 #. type: Plain text
14981 #: build/C/man7/tcp.7:170
14982 msgid ""
14983 "The maximum sizes for socket buffers declared via the B<SO_SNDBUF> and "
14984 "B<SO_RCVBUF> mechanisms are limited by the values in the "
14985 "I</proc/sys/net/core/rmem_max> and I</proc/sys/net/core/wmem_max> files.  "
14986 "Note that TCP actually allocates twice the size of the buffer requested in "
14987 "the B<setsockopt>(2)  call, and so a succeeding B<getsockopt>(2)  call will "
14988 "not return the same size of buffer as requested in the B<setsockopt>(2)  "
14989 "call.  TCP uses the extra space for administrative purposes and internal "
14990 "kernel structures, and the I</proc> file values reflect the larger sizes "
14991 "compared to the actual TCP windows.  On individual connections, the socket "
14992 "buffer size must be set prior to the B<listen>(2)  or B<connect>(2)  calls "
14993 "in order to have it take effect.  See B<socket>(7)  for more information."
14994 msgstr ""
14995
14996 #. type: Plain text
14997 #: build/C/man7/tcp.7:202
14998 msgid ""
14999 "TCP supports urgent data.  Urgent data is used to signal the receiver that "
15000 "some important message is part of the data stream and that it should be "
15001 "processed as soon as possible.  To send urgent data specify the B<MSG_OOB> "
15002 "option to B<send>(2).  When urgent data is received, the kernel sends a "
15003 "B<SIGURG> signal to the process or process group that has been set as the "
15004 "socket \"owner\" using the B<SIOCSPGRP> or B<FIOSETOWN> ioctls (or the "
15005 "POSIX.1-2001-specified B<fcntl>(2)  B<F_SETOWN> operation).  When the "
15006 "B<SO_OOBINLINE> socket option is enabled, urgent data is put into the normal "
15007 "data stream (a program can test for its location using the B<SIOCATMARK> "
15008 "ioctl described below), otherwise it can be received only when the "
15009 "B<MSG_OOB> flag is set for B<recv>(2)  or B<recvmsg>(2)."
15010 msgstr ""
15011
15012 #. type: Plain text
15013 #: build/C/man7/tcp.7:210
15014 msgid ""
15015 "Linux 2.4 introduced a number of changes for improved throughput and "
15016 "scaling, as well as enhanced functionality.  Some of these features include "
15017 "support for zero-copy B<sendfile>(2), Explicit Congestion Notification, new "
15018 "management of TIME_WAIT sockets, keep-alive socket options and support for "
15019 "Duplicate SACK extensions."
15020 msgstr ""
15021
15022 #. type: SS
15023 #: build/C/man7/tcp.7:210
15024 #, no-wrap
15025 msgid "Address formats"
15026 msgstr ""
15027
15028 #. type: Plain text
15029 #: build/C/man7/tcp.7:219
15030 msgid ""
15031 "TCP is built on top of IP (see B<ip>(7)).  The address formats defined by "
15032 "B<ip>(7)  apply to TCP.  TCP supports point-to-point communication only; "
15033 "broadcasting and multicasting are not supported."
15034 msgstr ""
15035
15036 #. type: Plain text
15037 #: build/C/man7/tcp.7:231
15038 msgid ""
15039 "System-wide TCP parameter settings can be accessed by files in the directory "
15040 "I</proc/sys/net/ipv4/>.  In addition, most IP I</proc> interfaces also apply "
15041 "to TCP; see B<ip>(7).  Variables described as I<Boolean> take an integer "
15042 "value, with a nonzero value (\"true\") meaning that the corresponding option "
15043 "is enabled, and a zero value (\"false\")  meaning that the option is "
15044 "disabled."
15045 msgstr ""
15046
15047 #. type: TP
15048 #: build/C/man7/tcp.7:231
15049 #, no-wrap
15050 msgid "I<tcp_abc> (Integer; default: 0; since Linux 2.6.15)"
15051 msgstr ""
15052
15053 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
15054 #. type: Plain text
15055 #: build/C/man7/tcp.7:239
15056 msgid ""
15057 "Control the Appropriate Byte Count (ABC), defined in RFC 3465.  ABC is a way "
15058 "of increasing the congestion window (I<cwnd>)  more slowly in response to "
15059 "partial acknowledgments.  Possible values are:"
15060 msgstr ""
15061
15062 #. type: IP
15063 #: build/C/man7/tcp.7:240 build/C/man7/tcp.7:411 build/C/man7/tcp.7:432 build/C/man7/tcp.7:576
15064 #, no-wrap
15065 msgid "0"
15066 msgstr ""
15067
15068 #. type: Plain text
15069 #: build/C/man7/tcp.7:244
15070 msgid "increase I<cwnd> once per acknowledgment (no ABC)"
15071 msgstr ""
15072
15073 #. type: IP
15074 #: build/C/man7/tcp.7:244 build/C/man7/tcp.7:413 build/C/man7/tcp.7:439 build/C/man7/tcp.7:578
15075 #, no-wrap
15076 msgid "1"
15077 msgstr ""
15078
15079 #. type: Plain text
15080 #: build/C/man7/tcp.7:248
15081 msgid "increase I<cwnd> once per acknowledgment of full sized segment"
15082 msgstr ""
15083
15084 #. type: IP
15085 #: build/C/man7/tcp.7:248 build/C/man7/tcp.7:415 build/C/man7/tcp.7:446 build/C/man7/tcp.7:580
15086 #, no-wrap
15087 msgid "2"
15088 msgstr ""
15089
15090 #. type: Plain text
15091 #: build/C/man7/tcp.7:253
15092 msgid ""
15093 "allow increase I<cwnd> by two if acknowledgment is of two segments to "
15094 "compensate for delayed acknowledgments."
15095 msgstr ""
15096
15097 #. type: TP
15098 #: build/C/man7/tcp.7:254
15099 #, no-wrap
15100 msgid "I<tcp_abort_on_overflow> (Boolean; default: disabled; since Linux 2.4)"
15101 msgstr ""
15102
15103 #.  Since 2.3.41
15104 #. type: Plain text
15105 #: build/C/man7/tcp.7:266
15106 msgid ""
15107 "Enable resetting connections if the listening service is too slow and unable "
15108 "to keep up and accept them.  It means that if overflow occurred due to a "
15109 "burst, the connection will recover.  Enable this option I<only> if you are "
15110 "really sure that the listening daemon cannot be tuned to accept connections "
15111 "faster.  Enabling this option can harm the clients of your server."
15112 msgstr ""
15113
15114 #. type: TP
15115 #: build/C/man7/tcp.7:266
15116 #, no-wrap
15117 msgid "I<tcp_adv_win_scale> (integer; default: 2; since Linux 2.4)"
15118 msgstr ""
15119
15120 #.  Since 2.4.0-test7
15121 #. type: Plain text
15122 #: build/C/man7/tcp.7:278
15123 msgid ""
15124 "Count buffering overhead as I<bytes/2^tcp_adv_win_scale>, if "
15125 "I<tcp_adv_win_scale> is greater than 0; or "
15126 "I<bytes-bytes/2^(-tcp_adv_win_scale)>, if I<tcp_adv_win_scale> is less than "
15127 "or equal to zero."
15128 msgstr ""
15129
15130 #. type: Plain text
15131 #: build/C/man7/tcp.7:291
15132 msgid ""
15133 "The socket receive buffer space is shared between the application and "
15134 "kernel.  TCP maintains part of the buffer as the TCP window, this is the "
15135 "size of the receive window advertised to the other end.  The rest of the "
15136 "space is used as the \"application\" buffer, used to isolate the network "
15137 "from scheduling and application latencies.  The I<tcp_adv_win_scale> default "
15138 "value of 2 implies that the space used for the application buffer is one "
15139 "fourth that of the total."
15140 msgstr ""
15141
15142 #. type: TP
15143 #: build/C/man7/tcp.7:291
15144 #, no-wrap
15145 msgid ""
15146 "I<tcp_allowed_congestion_control> (String; default: see text; since Linux "
15147 "2.4.20)"
15148 msgstr ""
15149
15150 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
15151 #. type: Plain text
15152 #: build/C/man7/tcp.7:304
15153 msgid ""
15154 "Show/set the congestion control algorithm choices available to unprivileged "
15155 "processes (see the description of the B<TCP_CONGESTION> socket option).  The "
15156 "items in the list are separated by white space and terminated by a newline "
15157 "character.  The list is a subset of those listed in "
15158 "I<tcp_available_congestion_control>.  The default value for this list is "
15159 "\"reno\" plus the default setting of I<tcp_congestion_control>."
15160 msgstr ""
15161
15162 #. type: TP
15163 #: build/C/man7/tcp.7:304
15164 #, no-wrap
15165 msgid "I<tcp_available_congestion_control> (String; read-only; since Linux 2.4.20)"
15166 msgstr ""
15167
15168 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
15169 #. type: Plain text
15170 #: build/C/man7/tcp.7:315
15171 msgid ""
15172 "Show a list of the congestion-control algorithms that are registered.  The "
15173 "items in the list are separated by white space and terminated by a newline "
15174 "character.  This list is a limiting set for the list in "
15175 "I<tcp_allowed_congestion_control>.  More congestion-control algorithms may "
15176 "be available as modules, but not loaded."
15177 msgstr ""
15178
15179 #. type: TP
15180 #: build/C/man7/tcp.7:315
15181 #, no-wrap
15182 msgid "I<tcp_app_win> (integer; default: 31; since Linux 2.4)"
15183 msgstr ""
15184
15185 #.  Since 2.4.0-test7
15186 #. type: Plain text
15187 #: build/C/man7/tcp.7:320
15188 msgid ""
15189 "This variable defines how many bytes of the TCP window are reserved for "
15190 "buffering overhead."
15191 msgstr ""
15192
15193 #
15194 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
15195 #. type: Plain text
15196 #: build/C/man7/tcp.7:326
15197 msgid ""
15198 "A maximum of (I<window/2^tcp_app_win>, mss) bytes in the window are reserved "
15199 "for the application buffer.  A value of 0 implies that no amount is "
15200 "reserved."
15201 msgstr ""
15202
15203 #. type: TP
15204 #: build/C/man7/tcp.7:326
15205 #, no-wrap
15206 msgid "I<tcp_base_mss> (Integer; default: 512; since Linux 2.6.17)"
15207 msgstr ""
15208
15209 #
15210 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15211 #. type: Plain text
15212 #: build/C/man7/tcp.7:335
15213 msgid ""
15214 "The initial value of I<search_low> to be used by the packetization layer "
15215 "Path MTU discovery (MTU probing).  If MTU probing is enabled, this is the "
15216 "initial MSS used by the connection."
15217 msgstr ""
15218
15219 #. type: TP
15220 #: build/C/man7/tcp.7:335
15221 #, no-wrap
15222 msgid "I<tcp_bic> (Boolean; default: disabled; Linux 2.4.27/2.6.6 to 2.6.13)"
15223 msgstr ""
15224
15225 #
15226 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15227 #. type: Plain text
15228 #: build/C/man7/tcp.7:349
15229 msgid ""
15230 "Enable BIC TCP congestion control algorithm.  BIC-TCP is a sender-side only "
15231 "change that ensures a linear RTT fairness under large windows while offering "
15232 "both scalability and bounded TCP-friendliness.  The protocol combines two "
15233 "schemes called additive increase and binary search increase.  When the "
15234 "congestion window is large, additive increase with a large increment ensures "
15235 "linear RTT fairness as well as good scalability.  Under small congestion "
15236 "windows, binary search increase provides TCP friendliness."
15237 msgstr ""
15238
15239 #. type: TP
15240 #: build/C/man7/tcp.7:349
15241 #, no-wrap
15242 msgid "I<tcp_bic_low_window> (integer; default: 14; Linux 2.4.27/2.6.6 to 2.6.13)"
15243 msgstr ""
15244
15245 #
15246 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15247 #. type: Plain text
15248 #: build/C/man7/tcp.7:356
15249 msgid ""
15250 "Set the threshold window (in packets) where BIC TCP starts to adjust the "
15251 "congestion window.  Below this threshold BIC TCP behaves the same as the "
15252 "default TCP Reno."
15253 msgstr ""
15254
15255 #. type: TP
15256 #: build/C/man7/tcp.7:356
15257 #, no-wrap
15258 msgid ""
15259 "I<tcp_bic_fast_convergence> (Boolean; default: enabled; Linux 2.4.27/2.6.6 "
15260 "to 2.6.13)"
15261 msgstr ""
15262
15263 #. type: Plain text
15264 #: build/C/man7/tcp.7:360
15265 msgid ""
15266 "Force BIC TCP to more quickly respond to changes in congestion window.  "
15267 "Allows two flows sharing the same connection to converge more rapidly."
15268 msgstr ""
15269
15270 #. type: TP
15271 #: build/C/man7/tcp.7:360
15272 #, no-wrap
15273 msgid "I<tcp_congestion_control> (String; default: see text; since Linux 2.4.13)"
15274 msgstr ""
15275
15276 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
15277 #. type: Plain text
15278 #: build/C/man7/tcp.7:367
15279 msgid ""
15280 "Set the default congestion-control algorithm to be used for new "
15281 "connections.  The algorithm \"reno\" is always available, but additional "
15282 "choices may be available depending on kernel configuration.  The default "
15283 "value for this file is set as part of kernel configuration."
15284 msgstr ""
15285
15286 #. type: TP
15287 #: build/C/man7/tcp.7:367
15288 #, no-wrap
15289 msgid "I<tcp_dma_copybreak> (integer; default: 4096; since Linux 2.6.24)"
15290 msgstr ""
15291
15292 #. type: Plain text
15293 #: build/C/man7/tcp.7:374
15294 msgid ""
15295 "Lower limit, in bytes, of the size of socket reads that will be offloaded to "
15296 "a DMA copy engine, if one is present in the system and the kernel was "
15297 "configured with the B<CONFIG_NET_DMA> option."
15298 msgstr ""
15299
15300 #. type: TP
15301 #: build/C/man7/tcp.7:374
15302 #, no-wrap
15303 msgid "I<tcp_dsack> (Boolean; default: enabled; since Linux 2.4)"
15304 msgstr ""
15305
15306 #.  Since 2.4.0-test7
15307 #. type: Plain text
15308 #: build/C/man7/tcp.7:378
15309 msgid "Enable RFC\\ 2883 TCP Duplicate SACK support."
15310 msgstr ""
15311
15312 #. type: TP
15313 #: build/C/man7/tcp.7:378
15314 #, no-wrap
15315 msgid "I<tcp_ecn> (Boolean; default: disabled; since Linux 2.4)"
15316 msgstr ""
15317
15318 #.  Since 2.4.0-test7
15319 #. type: Plain text
15320 #: build/C/man7/tcp.7:385
15321 msgid ""
15322 "Enable RFC\\ 2884 Explicit Congestion Notification.  When enabled, "
15323 "connectivity to some destinations could be affected due to older, "
15324 "misbehaving routers along the path causing connections to be dropped."
15325 msgstr ""
15326
15327 #. type: TP
15328 #: build/C/man7/tcp.7:385
15329 #, no-wrap
15330 msgid "I<tcp_fack> (Boolean; default: enabled; since Linux 2.2)"
15331 msgstr ""
15332
15333 #.  Since 2.1.92
15334 #. type: Plain text
15335 #: build/C/man7/tcp.7:389
15336 msgid "Enable TCP Forward Acknowledgement support."
15337 msgstr ""
15338
15339 #. type: TP
15340 #: build/C/man7/tcp.7:389
15341 #, no-wrap
15342 msgid "I<tcp_fin_timeout> (integer; default: 60; since Linux 2.2)"
15343 msgstr ""
15344
15345 #.  Since 2.1.53
15346 #
15347 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15348 #. type: Plain text
15349 #: build/C/man7/tcp.7:399
15350 msgid ""
15351 "This specifies how many seconds to wait for a final FIN packet before the "
15352 "socket is forcibly closed.  This is strictly a violation of the TCP "
15353 "specification, but required to prevent denial-of-service attacks.  In Linux "
15354 "2.2, the default value was 180."
15355 msgstr ""
15356
15357 #. type: TP
15358 #: build/C/man7/tcp.7:399
15359 #, no-wrap
15360 msgid "I<tcp_frto> (integer; default: 0; since Linux 2.4.21/2.6)"
15361 msgstr ""
15362
15363 #.  Since 2.4.21/2.5.43
15364 #. type: Plain text
15365 #: build/C/man7/tcp.7:408
15366 msgid ""
15367 "Enable F-RTO, an enhanced recovery algorithm for TCP retransmission timeouts "
15368 "(RTOs).  It is particularly beneficial in wireless environments where packet "
15369 "loss is typically due to random radio interference rather than intermediate "
15370 "router congestion.  See RFC 4138 for more details."
15371 msgstr ""
15372
15373 #. type: Plain text
15374 #: build/C/man7/tcp.7:410
15375 msgid "This file can have one of the following values:"
15376 msgstr ""
15377
15378 #. type: Plain text
15379 #: build/C/man7/tcp.7:413
15380 msgid "Disabled."
15381 msgstr ""
15382
15383 #. type: Plain text
15384 #: build/C/man7/tcp.7:415
15385 msgid "The basic version F-RTO algorithm is enabled."
15386 msgstr ""
15387
15388 #. type: Plain text
15389 #: build/C/man7/tcp.7:420
15390 msgid ""
15391 "Enable SACK-enhanced F-RTO if flow uses SACK.  The basic version can be used "
15392 "also when SACK is in use though in that case scenario(s) exists where F-RTO "
15393 "interacts badly with the packet counting of the SACK-enabled TCP flow."
15394 msgstr ""
15395
15396 #. type: Plain text
15397 #: build/C/man7/tcp.7:424
15398 msgid ""
15399 "Before Linux 2.6.22, this parameter was a Boolean value, supporting just "
15400 "values 0 and 1 above."
15401 msgstr ""
15402
15403 #. type: TP
15404 #: build/C/man7/tcp.7:424
15405 #, no-wrap
15406 msgid "I<tcp_frto_response> (integer; default: 0; since Linux 2.6.22)"
15407 msgstr ""
15408
15409 #. type: Plain text
15410 #: build/C/man7/tcp.7:431
15411 msgid ""
15412 "When F-RTO has detected that a TCP retransmission timeout was spurious (i.e, "
15413 "the timeout would have been avoided had TCP set a longer retransmission "
15414 "timeout), TCP has several options concerning what to do next.  Possible "
15415 "values are:"
15416 msgstr ""
15417
15418 #. type: Plain text
15419 #: build/C/man7/tcp.7:439
15420 msgid ""
15421 "Rate halving based; a smooth and conservative response, results in halved "
15422 "congestion window (I<cwnd>)  and slow-start threshold (I<ssthresh>)  after "
15423 "one RTT."
15424 msgstr ""
15425
15426 #. type: Plain text
15427 #: build/C/man7/tcp.7:446
15428 msgid ""
15429 "Very conservative response; not recommended because even though being valid, "
15430 "it interacts poorly with the rest of Linux TCP; halves I<cwnd> and "
15431 "I<ssthresh> immediately."
15432 msgstr ""
15433
15434 #. type: Plain text
15435 #: build/C/man7/tcp.7:455
15436 msgid ""
15437 "Aggressive response; undoes congestion-control measures that are now known "
15438 "to be unnecessary (ignoring the possibility of a lost retransmission that "
15439 "would require TCP to be more cautious); I<cwnd> and I<ssthresh> are restored "
15440 "to the values prior to timeout."
15441 msgstr ""
15442
15443 #. type: TP
15444 #: build/C/man7/tcp.7:456
15445 #, no-wrap
15446 msgid "I<tcp_keepalive_intvl> (integer; default: 75; since Linux 2.4)"
15447 msgstr ""
15448
15449 #.  Since 2.3.18
15450 #. type: Plain text
15451 #: build/C/man7/tcp.7:460
15452 msgid "The number of seconds between TCP keep-alive probes."
15453 msgstr ""
15454
15455 #. type: TP
15456 #: build/C/man7/tcp.7:460
15457 #, no-wrap
15458 msgid "I<tcp_keepalive_probes> (integer; default: 9; since Linux 2.2)"
15459 msgstr ""
15460
15461 #.  Since 2.1.43
15462 #. type: Plain text
15463 #: build/C/man7/tcp.7:466
15464 msgid ""
15465 "The maximum number of TCP keep-alive probes to send before giving up and "
15466 "killing the connection if no response is obtained from the other end."
15467 msgstr ""
15468
15469 #. type: TP
15470 #: build/C/man7/tcp.7:466
15471 #, no-wrap
15472 msgid "I<tcp_keepalive_time> (integer; default: 7200; since Linux 2.2)"
15473 msgstr ""
15474
15475 #.  Since 2.1.43
15476 #. type: Plain text
15477 #: build/C/man7/tcp.7:478
15478 msgid ""
15479 "The number of seconds a connection needs to be idle before TCP begins "
15480 "sending out keep-alive probes.  Keep-alives are sent only when the "
15481 "B<SO_KEEPALIVE> socket option is enabled.  The default value is 7200 seconds "
15482 "(2 hours).  An idle connection is terminated after approximately an "
15483 "additional 11 minutes (9 probes an interval of 75 seconds apart) when "
15484 "keep-alive is enabled."
15485 msgstr ""
15486
15487 #
15488 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15489 #. type: Plain text
15490 #: build/C/man7/tcp.7:483
15491 msgid ""
15492 "Note that underlying connection tracking mechanisms and application timeouts "
15493 "may be much shorter."
15494 msgstr ""
15495
15496 #. type: TP
15497 #: build/C/man7/tcp.7:483
15498 #, no-wrap
15499 msgid "I<tcp_low_latency> (Boolean; default: disabled; since Linux 2.4.21/2.6)"
15500 msgstr ""
15501
15502 #.  Since 2.4.21/2.5.60
15503 #. type: Plain text
15504 #: build/C/man7/tcp.7:491
15505 msgid ""
15506 "If enabled, the TCP stack makes decisions that prefer lower latency as "
15507 "opposed to higher throughput.  It this option is disabled, then higher "
15508 "throughput is preferred.  An example of an application where this default "
15509 "should be changed would be a Beowulf compute cluster."
15510 msgstr ""
15511
15512 #. type: TP
15513 #: build/C/man7/tcp.7:491
15514 #, no-wrap
15515 msgid "I<tcp_max_orphans> (integer; default: see below; since Linux 2.4)"
15516 msgstr ""
15517
15518 #.  Since 2.3.41
15519 #. type: Plain text
15520 #: build/C/man7/tcp.7:505
15521 msgid ""
15522 "The maximum number of orphaned (not attached to any user file handle) TCP "
15523 "sockets allowed in the system.  When this number is exceeded, the orphaned "
15524 "connection is reset and a warning is printed.  This limit exists only to "
15525 "prevent simple denial-of-service attacks.  Lowering this limit is not "
15526 "recommended.  Network conditions might require you to increase the number of "
15527 "orphans allowed, but note that each orphan can eat up to ~64K of unswappable "
15528 "memory.  The default initial value is set equal to the kernel parameter "
15529 "NR_FILE.  This initial default is adjusted depending on the memory in the "
15530 "system."
15531 msgstr ""
15532
15533 #. type: TP
15534 #: build/C/man7/tcp.7:505
15535 #, no-wrap
15536 msgid "I<tcp_max_syn_backlog> (integer; default: see below; since Linux 2.2)"
15537 msgstr ""
15538
15539 #.  Since 2.1.53
15540 #. type: Plain text
15541 #: build/C/man7/tcp.7:522
15542 msgid ""
15543 "The maximum number of queued connection requests which have still not "
15544 "received an acknowledgement from the connecting client.  If this number is "
15545 "exceeded, the kernel will begin dropping requests.  The default value of 256 "
15546 "is increased to 1024 when the memory present in the system is adequate or "
15547 "greater (E<gt>= 128Mb), and reduced to 128 for those systems with very low "
15548 "memory (E<lt>= 32Mb).  It is recommended that if this needs to be increased "
15549 "above 1024, TCP_SYNQ_HSIZE in I<include/net/tcp.h> be modified to keep "
15550 "TCP_SYNQ_HSIZE*16E<lt>=tcp_max_syn_backlog, and the kernel be recompiled."
15551 msgstr ""
15552
15553 #. type: TP
15554 #: build/C/man7/tcp.7:522
15555 #, no-wrap
15556 msgid "I<tcp_max_tw_buckets> (integer; default: see below; since Linux 2.4)"
15557 msgstr ""
15558
15559 #.  Since 2.3.41
15560 #. type: Plain text
15561 #: build/C/man7/tcp.7:532
15562 msgid ""
15563 "The maximum number of sockets in TIME_WAIT state allowed in the system.  "
15564 "This limit exists only to prevent simple denial-of-service attacks.  The "
15565 "default value of NR_FILE*2 is adjusted depending on the memory in the "
15566 "system.  If this number is exceeded, the socket is closed and a warning is "
15567 "printed."
15568 msgstr ""
15569
15570 #. type: TP
15571 #: build/C/man7/tcp.7:532
15572 #, no-wrap
15573 msgid "I<tcp_moderate_rcvbuf> (Boolean; default: enabled; since Linux 2.4.17/2.6.7)"
15574 msgstr ""
15575
15576 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
15577 #. type: Plain text
15578 #: build/C/man7/tcp.7:539
15579 msgid ""
15580 "If enabled, TCP performs receive buffer auto-tuning, attempting to "
15581 "automatically size the buffer (no greater than I<tcp_rmem[2]>)  to match the "
15582 "size required by the path for full throughput."
15583 msgstr ""
15584
15585 #. type: TP
15586 #: build/C/man7/tcp.7:539
15587 #, no-wrap
15588 msgid "I<tcp_mem> (since Linux 2.4)"
15589 msgstr ""
15590
15591 #.  Since 2.4.0-test7
15592 #. type: Plain text
15593 #: build/C/man7/tcp.7:551
15594 msgid ""
15595 "This is a vector of 3 integers: [low, pressure, high].  These bounds, "
15596 "measured in units of the system page size, are used by TCP to track its "
15597 "memory usage.  The defaults are calculated at boot time from the amount of "
15598 "available memory.  (TCP can only use I<low memory> for this, which is "
15599 "limited to around 900 megabytes on 32-bit systems.  64-bit systems do not "
15600 "suffer this limitation.)"
15601 msgstr ""
15602
15603 #. type: TP
15604 #: build/C/man7/tcp.7:552
15605 #, no-wrap
15606 msgid "I<low>"
15607 msgstr ""
15608
15609 #. type: Plain text
15610 #: build/C/man7/tcp.7:556
15611 msgid ""
15612 "TCP doesn't regulate its memory allocation when the number of pages it has "
15613 "allocated globally is below this number."
15614 msgstr ""
15615
15616 #. type: TP
15617 #: build/C/man7/tcp.7:556 build/C/man7/udp.7:151
15618 #, no-wrap
15619 msgid "I<pressure>"
15620 msgstr ""
15621
15622 #. type: Plain text
15623 #: build/C/man7/tcp.7:565
15624 msgid ""
15625 "When the amount of memory allocated by TCP exceeds this number of pages, TCP "
15626 "moderates its memory consumption.  This memory pressure state is exited once "
15627 "the number of pages allocated falls below the I<low> mark."
15628 msgstr ""
15629
15630 #. type: TP
15631 #: build/C/man7/tcp.7:565
15632 #, no-wrap
15633 msgid "I<high>"
15634 msgstr ""
15635
15636 #. type: Plain text
15637 #: build/C/man7/tcp.7:569
15638 msgid ""
15639 "The maximum number of pages, globally, that TCP will allocate.  This value "
15640 "overrides any other limits imposed by the kernel."
15641 msgstr ""
15642
15643 #. type: TP
15644 #: build/C/man7/tcp.7:570
15645 #, no-wrap
15646 msgid "I<tcp_mtu_probing> (integer; default: 0; since Linux 2.6.17)"
15647 msgstr ""
15648
15649 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
15650 #. type: Plain text
15651 #: build/C/man7/tcp.7:575
15652 msgid ""
15653 "This parameter controls TCP Packetization-Layer Path MTU Discovery.  The "
15654 "following values may be assigned to the file:"
15655 msgstr ""
15656
15657 #. type: Plain text
15658 #: build/C/man7/tcp.7:578
15659 msgid "Disabled"
15660 msgstr ""
15661
15662 #. type: Plain text
15663 #: build/C/man7/tcp.7:580
15664 msgid "Disabled by default, enabled when an ICMP black hole detected"
15665 msgstr ""
15666
15667 #. type: Plain text
15668 #: build/C/man7/tcp.7:583
15669 msgid "Always enabled, use initial MSS of I<tcp_base_mss>."
15670 msgstr ""
15671
15672 #. type: TP
15673 #: build/C/man7/tcp.7:584
15674 #, no-wrap
15675 msgid "I<tcp_no_metrics_save> (Boolean; default: disabled; since Linux 2.6.6)"
15676 msgstr ""
15677
15678 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
15679 #. type: Plain text
15680 #: build/C/man7/tcp.7:595
15681 msgid ""
15682 "By default, TCP saves various connection metrics in the route cache when the "
15683 "connection closes, so that connections established in the near future can "
15684 "use these to set initial conditions.  Usually, this increases overall "
15685 "performance, but it may sometimes cause performance degradation.  If "
15686 "I<tcp_no_metrics_save> is enabled, TCP will not cache metrics on closing "
15687 "connections."
15688 msgstr ""
15689
15690 #. type: TP
15691 #: build/C/man7/tcp.7:595
15692 #, no-wrap
15693 msgid "I<tcp_orphan_retries> (integer; default: 8; since Linux 2.4)"
15694 msgstr ""
15695
15696 #.  Since 2.3.41
15697 #. type: Plain text
15698 #: build/C/man7/tcp.7:600
15699 msgid ""
15700 "The maximum number of attempts made to probe the other end of a connection "
15701 "which has been closed by our end."
15702 msgstr ""
15703
15704 #. type: TP
15705 #: build/C/man7/tcp.7:600
15706 #, no-wrap
15707 msgid "I<tcp_reordering> (integer; default: 3; since Linux 2.4)"
15708 msgstr ""
15709
15710 #.  Since 2.4.0-test7
15711 #. type: Plain text
15712 #: build/C/man7/tcp.7:609
15713 msgid ""
15714 "The maximum a packet can be reordered in a TCP packet stream without TCP "
15715 "assuming packet loss and going into slow start.  It is not advisable to "
15716 "change this number.  This is a packet reordering detection metric designed "
15717 "to minimize unnecessary back off and retransmits provoked by reordering of "
15718 "packets on a connection."
15719 msgstr ""
15720
15721 #. type: TP
15722 #: build/C/man7/tcp.7:609
15723 #, no-wrap
15724 msgid "I<tcp_retrans_collapse> (Boolean; default: enabled; since Linux 2.2)"
15725 msgstr ""
15726
15727 #.  Since 2.1.96
15728 #. type: Plain text
15729 #: build/C/man7/tcp.7:613
15730 msgid "Try to send full-sized packets during retransmit."
15731 msgstr ""
15732
15733 #. type: TP
15734 #: build/C/man7/tcp.7:613
15735 #, no-wrap
15736 msgid "I<tcp_retries1> (integer; default: 3; since Linux 2.2)"
15737 msgstr ""
15738
15739 #.  Since 2.1.43
15740 #. type: Plain text
15741 #: build/C/man7/tcp.7:623
15742 msgid ""
15743 "The number of times TCP will attempt to retransmit a packet on an "
15744 "established connection normally, without the extra effort of getting the "
15745 "network layers involved.  Once we exceed this number of retransmits, we "
15746 "first have the network layer update the route if possible before each new "
15747 "retransmit.  The default is the RFC specified minimum of 3."
15748 msgstr ""
15749
15750 #. type: TP
15751 #: build/C/man7/tcp.7:623
15752 #, no-wrap
15753 msgid "I<tcp_retries2> (integer; default: 15; since Linux 2.2)"
15754 msgstr ""
15755
15756 #.  Since 2.1.43
15757 #. type: Plain text
15758 #: build/C/man7/tcp.7:633
15759 msgid ""
15760 "The maximum number of times a TCP packet is retransmitted in established "
15761 "state before giving up.  The default value is 15, which corresponds to a "
15762 "duration of approximately between 13 to 30 minutes, depending on the "
15763 "retransmission timeout.  The RFC\\ 1122 specified minimum limit of 100 "
15764 "seconds is typically deemed too short."
15765 msgstr ""
15766
15767 #. type: TP
15768 #: build/C/man7/tcp.7:633
15769 #, no-wrap
15770 msgid "I<tcp_rfc1337> (Boolean; default: disabled; since Linux 2.2)"
15771 msgstr ""
15772
15773 #.  Since 2.1.90
15774 #. type: Plain text
15775 #: build/C/man7/tcp.7:641
15776 msgid ""
15777 "Enable TCP behavior conformant with RFC\\ 1337.  When disabled, if a RST is "
15778 "received in TIME_WAIT state, we close the socket immediately without waiting "
15779 "for the end of the TIME_WAIT period."
15780 msgstr ""
15781
15782 #. type: TP
15783 #: build/C/man7/tcp.7:641
15784 #, no-wrap
15785 msgid "I<tcp_rmem> (since Linux 2.4)"
15786 msgstr ""
15787
15788 #.  Since 2.4.0-test7
15789 #. type: Plain text
15790 #: build/C/man7/tcp.7:649
15791 msgid ""
15792 "This is a vector of 3 integers: [min, default, max].  These parameters are "
15793 "used by TCP to regulate receive buffer sizes.  TCP dynamically adjusts the "
15794 "size of the receive buffer from the defaults listed below, in the range of "
15795 "these values, depending on memory available in the system."
15796 msgstr ""
15797
15798 #. type: TP
15799 #: build/C/man7/tcp.7:650 build/C/man7/tcp.7:826 build/C/man7/udp.7:145
15800 #, no-wrap
15801 msgid "I<min>"
15802 msgstr ""
15803
15804 #. type: Plain text
15805 #: build/C/man7/tcp.7:665
15806 msgid ""
15807 "minimum size of the receive buffer used by each TCP socket.  The default "
15808 "value is the system page size.  (On Linux 2.4, the default value is 4K, "
15809 "lowered to B<PAGE_SIZE> bytes in low-memory systems.)  This value is used to "
15810 "ensure that in memory pressure mode, allocations below this size will still "
15811 "succeed.  This is not used to bound the size of the receive buffer declared "
15812 "using B<SO_RCVBUF> on a socket."
15813 msgstr ""
15814
15815 #. type: TP
15816 #: build/C/man7/tcp.7:665 build/C/man7/tcp.7:836
15817 #, no-wrap
15818 msgid "I<default>"
15819 msgstr ""
15820
15821 #. type: Plain text
15822 #: build/C/man7/tcp.7:679
15823 msgid ""
15824 "the default size of the receive buffer for a TCP socket.  This value "
15825 "overwrites the initial default buffer size from the generic global "
15826 "I<net.core.rmem_default> defined for all protocols.  The default value is "
15827 "87380 bytes.  (On Linux 2.4, this will be lowered to 43689 in low-memory "
15828 "systems.)  If larger receive buffer sizes are desired, this value should be "
15829 "increased (to affect all sockets).  To employ large TCP windows, the "
15830 "I<net.ipv4.tcp_window_scaling> must be enabled (default)."
15831 msgstr ""
15832
15833 #. type: TP
15834 #: build/C/man7/tcp.7:679 build/C/man7/tcp.7:850 build/C/man7/udp.7:157
15835 #, no-wrap
15836 msgid "I<max>"
15837 msgstr ""
15838
15839 #. type: Plain text
15840 #: build/C/man7/tcp.7:688
15841 msgid ""
15842 "the maximum size of the receive buffer used by each TCP socket.  This value "
15843 "does not override the global I<net.core.rmem_max>.  This is not used to "
15844 "limit the size of the receive buffer declared using B<SO_RCVBUF> on a "
15845 "socket.  The default value is calculated using the formula"
15846 msgstr ""
15847
15848 #. type: Plain text
15849 #: build/C/man7/tcp.7:690
15850 #, no-wrap
15851 msgid "    max(87380, min(4MB, I<tcp_mem>[1]*PAGE_SIZE/128))\n"
15852 msgstr ""
15853
15854 #. type: Plain text
15855 #: build/C/man7/tcp.7:693
15856 msgid ""
15857 "(On Linux 2.4, the default is 87380*2 bytes, lowered to 87380 in low-memory "
15858 "systems)."
15859 msgstr ""
15860
15861 #. type: TP
15862 #: build/C/man7/tcp.7:694
15863 #, no-wrap
15864 msgid "I<tcp_sack> (Boolean; default: enabled; since Linux 2.2)"
15865 msgstr ""
15866
15867 #.  Since 2.1.36
15868 #. type: Plain text
15869 #: build/C/man7/tcp.7:698
15870 msgid "Enable RFC\\ 2018 TCP Selective Acknowledgements."
15871 msgstr ""
15872
15873 #. type: TP
15874 #: build/C/man7/tcp.7:698
15875 #, no-wrap
15876 msgid "I<tcp_slow_start_after_idle> (Boolean; default: enabled; since Linux 2.6.18)"
15877 msgstr ""
15878
15879 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
15880 #. type: Plain text
15881 #: build/C/man7/tcp.7:706
15882 msgid ""
15883 "If enabled, provide RFC 2861 behavior and time out the congestion window "
15884 "after an idle period.  An idle period is defined as the current RTO "
15885 "(retransmission timeout).  If disabled, the congestion window will not be "
15886 "timed out after an idle period."
15887 msgstr ""
15888
15889 #. type: TP
15890 #: build/C/man7/tcp.7:706
15891 #, no-wrap
15892 msgid "I<tcp_stdurg> (Boolean; default: disabled; since Linux 2.2)"
15893 msgstr ""
15894
15895 #.  Since 2.1.44
15896 #.  RFC 793 was ambiguous in its specification of the meaning of the
15897 #.  urgent pointer.  RFC 1122 (and RFC 961) fixed on a particular
15898 #.  resolution of this ambiguity (unfortunately the "wrong" one).
15899 #. type: Plain text
15900 #: build/C/man7/tcp.7:720
15901 msgid ""
15902 "If this option is enabled, then use the RFC\\ 1122 interpretation of the TCP "
15903 "urgent-pointer field.  According to this interpretation, the urgent pointer "
15904 "points to the last byte of urgent data.  If this option is disabled, then "
15905 "use the BSD-compatible interpretation of the urgent pointer: the urgent "
15906 "pointer points to the first byte after the urgent data.  Enabling this "
15907 "option may lead to interoperability problems."
15908 msgstr ""
15909
15910 #. type: TP
15911 #: build/C/man7/tcp.7:720
15912 #, no-wrap
15913 msgid "I<tcp_syn_retries> (integer; default: 5; since Linux 2.2)"
15914 msgstr ""
15915
15916 #.  Since 2.1.38
15917 #. type: Plain text
15918 #: build/C/man7/tcp.7:727
15919 msgid ""
15920 "The maximum number of times initial SYNs for an active TCP connection "
15921 "attempt will be retransmitted.  This value should not be higher than 255.  "
15922 "The default value is 5, which corresponds to approximately 180 seconds."
15923 msgstr ""
15924
15925 #. type: TP
15926 #: build/C/man7/tcp.7:727
15927 #, no-wrap
15928 msgid "I<tcp_synack_retries> (integer; default: 5; since Linux 2.2)"
15929 msgstr ""
15930
15931 #.  Since 2.1.38
15932 #. type: Plain text
15933 #: build/C/man7/tcp.7:733
15934 msgid ""
15935 "The maximum number of times a SYN/ACK segment for a passive TCP connection "
15936 "will be retransmitted.  This number should not be higher than 255."
15937 msgstr ""
15938
15939 #. type: TP
15940 #: build/C/man7/tcp.7:733
15941 #, no-wrap
15942 msgid "I<tcp_syncookies> (Boolean; since Linux 2.2)"
15943 msgstr ""
15944
15945 #.  Since 2.1.43
15946 #. type: Plain text
15947 #: build/C/man7/tcp.7:753
15948 msgid ""
15949 "Enable TCP syncookies.  The kernel must be compiled with "
15950 "B<CONFIG_SYN_COOKIES>.  Send out syncookies when the syn backlog queue of a "
15951 "socket overflows.  The syncookies feature attempts to protect a socket from "
15952 "a SYN flood attack.  This should be used as a last resort, if at all.  This "
15953 "is a violation of the TCP protocol, and conflicts with other areas of TCP "
15954 "such as TCP extensions.  It can cause problems for clients and relays.  It "
15955 "is not recommended as a tuning mechanism for heavily loaded servers to help "
15956 "with overloaded or misconfigured conditions.  For recommended alternatives "
15957 "see I<tcp_max_syn_backlog>, I<tcp_synack_retries>, and "
15958 "I<tcp_abort_on_overflow>."
15959 msgstr ""
15960
15961 #. type: TP
15962 #: build/C/man7/tcp.7:753
15963 #, no-wrap
15964 msgid "I<tcp_timestamps> (Boolean; default: enabled; since Linux 2.2)"
15965 msgstr ""
15966
15967 #.  Since 2.1.36
15968 #. type: Plain text
15969 #: build/C/man7/tcp.7:757
15970 msgid "Enable RFC\\ 1323 TCP timestamps."
15971 msgstr ""
15972
15973 #. type: TP
15974 #: build/C/man7/tcp.7:757
15975 #, no-wrap
15976 msgid "I<tcp_tso_win_divisor> (integer; default: 3; since Linux 2.6.9)"
15977 msgstr ""
15978
15979 #. type: Plain text
15980 #: build/C/man7/tcp.7:763
15981 msgid ""
15982 "This parameter controls what percentage of the congestion window can be "
15983 "consumed by a single TCP Segmentation Offload (TSO) frame.  The setting of "
15984 "this parameter is a tradeoff between burstiness and building larger TSO "
15985 "frames."
15986 msgstr ""
15987
15988 #. type: TP
15989 #: build/C/man7/tcp.7:763
15990 #, no-wrap
15991 msgid "I<tcp_tw_recycle> (Boolean; default: disabled; since Linux 2.4)"
15992 msgstr ""
15993
15994 #.  Since 2.3.15
15995 #
15996 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15997 #. type: Plain text
15998 #: build/C/man7/tcp.7:772
15999 msgid ""
16000 "Enable fast recycling of TIME_WAIT sockets.  Enabling this option is not "
16001 "recommended since this causes problems when working with NAT (Network "
16002 "Address Translation)."
16003 msgstr ""
16004
16005 #. type: TP
16006 #: build/C/man7/tcp.7:772
16007 #, no-wrap
16008 msgid "I<tcp_tw_reuse> (Boolean; default: disabled; since Linux 2.4.19/2.6)"
16009 msgstr ""
16010
16011 #.  Since 2.4.19/2.5.43
16012 #
16013 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
16014 #. type: Plain text
16015 #: build/C/man7/tcp.7:780
16016 msgid ""
16017 "Allow to reuse TIME_WAIT sockets for new connections when it is safe from "
16018 "protocol viewpoint.  It should not be changed without advice/request of "
16019 "technical experts."
16020 msgstr ""
16021
16022 #. type: TP
16023 #: build/C/man7/tcp.7:780
16024 #, no-wrap
16025 msgid "I<tcp_vegas_cong_avoid> (Boolean; default: disabled; Linux 2.2 to 2.6.13)"
16026 msgstr ""
16027
16028 #.  Since 2.1.8; removed in 2.6.13
16029 #
16030 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
16031 #. type: Plain text
16032 #: build/C/man7/tcp.7:791
16033 msgid ""
16034 "Enable TCP Vegas congestion avoidance algorithm.  TCP Vegas is a sender-side "
16035 "only change to TCP that anticipates the onset of congestion by estimating "
16036 "the bandwidth.  TCP Vegas adjusts the sending rate by modifying the "
16037 "congestion window.  TCP Vegas should provide less packet loss, but it is not "
16038 "as aggressive as TCP Reno."
16039 msgstr ""
16040
16041 #. type: TP
16042 #: build/C/man7/tcp.7:791
16043 #, no-wrap
16044 msgid "I<tcp_westwood> (Boolean; default: disabled; Linux 2.4.26/2.6.3 to 2.6.13)"
16045 msgstr ""
16046
16047 #. type: Plain text
16048 #: build/C/man7/tcp.7:803
16049 msgid ""
16050 "Enable TCP Westwood+ congestion control algorithm.  TCP Westwood+ is a "
16051 "sender-side only modification of the TCP Reno protocol stack that optimizes "
16052 "the performance of TCP congestion control.  It is based on end-to-end "
16053 "bandwidth estimation to set congestion window and slow start threshold after "
16054 "a congestion episode.  Using this estimation, TCP Westwood+ adaptively sets "
16055 "a slow start threshold and a congestion window which takes into account the "
16056 "bandwidth used at the time congestion is experienced.  TCP Westwood+ "
16057 "significantly increases fairness with respect to TCP Reno in wired networks "
16058 "and throughput over wireless links."
16059 msgstr ""
16060
16061 #. type: TP
16062 #: build/C/man7/tcp.7:803
16063 #, no-wrap
16064 msgid "I<tcp_window_scaling> (Boolean; default: enabled; since Linux 2.2)"
16065 msgstr ""
16066
16067 #.  Since 2.1.36
16068 #. type: Plain text
16069 #: build/C/man7/tcp.7:817
16070 msgid ""
16071 "Enable RFC\\ 1323 TCP window scaling.  This feature allows the use of a "
16072 "large window (E<gt> 64K) on a TCP connection, should the other end support "
16073 "it.  Normally, the 16 bit window length field in the TCP header limits the "
16074 "window size to less than 64K bytes.  If larger windows are desired, "
16075 "applications can increase the size of their socket buffers and the window "
16076 "scaling option will be employed.  If I<tcp_window_scaling> is disabled, TCP "
16077 "will not negotiate the use of window scaling with the other end during "
16078 "connection setup."
16079 msgstr ""
16080
16081 #. type: TP
16082 #: build/C/man7/tcp.7:817
16083 #, no-wrap
16084 msgid "I<tcp_wmem> (since Linux 2.4)"
16085 msgstr ""
16086
16087 #.  Since 2.4.0-test7
16088 #. type: Plain text
16089 #: build/C/man7/tcp.7:825
16090 msgid ""
16091 "This is a vector of 3 integers: [min, default, max].  These parameters are "
16092 "used by TCP to regulate send buffer sizes.  TCP dynamically adjusts the size "
16093 "of the send buffer from the default values listed below, in the range of "
16094 "these values, depending on memory available."
16095 msgstr ""
16096
16097 #. type: Plain text
16098 #: build/C/man7/tcp.7:836
16099 msgid ""
16100 "Minimum size of the send buffer used by each TCP socket.  The default value "
16101 "is the system page size.  (On Linux 2.4, the default value is 4K bytes.)  "
16102 "This value is used to ensure that in memory pressure mode, allocations below "
16103 "this size will still succeed.  This is not used to bound the size of the "
16104 "send buffer declared using B<SO_SNDBUF> on a socket."
16105 msgstr ""
16106
16107 #.  True in Linux 2.4 and 2.6
16108 #. type: Plain text
16109 #: build/C/man7/tcp.7:850
16110 msgid ""
16111 "The default size of the send buffer for a TCP socket.  This value overwrites "
16112 "the initial default buffer size from the generic global "
16113 "I</proc/sys/net/core/wmem_default> defined for all protocols.  The default "
16114 "value is 16K bytes.  If larger send buffer sizes are desired, this value "
16115 "should be increased (to affect all sockets).  To employ large TCP windows, "
16116 "the I</proc/sys/net/ipv4/tcp_window_scaling> must be set to a nonzero value "
16117 "(default)."
16118 msgstr ""
16119
16120 #. type: Plain text
16121 #: build/C/man7/tcp.7:859
16122 msgid ""
16123 "The maximum size of the send buffer used by each TCP socket.  This value "
16124 "does not override the value in I</proc/sys/net/core/wmem_max>.  This is not "
16125 "used to limit the size of the send buffer declared using B<SO_SNDBUF> on a "
16126 "socket.  The default value is calculated using the formula"
16127 msgstr ""
16128
16129 #. type: Plain text
16130 #: build/C/man7/tcp.7:861
16131 #, no-wrap
16132 msgid "    max(65536, min(4MB, I<tcp_mem>[1]*PAGE_SIZE/128))\n"
16133 msgstr ""
16134
16135 #. type: Plain text
16136 #: build/C/man7/tcp.7:864
16137 msgid ""
16138 "(On Linux 2.4, the default value is 128K bytes, lowered 64K depending on "
16139 "low-memory systems.)"
16140 msgstr ""
16141
16142 #. type: TP
16143 #: build/C/man7/tcp.7:865
16144 #, no-wrap
16145 msgid ""
16146 "I<tcp_workaround_signed_windows> (Boolean; default: disabled; since Linux "
16147 "2.6.26)"
16148 msgstr ""
16149
16150 #. type: Plain text
16151 #: build/C/man7/tcp.7:871
16152 msgid ""
16153 "If enabled, assume that no receipt of a window-scaling option means that the "
16154 "remote TCP is broken and treats the window as a signed quantity.  If "
16155 "disabled, assume that the remote TCP is not broken even if we do not receive "
16156 "a window scaling option from it."
16157 msgstr ""
16158
16159 #.  or SOL_TCP on Linux
16160 #. type: Plain text
16161 #: build/C/man7/tcp.7:889
16162 msgid ""
16163 "To set or get a TCP socket option, call B<getsockopt>(2)  to read or "
16164 "B<setsockopt>(2)  to write the option with the option level argument set to "
16165 "B<IPPROTO_TCP>.  Unless otherwise noted, I<optval> is a pointer to an "
16166 "I<int>.  In addition, most B<IPPROTO_IP> socket options are valid on TCP "
16167 "sockets.  For more information see B<ip>(7)."
16168 msgstr ""
16169
16170 #. type: TP
16171 #: build/C/man7/tcp.7:889
16172 #, no-wrap
16173 msgid "B<TCP_CONGESTION> (since Linux 2.6.13)"
16174 msgstr ""
16175
16176 #.          commit 5f8ef48d240963093451bcf83df89f1a1364f51d
16177 #.          Author: Stephen Hemminger <shemminger@osdl.org>
16178 #. type: Plain text
16179 #: build/C/man7/tcp.7:905
16180 msgid ""
16181 "The argument for this option is a string.  This option allows the caller to "
16182 "set the TCP congestion control algorithm to be used, on a per-socket basis.  "
16183 "Unprivileged processes are restricted to choosing one of the algorithms in "
16184 "I<tcp_allowed_congestion_control> (described above).  Privileged processes "
16185 "(B<CAP_NET_ADMIN>)  can choose from any of the available congestion-control "
16186 "algorithms (see the description of I<tcp_available_congestion_control> "
16187 "above)."
16188 msgstr ""
16189
16190 #. type: TP
16191 #: build/C/man7/tcp.7:905
16192 #, no-wrap
16193 msgid "B<TCP_CORK> (since Linux 2.2)"
16194 msgstr ""
16195
16196 #.  precisely: since 2.1.127
16197 #. type: Plain text
16198 #: build/C/man7/tcp.7:921
16199 msgid ""
16200 "If set, don't send out partial frames.  All queued partial frames are sent "
16201 "when the option is cleared again.  This is useful for prepending headers "
16202 "before calling B<sendfile>(2), or for throughput optimization.  As currently "
16203 "implemented, there is a 200 millisecond ceiling on the time for which output "
16204 "is corked by B<TCP_CORK>.  If this ceiling is reached, then queued data is "
16205 "automatically transmitted.  This option can be combined with B<TCP_NODELAY> "
16206 "only since Linux 2.5.71.  This option should not be used in code intended to "
16207 "be portable."
16208 msgstr ""
16209
16210 #. type: TP
16211 #: build/C/man7/tcp.7:921
16212 #, no-wrap
16213 msgid "B<TCP_DEFER_ACCEPT> (since Linux 2.4)"
16214 msgstr ""
16215
16216 #.  Precisely: since 2.3.38
16217 #.  Useful references:
16218 #.  http://www.techrepublic.com/article/take-advantage-of-tcp-ip-options-to-optimize-data-transmission/
16219 #.  http://unix.stackexchange.com/questions/94104/real-world-use-of-tcp-defer-accept
16220 #. type: Plain text
16221 #: build/C/man7/tcp.7:932
16222 msgid ""
16223 "Allow a listener to be awakened only when data arrives on the socket.  Takes "
16224 "an integer value (seconds), this can bound the maximum number of attempts "
16225 "TCP will make to complete the connection.  This option should not be used in "
16226 "code intended to be portable."
16227 msgstr ""
16228
16229 #. type: TP
16230 #: build/C/man7/tcp.7:932
16231 #, no-wrap
16232 msgid "B<TCP_INFO> (since Linux 2.4)"
16233 msgstr ""
16234
16235 #. type: Plain text
16236 #: build/C/man7/tcp.7:938
16237 msgid ""
16238 "Used to collect information about this socket.  The kernel returns a "
16239 "I<struct tcp_info> as defined in the file I</usr/include/linux/tcp.h>.  This "
16240 "option should not be used in code intended to be portable."
16241 msgstr ""
16242
16243 #. type: TP
16244 #: build/C/man7/tcp.7:938
16245 #, no-wrap
16246 msgid "B<TCP_KEEPCNT> (since Linux 2.4)"
16247 msgstr ""
16248
16249 #.  Precisely: since 2.3.18
16250 #. type: Plain text
16251 #: build/C/man7/tcp.7:945
16252 msgid ""
16253 "The maximum number of keepalive probes TCP should send before dropping the "
16254 "connection.  This option should not be used in code intended to be portable."
16255 msgstr ""
16256
16257 #. type: TP
16258 #: build/C/man7/tcp.7:945
16259 #, no-wrap
16260 msgid "B<TCP_KEEPIDLE> (since Linux 2.4)"
16261 msgstr ""
16262
16263 #.  Precisely: since 2.3.18
16264 #. type: Plain text
16265 #: build/C/man7/tcp.7:954
16266 msgid ""
16267 "The time (in seconds) the connection needs to remain idle before TCP starts "
16268 "sending keepalive probes, if the socket option B<SO_KEEPALIVE> has been set "
16269 "on this socket.  This option should not be used in code intended to be "
16270 "portable."
16271 msgstr ""
16272
16273 #. type: TP
16274 #: build/C/man7/tcp.7:954
16275 #, no-wrap
16276 msgid "B<TCP_KEEPINTVL> (since Linux 2.4)"
16277 msgstr ""
16278
16279 #.  Precisely: since 2.3.18
16280 #. type: Plain text
16281 #: build/C/man7/tcp.7:959
16282 msgid ""
16283 "The time (in seconds) between individual keepalive probes.  This option "
16284 "should not be used in code intended to be portable."
16285 msgstr ""
16286
16287 #. type: TP
16288 #: build/C/man7/tcp.7:959
16289 #, no-wrap
16290 msgid "B<TCP_LINGER2> (since Linux 2.4)"
16291 msgstr ""
16292
16293 #.  Precisely: since 2.3.41
16294 #. type: Plain text
16295 #: build/C/man7/tcp.7:971
16296 msgid ""
16297 "The lifetime of orphaned FIN_WAIT2 state sockets.  This option can be used "
16298 "to override the system-wide setting in the file "
16299 "I</proc/sys/net/ipv4/tcp_fin_timeout> for this socket.  This is not to be "
16300 "confused with the B<socket>(7)  level option B<SO_LINGER>.  This option "
16301 "should not be used in code intended to be portable."
16302 msgstr ""
16303
16304 #. type: TP
16305 #: build/C/man7/tcp.7:971
16306 #, no-wrap
16307 msgid "B<TCP_MAXSEG>"
16308 msgstr ""
16309
16310 #.  Present in Linux 1.0
16311 #. type: Plain text
16312 #: build/C/man7/tcp.7:981
16313 msgid ""
16314 "The maximum segment size for outgoing TCP packets.  In Linux 2.2 and "
16315 "earlier, and in Linux 2.6.28 and later, if this option is set before "
16316 "connection establishment, it also changes the MSS value announced to the "
16317 "other end in the initial packet.  Values greater than the (eventual) "
16318 "interface MTU have no effect.  TCP will also impose its minimum and maximum "
16319 "bounds over the value provided."
16320 msgstr ""
16321
16322 #. type: TP
16323 #: build/C/man7/tcp.7:981
16324 #, no-wrap
16325 msgid "B<TCP_NODELAY>"
16326 msgstr ""
16327
16328 #.  Present in Linux 1.0
16329 #. type: Plain text
16330 #: build/C/man7/tcp.7:998
16331 msgid ""
16332 "If set, disable the Nagle algorithm.  This means that segments are always "
16333 "sent as soon as possible, even if there is only a small amount of data.  "
16334 "When not set, data is buffered until there is a sufficient amount to send "
16335 "out, thereby avoiding the frequent sending of small packets, which results "
16336 "in poor utilization of the network.  This option is overridden by "
16337 "B<TCP_CORK>; however, setting this option forces an explicit flush of "
16338 "pending output, even if B<TCP_CORK> is currently set."
16339 msgstr ""
16340
16341 #. type: TP
16342 #: build/C/man7/tcp.7:998
16343 #, no-wrap
16344 msgid "B<TCP_QUICKACK> (since Linux 2.4.4)"
16345 msgstr ""
16346
16347 #. type: Plain text
16348 #: build/C/man7/tcp.7:1013
16349 msgid ""
16350 "Enable quickack mode if set or disable quickack mode if cleared.  In "
16351 "quickack mode, acks are sent immediately, rather than delayed if needed in "
16352 "accordance to normal TCP operation.  This flag is not permanent, it only "
16353 "enables a switch to or from quickack mode.  Subsequent operation of the TCP "
16354 "protocol will once again enter/leave quickack mode depending on internal "
16355 "protocol processing and factors such as delayed ack timeouts occurring and "
16356 "data transfer.  This option should not be used in code intended to be "
16357 "portable."
16358 msgstr ""
16359
16360 #. type: TP
16361 #: build/C/man7/tcp.7:1013
16362 #, no-wrap
16363 msgid "B<TCP_SYNCNT> (since Linux 2.4)"
16364 msgstr ""
16365
16366 #.  Precisely: since 2.3.18
16367 #. type: Plain text
16368 #: build/C/man7/tcp.7:1020
16369 msgid ""
16370 "Set the number of SYN retransmits that TCP should send before aborting the "
16371 "attempt to connect.  It cannot exceed 255.  This option should not be used "
16372 "in code intended to be portable."
16373 msgstr ""
16374
16375 #. type: TP
16376 #: build/C/man7/tcp.7:1020
16377 #, no-wrap
16378 msgid "B<TCP_USER_TIMEOUT> (since Linux 2.6.37)"
16379 msgstr ""
16380
16381 #.          commit dca43c75e7e545694a9dd6288553f55c53e2a3a3
16382 #.          Author: Jerry Chu <hkchu@google.com>
16383 #.  The following text taken nearly verbatim from Jerry Chu's (excellent)
16384 #.  commit message.
16385 #. type: Plain text
16386 #: build/C/man7/tcp.7:1038
16387 msgid ""
16388 "This option takes an I<unsigned int> as an argument.  When the value is "
16389 "greater than 0, it specifies the maximum amount of time in milliseconds that "
16390 "transmitted data may remain unacknowledged before TCP will forcibly close "
16391 "the corresponding connection and return B<ETIMEDOUT> to the application.  If "
16392 "the option value is specified as 0, TCP will to use the system default."
16393 msgstr ""
16394
16395 #. type: Plain text
16396 #: build/C/man7/tcp.7:1045
16397 msgid ""
16398 "Increasing user timeouts allows a TCP connection to survive extended periods "
16399 "without end-to-end connectivity.  Decreasing user timeouts allows "
16400 "applications to \"fail fast\", if so desired.  Otherwise, failure may take "
16401 "up to 20 minutes with the current system defaults in a normal WAN "
16402 "environment."
16403 msgstr ""
16404
16405 #. type: Plain text
16406 #: build/C/man7/tcp.7:1055
16407 msgid ""
16408 "This option can be set during any state of a TCP connection, but is only "
16409 "effective during the synchronized states of a connection (ESTABLISHED, "
16410 "FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, and LAST-ACK).  Moreover, when "
16411 "used with the TCP keepalive (B<SO_KEEPALIVE>)  option, B<TCP_USER_TIMEOUT> "
16412 "will override keepalive to determine when to close a connection due to "
16413 "keepalive failure."
16414 msgstr ""
16415
16416 #. type: Plain text
16417 #: build/C/man7/tcp.7:1058
16418 msgid ""
16419 "The option has no effect on when TCP retransmits a packet, nor when a "
16420 "keepalive probe is sent."
16421 msgstr ""
16422
16423 #. type: Plain text
16424 #: build/C/man7/tcp.7:1062
16425 msgid ""
16426 "This option, like many others, will be inherited by the socket returned by "
16427 "B<accept>(2), if it was set on the listening socket."
16428 msgstr ""
16429
16430 #. type: Plain text
16431 #: build/C/man7/tcp.7:1065
16432 msgid ""
16433 "Further details on the user timeout feature can be found in RFC\\ 793 and "
16434 "RFC\\ 5482 (\"TCP User Timeout Option\")."
16435 msgstr ""
16436
16437 #. type: TP
16438 #: build/C/man7/tcp.7:1065
16439 #, no-wrap
16440 msgid "B<TCP_WINDOW_CLAMP> (since Linux 2.4)"
16441 msgstr ""
16442
16443 #.  Precisely: since 2.3.41
16444 #. type: Plain text
16445 #: build/C/man7/tcp.7:1072
16446 msgid ""
16447 "Bound the size of the advertised window to this value.  The kernel imposes a "
16448 "minimum size of SOCK_MIN_RCVBUF/2.  This option should not be used in code "
16449 "intended to be portable."
16450 msgstr ""
16451
16452 #. type: SS
16453 #: build/C/man7/tcp.7:1072 build/C/man7/unix.7:177
16454 #, no-wrap
16455 msgid "Sockets API"
16456 msgstr ""
16457
16458 #. type: Plain text
16459 #: build/C/man7/tcp.7:1081
16460 msgid ""
16461 "TCP provides limited support for out-of-band data, in the form of (a single "
16462 "byte of) urgent data.  In Linux this means if the other end sends newer "
16463 "out-of-band data the older urgent data is inserted as normal data into the "
16464 "stream (even when B<SO_OOBINLINE> is not set).  This differs from BSD-based "
16465 "stacks."
16466 msgstr ""
16467
16468 #. type: Plain text
16469 #: build/C/man7/tcp.7:1088
16470 msgid ""
16471 "Linux uses the BSD compatible interpretation of the urgent pointer field by "
16472 "default.  This violates RFC\\ 1122, but is required for interoperability "
16473 "with other stacks.  It can be changed via I</proc/sys/net/ipv4/tcp_stdurg>."
16474 msgstr ""
16475
16476 #. type: Plain text
16477 #: build/C/man7/tcp.7:1093
16478 msgid ""
16479 "It is possible to peek at out-of-band data using the B<recv>(2)  B<MSG_PEEK> "
16480 "flag."
16481 msgstr ""
16482
16483 #. type: Plain text
16484 #: build/C/man7/tcp.7:1109
16485 msgid ""
16486 "Since version 2.4, Linux supports the use of B<MSG_TRUNC> in the I<flags> "
16487 "argument of B<recv>(2)  (and B<recvmsg>(2)).  This flag causes the received "
16488 "bytes of data to be discarded, rather than passed back in a caller-supplied "
16489 "buffer.  Since Linux 2.4.4, B<MSG_TRUNC> also has this effect when used in "
16490 "conjunction with B<MSG_OOB> to receive out-of-band data."
16491 msgstr ""
16492
16493 #. type: Plain text
16494 #: build/C/man7/tcp.7:1115 build/C/man7/unix.7:290
16495 msgid ""
16496 "The following B<ioctl>(2)  calls return information in I<value>.  The "
16497 "correct syntax is:"
16498 msgstr ""
16499
16500 #. type: Plain text
16501 #: build/C/man7/tcp.7:1120
16502 #, no-wrap
16503 msgid ""
16504 "B<int>I< value>B<;>\n"
16505 "I<error>B< = ioctl(>I<tcp_socket>B<, >I<ioctl_type>B<, &>I<value>B<);>\n"
16506 msgstr ""
16507
16508 #. type: Plain text
16509 #: build/C/man7/tcp.7:1125
16510 msgid "I<ioctl_type> is one of the following:"
16511 msgstr ""
16512
16513 #. type: TP
16514 #: build/C/man7/tcp.7:1125 build/C/man7/unix.7:300
16515 #, no-wrap
16516 msgid "B<SIOCINQ>"
16517 msgstr ""
16518
16519 #.  FIXME http://sources.redhat.com/bugzilla/show_bug.cgi?id=12002,
16520 #.  filed 2010-09-10, may cause SIOCINQ to be defined in glibc headers
16521 #.  SIOCOUTQ also has an effect for UNIX domain sockets, but not
16522 #.  quite what userland might expect. It seems to return the number
16523 #.  of bytes allocated for buffers containing pending output.
16524 #.  That number is normally larger than the number of bytes of pending
16525 #.  output. Since this info is, from userland's point of view, imprecise,
16526 #.  and it may well change, probably best not to document this now.
16527 #. type: Plain text
16528 #: build/C/man7/tcp.7:1141 build/C/man7/unix.7:322
16529 msgid ""
16530 "Returns the amount of queued unread data in the receive buffer.  The socket "
16531 "must not be in LISTEN state, otherwise an error (B<EINVAL>)  is returned.  "
16532 "B<SIOCINQ> is defined in I<E<lt>linux/sockios.hE<gt>>.  Alternatively, you "
16533 "can use the synonymous B<FIONREAD>, defined in I<E<lt>sys/ioctl.hE<gt>>."
16534 msgstr ""
16535
16536 #. type: TP
16537 #: build/C/man7/tcp.7:1141
16538 #, no-wrap
16539 msgid "B<SIOCATMARK>"
16540 msgstr ""
16541
16542 #. type: Plain text
16543 #: build/C/man7/tcp.7:1146
16544 msgid ""
16545 "Returns true (i.e., I<value> is nonzero) if the inbound data stream is at "
16546 "the urgent mark."
16547 msgstr ""
16548
16549 #. type: Plain text
16550 #: build/C/man7/tcp.7:1162
16551 msgid ""
16552 "If the B<SO_OOBINLINE> socket option is set, and B<SIOCATMARK> returns true, "
16553 "then the next read from the socket will return the urgent data.  If the "
16554 "B<SO_OOBINLINE> socket option is not set, and B<SIOCATMARK> returns true, "
16555 "then the next read from the socket will return the bytes following the "
16556 "urgent data (to actually read the urgent data requires the B<recv(MSG_OOB)> "
16557 "flag)."
16558 msgstr ""
16559
16560 #. type: Plain text
16561 #: build/C/man7/tcp.7:1176
16562 msgid ""
16563 "Note that a read never reads across the urgent mark.  If an application is "
16564 "informed of the presence of urgent data via B<select>(2)  (using the "
16565 "I<exceptfds> argument) or through delivery of a B<SIGURG> signal, then it "
16566 "can advance up to the mark using a loop which repeatedly tests B<SIOCATMARK> "
16567 "and performs a read (requesting any number of bytes) as long as "
16568 "B<SIOCATMARK> returns false."
16569 msgstr ""
16570
16571 #. type: TP
16572 #: build/C/man7/tcp.7:1176
16573 #, no-wrap
16574 msgid "B<SIOCOUTQ>"
16575 msgstr ""
16576
16577 #.  FIXME http://sources.redhat.com/bugzilla/show_bug.cgi?id=12002,
16578 #.  filed 2010-09-10, may cause SIOCOUTQ to be defined in glibc headers
16579 #. type: Plain text
16580 #: build/C/man7/tcp.7:1192
16581 msgid ""
16582 "Returns the amount of unsent data in the socket send queue.  The socket must "
16583 "not be in LISTEN state, otherwise an error (B<EINVAL>)  is returned.  "
16584 "B<SIOCOUTQ> is defined in I<E<lt>linux/sockios.hE<gt>>.  Alternatively, you "
16585 "can use the synonymous B<TIOCOUTQ>, defined in I<E<lt>sys/ioctl.hE<gt>>."
16586 msgstr ""
16587
16588 #. type: Plain text
16589 #: build/C/man7/tcp.7:1197
16590 msgid ""
16591 "When a network error occurs, TCP tries to resend the packet.  If it doesn't "
16592 "succeed after some time, either B<ETIMEDOUT> or the last received error on "
16593 "this connection is reported."
16594 msgstr ""
16595
16596 #. type: Plain text
16597 #: build/C/man7/tcp.7:1208
16598 msgid ""
16599 "Some applications require a quicker error notification.  This can be enabled "
16600 "with the B<IPPROTO_IP> level B<IP_RECVERR> socket option.  When this option "
16601 "is enabled, all incoming errors are immediately passed to the user program.  "
16602 "Use this option with care \\(em it makes TCP less tolerant to routing "
16603 "changes and other normal network conditions."
16604 msgstr ""
16605
16606 #. type: TP
16607 #: build/C/man7/tcp.7:1209
16608 #, no-wrap
16609 msgid "B<EAFNOTSUPPORT>"
16610 msgstr ""
16611
16612 #. type: Plain text
16613 #: build/C/man7/tcp.7:1215
16614 msgid "Passed socket address type in I<sin_family> was not B<AF_INET>."
16615 msgstr ""
16616
16617 #. type: Plain text
16618 #: build/C/man7/tcp.7:1219
16619 msgid ""
16620 "The other end closed the socket unexpectedly or a read is executed on a shut "
16621 "down socket."
16622 msgstr ""
16623
16624 #. type: TP
16625 #: build/C/man7/tcp.7:1219
16626 #, no-wrap
16627 msgid "B<ETIMEDOUT>"
16628 msgstr ""
16629
16630 #. type: Plain text
16631 #: build/C/man7/tcp.7:1222
16632 msgid "The other end didn't acknowledge retransmitted data after some time."
16633 msgstr ""
16634
16635 #. type: Plain text
16636 #: build/C/man7/tcp.7:1226
16637 msgid ""
16638 "Any errors defined for B<ip>(7)  or the generic socket layer may also be "
16639 "returned for TCP."
16640 msgstr ""
16641
16642 #. type: Plain text
16643 #: build/C/man7/tcp.7:1233
16644 msgid ""
16645 "Support for Explicit Congestion Notification, zero-copy B<sendfile>(2), "
16646 "reordering support and some SACK extensions (DSACK) were introduced in 2.4.  "
16647 "Support for forward acknowledgement (FACK), TIME_WAIT recycling, and "
16648 "per-connection keepalive socket options were introduced in 2.3."
16649 msgstr ""
16650
16651 #. type: Plain text
16652 #: build/C/man7/tcp.7:1235
16653 msgid "Not all errors are documented."
16654 msgstr ""
16655
16656 #.  Only a single Linux kernel version is described
16657 #.  Info for 2.2 was lost. Should be added again,
16658 #.  or put into a separate page.
16659 #.  .SH AUTHORS
16660 #.  This man page was originally written by Andi Kleen.
16661 #.  It was updated for 2.4 by Nivedita Singhvi with input from
16662 #.  Alexey Kuznetsov's Documentation/networking/ip-sysctl.txt
16663 #.  document.
16664 #. type: Plain text
16665 #: build/C/man7/tcp.7:1245
16666 msgid "IPv6 is not described."
16667 msgstr ""
16668
16669 #. type: Plain text
16670 #: build/C/man7/tcp.7:1257
16671 msgid ""
16672 "B<accept>(2), B<bind>(2), B<connect>(2), B<getsockopt>(2), B<listen>(2), "
16673 "B<recvmsg>(2), B<sendfile>(2), B<sendmsg>(2), B<socket>(2), B<ip>(7), "
16674 "B<socket>(7)"
16675 msgstr ""
16676
16677 #. type: Plain text
16678 #: build/C/man7/tcp.7:1259
16679 msgid "RFC\\ 793 for the TCP specification."
16680 msgstr ""
16681
16682 #. type: Plain text
16683 #: build/C/man7/tcp.7:1261
16684 msgid ""
16685 "RFC\\ 1122 for the TCP requirements and a description of the Nagle "
16686 "algorithm."
16687 msgstr ""
16688
16689 #. type: Plain text
16690 #: build/C/man7/tcp.7:1263
16691 msgid "RFC\\ 1323 for TCP timestamp and window scaling options."
16692 msgstr ""
16693
16694 #. type: Plain text
16695 #: build/C/man7/tcp.7:1265
16696 msgid "RFC\\ 1337 for a description of TIME_WAIT assassination hazards."
16697 msgstr ""
16698
16699 #. type: Plain text
16700 #: build/C/man7/tcp.7:1267
16701 msgid "RFC\\ 3168 for a description of Explicit Congestion Notification."
16702 msgstr ""
16703
16704 #. type: Plain text
16705 #: build/C/man7/tcp.7:1269
16706 msgid "RFC\\ 2581 for TCP congestion control algorithms."
16707 msgstr ""
16708
16709 #. type: Plain text
16710 #: build/C/man7/tcp.7:1271
16711 msgid "RFC\\ 2018 and RFC\\ 2883 for SACK and extensions to SACK."
16712 msgstr ""
16713
16714 #. type: TH
16715 #: build/C/man7/udp.7:12
16716 #, no-wrap
16717 msgid "UDP"
16718 msgstr ""
16719
16720 #. type: TH
16721 #: build/C/man7/udp.7:12
16722 #, no-wrap
16723 msgid "2013-07-31"
16724 msgstr ""
16725
16726 #. type: Plain text
16727 #: build/C/man7/udp.7:15
16728 msgid "udp - User Datagram Protocol for IPv4"
16729 msgstr ""
16730
16731 #. type: Plain text
16732 #: build/C/man7/udp.7:21
16733 msgid "B<#include E<lt>netinet/udp.hE<gt>>"
16734 msgstr ""
16735
16736 #. type: Plain text
16737 #: build/C/man7/udp.7:23
16738 msgid "B<udp_socket = socket(AF_INET, SOCK_DGRAM, 0);>"
16739 msgstr ""
16740
16741 #. type: Plain text
16742 #: build/C/man7/udp.7:29
16743 msgid ""
16744 "This is an implementation of the User Datagram Protocol described in RFC\\ "
16745 "768.  It implements a connectionless, unreliable datagram packet service.  "
16746 "Packets may be reordered or duplicated before they arrive.  UDP generates "
16747 "and checks checksums to catch transmission errors."
16748 msgstr ""
16749
16750 #. type: Plain text
16751 #: build/C/man7/udp.7:58
16752 msgid ""
16753 "When a UDP socket is created, its local and remote addresses are "
16754 "unspecified.  Datagrams can be sent immediately using B<sendto>(2)  or "
16755 "B<sendmsg>(2)  with a valid destination address as an argument.  When "
16756 "B<connect>(2)  is called on the socket, the default destination address is "
16757 "set and datagrams can now be sent using B<send>(2)  or B<write>(2)  without "
16758 "specifying a destination address.  It is still possible to send to other "
16759 "destinations by passing an address to B<sendto>(2)  or B<sendmsg>(2).  In "
16760 "order to receive packets, the socket can be bound to a local address first "
16761 "by using B<bind>(2).  Otherwise the socket layer will automatically assign a "
16762 "free local port out of the range defined by "
16763 "I</proc/sys/net/ipv4/ip_local_port_range> and bind the socket to "
16764 "B<INADDR_ANY>."
16765 msgstr ""
16766
16767 #. type: Plain text
16768 #: build/C/man7/udp.7:66
16769 msgid ""
16770 "All receive operations return only one packet.  When the packet is smaller "
16771 "than the passed buffer, only that much data is returned; when it is bigger, "
16772 "the packet is truncated and the B<MSG_TRUNC> flag is set.  B<MSG_WAITALL> is "
16773 "not supported."
16774 msgstr ""
16775
16776 #. type: Plain text
16777 #: build/C/man7/udp.7:75
16778 msgid ""
16779 "IP options may be sent or received using the socket options described in "
16780 "B<ip>(7).  They are processed by the kernel only when the appropriate "
16781 "I</proc> parameter is enabled (but still passed to the user even when it is "
16782 "turned off).  See B<ip>(7)."
16783 msgstr ""
16784
16785 #. type: Plain text
16786 #: build/C/man7/udp.7:80
16787 msgid ""
16788 "When the B<MSG_DONTROUTE> flag is set on sending, the destination address "
16789 "must refer to a local interface address and the packet is sent only to that "
16790 "interface."
16791 msgstr ""
16792
16793 #. type: Plain text
16794 #: build/C/man7/udp.7:98
16795 msgid ""
16796 "By default, Linux UDP does path MTU (Maximum Transmission Unit) discovery.  "
16797 "This means the kernel will keep track of the MTU to a specific target IP "
16798 "address and return B<EMSGSIZE> when a UDP packet write exceeds it.  When "
16799 "this happens, the application should decrease the packet size.  Path MTU "
16800 "discovery can be also turned off using the B<IP_MTU_DISCOVER> socket option "
16801 "or the I</proc/sys/net/ipv4/ip_no_pmtu_disc> file; see B<ip>(7)  for "
16802 "details.  When turned off, UDP will fragment outgoing UDP packets that "
16803 "exceed the interface MTU.  However, disabling it is not recommended for "
16804 "performance and reliability reasons."
16805 msgstr ""
16806
16807 #. type: Plain text
16808 #: build/C/man7/udp.7:103
16809 msgid "UDP uses the IPv4 I<sockaddr_in> address format described in B<ip>(7)."
16810 msgstr ""
16811
16812 #. type: Plain text
16813 #: build/C/man7/udp.7:114
16814 msgid ""
16815 "All fatal errors will be passed to the user as an error return even when the "
16816 "socket is not connected.  This includes asynchronous errors received from "
16817 "the network.  You may get an error for an earlier packet that was sent on "
16818 "the same socket.  This behavior differs from many other BSD socket "
16819 "implementations which don't pass any errors unless the socket is connected.  "
16820 "Linux's behavior is mandated by B<RFC\\ 1122>."
16821 msgstr ""
16822
16823 #. type: Plain text
16824 #: build/C/man7/udp.7:128
16825 msgid ""
16826 "For compatibility with legacy code, in Linux 2.0 and 2.2 it was possible to "
16827 "set the B<SO_BSDCOMPAT> B<SOL_SOCKET> option to receive remote errors only "
16828 "when the socket has been connected (except for B<EPROTO> and B<EMSGSIZE>).  "
16829 "Locally generated errors are always passed.  Support for this socket option "
16830 "was removed in later kernels; see B<socket>(7)  for further information."
16831 msgstr ""
16832
16833 #. type: Plain text
16834 #: build/C/man7/udp.7:137
16835 msgid ""
16836 "When the B<IP_RECVERR> option is enabled, all errors are stored in the "
16837 "socket error queue, and can be received by B<recvmsg>(2)  with the "
16838 "B<MSG_ERRQUEUE> flag set."
16839 msgstr ""
16840
16841 #. type: Plain text
16842 #: build/C/man7/udp.7:140
16843 msgid ""
16844 "System-wide UDP parameter settings can be accessed by files in the directory "
16845 "I</proc/sys/net/ipv4/>."
16846 msgstr ""
16847
16848 #. type: TP
16849 #: build/C/man7/udp.7:140
16850 #, no-wrap
16851 msgid "I<udp_mem> (since Linux 2.6.25)"
16852 msgstr ""
16853
16854 #. type: Plain text
16855 #: build/C/man7/udp.7:144
16856 msgid ""
16857 "This is a vector of three integers governing the number of pages allowed for "
16858 "queueing by all UDP sockets."
16859 msgstr ""
16860
16861 #. type: Plain text
16862 #: build/C/man7/udp.7:151
16863 msgid ""
16864 "Below this number of pages, UDP is not bothered about its memory appetite.  "
16865 "When the amount of memory allocated by UDP exceeds this number, UDP starts "
16866 "to moderate memory usage."
16867 msgstr ""
16868
16869 #. type: Plain text
16870 #: build/C/man7/udp.7:157
16871 msgid ""
16872 "This value was introduced to follow the format of I<tcp_mem> (see "
16873 "B<tcp>(7))."
16874 msgstr ""
16875
16876 #. type: Plain text
16877 #: build/C/man7/udp.7:160
16878 msgid "Number of pages allowed for queueing by all UDP sockets."
16879 msgstr ""
16880
16881 #. type: Plain text
16882 #: build/C/man7/udp.7:164
16883 msgid ""
16884 "Defaults values for these three items are calculated at boot time from the "
16885 "amount of available memory."
16886 msgstr ""
16887
16888 #. type: TP
16889 #: build/C/man7/udp.7:164
16890 #, no-wrap
16891 msgid "I<udp_rmem_min> (integer; default value: PAGE_SIZE; since Linux 2.6.25)"
16892 msgstr ""
16893
16894 #. type: Plain text
16895 #: build/C/man7/udp.7:171
16896 msgid ""
16897 "Minimal size, in bytes, of receive buffers used by UDP sockets in "
16898 "moderation.  Each UDP socket is able to use the size for receiving data, "
16899 "even if total pages of UDP sockets exceed I<udp_mem> pressure."
16900 msgstr ""
16901
16902 #. type: TP
16903 #: build/C/man7/udp.7:171
16904 #, no-wrap
16905 msgid "I<udp_wmem_min> (integer; default value: PAGE_SIZE; since Linux 2.6.25)"
16906 msgstr ""
16907
16908 #. type: Plain text
16909 #: build/C/man7/udp.7:178
16910 msgid ""
16911 "Minimal size, in bytes, of send buffer used by UDP sockets in moderation.  "
16912 "Each UDP socket is able to use the size for sending data, even if total "
16913 "pages of UDP sockets exceed I<udp_mem> pressure."
16914 msgstr ""
16915
16916 #. type: Plain text
16917 #: build/C/man7/udp.7:189
16918 msgid ""
16919 "To set or get a UDP socket option, call B<getsockopt>(2)  to read or "
16920 "B<setsockopt>(2)  to write the option with the option level argument set to "
16921 "B<IPPROTO_UDP>.  Unless otherwise noted, I<optval> is a pointer to an "
16922 "I<int>."
16923 msgstr ""
16924
16925 #. type: TP
16926 #: build/C/man7/udp.7:189
16927 #, no-wrap
16928 msgid "B<UDP_CORK> (since Linux 2.5.44)"
16929 msgstr ""
16930
16931 #.  FIXME document UDP_ENCAP (new in kernel 2.5.67)
16932 #.  From include/linux/udp.h:
16933 #.  /* UDP encapsulation types */
16934 #.  #define UDP_ENCAP_ESPINUDP_NON_IKE      1 /* draft-ietf-ipsec-nat-t-ike-00/01 */
16935 #.  #define UDP_ENCAP_ESPINUDP      2 /* draft-ietf-ipsec-udp-encaps-06 */
16936 #.  #define UDP_ENCAP_L2TPINUDP     3 /* rfc2661 */
16937 #. type: Plain text
16938 #: build/C/man7/udp.7:202
16939 msgid ""
16940 "If this option is enabled, then all data output on this socket is "
16941 "accumulated into a single datagram that is transmitted when the option is "
16942 "disabled.  This option should not be used in code intended to be portable."
16943 msgstr ""
16944
16945 #. type: Plain text
16946 #: build/C/man7/udp.7:206
16947 msgid "These ioctls can be accessed using B<ioctl>(2).  The correct syntax is:"
16948 msgstr ""
16949
16950 #. type: Plain text
16951 #: build/C/man7/udp.7:211
16952 #, no-wrap
16953 msgid ""
16954 "B<int>I< value>B<;>\n"
16955 "I<error>B< = ioctl(>I<udp_socket>B<, >I<ioctl_type>B<, &>I<value>B<);>\n"
16956 msgstr ""
16957
16958 #. type: TP
16959 #: build/C/man7/udp.7:213
16960 #, no-wrap
16961 msgid "B<FIONREAD> (B<SIOCINQ>)"
16962 msgstr ""
16963
16964 #.  See http://www.securiteam.com/unixfocus/5KP0I15IKO.html
16965 #.  "GNUnet DoS (UDP Socket Unreachable)", 14 May 2006
16966 #. type: Plain text
16967 #: build/C/man7/udp.7:231
16968 msgid ""
16969 "Gets a pointer to an integer as argument.  Returns the size of the next "
16970 "pending datagram in the integer in bytes, or 0 when no datagram is pending.  "
16971 "B<Warning:> Using B<FIONREAD>, it is impossible to distinguish the case "
16972 "where no datagram is pending from the case where the next pending datagram "
16973 "contains zero bytes of data.  It is safer to use B<select>(2), B<poll>(2), "
16974 "or B<epoll>(7)  to distinguish these cases."
16975 msgstr ""
16976
16977 #. type: TP
16978 #: build/C/man7/udp.7:231
16979 #, no-wrap
16980 msgid "B<TIOCOUTQ> (B<SIOCOUTQ>)"
16981 msgstr ""
16982
16983 #. type: Plain text
16984 #: build/C/man7/udp.7:235
16985 msgid ""
16986 "Returns the number of data bytes in the local send queue.  Only supported "
16987 "with Linux 2.4 and above."
16988 msgstr ""
16989
16990 #. type: Plain text
16991 #: build/C/man7/udp.7:241
16992 msgid ""
16993 "In addition, all ioctls documented in B<ip>(7)  and B<socket>(7)  are "
16994 "supported."
16995 msgstr ""
16996
16997 #. type: Plain text
16998 #: build/C/man7/udp.7:247
16999 msgid ""
17000 "All errors documented for B<socket>(7)  or B<ip>(7)  may be returned by a "
17001 "send or receive on a UDP socket."
17002 msgstr ""
17003
17004 #. type: TP
17005 #: build/C/man7/udp.7:247 build/C/man7/unix.7:327
17006 #, no-wrap
17007 msgid "B<ECONNREFUSED>"
17008 msgstr ""
17009
17010 #. type: Plain text
17011 #: build/C/man7/udp.7:251
17012 msgid ""
17013 "No receiver was associated with the destination address.  This might be "
17014 "caused by a previous packet sent over the socket."
17015 msgstr ""
17016
17017 #.  .SH CREDITS
17018 #.  This man page was written by Andi Kleen.
17019 #. type: Plain text
17020 #: build/C/man7/udp.7:256
17021 msgid "B<IP_RECVERR> is a new feature in Linux 2.2."
17022 msgstr ""
17023
17024 #. type: Plain text
17025 #: build/C/man7/udp.7:261
17026 msgid "B<ip>(7), B<raw>(7), B<socket>(7), B<udplite>(7)"
17027 msgstr ""
17028
17029 #. type: Plain text
17030 #: build/C/man7/udp.7:263
17031 msgid "RFC\\ 768 for the User Datagram Protocol."
17032 msgstr ""
17033
17034 #. type: Plain text
17035 #: build/C/man7/udp.7:265
17036 msgid "RFC\\ 1122 for the host requirements."
17037 msgstr ""
17038
17039 #. type: Plain text
17040 #: build/C/man7/udp.7:267
17041 msgid "RFC\\ 1191 for a description of path MTU discovery."
17042 msgstr ""
17043
17044 #. type: TH
17045 #: build/C/man7/udplite.7:27
17046 #, no-wrap
17047 msgid "UDPLITE"
17048 msgstr ""
17049
17050 #. type: TH
17051 #: build/C/man7/udplite.7:27
17052 #, no-wrap
17053 msgid "2008-12-03"
17054 msgstr ""
17055
17056 #. type: Plain text
17057 #: build/C/man7/udplite.7:30
17058 msgid "udplite - Lightweight User Datagram Protocol"
17059 msgstr ""
17060
17061 #. type: Plain text
17062 #: build/C/man7/udplite.7:38
17063 msgid "B<sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDPLITE);>"
17064 msgstr ""
17065
17066 #. type: Plain text
17067 #: build/C/man7/udplite.7:41
17068 msgid ""
17069 "This is an implementation of the Lightweight User Datagram Protocol "
17070 "(UDP-Lite), as described in RFC\\ 3828."
17071 msgstr ""
17072
17073 #. type: Plain text
17074 #: build/C/man7/udplite.7:47
17075 msgid ""
17076 "UDP-Lite is an extension of UDP (RFC\\ 768) to support variable-length "
17077 "checksums.  This has advantages for some types of multimedia transport that "
17078 "may be able to make use of slightly damaged datagrams, rather than having "
17079 "them discarded by lower-layer protocols."
17080 msgstr ""
17081
17082 #. type: Plain text
17083 #: build/C/man7/udplite.7:53
17084 msgid ""
17085 "The variable-length checksum coverage is set via a B<setsockopt>(2)  "
17086 "option.  If this option is not set, the only difference to UDP is in using a "
17087 "different IP protocol identifier (IANA number 136)."
17088 msgstr ""
17089
17090 #. type: Plain text
17091 #: build/C/man7/udplite.7:58
17092 msgid ""
17093 "The UDP-Lite implementation is a full extension of B<udp>(7)\\(emthat is, it "
17094 "shares the same API and API behaviour, and in addition offers two socket "
17095 "options to control the checksum coverage."
17096 msgstr ""
17097
17098 #. type: Plain text
17099 #: build/C/man7/udplite.7:67
17100 msgid ""
17101 "UDP-Litev4 uses the I<sockaddr_in> address format described in B<ip>(7).  "
17102 "UDP-Litev6 uses the I<sockaddr_in6> address format described in B<ipv6>(7)."
17103 msgstr ""
17104
17105 #. type: Plain text
17106 #: build/C/man7/udplite.7:80
17107 msgid ""
17108 "To set or get a UDP-Lite socket option, call B<getsockopt>(2)  to read or "
17109 "B<setsockopt>(2)  to write the option with the option level argument set to "
17110 "B<IPPROTO_UDPLITE>.  In addition, all B<IPPROTO_UDP> socket options are "
17111 "valid on a UDP-Lite socket.  See B<udp>(7)  for more information."
17112 msgstr ""
17113
17114 #. type: Plain text
17115 #: build/C/man7/udplite.7:82
17116 msgid "The following two options are specific to UDP-Lite."
17117 msgstr ""
17118
17119 #. type: TP
17120 #: build/C/man7/udplite.7:82
17121 #, no-wrap
17122 msgid "B<UDPLITE_SEND_CSCOV>"
17123 msgstr ""
17124
17125 #. type: Plain text
17126 #: build/C/man7/udplite.7:87
17127 msgid ""
17128 "This option sets the sender checksum coverage and takes an I<int> as "
17129 "argument, with a checksum coverage value in the range 0..2^16-1."
17130 msgstr ""
17131
17132 #. type: Plain text
17133 #: build/C/man7/udplite.7:91
17134 msgid ""
17135 "A value of 0 means that the entire datagram is always covered.  Values from "
17136 "1-7 are illegal (RFC\\ 3828, 3.1) and are rounded up to the minimum coverage "
17137 "of 8."
17138 msgstr ""
17139
17140 #. type: Plain text
17141 #: build/C/man7/udplite.7:97
17142 msgid ""
17143 "With regard to IPv6 jumbograms (RFC\\ 2675), the UDP-Litev6 checksum "
17144 "coverage is limited to the first 2^16-1 octets, as per RFC\\ 3828, 3.5.  "
17145 "Higher values are therefore silently truncated to 2^16-1.  If in doubt, the "
17146 "current coverage value can always be queried using B<getsockopt>(2)."
17147 msgstr ""
17148
17149 #. type: TP
17150 #: build/C/man7/udplite.7:97
17151 #, no-wrap
17152 msgid "B<UDPLITE_RECV_CSCOV>"
17153 msgstr ""
17154
17155 #. type: Plain text
17156 #: build/C/man7/udplite.7:108
17157 msgid ""
17158 "This is the receiver-side analogue and uses the same argument format and "
17159 "value range as B<UDPLITE_SEND_CSCOV>.  This option is not required to enable "
17160 "traffic with partial checksum coverage.  Its function is that of a traffic "
17161 "filter: when enabled, it instructs the kernel to drop all packets which have "
17162 "a coverage I<less> than the specified coverage value."
17163 msgstr ""
17164
17165 #.  SO_NO_CHECK exists and is supported by UDPv4, but is
17166 #.  commented out in socket(7), hence also commented out here
17167 #. .PP
17168 #. Since UDP-Lite mandates checksums, checksumming can not be disabled
17169 #. via the
17170 #. .B SO_NO_CHECK
17171 #. option from
17172 #. .BR socket (7).
17173 #. type: Plain text
17174 #: build/C/man7/udplite.7:121
17175 msgid ""
17176 "When the value of B<UDPLITE_RECV_CSCOV> exceeds the actual packet coverage, "
17177 "incoming packets are silently dropped, but may generate a warning message in "
17178 "the system log."
17179 msgstr ""
17180
17181 #. type: Plain text
17182 #: build/C/man7/udplite.7:126
17183 msgid ""
17184 "All errors documented for B<udp>(7)  may be returned.  UDP-Lite does not add "
17185 "further errors."
17186 msgstr ""
17187
17188 #. type: Plain text
17189 #: build/C/man7/udplite.7:129
17190 msgid "I</proc/net/snmp> - basic UDP-Litev4 statistics counters."
17191 msgstr ""
17192
17193 #. type: Plain text
17194 #: build/C/man7/udplite.7:132
17195 msgid "I</proc/net/snmp6> - basic UDP-Litev6 statistics counters."
17196 msgstr ""
17197
17198 #. type: Plain text
17199 #: build/C/man7/udplite.7:134
17200 msgid "UDP-Litev4/v6 first appeared in Linux 2.6.20."
17201 msgstr ""
17202
17203 #.  FIXME . remove this section once glibc supports UDP-Lite
17204 #. type: Plain text
17205 #: build/C/man7/udplite.7:137
17206 msgid "Where glibc support is missing, the following definitions are needed:"
17207 msgstr ""
17208
17209 #.  The following two are defined in the kernel in linux/net/udplite.h
17210 #. type: Plain text
17211 #: build/C/man7/udplite.7:144
17212 #, no-wrap
17213 msgid ""
17214 "#define IPPROTO_UDPLITE     136\n"
17215 "#define UDPLITE_SEND_CSCOV  10\n"
17216 "#define UDPLITE_RECV_CSCOV  11\n"
17217 msgstr ""
17218
17219 #. type: Plain text
17220 #: build/C/man7/udplite.7:151
17221 msgid "B<ip>(7), B<ipv6>(7), B<socket>(7), B<udp>(7)"
17222 msgstr ""
17223
17224 #. type: Plain text
17225 #: build/C/man7/udplite.7:153
17226 msgid "RFC\\ 3828 for the Lightweight User Datagram Protocol (UDP-Lite)."
17227 msgstr ""
17228
17229 #. type: Plain text
17230 #: build/C/man7/udplite.7:156
17231 msgid "I<Documentation/networking/udplite.txt> in the Linux kernel source tree"
17232 msgstr ""
17233
17234 #. type: TH
17235 #: build/C/man7/unix.7:18
17236 #, no-wrap
17237 msgid "UNIX"
17238 msgstr ""
17239
17240 #. type: Plain text
17241 #: build/C/man7/unix.7:21
17242 msgid "unix - sockets for local interprocess communication"
17243 msgstr ""
17244
17245 #. type: Plain text
17246 #: build/C/man7/unix.7:25
17247 msgid "B<#include E<lt>sys/un.hE<gt>>"
17248 msgstr ""
17249
17250 #. type: Plain text
17251 #: build/C/man7/unix.7:27
17252 msgid "I<unix_socket>B< = socket(AF_UNIX, type, 0);>"
17253 msgstr ""
17254
17255 #. type: Plain text
17256 #: build/C/man7/unix.7:29
17257 msgid "I<error>B< = socketpair(AF_UNIX, type, 0, int *>I<sv>B<);>"
17258 msgstr ""
17259
17260 #. type: Plain text
17261 #: build/C/man7/unix.7:40
17262 msgid ""
17263 "The B<AF_UNIX> (also known as B<AF_LOCAL>)  socket family is used to "
17264 "communicate between processes on the same machine efficiently.  "
17265 "Traditionally, UNIX domain sockets can be either unnamed, or bound to a "
17266 "filesystem pathname (marked as being of type socket).  Linux also supports "
17267 "an abstract namespace which is independent of the filesystem."
17268 msgstr ""
17269
17270 #. type: Plain text
17271 #: build/C/man7/unix.7:52
17272 msgid ""
17273 "Valid types are: B<SOCK_STREAM>, for a stream-oriented socket and "
17274 "B<SOCK_DGRAM>, for a datagram-oriented socket that preserves message "
17275 "boundaries (as on most UNIX implementations, UNIX domain datagram sockets "
17276 "are always reliable and don't reorder datagrams); and (since Linux 2.6.4)  "
17277 "B<SOCK_SEQPACKET>, for a connection-oriented socket that preserves message "
17278 "boundaries and delivers messages in the order that they were sent."
17279 msgstr ""
17280
17281 #. type: Plain text
17282 #: build/C/man7/unix.7:55
17283 msgid ""
17284 "UNIX domain sockets support passing file descriptors or process credentials "
17285 "to other processes using ancillary data."
17286 msgstr ""
17287
17288 #. type: Plain text
17289 #: build/C/man7/unix.7:57
17290 msgid "A UNIX domain socket address is represented in the following structure:"
17291 msgstr ""
17292
17293 #. type: Plain text
17294 #: build/C/man7/unix.7:61
17295 #, no-wrap
17296 msgid "#define UNIX_PATH_MAX    108\n"
17297 msgstr ""
17298
17299 #. type: Plain text
17300 #: build/C/man7/unix.7:66
17301 #, no-wrap
17302 msgid ""
17303 "struct sockaddr_un {\n"
17304 "    sa_family_t sun_family;               /* AF_UNIX */\n"
17305 "    char        sun_path[UNIX_PATH_MAX];  /* pathname */\n"
17306 "};\n"
17307 msgstr ""
17308
17309 #. type: Plain text
17310 #: build/C/man7/unix.7:72
17311 msgid "I<sun_family> always contains B<AF_UNIX>."
17312 msgstr ""
17313
17314 #. type: Plain text
17315 #: build/C/man7/unix.7:74
17316 msgid "Three types of address are distinguished in this structure:"
17317 msgstr ""
17318
17319 #. type: Plain text
17320 #: build/C/man7/unix.7:85
17321 msgid ""
17322 "I<pathname>: a UNIX domain socket can be bound to a null-terminated "
17323 "filesystem pathname using B<bind>(2).  When the address of the socket is "
17324 "returned by B<getsockname>(2), B<getpeername>(2), and B<accept>(2), its "
17325 "length is"
17326 msgstr ""
17327
17328 #. type: Plain text
17329 #: build/C/man7/unix.7:87
17330 #, no-wrap
17331 msgid "    offsetof(struct sockaddr_un, sun_path) + strlen(sun_path) + 1\n"
17332 msgstr ""
17333
17334 #. type: Plain text
17335 #: build/C/man7/unix.7:91
17336 msgid "and I<sun_path> contains the null-terminated pathname."
17337 msgstr ""
17338
17339 #.  There is quite some variation across implementations: FreeBSD
17340 #.  says the length is 16 bytes, HP-UX 11 says it's zero bytes.
17341 #. type: Plain text
17342 #: build/C/man7/unix.7:111
17343 msgid ""
17344 "I<unnamed>: A stream socket that has not been bound to a pathname using "
17345 "B<bind>(2)  has no name.  Likewise, the two sockets created by "
17346 "B<socketpair>(2)  are unnamed.  When the address of an unnamed socket is "
17347 "returned by B<getsockname>(2), B<getpeername>(2), and B<accept>(2), its "
17348 "length is I<sizeof(sa_family_t)>, and I<sun_path> should not be inspected."
17349 msgstr ""
17350
17351 #. type: Plain text
17352 #: build/C/man7/unix.7:137
17353 msgid ""
17354 "I<abstract>: an abstract socket address is distinguished by the fact that "
17355 "I<sun_path[0]> is a null byte (\\(aq\\e0\\(aq).  The socket's address in "
17356 "this namespace is given by the additional bytes in I<sun_path> that are "
17357 "covered by the specified length of the address structure.  (Null bytes in "
17358 "the name have no special significance.)  The name has no connection with "
17359 "filesystem pathnames.  When the address of an abstract socket is returned by "
17360 "B<getsockname>(2), B<getpeername>(2), and B<accept>(2), the returned "
17361 "I<addrlen> is greater than I<sizeof(sa_family_t)> (i.e., greater than 2), "
17362 "and the name of the socket is contained in the first I<(addrlen - "
17363 "sizeof(sa_family_t))> bytes of I<sun_path>.  The abstract socket namespace "
17364 "is a nonportable Linux extension."
17365 msgstr ""
17366
17367 #. type: Plain text
17368 #: build/C/man7/unix.7:150
17369 msgid ""
17370 "For historical reasons these socket options are specified with a "
17371 "B<SOL_SOCKET> type even though they are B<AF_UNIX> specific.  They can be "
17372 "set with B<setsockopt>(2)  and read with B<getsockopt>(2)  by specifying "
17373 "B<SOL_SOCKET> as the socket family."
17374 msgstr ""
17375
17376 #. type: TP
17377 #: build/C/man7/unix.7:150
17378 #, no-wrap
17379 msgid "B<SO_PASSCRED>"
17380 msgstr ""
17381
17382 #. type: Plain text
17383 #: build/C/man7/unix.7:157
17384 msgid ""
17385 "Enables the receiving of the credentials of the sending process in an "
17386 "ancillary message.  When this option is set and the socket is not yet "
17387 "connected a unique name in the abstract namespace will be generated "
17388 "automatically.  Expects an integer boolean flag."
17389 msgstr ""
17390
17391 #. type: SS
17392 #: build/C/man7/unix.7:157
17393 #, no-wrap
17394 msgid "Autobind feature"
17395 msgstr ""
17396
17397 #.  i.e., sizeof(short)
17398 #. type: Plain text
17399 #: build/C/man7/unix.7:177
17400 msgid ""
17401 "If a B<bind>(2)  call specifies I<addrlen> as I<sizeof(sa_family_t)>, or the "
17402 "B<SO_PASSCRED> socket option was specified for a socket that was not "
17403 "explicitly bound to an address, then the socket is autobound to an abstract "
17404 "address.  The address consists of a null byte followed by 5 bytes in the "
17405 "character set I<[0-9a-f]>.  Thus, there is a limit of 2^20 autobind "
17406 "addresses.  (From Linux 2.1.15, when the autobind feature was added, 8 bytes "
17407 "were used, and the limit was thus 2^32 autobind addresses.  The change to 5 "
17408 "bytes came in Linux 2.3.15.)"
17409 msgstr ""
17410
17411 #. type: Plain text
17412 #: build/C/man7/unix.7:180
17413 msgid ""
17414 "The following paragraphs describe domain-specific details and unsupported "
17415 "features of the sockets API for UNIX domain sockets on Linux."
17416 msgstr ""
17417
17418 #. type: Plain text
17419 #: build/C/man7/unix.7:188
17420 msgid ""
17421 "UNIX domain sockets do not support the transmission of out-of-band data (the "
17422 "B<MSG_OOB> flag for B<send>(2)  and B<recv>(2))."
17423 msgstr ""
17424
17425 #. type: Plain text
17426 #: build/C/man7/unix.7:193
17427 msgid "The B<send>(2)  B<MSG_MORE> flag is not supported by UNIX domain sockets."
17428 msgstr ""
17429
17430 #. type: Plain text
17431 #: build/C/man7/unix.7:201
17432 msgid ""
17433 "The use of B<MSG_TRUNC> in the I<flags> argument of B<recv>(2)  is not "
17434 "supported by UNIX domain sockets."
17435 msgstr ""
17436
17437 #. type: Plain text
17438 #: build/C/man7/unix.7:213
17439 msgid ""
17440 "The B<SO_SNDBUF> socket option does have an effect for UNIX domain sockets, "
17441 "but the B<SO_RCVBUF> option does not.  For datagram sockets, the "
17442 "B<SO_SNDBUF> value imposes an upper limit on the size of outgoing "
17443 "datagrams.  This limit is calculated as the doubled (see B<socket>(7))  "
17444 "option value less 32 bytes used for overhead."
17445 msgstr ""
17446
17447 #. type: SS
17448 #: build/C/man7/unix.7:213
17449 #, no-wrap
17450 msgid "Ancillary messages"
17451 msgstr ""
17452
17453 #. type: Plain text
17454 #: build/C/man7/unix.7:235
17455 msgid ""
17456 "Ancillary data is sent and received using B<sendmsg>(2)  and B<recvmsg>(2).  "
17457 "For historical reasons the ancillary message types listed below are "
17458 "specified with a B<SOL_SOCKET> type even though they are B<AF_UNIX> "
17459 "specific.  To send them set the I<cmsg_level> field of the struct I<cmsghdr> "
17460 "to B<SOL_SOCKET> and the I<cmsg_type> field to the type.  For more "
17461 "information see B<cmsg>(3)."
17462 msgstr ""
17463
17464 #. type: TP
17465 #: build/C/man7/unix.7:235
17466 #, no-wrap
17467 msgid "B<SCM_RIGHTS>"
17468 msgstr ""
17469
17470 #. type: Plain text
17471 #: build/C/man7/unix.7:241
17472 msgid ""
17473 "Send or receive a set of open file descriptors from another process.  The "
17474 "data portion contains an integer array of the file descriptors.  The passed "
17475 "file descriptors behave as though they have been created with B<dup>(2)."
17476 msgstr ""
17477
17478 #. type: TP
17479 #: build/C/man7/unix.7:241
17480 #, no-wrap
17481 msgid "B<SCM_CREDENTIALS>"
17482 msgstr ""
17483
17484 #. type: Plain text
17485 #: build/C/man7/unix.7:251
17486 msgid ""
17487 "Send or receive UNIX credentials.  This can be used for authentication.  The "
17488 "credentials are passed as a I<struct ucred> ancillary message.  Thus "
17489 "structure is defined in I<E<lt>sys/socket.hE<gt>> as follows:"
17490 msgstr ""
17491
17492 #. type: Plain text
17493 #: build/C/man7/unix.7:259
17494 #, no-wrap
17495 msgid ""
17496 "struct ucred {\n"
17497 "    pid_t pid;    /* process ID of the sending process */\n"
17498 "    uid_t uid;    /* user ID of the sending process */\n"
17499 "    gid_t gid;    /* group ID of the sending process */\n"
17500 "};\n"
17501 msgstr ""
17502
17503 #. type: Plain text
17504 #: build/C/man7/unix.7:268
17505 msgid ""
17506 "Since glibc 2.8, the B<_GNU_SOURCE> feature test macro must be defined "
17507 "(before including I<any> header files) in order to obtain the definition of "
17508 "this structure."
17509 msgstr ""
17510
17511 #. type: Plain text
17512 #: build/C/man7/unix.7:284
17513 msgid ""
17514 "The credentials which the sender specifies are checked by the kernel.  A "
17515 "process with effective user ID 0 is allowed to specify values that do not "
17516 "match its own.  The sender must specify its own process ID (unless it has "
17517 "the capability B<CAP_SYS_ADMIN>), its user ID, effective user ID, or saved "
17518 "set-user-ID (unless it has B<CAP_SETUID>), and its group ID, effective group "
17519 "ID, or saved set-group-ID (unless it has B<CAP_SETGID>).  To receive a "
17520 "I<struct ucred> message the B<SO_PASSCRED> option must be enabled on the "
17521 "socket."
17522 msgstr ""
17523
17524 #. type: Plain text
17525 #: build/C/man7/unix.7:295
17526 #, no-wrap
17527 msgid ""
17528 "B<int>I< value>B<;>\n"
17529 "I<error>B< = ioctl(>I<unix_socket>B<, >I<ioctl_type>B<, &>I<value>B<);>\n"
17530 msgstr ""
17531
17532 #. type: Plain text
17533 #: build/C/man7/unix.7:300
17534 msgid "I<ioctl_type> can be:"
17535 msgstr ""
17536
17537 #. type: Plain text
17538 #: build/C/man7/unix.7:327
17539 msgid ""
17540 "The specified local address is already in use or the filesystem socket "
17541 "object already exists."
17542 msgstr ""
17543
17544 #. type: Plain text
17545 #: build/C/man7/unix.7:333
17546 msgid ""
17547 "The remote address specified by B<connect>(2)  was not a listening socket.  "
17548 "This error can also occur if the target filename is not a socket."
17549 msgstr ""
17550
17551 #. type: TP
17552 #: build/C/man7/unix.7:333
17553 #, no-wrap
17554 msgid "B<ECONNRESET>"
17555 msgstr ""
17556
17557 #. type: Plain text
17558 #: build/C/man7/unix.7:336
17559 msgid "Remote socket was unexpectedly closed."
17560 msgstr ""
17561
17562 #. type: Plain text
17563 #: build/C/man7/unix.7:339
17564 msgid "User memory address was not valid."
17565 msgstr ""
17566
17567 #. type: Plain text
17568 #: build/C/man7/unix.7:348
17569 msgid ""
17570 "Invalid argument passed.  A common cause is that the value B<AF_UNIX> was "
17571 "not specified in the I<sun_type> field of passed addresses, or the socket "
17572 "was in an invalid state for the applied operation."
17573 msgstr ""
17574
17575 #. type: Plain text
17576 #: build/C/man7/unix.7:353
17577 msgid ""
17578 "B<connect>(2)  called on an already connected socket or a target address was "
17579 "specified on a connected socket."
17580 msgstr ""
17581
17582 #. type: Plain text
17583 #: build/C/man7/unix.7:358
17584 msgid ""
17585 "The pathname in the remote address specified to B<connect>(2)  did not "
17586 "exist."
17587 msgstr ""
17588
17589 #. type: TP
17590 #: build/C/man7/unix.7:358
17591 #, no-wrap
17592 msgid "B<ENOMEM>"
17593 msgstr ""
17594
17595 #. type: Plain text
17596 #: build/C/man7/unix.7:364
17597 msgid "Socket operation needs a target address, but the socket is not connected."
17598 msgstr ""
17599
17600 #. type: Plain text
17601 #: build/C/man7/unix.7:368
17602 msgid ""
17603 "Stream operation called on non-stream oriented socket or tried to use the "
17604 "out-of-band data option."
17605 msgstr ""
17606
17607 #. type: Plain text
17608 #: build/C/man7/unix.7:372
17609 msgid "The sender passed invalid credentials in the I<struct ucred>."
17610 msgstr ""
17611
17612 #. type: Plain text
17613 #: build/C/man7/unix.7:384
17614 msgid ""
17615 "Remote socket was closed on a stream socket.  If enabled, a B<SIGPIPE> is "
17616 "sent as well.  This can be avoided by passing the B<MSG_NOSIGNAL> flag to "
17617 "B<sendmsg>(2)  or B<recvmsg>(2)."
17618 msgstr ""
17619
17620 #. type: TP
17621 #: build/C/man7/unix.7:384
17622 #, no-wrap
17623 msgid "B<EPROTONOSUPPORT>"
17624 msgstr ""
17625
17626 #. type: Plain text
17627 #: build/C/man7/unix.7:388
17628 msgid "Passed protocol is not B<AF_UNIX>."
17629 msgstr ""
17630
17631 #. type: TP
17632 #: build/C/man7/unix.7:388
17633 #, no-wrap
17634 msgid "B<EPROTOTYPE>"
17635 msgstr ""
17636
17637 #. type: Plain text
17638 #: build/C/man7/unix.7:394
17639 msgid ""
17640 "Remote socket does not match the local socket type (B<SOCK_DGRAM> versus "
17641 "B<SOCK_STREAM>)"
17642 msgstr ""
17643
17644 #. type: Plain text
17645 #: build/C/man7/unix.7:397
17646 msgid "Unknown socket type."
17647 msgstr ""
17648
17649 #. type: Plain text
17650 #: build/C/man7/unix.7:401
17651 msgid ""
17652 "Other errors can be generated by the generic socket layer or by the "
17653 "filesystem while generating a filesystem socket object.  See the appropriate "
17654 "manual pages for more information."
17655 msgstr ""
17656
17657 #. type: Plain text
17658 #: build/C/man7/unix.7:407
17659 msgid ""
17660 "B<SCM_CREDENTIALS> and the abstract namespace were introduced with Linux 2.2 "
17661 "and should not be used in portable programs.  (Some BSD-derived systems also "
17662 "support credential passing, but the implementation details differ.)"
17663 msgstr ""
17664
17665 #. type: Plain text
17666 #: build/C/man7/unix.7:418
17667 msgid ""
17668 "In the Linux implementation, sockets which are visible in the filesystem "
17669 "honor the permissions of the directory they are in.  Their owner, group and "
17670 "their permissions can be changed.  Creation of a new socket will fail if the "
17671 "process does not have write and search (execute) permission on the directory "
17672 "the socket is created in.  Connecting to the socket object requires "
17673 "read/write permission.  This behavior differs from many BSD-derived systems "
17674 "which ignore permissions for UNIX domain sockets.  Portable programs should "
17675 "not rely on this feature for security."
17676 msgstr ""
17677
17678 #. type: Plain text
17679 #: build/C/man7/unix.7:426
17680 msgid ""
17681 "Binding to a socket with a filename creates a socket in the filesystem that "
17682 "must be deleted by the caller when it is no longer needed (using "
17683 "B<unlink>(2)).  The usual UNIX close-behind semantics apply; the socket can "
17684 "be unlinked at any time and will be finally removed from the filesystem when "
17685 "the last reference to it is closed."
17686 msgstr ""
17687
17688 #. type: Plain text
17689 #: build/C/man7/unix.7:435
17690 msgid ""
17691 "To pass file descriptors or credentials over a B<SOCK_STREAM>, you need to "
17692 "send or receive at least one byte of nonancillary data in the same "
17693 "B<sendmsg>(2)  or B<recvmsg>(2)  call."
17694 msgstr ""
17695
17696 #. type: Plain text
17697 #: build/C/man7/unix.7:437
17698 msgid "UNIX domain stream sockets do not support the notion of out-of-band data."
17699 msgstr ""
17700
17701 #. type: Plain text
17702 #: build/C/man7/unix.7:440
17703 msgid "See B<bind>(2)."
17704 msgstr ""
17705
17706 #. type: Plain text
17707 #: build/C/man7/unix.7:445
17708 msgid "For an example of the use of B<SCM_RIGHTS> see B<cmsg>(3)."
17709 msgstr ""
17710
17711 #. type: Plain text
17712 #: build/C/man7/unix.7:454
17713 msgid ""
17714 "B<recvmsg>(2), B<sendmsg>(2), B<socket>(2), B<socketpair>(2), B<cmsg>(3), "
17715 "B<capabilities>(7), B<credentials>(7), B<socket>(7)"
17716 msgstr ""
17717
17718 #. type: TH
17719 #: build/C/man7/x25.7:12
17720 #, no-wrap
17721 msgid "X25"
17722 msgstr ""
17723
17724 #. type: Plain text
17725 #: build/C/man7/x25.7:15
17726 msgid "x25 - ITU-T X.25 / ISO-8208 protocol interface."
17727 msgstr ""
17728
17729 #. type: Plain text
17730 #: build/C/man7/x25.7:19
17731 msgid "B<#include E<lt>linux/x25.hE<gt>>"
17732 msgstr ""
17733
17734 #. type: Plain text
17735 #: build/C/man7/x25.7:21
17736 msgid "B<x25_socket = socket(AF_X25, SOCK_SEQPACKET, 0);>"
17737 msgstr ""
17738
17739 #. type: Plain text
17740 #: build/C/man7/x25.7:30
17741 msgid ""
17742 "X25 sockets provide an interface to the X.25 packet layer protocol.  This "
17743 "allows applications to communicate over a public X.25 data network as "
17744 "standardized by International Telecommunication Union's recommendation X.25 "
17745 "(X.25 DTE-DCE mode).  X25 sockets can also be used for communication without "
17746 "an intermediate X.25 network (X.25 DTE-DTE mode) as described in ISO-8208."
17747 msgstr ""
17748
17749 #. type: Plain text
17750 #: build/C/man7/x25.7:47
17751 msgid ""
17752 "Message boundaries are preserved \\(em a B<read>(2)  from a socket will "
17753 "retrieve the same chunk of data as output with the corresponding B<write>(2)  "
17754 "to the peer socket.  When necessary, the kernel takes care of segmenting and "
17755 "reassembling long messages by means of the X.25 M-bit.  There is no "
17756 "hard-coded upper limit for the message size.  However, reassembling of a "
17757 "long message might fail if there is a temporary lack of system resources or "
17758 "when other constraints (such as socket memory or buffer size limits) become "
17759 "effective.  If that occurs, the X.25 connection will be reset."
17760 msgstr ""
17761
17762 #. type: SS
17763 #: build/C/man7/x25.7:47
17764 #, no-wrap
17765 msgid "Socket addresses"
17766 msgstr ""
17767
17768 #. type: Plain text
17769 #: build/C/man7/x25.7:54
17770 msgid ""
17771 "The B<AF_X25> socket address family uses the I<struct sockaddr_x25> for "
17772 "representing network addresses as defined in ITU-T recommendation X.121."
17773 msgstr ""
17774
17775 #. type: Plain text
17776 #: build/C/man7/x25.7:61
17777 #, no-wrap
17778 msgid ""
17779 "struct sockaddr_x25 {\n"
17780 "    sa_family_t sx25_family;    /* must be AF_X25 */\n"
17781 "    x25_address sx25_addr;      /* X.121 Address */\n"
17782 "};\n"
17783 msgstr ""
17784
17785 #. type: Plain text
17786 #: build/C/man7/x25.7:72
17787 msgid ""
17788 "I<sx25_addr> contains a char array I<x25_addr[]> to be interpreted as a "
17789 "null-terminated string.  I<sx25_addr.x25_addr[]> consists of up to 15 (not "
17790 "counting the terminating null byte) ASCII characters forming the X.121 "
17791 "address.  Only the decimal digit characters from \\(aq0\\(aq to \\(aq9\\(aq "
17792 "are allowed."
17793 msgstr ""
17794
17795 #. type: Plain text
17796 #: build/C/man7/x25.7:81
17797 msgid ""
17798 "The following X.25-specific socket options can be set by using "
17799 "B<setsockopt>(2)  and read with B<getsockopt>(2)  with the I<level> argument "
17800 "set to B<SOL_X25>."
17801 msgstr ""
17802
17803 #. type: TP
17804 #: build/C/man7/x25.7:81
17805 #, no-wrap
17806 msgid "B<X25_QBITINCL>"
17807 msgstr ""
17808
17809 #. type: Plain text
17810 #: build/C/man7/x25.7:100
17811 msgid ""
17812 "Controls whether the X.25 Q-bit (Qualified Data Bit) is accessible by the "
17813 "user.  It expects an integer argument.  If set to 0 (default), the Q-bit is "
17814 "never set for outgoing packets and the Q-bit of incoming packets is "
17815 "ignored.  If set to 1, an additional first byte is prepended to each message "
17816 "read from or written to the socket.  For data read from the socket, a 0 "
17817 "first byte indicates that the Q-bits of the corresponding incoming data "
17818 "packets were not set.  A first byte with value 1 indicates that the Q-bit of "
17819 "the corresponding incoming data packets was set.  If the first byte of the "
17820 "data written to the socket is 1 the Q-bit of the corresponding outgoing data "
17821 "packets will be set.  If the first byte is 0 the Q-bit will not be set."
17822 msgstr ""
17823
17824 #. type: Plain text
17825 #: build/C/man7/x25.7:102
17826 msgid "The AF_X25 protocol family is a new feature of Linux 2.2."
17827 msgstr ""
17828
17829 #. type: Plain text
17830 #: build/C/man7/x25.7:105
17831 msgid "Plenty, as the X.25 PLP implementation is B<CONFIG_EXPERIMENTAL>."
17832 msgstr ""
17833
17834 #. type: Plain text
17835 #: build/C/man7/x25.7:107
17836 msgid "This man page is incomplete."
17837 msgstr ""
17838
17839 #. type: Plain text
17840 #: build/C/man7/x25.7:114
17841 msgid ""
17842 "There is no dedicated application programmer's header file yet; you need to "
17843 "include the kernel header file I<E<lt>linux/x25.hE<gt>>.  "
17844 "B<CONFIG_EXPERIMENTAL> might also imply that future versions of the "
17845 "interface are not binary compatible."
17846 msgstr ""
17847
17848 #. type: Plain text
17849 #: build/C/man7/x25.7:118
17850 msgid ""
17851 "X.25 N-Reset events are not propagated to the user process yet.  Thus, if a "
17852 "reset occurred, data might be lost without notice."
17853 msgstr ""
17854
17855 #. type: Plain text
17856 #: build/C/man7/x25.7:121
17857 msgid "B<socket>(2), B<socket>(7)"
17858 msgstr ""
17859
17860 #. type: Plain text
17861 #: build/C/man7/x25.7:127
17862 msgid ""
17863 "Jonathan Simon Naylor: \\(lqThe Re-Analysis and Re-Implementation of "
17864 "X.25.\\(rq The URL is E<.UR "
17865 "ftp://ftp.pspt.fi\\:/pub\\:/ham\\:/linux\\:/ax25\\:/x25doc.tgz> E<.UE .>"
17866 msgstr ""