OSDN Git Service

(split) LDP: Update original to LDP v3.54
[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: 2013-08-15 19:32+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=CHARSET\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:65 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:65 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:66 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:118 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:76 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:1044 build/C/man7/netdevice.7:72 build/C/man7/packet.7:230 build/C/man7/tcp.7:1032 build/C/man7/udp.7:202 build/C/man7/unix.7:282
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:920 build/C/man7/tcp.7:208 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:361 build/C/man7/packet.7:282 build/C/man7/raw.7:175 build/C/man3/rcmd.3:262 build/C/man3/rexec.3:138 build/C/man7/tcp.7:1149 build/C/man7/udp.7:251 build/C/man7/udplite.7:132 build/C/man7/unix.7:399 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:424 build/C/man3/inet_ntop.3:112 build/C/man3/inet_pton.3:150 build/C/man7/ip.7:1214 build/C/man7/ipv6.7:400 build/C/man7/netdevice.7:328 build/C/man7/packet.7:363 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:1156 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 IPv4 specific and shared between IPv4 and IPv6 "
547 "functionality together."
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:817 build/C/man3/getaddrinfo_a.3:600 build/C/man1/getent.1:368 build/C/man3/gethostbyname.3:429 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:1233 build/C/man7/ipv6.7:411 build/C/man7/netdevice.7:342 build/C/man5/networks.5:74 build/C/man8/nscd.8:85 build/C/man5/nscd.conf.5:232 build/C/man5/nss.5:110 build/C/man5/nsswitch.conf.5:352 build/C/man7/packet.7:394 build/C/man5/protocols.5:81 build/C/man7/raw.7:269 build/C/man3/rcmd.3:285 build/C/man5/resolv.conf.5:287 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:1168 build/C/man7/udp.7:256 build/C/man7/udplite.7:146 build/C/man7/unix.7:443 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:827 build/C/man3/getaddrinfo_a.3:607 build/C/man1/getent.1:370 build/C/man3/gethostbyname.3:443 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:1251 build/C/man7/ipv6.7:418 build/C/man7/netdevice.7:347 build/C/man5/networks.5:80 build/C/man8/nscd.8:91 build/C/man5/nscd.conf.5:237 build/C/man5/nss.5:112 build/C/man5/nsswitch.conf.5:355 build/C/man7/packet.7:408 build/C/man5/protocols.5:86 build/C/man7/raw.7:282 build/C/man3/rcmd.3:293 build/C/man5/resolv.conf.5:294 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:1194 build/C/man7/udp.7:267 build/C/man7/udplite.7:156 build/C/man7/unix.7:452 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:834 build/C/man3/getaddrinfo_a.3:614 build/C/man1/getent.1:377 build/C/man3/gethostbyname.3:450 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:1258 build/C/man7/ipv6.7:425 build/C/man7/netdevice.7:354 build/C/man5/networks.5:87 build/C/man8/nscd.8:98 build/C/man5/nscd.conf.5:244 build/C/man5/nss.5:119 build/C/man5/nsswitch.conf.5:362 build/C/man7/packet.7:415 build/C/man5/protocols.5:93 build/C/man7/raw.7:289 build/C/man3/rcmd.3:300 build/C/man5/resolv.conf.5:301 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:1201 build/C/man7/udp.7:274 build/C/man7/udplite.7:163 build/C/man7/unix.7:459 build/C/man7/x25.7:134
577 msgid ""
578 "This page is part of release 3.53 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:68 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:584 build/C/man3/getaddrinfo_a.3:305 build/C/man3/gethostbyname.3:303 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:70 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:589 build/C/man3/getaddrinfo_a.3:308 build/C/man3/gethostbyname.3:327 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:1152 build/C/man7/ipv6.7:390 build/C/man7/netdevice.7:310 build/C/man8/nscd.8:60 build/C/man5/nsswitch.conf.5:333 build/C/man7/packet.7:300 build/C/man7/raw.7:187 build/C/man3/setnetgrent.3:103 build/C/man2/shutdown.2:95 build/C/man7/unix.7:405
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 be not "
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 be not 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:612 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:435
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:179 build/C/man7/raw.7:109 build/C/man7/tcp.7:858 build/C/man7/udp.7:178 build/C/man7/udplite.7:67 build/C/man7/unix.7:135 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:278 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:1061 build/C/man7/ipv6.7:349 build/C/man7/packet.7:246 build/C/man7/raw.7:144 build/C/man2/shutdown.2:74 build/C/man7/tcp.7:1131 build/C/man7/udp.7:241 build/C/man7/udplite.7:121 build/C/man7/unix.7:320
1163 #, no-wrap
1164 msgid "ERRORS"
1165 msgstr ""
1166
1167 #. type: TP
1168 #: build/C/man7/ddp.7:153 build/C/man7/ip.7:1065 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:1081 build/C/man7/unix.7:321
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:1084
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:1084 build/C/man7/packet.7:247
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:1088
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:1088
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:1091
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:1091
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:1094
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:1098
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:1098
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:1103 build/C/man7/packet.7:253 build/C/man7/raw.7:152 build/C/man2/shutdown.2:79 build/C/man7/unix.7:337
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:1109 build/C/man7/unix.7:346
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:1113
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:1113 build/C/man7/packet.7:256 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:351 build/C/man7/packet.7:265
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:1121 build/C/man7/packet.7:268 build/C/man7/unix.7:351
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:1125
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:1125
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:1128
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:1128
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:1131
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:1131 build/C/man7/packet.7:271 build/C/man2/shutdown.2:84 build/C/man7/unix.7:359
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:1135
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:1135 build/C/man7/packet.7:277 build/C/man7/raw.7:166 build/C/man7/unix.7:366
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:1139 build/C/man7/tcp.7:1138 build/C/man7/unix.7:370
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:1142
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:1142 build/C/man7/unix.7:392
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:1201 build/C/man7/packet.7:331
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:1216
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>()B<.>"
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 "\tuint32_t u32;\n"
1618 "\tuint8_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:816 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 build/C/man3/rexec.3:41
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:582 build/C/man3/gethostbyname.3:293 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:284 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:584
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 build/C/man3/getnameinfo.3:10
1992 #, no-wrap
1993 msgid "2013-01-15"
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:194
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.  Specifying I<hints> as NULL is "
2158 "equivalent to setting I<ai_socktype> and I<ai_protocol> to 0; I<ai_family> "
2159 "to B<AF_UNSPEC>; and I<ai_flags> to B<(AI_V4MAPPED\\ |\\ AI_ADDRCONFIG)>."
2160 msgstr ""
2161
2162 #. type: Plain text
2163 #: build/C/man3/getaddrinfo.3:212
2164 msgid ""
2165 "I<node> specifies either a numerical network address (for IPv4, "
2166 "numbers-and-dots notation as supported by B<inet_aton>(3); for IPv6, "
2167 "hexadecimal string format as supported by B<inet_pton>(3)), or a network "
2168 "hostname, whose network addresses are looked up and resolved.  If "
2169 "I<hints.ai_flags> contains the B<AI_NUMERICHOST> flag then I<node> must be a "
2170 "numerical network address.  The B<AI_NUMERICHOST> flag suppresses any "
2171 "potentially lengthy network host address lookups."
2172 msgstr ""
2173
2174 #. type: Plain text
2175 #: build/C/man3/getaddrinfo.3:237
2176 msgid ""
2177 "If the B<AI_PASSIVE> flag is specified in I<hints.ai_flags>, and I<node> is "
2178 "NULL, then the returned socket addresses will be suitable for B<bind>(2)ing "
2179 "a socket that will B<accept>(2)  connections.  The returned socket address "
2180 "will contain the \"wildcard address\" (B<INADDR_ANY> for IPv4 addresses, "
2181 "B<IN6ADDR_ANY_INIT> for IPv6 address).  The wildcard address is used by "
2182 "applications (typically servers)  that intend to accept connections on any "
2183 "of the hosts's network addresses.  If I<node> is not NULL, then the "
2184 "B<AI_PASSIVE> flag is ignored."
2185 msgstr ""
2186
2187 #. type: Plain text
2188 #: build/C/man3/getaddrinfo.3:257
2189 msgid ""
2190 "If the B<AI_PASSIVE> flag is not set in I<hints.ai_flags>, then the returned "
2191 "socket addresses will be suitable for use with B<connect>(2), B<sendto>(2), "
2192 "or B<sendmsg>(2).  If I<node> is NULL, then the network address will be set "
2193 "to the loopback interface address (B<INADDR_LOOPBACK> for IPv4 addresses, "
2194 "B<IN6ADDR_LOOPBACK_INIT> for IPv6 address); this is used by applications "
2195 "that intend to communicate with peers running on the same host."
2196 msgstr ""
2197
2198 #. type: Plain text
2199 #: build/C/man3/getaddrinfo.3:280
2200 msgid ""
2201 "I<service> sets the port in each returned address structure.  If this "
2202 "argument is a service name (see B<services>(5)), it is translated to the "
2203 "corresponding port number.  This argument can also be specified as a decimal "
2204 "number, which is simply converted to binary.  If I<service> is NULL, then "
2205 "the port number of the returned socket addresses will be left "
2206 "uninitialized.  If B<AI_NUMERICSERV> is specified in I<hints.ai_flags> and "
2207 "I<service> is not NULL, then I<service> must point to a string containing a "
2208 "numeric port number.  This flag is used to inhibit the invocation of a name "
2209 "resolution service in cases where it is known not to be required."
2210 msgstr ""
2211
2212 #. type: Plain text
2213 #: build/C/man3/getaddrinfo.3:286
2214 msgid "Either I<node> or I<service>, but not both, may be NULL."
2215 msgstr ""
2216
2217 #. type: Plain text
2218 #: build/C/man3/getaddrinfo.3:302
2219 msgid ""
2220 "The B<getaddrinfo>()  function allocates and initializes a linked list of "
2221 "I<addrinfo> structures, one for each network address that matches I<node> "
2222 "and I<service>, subject to any restrictions imposed by I<hints>, and returns "
2223 "a pointer to the start of the list in I<res>.  The items in the linked list "
2224 "are linked by the I<ai_next> field."
2225 msgstr ""
2226
2227 #. type: Plain text
2228 #: build/C/man3/getaddrinfo.3:324
2229 msgid ""
2230 "There are several reasons why the linked list may have more than one "
2231 "I<addrinfo> structure, including: the network host is multihomed, accessible "
2232 "over multiple protocols (e.g., both B<AF_INET> and B<AF_INET6>); or the same "
2233 "service is available from multiple socket types (one B<SOCK_STREAM> address "
2234 "and another B<SOCK_DGRAM> address, for example).  Normally, the application "
2235 "should try using the addresses in the order in which they are returned.  The "
2236 "sorting function used within B<getaddrinfo>()  is defined in RFC\\ 3484; the "
2237 "order can be tweaked for a particular system by editing I</etc/gai.conf> "
2238 "(available since glibc 2.5)."
2239 msgstr ""
2240
2241 #.  In glibc prior to 2.3.4, the ai_canonname of each addrinfo
2242 #.  structure was set pointing to the canonical name; that was
2243 #.  more than POSIX.1-2001 specified, or other implementations provided.
2244 #.  MTK, Aug 05
2245 #. type: Plain text
2246 #: build/C/man3/getaddrinfo.3:339
2247 msgid ""
2248 "If I<hints.ai_flags> includes the B<AI_CANONNAME> flag, then the "
2249 "I<ai_canonname> field of the first of the I<addrinfo> structures in the "
2250 "returned list is set to point to the official name of the host."
2251 msgstr ""
2252
2253 #. type: Plain text
2254 #: build/C/man3/getaddrinfo.3:343
2255 msgid ""
2256 "The remaining fields of each returned I<addrinfo> structure are initialized "
2257 "as follows:"
2258 msgstr ""
2259
2260 #. type: IP
2261 #: build/C/man3/getaddrinfo.3:343 build/C/man3/getaddrinfo.3:366 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:89 build/C/man7/unix.7:109
2262 #, no-wrap
2263 msgid "*"
2264 msgstr ""
2265
2266 #. type: Plain text
2267 #: build/C/man3/getaddrinfo.3:366
2268 msgid ""
2269 "The I<ai_family>, I<ai_socktype>, and I<ai_protocol> fields return the "
2270 "socket creation parameters (i.e., these fields have the same meaning as the "
2271 "corresponding arguments of B<socket>(2)).  For example, I<ai_family> might "
2272 "return B<AF_INET> or B<AF_INET6>; I<ai_socktype> might return B<SOCK_DGRAM> "
2273 "or B<SOCK_STREAM>; and I<ai_protocol> returns the protocol for the socket."
2274 msgstr ""
2275
2276 #. type: Plain text
2277 #: build/C/man3/getaddrinfo.3:373
2278 msgid ""
2279 "A pointer to the socket address is placed in the I<ai_addr> field, and the "
2280 "length of the socket address, in bytes, is placed in the I<ai_addrlen> "
2281 "field."
2282 msgstr ""
2283
2284 #. type: Plain text
2285 #: build/C/man3/getaddrinfo.3:385
2286 msgid ""
2287 "If I<hints.ai_flags> includes the B<AI_ADDRCONFIG> flag, then IPv4 addresses "
2288 "are returned in the list pointed to by I<res> only if the local system has "
2289 "at least one IPv4 address configured, and IPv6 addresses are returned only "
2290 "if the local system has at least one IPv6 address configured.  The loopback "
2291 "address is not considered for this case as valid as a configured address."
2292 msgstr ""
2293
2294 #. type: Plain text
2295 #: build/C/man3/getaddrinfo.3:410
2296 msgid ""
2297 "If I<hints.ai_flags> specifies the B<AI_V4MAPPED> flag, and "
2298 "I<hints.ai_family> was specified as B<AF_INET6>, and no matching IPv6 "
2299 "addresses could be found, then return IPv4-mapped IPv6 addresses in the list "
2300 "pointed to by I<res>.  If both B<AI_V4MAPPED> and B<AI_ALL> are specified in "
2301 "I<hints.ai_flags>, then return both IPv6 and IPv4-mapped IPv6 addresses in "
2302 "the list pointed to by I<res>.  B<AI_ALL> is ignored if B<AI_V4MAPPED> is "
2303 "not also specified."
2304 msgstr ""
2305
2306 #. type: Plain text
2307 #: build/C/man3/getaddrinfo.3:416
2308 msgid ""
2309 "The B<freeaddrinfo>()  function frees the memory that was allocated for the "
2310 "dynamically allocated linked list I<res>."
2311 msgstr ""
2312
2313 #. type: SS
2314 #: build/C/man3/getaddrinfo.3:416
2315 #, no-wrap
2316 msgid "Extensions to getaddrinfo() for Internationalized Domain Names"
2317 msgstr ""
2318
2319 #. type: Plain text
2320 #: build/C/man3/getaddrinfo.3:425
2321 msgid ""
2322 "Starting with glibc 2.3.4, B<getaddrinfo>()  has been extended to "
2323 "selectively allow the incoming and outgoing hostnames to be transparently "
2324 "converted to and from the Internationalized Domain Name (IDN) format (see "
2325 "RFC 3490, I<Internationalizing Domain Names in Applications (IDNA)>).  Four "
2326 "new flags are defined:"
2327 msgstr ""
2328
2329 #. type: TP
2330 #: build/C/man3/getaddrinfo.3:425
2331 #, no-wrap
2332 msgid "B<AI_IDN>"
2333 msgstr ""
2334
2335 #. type: Plain text
2336 #: build/C/man3/getaddrinfo.3:431
2337 msgid ""
2338 "If this flag is specified, then the node name given in I<node> is converted "
2339 "to IDN format if necessary.  The source encoding is that of the current "
2340 "locale."
2341 msgstr ""
2342
2343 #.  Implementation Detail:
2344 #.  To minimize effects on system performance the implementation might
2345 #.  want to check whether the input string contains any non-ASCII
2346 #.  characters.  If there are none the IDN step can be skipped completely.
2347 #.  On systems which allow not-ASCII safe encodings for a locale this
2348 #.  might be a problem.
2349 #. type: Plain text
2350 #: build/C/man3/getaddrinfo.3:443
2351 msgid ""
2352 "If the input name contains non-ASCII characters, then the IDN encoding is "
2353 "used.  Those parts of the node name (delimited by dots) that contain "
2354 "non-ASCII characters are encoded using ASCII Compatible Encoding (ACE)  "
2355 "before being passed to the name resolution functions."
2356 msgstr ""
2357
2358 #. type: TP
2359 #: build/C/man3/getaddrinfo.3:443
2360 #, no-wrap
2361 msgid "B<AI_CANONIDN>"
2362 msgstr ""
2363
2364 #. type: Plain text
2365 #: build/C/man3/getaddrinfo.3:455
2366 msgid ""
2367 "After a successful name lookup, and if the B<AI_CANONNAME> flag was "
2368 "specified, B<getaddrinfo>()  will return the canonical name of the node "
2369 "corresponding to the I<addrinfo> structure value passed back.  The return "
2370 "value is an exact copy of the value returned by the name resolution "
2371 "function."
2372 msgstr ""
2373
2374 #
2375 #. Implementation Detail:
2376 #. If no component of the returned name starts with xn\-\- the IDN
2377 #. step can be skipped, therefore avoiding unnecessary slowdowns.
2378 #. type: Plain text
2379 #: build/C/man3/getaddrinfo.3:468
2380 msgid ""
2381 "If the name is encoded using ACE, then it will contain the I<xn--> prefix "
2382 "for one or more components of the name.  To convert these components into a "
2383 "readable form the B<AI_CANONIDN> flag can be passed in addition to "
2384 "B<AI_CANONNAME>.  The resulting string is encoded using the current locale's "
2385 "encoding."
2386 msgstr ""
2387
2388 #. type: TP
2389 #: build/C/man3/getaddrinfo.3:468
2390 #, no-wrap
2391 msgid "B<AI_IDN_ALLOW_UNASSIGNED>, B<AI_IDN_USE_STD3_ASCII_RULES>"
2392 msgstr ""
2393
2394 #. type: Plain text
2395 #: build/C/man3/getaddrinfo.3:475 build/C/man3/getnameinfo.3:139
2396 msgid ""
2397 "Setting these flags will enable the IDNA_ALLOW_UNASSIGNED (allow unassigned "
2398 "Unicode code points) and IDNA_USE_STD3_ASCII_RULES (check output to make "
2399 "sure it is a STD3 conforming hostname)  flags respectively to be used in the "
2400 "IDNA handling."
2401 msgstr ""
2402
2403 #. type: SH
2404 #: build/C/man3/getaddrinfo.3:475 build/C/man3/getaddrinfo_a.3:242 build/C/man3/gethostbyname.3:266 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
2405 #, no-wrap
2406 msgid "RETURN VALUE"
2407 msgstr ""
2408
2409 #.  FIXME glibc defines the following additional errors, some which
2410 #.  can probably be returned by getaddrinfo(); they need to
2411 #.  be documented.
2412 #.  #ifdef __USE_GNU
2413 #.  #define EAI_INPROGRESS  -100  /* Processing request in progress.  */
2414 #.  #define EAI_CANCELED    -101  /* Request canceled.  */
2415 #.  #define EAI_NOTCANCELED -102  /* Request not canceled.  */
2416 #.  #define EAI_ALLDONE     -103  /* All requests done.  */
2417 #.  #define EAI_INTR        -104  /* Interrupted by a signal.  */
2418 #.  #define EAI_IDN_ENCODE  -105  /* IDN encoding failed.  */
2419 #.  #endif
2420 #. type: Plain text
2421 #: build/C/man3/getaddrinfo.3:489
2422 msgid ""
2423 "B<getaddrinfo>()  returns 0 if it succeeds, or one of the following nonzero "
2424 "error codes:"
2425 msgstr ""
2426
2427 #. type: TP
2428 #: build/C/man3/getaddrinfo.3:489
2429 #, no-wrap
2430 msgid "B<EAI_ADDRFAMILY>"
2431 msgstr ""
2432
2433 #.  Not in SUSv3
2434 #. type: Plain text
2435 #: build/C/man3/getaddrinfo.3:494
2436 msgid ""
2437 "The specified network host does not have any network addresses in the "
2438 "requested address family."
2439 msgstr ""
2440
2441 #. type: TP
2442 #: build/C/man3/getaddrinfo.3:494 build/C/man3/getaddrinfo_a.3:247 build/C/man3/getaddrinfo_a.3:264 build/C/man3/getnameinfo.3:155
2443 #, no-wrap
2444 msgid "B<EAI_AGAIN>"
2445 msgstr ""
2446
2447 #. type: Plain text
2448 #: build/C/man3/getaddrinfo.3:498
2449 msgid "The name server returned a temporary failure indication.  Try again later."
2450 msgstr ""
2451
2452 #. type: TP
2453 #: build/C/man3/getaddrinfo.3:498 build/C/man3/getnameinfo.3:159
2454 #, no-wrap
2455 msgid "B<EAI_BADFLAGS>"
2456 msgstr ""
2457
2458 #. type: Plain text
2459 #: build/C/man3/getaddrinfo.3:508
2460 msgid ""
2461 "I<hints.ai_flags> contains invalid flags; or, I<hints.ai_flags> included "
2462 "B<AI_CANONNAME> and I<name> was NULL."
2463 msgstr ""
2464
2465 #. type: TP
2466 #: build/C/man3/getaddrinfo.3:508 build/C/man3/getnameinfo.3:164
2467 #, no-wrap
2468 msgid "B<EAI_FAIL>"
2469 msgstr ""
2470
2471 #. type: Plain text
2472 #: build/C/man3/getaddrinfo.3:511
2473 msgid "The name server returned a permanent failure indication."
2474 msgstr ""
2475
2476 #. type: TP
2477 #: build/C/man3/getaddrinfo.3:511 build/C/man3/getnameinfo.3:167
2478 #, no-wrap
2479 msgid "B<EAI_FAMILY>"
2480 msgstr ""
2481
2482 #. type: Plain text
2483 #: build/C/man3/getaddrinfo.3:514
2484 msgid "The requested address family is not supported."
2485 msgstr ""
2486
2487 #. type: TP
2488 #: build/C/man3/getaddrinfo.3:514 build/C/man3/getaddrinfo_a.3:252 build/C/man3/getnameinfo.3:171
2489 #, no-wrap
2490 msgid "B<EAI_MEMORY>"
2491 msgstr ""
2492
2493 #. type: Plain text
2494 #: build/C/man3/getaddrinfo.3:517 build/C/man3/getaddrinfo_a.3:255 build/C/man3/getnameinfo.3:174 build/C/man7/unix.7:359
2495 msgid "Out of memory."
2496 msgstr ""
2497
2498 #. type: TP
2499 #: build/C/man3/getaddrinfo.3:517
2500 #, no-wrap
2501 msgid "B<EAI_NODATA>"
2502 msgstr ""
2503
2504 #.  Not in SUSv3
2505 #. type: Plain text
2506 #: build/C/man3/getaddrinfo.3:522
2507 msgid ""
2508 "The specified network host exists, but does not have any network addresses "
2509 "defined."
2510 msgstr ""
2511
2512 #. type: TP
2513 #: build/C/man3/getaddrinfo.3:522 build/C/man3/getnameinfo.3:174
2514 #, no-wrap
2515 msgid "B<EAI_NONAME>"
2516 msgstr ""
2517
2518 #. type: Plain text
2519 #: build/C/man3/getaddrinfo.3:539
2520 msgid ""
2521 "The I<node> or I<service> is not known; or both I<node> and I<service> are "
2522 "NULL; or B<AI_NUMERICSERV> was specified in I<hints.ai_flags> and I<service> "
2523 "was not a numeric port-number string."
2524 msgstr ""
2525
2526 #. type: TP
2527 #: build/C/man3/getaddrinfo.3:539
2528 #, no-wrap
2529 msgid "B<EAI_SERVICE>"
2530 msgstr ""
2531
2532 #. type: Plain text
2533 #: build/C/man3/getaddrinfo.3:560
2534 msgid ""
2535 "The requested service is not available for the requested socket type.  It "
2536 "may be available through another socket type.  For example, this error could "
2537 "occur if I<service> was \"shell\" (a service available only on stream "
2538 "sockets), and either I<hints.ai_protocol> was B<IPPROTO_UDP>, or "
2539 "I<hints.ai_socktype> was B<SOCK_DGRAM>; or the error could occur if "
2540 "I<service> was not NULL, and I<hints.ai_socktype> was B<SOCK_RAW> (a socket "
2541 "type that does not support the concept of services)."
2542 msgstr ""
2543
2544 #. type: TP
2545 #: build/C/man3/getaddrinfo.3:560
2546 #, no-wrap
2547 msgid "B<EAI_SOCKTYPE>"
2548 msgstr ""
2549
2550 #. type: Plain text
2551 #: build/C/man3/getaddrinfo.3:572
2552 msgid ""
2553 "The requested socket type is not supported.  This could occur, for example, "
2554 "if I<hints.ai_socktype> and I<hints.ai_protocol> are inconsistent (e.g., "
2555 "B<SOCK_DGRAM> and B<IPPROTO_TCP>, respectively)."
2556 msgstr ""
2557
2558 #. type: TP
2559 #: build/C/man3/getaddrinfo.3:572 build/C/man3/getaddrinfo_a.3:255 build/C/man3/getnameinfo.3:187
2560 #, no-wrap
2561 msgid "B<EAI_SYSTEM>"
2562 msgstr ""
2563
2564 #. type: Plain text
2565 #: build/C/man3/getaddrinfo.3:577
2566 msgid "Other system error, check I<errno> for details."
2567 msgstr ""
2568
2569 #. type: Plain text
2570 #: build/C/man3/getaddrinfo.3:582
2571 msgid ""
2572 "The B<gai_strerror>()  function translates these error codes to a human "
2573 "readable string, suitable for error reporting."
2574 msgstr ""
2575
2576 #. type: Plain text
2577 #: build/C/man3/getaddrinfo.3:589
2578 msgid "POSIX.1-2001.  The B<getaddrinfo>()  function is documented in RFC\\ 2553."
2579 msgstr ""
2580
2581 #. type: Plain text
2582 #: build/C/man3/getaddrinfo.3:594
2583 msgid ""
2584 "B<getaddrinfo>()  supports the I<address>B<%>I<scope-id> notation for "
2585 "specifying the IPv6 scope-ID."
2586 msgstr ""
2587
2588 #. type: Plain text
2589 #: build/C/man3/getaddrinfo.3:602
2590 msgid ""
2591 "B<AI_ADDRCONFIG>, B<AI_ALL>, and B<AI_V4MAPPED> are available since glibc "
2592 "2.3.3.  B<AI_NUMERICSERV> is available since glibc 2.3.4."
2593 msgstr ""
2594
2595 #. type: Plain text
2596 #: build/C/man3/getaddrinfo.3:612
2597 msgid ""
2598 "According to POSIX.1-2001, specifying I<hints> as NULL should cause "
2599 "I<ai_flags> to be assumed as 0.  The GNU C library instead assumes a value "
2600 "of B<(AI_V4MAPPED\\ |\\ AI_ADDRCONFIG)> for this case, since this value is "
2601 "considered an improvement on the specification."
2602 msgstr ""
2603
2604 #.  getnameinfo.3 refers to this example
2605 #.  socket.2 refers to this example
2606 #.  bind.2 refers to this example
2607 #.  connect.2 refers to this example
2608 #.  recvfrom.2 refers to this example
2609 #.  sendto.2 refers to this example
2610 #. type: Plain text
2611 #: build/C/man3/getaddrinfo.3:626
2612 msgid ""
2613 "The following programs demonstrate the use of B<getaddrinfo>(), "
2614 "B<gai_strerror>(), B<freeaddrinfo>(), and B<getnameinfo>(3).  The programs "
2615 "are an echo server and client for UDP datagrams."
2616 msgstr ""
2617
2618 #. type: SS
2619 #: build/C/man3/getaddrinfo.3:626
2620 #, no-wrap
2621 msgid "Server program"
2622 msgstr ""
2623
2624 #. type: Plain text
2625 #: build/C/man3/getaddrinfo.3:636
2626 #, no-wrap
2627 msgid ""
2628 "#include E<lt>sys/types.hE<gt>\n"
2629 "#include E<lt>stdio.hE<gt>\n"
2630 "#include E<lt>stdlib.hE<gt>\n"
2631 "#include E<lt>unistd.hE<gt>\n"
2632 "#include E<lt>string.hE<gt>\n"
2633 "#include E<lt>sys/socket.hE<gt>\n"
2634 "#include E<lt>netdb.hE<gt>\n"
2635 msgstr ""
2636
2637 #. type: Plain text
2638 #: build/C/man3/getaddrinfo.3:638 build/C/man3/getaddrinfo.3:733
2639 #, no-wrap
2640 msgid "#define BUF_SIZE 500\n"
2641 msgstr ""
2642
2643 #. type: Plain text
2644 #: build/C/man3/getaddrinfo.3:649
2645 #, no-wrap
2646 msgid ""
2647 "int\n"
2648 "main(int argc, char *argv[])\n"
2649 "{\n"
2650 "    struct addrinfo hints;\n"
2651 "    struct addrinfo *result, *rp;\n"
2652 "    int sfd, s;\n"
2653 "    struct sockaddr_storage peer_addr;\n"
2654 "    socklen_t peer_addr_len;\n"
2655 "    ssize_t nread;\n"
2656 "    char buf[BUF_SIZE];\n"
2657 msgstr ""
2658
2659 #. type: Plain text
2660 #: build/C/man3/getaddrinfo.3:654
2661 #, no-wrap
2662 msgid ""
2663 "    if (argc != 2) {\n"
2664 "        fprintf(stderr, \"Usage: %s port\\en\", argv[0]);\n"
2665 "        exit(EXIT_FAILURE);\n"
2666 "    }\n"
2667 msgstr ""
2668
2669 #. type: Plain text
2670 #: build/C/man3/getaddrinfo.3:663
2671 #, no-wrap
2672 msgid ""
2673 "    memset(&hints, 0, sizeof(struct addrinfo));\n"
2674 "    hints.ai_family = AF_UNSPEC;    /* Allow IPv4 or IPv6 */\n"
2675 "    hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */\n"
2676 "    hints.ai_flags = AI_PASSIVE;    /* For wildcard IP address */\n"
2677 "    hints.ai_protocol = 0;          /* Any protocol */\n"
2678 "    hints.ai_canonname = NULL;\n"
2679 "    hints.ai_addr = NULL;\n"
2680 "    hints.ai_next = NULL;\n"
2681 msgstr ""
2682
2683 #. type: Plain text
2684 #: build/C/man3/getaddrinfo.3:669
2685 #, no-wrap
2686 msgid ""
2687 "    s = getaddrinfo(NULL, argv[1], &hints, &result);\n"
2688 "    if (s != 0) {\n"
2689 "        fprintf(stderr, \"getaddrinfo: %s\\en\", gai_strerror(s));\n"
2690 "        exit(EXIT_FAILURE);\n"
2691 "    }\n"
2692 msgstr ""
2693
2694 #. type: Plain text
2695 #: build/C/man3/getaddrinfo.3:674
2696 #, no-wrap
2697 msgid ""
2698 "    /* getaddrinfo() returns a list of address structures.\n"
2699 "       Try each address until we successfully bind(2).\n"
2700 "       If socket(2) (or bind(2)) fails, we (close the socket\n"
2701 "       and) try the next address. */\n"
2702 msgstr ""
2703
2704 #. type: Plain text
2705 #: build/C/man3/getaddrinfo.3:680
2706 #, no-wrap
2707 msgid ""
2708 "    for (rp = result; rp != NULL; rp = rp-E<gt>ai_next) {\n"
2709 "        sfd = socket(rp-E<gt>ai_family, rp-E<gt>ai_socktype,\n"
2710 "                rp-E<gt>ai_protocol);\n"
2711 "        if (sfd == -1)\n"
2712 "            continue;\n"
2713 msgstr ""
2714
2715 #. type: Plain text
2716 #: build/C/man3/getaddrinfo.3:683
2717 #, no-wrap
2718 msgid ""
2719 "        if (bind(sfd, rp-E<gt>ai_addr, rp-E<gt>ai_addrlen) == 0)\n"
2720 "            break;                  /* Success */\n"
2721 msgstr ""
2722
2723 #. type: Plain text
2724 #: build/C/man3/getaddrinfo.3:686 build/C/man3/getaddrinfo.3:779
2725 #, no-wrap
2726 msgid ""
2727 "        close(sfd);\n"
2728 "    }\n"
2729 msgstr ""
2730
2731 #. type: Plain text
2732 #: build/C/man3/getaddrinfo.3:691
2733 #, no-wrap
2734 msgid ""
2735 "    if (rp == NULL) {               /* No address succeeded */\n"
2736 "        fprintf(stderr, \"Could not bind\\en\");\n"
2737 "        exit(EXIT_FAILURE);\n"
2738 "    }\n"
2739 msgstr ""
2740
2741 #. type: Plain text
2742 #: build/C/man3/getaddrinfo.3:693 build/C/man3/getaddrinfo.3:786
2743 #, no-wrap
2744 msgid "    freeaddrinfo(result);           /* No longer needed */\n"
2745 msgstr ""
2746
2747 #. type: Plain text
2748 #: build/C/man3/getaddrinfo.3:695
2749 #, no-wrap
2750 msgid "    /* Read datagrams and echo them back to sender */\n"
2751 msgstr ""
2752
2753 #. type: Plain text
2754 #: build/C/man3/getaddrinfo.3:702
2755 #, no-wrap
2756 msgid ""
2757 "    for (;;) {\n"
2758 "        peer_addr_len = sizeof(struct sockaddr_storage);\n"
2759 "        nread = recvfrom(sfd, buf, BUF_SIZE, 0,\n"
2760 "                (struct sockaddr *) &peer_addr, &peer_addr_len);\n"
2761 "        if (nread == -1)\n"
2762 "            continue;               /* Ignore failed request */\n"
2763 msgstr ""
2764
2765 #. type: Plain text
2766 #: build/C/man3/getaddrinfo.3:704
2767 #, no-wrap
2768 msgid "        char host[NI_MAXHOST], service[NI_MAXSERV];\n"
2769 msgstr ""
2770
2771 #. type: Plain text
2772 #: build/C/man3/getaddrinfo.3:713
2773 #, no-wrap
2774 msgid ""
2775 "        s = getnameinfo((struct sockaddr *) &peer_addr,\n"
2776 "                        peer_addr_len, host, NI_MAXHOST,\n"
2777 "                        service, NI_MAXSERV, NI_NUMERICSERV);\n"
2778 "       if (s == 0)\n"
2779 "            printf(\"Received %ld bytes from %s:%s\\en\",\n"
2780 "                    (long) nread, host, service);\n"
2781 "        else\n"
2782 "            fprintf(stderr, \"getnameinfo: %s\\en\", gai_strerror(s));\n"
2783 msgstr ""
2784
2785 #. type: Plain text
2786 #: build/C/man3/getaddrinfo.3:720
2787 #, no-wrap
2788 msgid ""
2789 "        if (sendto(sfd, buf, nread, 0,\n"
2790 "                    (struct sockaddr *) &peer_addr,\n"
2791 "                    peer_addr_len) != nread)\n"
2792 "            fprintf(stderr, \"Error sending response\\en\");\n"
2793 "    }\n"
2794 "}\n"
2795 msgstr ""
2796
2797 #. type: SS
2798 #: build/C/man3/getaddrinfo.3:721
2799 #, no-wrap
2800 msgid "Client program"
2801 msgstr ""
2802
2803 #. type: Plain text
2804 #: build/C/man3/getaddrinfo.3:731
2805 #, no-wrap
2806 msgid ""
2807 "#include E<lt>sys/types.hE<gt>\n"
2808 "#include E<lt>sys/socket.hE<gt>\n"
2809 "#include E<lt>netdb.hE<gt>\n"
2810 "#include E<lt>stdio.hE<gt>\n"
2811 "#include E<lt>stdlib.hE<gt>\n"
2812 "#include E<lt>unistd.hE<gt>\n"
2813 "#include E<lt>string.hE<gt>\n"
2814 msgstr ""
2815
2816 #. type: Plain text
2817 #: build/C/man3/getaddrinfo.3:743
2818 #, no-wrap
2819 msgid ""
2820 "int\n"
2821 "main(int argc, char *argv[])\n"
2822 "{\n"
2823 "    struct addrinfo hints;\n"
2824 "    struct addrinfo *result, *rp;\n"
2825 "    int sfd, s, j;\n"
2826 "    size_t len;\n"
2827 "    ssize_t nread;\n"
2828 "    char buf[BUF_SIZE];\n"
2829 msgstr ""
2830
2831 #. type: Plain text
2832 #: build/C/man3/getaddrinfo.3:748
2833 #, no-wrap
2834 msgid ""
2835 "    if (argc E<lt> 3) {\n"
2836 "        fprintf(stderr, \"Usage: %s host port msg...\\en\", argv[0]);\n"
2837 "        exit(EXIT_FAILURE);\n"
2838 "    }\n"
2839 msgstr ""
2840
2841 #. type: Plain text
2842 #: build/C/man3/getaddrinfo.3:750
2843 #, no-wrap
2844 msgid "    /* Obtain address(es) matching host/port */\n"
2845 msgstr ""
2846
2847 #. type: Plain text
2848 #: build/C/man3/getaddrinfo.3:756
2849 #, no-wrap
2850 msgid ""
2851 "    memset(&hints, 0, sizeof(struct addrinfo));\n"
2852 "    hints.ai_family = AF_UNSPEC;    /* Allow IPv4 or IPv6 */\n"
2853 "    hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */\n"
2854 "    hints.ai_flags = 0;\n"
2855 "    hints.ai_protocol = 0;          /* Any protocol */\n"
2856 msgstr ""
2857
2858 #. type: Plain text
2859 #: build/C/man3/getaddrinfo.3:762
2860 #, no-wrap
2861 msgid ""
2862 "    s = getaddrinfo(argv[1], argv[2], &hints, &result);\n"
2863 "    if (s != 0) {\n"
2864 "        fprintf(stderr, \"getaddrinfo: %s\\en\", gai_strerror(s));\n"
2865 "        exit(EXIT_FAILURE);\n"
2866 "    }\n"
2867 msgstr ""
2868
2869 #. type: Plain text
2870 #: build/C/man3/getaddrinfo.3:767
2871 #, no-wrap
2872 msgid ""
2873 "    /* getaddrinfo() returns a list of address structures.\n"
2874 "       Try each address until we successfully connect(2).\n"
2875 "       If socket(2) (or connect(2)) fails, we (close the socket\n"
2876 "       and) try the next address. */\n"
2877 msgstr ""
2878
2879 #. type: Plain text
2880 #: build/C/man3/getaddrinfo.3:773
2881 #, no-wrap
2882 msgid ""
2883 "    for (rp = result; rp != NULL; rp = rp-E<gt>ai_next) {\n"
2884 "        sfd = socket(rp-E<gt>ai_family, rp-E<gt>ai_socktype,\n"
2885 "                     rp-E<gt>ai_protocol);\n"
2886 "        if (sfd == -1)\n"
2887 "            continue;\n"
2888 msgstr ""
2889
2890 #. type: Plain text
2891 #: build/C/man3/getaddrinfo.3:776
2892 #, no-wrap
2893 msgid ""
2894 "        if (connect(sfd, rp-E<gt>ai_addr, rp-E<gt>ai_addrlen) != -1)\n"
2895 "            break;                  /* Success */\n"
2896 msgstr ""
2897
2898 #. type: Plain text
2899 #: build/C/man3/getaddrinfo.3:784
2900 #, no-wrap
2901 msgid ""
2902 "    if (rp == NULL) {               /* No address succeeded */\n"
2903 "        fprintf(stderr, \"Could not connect\\en\");\n"
2904 "        exit(EXIT_FAILURE);\n"
2905 "    }\n"
2906 msgstr ""
2907
2908 #. type: Plain text
2909 #: build/C/man3/getaddrinfo.3:789
2910 #, no-wrap
2911 msgid ""
2912 "    /* Send remaining command-line arguments as separate\n"
2913 "       datagrams, and read responses from server */\n"
2914 msgstr ""
2915
2916 #. type: Plain text
2917 #: build/C/man3/getaddrinfo.3:793
2918 #, no-wrap
2919 msgid ""
2920 "    for (j = 3; j E<lt> argc; j++) {\n"
2921 "        len = strlen(argv[j]) + 1;\n"
2922 "                /* +1 for terminating null byte */\n"
2923 msgstr ""
2924
2925 #. type: Plain text
2926 #: build/C/man3/getaddrinfo.3:799
2927 #, no-wrap
2928 msgid ""
2929 "        if (len + 1 E<gt> BUF_SIZE) {\n"
2930 "            fprintf(stderr,\n"
2931 "                    \"Ignoring long message in argument %d\\en\", j);\n"
2932 "            continue;\n"
2933 "        }\n"
2934 msgstr ""
2935
2936 #. type: Plain text
2937 #: build/C/man3/getaddrinfo.3:804
2938 #, no-wrap
2939 msgid ""
2940 "        if (write(sfd, argv[j], len) != len) {\n"
2941 "            fprintf(stderr, \"partial/failed write\\en\");\n"
2942 "            exit(EXIT_FAILURE);\n"
2943 "        }\n"
2944 msgstr ""
2945
2946 #. type: Plain text
2947 #: build/C/man3/getaddrinfo.3:810
2948 #, no-wrap
2949 msgid ""
2950 "        nread = read(sfd, buf, BUF_SIZE);\n"
2951 "        if (nread == -1) {\n"
2952 "            perror(\"read\");\n"
2953 "            exit(EXIT_FAILURE);\n"
2954 "        }\n"
2955 msgstr ""
2956
2957 #. type: Plain text
2958 #: build/C/man3/getaddrinfo.3:813
2959 #, no-wrap
2960 msgid ""
2961 "        printf(\"Received %ld bytes: %s\\en\", (long) nread, buf);\n"
2962 "    }\n"
2963 msgstr ""
2964
2965 #.  .BR getipnodebyaddr (3),
2966 #.  .BR getipnodebyname (3),
2967 #. type: Plain text
2968 #: build/C/man3/getaddrinfo.3:827
2969 msgid ""
2970 "B<getaddrinfo_a>(3), B<gethostbyname>(3), B<getnameinfo>(3), B<inet>(3), "
2971 "B<gai.conf>(5), B<hostname>(7), B<ip>(7)"
2972 msgstr ""
2973
2974 #. type: TH
2975 #: build/C/man3/getaddrinfo_a.3:29
2976 #, no-wrap
2977 msgid "GETADDRINFO_A"
2978 msgstr ""
2979
2980 #. type: TH
2981 #: build/C/man3/getaddrinfo_a.3:29
2982 #, no-wrap
2983 msgid "2010-09-27"
2984 msgstr ""
2985
2986 #. type: Plain text
2987 #: build/C/man3/getaddrinfo_a.3:33
2988 msgid ""
2989 "getaddrinfo_a, gai_suspend, gai_error, gai_cancel - asynchronous network "
2990 "address and service translation"
2991 msgstr ""
2992
2993 #. type: Plain text
2994 #: build/C/man3/getaddrinfo_a.3:37
2995 #, no-wrap
2996 msgid ""
2997 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
2998 "B<#include E<lt>netdb.hE<gt>>\n"
2999 msgstr ""
3000
3001 #. type: Plain text
3002 #: build/C/man3/getaddrinfo_a.3:40
3003 #, no-wrap
3004 msgid ""
3005 "B<int getaddrinfo_a(int >I<mode>B<, struct gaicb *>I<list[]>B<,>\n"
3006 "B<                int >I<nitems>B<, struct sigevent *>I<sevp>B<);>\n"
3007 msgstr ""
3008
3009 #. type: Plain text
3010 #: build/C/man3/getaddrinfo_a.3:43
3011 #, no-wrap
3012 msgid ""
3013 "B<int gai_suspend(struct gaicb *>I<list[]>B<, int >I<nitems>B<,>\n"
3014 "B<                struct timespec *>I<timeout>B<);>\n"
3015 msgstr ""
3016
3017 #. type: Plain text
3018 #: build/C/man3/getaddrinfo_a.3:45
3019 #, no-wrap
3020 msgid "B<int gai_error(struct gaicb *>I<req>B<);>\n"
3021 msgstr ""
3022
3023 #. type: Plain text
3024 #: build/C/man3/getaddrinfo_a.3:47
3025 #, no-wrap
3026 msgid "B<int gai_cancel(struct gaicb *>I<req>B<);>\n"
3027 msgstr ""
3028
3029 #. type: Plain text
3030 #: build/C/man3/getaddrinfo_a.3:49
3031 #, no-wrap
3032 msgid "Link with I<-lanl>.\n"
3033 msgstr ""
3034
3035 #. type: Plain text
3036 #: build/C/man3/getaddrinfo_a.3:57
3037 msgid ""
3038 "The B<getaddrinfo_a>()  function performs the same task as "
3039 "B<getaddrinfo>(3), but allows multiple name look-ups to be performed "
3040 "asynchronously, with optional notification on completion of look-up "
3041 "operations."
3042 msgstr ""
3043
3044 #. type: Plain text
3045 #: build/C/man3/getaddrinfo_a.3:61
3046 msgid "The I<mode> argument has one of the following values:"
3047 msgstr ""
3048
3049 #. type: TP
3050 #: build/C/man3/getaddrinfo_a.3:61
3051 #, no-wrap
3052 msgid "B<GAI_WAIT>"
3053 msgstr ""
3054
3055 #. type: Plain text
3056 #: build/C/man3/getaddrinfo_a.3:65
3057 msgid ""
3058 "Perform the look-ups synchronously.  The call blocks until the look-ups have "
3059 "completed."
3060 msgstr ""
3061
3062 #. type: TP
3063 #: build/C/man3/getaddrinfo_a.3:65
3064 #, no-wrap
3065 msgid "B<GAI_NOWAIT>"
3066 msgstr ""
3067
3068 #. type: Plain text
3069 #: build/C/man3/getaddrinfo_a.3:73
3070 msgid ""
3071 "Perform the look-ups asynchronously.  The call returns immediately, and the "
3072 "requests are resolved in the background.  See the discussion of the I<sevp> "
3073 "argument below."
3074 msgstr ""
3075
3076 #. type: Plain text
3077 #: build/C/man3/getaddrinfo_a.3:88
3078 msgid ""
3079 "The array I<list> specifies the look-up requests to process.  The I<nitems> "
3080 "argument specifies the number of elements in I<list>.  The requested look-up "
3081 "operations are started in parallel.  NULL elements in I<list> are ignored.  "
3082 "Each request is described by a I<gaicb> structure, defined as follows:"
3083 msgstr ""
3084
3085 #. type: Plain text
3086 #: build/C/man3/getaddrinfo_a.3:97
3087 #, no-wrap
3088 msgid ""
3089 "struct gaicb {\n"
3090 "    const char            *ar_name;\n"
3091 "    const char            *ar_service;\n"
3092 "    const struct addrinfo *ar_request;\n"
3093 "    struct addrinfo       *ar_result;\n"
3094 "};\n"
3095 msgstr ""
3096
3097 #. type: Plain text
3098 #: build/C/man3/getaddrinfo_a.3:128
3099 msgid ""
3100 "The elements of this structure correspond to the arguments of "
3101 "B<getaddrinfo>(3).  Thus, I<ar_name> corresponds to the I<node> argument and "
3102 "I<ar_service> to the I<service> argument, identifying an Internet host and a "
3103 "service.  The I<ar_request> element corresponds to the I<hints> argument, "
3104 "specifying the criteria for selecting the returned socket address "
3105 "structures.  Finally, I<ar_result> corresponds to the I<res> argument; you "
3106 "do not need to initialize this element, it will be automatically set when "
3107 "the request is resolved.  The I<addrinfo> structure referenced by the last "
3108 "two elements is described in B<getaddrinfo>(3)."
3109 msgstr ""
3110
3111 #. type: Plain text
3112 #: build/C/man3/getaddrinfo_a.3:144
3113 msgid ""
3114 "When I<mode> is specified as B<GAI_NOWAIT>, notifications about resolved "
3115 "requests can be obtained by employing the I<sigevent> structure pointed to "
3116 "by the I<sevp> argument.  For the definition and general details of this "
3117 "structure, see B<sigevent>(7).  The I<sevp-E<gt>sigev_notify> field can have "
3118 "the following values:"
3119 msgstr ""
3120
3121 #. type: TP
3122 #: build/C/man3/getaddrinfo_a.3:144
3123 #, no-wrap
3124 msgid "B<SIGEV_NONE>"
3125 msgstr ""
3126
3127 #. type: Plain text
3128 #: build/C/man3/getaddrinfo_a.3:147
3129 msgid "Don't provide any notification."
3130 msgstr ""
3131
3132 #. type: TP
3133 #: build/C/man3/getaddrinfo_a.3:147
3134 #, no-wrap
3135 msgid "B<SIGEV_SIGNAL>"
3136 msgstr ""
3137
3138 #.  si_pid and si_uid are also set, to the values of the calling process,
3139 #.  which doesn't provide useful information, so we'll skip mentioning it.
3140 #. type: Plain text
3141 #: build/C/man3/getaddrinfo_a.3:163
3142 msgid ""
3143 "When a look-up completes, generate the signal I<sigev_signo> for the "
3144 "process.  See B<sigevent>(7)  for general details.  The I<si_code> field of "
3145 "the I<siginfo_t> structure will be set to B<SI_ASYNCNL>."
3146 msgstr ""
3147
3148 #. type: TP
3149 #: build/C/man3/getaddrinfo_a.3:163
3150 #, no-wrap
3151 msgid "B<SIGEV_THREAD>"
3152 msgstr ""
3153
3154 #. type: Plain text
3155 #: build/C/man3/getaddrinfo_a.3:171
3156 msgid ""
3157 "When a look-up completes, invoke I<sigev_notify_function> as if it were the "
3158 "start function of a new thread.  See B<sigevent>(7)  for details."
3159 msgstr ""
3160
3161 #. type: Plain text
3162 #: build/C/man3/getaddrinfo_a.3:180
3163 msgid ""
3164 "For B<SIGEV_SIGNAL> and B<SIGEV_THREAD>, it may be useful to point "
3165 "I<sevp-E<gt>sigev_value.sival_ptr> to I<list>."
3166 msgstr ""
3167
3168 #. type: Plain text
3169 #: build/C/man3/getaddrinfo_a.3:191
3170 msgid ""
3171 "The B<gai_suspend>()  function suspends execution of the calling thread, "
3172 "waiting for the completion of one or more requests in the array I<list>.  "
3173 "The I<nitems> argument specifies the size of the array I<list>.  The call "
3174 "blocks until one of the following occurs:"
3175 msgstr ""
3176
3177 #. type: Plain text
3178 #: build/C/man3/getaddrinfo_a.3:195
3179 msgid "One or more of the operations in I<list> completes."
3180 msgstr ""
3181
3182 #. type: Plain text
3183 #: build/C/man3/getaddrinfo_a.3:197
3184 msgid "The call is interrupted by a signal that is caught."
3185 msgstr ""
3186
3187 #. type: Plain text
3188 #: build/C/man3/getaddrinfo_a.3:210
3189 msgid ""
3190 "The time interval specified in I<timeout> elapses.  This argument specifies "
3191 "a timeout in seconds plus nanoseconds (see B<nanosleep>(2)  for details of "
3192 "the I<timespec> structure).  If I<timeout> is NULL, then the call blocks "
3193 "indefinitely (until one of the events above occurs)."
3194 msgstr ""
3195
3196 #. type: Plain text
3197 #: build/C/man3/getaddrinfo_a.3:215
3198 msgid ""
3199 "No explicit indication of which request was completed is given; you must "
3200 "determine which request(s) have completed by iterating with B<gai_error>()  "
3201 "over the list of requests."
3202 msgstr ""
3203
3204 #. type: Plain text
3205 #: build/C/man3/getaddrinfo_a.3:225
3206 msgid ""
3207 "The B<gai_error>()  function returns the status of the request I<req>: "
3208 "either B<EAI_INPROGRESS> if the request was not completed yet, 0 if it was "
3209 "handled successfully, or an error code if the request could not be resolved."
3210 msgstr ""
3211
3212 #. type: Plain text
3213 #: build/C/man3/getaddrinfo_a.3:242
3214 msgid ""
3215 "The B<gai_cancel>()  function cancels the request I<req>.  If the request "
3216 "has been canceled successfully, the error status of the request will be set "
3217 "to B<EAI_CANCELLED> and normal asynchronous notification will be performed.  "
3218 "The request cannot be canceled if it is currently being processed; in that "
3219 "case, it will be handled as if B<gai_cancel>()  has never been called.  If "
3220 "I<req> is NULL, an attempt is made to cancel all outstanding requests that "
3221 "the process has made."
3222 msgstr ""
3223
3224 #. type: Plain text
3225 #: build/C/man3/getaddrinfo_a.3:247
3226 msgid ""
3227 "The B<getaddrinfo_a>()  function returns 0 if all of the requests have been "
3228 "enqueued successfully, or one of the following nonzero error codes:"
3229 msgstr ""
3230
3231 #. type: Plain text
3232 #: build/C/man3/getaddrinfo_a.3:252
3233 msgid ""
3234 "The resources necessary to enqueue the look-up requests were not available.  "
3235 "The application may check the error status of each request to determine "
3236 "which ones failed."
3237 msgstr ""
3238
3239 #. type: Plain text
3240 #: build/C/man3/getaddrinfo_a.3:259
3241 msgid "I<mode> is invalid."
3242 msgstr ""
3243
3244 #. type: Plain text
3245 #: build/C/man3/getaddrinfo_a.3:264
3246 msgid ""
3247 "The B<gai_suspend>()  function returns 0 if at least one of the listed "
3248 "requests has been completed.  Otherwise, it returns one of the following "
3249 "nonzero error codes:"
3250 msgstr ""
3251
3252 #. type: Plain text
3253 #: build/C/man3/getaddrinfo_a.3:267
3254 msgid "The given timeout expired before any of the requests could be completed."
3255 msgstr ""
3256
3257 #. type: TP
3258 #: build/C/man3/getaddrinfo_a.3:267 build/C/man3/getaddrinfo_a.3:297
3259 #, no-wrap
3260 msgid "B<EAI_ALLDONE>"
3261 msgstr ""
3262
3263 #. type: Plain text
3264 #: build/C/man3/getaddrinfo_a.3:270
3265 msgid "There were no actual requests given to the function."
3266 msgstr ""
3267
3268 #. type: TP
3269 #: build/C/man3/getaddrinfo_a.3:270
3270 #, no-wrap
3271 msgid "B<EAI_INTR>"
3272 msgstr ""
3273
3274 #. type: Plain text
3275 #: build/C/man3/getaddrinfo_a.3:275
3276 msgid ""
3277 "A signal has interrupted the function.  Note that this interruption might "
3278 "have been caused by signal notification of some completed look-up request."
3279 msgstr ""
3280
3281 #. type: Plain text
3282 #: build/C/man3/getaddrinfo_a.3:287
3283 msgid ""
3284 "The B<gai_error>()  function can return B<EAI_INPROGRESS> for an unfinished "
3285 "look-up request, 0 for a successfully completed look-up (as described "
3286 "above), one of the error codes that could be returned by B<getaddrinfo>(3), "
3287 "or the error code B<EAI_CANCELLED> if the request has been canceled "
3288 "explicitly before it could be finished."
3289 msgstr ""
3290
3291 #. type: Plain text
3292 #: build/C/man3/getaddrinfo_a.3:291
3293 msgid "The B<gai_cancel>()  function can return one of these values:"
3294 msgstr ""
3295
3296 #. type: TP
3297 #: build/C/man3/getaddrinfo_a.3:291
3298 #, no-wrap
3299 msgid "B<EAI_CANCELLED>"
3300 msgstr ""
3301
3302 #. type: Plain text
3303 #: build/C/man3/getaddrinfo_a.3:294
3304 msgid "The request has been canceled successfully."
3305 msgstr ""
3306
3307 #. type: TP
3308 #: build/C/man3/getaddrinfo_a.3:294
3309 #, no-wrap
3310 msgid "B<EAI_NOTCANCELLED>"
3311 msgstr ""
3312
3313 #. type: Plain text
3314 #: build/C/man3/getaddrinfo_a.3:297
3315 msgid "The request has not been canceled."
3316 msgstr ""
3317
3318 #. type: Plain text
3319 #: build/C/man3/getaddrinfo_a.3:300
3320 msgid "The request has already completed."
3321 msgstr ""
3322
3323 #. type: Plain text
3324 #: build/C/man3/getaddrinfo_a.3:305 build/C/man3/getnameinfo.3:197
3325 msgid ""
3326 "The B<gai_strerror>(3)  function translates these error codes to a human "
3327 "readable string, suitable for error reporting."
3328 msgstr ""
3329
3330 #. type: Plain text
3331 #: build/C/man3/getaddrinfo_a.3:308
3332 msgid ""
3333 "These functions are GNU extensions; they first appeared in glibc in version "
3334 "2.2.3."
3335 msgstr ""
3336
3337 #. type: Plain text
3338 #: build/C/man3/getaddrinfo_a.3:314
3339 msgid ""
3340 "The interface of B<getaddrinfo_a>()  was modeled after the B<lio_listio>(3)  "
3341 "interface."
3342 msgstr ""
3343
3344 #. type: Plain text
3345 #: build/C/man3/getaddrinfo_a.3:318
3346 msgid ""
3347 "Two examples are provided: a simple example that resolves several requests "
3348 "in parallel synchronously, and a complex example showing some of the "
3349 "asynchronous capabilities."
3350 msgstr ""
3351
3352 #. type: SS
3353 #: build/C/man3/getaddrinfo_a.3:318
3354 #, no-wrap
3355 msgid "Synchronous example"
3356 msgstr ""
3357
3358 #. type: Plain text
3359 #: build/C/man3/getaddrinfo_a.3:323
3360 msgid ""
3361 "The program below simply resolves several hostnames in parallel, giving a "
3362 "speed-up compared to resolving the hostnames sequentially using "
3363 "B<getaddrinfo>(3).  The program might be used like this:"
3364 msgstr ""
3365
3366 #. type: Plain text
3367 #: build/C/man3/getaddrinfo_a.3:330
3368 #, no-wrap
3369 msgid ""
3370 "$ B<./a.out ftp.us.kernel.org enoent.linuxfoundation.org gnu.cz>\n"
3371 "ftp.us.kernel.org: 128.30.2.36\n"
3372 "enoent.linuxfoundation.org: Name or service not known\n"
3373 "gnu.cz: 87.236.197.13\n"
3374 msgstr ""
3375
3376 #. type: Plain text
3377 #: build/C/man3/getaddrinfo_a.3:334
3378 msgid "Here is the program source code"
3379 msgstr ""
3380
3381 #. type: Plain text
3382 #: build/C/man3/getaddrinfo_a.3:341 build/C/man3/getaddrinfo_a.3:430
3383 #, no-wrap
3384 msgid ""
3385 "#define _GNU_SOURCE\n"
3386 "#include E<lt>netdb.hE<gt>\n"
3387 "#include E<lt>stdio.hE<gt>\n"
3388 "#include E<lt>stdlib.hE<gt>\n"
3389 "#include E<lt>string.hE<gt>\n"
3390 msgstr ""
3391
3392 #. type: Plain text
3393 #: build/C/man3/getaddrinfo_a.3:349
3394 #, no-wrap
3395 msgid ""
3396 "int\n"
3397 "main(int argc, char *argv[])\n"
3398 "{\n"
3399 "    int i, ret;\n"
3400 "    struct gaicb *reqs[argc - 1];\n"
3401 "    char host[NI_MAXHOST];\n"
3402 "    struct addrinfo *res;\n"
3403 msgstr ""
3404
3405 #. type: Plain text
3406 #: build/C/man3/getaddrinfo_a.3:354
3407 #, no-wrap
3408 msgid ""
3409 "    if (argc E<lt> 2) {\n"
3410 "        fprintf(stderr, \"Usage: %s HOST...\\en\", argv[0]);\n"
3411 "        exit(EXIT_FAILURE);\n"
3412 "    }\n"
3413 msgstr ""
3414
3415 #. type: Plain text
3416 #: build/C/man3/getaddrinfo_a.3:364
3417 #, no-wrap
3418 msgid ""
3419 "    for (i = 0; i E<lt> argc - 1; i++) {\n"
3420 "        reqs[i] = malloc(sizeof(*reqs[0]));\n"
3421 "        if (reqs[i] == NULL) {\n"
3422 "            perror(\"malloc\");\n"
3423 "            exit(EXIT_FAILURE);\n"
3424 "        }\n"
3425 "        memset(reqs[i], 0, sizeof(*reqs[0]));\n"
3426 "        reqs[i]-E<gt>ar_name = argv[i + 1];\n"
3427 "    }\n"
3428 msgstr ""
3429
3430 #. type: Plain text
3431 #: build/C/man3/getaddrinfo_a.3:371
3432 #, no-wrap
3433 msgid ""
3434 "    ret = getaddrinfo_a(GAI_WAIT, reqs, argc - 1, NULL);\n"
3435 "    if (ret != 0) {\n"
3436 "        fprintf(stderr, \"getaddrinfo_a() failed: %s\\en\",\n"
3437 "                gai_strerror(ret));\n"
3438 "        exit(EXIT_FAILURE);\n"
3439 "    }\n"
3440 msgstr ""
3441
3442 #. type: Plain text
3443 #: build/C/man3/getaddrinfo_a.3:377
3444 #, no-wrap
3445 msgid ""
3446 "    for (i = 0; i E<lt> argc - 1; i++) {\n"
3447 "        printf(\"%s: \", reqs[i]-E<gt>ar_name);\n"
3448 "        ret = gai_error(reqs[i]);\n"
3449 "        if (ret == 0) {\n"
3450 "            res = reqs[i]-E<gt>ar_result;\n"
3451 msgstr ""
3452
3453 #. type: Plain text
3454 #: build/C/man3/getaddrinfo_a.3:387
3455 #, no-wrap
3456 msgid ""
3457 "            ret = getnameinfo(res-E<gt>ai_addr, res-E<gt>ai_addrlen,\n"
3458 "                    host, sizeof(host),\n"
3459 "                    NULL, 0, NI_NUMERICHOST);\n"
3460 "            if (ret != 0) {\n"
3461 "                fprintf(stderr, \"getnameinfo() failed: %s\\en\",\n"
3462 "                        gai_strerror(ret));\n"
3463 "                exit(EXIT_FAILURE);\n"
3464 "            }\n"
3465 "            puts(host);\n"
3466 msgstr ""
3467
3468 #. type: Plain text
3469 #: build/C/man3/getaddrinfo_a.3:394
3470 #, no-wrap
3471 msgid ""
3472 "        } else {\n"
3473 "            puts(gai_strerror(ret));\n"
3474 "        }\n"
3475 "    }\n"
3476 "    exit(EXIT_SUCCESS);\n"
3477 "}\n"
3478 msgstr ""
3479
3480 #. type: SS
3481 #: build/C/man3/getaddrinfo_a.3:395
3482 #, no-wrap
3483 msgid "Asynchronous example"
3484 msgstr ""
3485
3486 #. type: Plain text
3487 #: build/C/man3/getaddrinfo_a.3:400
3488 msgid ""
3489 "This example shows a simple interactive B<getaddrinfo_a>()  front-end.  The "
3490 "notification facility is not demonstrated."
3491 msgstr ""
3492
3493 #. type: Plain text
3494 #: build/C/man3/getaddrinfo_a.3:402
3495 msgid "An example session might look like this:"
3496 msgstr ""
3497
3498 #. type: Plain text
3499 #: build/C/man3/getaddrinfo_a.3:419
3500 #, no-wrap
3501 msgid ""
3502 "$ B<./a.out>\n"
3503 "E<gt> a ftp.us.kernel.org enoent.linuxfoundation.org gnu.cz\n"
3504 "E<gt> c 2\n"
3505 "[2] gnu.cz: Request not canceled\n"
3506 "E<gt> w 0 1\n"
3507 "[00] ftp.us.kernel.org: Finished\n"
3508 "E<gt> l\n"
3509 "[00] ftp.us.kernel.org: 216.165.129.139\n"
3510 "[01] enoent.linuxfoundation.org: Processing request in progress\n"
3511 "[02] gnu.cz: 87.236.197.13\n"
3512 "E<gt> l\n"
3513 "[00] ftp.us.kernel.org: 216.165.129.139\n"
3514 "[01] enoent.linuxfoundation.org: Name or service not known\n"
3515 "[02] gnu.cz: 87.236.197.13\n"
3516 msgstr ""
3517
3518 #. type: Plain text
3519 #: build/C/man3/getaddrinfo_a.3:423
3520 msgid "The program source is as follows:"
3521 msgstr ""
3522
3523 #. type: Plain text
3524 #: build/C/man3/getaddrinfo_a.3:433
3525 #, no-wrap
3526 msgid ""
3527 "static struct gaicb **reqs = NULL;\n"
3528 "static int nreqs = 0;\n"
3529 msgstr ""
3530
3531 #. type: Plain text
3532 #: build/C/man3/getaddrinfo_a.3:438
3533 #, no-wrap
3534 msgid ""
3535 "static char *\n"
3536 "getcmd(void)\n"
3537 "{\n"
3538 "    static char buf[256];\n"
3539 msgstr ""
3540
3541 #. type: Plain text
3542 #: build/C/man3/getaddrinfo_a.3:442
3543 #, no-wrap
3544 msgid ""
3545 "    fputs(\"E<gt> \", stdout); fflush(stdout);\n"
3546 "    if (fgets(buf, sizeof(buf), stdin) == NULL)\n"
3547 "        return NULL;\n"
3548 msgstr ""
3549
3550 #. type: Plain text
3551 #: build/C/man3/getaddrinfo_a.3:445
3552 #, no-wrap
3553 msgid ""
3554 "    if (buf[strlen(buf) - 1] == \\(aq\\en\\(aq)\n"
3555 "        buf[strlen(buf) - 1] = 0;\n"
3556 msgstr ""
3557
3558 #. type: Plain text
3559 #: build/C/man3/getaddrinfo_a.3:448
3560 #, no-wrap
3561 msgid ""
3562 "    return buf;\n"
3563 "}\n"
3564 msgstr ""
3565
3566 #. type: Plain text
3567 #: build/C/man3/getaddrinfo_a.3:456
3568 #, no-wrap
3569 msgid ""
3570 "/* Add requests for specified hostnames */\n"
3571 "static void\n"
3572 "add_requests(void)\n"
3573 "{\n"
3574 "    int nreqs_base = nreqs;\n"
3575 "    char *host;\n"
3576 "    int ret;\n"
3577 msgstr ""
3578
3579 #. type: Plain text
3580 #: build/C/man3/getaddrinfo_a.3:460
3581 #, no-wrap
3582 msgid ""
3583 "    while ((host = strtok(NULL, \" \"))) {\n"
3584 "        nreqs++;\n"
3585 "        reqs = realloc(reqs, nreqs * sizeof(reqs[0]));\n"
3586 msgstr ""
3587
3588 #. type: Plain text
3589 #: build/C/man3/getaddrinfo_a.3:464
3590 #, no-wrap
3591 msgid ""
3592 "        reqs[nreqs - 1] = calloc(1, sizeof(*reqs[0]));\n"
3593 "        reqs[nreqs - 1]-E<gt>ar_name = strdup(host);\n"
3594 "    }\n"
3595 msgstr ""
3596
3597 #. type: Plain text
3598 #: build/C/man3/getaddrinfo_a.3:466
3599 #, no-wrap
3600 msgid "    /* Queue nreqs_base..nreqs requests. */\n"
3601 msgstr ""
3602
3603 #. type: Plain text
3604 #: build/C/man3/getaddrinfo_a.3:475
3605 #, no-wrap
3606 msgid ""
3607 "    ret = getaddrinfo_a(GAI_NOWAIT, &reqs[nreqs_base],\n"
3608 "                        nreqs - nreqs_base, NULL);\n"
3609 "    if (ret) {\n"
3610 "        fprintf(stderr, \"getaddrinfo_a() failed: %s\\en\",\n"
3611 "                gai_strerror(ret));\n"
3612 "        exit(EXIT_FAILURE);\n"
3613 "    }\n"
3614 "}\n"
3615 msgstr ""
3616
3617 #. type: Plain text
3618 #: build/C/man3/getaddrinfo_a.3:484
3619 #, no-wrap
3620 msgid ""
3621 "/* Wait until at least one of specified requests completes */\n"
3622 "static void\n"
3623 "wait_requests(void)\n"
3624 "{\n"
3625 "    char *id;\n"
3626 "    int i, ret, n;\n"
3627 "    struct gaicb const **wait_reqs = calloc(nreqs, sizeof(*wait_reqs));\n"
3628 "                /* NULL elements are ignored by gai_suspend(). */\n"
3629 msgstr ""
3630
3631 #. type: Plain text
3632 #: build/C/man3/getaddrinfo_a.3:487 build/C/man3/getaddrinfo_a.3:524
3633 #, no-wrap
3634 msgid ""
3635 "    while ((id = strtok(NULL, \" \")) != NULL) {\n"
3636 "        n = atoi(id);\n"
3637 msgstr ""
3638
3639 #. type: Plain text
3640 #: build/C/man3/getaddrinfo_a.3:492 build/C/man3/getaddrinfo_a.3:529
3641 #, no-wrap
3642 msgid ""
3643 "        if (n E<gt>= nreqs) {\n"
3644 "            printf(\"Bad request number: %s\\en\", id);\n"
3645 "            return;\n"
3646 "        }\n"
3647 msgstr ""
3648
3649 #. type: Plain text
3650 #: build/C/man3/getaddrinfo_a.3:495
3651 #, no-wrap
3652 msgid ""
3653 "        wait_reqs[n] = reqs[n];\n"
3654 "    }\n"
3655 msgstr ""
3656
3657 #. type: Plain text
3658 #: build/C/man3/getaddrinfo_a.3:501
3659 #, no-wrap
3660 msgid ""
3661 "    ret = gai_suspend(wait_reqs, nreqs, NULL);\n"
3662 "    if (ret) {\n"
3663 "        printf(\"gai_suspend(): %s\\en\", gai_strerror(ret));\n"
3664 "        return;\n"
3665 "    }\n"
3666 msgstr ""
3667
3668 #. type: Plain text
3669 #: build/C/man3/getaddrinfo_a.3:505
3670 #, no-wrap
3671 msgid ""
3672 "    for (i = 0; i E<lt> nreqs; i++) {\n"
3673 "        if (wait_reqs[i] == NULL)\n"
3674 "            continue;\n"
3675 msgstr ""
3676
3677 #. type: Plain text
3678 #: build/C/man3/getaddrinfo_a.3:509
3679 #, no-wrap
3680 msgid ""
3681 "        ret = gai_error(reqs[i]);\n"
3682 "        if (ret == EAI_INPROGRESS)\n"
3683 "            continue;\n"
3684 msgstr ""
3685
3686 #. type: Plain text
3687 #: build/C/man3/getaddrinfo_a.3:514
3688 #, no-wrap
3689 msgid ""
3690 "        printf(\"[%02d] %s: %s\\en\", i, reqs[i]-E<gt>ar_name,\n"
3691 "               ret == 0 ? \"Finished\" : gai_strerror(ret));\n"
3692 "    }\n"
3693 "}\n"
3694 msgstr ""
3695
3696 #. type: Plain text
3697 #: build/C/man3/getaddrinfo_a.3:521
3698 #, no-wrap
3699 msgid ""
3700 "/* Cancel specified requests */\n"
3701 "static void\n"
3702 "cancel_requests(void)\n"
3703 "{\n"
3704 "    char *id;\n"
3705 "    int ret, n;\n"
3706 msgstr ""
3707
3708 #. type: Plain text
3709 #: build/C/man3/getaddrinfo_a.3:535
3710 #, no-wrap
3711 msgid ""
3712 "        ret = gai_cancel(reqs[n]);\n"
3713 "        printf(\"[%s] %s: %s\\en\", id, reqs[atoi(id)]-E<gt>ar_name,\n"
3714 "               gai_strerror(ret));\n"
3715 "    }\n"
3716 "}\n"
3717 msgstr ""
3718
3719 #. type: Plain text
3720 #: build/C/man3/getaddrinfo_a.3:543
3721 #, no-wrap
3722 msgid ""
3723 "/* List all requests */\n"
3724 "static void\n"
3725 "list_requests(void)\n"
3726 "{\n"
3727 "    int i, ret;\n"
3728 "    char host[NI_MAXHOST];\n"
3729 "    struct addrinfo *res;\n"
3730 msgstr ""
3731
3732 #. type: Plain text
3733 #: build/C/man3/getaddrinfo_a.3:547
3734 #, no-wrap
3735 msgid ""
3736 "    for (i = 0; i E<lt> nreqs; i++) {\n"
3737 "        printf(\"[%02d] %s: \", i, reqs[i]-E<gt>ar_name);\n"
3738 "        ret = gai_error(reqs[i]);\n"
3739 msgstr ""
3740
3741 #. type: Plain text
3742 #: build/C/man3/getaddrinfo_a.3:550
3743 #, no-wrap
3744 msgid ""
3745 "        if (!ret) {\n"
3746 "            res = reqs[i]-E<gt>ar_result;\n"
3747 msgstr ""
3748
3749 #. type: Plain text
3750 #: build/C/man3/getaddrinfo_a.3:565
3751 #, no-wrap
3752 msgid ""
3753 "            ret = getnameinfo(res-E<gt>ai_addr, res-E<gt>ai_addrlen,\n"
3754 "                              host, sizeof(host),\n"
3755 "                              NULL, 0, NI_NUMERICHOST);\n"
3756 "            if (ret) {\n"
3757 "                fprintf(stderr, \"getnameinfo() failed: %s\\en\",\n"
3758 "                        gai_strerror(ret));\n"
3759 "                exit(EXIT_FAILURE);\n"
3760 "            }\n"
3761 "            puts(host);\n"
3762 "        } else {\n"
3763 "            puts(gai_strerror(ret));\n"
3764 "        }\n"
3765 "    }\n"
3766 "}\n"
3767 msgstr ""
3768
3769 #. type: Plain text
3770 #: build/C/man3/getaddrinfo_a.3:571
3771 #, no-wrap
3772 msgid ""
3773 "int\n"
3774 "main(int argc, char *argv[])\n"
3775 "{\n"
3776 "    char *cmdline;\n"
3777 "    char *cmd;\n"
3778 msgstr ""
3779
3780 #. type: Plain text
3781 #: build/C/man3/getaddrinfo_a.3:574
3782 #, no-wrap
3783 msgid ""
3784 "    while ((cmdline = getcmd()) != NULL) {\n"
3785 "        cmd = strtok(cmdline, \" \");\n"
3786 msgstr ""
3787
3788 #. type: Plain text
3789 #: build/C/man3/getaddrinfo_a.3:599
3790 #, no-wrap
3791 msgid ""
3792 "        if (cmd == NULL) {\n"
3793 "            list_requests();\n"
3794 "        } else {\n"
3795 "            switch (cmd[0]) {\n"
3796 "            case \\(aqa\\(aq:\n"
3797 "                add_requests();\n"
3798 "                break;\n"
3799 "            case \\(aqw\\(aq:\n"
3800 "                wait_requests();\n"
3801 "                break;\n"
3802 "            case \\(aqc\\(aq:\n"
3803 "                cancel_requests();\n"
3804 "                break;\n"
3805 "            case \\(aql\\(aq:\n"
3806 "                list_requests();\n"
3807 "                break;\n"
3808 "            default:\n"
3809 "                fprintf(stderr, \"Bad command: %c\\en\", cmd[0]);\n"
3810 "                break;\n"
3811 "            }\n"
3812 "        }\n"
3813 "    }\n"
3814 "    exit(EXIT_SUCCESS);\n"
3815 "}\n"
3816 msgstr ""
3817
3818 #. type: Plain text
3819 #: build/C/man3/getaddrinfo_a.3:607
3820 msgid ""
3821 "B<getaddrinfo>(3), B<inet>(3), B<lio_listio>(3), B<hostname>(7), B<ip>(7), "
3822 "B<sigevent>(7)"
3823 msgstr ""
3824
3825 #. type: TH
3826 #: build/C/man1/getent.1:24
3827 #, no-wrap
3828 msgid "GETENT"
3829 msgstr ""
3830
3831 #. type: TH
3832 #: build/C/man1/getent.1:24
3833 #, no-wrap
3834 msgid "2013-03-15"
3835 msgstr ""
3836
3837 #. type: TH
3838 #: build/C/man1/getent.1:24
3839 #, no-wrap
3840 msgid "User Commands"
3841 msgstr ""
3842
3843 #. type: Plain text
3844 #: build/C/man1/getent.1:27
3845 msgid "getent - get entries from Name Service Switch libraries"
3846 msgstr ""
3847
3848 #. type: Plain text
3849 #: build/C/man1/getent.1:30
3850 msgid "B<getent> I<database> [I<key> ...]"
3851 msgstr ""
3852
3853 #. type: Plain text
3854 #: build/C/man1/getent.1:45
3855 msgid ""
3856 "The B<getent> command displays entries from databases supported by the Name "
3857 "Service Switch libraries, which are configured in I</etc/nsswitch.conf>.  If "
3858 "one or more I<key> arguments are provided, then only the entries that match "
3859 "the supplied keys will be displayed.  Otherwise, if no I<key> is provided, "
3860 "all entries will be displayed (unless the database does not support "
3861 "enumeration)."
3862 msgstr ""
3863
3864 #. type: Plain text
3865 #: build/C/man1/getent.1:49
3866 msgid ""
3867 "The I<database> may be any of those supported by the GNU C Library, listed "
3868 "below:"
3869 msgstr ""
3870
3871 #. type: TP
3872 #: build/C/man1/getent.1:50
3873 #, no-wrap
3874 msgid "B<ahosts>"
3875 msgstr ""
3876
3877 #. type: Plain text
3878 #: build/C/man1/getent.1:71
3879 msgid ""
3880 "When no I<key> is provided, use B<sethostent>(3), B<gethostent>(3), and "
3881 "B<endhostent>(3)  to enumerate the hosts database.  This is identical to "
3882 "using B<hosts>.  When one or more I<key> arguments are provided, pass each "
3883 "I<key> in succession to B<getaddrinfo>(3)  with the address family "
3884 "B<AF_UNSPEC>, enumerating each socket address structure returned."
3885 msgstr ""
3886
3887 #. type: TP
3888 #: build/C/man1/getent.1:71
3889 #, no-wrap
3890 msgid "B<ahostsv4>"
3891 msgstr ""
3892
3893 #. type: Plain text
3894 #: build/C/man1/getent.1:77
3895 msgid "Same as B<ahosts>, but use the address family B<AF_INET>."
3896 msgstr ""
3897
3898 #. type: TP
3899 #: build/C/man1/getent.1:77
3900 #, no-wrap
3901 msgid "B<ahostsv6>"
3902 msgstr ""
3903
3904 #. type: Plain text
3905 #: build/C/man1/getent.1:88
3906 msgid ""
3907 "Same as B<ahosts>, but use the address family B<AF_INET6>.  The call to "
3908 "B<getaddrinfo>(3)  in this case includes the B<AI_V4MAPPED> flag."
3909 msgstr ""
3910
3911 #. type: TP
3912 #: build/C/man1/getent.1:88 build/C/man5/nsswitch.conf.5:44
3913 #, no-wrap
3914 msgid "B<aliases>"
3915 msgstr ""
3916
3917 #. type: Plain text
3918 #: build/C/man1/getent.1:105
3919 msgid ""
3920 "When no I<key> is provided, use B<setaliasent>(3), B<getaliasent>(3), and "
3921 "B<endaliasent>(3)  to enumerate the aliases database.  When one or more "
3922 "I<key> arguments are provided, pass each I<key> in succession to "
3923 "B<getaliasbyname>(3)  and display the result."
3924 msgstr ""
3925
3926 #. type: TP
3927 #: build/C/man1/getent.1:105 build/C/man5/nsswitch.conf.5:49
3928 #, no-wrap
3929 msgid "B<ethers>"
3930 msgstr ""
3931
3932 #. type: Plain text
3933 #: build/C/man1/getent.1:121
3934 msgid ""
3935 "When one or more I<key> arguments are provided, pass each I<key> in "
3936 "succession to B<ether_aton>(3)  and B<ether_hostton>(3)  until a result is "
3937 "obtained, and display the result.  Enumeration is not supported on "
3938 "B<ethers>, so a I<key> must be provided."
3939 msgstr ""
3940
3941 #. type: TP
3942 #: build/C/man1/getent.1:121 build/C/man5/nsswitch.conf.5:52
3943 #, no-wrap
3944 msgid "B<group>"
3945 msgstr ""
3946
3947 #. type: Plain text
3948 #: build/C/man1/getent.1:142
3949 msgid ""
3950 "When no I<key> is provided, use B<setgrent>(3), B<getgrent>(3), and "
3951 "B<endgrent>(3)  to enumerate the group database.  When one or more I<key> "
3952 "arguments are provided, pass each numeric I<key> to B<getgrgid>(3)  and each "
3953 "nonnumeric I<key> to B<getgrnam>(3)  and display the result."
3954 msgstr ""
3955
3956 #. type: TP
3957 #: build/C/man1/getent.1:142
3958 #, no-wrap
3959 msgid "B<gshadow>"
3960 msgstr ""
3961
3962 #. type: Plain text
3963 #: build/C/man1/getent.1:159
3964 msgid ""
3965 "When no I<key> is provided, use B<setsgent>(3), B<getsgent>(3), and "
3966 "B<endsgent>(3)  to enumerate the gshadow database.  When one or more I<key> "
3967 "arguments are provided, pass each I<key> in succession to B<getsgnam>(3)  "
3968 "and display the result."
3969 msgstr ""
3970
3971 #. type: TP
3972 #: build/C/man1/getent.1:159 build/C/man5/nsswitch.conf.5:57
3973 #, no-wrap
3974 msgid "B<hosts>"
3975 msgstr ""
3976
3977 #. type: Plain text
3978 #: build/C/man1/getent.1:182
3979 msgid ""
3980 "When no I<key> is provided, use B<sethostent>(3), B<gethostent>(3), and "
3981 "B<endhostent>(3)  to enumerate the hosts database.  When one or more I<key> "
3982 "arguments are provided, pass each I<key> to B<gethostbyaddr>(3)  or "
3983 "B<gethostbyname2>(3), depending on whether a call to B<inet_pton>(3)  "
3984 "indicates that the I<key> is an IPv6 or IPv4 address or not, and display the "
3985 "result."
3986 msgstr ""
3987
3988 #. type: TP
3989 #: build/C/man1/getent.1:182 build/C/man5/nsswitch.conf.5:62
3990 #, no-wrap
3991 msgid "B<initgroups>"
3992 msgstr ""
3993
3994 #. type: Plain text
3995 #: build/C/man1/getent.1:196
3996 msgid ""
3997 "When one or more I<key> arguments are provided, pass each I<key> in "
3998 "succession to B<getgrouplist>(3)  and display the result.  Enumeration is "
3999 "not supported on B<initgroups>, so a I<key> must be provided."
4000 msgstr ""
4001
4002 #. type: TP
4003 #: build/C/man1/getent.1:196 build/C/man5/nsswitch.conf.5:67
4004 #, no-wrap
4005 msgid "B<netgroup>"
4006 msgstr ""
4007
4008 #. type: Plain text
4009 #: build/C/man1/getent.1:222
4010 msgid ""
4011 "When one I<key> is provided, pass the I<key> to B<setnetgrent>(3)  and, "
4012 "using B<getnetgrent>(3)  display the resulting string triple (I<hostname>, "
4013 "I<username>, I<domainname>).  Alternatively, three I<keys> may be provided, "
4014 "which are interpreted as the I<hostname>, I<username> and I<domainname> to "
4015 "match to a netgroup name via B<innetgr>(3).  Enumeration is not supported on "
4016 "B<netgroup>, so either one or three I<keys> must be provided."
4017 msgstr ""
4018
4019 #. type: TP
4020 #: build/C/man1/getent.1:222 build/C/man5/nsswitch.conf.5:71
4021 #, no-wrap
4022 msgid "B<networks>"
4023 msgstr ""
4024
4025 #. type: Plain text
4026 #: build/C/man1/getent.1:243
4027 msgid ""
4028 "When no I<key> is provided, use B<setnetent>(3), B<getnetent>(3), and "
4029 "B<endnetent>(3)  to enumerate the networks database.  When one or more "
4030 "I<key> arguments are provided, pass each numeric I<key> to "
4031 "B<getnetbyaddr>(3)  and each nonnumeric I<key> to B<getnetbyname>(3)  and "
4032 "display the result."
4033 msgstr ""
4034
4035 #. type: TP
4036 #: build/C/man1/getent.1:243 build/C/man5/nsswitch.conf.5:76
4037 #, no-wrap
4038 msgid "B<passwd>"
4039 msgstr ""
4040
4041 #. type: Plain text
4042 #: build/C/man1/getent.1:264
4043 msgid ""
4044 "When no I<key> is provided, use B<setpwent>(3), B<getpwent>(3), and "
4045 "B<endpwent>(3)  to enumerate the passwd database.  When one or more I<key> "
4046 "arguments are provided, pass each numeric I<key> to B<getpwuid>(3)  and each "
4047 "nonnumeric I<key> to B<getpwnam>(3)  and display the result."
4048 msgstr ""
4049
4050 #. type: TP
4051 #: build/C/man1/getent.1:264 build/C/man5/nsswitch.conf.5:81
4052 #, no-wrap
4053 msgid "B<protocols>"
4054 msgstr ""
4055
4056 #. type: Plain text
4057 #: build/C/man1/getent.1:285
4058 msgid ""
4059 "When no I<key> is provided, use B<setprotoent>(3), B<getprotoent>(3), and "
4060 "B<endprotoent>(3)  to enumerate the protocols database.  When one or more "
4061 "I<key> arguments are provided, pass each numeric I<key> to "
4062 "B<getprotobynumber>(3)  and each nonnumeric I<key> to B<getprotobyname>(3)  "
4063 "and display the result."
4064 msgstr ""
4065
4066 #. type: TP
4067 #: build/C/man1/getent.1:285 build/C/man5/nsswitch.conf.5:89
4068 #, no-wrap
4069 msgid "B<rpc>"
4070 msgstr ""
4071
4072 #. type: Plain text
4073 #: build/C/man1/getent.1:306
4074 msgid ""
4075 "When no I<key> is provided, use B<setrpcent>(3), B<getrpcent>(3), and "
4076 "B<endrpcent>(3)  to enumerate the rpc database.  When one or more I<key> "
4077 "arguments are provided, pass each numeric I<key> to B<getrpcbynumber>(3)  "
4078 "and each nonnumeric I<key> to B<getrpcbyname>(3)  and display the result."
4079 msgstr ""
4080
4081 #. type: TP
4082 #: build/C/man1/getent.1:306 build/C/man5/nsswitch.conf.5:94
4083 #, no-wrap
4084 msgid "B<services>"
4085 msgstr ""
4086
4087 #. type: Plain text
4088 #: build/C/man1/getent.1:327
4089 msgid ""
4090 "When no I<key> is provided, use B<setservent>(3), B<getservent>(3), and "
4091 "B<endservent>(3)  to enumerate the services database.  When one or more "
4092 "I<key> arguments are provided, pass each numeric I<key> to "
4093 "B<getservbynumber>(3)  and each nonnumeric I<key> to B<getservbyname>(3)  "
4094 "and display the result."
4095 msgstr ""
4096
4097 #. type: TP
4098 #: build/C/man1/getent.1:327 build/C/man5/nsswitch.conf.5:99
4099 #, no-wrap
4100 msgid "B<shadow>"
4101 msgstr ""
4102
4103 #. type: Plain text
4104 #: build/C/man1/getent.1:344
4105 msgid ""
4106 "When no I<key> is provided, use B<setspent>(3), B<getspent>(3), and "
4107 "B<endspent>(3)  to enumerate the shadow database.  When one or more I<key> "
4108 "arguments are provided, pass each I<key> in succession to B<getspnam>(3)  "
4109 "and display the result."
4110 msgstr ""
4111
4112 #. type: SH
4113 #: build/C/man1/getent.1:345
4114 #, no-wrap
4115 msgid "EXIT STATUS"
4116 msgstr ""
4117
4118 #. type: Plain text
4119 #: build/C/man1/getent.1:348
4120 msgid "One of the following exit values can be returned by B<getent>:"
4121 msgstr ""
4122
4123 #. type: TP
4124 #: build/C/man1/getent.1:349
4125 #, no-wrap
4126 msgid "B<0>"
4127 msgstr ""
4128
4129 #. type: Plain text
4130 #: build/C/man1/getent.1:352
4131 msgid "Command completed successfully."
4132 msgstr ""
4133
4134 #. type: TP
4135 #: build/C/man1/getent.1:352
4136 #, no-wrap
4137 msgid "B<1>"
4138 msgstr ""
4139
4140 #. type: Plain text
4141 #: build/C/man1/getent.1:357
4142 msgid "Missing arguments, or I<database> unknown."
4143 msgstr ""
4144
4145 #. type: TP
4146 #: build/C/man1/getent.1:357
4147 #, no-wrap
4148 msgid "B<2>"
4149 msgstr ""
4150
4151 #. type: Plain text
4152 #: build/C/man1/getent.1:363
4153 msgid "One or more supplied I<key> could not be found in the I<database>."
4154 msgstr ""
4155
4156 #. type: TP
4157 #: build/C/man1/getent.1:363
4158 #, no-wrap
4159 msgid "B<3>"
4160 msgstr ""
4161
4162 #. type: Plain text
4163 #: build/C/man1/getent.1:367
4164 msgid "Enumeration not supported on this I<database>."
4165 msgstr ""
4166
4167 #. type: Plain text
4168 #: build/C/man1/getent.1:370
4169 msgid "B<nsswitch.conf>(5)"
4170 msgstr ""
4171
4172 #. type: TH
4173 #: build/C/man3/gethostbyname.3:38
4174 #, no-wrap
4175 msgid "GETHOSTBYNAME"
4176 msgstr ""
4177
4178 #. type: TH
4179 #: build/C/man3/gethostbyname.3:38
4180 #, no-wrap
4181 msgid "2010-10-04"
4182 msgstr ""
4183
4184 #. type: Plain text
4185 #: build/C/man3/gethostbyname.3:46
4186 msgid ""
4187 "gethostbyname, gethostbyaddr, sethostent, gethostent, endhostent, h_errno, "
4188 "herror, hstrerror, gethostbyaddr_r, gethostbyname2, gethostbyname2_r, "
4189 "gethostbyname_r, gethostent_r - get network host entry"
4190 msgstr ""
4191
4192 #. type: Plain text
4193 #: build/C/man3/gethostbyname.3:50
4194 #, no-wrap
4195 msgid ""
4196 "B<#include E<lt>netdb.hE<gt>>\n"
4197 "B<extern int h_errno;>\n"
4198 msgstr ""
4199
4200 #. type: Plain text
4201 #: build/C/man3/gethostbyname.3:52
4202 #, no-wrap
4203 msgid "B<struct hostent *gethostbyname(const char *>I<name>B<);>\n"
4204 msgstr ""
4205
4206 #. type: Plain text
4207 #: build/C/man3/gethostbyname.3:56
4208 #, no-wrap
4209 msgid ""
4210 "B<#include E<lt>sys/socket.hE<gt>>       /* for AF_INET */\n"
4211 "B<struct hostent *gethostbyaddr(const void *>I<addr>B<,>\n"
4212 "B<                              socklen_t >I<len>B<, int >I<type>B<);>\n"
4213 msgstr ""
4214
4215 #. type: Plain text
4216 #: build/C/man3/gethostbyname.3:58
4217 #, no-wrap
4218 msgid "B<void sethostent(int >I<stayopen>B<);>\n"
4219 msgstr ""
4220
4221 #. type: Plain text
4222 #: build/C/man3/gethostbyname.3:60
4223 #, no-wrap
4224 msgid "B<void endhostent(void);>\n"
4225 msgstr ""
4226
4227 #. type: Plain text
4228 #: build/C/man3/gethostbyname.3:62
4229 #, no-wrap
4230 msgid "B<void herror(const char *>I<s>B<);>\n"
4231 msgstr ""
4232
4233 #. type: Plain text
4234 #: build/C/man3/gethostbyname.3:64
4235 #, no-wrap
4236 msgid "B<const char *hstrerror(int >I<err>B<);>\n"
4237 msgstr ""
4238
4239 #. type: Plain text
4240 #: build/C/man3/gethostbyname.3:66
4241 #, no-wrap
4242 msgid "/* System V/POSIX extension */\n"
4243 msgstr ""
4244
4245 #. type: Plain text
4246 #: build/C/man3/gethostbyname.3:68
4247 #, no-wrap
4248 msgid "B<struct hostent *gethostent(void);>\n"
4249 msgstr ""
4250
4251 #. type: Plain text
4252 #: build/C/man3/gethostbyname.3:72
4253 #, no-wrap
4254 msgid "B<struct hostent *gethostbyname2(const char *>I<name>B<, int >I<af>B<);>\n"
4255 msgstr ""
4256
4257 #. type: Plain text
4258 #: build/C/man3/gethostbyname.3:76
4259 #, no-wrap
4260 msgid ""
4261 "B<int gethostent_r(>\n"
4262 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4263 ">I<buflen>B<,>\n"
4264 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4265 msgstr ""
4266
4267 #. type: Plain text
4268 #: build/C/man3/gethostbyname.3:80
4269 #, no-wrap
4270 msgid ""
4271 "B<int gethostbyaddr_r(const void *>I<addr>B<, socklen_t >I<len>B<, int "
4272 ">I<type>B<,>\n"
4273 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4274 ">I<buflen>B<,>\n"
4275 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4276 msgstr ""
4277
4278 #. type: Plain text
4279 #: build/C/man3/gethostbyname.3:84
4280 #, no-wrap
4281 msgid ""
4282 "B<int gethostbyname_r(const char *>I<name>B<,>\n"
4283 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4284 ">I<buflen>B<,>\n"
4285 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4286 msgstr ""
4287
4288 #. type: Plain text
4289 #: build/C/man3/gethostbyname.3:88
4290 #, no-wrap
4291 msgid ""
4292 "B<int gethostbyname2_r(const char *>I<name>B<, int >I<af,>\n"
4293 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4294 ">I<buflen>B<,>\n"
4295 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4296 msgstr ""
4297
4298 #. type: Plain text
4299 #: build/C/man3/gethostbyname.3:102
4300 msgid ""
4301 "B<gethostbyname2>(), B<gethostent_r>(), B<gethostbyaddr_r>(), "
4302 "B<gethostbyname_r>(), B<gethostbyname2_r>():"
4303 msgstr ""
4304
4305 #. type: Plain text
4306 #: build/C/man3/gethostbyname.3:104 build/C/man3/getnetent_r.3:60 build/C/man3/getprotoent_r.3:57 build/C/man3/getservent_r.3:57
4307 msgid "_BSD_SOURCE || _SVID_SOURCE"
4308 msgstr ""
4309
4310 #. type: Plain text
4311 #: build/C/man3/gethostbyname.3:108
4312 msgid "B<herror>(), B<hstrerror>():"
4313 msgstr ""
4314
4315 #. type: TP
4316 #: build/C/man3/gethostbyname.3:109
4317 #, no-wrap
4318 msgid "Since glibc 2.8:"
4319 msgstr ""
4320
4321 #. type: Plain text
4322 #: build/C/man3/gethostbyname.3:112
4323 msgid "_BSD_SOURCE || _SVID_SOURCE || _GNU_SOURCE"
4324 msgstr ""
4325
4326 #. type: TP
4327 #: build/C/man3/gethostbyname.3:112
4328 #, no-wrap
4329 msgid "Before glibc 2.8:"
4330 msgstr ""
4331
4332 #. type: Plain text
4333 #: build/C/man3/gethostbyname.3:115
4334 msgid "none"
4335 msgstr ""
4336
4337 #. type: Plain text
4338 #: build/C/man3/gethostbyname.3:129
4339 msgid ""
4340 "The B<gethostbyname*>()  and B<gethostbyaddr*>()  functions are obsolete.  "
4341 "Applications should use B<getaddrinfo>(3)  and B<getnameinfo>(3)  instead."
4342 msgstr ""
4343
4344 #. type: Plain text
4345 #: build/C/man3/gethostbyname.3:170
4346 msgid ""
4347 "The B<gethostbyname>()  function returns a structure of type I<hostent> for "
4348 "the given host I<name>.  Here I<name> is either a hostname, or an IPv4 "
4349 "address in standard dot notation (as for B<inet_addr>(3)), or an IPv6 "
4350 "address in colon (and possibly dot) notation.  (See RFC\\ 1884 for the "
4351 "description of IPv6 addresses.)  If I<name> is an IPv4 or IPv6 address, no "
4352 "lookup is performed and B<gethostbyname>()  simply copies I<name> into the "
4353 "I<h_name> field and its I<struct in_addr> equivalent into the "
4354 "I<h_addr_list[0]> field of the returned I<hostent> structure.  If I<name> "
4355 "doesn't end in a dot and the environment variable B<HOSTALIASES> is set, the "
4356 "alias file pointed to by B<HOSTALIASES> will first be searched for I<name> "
4357 "(see B<hostname>(7)  for the file format).  The current domain and its "
4358 "parents are searched unless I<name> ends in a dot."
4359 msgstr ""
4360
4361 #. type: Plain text
4362 #: build/C/man3/gethostbyname.3:186
4363 msgid ""
4364 "The B<gethostbyaddr>()  function returns a structure of type I<hostent> for "
4365 "the given host address I<addr> of length I<len> and address type I<type>.  "
4366 "Valid address types are B<AF_INET> and B<AF_INET6>.  The host address "
4367 "argument is a pointer to a struct of a type depending on the address type, "
4368 "for example a I<struct in_addr *> (probably obtained via a call to "
4369 "B<inet_addr>(3))  for address type B<AF_INET>."
4370 msgstr ""
4371
4372 #. type: Plain text
4373 #: build/C/man3/gethostbyname.3:193
4374 msgid ""
4375 "The B<sethostent>()  function specifies, if I<stayopen> is true (1), that a "
4376 "connected TCP socket should be used for the name server queries and that the "
4377 "connection should remain open during successive queries.  Otherwise, name "
4378 "server queries will use UDP datagrams."
4379 msgstr ""
4380
4381 #. type: Plain text
4382 #: build/C/man3/gethostbyname.3:198
4383 msgid ""
4384 "The B<endhostent>()  function ends the use of a TCP connection for name "
4385 "server queries."
4386 msgstr ""
4387
4388 #. type: Plain text
4389 #: build/C/man3/gethostbyname.3:203
4390 msgid ""
4391 "The (obsolete)  B<herror>()  function prints the error message associated "
4392 "with the current value of I<h_errno> on I<stderr>."
4393 msgstr ""
4394
4395 #. type: Plain text
4396 #: build/C/man3/gethostbyname.3:208
4397 msgid ""
4398 "The (obsolete)  B<hstrerror>()  function takes an error number (typically "
4399 "I<h_errno>) and returns the corresponding message string."
4400 msgstr ""
4401
4402 #.  (See
4403 #.  .BR resolv+ (8)).
4404 #. type: Plain text
4405 #: build/C/man3/gethostbyname.3:225
4406 msgid ""
4407 "The domain name queries carried out by B<gethostbyname>()  and "
4408 "B<gethostbyaddr>()  use a combination of any or all of the name server "
4409 "B<named>(8), a broken out line from I</etc/hosts>, and the Network "
4410 "Information Service (NIS or YP), depending upon the contents of the I<order> "
4411 "line in I</etc/host.conf>.  The default action is to query B<named>(8), "
4412 "followed by I</etc/hosts>."
4413 msgstr ""
4414
4415 #. type: Plain text
4416 #: build/C/man3/gethostbyname.3:227
4417 msgid "The I<hostent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
4418 msgstr ""
4419
4420 #. type: Plain text
4421 #: build/C/man3/gethostbyname.3:239
4422 #, no-wrap
4423 msgid ""
4424 "struct hostent {\n"
4425 "    char  *h_name;            /* official name of host */\n"
4426 "    char **h_aliases;         /* alias list */\n"
4427 "    int    h_addrtype;        /* host address type */\n"
4428 "    int    h_length;          /* length of address */\n"
4429 "    char **h_addr_list;       /* list of addresses */\n"
4430 "}\n"
4431 "#define h_addr h_addr_list[0] /* for backward compatibility */\n"
4432 msgstr ""
4433
4434 #. type: Plain text
4435 #: build/C/man3/gethostbyname.3:243
4436 msgid "The members of the I<hostent> structure are:"
4437 msgstr ""
4438
4439 #. type: TP
4440 #: build/C/man3/gethostbyname.3:243 build/C/man3/getipnodebyname.3:210
4441 #, no-wrap
4442 msgid "I<h_name>"
4443 msgstr ""
4444
4445 #. type: Plain text
4446 #: build/C/man3/gethostbyname.3:246
4447 msgid "The official name of the host."
4448 msgstr ""
4449
4450 #. type: TP
4451 #: build/C/man3/gethostbyname.3:246 build/C/man3/getipnodebyname.3:213
4452 #, no-wrap
4453 msgid "I<h_aliases>"
4454 msgstr ""
4455
4456 #. type: Plain text
4457 #: build/C/man3/gethostbyname.3:249
4458 msgid "An array of alternative names for the host, terminated by a NULL pointer."
4459 msgstr ""
4460
4461 #. type: TP
4462 #: build/C/man3/gethostbyname.3:249 build/C/man3/getipnodebyname.3:217
4463 #, no-wrap
4464 msgid "I<h_addrtype>"
4465 msgstr ""
4466
4467 #. type: Plain text
4468 #: build/C/man3/gethostbyname.3:256
4469 msgid "The type of address; always B<AF_INET> or B<AF_INET6> at present."
4470 msgstr ""
4471
4472 #. type: TP
4473 #: build/C/man3/gethostbyname.3:256 build/C/man3/getipnodebyname.3:239
4474 #, no-wrap
4475 msgid "I<h_length>"
4476 msgstr ""
4477
4478 #. type: Plain text
4479 #: build/C/man3/gethostbyname.3:259
4480 msgid "The length of the address in bytes."
4481 msgstr ""
4482
4483 #. type: TP
4484 #: build/C/man3/gethostbyname.3:259 build/C/man3/getipnodebyname.3:253
4485 #, no-wrap
4486 msgid "I<h_addr_list>"
4487 msgstr ""
4488
4489 #. type: Plain text
4490 #: build/C/man3/gethostbyname.3:263
4491 msgid ""
4492 "An array of pointers to network addresses for the host (in network byte "
4493 "order), terminated by a NULL pointer."
4494 msgstr ""
4495
4496 #. type: TP
4497 #: build/C/man3/gethostbyname.3:263
4498 #, no-wrap
4499 msgid "I<h_addr>"
4500 msgstr ""
4501
4502 #. type: Plain text
4503 #: build/C/man3/gethostbyname.3:266
4504 msgid "The first address in I<h_addr_list> for backward compatibility."
4505 msgstr ""
4506
4507 #. type: Plain text
4508 #: build/C/man3/gethostbyname.3:278
4509 msgid ""
4510 "The B<gethostbyname>()  and B<gethostbyaddr>()  functions return the "
4511 "I<hostent> structure or a NULL pointer if an error occurs.  On error, the "
4512 "I<h_errno> variable holds an error number.  When non-NULL, the return value "
4513 "may point at static data, see the notes below."
4514 msgstr ""
4515
4516 #. type: Plain text
4517 #: build/C/man3/gethostbyname.3:280
4518 msgid "The variable I<h_errno> can have the following values:"
4519 msgstr ""
4520
4521 #. type: TP
4522 #: build/C/man3/gethostbyname.3:280 build/C/man3/getipnodebyname.3:190
4523 #, no-wrap
4524 msgid "B<HOST_NOT_FOUND>"
4525 msgstr ""
4526
4527 #. type: Plain text
4528 #: build/C/man3/gethostbyname.3:283
4529 msgid "The specified host is unknown."
4530 msgstr ""
4531
4532 #. type: TP
4533 #: build/C/man3/gethostbyname.3:283
4534 #, no-wrap
4535 msgid "B<NO_ADDRESS> or B<NO_DATA>"
4536 msgstr ""
4537
4538 #. type: Plain text
4539 #: build/C/man3/gethostbyname.3:286
4540 msgid "The requested name is valid but does not have an IP address."
4541 msgstr ""
4542
4543 #. type: TP
4544 #: build/C/man3/gethostbyname.3:286 build/C/man3/getipnodebyname.3:199
4545 #, no-wrap
4546 msgid "B<NO_RECOVERY>"
4547 msgstr ""
4548
4549 #. type: Plain text
4550 #: build/C/man3/gethostbyname.3:289
4551 msgid "A nonrecoverable name server error occurred."
4552 msgstr ""
4553
4554 #. type: TP
4555 #: build/C/man3/gethostbyname.3:289 build/C/man3/getipnodebyname.3:202
4556 #, no-wrap
4557 msgid "B<TRY_AGAIN>"
4558 msgstr ""
4559
4560 #. type: Plain text
4561 #: build/C/man3/gethostbyname.3:293
4562 msgid ""
4563 "A temporary error occurred on an authoritative name server.  Try again "
4564 "later."
4565 msgstr ""
4566
4567 #. type: TP
4568 #: build/C/man3/gethostbyname.3:294 build/C/man5/host.conf.5:181
4569 #, no-wrap
4570 msgid "I</etc/host.conf>"
4571 msgstr ""
4572
4573 #. type: Plain text
4574 #: build/C/man3/gethostbyname.3:297
4575 msgid "resolver configuration file"
4576 msgstr ""
4577
4578 #. type: Plain text
4579 #: build/C/man3/gethostbyname.3:297 build/C/man5/host.conf.5:187 build/C/man5/hosts.5:88
4580 #, no-wrap
4581 msgid "I</etc/hosts>"
4582 msgstr ""
4583
4584 #. type: Plain text
4585 #: build/C/man3/gethostbyname.3:300
4586 msgid "host database file"
4587 msgstr ""
4588
4589 #. type: Plain text
4590 #: build/C/man3/gethostbyname.3:300 build/C/man5/nsswitch.conf.5:306 build/C/man3/setnetgrent.3:92
4591 #, no-wrap
4592 msgid "I</etc/nsswitch.conf>"
4593 msgstr ""
4594
4595 #. type: Plain text
4596 #: build/C/man3/gethostbyname.3:303
4597 msgid "name service switch configuration"
4598 msgstr ""
4599
4600 #. type: Plain text
4601 #: build/C/man3/gethostbyname.3:327
4602 msgid ""
4603 "POSIX.1-2001 specifies B<gethostbyname>(), B<gethostbyaddr>(), "
4604 "B<sethostent>(), B<endhostent>(), B<gethostent>(), and I<h_errno>; "
4605 "B<gethostbyname>(), B<gethostbyaddr>(), and I<h_errno> are marked "
4606 "obsolescent in that standard.  POSIX.1-2008 removes the specifications of "
4607 "B<gethostbyname>(), B<gethostbyaddr>(), and I<h_errno>, recommending the use "
4608 "of B<getaddrinfo>(3)  and B<getnameinfo>(3)  instead."
4609 msgstr ""
4610
4611 #. type: Plain text
4612 #: build/C/man3/gethostbyname.3:337
4613 msgid ""
4614 "The functions B<gethostbyname>()  and B<gethostbyaddr>()  may return "
4615 "pointers to static data, which may be overwritten by later calls.  Copying "
4616 "the I<struct hostent> does not suffice, since it contains pointers; a deep "
4617 "copy is required."
4618 msgstr ""
4619
4620 #. type: Plain text
4621 #: build/C/man3/gethostbyname.3:361
4622 msgid ""
4623 "In the original BSD implementation the I<len> argument of B<gethostbyname>()  "
4624 "was an I<int>.  The SUSv2 standard is buggy and declares the I<len> argument "
4625 "of B<gethostbyaddr>()  to be of type I<size_t>.  (That is wrong, because it "
4626 "has to be I<int>, and I<size_t> is not.  POSIX.1-2001 makes it I<socklen_t>, "
4627 "which is OK.)  See also B<accept>(2)."
4628 msgstr ""
4629
4630 #. type: Plain text
4631 #: build/C/man3/gethostbyname.3:367
4632 msgid ""
4633 "The BSD prototype for B<gethostbyaddr>()  uses I<const char\\ *> for the "
4634 "first argument."
4635 msgstr ""
4636
4637 #. type: SS
4638 #: build/C/man3/gethostbyname.3:367
4639 #, no-wrap
4640 msgid "System V/POSIX extension"
4641 msgstr ""
4642
4643 #.  e.g., Linux, FreeBSD, UnixWare, HP-UX
4644 #.  e.g., FreeBSD, AIX
4645 #. type: Plain text
4646 #: build/C/man3/gethostbyname.3:384
4647 msgid ""
4648 "POSIX requires the B<gethostent>()  call, that should return the next entry "
4649 "in the host data base.  When using DNS/BIND this does not make much sense, "
4650 "but it may be reasonable if the host data base is a file that can be read "
4651 "line by line.  On many systems a routine of this name reads from the file "
4652 "I</etc/hosts>.  It may be available only when the library was built without "
4653 "DNS support.  The glibc version will ignore ipv6 entries.  This function is "
4654 "not reentrant, and glibc adds a reentrant version B<gethostent_r>()."
4655 msgstr ""
4656
4657 #. type: SS
4658 #: build/C/man3/gethostbyname.3:384
4659 #, no-wrap
4660 msgid "GNU extensions"
4661 msgstr ""
4662
4663 #. type: Plain text
4664 #: build/C/man3/gethostbyname.3:390
4665 msgid ""
4666 "Glibc2 also has a B<gethostbyname2>()  that works like B<gethostbyname>(), "
4667 "but permits to specify the address family to which the address must belong."
4668 msgstr ""
4669
4670 #. type: Plain text
4671 #: build/C/man3/gethostbyname.3:424
4672 msgid ""
4673 "Glibc2 also has reentrant versions B<gethostent_r>(), B<gethostbyaddr_r>(), "
4674 "B<gethostbyname_r>()  and B<gethostbyname2_r>().  The caller supplies a "
4675 "I<hostent> structure I<ret> which will be filled in on success, and a "
4676 "temporary work buffer I<buf> of size I<buflen>.  After the call, I<result> "
4677 "will point to the result on success.  In case of an error or if no entry is "
4678 "found I<result> will be NULL.  The functions return 0 on success and a "
4679 "nonzero error number on failure.  In addition to the errors returned by the "
4680 "nonreentrant versions of these functions, if I<buf> is too small, the "
4681 "functions will return B<ERANGE>, and the call should be retried with a "
4682 "larger buffer.  The global variable I<h_errno> is not modified, but the "
4683 "address of a variable in which to store error numbers is passed in "
4684 "I<h_errnop>."
4685 msgstr ""
4686
4687 #.  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482973
4688 #. type: Plain text
4689 #: build/C/man3/gethostbyname.3:429
4690 msgid ""
4691 "B<gethostbyname>()  does not recognize components of a dotted IPv4 address "
4692 "string that are expressed in hexadecimal."
4693 msgstr ""
4694
4695 #.  .BR getipnodebyaddr (3),
4696 #.  .BR getipnodebyname (3),
4697 #.  .BR resolv+ (8)
4698 #. type: Plain text
4699 #: build/C/man3/gethostbyname.3:443
4700 msgid ""
4701 "B<getaddrinfo>(3), B<getnameinfo>(3), B<inet>(3), B<inet_ntop>(3), "
4702 "B<inet_pton>(3), B<resolver>(3), B<hosts>(5), B<nsswitch.conf>(5), "
4703 "B<hostname>(7), B<named>(8)"
4704 msgstr ""
4705
4706 #. type: TH
4707 #: build/C/man3/getipnodebyname.3:26
4708 #, no-wrap
4709 msgid "GETIPNODEBYNAME"
4710 msgstr ""
4711
4712 #. type: TH
4713 #: build/C/man3/getipnodebyname.3:26
4714 #, no-wrap
4715 msgid "2010-09-04"
4716 msgstr ""
4717
4718 #. type: Plain text
4719 #: build/C/man3/getipnodebyname.3:30
4720 msgid ""
4721 "getipnodebyname, getipnodebyaddr, freehostent - get network hostnames and "
4722 "addresses"
4723 msgstr ""
4724
4725 #. type: Plain text
4726 #: build/C/man3/getipnodebyname.3:38
4727 #, no-wrap
4728 msgid ""
4729 "B<struct hostent *getipnodebyname(const char *>I<name>B<, int >I<af>B<,>\n"
4730 "B<                                int >I<flags>B<, int *>I<error_num>B<);>\n"
4731 msgstr ""
4732
4733 #. type: Plain text
4734 #: build/C/man3/getipnodebyname.3:41
4735 #, no-wrap
4736 msgid ""
4737 "B<struct hostent *getipnodebyaddr(const void *>I<addr>B<, size_t "
4738 ">I<len>B<,>\n"
4739 "B<                                int >I<af>B<, int *>I<error_num>B<);>\n"
4740 msgstr ""
4741
4742 #. type: Plain text
4743 #: build/C/man3/getipnodebyname.3:43
4744 #, no-wrap
4745 msgid "B<void freehostent(struct hostent *>I<ip>B<);>\n"
4746 msgstr ""
4747
4748 #. type: Plain text
4749 #: build/C/man3/getipnodebyname.3:51
4750 msgid ""
4751 "These functions are deprecated (and unavailable in glibc).  Use "
4752 "B<getaddrinfo>(3)  and B<getnameinfo>(3)  instead."
4753 msgstr ""
4754
4755 #. type: Plain text
4756 #: build/C/man3/getipnodebyname.3:59
4757 msgid ""
4758 "The B<getipnodebyname>()  and B<getipnodebyaddr>()  functions return the "
4759 "names and addresses of a network host.  These functions return a pointer to "
4760 "the following structure:"
4761 msgstr ""
4762
4763 #. type: Plain text
4764 #: build/C/man3/getipnodebyname.3:69
4765 #, no-wrap
4766 msgid ""
4767 "struct hostent {\n"
4768 "    char  *h_name;\n"
4769 "    char **h_aliases;\n"
4770 "    int    h_addrtype;\n"
4771 "    int    h_length;\n"
4772 "    char **h_addr_list;\n"
4773 "};\n"
4774 msgstr ""
4775
4776 #. type: Plain text
4777 #: build/C/man3/getipnodebyname.3:82
4778 msgid ""
4779 "These functions replace the B<gethostbyname>(3)  and B<gethostbyaddr>(3)  "
4780 "functions, which could access only the IPv4 network address family.  The "
4781 "B<getipnodebyname>()  and B<getipnodebyaddr>()  functions can access "
4782 "multiple network address families."
4783 msgstr ""
4784
4785 #. type: Plain text
4786 #: build/C/man3/getipnodebyname.3:93
4787 msgid ""
4788 "Unlike the B<gethostby> functions, these functions return pointers to "
4789 "dynamically allocated memory.  The B<freehostent>()  function is used to "
4790 "release the dynamically allocated memory after the caller no longer needs "
4791 "the I<hostent> structure."
4792 msgstr ""
4793
4794 #. type: SS
4795 #: build/C/man3/getipnodebyname.3:93
4796 #, no-wrap
4797 msgid "getipnodebyname() arguments"
4798 msgstr ""
4799
4800 #. type: Plain text
4801 #: build/C/man3/getipnodebyname.3:104
4802 msgid ""
4803 "The B<getipnodebyname>()  function looks up network addresses for the host "
4804 "specified by the I<name> argument.  The I<af> argument specifies one of the "
4805 "following values:"
4806 msgstr ""
4807
4808 #. type: TP
4809 #: 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
4810 #, no-wrap
4811 msgid "B<AF_INET>"
4812 msgstr ""
4813
4814 #. type: Plain text
4815 #: build/C/man3/getipnodebyname.3:110
4816 msgid ""
4817 "The I<name> argument points to a dotted-quad IPv4 address or a name of an "
4818 "IPv4 network host."
4819 msgstr ""
4820
4821 #. type: TP
4822 #: 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
4823 #, no-wrap
4824 msgid "B<AF_INET6>"
4825 msgstr ""
4826
4827 #. type: Plain text
4828 #: build/C/man3/getipnodebyname.3:116
4829 msgid ""
4830 "The I<name> argument points to a hexadecimal IPv6 address or a name of an "
4831 "IPv6 network host."
4832 msgstr ""
4833
4834 #. type: Plain text
4835 #: build/C/man3/getipnodebyname.3:125
4836 msgid ""
4837 "The I<flags> argument specifies additional options.  More than one option "
4838 "can be specified by bitwise OR-ing them together.  I<flags> should be set to "
4839 "0 if no options are desired."
4840 msgstr ""
4841
4842 #. type: TP
4843 #: build/C/man3/getipnodebyname.3:125
4844 #, no-wrap
4845 msgid "B<AI_V4MAPPED>"
4846 msgstr ""
4847
4848 #. type: Plain text
4849 #: build/C/man3/getipnodebyname.3:132
4850 msgid ""
4851 "This flag is used with B<AF_INET6> to request a query for IPv4 addresses "
4852 "instead of IPv6 addresses; the IPv4 addresses will be mapped to IPv6 "
4853 "addresses."
4854 msgstr ""
4855
4856 #. type: TP
4857 #: build/C/man3/getipnodebyname.3:132
4858 #, no-wrap
4859 msgid "B<AI_ALL>"
4860 msgstr ""
4861
4862 #. type: Plain text
4863 #: build/C/man3/getipnodebyname.3:138
4864 msgid ""
4865 "This flag is used with B<AI_V4MAPPED> to request a query for both IPv4 and "
4866 "IPv6 addresses.  Any IPv4 address found will be mapped to an IPv6 address."
4867 msgstr ""
4868
4869 #. type: TP
4870 #: build/C/man3/getipnodebyname.3:138
4871 #, no-wrap
4872 msgid "B<AI_ADDRCONFIG>"
4873 msgstr ""
4874
4875 #. type: Plain text
4876 #: build/C/man3/getipnodebyname.3:150
4877 msgid ""
4878 "This flag is used with B<AF_INET6> to further request that queries for IPv6 "
4879 "addresses should not be made unless the system has at least one IPv6 address "
4880 "assigned to a network interface, and that queries for IPv4 addresses should "
4881 "not be made unless the system has at least one IPv4 address assigned to a "
4882 "network interface.  This flag may be used by itself or with the "
4883 "B<AI_V4MAPPED> flag."
4884 msgstr ""
4885
4886 #. type: TP
4887 #: build/C/man3/getipnodebyname.3:150
4888 #, no-wrap
4889 msgid "B<AI_DEFAULT>"
4890 msgstr ""
4891
4892 #. type: Plain text
4893 #: build/C/man3/getipnodebyname.3:154
4894 msgid "This flag is equivalent to B<(AI_ADDRCONFIG | AI_V4MAPPED)>."
4895 msgstr ""
4896
4897 #. type: SS
4898 #: build/C/man3/getipnodebyname.3:154
4899 #, no-wrap
4900 msgid "getipnodebyaddr() arguments"
4901 msgstr ""
4902
4903 #. type: Plain text
4904 #: build/C/man3/getipnodebyname.3:166
4905 msgid ""
4906 "The B<getipnodebyaddr>()  function looks up the name of the host whose "
4907 "network address is specified by the I<addr> argument.  The I<af> argument "
4908 "specifies one of the following values:"
4909 msgstr ""
4910
4911 #. type: Plain text
4912 #: build/C/man3/getipnodebyname.3:176
4913 msgid ""
4914 "The I<addr> argument points to a I<struct in_addr> and I<len> must be set to "
4915 "I<sizeof(struct in_addr)>."
4916 msgstr ""
4917
4918 #. type: Plain text
4919 #: build/C/man3/getipnodebyname.3:186
4920 msgid ""
4921 "The I<addr> argument points to a I<struct in6_addr> and I<len> must be set "
4922 "to I<sizeof(struct in6_addr)>."
4923 msgstr ""
4924
4925 #. type: Plain text
4926 #: build/C/man3/getipnodebyname.3:190
4927 msgid ""
4928 "A NULL pointer is returned if an error occurred, and I<error_num> will "
4929 "contain an error code from the following list:"
4930 msgstr ""
4931
4932 #. type: Plain text
4933 #: build/C/man3/getipnodebyname.3:193
4934 msgid "The hostname or network address was not found."
4935 msgstr ""
4936
4937 #. type: TP
4938 #: build/C/man3/getipnodebyname.3:193
4939 #, no-wrap
4940 msgid "B<NO_ADDRESS>"
4941 msgstr ""
4942
4943 #. type: Plain text
4944 #: build/C/man3/getipnodebyname.3:199
4945 msgid ""
4946 "The domain name server recognized the network address or name, but no answer "
4947 "was returned.  This can happen if the network host has only IPv4 addresses "
4948 "and a request has been made for IPv6 information only, or vice versa."
4949 msgstr ""
4950
4951 #. type: Plain text
4952 #: build/C/man3/getipnodebyname.3:202
4953 msgid "The domain name server returned a permanent failure response."
4954 msgstr ""
4955
4956 #. type: Plain text
4957 #: build/C/man3/getipnodebyname.3:206
4958 msgid ""
4959 "The domain name server returned a temporary failure response.  You might "
4960 "have better luck next time."
4961 msgstr ""
4962
4963 #. type: Plain text
4964 #: build/C/man3/getipnodebyname.3:210
4965 msgid ""
4966 "A successful query returns a pointer to a I<hostent> structure that contains "
4967 "the following fields:"
4968 msgstr ""
4969
4970 #. type: Plain text
4971 #: build/C/man3/getipnodebyname.3:213
4972 msgid "This is the official name of this network host."
4973 msgstr ""
4974
4975 #. type: Plain text
4976 #: build/C/man3/getipnodebyname.3:217
4977 msgid ""
4978 "This is an array of pointers to unofficial aliases for the same host.  The "
4979 "array is terminated by a NULL pointer."
4980 msgstr ""
4981
4982 #. type: Plain text
4983 #: build/C/man3/getipnodebyname.3:239
4984 msgid ""
4985 "This is a copy of the I<af> argument to B<getipnodebyname>()  or "
4986 "B<getipnodebyaddr>().  I<h_addrtype> will always be B<AF_INET> if the I<af> "
4987 "argument was B<AF_INET>.  I<h_addrtype> will always be B<AF_INET6> if the "
4988 "I<af> argument was B<AF_INET6>."
4989 msgstr ""
4990
4991 #. type: Plain text
4992 #: build/C/man3/getipnodebyname.3:253
4993 msgid ""
4994 "This field will be set to I<sizeof(struct in_addr)> if I<h_addrtype> is "
4995 "B<AF_INET>, and to I<sizeof(struct in6_addr)> if I<h_addrtype> is "
4996 "B<AF_INET6>."
4997 msgstr ""
4998
4999 #. type: Plain text
5000 #: build/C/man3/getipnodebyname.3:258
5001 msgid ""
5002 "This is an array of one or more pointers to network address structures for "
5003 "the network host.  The array is terminated by a NULL pointer."
5004 msgstr ""
5005
5006 #.  Not in POSIX.1-2001.
5007 #. type: Plain text
5008 #: build/C/man3/getipnodebyname.3:261
5009 msgid "RFC\\ 2553."
5010 msgstr ""
5011
5012 #. type: Plain text
5013 #: build/C/man3/getipnodebyname.3:266
5014 msgid ""
5015 "These functions were present in glibc 2.1.91-95, but were removed again.  "
5016 "Several UNIX-like systems support them, but all call them deprecated."
5017 msgstr ""
5018
5019 #. type: Plain text
5020 #: build/C/man3/getipnodebyname.3:271
5021 msgid "B<getaddrinfo>(3), B<getnameinfo>(3), B<inet_ntop>(3), B<inet_pton>(3)"
5022 msgstr ""
5023
5024 #. type: TH
5025 #: build/C/man3/getnameinfo.3:10
5026 #, no-wrap
5027 msgid "GETNAMEINFO"
5028 msgstr ""
5029
5030 #. type: Plain text
5031 #: build/C/man3/getnameinfo.3:13
5032 msgid "getnameinfo - address-to-name translation in protocol-independent manner"
5033 msgstr ""
5034
5035 #. type: Plain text
5036 #: build/C/man3/getnameinfo.3:17
5037 #, no-wrap
5038 msgid ""
5039 "B<#include E<lt>sys/socket.hE<gt>>\n"
5040 "B<#include E<lt>netdb.hE<gt>>\n"
5041 msgstr ""
5042
5043 #. type: Plain text
5044 #: build/C/man3/getnameinfo.3:21
5045 #, no-wrap
5046 msgid ""
5047 "B<int getnameinfo(const struct sockaddr *>I<sa>B<, socklen_t >I<salen>B<,>\n"
5048 "B<                char *>I<host>B<, size_t >I<hostlen>B<,>\n"
5049 "B<                char *>I<serv>B<, size_t >I<servlen>B<, int "
5050 ">I<flags>B<);>\n"
5051 msgstr ""
5052
5053 #. type: Plain text
5054 #: build/C/man3/getnameinfo.3:31
5055 msgid ""
5056 "B<getnameinfo>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
5057 "_POSIX_SOURCE"
5058 msgstr ""
5059
5060 #. type: Plain text
5061 #: build/C/man3/getnameinfo.3:47
5062 msgid ""
5063 "The B<getnameinfo>()  function is the inverse of B<getaddrinfo>(3): it "
5064 "converts a socket address to a corresponding host and service, in a "
5065 "protocol-independent manner.  It combines the functionality of "
5066 "B<gethostbyaddr>(3)  and B<getservbyport>(3), but unlike those functions, "
5067 "B<getnameinfo>()  is reentrant and allows programs to eliminate "
5068 "IPv4-versus-IPv6 dependencies."
5069 msgstr ""
5070
5071 #. type: Plain text
5072 #: build/C/man3/getnameinfo.3:70
5073 msgid ""
5074 "The I<sa> argument is a pointer to a generic socket address structure (of "
5075 "type I<sockaddr_in> or I<sockaddr_in6>)  of size I<salen> that holds the "
5076 "input IP address and port number.  The arguments I<host> and I<serv> are "
5077 "pointers to caller-allocated buffers (of size I<hostlen> and I<servlen> "
5078 "respectively) into which B<getnameinfo>()  places null-terminated strings "
5079 "containing the host and service names respectively."
5080 msgstr ""
5081
5082 #. type: Plain text
5083 #: build/C/man3/getnameinfo.3:83
5084 msgid ""
5085 "The caller can specify that no hostname (or no service name)  is required by "
5086 "providing a NULL I<host> (or I<serv>)  argument or a zero I<hostlen> (or "
5087 "I<servlen>)  argument.  However, at least one of hostname or service name "
5088 "must be requested."
5089 msgstr ""
5090
5091 #. type: Plain text
5092 #: build/C/man3/getnameinfo.3:89
5093 msgid "The I<flags> argument modifies the behavior of B<getnameinfo>()  as follows:"
5094 msgstr ""
5095
5096 #. type: TP
5097 #: build/C/man3/getnameinfo.3:89
5098 #, no-wrap
5099 msgid "B<NI_NAMEREQD>"
5100 msgstr ""
5101
5102 #. type: Plain text
5103 #: build/C/man3/getnameinfo.3:92
5104 msgid "If set, then an error is returned if the hostname cannot be determined."
5105 msgstr ""
5106
5107 #. type: TP
5108 #: build/C/man3/getnameinfo.3:92
5109 #, no-wrap
5110 msgid "B<NI_DGRAM>"
5111 msgstr ""
5112
5113 #. type: Plain text
5114 #: build/C/man3/getnameinfo.3:98
5115 msgid ""
5116 "If set, then the service is datagram (UDP) based rather than stream (TCP) "
5117 "based.  This is required for the few ports (512-514)  that have different "
5118 "services for UDP and TCP."
5119 msgstr ""
5120
5121 #. type: TP
5122 #: build/C/man3/getnameinfo.3:98
5123 #, no-wrap
5124 msgid "B<NI_NOFQDN>"
5125 msgstr ""
5126
5127 #. type: Plain text
5128 #: build/C/man3/getnameinfo.3:102
5129 msgid ""
5130 "If set, return only the hostname part of the fully qualified domain name for "
5131 "local hosts."
5132 msgstr ""
5133
5134 #. type: TP
5135 #: build/C/man3/getnameinfo.3:102
5136 #, no-wrap
5137 msgid "B<NI_NUMERICHOST>"
5138 msgstr ""
5139
5140 #.  For example, by calling
5141 #.  .BR inet_ntop ()
5142 #.  instead of
5143 #.  .BR gethostbyaddr ().
5144 #.  POSIX.1-2003 has NI_NUMERICSCOPE, but glibc doesn't have it.
5145 #. type: Plain text
5146 #: build/C/man3/getnameinfo.3:112
5147 msgid ""
5148 "If set, then the numeric form of the hostname is returned.  (When not set, "
5149 "this will still happen in case the node's name cannot be determined.)"
5150 msgstr ""
5151
5152 #. type: TP
5153 #: build/C/man3/getnameinfo.3:112
5154 #, no-wrap
5155 msgid "B<NI_NUMERICSERV>"
5156 msgstr ""
5157
5158 #. type: Plain text
5159 #: build/C/man3/getnameinfo.3:117
5160 msgid ""
5161 "If set, then the numeric form of the service address is returned.  (When not "
5162 "set, this will still happen in case the service's name cannot be "
5163 "determined.)"
5164 msgstr ""
5165
5166 #. type: SS
5167 #: build/C/man3/getnameinfo.3:117
5168 #, no-wrap
5169 msgid "Extensions to getnameinfo() for Internationalized Domain Names"
5170 msgstr ""
5171
5172 #. type: Plain text
5173 #: build/C/man3/getnameinfo.3:126
5174 msgid ""
5175 "Starting with glibc 2.3.4, B<getnameinfo>()  has been extended to "
5176 "selectively allow hostnames to be transparently converted to and from the "
5177 "Internationalized Domain Name (IDN) format (see RFC 3490, "
5178 "I<Internationalizing Domain Names in Applications (IDNA)>).  Three new flags "
5179 "are defined:"
5180 msgstr ""
5181
5182 #. type: TP
5183 #: build/C/man3/getnameinfo.3:126
5184 #, no-wrap
5185 msgid "B<NI_IDN>"
5186 msgstr ""
5187
5188 #. type: Plain text
5189 #: build/C/man3/getnameinfo.3:132
5190 msgid ""
5191 "If this flag is used, then the name found in the lookup process is converted "
5192 "from IDN format to the locale's encoding if necessary.  ASCII-only names are "
5193 "not affected by the conversion, which makes this flag usable in existing "
5194 "programs and environments."
5195 msgstr ""
5196
5197 #. type: TP
5198 #: build/C/man3/getnameinfo.3:132
5199 #, no-wrap
5200 msgid "B<NI_IDN_ALLOW_UNASSIGNED>, B<NI_IDN_USE_STD3_ASCII_RULES>"
5201 msgstr ""
5202
5203 #.  FIXME glibc defines the following additional errors, some which
5204 #.  can probably be returned by getnameinfo(); they need to
5205 #.  be documented.
5206 #.  #ifdef __USE_GNU
5207 #.  #define EAI_INPROGRESS  -100  /* Processing request in progress.  */
5208 #.  #define EAI_CANCELED    -101  /* Request canceled.  */
5209 #.  #define EAI_NOTCANCELED -102  /* Request not canceled.  */
5210 #.  #define EAI_ALLDONE     -103  /* All requests done.  */
5211 #.  #define EAI_INTR        -104  /* Interrupted by a signal.  */
5212 #.  #define EAI_IDN_ENCODE  -105  /* IDN encoding failed.  */
5213 #.  #endif
5214 #. type: Plain text
5215 #: build/C/man3/getnameinfo.3:155
5216 msgid ""
5217 "On success 0 is returned, and node and service names, if requested, are "
5218 "filled with null-terminated strings, possibly truncated to fit the specified "
5219 "buffer lengths.  On error one of the following nonzero error codes is "
5220 "returned:"
5221 msgstr ""
5222
5223 #. type: Plain text
5224 #: build/C/man3/getnameinfo.3:159
5225 msgid "The name could not be resolved at this time.  Try again later."
5226 msgstr ""
5227
5228 #. type: Plain text
5229 #: build/C/man3/getnameinfo.3:164
5230 msgid "The I<flags> argument has an invalid value."
5231 msgstr ""
5232
5233 #. type: Plain text
5234 #: build/C/man3/getnameinfo.3:167
5235 msgid "A nonrecoverable error occurred."
5236 msgstr ""
5237
5238 #. type: Plain text
5239 #: build/C/man3/getnameinfo.3:171
5240 msgid ""
5241 "The address family was not recognized, or the address length was invalid for "
5242 "the specified family."
5243 msgstr ""
5244
5245 #. type: Plain text
5246 #: build/C/man3/getnameinfo.3:180
5247 msgid ""
5248 "The name does not resolve for the supplied arguments.  B<NI_NAMEREQD> is set "
5249 "and the host's name cannot be located, or neither hostname nor service name "
5250 "were requested."
5251 msgstr ""
5252
5253 #. type: TP
5254 #: build/C/man3/getnameinfo.3:180
5255 #, no-wrap
5256 msgid "B<EAI_OVERFLOW>"
5257 msgstr ""
5258
5259 #. type: Plain text
5260 #: build/C/man3/getnameinfo.3:187
5261 msgid "The buffer pointed to by I<host> or I<serv> was too small."
5262 msgstr ""
5263
5264 #. type: Plain text
5265 #: build/C/man3/getnameinfo.3:192
5266 msgid "A system error occurred.  The error code can be found in I<errno>."
5267 msgstr ""
5268
5269 #. type: Plain text
5270 #: build/C/man3/getnameinfo.3:199
5271 msgid "/etc/hosts"
5272 msgstr ""
5273
5274 #. type: Plain text
5275 #: build/C/man3/getnameinfo.3:201
5276 msgid "/etc/nsswitch.conf"
5277 msgstr ""
5278
5279 #. type: Plain text
5280 #: build/C/man3/getnameinfo.3:203
5281 msgid "/etc/resolv.conf"
5282 msgstr ""
5283
5284 #. type: Plain text
5285 #: build/C/man3/getnameinfo.3:206
5286 msgid "B<getnameinfo>()  is provided in glibc since version 2.1."
5287 msgstr ""
5288
5289 #. type: Plain text
5290 #: build/C/man3/getnameinfo.3:208
5291 msgid "RFC\\ 2553, POSIX.1-2001."
5292 msgstr ""
5293
5294 #. type: Plain text
5295 #: build/C/man3/getnameinfo.3:213
5296 msgid ""
5297 "In order to assist the programmer in choosing reasonable sizes for the "
5298 "supplied buffers, I<E<lt>netdb.hE<gt>> defines the constants"
5299 msgstr ""
5300
5301 #. type: Plain text
5302 #: build/C/man3/getnameinfo.3:218
5303 #, no-wrap
5304 msgid ""
5305 "#define NI_MAXHOST      1025\n"
5306 "#define NI_MAXSERV      32\n"
5307 msgstr ""
5308
5309 #. type: Plain text
5310 #: build/C/man3/getnameinfo.3:228
5311 msgid ""
5312 "Since glibc 2.8, these definitions are exposed only if one of the feature "
5313 "test macros B<_BSD_SOURCE>, B<_SVID_SOURCE>, or B<_GNU_SOURCE> is defined."
5314 msgstr ""
5315
5316 #. type: Plain text
5317 #: build/C/man3/getnameinfo.3:236
5318 msgid ""
5319 "The former is the constant B<MAXDNAME> in recent versions of BIND's "
5320 "I<E<lt>arpa/nameser.hE<gt>> header file.  The latter is a guess based on the "
5321 "services listed in the current Assigned Numbers RFC."
5322 msgstr ""
5323
5324 #. type: Plain text
5325 #: build/C/man3/getnameinfo.3:241
5326 msgid ""
5327 "The following code tries to get the numeric hostname and service name, for a "
5328 "given socket address.  Note that there is no hardcoded reference to a "
5329 "particular address family."
5330 msgstr ""
5331
5332 #. type: Plain text
5333 #: build/C/man3/getnameinfo.3:247
5334 #, no-wrap
5335 msgid ""
5336 "struct sockaddr *sa;    /* input */\n"
5337 "socklen_t len;         /* input */\n"
5338 "char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV];\n"
5339 msgstr ""
5340
5341 #. type: Plain text
5342 #: build/C/man3/getnameinfo.3:251
5343 #, no-wrap
5344 msgid ""
5345 "if (getnameinfo(sa, len, hbuf, sizeof(hbuf), sbuf,\n"
5346 "            sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV) == 0)\n"
5347 "    printf(\"host=%s, serv=%s\\en\", hbuf, sbuf);\n"
5348 msgstr ""
5349
5350 #. type: Plain text
5351 #: build/C/man3/getnameinfo.3:256
5352 msgid ""
5353 "The following version checks if the socket address has a reverse address "
5354 "mapping."
5355 msgstr ""
5356
5357 #. type: Plain text
5358 #: build/C/man3/getnameinfo.3:262
5359 #, no-wrap
5360 msgid ""
5361 "struct sockaddr *sa;    /* input */\n"
5362 "socklen_t len;         /* input */\n"
5363 "char hbuf[NI_MAXHOST];\n"
5364 msgstr ""
5365
5366 #. type: Plain text
5367 #: build/C/man3/getnameinfo.3:268
5368 #, no-wrap
5369 msgid ""
5370 "if (getnameinfo(sa, len, hbuf, sizeof(hbuf),\n"
5371 "            NULL, 0, NI_NAMEREQD))\n"
5372 "    printf(\"could not resolve hostname\");\n"
5373 "else\n"
5374 "    printf(\"host=%s\\en\", hbuf);\n"
5375 msgstr ""
5376
5377 #. type: Plain text
5378 #: build/C/man3/getnameinfo.3:275
5379 msgid ""
5380 "An example program using B<getnameinfo>()  can be found in "
5381 "B<getaddrinfo>(3)."
5382 msgstr ""
5383
5384 #. type: Plain text
5385 #: build/C/man3/getnameinfo.3:290
5386 msgid ""
5387 "B<accept>(2), B<getpeername>(2), B<getsockname>(2), B<recvfrom>(2), "
5388 "B<socket>(2), B<getaddrinfo>(3), B<gethostbyaddr>(3), B<getservbyname>(3), "
5389 "B<getservbyport>(3), B<inet_ntop>(3), B<hosts>(5), B<services>(5), "
5390 "B<hostname>(7), B<named>(8)"
5391 msgstr ""
5392
5393 #. type: Plain text
5394 #: build/C/man3/getnameinfo.3:294
5395 msgid ""
5396 "R. Gilligan, S. Thomson, J. Bound and W. Stevens, I<Basic Socket Interface "
5397 "Extensions for IPv6>, RFC\\ 2553, March 1999."
5398 msgstr ""
5399
5400 #. type: Plain text
5401 #: build/C/man3/getnameinfo.3:300
5402 msgid ""
5403 "Tatsuya Jinmei and Atsushi Onoe, I<An Extension of Format for IPv6 Scoped "
5404 "Addresses>, internet draft, work in progress E<.UR "
5405 "ftp://ftp.ietf.org\\:/internet-drafts\\:/draft-ietf-ipngwg-scopedaddr-format-02.txt> "
5406 "E<.UE .>"
5407 msgstr ""
5408
5409 #. type: Plain text
5410 #: build/C/man3/getnameinfo.3:305
5411 msgid ""
5412 "Craig Metz, I<Protocol Independence Using the Sockets API>, Proceedings of "
5413 "the freenix track: 2000 USENIX annual technical conference, June 2000"
5414 msgstr ""
5415
5416 #. type: Plain text
5417 #: build/C/man3/getnameinfo.3:308
5418 msgid ""
5419 "E<.UR "
5420 "http://www.usenix.org\\:/publications\\:/library\\:/proceedings\\:/usenix2000\\:/freenix\\:/metzprotocol.html> "
5421 "E<.UE .>"
5422 msgstr ""
5423
5424 #. type: TH
5425 #: build/C/man3/getnetent.3:30
5426 #, no-wrap
5427 msgid "GETNETENT"
5428 msgstr ""
5429
5430 #. type: TH
5431 #: build/C/man3/getnetent.3:30 build/C/man3/getprotoent.3:30 build/C/man3/getservent.3:34
5432 #, no-wrap
5433 msgid "2008-08-19"
5434 msgstr ""
5435
5436 #. type: Plain text
5437 #: build/C/man3/getnetent.3:34
5438 msgid ""
5439 "getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent - get network "
5440 "entry"
5441 msgstr ""
5442
5443 #. type: Plain text
5444 #: 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
5445 #, no-wrap
5446 msgid "B<#include E<lt>netdb.hE<gt>>\n"
5447 msgstr ""
5448
5449 #. type: Plain text
5450 #: build/C/man3/getnetent.3:39
5451 #, no-wrap
5452 msgid "B<struct netent *getnetent(void);>\n"
5453 msgstr ""
5454
5455 #. type: Plain text
5456 #: build/C/man3/getnetent.3:41
5457 #, no-wrap
5458 msgid "B<struct netent *getnetbyname(const char *>I<name>B<);>\n"
5459 msgstr ""
5460
5461 #. type: Plain text
5462 #: build/C/man3/getnetent.3:43
5463 #, no-wrap
5464 msgid "B<struct netent *getnetbyaddr(uint32_t >I<net>B<, int >I<type>B<);>\n"
5465 msgstr ""
5466
5467 #. type: Plain text
5468 #: build/C/man3/getnetent.3:45
5469 #, no-wrap
5470 msgid "B<void setnetent(int >I<stayopen>B<);>\n"
5471 msgstr ""
5472
5473 #. type: Plain text
5474 #: build/C/man3/getnetent.3:47
5475 #, no-wrap
5476 msgid "B<void endnetent(void);>\n"
5477 msgstr ""
5478
5479 #. type: Plain text
5480 #: build/C/man3/getnetent.3:57
5481 msgid ""
5482 "The B<getnetent>()  function reads the next entry from the networks database "
5483 "and returns a I<netent> structure containing the broken-out fields from the "
5484 "entry.  A connection is opened to the database if necessary."
5485 msgstr ""
5486
5487 #. type: Plain text
5488 #: build/C/man3/getnetent.3:66
5489 msgid ""
5490 "The B<getnetbyname>()  function returns a I<netent> structure for the entry "
5491 "from the database that matches the network I<name>."
5492 msgstr ""
5493
5494 #. type: Plain text
5495 #: build/C/man3/getnetent.3:80
5496 msgid ""
5497 "The B<getnetbyaddr>()  function returns a I<netent> structure for the entry "
5498 "from the database that matches the network number I<net> of type I<type>.  "
5499 "The I<net> argument must be in host byte order."
5500 msgstr ""
5501
5502 #. type: Plain text
5503 #: build/C/man3/getnetent.3:92
5504 msgid ""
5505 "The B<setnetent>()  function opens a connection to the database, and sets "
5506 "the next entry to the first entry.  If I<stayopen> is nonzero, then the "
5507 "connection to the database will not be closed between calls to one of the "
5508 "B<getnet*>()  functions."
5509 msgstr ""
5510
5511 #. type: Plain text
5512 #: build/C/man3/getnetent.3:96
5513 msgid "The B<endnetent>()  function closes the connection to the database."
5514 msgstr ""
5515
5516 #. type: Plain text
5517 #: build/C/man3/getnetent.3:102
5518 msgid "The I<netent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
5519 msgstr ""
5520
5521 #. type: Plain text
5522 #: build/C/man3/getnetent.3:111
5523 #, no-wrap
5524 msgid ""
5525 "struct netent {\n"
5526 "    char      *n_name;     /* official network name */\n"
5527 "    char     **n_aliases;  /* alias list */\n"
5528 "    int        n_addrtype; /* net address type */\n"
5529 "    uint32_t   n_net;      /* network number */\n"
5530 "}\n"
5531 msgstr ""
5532
5533 #. type: Plain text
5534 #: build/C/man3/getnetent.3:117
5535 msgid "The members of the I<netent> structure are:"
5536 msgstr ""
5537
5538 #. type: TP
5539 #: build/C/man3/getnetent.3:117
5540 #, no-wrap
5541 msgid "I<n_name>"
5542 msgstr ""
5543
5544 #. type: Plain text
5545 #: build/C/man3/getnetent.3:120
5546 msgid "The official name of the network."
5547 msgstr ""
5548
5549 #. type: TP
5550 #: build/C/man3/getnetent.3:120
5551 #, no-wrap
5552 msgid "I<n_aliases>"
5553 msgstr ""
5554
5555 #. type: Plain text
5556 #: build/C/man3/getnetent.3:123
5557 msgid "A NULL-terminated list of alternative names for the network."
5558 msgstr ""
5559
5560 #. type: TP
5561 #: build/C/man3/getnetent.3:123
5562 #, no-wrap
5563 msgid "I<n_addrtype>"
5564 msgstr ""
5565
5566 #. type: Plain text
5567 #: build/C/man3/getnetent.3:127
5568 msgid "The type of the network number; always B<AF_INET>."
5569 msgstr ""
5570
5571 #. type: TP
5572 #: build/C/man3/getnetent.3:127
5573 #, no-wrap
5574 msgid "I<n_net>"
5575 msgstr ""
5576
5577 #. type: Plain text
5578 #: build/C/man3/getnetent.3:130
5579 msgid "The network number in host byte order."
5580 msgstr ""
5581
5582 #. type: Plain text
5583 #: build/C/man3/getnetent.3:141
5584 msgid ""
5585 "The B<getnetent>(), B<getnetbyname>()  and B<getnetbyaddr>()  functions "
5586 "return a pointer to a statically allocated I<netent> structure, or a NULL "
5587 "pointer if an error occurs or the end of the file is reached."
5588 msgstr ""
5589
5590 #. type: TP
5591 #: build/C/man3/getnetent.3:142 build/C/man5/networks.5:71
5592 #, no-wrap
5593 msgid "I</etc/networks>"
5594 msgstr ""
5595
5596 #. type: Plain text
5597 #: build/C/man3/getnetent.3:145
5598 msgid "networks database file"
5599 msgstr ""
5600
5601 #. type: Plain text
5602 #: build/C/man3/getnetent.3:147 build/C/man3/getprotoent.3:142 build/C/man3/getservent.3:159
5603 msgid "4.3BSD, POSIX.1-2001."
5604 msgstr ""
5605
5606 #. type: Plain text
5607 #: build/C/man3/getnetent.3:154
5608 msgid ""
5609 "In glibc versions before 2.2, the I<net> argument of B<getnetbyaddr>()  was "
5610 "of type I<long>."
5611 msgstr ""
5612
5613 #.  .BR networks (5)
5614 #. type: Plain text
5615 #: build/C/man3/getnetent.3:159
5616 msgid "B<getnetent_r>(3), B<getprotoent>(3), B<getservent>(3)"
5617 msgstr ""
5618
5619 #. type: Plain text
5620 #: build/C/man3/getnetent.3:161
5621 msgid "RFC\\ 1101"
5622 msgstr ""
5623
5624 #. type: TH
5625 #: build/C/man3/getnetent_r.3:26
5626 #, no-wrap
5627 msgid "GETNETENT_R"
5628 msgstr ""
5629
5630 #. type: Plain text
5631 #: build/C/man3/getnetent_r.3:30
5632 msgid "getnetent_r, getnetbyname_r, getnetbyaddr_r - get network entry (reentrant)"
5633 msgstr ""
5634
5635 #. type: Plain text
5636 #: build/C/man3/getnetent_r.3:37
5637 #, no-wrap
5638 msgid ""
5639 "B<int getnetent_r(struct netent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5640 "B<                size_t >I<buflen>B<, struct netent **>I<result>B<,>\n"
5641 "B<                int *>I<h_errnop>B<);>\n"
5642 msgstr ""
5643
5644 #. type: Plain text
5645 #: build/C/man3/getnetent_r.3:42
5646 #, no-wrap
5647 msgid ""
5648 "B<int getnetbyname_r(const char *>I<name>B<,>\n"
5649 "B<                struct netent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5650 "B<                size_t >I<buflen>B<, struct netent **>I<result>B<,>\n"
5651 "B<                int *>I<h_errnop>B<);>\n"
5652 msgstr ""
5653
5654 #. type: Plain text
5655 #: build/C/man3/getnetent_r.3:47
5656 #, no-wrap
5657 msgid ""
5658 "B<int getnetbyaddr_r(uint32_t >I<net>B<, int >I<type>B<,>\n"
5659 "B<                struct netent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5660 "B<                size_t >I<buflen>B<, struct netent **>I<result>B<,>\n"
5661 "B<                int *>I<h_errnop>B<);>\n"
5662 msgstr ""
5663
5664 #. type: Plain text
5665 #: build/C/man3/getnetent_r.3:58
5666 msgid "B<getnetent_r>(), B<getnetbyname_r>(), B<getnetbyaddr_r>():"
5667 msgstr ""
5668
5669 #. type: Plain text
5670 #: build/C/man3/getnetent_r.3:79
5671 msgid ""
5672 "The B<getnetent_r>(), B<getnetbyname_r>(), and B<getnetbyaddr_r>()  "
5673 "functions are the reentrant equivalents of, respectively, B<getnetent>(3), "
5674 "B<getnetbyname>(3), and B<getnetbynumber>(3).  They differ in the way that "
5675 "the I<netent> structure is returned, and in the function calling signature "
5676 "and return value.  This manual page describes just the differences from the "
5677 "nonreentrant functions."
5678 msgstr ""
5679
5680 #. type: Plain text
5681 #: build/C/man3/getnetent_r.3:85
5682 msgid ""
5683 "Instead of returning a pointer to a statically allocated I<netent> structure "
5684 "as the function result, these functions copy the structure into the location "
5685 "pointed to by I<result_buf>."
5686 msgstr ""
5687
5688 #.  I can find no information on the required/recommended buffer size;
5689 #.  the nonreentrant functions use a 1024 byte buffer -- mtk.
5690 #. type: Plain text
5691 #: build/C/man3/getnetent_r.3:102
5692 msgid ""
5693 "The I<buf> array is used to store the string fields pointed to by the "
5694 "returned I<netent> structure.  (The nonreentrant functions allocate these "
5695 "strings in static storage.)  The size of this array is specified in "
5696 "I<buflen>.  If I<buf> is too small, the call fails with the error B<ERANGE>, "
5697 "and the caller must try again with a larger buffer.  (A buffer of length "
5698 "1024 bytes should be sufficient for most applications.)"
5699 msgstr ""
5700
5701 #. type: Plain text
5702 #: build/C/man3/getnetent_r.3:110
5703 msgid ""
5704 "If the function call successfully obtains a network record, then I<*result> "
5705 "is set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
5706 msgstr ""
5707
5708 #.  getnetent.3 doesn't document any use of h_errno, but nevertheless
5709 #.  the nonreentrant functions no seem to set h_errno.
5710 #. type: Plain text
5711 #: build/C/man3/getnetent_r.3:118
5712 msgid ""
5713 "The buffer pointed to by I<h_errnop> is used to return the value that would "
5714 "be stored in the global variable I<h_errno> by the nonreentrant versions of "
5715 "these functions."
5716 msgstr ""
5717
5718 #. type: Plain text
5719 #: build/C/man3/getnetent_r.3:121 build/C/man3/getprotoent_r.3:111
5720 msgid ""
5721 "On success, these functions return 0.  On error, they return one of the "
5722 "positive error numbers listed in ERRORS."
5723 msgstr ""
5724
5725 #. type: Plain text
5726 #: build/C/man3/getnetent_r.3:129
5727 msgid ""
5728 "On error, record not found (B<getnetbyname_r>(), B<getnetbyaddr_r>()), or "
5729 "end of input (B<getnetent_r>())  I<result> is set to NULL."
5730 msgstr ""
5731
5732 #. type: Plain text
5733 #: build/C/man3/getnetent_r.3:134
5734 msgid "(B<getnetent_r>())  No more records in database."
5735 msgstr ""
5736
5737 #. type: TP
5738 #: build/C/man3/getnetent_r.3:134 build/C/man3/getprotoent_r.3:124 build/C/man3/getservent_r.3:123
5739 #, no-wrap
5740 msgid "B<ERANGE>"
5741 msgstr ""
5742
5743 #. type: Plain text
5744 #: build/C/man3/getnetent_r.3:141 build/C/man3/getprotoent_r.3:131 build/C/man3/getservent_r.3:130
5745 msgid ""
5746 "I<buf> is too small.  Try again with a larger buffer (and increased "
5747 "I<buflen>)."
5748 msgstr ""
5749
5750 #. type: Plain text
5751 #: build/C/man3/getnetent_r.3:145 build/C/man3/getprotoent_r.3:135 build/C/man3/getservent_r.3:134
5752 msgid ""
5753 "These functions are GNU extensions.  Functions with similar names exist on "
5754 "some other systems, though typically with different calling signatures."
5755 msgstr ""
5756
5757 #. type: Plain text
5758 #: build/C/man3/getnetent_r.3:148
5759 msgid "B<getnetent>(3), B<networks>(5)"
5760 msgstr ""
5761
5762 #. type: TH
5763 #: build/C/man2/getpeername.2:42
5764 #, no-wrap
5765 msgid "GETPEERNAME"
5766 msgstr ""
5767
5768 #. type: TH
5769 #: build/C/man2/getpeername.2:42 build/C/man5/nscd.conf.5:20 build/C/man5/nsswitch.conf.5:25
5770 #, no-wrap
5771 msgid "2013-02-12"
5772 msgstr ""
5773
5774 #. type: Plain text
5775 #: build/C/man2/getpeername.2:45
5776 msgid "getpeername - get name of connected peer socket"
5777 msgstr ""
5778
5779 #. type: Plain text
5780 #: build/C/man2/getpeername.2:50
5781 msgid ""
5782 "B<int getpeername(int >I<sockfd>B<, struct sockaddr *>I<addr>B<, socklen_t "
5783 "*>I<addrlen>B<);>"
5784 msgstr ""
5785
5786 #. type: Plain text
5787 #: build/C/man2/getpeername.2:63
5788 msgid ""
5789 "B<getpeername>()  returns the address of the peer connected to the socket "
5790 "I<sockfd>, in the buffer pointed to by I<addr>.  The I<addrlen> argument "
5791 "should be initialized to indicate the amount of space pointed to by "
5792 "I<addr>.  On return it contains the actual size of the name returned (in "
5793 "bytes).  The name is truncated if the buffer provided is too small."
5794 msgstr ""
5795
5796 #. type: Plain text
5797 #: build/C/man2/getpeername.2:68
5798 msgid ""
5799 "The returned address is truncated if the buffer provided is too small; in "
5800 "this case, I<addrlen> will return a value greater than was supplied to the "
5801 "call."
5802 msgstr ""
5803
5804 #. type: Plain text
5805 #: build/C/man2/getpeername.2:73 build/C/man2/shutdown.2:74
5806 msgid ""
5807 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
5808 "appropriately."
5809 msgstr ""
5810
5811 #. type: TP
5812 #: build/C/man2/getpeername.2:74 build/C/man2/shutdown.2:75
5813 #, no-wrap
5814 msgid "B<EBADF>"
5815 msgstr ""
5816
5817 #. type: Plain text
5818 #: build/C/man2/getpeername.2:79
5819 msgid "The argument I<sockfd> is not a valid descriptor."
5820 msgstr ""
5821
5822 #. type: TP
5823 #: build/C/man2/getpeername.2:79 build/C/man7/packet.7:250 build/C/man7/raw.7:149 build/C/man7/unix.7:334
5824 #, no-wrap
5825 msgid "B<EFAULT>"
5826 msgstr ""
5827
5828 #. type: Plain text
5829 #: build/C/man2/getpeername.2:85
5830 msgid ""
5831 "The I<addr> argument points to memory not in a valid part of the process "
5832 "address space."
5833 msgstr ""
5834
5835 #. type: Plain text
5836 #: build/C/man2/getpeername.2:89
5837 msgid "I<addrlen> is invalid (e.g., is negative)."
5838 msgstr ""
5839
5840 #. type: TP
5841 #: build/C/man2/getpeername.2:89 build/C/man7/packet.7:262
5842 #, no-wrap
5843 msgid "B<ENOBUFS>"
5844 msgstr ""
5845
5846 #. type: Plain text
5847 #: build/C/man2/getpeername.2:93
5848 msgid ""
5849 "Insufficient resources were available in the system to perform the "
5850 "operation."
5851 msgstr ""
5852
5853 #. type: Plain text
5854 #: build/C/man2/getpeername.2:96
5855 msgid "The socket is not connected."
5856 msgstr ""
5857
5858 #. type: TP
5859 #: build/C/man2/getpeername.2:96 build/C/man2/shutdown.2:87
5860 #, no-wrap
5861 msgid "B<ENOTSOCK>"
5862 msgstr ""
5863
5864 #. type: Plain text
5865 #: build/C/man2/getpeername.2:101
5866 msgid "The argument I<sockfd> is a file, not a socket."
5867 msgstr ""
5868
5869 #. type: Plain text
5870 #: build/C/man2/getpeername.2:105
5871 msgid ""
5872 "SVr4, 4.4BSD (the B<getpeername>()  function call first appeared in 4.2BSD), "
5873 "POSIX.1-2001."
5874 msgstr ""
5875
5876 #. type: Plain text
5877 #: build/C/man2/getpeername.2:116
5878 msgid ""
5879 "The third argument of B<getpeername>()  is in reality an I<int\\ *> (and "
5880 "this is what 4.x BSD and libc4 and libc5 have).  Some POSIX confusion "
5881 "resulted in the present I<socklen_t>, also used by glibc.  See also "
5882 "B<accept>(2)."
5883 msgstr ""
5884
5885 #. type: Plain text
5886 #: build/C/man2/getpeername.2:143
5887 msgid ""
5888 "For stream sockets, once a B<connect>(2)  has been performed, either socket "
5889 "can call B<getpeername>()  to obtain the address of the peer socket.  On the "
5890 "other hand, datagram sockets are connectionless.  Calling B<connect>(2)  on "
5891 "a datagram socket merely sets the peer address for outgoing datagrams sent "
5892 "with B<write>(2)  or B<recv>(2).  The caller of B<connect>(2)  can use "
5893 "B<getpeername>()  to obtain the peer address that it earlier set for the "
5894 "socket.  However, the peer socket is unaware of this information, and "
5895 "calling B<getpeername>()  on the peer socket will return no useful "
5896 "information (unless a B<connect>(2)  call was also executed on the peer).  "
5897 "Note also that the receiver of a datagram can obtain the address of the "
5898 "sender when using B<recvfrom>(2)."
5899 msgstr ""
5900
5901 #. type: Plain text
5902 #: build/C/man2/getpeername.2:150
5903 msgid ""
5904 "B<accept>(2), B<bind>(2), B<getsockname>(2), B<ip>(7), B<socket>(7), "
5905 "B<unix>(7)"
5906 msgstr ""
5907
5908 #. type: TH
5909 #: build/C/man3/getprotoent.3:30
5910 #, no-wrap
5911 msgid "GETPROTOENT"
5912 msgstr ""
5913
5914 #. type: Plain text
5915 #: build/C/man3/getprotoent.3:34
5916 msgid ""
5917 "getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent - "
5918 "get protocol entry"
5919 msgstr ""
5920
5921 #. type: Plain text
5922 #: build/C/man3/getprotoent.3:39
5923 #, no-wrap
5924 msgid "B<struct protoent *getprotoent(void);>\n"
5925 msgstr ""
5926
5927 #. type: Plain text
5928 #: build/C/man3/getprotoent.3:41
5929 #, no-wrap
5930 msgid "B<struct protoent *getprotobyname(const char *>I<name>B<);>\n"
5931 msgstr ""
5932
5933 #. type: Plain text
5934 #: build/C/man3/getprotoent.3:43
5935 #, no-wrap
5936 msgid "B<struct protoent *getprotobynumber(int >I<proto>B<);>\n"
5937 msgstr ""
5938
5939 #. type: Plain text
5940 #: build/C/man3/getprotoent.3:45
5941 #, no-wrap
5942 msgid "B<void setprotoent(int >I<stayopen>B<);>\n"
5943 msgstr ""
5944
5945 #. type: Plain text
5946 #: build/C/man3/getprotoent.3:47
5947 #, no-wrap
5948 msgid "B<void endprotoent(void);>\n"
5949 msgstr ""
5950
5951 #. type: Plain text
5952 #: build/C/man3/getprotoent.3:58
5953 msgid ""
5954 "The B<getprotoent>()  function reads the next entry from the protocols "
5955 "database (see B<protocols>(5))  and returns a I<protoent> structure "
5956 "containing the broken-out fields from the entry.  A connection is opened to "
5957 "the database if necessary."
5958 msgstr ""
5959
5960 #. type: Plain text
5961 #: build/C/man3/getprotoent.3:68
5962 msgid ""
5963 "The B<getprotobyname>()  function returns a I<protoent> structure for the "
5964 "entry from the database that matches the protocol name I<name>.  A "
5965 "connection is opened to the database if necessary."
5966 msgstr ""
5967
5968 #. type: Plain text
5969 #: build/C/man3/getprotoent.3:78
5970 msgid ""
5971 "The B<getprotobynumber>()  function returns a I<protoent> structure for the "
5972 "entry from the database that matches the protocol number I<number>.  A "
5973 "connection is opened to the database if necessary."
5974 msgstr ""
5975
5976 #. type: Plain text
5977 #: build/C/man3/getprotoent.3:90
5978 msgid ""
5979 "The B<setprotoent>()  function opens a connection to the database, and sets "
5980 "the next entry to the first entry.  If I<stayopen> is nonzero, then the "
5981 "connection to the database will not be closed between calls to one of the "
5982 "B<getproto*>()  functions."
5983 msgstr ""
5984
5985 #. type: Plain text
5986 #: build/C/man3/getprotoent.3:94
5987 msgid "The B<endprotoent>()  function closes the connection to the database."
5988 msgstr ""
5989
5990 #. type: Plain text
5991 #: build/C/man3/getprotoent.3:100
5992 msgid "The I<protoent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
5993 msgstr ""
5994
5995 #. type: Plain text
5996 #: build/C/man3/getprotoent.3:108
5997 #, no-wrap
5998 msgid ""
5999 "struct protoent {\n"
6000 "    char  *p_name;       /* official protocol name */\n"
6001 "    char **p_aliases;    /* alias list */\n"
6002 "    int    p_proto;      /* protocol number */\n"
6003 "}\n"
6004 msgstr ""
6005
6006 #. type: Plain text
6007 #: build/C/man3/getprotoent.3:114
6008 msgid "The members of the I<protoent> structure are:"
6009 msgstr ""
6010
6011 #. type: TP
6012 #: build/C/man3/getprotoent.3:114
6013 #, no-wrap
6014 msgid "I<p_name>"
6015 msgstr ""
6016
6017 #. type: Plain text
6018 #: build/C/man3/getprotoent.3:117
6019 msgid "The official name of the protocol."
6020 msgstr ""
6021
6022 #. type: TP
6023 #: build/C/man3/getprotoent.3:117
6024 #, no-wrap
6025 msgid "I<p_aliases>"
6026 msgstr ""
6027
6028 #. type: Plain text
6029 #: build/C/man3/getprotoent.3:120
6030 msgid "A NULL-terminated list of alternative names for the protocol."
6031 msgstr ""
6032
6033 #. type: TP
6034 #: build/C/man3/getprotoent.3:120
6035 #, no-wrap
6036 msgid "I<p_proto>"
6037 msgstr ""
6038
6039 #. type: Plain text
6040 #: build/C/man3/getprotoent.3:123
6041 msgid "The protocol number."
6042 msgstr ""
6043
6044 #. type: Plain text
6045 #: build/C/man3/getprotoent.3:134
6046 msgid ""
6047 "The B<getprotoent>(), B<getprotobyname>()  and B<getprotobynumber>()  "
6048 "functions return a pointer to a statically allocated I<protoent> structure, "
6049 "or a NULL pointer if an error occurs or the end of the file is reached."
6050 msgstr ""
6051
6052 #. type: TP
6053 #: build/C/man3/getprotoent.3:136 build/C/man5/protocols.5:78
6054 #, no-wrap
6055 msgid "I</etc/protocols>"
6056 msgstr ""
6057
6058 #. type: Plain text
6059 #: build/C/man3/getprotoent.3:139
6060 msgid "protocol database file"
6061 msgstr ""
6062
6063 #. type: Plain text
6064 #: build/C/man3/getprotoent.3:147
6065 msgid "B<getnetent>(3), B<getprotoent_r>(3), B<getservent>(3), B<protocols>(5)"
6066 msgstr ""
6067
6068 #. type: TH
6069 #: build/C/man3/getprotoent_r.3:26
6070 #, no-wrap
6071 msgid "GETPROTOENT_R"
6072 msgstr ""
6073
6074 #. type: Plain text
6075 #: build/C/man3/getprotoent_r.3:30
6076 msgid ""
6077 "getprotoent_r, getprotobyname_r, getprotobynumber_r - get protocol entry "
6078 "(reentrant)"
6079 msgstr ""
6080
6081 #. type: Plain text
6082 #: build/C/man3/getprotoent_r.3:36
6083 #, no-wrap
6084 msgid ""
6085 "B<int getprotoent_r(struct protoent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6086 "B<                size_t >I<buflen>B<, struct protoent **>I<result>B<);>\n"
6087 msgstr ""
6088
6089 #. type: Plain text
6090 #: build/C/man3/getprotoent_r.3:40
6091 #, no-wrap
6092 msgid ""
6093 "B<int getprotobyname_r(const char *>I<name>B<,>\n"
6094 "B<                struct protoent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6095 "B<                size_t >I<buflen>B<, struct protoent **>I<result>B<);>\n"
6096 msgstr ""
6097
6098 #. type: Plain text
6099 #: build/C/man3/getprotoent_r.3:44
6100 #, no-wrap
6101 msgid ""
6102 "B<int getprotobynumber_r(int >I<proto>B<,>\n"
6103 "B<                struct protoent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6104 "B<                size_t >I<buflen>B<, struct protoent **>I<result>B<);>\n"
6105 msgstr ""
6106
6107 #. type: Plain text
6108 #: build/C/man3/getprotoent_r.3:55
6109 msgid "B<getprotoent_r>(), B<getprotobyname_r>(), B<getprotobynumber_r>():"
6110 msgstr ""
6111
6112 #. type: Plain text
6113 #: build/C/man3/getprotoent_r.3:76
6114 msgid ""
6115 "The B<getprotoent_r>(), B<getprotobyname_r>(), and B<getprotobynumber_r>()  "
6116 "functions are the reentrant equivalents of, respectively, B<getprotoent>(3), "
6117 "B<getprotobyname>(3), and B<getprotobynumber>(3).  They differ in the way "
6118 "that the I<protoent> structure is returned, and in the function calling "
6119 "signature and return value.  This manual page describes just the differences "
6120 "from the nonreentrant functions."
6121 msgstr ""
6122
6123 #. type: Plain text
6124 #: build/C/man3/getprotoent_r.3:82
6125 msgid ""
6126 "Instead of returning a pointer to a statically allocated I<protoent> "
6127 "structure as the function result, these functions copy the structure into "
6128 "the location pointed to by I<result_buf>."
6129 msgstr ""
6130
6131 #.  I can find no information on the required/recommended buffer size;
6132 #.  the nonreentrant functions use a 1024 byte buffer.
6133 #.  The 1024 byte value is also what the Solaris man page suggests. -- mtk
6134 #. type: Plain text
6135 #: build/C/man3/getprotoent_r.3:100
6136 msgid ""
6137 "The I<buf> array is used to store the string fields pointed to by the "
6138 "returned I<protoent> structure.  (The nonreentrant functions allocate these "
6139 "strings in static storage.)  The size of this array is specified in "
6140 "I<buflen>.  If I<buf> is too small, the call fails with the error B<ERANGE>, "
6141 "and the caller must try again with a larger buffer.  (A buffer of length "
6142 "1024 bytes should be sufficient for most applications.)"
6143 msgstr ""
6144
6145 #. type: Plain text
6146 #: build/C/man3/getprotoent_r.3:108
6147 msgid ""
6148 "If the function call successfully obtains a protocol record, then I<*result> "
6149 "is set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
6150 msgstr ""
6151
6152 #. type: Plain text
6153 #: build/C/man3/getprotoent_r.3:119
6154 msgid ""
6155 "On error, record not found (B<getprotobyname_r>(), B<getprotobynumber_r>()), "
6156 "or end of input (B<getprotoent_r>())  I<result> is set to NULL."
6157 msgstr ""
6158
6159 #. type: Plain text
6160 #: build/C/man3/getprotoent_r.3:124
6161 msgid "(B<getprotoent_r>())  No more records in database."
6162 msgstr ""
6163
6164 #. type: Plain text
6165 #: build/C/man3/getprotoent_r.3:149
6166 msgid ""
6167 "The program below uses B<getprotobyname_r>()  to retrieve the protocol "
6168 "record for the protocol named in its first command-line argument.  If a "
6169 "second (integer) command-line argument is supplied, it is used as the "
6170 "initial value for I<buflen>; if B<getprotobyname_r>()  fails with the error "
6171 "B<ERANGE>, the program retries with larger buffer sizes.  The following "
6172 "shell session shows a couple of sample runs:"
6173 msgstr ""
6174
6175 #. type: Plain text
6176 #: build/C/man3/getprotoent_r.3:160
6177 #, no-wrap
6178 msgid ""
6179 "$B< ./a.out tcp 1>\n"
6180 "ERANGE! Retrying with larger buffer\n"
6181 "getprotobyname_r() returned: 0 (success)  (buflen=78)\n"
6182 "p_name=tcp; p_proto=6; aliases=TCP\n"
6183 "$B< ./a.out xxx 1>\n"
6184 "ERANGE! Retrying with larger buffer\n"
6185 "getprotobyname_r() returned: 0 (success)  (buflen=100)\n"
6186 "Call failed/record not found\n"
6187 msgstr ""
6188
6189 #. type: Plain text
6190 #: build/C/man3/getprotoent_r.3:172 build/C/man3/getservent_r.3:170
6191 #, no-wrap
6192 msgid ""
6193 "#define _GNU_SOURCE\n"
6194 "#include E<lt>ctype.hE<gt>\n"
6195 "#include E<lt>netdb.hE<gt>\n"
6196 "#include E<lt>stdlib.hE<gt>\n"
6197 "#include E<lt>stdio.hE<gt>\n"
6198 "#include E<lt>errno.hE<gt>\n"
6199 "#include E<lt>string.hE<gt>\n"
6200 msgstr ""
6201
6202 #. type: Plain text
6203 #: build/C/man3/getprotoent_r.3:174 build/C/man3/getservent_r.3:172
6204 #, no-wrap
6205 msgid "#define MAX_BUF 10000\n"
6206 msgstr ""
6207
6208 #. type: Plain text
6209 #: build/C/man3/getprotoent_r.3:183
6210 #, no-wrap
6211 msgid ""
6212 "int\n"
6213 "main(int argc, char *argv[])\n"
6214 "{\n"
6215 "    int buflen, erange_cnt, s;\n"
6216 "    struct protoent result_buf;\n"
6217 "    struct protoent *result;\n"
6218 "    char buf[MAX_BUF];\n"
6219 "    char **p;\n"
6220 msgstr ""
6221
6222 #. type: Plain text
6223 #: build/C/man3/getprotoent_r.3:188
6224 #, no-wrap
6225 msgid ""
6226 "    if (argc E<lt> 2) {\n"
6227 "        printf(\"Usage: %s proto-name [buflen]\\en\", argv[0]);\n"
6228 "        exit(EXIT_FAILURE);\n"
6229 "    }\n"
6230 msgstr ""
6231
6232 #. type: Plain text
6233 #: build/C/man3/getprotoent_r.3:192
6234 #, no-wrap
6235 msgid ""
6236 "    buflen = 1024;\n"
6237 "    if (argc E<gt> 2)\n"
6238 "        buflen = atoi(argv[2]);\n"
6239 msgstr ""
6240
6241 #. type: Plain text
6242 #: build/C/man3/getprotoent_r.3:197 build/C/man3/getservent_r.3:200
6243 #, no-wrap
6244 msgid ""
6245 "    if (buflen E<gt> MAX_BUF) {\n"
6246 "        printf(\"Exceeded buffer limit (%d)\\en\", MAX_BUF);\n"
6247 "        exit(EXIT_FAILURE);\n"
6248 "    }\n"
6249 msgstr ""
6250
6251 #. type: Plain text
6252 #: build/C/man3/getprotoent_r.3:206
6253 #, no-wrap
6254 msgid ""
6255 "    erange_cnt = 0;\n"
6256 "    do {\n"
6257 "        s = getprotobyname_r(argv[1], &result_buf,\n"
6258 "                     buf, buflen, &result);\n"
6259 "        if (s == ERANGE) {\n"
6260 "            if (erange_cnt == 0)\n"
6261 "                printf(\"ERANGE! Retrying with larger buffer\\en\");\n"
6262 "            erange_cnt++;\n"
6263 msgstr ""
6264
6265 #. type: Plain text
6266 #: build/C/man3/getprotoent_r.3:209 build/C/man3/getservent_r.3:212
6267 #, no-wrap
6268 msgid ""
6269 "            /* Increment a byte at a time so we can see exactly\n"
6270 "               what size buffer was required */\n"
6271 msgstr ""
6272
6273 #. type: Plain text
6274 #: build/C/man3/getprotoent_r.3:211 build/C/man3/getservent_r.3:214
6275 #, no-wrap
6276 msgid "            buflen++;\n"
6277 msgstr ""
6278
6279 #. type: Plain text
6280 #: build/C/man3/getprotoent_r.3:218 build/C/man3/getservent_r.3:221
6281 #, no-wrap
6282 msgid ""
6283 "            if (buflen E<gt> MAX_BUF) {\n"
6284 "                printf(\"Exceeded buffer limit (%d)\\en\", MAX_BUF);\n"
6285 "                exit(EXIT_FAILURE);\n"
6286 "            }\n"
6287 "        }\n"
6288 "    } while (s == ERANGE);\n"
6289 msgstr ""
6290
6291 #. type: Plain text
6292 #: build/C/man3/getprotoent_r.3:222
6293 #, no-wrap
6294 msgid ""
6295 "    printf(\"getprotobyname_r() returned: %s  (buflen=%d)\\en\",\n"
6296 "            (s == 0) ? \"0 (success)\" : (s == ENOENT) ? \"ENOENT\" :\n"
6297 "            strerror(s), buflen);\n"
6298 msgstr ""
6299
6300 #. type: Plain text
6301 #: build/C/man3/getprotoent_r.3:227 build/C/man3/getservent_r.3:230
6302 #, no-wrap
6303 msgid ""
6304 "    if (s != 0 || result == NULL) {\n"
6305 "        printf(\"Call failed/record not found\\en\");\n"
6306 "        exit(EXIT_FAILURE);\n"
6307 "    }\n"
6308 msgstr ""
6309
6310 #. type: Plain text
6311 #: build/C/man3/getprotoent_r.3:233
6312 #, no-wrap
6313 msgid ""
6314 "    printf(\"p_name=%s; p_proto=%d; aliases=\",\n"
6315 "                result_buf.p_name, result_buf.p_proto);\n"
6316 "    for (p = result_buf.p_aliases; *p != NULL; p++)\n"
6317 "        printf(\"%s \", *p);\n"
6318 "    printf(\"\\en\");\n"
6319 msgstr ""
6320
6321 #. type: Plain text
6322 #: build/C/man3/getprotoent_r.3:240
6323 msgid "B<getprotoent>(3), B<protocols>(5)"
6324 msgstr ""
6325
6326 #. type: TH
6327 #: build/C/man3/getservent.3:34
6328 #, no-wrap
6329 msgid "GETSERVENT"
6330 msgstr ""
6331
6332 #. type: Plain text
6333 #: build/C/man3/getservent.3:38
6334 msgid ""
6335 "getservent, getservbyname, getservbyport, setservent, endservent - get "
6336 "service entry"
6337 msgstr ""
6338
6339 #. type: Plain text
6340 #: build/C/man3/getservent.3:43
6341 #, no-wrap
6342 msgid "B<struct servent *getservent(void);>\n"
6343 msgstr ""
6344
6345 #. type: Plain text
6346 #: build/C/man3/getservent.3:45
6347 #, no-wrap
6348 msgid ""
6349 "B<struct servent *getservbyname(const char *>I<name>B<, const char "
6350 "*>I<proto>B<);>\n"
6351 msgstr ""
6352
6353 #. type: Plain text
6354 #: build/C/man3/getservent.3:47
6355 #, no-wrap
6356 msgid "B<struct servent *getservbyport(int >I<port>B<, const char *>I<proto>B<);>\n"
6357 msgstr ""
6358
6359 #. type: Plain text
6360 #: build/C/man3/getservent.3:49
6361 #, no-wrap
6362 msgid "B<void setservent(int >I<stayopen>B<);>\n"
6363 msgstr ""
6364
6365 #. type: Plain text
6366 #: build/C/man3/getservent.3:51
6367 #, no-wrap
6368 msgid "B<void endservent(void);>\n"
6369 msgstr ""
6370
6371 #. type: Plain text
6372 #: build/C/man3/getservent.3:62
6373 msgid ""
6374 "The B<getservent>()  function reads the next entry from the services "
6375 "database (see B<services>(5))  and returns a I<servent> structure containing "
6376 "the broken-out fields from the entry.  A connection is opened to the "
6377 "database if necessary."
6378 msgstr ""
6379
6380 #. type: Plain text
6381 #: build/C/man3/getservent.3:77
6382 msgid ""
6383 "The B<getservbyname>()  function returns a I<servent> structure for the "
6384 "entry from the database that matches the service I<name> using protocol "
6385 "I<proto>.  If I<proto> is NULL, any protocol will be matched.  A connection "
6386 "is opened to the database if necessary."
6387 msgstr ""
6388
6389 #. type: Plain text
6390 #: build/C/man3/getservent.3:93
6391 msgid ""
6392 "The B<getservbyport>()  function returns a I<servent> structure for the "
6393 "entry from the database that matches the port I<port> (given in network byte "
6394 "order)  using protocol I<proto>.  If I<proto> is NULL, any protocol will be "
6395 "matched.  A connection is opened to the database if necessary."
6396 msgstr ""
6397
6398 #. type: Plain text
6399 #: build/C/man3/getservent.3:105
6400 msgid ""
6401 "The B<setservent>()  function opens a connection to the database, and sets "
6402 "the next entry to the first entry.  If I<stayopen> is nonzero, then the "
6403 "connection to the database will not be closed between calls to one of the "
6404 "B<getserv*>()  functions."
6405 msgstr ""
6406
6407 #. type: Plain text
6408 #: build/C/man3/getservent.3:109
6409 msgid "The B<endservent>()  function closes the connection to the database."
6410 msgstr ""
6411
6412 #. type: Plain text
6413 #: build/C/man3/getservent.3:115
6414 msgid "The I<servent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
6415 msgstr ""
6416
6417 #. type: Plain text
6418 #: build/C/man3/getservent.3:124
6419 #, no-wrap
6420 msgid ""
6421 "struct servent {\n"
6422 "    char  *s_name;       /* official service name */\n"
6423 "    char **s_aliases;    /* alias list */\n"
6424 "    int    s_port;       /* port number */\n"
6425 "    char  *s_proto;      /* protocol to use */\n"
6426 "}\n"
6427 msgstr ""
6428
6429 #. type: Plain text
6430 #: build/C/man3/getservent.3:130
6431 msgid "The members of the I<servent> structure are:"
6432 msgstr ""
6433
6434 #. type: TP
6435 #: build/C/man3/getservent.3:130
6436 #, no-wrap
6437 msgid "I<s_name>"
6438 msgstr ""
6439
6440 #. type: Plain text
6441 #: build/C/man3/getservent.3:133
6442 msgid "The official name of the service."
6443 msgstr ""
6444
6445 #. type: TP
6446 #: build/C/man3/getservent.3:133
6447 #, no-wrap
6448 msgid "I<s_aliases>"
6449 msgstr ""
6450
6451 #. type: Plain text
6452 #: build/C/man3/getservent.3:136
6453 msgid "A NULL-terminated list of alternative names for the service."
6454 msgstr ""
6455
6456 #. type: TP
6457 #: build/C/man3/getservent.3:136
6458 #, no-wrap
6459 msgid "I<s_port>"
6460 msgstr ""
6461
6462 #. type: Plain text
6463 #: build/C/man3/getservent.3:139
6464 msgid "The port number for the service given in network byte order."
6465 msgstr ""
6466
6467 #. type: TP
6468 #: build/C/man3/getservent.3:139
6469 #, no-wrap
6470 msgid "I<s_proto>"
6471 msgstr ""
6472
6473 #. type: Plain text
6474 #: build/C/man3/getservent.3:142
6475 msgid "The name of the protocol to use with this service."
6476 msgstr ""
6477
6478 #. type: Plain text
6479 #: build/C/man3/getservent.3:153
6480 msgid ""
6481 "The B<getservent>(), B<getservbyname>()  and B<getservbyport>()  functions "
6482 "return a pointer to a statically allocated I<servent> structure, or a NULL "
6483 "pointer if an error occurs or the end of the file is reached."
6484 msgstr ""
6485
6486 #. type: TP
6487 #: build/C/man3/getservent.3:154 build/C/man5/services.5:186
6488 #, no-wrap
6489 msgid "I</etc/services>"
6490 msgstr ""
6491
6492 #. type: Plain text
6493 #: build/C/man3/getservent.3:157
6494 msgid "services database file"
6495 msgstr ""
6496
6497 #. type: Plain text
6498 #: build/C/man3/getservent.3:164
6499 msgid "B<getnetent>(3), B<getprotoent>(3), B<getservent_r>(3), B<services>(5)"
6500 msgstr ""
6501
6502 #. type: TH
6503 #: build/C/man3/getservent_r.3:26
6504 #, no-wrap
6505 msgid "GETSERVENT_R"
6506 msgstr ""
6507
6508 #. type: Plain text
6509 #: build/C/man3/getservent_r.3:30
6510 msgid ""
6511 "getservent_r, getservbyname_r, getservbyport_r - get service entry "
6512 "(reentrant)"
6513 msgstr ""
6514
6515 #. type: Plain text
6516 #: build/C/man3/getservent_r.3:36
6517 #, no-wrap
6518 msgid ""
6519 "B<int getservent_r(struct servent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6520 "B<                size_t >I<buflen>B<, struct servent **>I<result>B<);>\n"
6521 msgstr ""
6522
6523 #. type: Plain text
6524 #: build/C/man3/getservent_r.3:40
6525 #, no-wrap
6526 msgid ""
6527 "B<int getservbyname_r(const char *>I<name>B<, const char *>I<proto>B<,>\n"
6528 "B<                struct servent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6529 "B<                size_t >I<buflen>B<, struct servent **>I<result>B<);>\n"
6530 msgstr ""
6531
6532 #. type: Plain text
6533 #: build/C/man3/getservent_r.3:44
6534 #, no-wrap
6535 msgid ""
6536 "B<int getservbyport_r(int >I<port>B<, const char *>I<proto>B<,>\n"
6537 "B<                struct servent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6538 "B<                size_t >I<buflen>B<, struct servent **>I<result>B<);>\n"
6539 msgstr ""
6540
6541 #. type: Plain text
6542 #: build/C/man3/getservent_r.3:55
6543 msgid "B<getservent_r>(), B<getservbyname_r>(), B<getservbyport_r>():"
6544 msgstr ""
6545
6546 #. type: Plain text
6547 #: build/C/man3/getservent_r.3:76
6548 msgid ""
6549 "The B<getservent_r>(), B<getservbyname_r>(), and B<getservbyport_r>()  "
6550 "functions are the reentrant equivalents of, respectively, B<getservent>(3), "
6551 "B<getservbyname>(3), and B<getservbyport>(3).  They differ in the way that "
6552 "the I<servent> structure is returned, and in the function calling signature "
6553 "and return value.  This manual page describes just the differences from the "
6554 "nonreentrant functions."
6555 msgstr ""
6556
6557 #. type: Plain text
6558 #: build/C/man3/getservent_r.3:82
6559 msgid ""
6560 "Instead of returning a pointer to a statically allocated I<servent> "
6561 "structure as the function result, these functions copy the structure into "
6562 "the location pointed to by I<result_buf>."
6563 msgstr ""
6564
6565 #.  I can find no information on the required/recommended buffer size;
6566 #.  the nonreentrant functions use a 1024 byte buffer -- mtk.
6567 #. type: Plain text
6568 #: build/C/man3/getservent_r.3:99
6569 msgid ""
6570 "The I<buf> array is used to store the string fields pointed to by the "
6571 "returned I<servent> structure.  (The nonreentrant functions allocate these "
6572 "strings in static storage.)  The size of this array is specified in "
6573 "I<buflen>.  If I<buf> is too small, the call fails with the error B<ERANGE>, "
6574 "and the caller must try again with a larger buffer.  (A buffer of length "
6575 "1024 bytes should be sufficient for most applications.)"
6576 msgstr ""
6577
6578 #. type: Plain text
6579 #: build/C/man3/getservent_r.3:107
6580 msgid ""
6581 "If the function call successfully obtains a service record, then I<*result> "
6582 "is set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
6583 msgstr ""
6584
6585 #. type: Plain text
6586 #: build/C/man3/getservent_r.3:110
6587 msgid ""
6588 "On success, these functions return 0.  On error, they return one of the "
6589 "positive error numbers listed in errors."
6590 msgstr ""
6591
6592 #. type: Plain text
6593 #: build/C/man3/getservent_r.3:118
6594 msgid ""
6595 "On error, record not found (B<getservbyname_r>(), B<getservbyport_r>()), or "
6596 "end of input (B<getservent_r>())  I<result> is set to NULL."
6597 msgstr ""
6598
6599 #. type: Plain text
6600 #: build/C/man3/getservent_r.3:123
6601 msgid "(B<getservent_r>())  No more records in database."
6602 msgstr ""
6603
6604 #. type: Plain text
6605 #: build/C/man3/getservent_r.3:148
6606 msgid ""
6607 "The program below uses B<getservbyport_r>()  to retrieve the service record "
6608 "for the port and protocol named in its first command-line argument.  If a "
6609 "third (integer) command-line argument is supplied, it is used as the initial "
6610 "value for I<buflen>; if B<getservbyport_r>()  fails with the error "
6611 "B<ERANGE>, the program retries with larger buffer sizes.  The following "
6612 "shell session shows a couple of sample runs:"
6613 msgstr ""
6614
6615 #. type: Plain text
6616 #: build/C/man3/getservent_r.3:158
6617 #, no-wrap
6618 msgid ""
6619 "$B< ./a.out 7 tcp 1>\n"
6620 "ERANGE! Retrying with larger buffer\n"
6621 "getservbyport_r() returned: 0 (success)  (buflen=87)\n"
6622 "s_name=echo; s_proto=tcp; s_port=7; aliases=\n"
6623 "$B< ./a.out 77777 tcp>\n"
6624 "getservbyport_r() returned: 0 (success)  (buflen=1024)\n"
6625 "Call failed/record not found\n"
6626 msgstr ""
6627
6628 #. type: Plain text
6629 #: build/C/man3/getservent_r.3:182
6630 #, no-wrap
6631 msgid ""
6632 "int\n"
6633 "main(int argc, char *argv[])\n"
6634 "{\n"
6635 "    int buflen, erange_cnt, port, s;\n"
6636 "    struct servent result_buf;\n"
6637 "    struct servent *result;\n"
6638 "    char buf[MAX_BUF];\n"
6639 "    char *protop;\n"
6640 "    char **p;\n"
6641 msgstr ""
6642
6643 #. type: Plain text
6644 #: build/C/man3/getservent_r.3:187
6645 #, no-wrap
6646 msgid ""
6647 "    if (argc E<lt> 3) {\n"
6648 "        printf(\"Usage: %s port-num proto-name [buflen]\\en\", argv[0]);\n"
6649 "        exit(EXIT_FAILURE);\n"
6650 "    }\n"
6651 msgstr ""
6652
6653 #. type: Plain text
6654 #: build/C/man3/getservent_r.3:191
6655 #, no-wrap
6656 msgid ""
6657 "    port = htons(atoi(argv[1]));\n"
6658 "    protop = (strcmp(argv[2], \"null\") == 0 ||\n"
6659 "\t      strcmp(argv[2], \"NULL\") == 0) ?  NULL : argv[2];\n"
6660 msgstr ""
6661
6662 #. type: Plain text
6663 #: build/C/man3/getservent_r.3:195
6664 #, no-wrap
6665 msgid ""
6666 "    buflen = 1024;\n"
6667 "    if (argc E<gt> 3)\n"
6668 "        buflen = atoi(argv[3]);\n"
6669 msgstr ""
6670
6671 #. type: Plain text
6672 #: build/C/man3/getservent_r.3:209
6673 #, no-wrap
6674 msgid ""
6675 "    erange_cnt = 0;\n"
6676 "    do {\n"
6677 "        s = getservbyport_r(port, protop, &result_buf,\n"
6678 "                     buf, buflen, &result);\n"
6679 "        if (s == ERANGE) {\n"
6680 "            if (erange_cnt == 0)\n"
6681 "                printf(\"ERANGE! Retrying with larger buffer\\en\");\n"
6682 "            erange_cnt++;\n"
6683 msgstr ""
6684
6685 #. type: Plain text
6686 #: build/C/man3/getservent_r.3:225
6687 #, no-wrap
6688 msgid ""
6689 "    printf(\"getservbyport_r() returned: %s  (buflen=%d)\\en\",\n"
6690 "            (s == 0) ? \"0 (success)\" : (s == ENOENT) ? \"ENOENT\" :\n"
6691 "            strerror(s), buflen);\n"
6692 msgstr ""
6693
6694 #. type: Plain text
6695 #: build/C/man3/getservent_r.3:237
6696 #, no-wrap
6697 msgid ""
6698 "    printf(\"s_name=%s; s_proto=%s; s_port=%d; aliases=\",\n"
6699 "                result_buf.s_name, result_buf.s_proto,\n"
6700 "                ntohs(result_buf.s_port));\n"
6701 "    for (p = result_buf.s_aliases; *p != NULL; p++)\n"
6702 "        printf(\"%s \", *p);\n"
6703 "    printf(\"\\en\");\n"
6704 msgstr ""
6705
6706 #. type: Plain text
6707 #: build/C/man3/getservent_r.3:244
6708 msgid "B<getservent>(3), B<services>(5)"
6709 msgstr ""
6710
6711 #. type: TH
6712 #: build/C/man5/host.conf.5:26
6713 #, no-wrap
6714 msgid "HOST.CONF"
6715 msgstr ""
6716
6717 #. type: TH
6718 #: build/C/man5/host.conf.5:26
6719 #, no-wrap
6720 msgid "2003-08-23"
6721 msgstr ""
6722
6723 #. type: TH
6724 #: build/C/man5/host.conf.5:26 build/C/man5/networks.5:26
6725 #, no-wrap
6726 msgid "Linux System Administration"
6727 msgstr ""
6728
6729 #. type: Plain text
6730 #: build/C/man5/host.conf.5:29
6731 msgid "host.conf - resolver configuration file"
6732 msgstr ""
6733
6734 #. type: Plain text
6735 #: build/C/man5/host.conf.5:38
6736 msgid ""
6737 "The file I</etc/host.conf> contains configuration information specific to "
6738 "the resolver library.  It should contain one configuration keyword per line, "
6739 "followed by appropriate configuration information.  The keywords recognized "
6740 "are I<order>, I<trim>, I<multi>, I<nospoof>, I<spoof>, and I<reorder>.  "
6741 "These keywords are described below."
6742 msgstr ""
6743
6744 #. type: TP
6745 #: build/C/man5/host.conf.5:38
6746 #, no-wrap
6747 msgid "I<order>"
6748 msgstr ""
6749
6750 #. type: Plain text
6751 #: build/C/man5/host.conf.5:44
6752 msgid ""
6753 "This keyword specifies how host lookups are to be performed.  It should be "
6754 "followed by one or more lookup methods, separated by commas.  Valid methods "
6755 "are I<bind>, I<hosts>, and I<nis>."
6756 msgstr ""
6757
6758 #. type: TP
6759 #: build/C/man5/host.conf.5:44
6760 #, no-wrap
6761 msgid "I<trim>"
6762 msgstr ""
6763
6764 #. type: Plain text
6765 #: build/C/man5/host.conf.5:61
6766 msgid ""
6767 "This keyword may be listed more than once.  Each time it should be followed "
6768 "by a list of domains, separated by colons (\\(aq:\\(aq), semicolons "
6769 "(\\(aq;\\(aq) or commas (\\(aq,\\(aq), with the leading dot.  When set, the "
6770 "resolv+ library will automatically trim the given domain name from the end "
6771 "of any hostname resolved via DNS.  This is intended for use with local hosts "
6772 "and domains.  (Related note: trim will not affect hostnames gathered via NIS "
6773 "or the hosts file.  Care should be taken to ensure that the first hostname "
6774 "for each entry in the hosts file is fully qualified or unqualified, as "
6775 "appropriate for the local installation.)"
6776 msgstr ""
6777
6778 #. type: TP
6779 #: build/C/man5/host.conf.5:61
6780 #, no-wrap
6781 msgid "I<multi>"
6782 msgstr ""
6783
6784 #. type: Plain text
6785 #: build/C/man5/host.conf.5:76
6786 msgid ""
6787 "Valid values are I<on> and I<off>.  If set to I<on>, the resolv+ library "
6788 "will return all valid addresses for a host that appears in the I</etc/hosts> "
6789 "file, instead of only the first.  This is I<off> by default, as it may cause "
6790 "a substantial performance loss at sites with large hosts files."
6791 msgstr ""
6792
6793 #. type: TP
6794 #: build/C/man5/host.conf.5:76
6795 #, no-wrap
6796 msgid "I<nospoof>"
6797 msgstr ""
6798
6799 #. type: Plain text
6800 #: build/C/man5/host.conf.5:91
6801 msgid ""
6802 "Valid values are I<on> and I<off>.  If set to I<on>, the resolv+ library "
6803 "will attempt to prevent hostname spoofing to enhance the security of "
6804 "B<rlogin> and B<rsh>.  It works as follows: after performing a host address "
6805 "lookup, resolv+ will perform a hostname lookup for that address.  If the two "
6806 "hostnames do not match, the query will fail.  The default value is I<off>."
6807 msgstr ""
6808
6809 #. type: TP
6810 #: build/C/man5/host.conf.5:91
6811 #, no-wrap
6812 msgid "I<spoofalert>"
6813 msgstr ""
6814
6815 #. type: Plain text
6816 #: build/C/man5/host.conf.5:103
6817 msgid ""
6818 "Valid values are I<on> and I<off>.  If this option is set to I<on> and the "
6819 "I<nospoof> option is also set, resolv+ will log a warning of the error via "
6820 "the syslog facility.  The default value is I<off>."
6821 msgstr ""
6822
6823 #. type: TP
6824 #: build/C/man5/host.conf.5:103
6825 #, no-wrap
6826 msgid "I<spoof>"
6827 msgstr ""
6828
6829 #. type: Plain text
6830 #: build/C/man5/host.conf.5:122
6831 msgid ""
6832 "Valid values are I<off>, I<nowarn> and I<warn>.  If this option is set to "
6833 "I<off>, spoofed addresses are permitted and no warnings will be emitted via "
6834 "the syslog facility.  If this option is set to I<warn>, resolv+ will attempt "
6835 "to prevent hostname spoofing to enhance the security and log a warning of "
6836 "the error via the syslog facility.  If this option is set to I<nowarn>, the "
6837 "resolv+ library will attempt to prevent hostname spoofing to enhance the "
6838 "security but not emit warnings via the syslog facility.  Setting this option "
6839 "to anything else is equal to setting it to I<nowarn>."
6840 msgstr ""
6841
6842 #. type: TP
6843 #: build/C/man5/host.conf.5:122
6844 #, no-wrap
6845 msgid "I<reorder>"
6846 msgstr ""
6847
6848 #. type: Plain text
6849 #: build/C/man5/host.conf.5:135
6850 msgid ""
6851 "Valid values are I<on> and I<off>.  If set to I<on>, resolv+ will attempt to "
6852 "reorder host addresses so that local addresses (i.e., on the same subnet) "
6853 "are listed first when a B<gethostbyname>(3)  is performed.  Reordering is "
6854 "done for all lookup methods.  The default value is I<off>."
6855 msgstr ""
6856
6857 #. type: SH
6858 #: build/C/man5/host.conf.5:135
6859 #, no-wrap
6860 msgid "ENVIRONMENT"
6861 msgstr ""
6862
6863 #. type: Plain text
6864 #: build/C/man5/host.conf.5:139
6865 msgid ""
6866 "There are six environment variables that can be used to allow users to "
6867 "override the behavior which is configured in I</etc/host.conf>."
6868 msgstr ""
6869
6870 #. type: TP
6871 #: build/C/man5/host.conf.5:139
6872 #, no-wrap
6873 msgid "B<RESOLV_HOST_CONF>"
6874 msgstr ""
6875
6876 #. type: Plain text
6877 #: build/C/man5/host.conf.5:143
6878 msgid ""
6879 "If set this variable points to a file that should be read instead of "
6880 "I</etc/host.conf>."
6881 msgstr ""
6882
6883 #. type: TP
6884 #: build/C/man5/host.conf.5:143
6885 #, no-wrap
6886 msgid "B<RESOLV_SERV_ORDER>"
6887 msgstr ""
6888
6889 #. type: Plain text
6890 #: build/C/man5/host.conf.5:148
6891 msgid "Overrides the I<order> command."
6892 msgstr ""
6893
6894 #. type: TP
6895 #: build/C/man5/host.conf.5:148
6896 #, no-wrap
6897 msgid "B<RESOLV_SPOOF_CHECK>"
6898 msgstr ""
6899
6900 #. type: Plain text
6901 #: build/C/man5/host.conf.5:157
6902 msgid ""
6903 "Overrides the I<nospoof>, I<spoofalert> and I<spoof> commands in the same "
6904 "way as the I<spoof> command is parsed.  Valid values are I<off>, I<nowarn> "
6905 "and I<warn>."
6906 msgstr ""
6907
6908 #. type: TP
6909 #: build/C/man5/host.conf.5:157
6910 #, no-wrap
6911 msgid "B<RESOLV_MULTI>"
6912 msgstr ""
6913
6914 #. type: Plain text
6915 #: build/C/man5/host.conf.5:162
6916 msgid "Overrides the I<multi> command."
6917 msgstr ""
6918
6919 #. type: TP
6920 #: build/C/man5/host.conf.5:162
6921 #, no-wrap
6922 msgid "B<RESOLV_REORDER>"
6923 msgstr ""
6924
6925 #. type: Plain text
6926 #: build/C/man5/host.conf.5:167
6927 msgid "Overrides the I<reorder> command."
6928 msgstr ""
6929
6930 #. type: TP
6931 #: build/C/man5/host.conf.5:167
6932 #, no-wrap
6933 msgid "B<RESOLV_ADD_TRIM_DOMAINS>"
6934 msgstr ""
6935
6936 #. type: Plain text
6937 #: build/C/man5/host.conf.5:172
6938 msgid ""
6939 "A list of domains, separated by colons (\\(aq:\\(aq), semicolons "
6940 "(\\(aq;\\(aq) or commas (\\(aq,\\(aq), with the leading dot, which will be "
6941 "added to the list of domains that should be trimmed."
6942 msgstr ""
6943
6944 #. type: TP
6945 #: build/C/man5/host.conf.5:172
6946 #, no-wrap
6947 msgid "B<RESOLV_OVERRIDE_TRIM_DOMAINS>"
6948 msgstr ""
6949
6950 #. type: Plain text
6951 #: build/C/man5/host.conf.5:180
6952 msgid ""
6953 "A list of domains, separated by colons (\\(aq:\\(aq), semicolons "
6954 "(\\(aq;\\(aq) or commas (\\(aq,\\(aq), with the leading dot, which will "
6955 "replace the list of domains that should be trimmed.  Overrides the I<trim> "
6956 "command."
6957 msgstr ""
6958
6959 #. type: Plain text
6960 #: build/C/man5/host.conf.5:184 build/C/man5/host.conf.5:187
6961 msgid "Resolver configuration file"
6962 msgstr ""
6963
6964 #. type: TP
6965 #: build/C/man5/host.conf.5:184
6966 #, no-wrap
6967 msgid "I</etc/resolv.conf>"
6968 msgstr ""
6969
6970 #. type: Plain text
6971 #: build/C/man5/host.conf.5:190
6972 msgid "Local hosts database"
6973 msgstr ""
6974
6975 #. type: Plain text
6976 #: build/C/man5/host.conf.5:199
6977 msgid ""
6978 "The following differences exist compared to the original implementation.  A "
6979 "new command I<spoof> and a new environment variable B<RESOLV_SPOOF_CHECK> "
6980 "can take arguments like I<off>, I<nowarn> and I<warn>.  Line comments can "
6981 "appear anywhere and not only at the beginning of a line."
6982 msgstr ""
6983
6984 #. type: Plain text
6985 #: build/C/man5/host.conf.5:204
6986 msgid "B<gethostbyname>(3), B<hostname>(7), B<named>(8), B<resolv+>(8)"
6987 msgstr ""
6988
6989 #. type: TH
6990 #: build/C/man7/hostname.7:39
6991 #, no-wrap
6992 msgid "HOSTNAME"
6993 msgstr ""
6994
6995 #. type: TH
6996 #: build/C/man7/hostname.7:39
6997 #, no-wrap
6998 msgid "2010-11-07"
6999 msgstr ""
7000
7001 #. type: Plain text
7002 #: build/C/man7/hostname.7:42
7003 msgid "hostname - hostname resolution description"
7004 msgstr ""
7005
7006 #. type: Plain text
7007 #: build/C/man7/hostname.7:46
7008 msgid ""
7009 "Hostnames are domains, where a domain is a hierarchical, dot-separated list "
7010 "of subdomains; for example, the machine monet, in the Berkeley subdomain of "
7011 "the EDU domain would be represented as \"monet.Berkeley.EDU\"."
7012 msgstr ""
7013
7014 #. type: Plain text
7015 #: build/C/man7/hostname.7:55
7016 msgid ""
7017 "Hostnames are often used with network client and server programs, which must "
7018 "generally translate the name to an address for use.  (This task is generally "
7019 "performed by either B<getaddrinfo>(3)  or the obsolete B<gethostbyname>(3).)  "
7020 "Hostnames are resolved by the Internet name resolver in the following "
7021 "fashion."
7022 msgstr ""
7023
7024 #. type: Plain text
7025 #: build/C/man7/hostname.7:68
7026 msgid ""
7027 "If the name consists of a single component, that is, contains no dot, and if "
7028 "the environment variable B<HOSTALIASES> is set to the name of a file, that "
7029 "file is searched for any string matching the input hostname.  The file "
7030 "should consist of lines made up of two white-space separated strings, the "
7031 "first of which is the hostname alias, and the second of which is the "
7032 "complete hostname to be substituted for that alias.  If a case-insensitive "
7033 "match is found between the hostname to be resolved and the first field of a "
7034 "line in the file, the substituted name is looked up with no further "
7035 "processing."
7036 msgstr ""
7037
7038 #. type: Plain text
7039 #: build/C/man7/hostname.7:72
7040 msgid ""
7041 "If the input name ends with a trailing dot, the trailing dot is removed, and "
7042 "the remaining name is looked up with no further processing."
7043 msgstr ""
7044
7045 #. type: Plain text
7046 #: build/C/man7/hostname.7:85
7047 msgid ""
7048 "If the input name does not end with a trailing dot, it is looked up by "
7049 "searching through a list of domains until a match is found.  The default "
7050 "search list includes first the local domain, then its parent domains with at "
7051 "least 2 name components (longest first).  For example, in the domain "
7052 "CS.Berkeley.EDU, the name lithium.CChem will be checked first as "
7053 "lithium.CChem.CS.Berkeley.EDU and then as lithium.CChem.Berkeley.EDU.  "
7054 "Lithium.CChem.EDU will not be tried, as there is only one component "
7055 "remaining from the local domain.  The search path can be changed from the "
7056 "default by a system-wide configuration file (see B<resolver>(5))."
7057 msgstr ""
7058
7059 #.  .SH HISTORY
7060 #.  Hostname appeared in
7061 #.  4.2BSD.
7062 #. type: Plain text
7063 #: build/C/man7/hostname.7:93
7064 msgid "B<gethostbyname>(3), B<resolver>(5), B<mailaddr>(7), B<named>(8)"
7065 msgstr ""
7066
7067 #. type: TH
7068 #: build/C/man5/hosts.5:27
7069 #, no-wrap
7070 msgid "HOSTS"
7071 msgstr ""
7072
7073 #. type: TH
7074 #: build/C/man5/hosts.5:27
7075 #, no-wrap
7076 msgid "2002-06-16"
7077 msgstr ""
7078
7079 #. type: Plain text
7080 #: build/C/man5/hosts.5:30
7081 msgid "hosts - static table lookup for hostnames"
7082 msgstr ""
7083
7084 #. type: Plain text
7085 #: build/C/man5/hosts.5:32
7086 msgid "B</etc/hosts>"
7087 msgstr ""
7088
7089 #. type: Plain text
7090 #: build/C/man5/hosts.5:40
7091 msgid ""
7092 "This manual page describes the format of the I</etc/hosts> file.  This file "
7093 "is a simple text file that associates IP addresses with hostnames, one line "
7094 "per IP address.  For each host a single line should be present with the "
7095 "following information:"
7096 msgstr ""
7097
7098 #. type: Plain text
7099 #: build/C/man5/hosts.5:43
7100 msgid "IP_address canonical_hostname [aliases...]"
7101 msgstr ""
7102
7103 #. type: Plain text
7104 #: build/C/man5/hosts.5:56
7105 msgid ""
7106 "Fields of the entry are separated by any number of blanks and/or tab "
7107 "characters.  Text from a \"#\" character until the end of the line is a "
7108 "comment, and is ignored.  Host names may contain only alphanumeric "
7109 "characters, minus signs (\"-\"), and periods (\".\").  They must begin with "
7110 "an alphabetic character and end with an alphanumeric character.  Optional "
7111 "aliases provide for name changes, alternate spellings, shorter hostnames, or "
7112 "generic hostnames (for example, I<localhost>)."
7113 msgstr ""
7114
7115 #. type: Plain text
7116 #: build/C/man5/hosts.5:64
7117 msgid ""
7118 "The Berkeley Internet Name Domain (BIND) Server implements the Internet name "
7119 "server for UNIX systems.  It augments or replaces the I</etc/hosts> file or "
7120 "hostname lookup, and frees a host from relying on I</etc/hosts> being up to "
7121 "date and complete."
7122 msgstr ""
7123
7124 #. type: Plain text
7125 #: build/C/man5/hosts.5:67
7126 msgid ""
7127 "In modern systems, even though the host table has been superseded by DNS, it "
7128 "is still widely used for:"
7129 msgstr ""
7130
7131 #. type: TP
7132 #: build/C/man5/hosts.5:67
7133 #, no-wrap
7134 msgid "B<bootstrapping>"
7135 msgstr ""
7136
7137 #. type: Plain text
7138 #: build/C/man5/hosts.5:73
7139 msgid ""
7140 "Most systems have a small host table containing the name and address "
7141 "information for important hosts on the local network.  This is useful when "
7142 "DNS is not running, for example during system bootup."
7143 msgstr ""
7144
7145 #. type: TP
7146 #: build/C/man5/hosts.5:73
7147 #, no-wrap
7148 msgid "B<NIS>"
7149 msgstr ""
7150
7151 #. type: Plain text
7152 #: build/C/man5/hosts.5:79
7153 msgid ""
7154 "Sites that use NIS use the host table as input to the NIS host database.  "
7155 "Even though NIS can be used with DNS, most NIS sites still use the host "
7156 "table with an entry for all local hosts as a backup."
7157 msgstr ""
7158
7159 #. type: TP
7160 #: build/C/man5/hosts.5:79
7161 #, no-wrap
7162 msgid "B<isolated nodes>"
7163 msgstr ""
7164
7165 #. type: Plain text
7166 #: build/C/man5/hosts.5:86
7167 msgid ""
7168 "Very small sites that are isolated from the network use the host table "
7169 "instead of DNS.  If the local information rarely changes, and the network is "
7170 "not connected to the Internet, DNS offers little advantage."
7171 msgstr ""
7172
7173 #. type: Plain text
7174 #: build/C/man5/hosts.5:91
7175 msgid ""
7176 "Modifications to this file normally take effect immediately, except in cases "
7177 "where the file is cached by applications."
7178 msgstr ""
7179
7180 #. type: SS
7181 #: build/C/man5/hosts.5:91
7182 #, no-wrap
7183 msgid "Historical notes"
7184 msgstr ""
7185
7186 #. type: Plain text
7187 #: build/C/man5/hosts.5:94
7188 msgid ""
7189 "RFC\\ 952 gave the original format for the host table, though it has since "
7190 "changed."
7191 msgstr ""
7192
7193 #. type: Plain text
7194 #: build/C/man5/hosts.5:107
7195 msgid ""
7196 "Before the advent of DNS, the host table was the only way of resolving "
7197 "hostnames on the fledgling Internet.  Indeed, this file could be created "
7198 "from the official host data base maintained at the Network Information "
7199 "Control Center (NIC), though local changes were often required to bring it "
7200 "up to date regarding unofficial aliases and/or unknown hosts.  The NIC no "
7201 "longer maintains the hosts.txt files, though looking around at the time of "
7202 "writing (circa 2000), there are historical hosts.txt files on the WWW.  I "
7203 "just found three, from 92, 94, and 95."
7204 msgstr ""
7205
7206 #. type: Plain text
7207 #: build/C/man5/hosts.5:114
7208 #, no-wrap
7209 msgid ""
7210 "127.0.0.1       localhost\n"
7211 "192.168.1.10    foo.mydomain.org       foo\n"
7212 "192.168.1.13    bar.mydomain.org       bar\n"
7213 "146.82.138.7    master.debian.org      master\n"
7214 "209.237.226.90  www.opensource.org\n"
7215 msgstr ""
7216
7217 #. type: Plain text
7218 #: build/C/man5/hosts.5:121
7219 msgid "B<hostname>(1), B<resolver>(3), B<resolver>(5), B<hostname>(7), B<named>(8)"
7220 msgstr ""
7221
7222 #.  .SH AUTHOR
7223 #.  This manual page was written by Manoj Srivastava <srivasta@debian.org>,
7224 #.  for the Debian GNU/Linux system.
7225 #. type: Plain text
7226 #: build/C/man5/hosts.5:126
7227 msgid "Internet RFC\\ 952"
7228 msgstr ""
7229
7230 #. type: TH
7231 #: build/C/man5/hosts.equiv.5:6
7232 #, no-wrap
7233 msgid "HOSTS.EQUIV"
7234 msgstr ""
7235
7236 #. type: TH
7237 #: build/C/man5/hosts.equiv.5:6
7238 #, no-wrap
7239 msgid "2003-08-24"
7240 msgstr ""
7241
7242 #. type: Plain text
7243 #: build/C/man5/hosts.equiv.5:11
7244 msgid ""
7245 "/etc/hosts.equiv - list of hosts and users that are granted \"trusted\" B<r> "
7246 "command access to your system"
7247 msgstr ""
7248
7249 #. type: Plain text
7250 #: build/C/man5/hosts.equiv.5:22
7251 msgid ""
7252 "The B<hosts.equiv> file allows or denies hosts and users to use the "
7253 "B<r>-commands (e.g., B<rlogin>, B<rsh> or B<rcp>)  without supplying a "
7254 "password."
7255 msgstr ""
7256
7257 #. type: Plain text
7258 #: build/C/man5/hosts.equiv.5:24
7259 msgid "The file uses the following format:"
7260 msgstr ""
7261
7262 #. type: TP
7263 #: build/C/man5/hosts.equiv.5:24
7264 #, no-wrap
7265 msgid "I<[ + | - ]> I<[hostname]> I<[username]>"
7266 msgstr ""
7267
7268 #. type: Plain text
7269 #: build/C/man5/hosts.equiv.5:43
7270 msgid ""
7271 "The I<hostname> is the name of a host which is logically equivalent to the "
7272 "local host.  Users logged into that host are allowed to access like-named "
7273 "user accounts on the local host without supplying a password.  The "
7274 "I<hostname> may be (optionally) preceded by a plus (+) sign.  If the plus "
7275 "sign is used alone it allows any host to access your system.  You can "
7276 "explicitly deny access to a host by preceding the I<hostname> by a minus (-) "
7277 "sign.  Users from that host must always supply a password.  For security "
7278 "reasons you should always use the FQDN of the hostname and not the short "
7279 "hostname."
7280 msgstr ""
7281
7282 #. type: Plain text
7283 #: build/C/man5/hosts.equiv.5:61
7284 msgid ""
7285 "The I<username> entry grants a specific user access to all user accounts "
7286 "(except root) without supplying a password.  That means the user is NOT "
7287 "restricted to like-named accounts.  The I<username> may be (optionally) "
7288 "preceded by a plus (+) sign.  You can also explicitly deny access to a "
7289 "specific user by preceding the I<username> with a minus (-) sign.  This says "
7290 "that the user is not trusted no matter what other entries for that host "
7291 "exist."
7292 msgstr ""
7293
7294 #. type: Plain text
7295 #: build/C/man5/hosts.equiv.5:63
7296 msgid "Netgroups can be specified by preceding the netgroup by an @ sign."
7297 msgstr ""
7298
7299 #. type: Plain text
7300 #: build/C/man5/hosts.equiv.5:69
7301 msgid ""
7302 "Be extremely careful when using the plus (+) sign.  A simple typographical "
7303 "error could result in a standalone plus sign.  A standalone plus sign is a "
7304 "wildcard character that means \"any host\"!"
7305 msgstr ""
7306
7307 #. type: Plain text
7308 #: build/C/man5/hosts.equiv.5:71
7309 msgid "I</etc/hosts.equiv>"
7310 msgstr ""
7311
7312 #. type: Plain text
7313 #: build/C/man5/hosts.equiv.5:76
7314 msgid ""
7315 "Some systems will honor the contents of this file only when it has owner "
7316 "root and no write permission for anybody else.  Some exceptionally paranoid "
7317 "systems even require that there be no other hard links to the file."
7318 msgstr ""
7319
7320 #. type: Plain text
7321 #: build/C/man5/hosts.equiv.5:84
7322 msgid ""
7323 "Modern systems use the Pluggable Authentication Modules library (PAM).  With "
7324 "PAM a standalone plus sign is considered a wildcard character which means "
7325 "\"any host\" only when the word I<promiscuous> is added to the auth "
7326 "component line in your PAM file for the particular service (e.g., "
7327 "B<rlogin>)."
7328 msgstr ""
7329
7330 #. type: Plain text
7331 #: build/C/man5/hosts.equiv.5:88
7332 msgid "B<rhosts>(5), B<rlogind>(8), B<rshd>(8)"
7333 msgstr ""
7334
7335 #. type: TH
7336 #: build/C/man7/icmp.7:12
7337 #, no-wrap
7338 msgid "ICMP"
7339 msgstr ""
7340
7341 #. type: TH
7342 #: build/C/man7/icmp.7:12 build/C/man8/nscd.8:23 build/C/man7/packet.7:12 build/C/man7/raw.7:13 build/C/man7/unix.7:18
7343 #, no-wrap
7344 msgid "2012-05-10"
7345 msgstr ""
7346
7347 #. type: Plain text
7348 #: build/C/man7/icmp.7:15
7349 msgid "icmp - Linux IPv4 ICMP kernel module."
7350 msgstr ""
7351
7352 #. type: Plain text
7353 #: build/C/man7/icmp.7:23
7354 msgid ""
7355 "This kernel protocol module implements the Internet Control Message Protocol "
7356 "defined in RFC\\ 792.  It is used to signal error conditions and for "
7357 "diagnosis.  The user doesn't interact directly with this module; instead it "
7358 "communicates with the other protocols in the kernel and these pass the ICMP "
7359 "errors to the application layers.  The kernel ICMP module also answers ICMP "
7360 "requests."
7361 msgstr ""
7362
7363 #. type: Plain text
7364 #: build/C/man7/icmp.7:35
7365 msgid ""
7366 "A user protocol may receive ICMP packets for all local sockets by opening a "
7367 "raw socket with the protocol B<IPPROTO_ICMP>.  See B<raw>(7)  for more "
7368 "information.  The types of ICMP packets passed to the socket can be filtered "
7369 "using the B<ICMP_FILTER> socket option.  ICMP packets are always processed "
7370 "by the kernel too, even when passed to a user socket."
7371 msgstr ""
7372
7373 #. type: Plain text
7374 #: build/C/man7/icmp.7:41
7375 msgid ""
7376 "Linux limits the rate of ICMP error packets to each destination.  "
7377 "B<ICMP_REDIRECT> and B<ICMP_DEST_UNREACH> are also limited by the "
7378 "destination route of the incoming packets."
7379 msgstr ""
7380
7381 #.  FIXME better description needed
7382 #. type: Plain text
7383 #: build/C/man7/icmp.7:54
7384 msgid ""
7385 "ICMP supports a set of I</proc> interfaces to configure some global IP "
7386 "parameters.  The parameters can be accessed by reading or writing files in "
7387 "the directory I</proc/sys/net/ipv4/>.  Most of these parameters are rate "
7388 "limitations for specific ICMP types.  Linux 2.2 uses a token bucket filter "
7389 "to limit ICMPs.  The value is the timeout in jiffies until the token bucket "
7390 "filter is cleared after a burst.  A jiffy is a system dependent unit, "
7391 "usually 10ms on i386 and about 1ms on alpha and ia64."
7392 msgstr ""
7393
7394 #. type: TP
7395 #: build/C/man7/icmp.7:54
7396 #, no-wrap
7397 msgid "I<icmp_destunreach_rate> (Linux 2.2 to 2.4.9)"
7398 msgstr ""
7399
7400 #.  Precisely: from 2.1.102
7401 #. type: Plain text
7402 #: build/C/man7/icmp.7:63
7403 msgid ""
7404 "Maximum rate to send ICMP Destination Unreachable packets.  This limits the "
7405 "rate at which packets are sent to any individual route or destination.  The "
7406 "limit does not affect sending of B<ICMP_FRAG_NEEDED> packets needed for path "
7407 "MTU discovery."
7408 msgstr ""
7409
7410 #. type: TP
7411 #: build/C/man7/icmp.7:63
7412 #, no-wrap
7413 msgid "I<icmp_echo_ignore_all> (since Linux 2.2)"
7414 msgstr ""
7415
7416 #.  Precisely: 2.1.68
7417 #. type: Plain text
7418 #: build/C/man7/icmp.7:69
7419 msgid "If this value is nonzero, Linux will ignore all B<ICMP_ECHO> requests."
7420 msgstr ""
7421
7422 #. type: TP
7423 #: build/C/man7/icmp.7:69
7424 #, no-wrap
7425 msgid "I<icmp_echo_ignore_broadcasts> (since Linux 2.2)"
7426 msgstr ""
7427
7428 #.  Precisely: from 2.1.68
7429 #. type: Plain text
7430 #: build/C/man7/icmp.7:75
7431 msgid ""
7432 "If this value is nonzero, Linux will ignore all B<ICMP_ECHO> packets sent to "
7433 "broadcast addresses."
7434 msgstr ""
7435
7436 #. type: TP
7437 #: build/C/man7/icmp.7:75
7438 #, no-wrap
7439 msgid "I<icmp_echoreply_rate> (Linux 2.2 to 2.4.9)"
7440 msgstr ""
7441
7442 #.  Precisely: from 2.1.102
7443 #. type: Plain text
7444 #: build/C/man7/icmp.7:83
7445 msgid ""
7446 "Maximum rate for sending B<ICMP_ECHOREPLY> packets in response to "
7447 "B<ICMP_ECHOREQUEST> packets."
7448 msgstr ""
7449
7450 #. type: TP
7451 #: build/C/man7/icmp.7:83
7452 #, no-wrap
7453 msgid ""
7454 "I<icmp_errors_use_inbound_ifaddr> (Boolean; default: disabled; since Linux "
7455 "2.6.12)"
7456 msgstr ""
7457
7458 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7459 #. type: Plain text
7460 #: build/C/man7/icmp.7:88
7461 msgid ""
7462 "If disabled, ICMP error messages are sent with the primary address of the "
7463 "exiting interface."
7464 msgstr ""
7465
7466 #. type: Plain text
7467 #: build/C/man7/icmp.7:94
7468 msgid ""
7469 "If enabled, the message will be sent with the primary address of the "
7470 "interface that received the packet that caused the ICMP error.  This is the "
7471 "behavior that many network administrators will expect from a router.  And it "
7472 "can make debugging complicated network layouts much easier."
7473 msgstr ""
7474
7475 #. type: Plain text
7476 #: build/C/man7/icmp.7:98
7477 msgid ""
7478 "Note that if no primary address exists for the interface selected, then the "
7479 "primary address of the first non-loopback interface that has one will be "
7480 "used regardless of this setting."
7481 msgstr ""
7482
7483 #. type: TP
7484 #: build/C/man7/icmp.7:98
7485 #, no-wrap
7486 msgid ""
7487 "I<icmp_ignore_bogus_error_responses> (Boolean; default: disabled; since "
7488 "Linux 2.2)"
7489 msgstr ""
7490
7491 #.  precisely: since 2.1.32
7492 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7493 #. type: Plain text
7494 #: build/C/man7/icmp.7:106
7495 msgid ""
7496 "Some routers violate RFC1122 by sending bogus responses to broadcast "
7497 "frames.  Such violations are normally logged via a kernel warning.  If this "
7498 "parameter is enabled, the kernel will not give such warnings, which will "
7499 "avoid log file clutter."
7500 msgstr ""
7501
7502 #. type: TP
7503 #: build/C/man7/icmp.7:106
7504 #, no-wrap
7505 msgid "I<icmp_paramprob_rate> (Linux 2.2 to 2.4.9)"
7506 msgstr ""
7507
7508 #.  Precisely: from 2.1.102
7509 #. type: Plain text
7510 #: build/C/man7/icmp.7:113
7511 msgid ""
7512 "Maximum rate for sending B<ICMP_PARAMETERPROB> packets.  These packets are "
7513 "sent when a packet arrives with an invalid IP header."
7514 msgstr ""
7515
7516 #. type: TP
7517 #: build/C/man7/icmp.7:113
7518 #, no-wrap
7519 msgid "I<icmp_ratelimit> (integer; default: 1000; since Linux 2.4.10)"
7520 msgstr ""
7521
7522 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7523 #. type: Plain text
7524 #: build/C/man7/icmp.7:121
7525 msgid ""
7526 "Limit the maximum rates for sending ICMP packets whose type matches "
7527 "I<icmp_ratemask> (see below) to specific targets.  0 to disable any "
7528 "limiting, otherwise the minimum space between responses in milliseconds."
7529 msgstr ""
7530
7531 #. type: TP
7532 #: build/C/man7/icmp.7:121
7533 #, no-wrap
7534 msgid "I<icmp_ratemask> (integer; default: see below; since Linux 2.4.10)"
7535 msgstr ""
7536
7537 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7538 #. type: Plain text
7539 #: build/C/man7/icmp.7:125
7540 msgid "Mask made of ICMP types for which rates are being limited."
7541 msgstr ""
7542
7543 #. type: Plain text
7544 #: build/C/man7/icmp.7:127
7545 msgid "Significant bits: IHGFEDCBA9876543210"
7546 msgstr ""
7547
7548 #. type: Plain text
7549 #: build/C/man7/icmp.7:129
7550 msgid "Default mask: 0000001100000011000 (0x1818)"
7551 msgstr ""
7552
7553 #. type: Plain text
7554 #: build/C/man7/icmp.7:132
7555 msgid "Bit definitions (see the Linux kernel source file I<include/linux/icmp.h>):"
7556 msgstr ""
7557
7558 #. type: tbl table
7559 #: build/C/man7/icmp.7:136
7560 #, no-wrap
7561 msgid "0 Echo Reply\n"
7562 msgstr ""
7563
7564 #. type: tbl table
7565 #: build/C/man7/icmp.7:137
7566 #, no-wrap
7567 msgid "3 Destination Unreachable *\n"
7568 msgstr ""
7569
7570 #. type: tbl table
7571 #: build/C/man7/icmp.7:138
7572 #, no-wrap
7573 msgid "4 Source Quench *\n"
7574 msgstr ""
7575
7576 #. type: tbl table
7577 #: build/C/man7/icmp.7:139
7578 #, no-wrap
7579 msgid "5 Redirect\n"
7580 msgstr ""
7581
7582 #. type: tbl table
7583 #: build/C/man7/icmp.7:140
7584 #, no-wrap
7585 msgid "8 Echo Request\n"
7586 msgstr ""
7587
7588 #. type: tbl table
7589 #: build/C/man7/icmp.7:141
7590 #, no-wrap
7591 msgid "B Time Exceeded *\n"
7592 msgstr ""
7593
7594 #. type: tbl table
7595 #: build/C/man7/icmp.7:142
7596 #, no-wrap
7597 msgid "C Parameter Problem *\n"
7598 msgstr ""
7599
7600 #. type: tbl table
7601 #: build/C/man7/icmp.7:143
7602 #, no-wrap
7603 msgid "D Timestamp Request\n"
7604 msgstr ""
7605
7606 #. type: tbl table
7607 #: build/C/man7/icmp.7:144
7608 #, no-wrap
7609 msgid "E Timestamp Reply\n"
7610 msgstr ""
7611
7612 #. type: tbl table
7613 #: build/C/man7/icmp.7:145
7614 #, no-wrap
7615 msgid "F Info Request\n"
7616 msgstr ""
7617
7618 #. type: tbl table
7619 #: build/C/man7/icmp.7:146
7620 #, no-wrap
7621 msgid "G Info Reply\n"
7622 msgstr ""
7623
7624 #. type: tbl table
7625 #: build/C/man7/icmp.7:147
7626 #, no-wrap
7627 msgid "H Address Mask Request\n"
7628 msgstr ""
7629
7630 #. type: tbl table
7631 #: build/C/man7/icmp.7:148
7632 #, no-wrap
7633 msgid "I Address Mask Reply\n"
7634 msgstr ""
7635
7636 #. type: Plain text
7637 #: build/C/man7/icmp.7:154
7638 msgid ""
7639 "The bits marked with an asterisk are rate limited by default (see the "
7640 "default mask above)."
7641 msgstr ""
7642
7643 #. type: TP
7644 #: build/C/man7/icmp.7:154
7645 #, no-wrap
7646 msgid "I<icmp_timeexceed_rate> (Linux 2.2 to 2.4.9)"
7647 msgstr ""
7648
7649 #. type: Plain text
7650 #: build/C/man7/icmp.7:161
7651 msgid ""
7652 "Maximum rate for sending B<ICMP_TIME_EXCEEDED> packets.  These packets are "
7653 "sent to prevent loops when a packet has crossed too many hops."
7654 msgstr ""
7655
7656 #. type: Plain text
7657 #: build/C/man7/icmp.7:165
7658 msgid "Support for the B<ICMP_ADDRESS> request was removed in 2.2."
7659 msgstr ""
7660
7661 #. type: Plain text
7662 #: build/C/man7/icmp.7:169
7663 msgid "Support for B<ICMP_SOURCE_QUENCH> was removed in Linux 2.2."
7664 msgstr ""
7665
7666 #.  not really true ATM
7667 #.  .PP
7668 #.  Linux ICMP should be compliant to RFC 1122.
7669 #. type: Plain text
7670 #: build/C/man7/icmp.7:177
7671 msgid ""
7672 "As many other implementations don't support B<IPPROTO_ICMP> raw sockets, "
7673 "this feature should not be relied on in portable programs."
7674 msgstr ""
7675
7676 #. type: Plain text
7677 #: build/C/man7/icmp.7:182
7678 msgid ""
7679 "B<ICMP_REDIRECT> packets are not sent when Linux is not acting as a router.  "
7680 "They are also accepted only from the old gateway defined in the routing "
7681 "table and the redirect routes are expired after some time."
7682 msgstr ""
7683
7684 #. type: Plain text
7685 #: build/C/man7/icmp.7:186
7686 msgid ""
7687 "The 64-bit timestamp returned by B<ICMP_TIMESTAMP> is in milliseconds since "
7688 "the Epoch, 1970-01-01 00:00:00 +0000 (UTC)."
7689 msgstr ""
7690
7691 #. type: Plain text
7692 #: build/C/man7/icmp.7:191
7693 msgid ""
7694 "Linux ICMP internally uses a raw socket to send ICMPs.  This raw socket may "
7695 "appear in B<netstat>(8)  output with a zero inode."
7696 msgstr ""
7697
7698 #. type: Plain text
7699 #: build/C/man7/icmp.7:193
7700 msgid "B<ip>(7)"
7701 msgstr ""
7702
7703 #. type: Plain text
7704 #: build/C/man7/icmp.7:195
7705 msgid "RFC\\ 792 for a description of the ICMP protocol."
7706 msgstr ""
7707
7708 #. type: TH
7709 #: build/C/man3/inet.3:42
7710 #, no-wrap
7711 msgid "INET"
7712 msgstr ""
7713
7714 #. type: TH
7715 #: build/C/man3/inet.3:42
7716 #, no-wrap
7717 msgid "2013-02-10"
7718 msgstr ""
7719
7720 #. type: Plain text
7721 #: build/C/man3/inet.3:46
7722 msgid ""
7723 "inet_aton, inet_addr, inet_network, inet_ntoa, inet_makeaddr, inet_lnaof, "
7724 "inet_netof - Internet address manipulation routines"
7725 msgstr ""
7726
7727 #. type: Plain text
7728 #: build/C/man3/inet.3:51
7729 #, no-wrap
7730 msgid ""
7731 "B<#include E<lt>sys/socket.hE<gt>>\n"
7732 "B<#include E<lt>netinet/in.hE<gt>>\n"
7733 "B<#include E<lt>arpa/inet.hE<gt>>\n"
7734 msgstr ""
7735
7736 #. type: Plain text
7737 #: build/C/man3/inet.3:53
7738 #, no-wrap
7739 msgid "B<int inet_aton(const char *>I<cp>B<, struct in_addr *>I<inp>B<);>\n"
7740 msgstr ""
7741
7742 #. type: Plain text
7743 #: build/C/man3/inet.3:55
7744 #, no-wrap
7745 msgid "B<in_addr_t inet_addr(const char *>I<cp>B<);>\n"
7746 msgstr ""
7747
7748 #. type: Plain text
7749 #: build/C/man3/inet.3:57
7750 #, no-wrap
7751 msgid "B<in_addr_t inet_network(const char *>I<cp>B<);>\n"
7752 msgstr ""
7753
7754 #. type: Plain text
7755 #: build/C/man3/inet.3:59
7756 #, no-wrap
7757 msgid "B<char *inet_ntoa(struct in_addr >I<in>B<);>\n"
7758 msgstr ""
7759
7760 #. type: Plain text
7761 #: build/C/man3/inet.3:61
7762 #, no-wrap
7763 msgid "B<struct in_addr inet_makeaddr(int >I<net>B<, int >I<host>B<);>\n"
7764 msgstr ""
7765
7766 #. type: Plain text
7767 #: build/C/man3/inet.3:63
7768 #, no-wrap
7769 msgid "B<in_addr_t inet_lnaof(struct in_addr >I<in>B<);>\n"
7770 msgstr ""
7771
7772 #. type: Plain text
7773 #: build/C/man3/inet.3:65
7774 #, no-wrap
7775 msgid "B<in_addr_t inet_netof(struct in_addr >I<in>B<);>\n"
7776 msgstr ""
7777
7778 #. type: Plain text
7779 #: build/C/man3/inet.3:75
7780 msgid "B<inet_aton>(), B<inet_ntoa>(): _BSD_SOURCE || _SVID_SOURCE"
7781 msgstr ""
7782
7783 #. type: Plain text
7784 #: build/C/man3/inet.3:85
7785 msgid ""
7786 "B<inet_aton>()  converts the Internet host address I<cp> from the IPv4 "
7787 "numbers-and-dots notation into binary form (in network byte order)  and "
7788 "stores it in the structure that I<inp> points to.  B<inet_aton>()  returns "
7789 "nonzero if the address is valid, zero if not.  The address supplied in I<cp> "
7790 "can have one of the following forms:"
7791 msgstr ""
7792
7793 #. type: TP
7794 #: build/C/man3/inet.3:85
7795 #, no-wrap
7796 msgid "I<a.b.c.d>"
7797 msgstr ""
7798
7799 #. type: Plain text
7800 #: build/C/man3/inet.3:89
7801 msgid ""
7802 "Each of the four numeric parts specifies a byte of the address; the bytes "
7803 "are assigned in left-to-right order to produce the binary address."
7804 msgstr ""
7805
7806 #. type: TP
7807 #: build/C/man3/inet.3:89
7808 #, no-wrap
7809 msgid "I<a.b.c>"
7810 msgstr ""
7811
7812 #. type: Plain text
7813 #: build/C/man3/inet.3:102
7814 msgid ""
7815 "Parts I<a> and I<b> specify the first two bytes of the binary address.  Part "
7816 "I<c> is interpreted as a 16-bit value that defines the rightmost two bytes "
7817 "of the binary address.  This notation is suitable for specifying (outmoded) "
7818 "Class B network addresses."
7819 msgstr ""
7820
7821 #. type: TP
7822 #: build/C/man3/inet.3:102
7823 #, no-wrap
7824 msgid "I<a.b>"
7825 msgstr ""
7826
7827 #. type: Plain text
7828 #: build/C/man3/inet.3:113
7829 msgid ""
7830 "Part I<a> specifies the first byte of the binary address.  Part I<b> is "
7831 "interpreted as a 24-bit value that defines the rightmost three bytes of the "
7832 "binary address.  This notation is suitable for specifying (outmoded) Class C "
7833 "network addresses."
7834 msgstr ""
7835
7836 #. type: TP
7837 #: build/C/man3/inet.3:113
7838 #, no-wrap
7839 msgid "I<a>"
7840 msgstr ""
7841
7842 #. type: Plain text
7843 #: build/C/man3/inet.3:119
7844 msgid ""
7845 "The value I<a> is interpreted as a 32-bit value that is stored directly into "
7846 "the binary address without any byte rearrangement."
7847 msgstr ""
7848
7849 #. type: Plain text
7850 #: build/C/man3/inet.3:132
7851 msgid ""
7852 "In all of the above forms, components of the dotted address can be specified "
7853 "in decimal, octal (with a leading I<0>), or hexadecimal, with a leading "
7854 "I<0X>).  Addresses in any of these forms are collectively termed I<IPV4 "
7855 "numbers-and-dots notation>.  The form that uses exactly four decimal numbers "
7856 "is referred to as I<IPv4 dotted-decimal notation> (or sometimes: I<IPv4 "
7857 "dotted-quad notation>)."
7858 msgstr ""
7859
7860 #. type: Plain text
7861 #: build/C/man3/inet.3:149
7862 msgid ""
7863 "The B<inet_addr>()  function converts the Internet host address I<cp> from "
7864 "IPv4 numbers-and-dots notation into binary data in network byte order.  If "
7865 "the input is invalid, B<INADDR_NONE> (usually -1) is returned.  Use of this "
7866 "function is problematic because -1 is a valid address (255.255.255.255).  "
7867 "Avoid its use in favor of B<inet_aton>(), B<inet_pton>(3), or "
7868 "B<getaddrinfo>(3)  which provide a cleaner way to indicate error return."
7869 msgstr ""
7870
7871 #. type: Plain text
7872 #: build/C/man3/inet.3:159
7873 msgid ""
7874 "The B<inet_network>()  function converts I<cp>, a string in IPv4 "
7875 "numbers-and-dots notation, into a number in host byte order suitable for use "
7876 "as an Internet network address.  On success, the converted address is "
7877 "returned.  If the input is invalid, -1 is returned."
7878 msgstr ""
7879
7880 #. type: Plain text
7881 #: build/C/man3/inet.3:167
7882 msgid ""
7883 "The B<inet_ntoa>()  function converts the Internet host address I<in>, given "
7884 "in network byte order, to a string in IPv4 dotted-decimal notation.  The "
7885 "string is returned in a statically allocated buffer, which subsequent calls "
7886 "will overwrite."
7887 msgstr ""
7888
7889 #. type: Plain text
7890 #: build/C/man3/inet.3:173
7891 msgid ""
7892 "The B<inet_lnaof>()  function returns the local network address part of the "
7893 "Internet address I<in>.  The returned value is in host byte order."
7894 msgstr ""
7895
7896 #. type: Plain text
7897 #: build/C/man3/inet.3:179
7898 msgid ""
7899 "The B<inet_netof>()  function returns the network number part of the "
7900 "Internet address I<in>.  The returned value is in host byte order."
7901 msgstr ""
7902
7903 #. type: Plain text
7904 #: build/C/man3/inet.3:190
7905 msgid ""
7906 "The B<inet_makeaddr>()  function is the converse of B<inet_netof>()  and "
7907 "B<inet_lnaof>().  It returns an Internet host address in network byte order, "
7908 "created by combining the network number I<net> with the local address "
7909 "I<host>, both in host byte order."
7910 msgstr ""
7911
7912 #. type: Plain text
7913 #: build/C/man3/inet.3:200
7914 msgid ""
7915 "The structure I<in_addr> as used in B<inet_ntoa>(), B<inet_makeaddr>(), "
7916 "B<inet_lnaof>()  and B<inet_netof>()  is defined in "
7917 "I<E<lt>netinet/in.hE<gt>> as:"
7918 msgstr ""
7919
7920 #. type: Plain text
7921 #: build/C/man3/inet.3:204
7922 #, no-wrap
7923 msgid "typedef uint32_t in_addr_t;\n"
7924 msgstr ""
7925
7926 #. type: Plain text
7927 #: build/C/man3/inet.3:208
7928 #, no-wrap
7929 msgid ""
7930 "struct in_addr {\n"
7931 "    in_addr_t s_addr;\n"
7932 "};\n"
7933 msgstr ""
7934
7935 #. type: Plain text
7936 #: build/C/man3/inet.3:218
7937 msgid ""
7938 "4.3BSD.  B<inet_addr>()  and B<inet_ntoa>()  are specified in POSIX.1-2001.  "
7939 "B<inet_aton>()  is not specified in POSIX.1-2001, but is available on most "
7940 "systems."
7941 msgstr ""
7942
7943 #. type: Plain text
7944 #: build/C/man3/inet.3:222
7945 msgid ""
7946 "On the i386 the host byte order is Least Significant Byte first (little "
7947 "endian), whereas the network byte order, as used on the Internet, is Most "
7948 "Significant Byte first (big endian)."
7949 msgstr ""
7950
7951 #. type: Plain text
7952 #: build/C/man3/inet.3:231
7953 msgid ""
7954 "B<inet_lnaof>(), B<inet_netof>(), and B<inet_makeaddr>()  are legacy "
7955 "functions that assume they are dealing with I<classful network addresses>.  "
7956 "Classful networking divides IPv4 network addresses into host and network "
7957 "components at byte boundaries, as follows:"
7958 msgstr ""
7959
7960 #. type: TP
7961 #: build/C/man3/inet.3:231
7962 #, no-wrap
7963 msgid "Class A"
7964 msgstr ""
7965
7966 #. type: Plain text
7967 #: build/C/man3/inet.3:237
7968 msgid ""
7969 "This address type is indicated by the value 0 in the most significant bit of "
7970 "the (network byte ordered) address.  The network address is contained in the "
7971 "most significant byte, and the host address occupies the remaining three "
7972 "bytes."
7973 msgstr ""
7974
7975 #. type: TP
7976 #: build/C/man3/inet.3:237
7977 #, no-wrap
7978 msgid "Class B"
7979 msgstr ""
7980
7981 #. type: Plain text
7982 #: build/C/man3/inet.3:243
7983 msgid ""
7984 "This address type is indicated by the binary value 10 in the most "
7985 "significant two bits of the address.  The network address is contained in "
7986 "the two most significant bytes, and the host address occupies the remaining "
7987 "two bytes."
7988 msgstr ""
7989
7990 #. type: TP
7991 #: build/C/man3/inet.3:243
7992 #, no-wrap
7993 msgid "Class C"
7994 msgstr ""
7995
7996 #. type: Plain text
7997 #: build/C/man3/inet.3:249
7998 msgid ""
7999 "This address type is indicated by the binary value 110 in the most "
8000 "significant three bits of the address.  The network address is contained in "
8001 "the three most significant bytes, and the host address occupies the "
8002 "remaining byte."
8003 msgstr ""
8004
8005 #. type: Plain text
8006 #: build/C/man3/inet.3:254
8007 msgid ""
8008 "Classful network addresses are now obsolete, having been superseded by "
8009 "Classless Inter-Domain Routing (CIDR), which divides addresses into network "
8010 "and host components at arbitrary bit (rather than byte) boundaries."
8011 msgstr ""
8012
8013 #. type: Plain text
8014 #: build/C/man3/inet.3:261
8015 msgid ""
8016 "An example of the use of B<inet_aton>()  and B<inet_ntoa>()  is shown "
8017 "below.  Here are some example runs:"
8018 msgstr ""
8019
8020 #. type: Plain text
8021 #: build/C/man3/inet.3:268
8022 #, no-wrap
8023 msgid ""
8024 "$B< ./a.out 226.000.000.037>      # Last byte is in octal\n"
8025 "226.0.0.31\n"
8026 "$B< ./a.out 0x7f.1         >      # First byte is in hex\n"
8027 "127.0.0.1\n"
8028 msgstr ""
8029
8030 #. type: Plain text
8031 #: build/C/man3/inet.3:277
8032 #, no-wrap
8033 msgid ""
8034 "#define _BSD_SOURCE\n"
8035 "#include E<lt>arpa/inet.hE<gt>\n"
8036 "#include E<lt>stdio.hE<gt>\n"
8037 "#include E<lt>stdlib.hE<gt>\n"
8038 msgstr ""
8039
8040 #. type: Plain text
8041 #: build/C/man3/inet.3:282
8042 #, no-wrap
8043 msgid ""
8044 "int\n"
8045 "main(int argc, char *argv[])\n"
8046 "{\n"
8047 "    struct in_addr addr;\n"
8048 msgstr ""
8049
8050 #. type: Plain text
8051 #: build/C/man3/inet.3:287
8052 #, no-wrap
8053 msgid ""
8054 "    if (argc != 2) {\n"
8055 "        fprintf(stderr, \"%s E<lt>dotted-addressE<gt>\\en\", argv[0]);\n"
8056 "        exit(EXIT_FAILURE);\n"
8057 "    }\n"
8058 msgstr ""
8059
8060 #. type: Plain text
8061 #: build/C/man3/inet.3:292
8062 #, no-wrap
8063 msgid ""
8064 "    if (inet_aton(argv[1], &addr) == 0) {\n"
8065 "        fprintf(stderr, \"Invalid address\\en\");\n"
8066 "        exit(EXIT_FAILURE);\n"
8067 "    }\n"
8068 msgstr ""
8069
8070 #. type: Plain text
8071 #: build/C/man3/inet.3:296
8072 #, no-wrap
8073 msgid ""
8074 "    printf(\"%s\\en\", inet_ntoa(addr));\n"
8075 "    exit(EXIT_SUCCESS);\n"
8076 "}\n"
8077 msgstr ""
8078
8079 #. type: Plain text
8080 #: build/C/man3/inet.3:307
8081 msgid ""
8082 "B<byteorder>(3), B<getaddrinfo>(3), B<gethostbyname>(3), B<getnameinfo>(3), "
8083 "B<getnetent>(3), B<inet_ntop>(3), B<inet_pton>(3), B<hosts>(5), "
8084 "B<networks>(5)"
8085 msgstr ""
8086
8087 #. type: TH
8088 #: build/C/man3/inet_ntop.3:26
8089 #, no-wrap
8090 msgid "INET_NTOP"
8091 msgstr ""
8092
8093 #. type: TH
8094 #: build/C/man3/inet_ntop.3:26
8095 #, no-wrap
8096 msgid "2008-11-11"
8097 msgstr ""
8098
8099 #. type: Plain text
8100 #: build/C/man3/inet_ntop.3:29
8101 msgid "inet_ntop - convert IPv4 and IPv6 addresses from binary to text form"
8102 msgstr ""
8103
8104 #. type: Plain text
8105 #: build/C/man3/inet_ntop.3:35
8106 #, no-wrap
8107 msgid ""
8108 "B<const char *inet_ntop(int >I<af>B<, const void *>I<src>B<,>\n"
8109 "B<                      char *>I<dst>B<, socklen_t >I<size>B<);>\n"
8110 msgstr ""
8111
8112 #. type: Plain text
8113 #: build/C/man3/inet_ntop.3:48
8114 msgid ""
8115 "This function converts the network address structure I<src> in the I<af> "
8116 "address family into a character string.  The resulting string is copied to "
8117 "the buffer pointed to by I<dst>, which must be a non-NULL pointer.  The "
8118 "caller specifies the number of bytes available in this buffer in the "
8119 "argument I<size>."
8120 msgstr ""
8121
8122 #. type: Plain text
8123 #: build/C/man3/inet_ntop.3:57
8124 msgid ""
8125 "B<inet_ntop>()  extends the B<inet_ntoa>(3)  function to support multiple "
8126 "address families, B<inet_ntoa>(3)  is now considered to be deprecated in "
8127 "favor of B<inet_ntop>().  The following address families are currently "
8128 "supported:"
8129 msgstr ""
8130
8131 #. type: Plain text
8132 #: build/C/man3/inet_ntop.3:70
8133 msgid ""
8134 "I<src> points to a I<struct in_addr> (in network byte order)  which is "
8135 "converted to an IPv4 network address in the dotted-decimal format, "
8136 "\"I<ddd.ddd.ddd.ddd>\".  The buffer I<dst> must be at least "
8137 "B<INET_ADDRSTRLEN> bytes long."
8138 msgstr ""
8139
8140 #. type: Plain text
8141 #: build/C/man3/inet_ntop.3:83
8142 msgid ""
8143 "I<src> points to a I<struct in6_addr> (in network byte order)  which is "
8144 "converted to a representation of this address in the most appropriate IPv6 "
8145 "network address format for this address.  The buffer I<dst> must be at least "
8146 "B<INET6_ADDRSTRLEN> bytes long."
8147 msgstr ""
8148
8149 #. type: Plain text
8150 #: build/C/man3/inet_ntop.3:91
8151 msgid ""
8152 "On success, B<inet_ntop>()  returns a non-NULL pointer to I<dst>.  NULL is "
8153 "returned if there was an error, with I<errno> set to indicate the error."
8154 msgstr ""
8155
8156 #. type: TP
8157 #: build/C/man3/inet_ntop.3:92
8158 #, no-wrap
8159 msgid "B<EAFNOSUPPORT>"
8160 msgstr ""
8161
8162 #. type: Plain text
8163 #: build/C/man3/inet_ntop.3:96
8164 msgid "I<af> was not a valid address family."
8165 msgstr ""
8166
8167 #. type: TP
8168 #: build/C/man3/inet_ntop.3:96
8169 #, no-wrap
8170 msgid "B<ENOSPC>"
8171 msgstr ""
8172
8173 #. type: Plain text
8174 #: build/C/man3/inet_ntop.3:100
8175 msgid "The converted address string would exceed the size given by I<size>."
8176 msgstr ""
8177
8178 #.  2.1.3: size_t, 2.1.91: socklen_t
8179 #. type: Plain text
8180 #: build/C/man3/inet_ntop.3:112
8181 msgid ""
8182 "POSIX.1-2001.  Note that RFC\\ 2553 defines a prototype where the last "
8183 "argument I<size> is of type I<size_t>.  Many systems follow RFC\\ 2553.  "
8184 "Glibc 2.0 and 2.1 have I<size_t>, but 2.2 and later have I<socklen_t>."
8185 msgstr ""
8186
8187 #. type: Plain text
8188 #: build/C/man3/inet_ntop.3:115
8189 msgid "B<AF_INET6> converts IPv4-mapped IPv6 addresses into an IPv6 format."
8190 msgstr ""
8191
8192 #. type: Plain text
8193 #: build/C/man3/inet_ntop.3:118
8194 msgid "See B<inet_pton>(3)."
8195 msgstr ""
8196
8197 #. type: Plain text
8198 #: build/C/man3/inet_ntop.3:122
8199 msgid "B<getnameinfo>(3), B<inet>(3), B<inet_pton>(3)"
8200 msgstr ""
8201
8202 #. type: TH
8203 #: build/C/man3/inet_pton.3:27
8204 #, no-wrap
8205 msgid "INET_PTON"
8206 msgstr ""
8207
8208 #. type: TH
8209 #: build/C/man3/inet_pton.3:27
8210 #, no-wrap
8211 msgid "2008-06-18"
8212 msgstr ""
8213
8214 #. type: Plain text
8215 #: build/C/man3/inet_pton.3:30
8216 msgid "inet_pton - convert IPv4 and IPv6 addresses from text to binary form"
8217 msgstr ""
8218
8219 #. type: Plain text
8220 #: build/C/man3/inet_pton.3:35
8221 #, no-wrap
8222 msgid "B<int inet_pton(int >I<af>B<, const char *>I<src>B<, void *>I<dst>B<);>\n"
8223 msgstr ""
8224
8225 #. type: Plain text
8226 #: build/C/man3/inet_pton.3:51
8227 msgid ""
8228 "This function converts the character string I<src> into a network address "
8229 "structure in the I<af> address family, then copies the network address "
8230 "structure to I<dst>.  The I<af> argument must be either B<AF_INET> or "
8231 "B<AF_INET6>."
8232 msgstr ""
8233
8234 #. type: Plain text
8235 #: build/C/man3/inet_pton.3:53
8236 msgid "The following address families are currently supported:"
8237 msgstr ""
8238
8239 #. type: Plain text
8240 #: build/C/man3/inet_pton.3:67
8241 msgid ""
8242 "I<src> points to a character string containing an IPv4 network address in "
8243 "dotted-decimal format, \"I<ddd.ddd.ddd.ddd>\", where I<ddd> is a decimal "
8244 "number of up to three digits in the range 0 to 255.  The address is "
8245 "converted to a I<struct in_addr> and copied to I<dst>, which must be "
8246 "I<sizeof(struct in_addr)> (4) bytes (32 bits) long."
8247 msgstr ""
8248
8249 #. type: Plain text
8250 #: build/C/man3/inet_pton.3:79
8251 msgid ""
8252 "I<src> points to a character string containing an IPv6 network address.  The "
8253 "address is converted to a I<struct in6_addr> and copied to I<dst>, which "
8254 "must be I<sizeof(struct in6_addr)> (16) bytes (128 bits) long.  The allowed "
8255 "formats for IPv6 addresses follow these rules:"
8256 msgstr ""
8257
8258 #. type: IP
8259 #: build/C/man3/inet_pton.3:80
8260 #, no-wrap
8261 msgid "1."
8262 msgstr ""
8263
8264 #. type: Plain text
8265 #: build/C/man3/inet_pton.3:87
8266 msgid ""
8267 "The preferred format is I<x:x:x:x:x:x:x:x>.  This form consists of eight "
8268 "hexadecimal numbers, each of which expresses a 16-bit value (i.e., each I<x> "
8269 "can be up to 4 hex digits)."
8270 msgstr ""
8271
8272 #. type: IP
8273 #: build/C/man3/inet_pton.3:87
8274 #, no-wrap
8275 msgid "2."
8276 msgstr ""
8277
8278 #. type: Plain text
8279 #: build/C/man3/inet_pton.3:100
8280 msgid ""
8281 "A series of contiguous zero values in the preferred format can be "
8282 "abbreviated to I<::>.  Only one instance of I<::> can occur in an address.  "
8283 "For example, the loopback address I<0:0:0:0:0:0:0:1> can be abbreviated as "
8284 "I<::1>.  The wildcard address, consisting of all zeros, can be written as "
8285 "I<::>."
8286 msgstr ""
8287
8288 #. type: IP
8289 #: build/C/man3/inet_pton.3:100
8290 #, no-wrap
8291 msgid "3."
8292 msgstr ""
8293
8294 #. type: Plain text
8295 #: build/C/man3/inet_pton.3:113
8296 msgid ""
8297 "An alternate format is useful for expressing IPv4-mapped IPv6 addresses.  "
8298 "This form is written as I<x:x:x:x:x:x:d.d.d.d>, where the six leading I<x>s "
8299 "are hexadecimal values that define the six most-significant 16-bit pieces of "
8300 "the address (i.e., 96 bits), and the I<d>s express a value in dotted-decimal "
8301 "notation that defines the least significant 32 bits of the address.  An "
8302 "example of such an address is I<::FFFF:204.152.189.116>."
8303 msgstr ""
8304
8305 #. type: Plain text
8306 #: build/C/man3/inet_pton.3:116
8307 msgid "See RFC 2373 for further details on the representation of IPv6 addresses."
8308 msgstr ""
8309
8310 #. type: Plain text
8311 #: build/C/man3/inet_pton.3:129
8312 msgid ""
8313 "B<inet_pton>()  returns 1 on success (network address was successfully "
8314 "converted).  0 is returned if I<src> does not contain a character string "
8315 "representing a valid network address in the specified address family.  If "
8316 "I<af> does not contain a valid address family, -1 is returned and I<errno> "
8317 "is set to B<EAFNOSUPPORT>."
8318 msgstr ""
8319
8320 #. type: Plain text
8321 #: build/C/man3/inet_pton.3:150
8322 msgid ""
8323 "Unlike B<inet_aton>(3)  and B<inet_addr>(3), B<inet_pton>()  supports IPv6 "
8324 "addresses.  On the other hand, B<inet_pton>()  accepts only IPv4 addresses "
8325 "in dotted-decimal notation, whereas B<inet_aton>(3)  and B<inet_addr>(3)  "
8326 "allow the more general numbers-and-dots notation (hexadecimal and octal "
8327 "number formats, and formats that don't require all four bytes to be "
8328 "explicitly written).  For an interface that handles both IPv6 addresses, and "
8329 "IPv4 addresses in numbers-and-dots notation, see B<getaddrinfo>(3)."
8330 msgstr ""
8331
8332 #. type: Plain text
8333 #: build/C/man3/inet_pton.3:156
8334 msgid ""
8335 "B<AF_INET6> does not recognize IPv4 addresses.  An explicit IPv4-mapped IPv6 "
8336 "address must be supplied in I<src> instead."
8337 msgstr ""
8338
8339 #. type: Plain text
8340 #: build/C/man3/inet_pton.3:162
8341 msgid ""
8342 "The program below demonstrates the use of B<inet_pton>()  and "
8343 "B<inet_ntop>(3).  Here are some example runs:"
8344 msgstr ""
8345
8346 #. type: Plain text
8347 #: build/C/man3/inet_pton.3:171
8348 #, no-wrap
8349 msgid ""
8350 "$B< ./a.out i6 0:0:0:0:0:0:0:0>\n"
8351 "::\n"
8352 "$B< ./a.out i6 1:0:0:0:0:0:0:8>\n"
8353 "1::8\n"
8354 "$B< ./a.out i6 0:0:0:0:0:FFFF:204.152.189.116>\n"
8355 "::ffff:204.152.189.116\n"
8356 msgstr ""
8357
8358 #. type: Plain text
8359 #: build/C/man3/inet_pton.3:180
8360 #, no-wrap
8361 msgid ""
8362 "#include E<lt>arpa/inet.hE<gt>\n"
8363 "#include E<lt>stdio.hE<gt>\n"
8364 "#include E<lt>stdlib.hE<gt>\n"
8365 "#include E<lt>string.hE<gt>\n"
8366 msgstr ""
8367
8368 #. type: Plain text
8369 #: build/C/man3/inet_pton.3:187
8370 #, no-wrap
8371 msgid ""
8372 "int\n"
8373 "main(int argc, char *argv[])\n"
8374 "{\n"
8375 "    unsigned char buf[sizeof(struct in6_addr)];\n"
8376 "    int domain, s;\n"
8377 "    char str[INET6_ADDRSTRLEN];\n"
8378 msgstr ""
8379
8380 #. type: Plain text
8381 #: build/C/man3/inet_pton.3:192
8382 #, no-wrap
8383 msgid ""
8384 "    if (argc != 3) {\n"
8385 "        fprintf(stderr, \"Usage: %s {i4|i6|E<lt>numE<gt>} string\\en\", "
8386 "argv[0]);\n"
8387 "        exit(EXIT_FAILURE);\n"
8388 "    }\n"
8389 msgstr ""
8390
8391 #. type: Plain text
8392 #: build/C/man3/inet_pton.3:195
8393 #, no-wrap
8394 msgid ""
8395 "    domain = (strcmp(argv[1], \"i4\") == 0) ? AF_INET :\n"
8396 "             (strcmp(argv[1], \"i6\") == 0) ? AF_INET6 : atoi(argv[1]);\n"
8397 msgstr ""
8398
8399 #. type: Plain text
8400 #: build/C/man3/inet_pton.3:204
8401 #, no-wrap
8402 msgid ""
8403 "    s = inet_pton(domain, argv[2], buf);\n"
8404 "    if (s E<lt>= 0) {\n"
8405 "        if (s == 0)\n"
8406 "            fprintf(stderr, \"Not in presentation format\");\n"
8407 "        else\n"
8408 "            perror(\"inet_pton\");\n"
8409 "        exit(EXIT_FAILURE);\n"
8410 "    }\n"
8411 msgstr ""
8412
8413 #. type: Plain text
8414 #: build/C/man3/inet_pton.3:209
8415 #, no-wrap
8416 msgid ""
8417 "    if (inet_ntop(domain, buf, str, INET6_ADDRSTRLEN) == NULL) {\n"
8418 "        perror(\"inet_ntop\");\n"
8419 "        exit(EXIT_FAILURE);\n"
8420 "    }\n"
8421 msgstr ""
8422
8423 #. type: Plain text
8424 #: build/C/man3/inet_pton.3:211
8425 #, no-wrap
8426 msgid "    printf(\"%s\\en\", str);\n"
8427 msgstr ""
8428
8429 #. type: Plain text
8430 #: build/C/man3/inet_pton.3:219
8431 msgid "B<getaddrinfo>(3), B<inet>(3), B<inet_ntop>(3)"
8432 msgstr ""
8433
8434 #. type: TH
8435 #: build/C/man7/ip.7:36
8436 #, no-wrap
8437 msgid "IP"
8438 msgstr ""
8439
8440 #. type: TH
8441 #: build/C/man7/ip.7:36
8442 #, no-wrap
8443 msgid "2013-04-16"
8444 msgstr ""
8445
8446 #. type: Plain text
8447 #: build/C/man7/ip.7:39
8448 msgid "ip - Linux IPv4 protocol implementation"
8449 msgstr ""
8450
8451 #. type: Plain text
8452 #: build/C/man7/ip.7:45 build/C/man7/ipv6.7:93 build/C/man7/raw.7:20 build/C/man7/tcp.7:72 build/C/man7/udp.7:19
8453 msgid "B<#include E<lt>netinet/in.hE<gt>>"
8454 msgstr ""
8455
8456 #. type: Plain text
8457 #: build/C/man7/ip.7:47
8458 msgid "B<#include E<lt>netinet/ip.hE<gt> >/* superset of previous */"
8459 msgstr ""
8460
8461 #. type: Plain text
8462 #: build/C/man7/ip.7:49
8463 msgid "I<tcp_socket>B< = socket(AF_INET, SOCK_STREAM, 0);>"
8464 msgstr ""
8465
8466 #. type: Plain text
8467 #: build/C/man7/ip.7:51
8468 msgid "I<udp_socket>B< = socket(AF_INET, SOCK_DGRAM, 0);>"
8469 msgstr ""
8470
8471 #. type: Plain text
8472 #: build/C/man7/ip.7:53
8473 msgid "I<raw_socket>B< = socket(AF_INET, SOCK_RAW, >I<protocol>B<);>"
8474 msgstr ""
8475
8476 #.  FIXME has someone verified that 2.1 is really 1812 compliant?
8477 #. type: Plain text
8478 #: build/C/man7/ip.7:60
8479 msgid ""
8480 "Linux implements the Internet Protocol, version 4, described in RFC\\ 791 "
8481 "and RFC\\ 1122.  B<ip> contains a level 2 multicasting implementation "
8482 "conforming to RFC\\ 1112.  It also contains an IP router including a packet "
8483 "filter."
8484 msgstr ""
8485
8486 #. type: Plain text
8487 #: build/C/man7/ip.7:64
8488 msgid ""
8489 "The programming interface is BSD-sockets compatible.  For more information "
8490 "on sockets, see B<socket>(7)."
8491 msgstr ""
8492
8493 #. type: Plain text
8494 #: build/C/man7/ip.7:95
8495 msgid ""
8496 "An IP socket is created by calling the B<socket>(2)  function as "
8497 "B<socket(AF_INET, >I<socket_type>B<, >I<protocol>B<)>.  Valid socket types "
8498 "are B<SOCK_STREAM> to open a B<tcp>(7)  socket, B<SOCK_DGRAM> to open a "
8499 "B<udp>(7)  socket, or B<SOCK_RAW> to open a B<raw>(7)  socket to access the "
8500 "IP protocol directly.  I<protocol> is the IP protocol in the IP header to be "
8501 "received or sent.  The only valid values for I<protocol> are 0 and "
8502 "B<IPPROTO_TCP> for TCP sockets, and 0 and B<IPPROTO_UDP> for UDP sockets.  "
8503 "For B<SOCK_RAW> you may specify a valid IANA IP protocol defined in RFC\\ "
8504 "1700 assigned numbers."
8505 msgstr ""
8506
8507 #. type: Plain text
8508 #: build/C/man7/ip.7:117
8509 msgid ""
8510 "When a process wants to receive new incoming packets or connections, it "
8511 "should bind a socket to a local interface address using B<bind>(2).  In this "
8512 "case, only one IP socket may be bound to any given local (address, port) "
8513 "pair.  When B<INADDR_ANY> is specified in the bind call, the socket will be "
8514 "bound to I<all> local interfaces.  When B<listen>(2)  is called on an "
8515 "unbound socket, the socket is automatically bound to a random free port with "
8516 "the local address set to B<INADDR_ANY>.  When B<connect>(2)  is called on an "
8517 "unbound socket, the socket is automatically bound to a random free port or "
8518 "to a usable shared port with the local address set to B<INADDR_ANY>."
8519 msgstr ""
8520
8521 #. type: Plain text
8522 #: build/C/man7/ip.7:123
8523 msgid ""
8524 "A TCP local socket address that has been bound is unavailable for some time "
8525 "after closing, unless the B<SO_REUSEADDR> flag has been set.  Care should be "
8526 "taken when using this flag as it makes TCP less reliable."
8527 msgstr ""
8528
8529 #. type: Plain text
8530 #: build/C/man7/ip.7:134
8531 msgid ""
8532 "An IP socket address is defined as a combination of an IP interface address "
8533 "and a 16-bit port number.  The basic IP protocol does not supply port "
8534 "numbers, they are implemented by higher level protocols like B<udp>(7)  and "
8535 "B<tcp>(7).  On raw sockets I<sin_port> is set to the IP protocol."
8536 msgstr ""
8537
8538 #. type: Plain text
8539 #: build/C/man7/ip.7:142
8540 #, no-wrap
8541 msgid ""
8542 "struct sockaddr_in {\n"
8543 "    sa_family_t    sin_family; /* address family: AF_INET */\n"
8544 "    in_port_t      sin_port;   /* port in network byte order */\n"
8545 "    struct in_addr sin_addr;   /* internet address */\n"
8546 "};\n"
8547 msgstr ""
8548
8549 #. type: Plain text
8550 #: build/C/man7/ip.7:147
8551 #, no-wrap
8552 msgid ""
8553 "/* Internet address. */\n"
8554 "struct in_addr {\n"
8555 "    uint32_t       s_addr;     /* address in network byte order */\n"
8556 "};\n"
8557 msgstr ""
8558
8559 #. type: Plain text
8560 #: build/C/man7/ip.7:172
8561 msgid ""
8562 "I<sin_family> is always set to B<AF_INET>.  This is required; in Linux 2.2 "
8563 "most networking functions return B<EINVAL> when this setting is missing.  "
8564 "I<sin_port> contains the port in network byte order.  The port numbers below "
8565 "1024 are called I<privileged ports> (or sometimes: I<reserved ports>).  Only "
8566 "privileged processes (i.e., those having the B<CAP_NET_BIND_SERVICE> "
8567 "capability) may B<bind>(2)  to these sockets.  Note that the raw IPv4 "
8568 "protocol as such has no concept of a port, they are implemented only by "
8569 "higher protocols like B<tcp>(7)  and B<udp>(7)."
8570 msgstr ""
8571
8572 #. type: Plain text
8573 #: build/C/man7/ip.7:191
8574 msgid ""
8575 "I<sin_addr> is the IP host address.  The I<s_addr> member of I<struct "
8576 "in_addr> contains the host interface address in network byte order.  "
8577 "I<in_addr> should be assigned one of the B<INADDR_*> values (e.g., "
8578 "B<INADDR_ANY>)  or set using the B<inet_aton>(3), B<inet_addr>(3), "
8579 "B<inet_makeaddr>(3)  library functions or directly with the name resolver "
8580 "(see B<gethostbyname>(3))."
8581 msgstr ""
8582
8583 #.  Leave a loophole for XTP @)
8584 #. type: Plain text
8585 #: build/C/man7/ip.7:203
8586 msgid ""
8587 "IPv4 addresses are divided into unicast, broadcast and multicast addresses.  "
8588 "Unicast addresses specify a single interface of a host, broadcast addresses "
8589 "specify all hosts on a network and multicast addresses address all hosts in "
8590 "a multicast group.  Datagrams to broadcast addresses can be sent or received "
8591 "only when the B<SO_BROADCAST> socket flag is set.  In the current "
8592 "implementation, connection-oriented sockets are allowed to use only unicast "
8593 "addresses."
8594 msgstr ""
8595
8596 #. type: Plain text
8597 #: build/C/man7/ip.7:211
8598 msgid ""
8599 "Note that the address and the port are always stored in network byte order.  "
8600 "In particular, this means that you need to call B<htons>(3)  on the number "
8601 "that is assigned to a port.  All address/port manipulation functions in the "
8602 "standard library work in network byte order."
8603 msgstr ""
8604
8605 #. type: Plain text
8606 #: build/C/man7/ip.7:224
8607 msgid ""
8608 "There are several special addresses: B<INADDR_LOOPBACK> (127.0.0.1)  always "
8609 "refers to the local host via the loopback device; B<INADDR_ANY> (0.0.0.0)  "
8610 "means any address for binding; B<INADDR_BROADCAST> (255.255.255.255)  means "
8611 "any host and has the same effect on bind as B<INADDR_ANY> for historical "
8612 "reasons."
8613 msgstr ""
8614
8615 #.  or SOL_IP on Linux
8616 #. type: Plain text
8617 #: build/C/man7/ip.7:233
8618 msgid ""
8619 "IP supports some protocol-specific socket options that can be set with "
8620 "B<setsockopt>(2)  and read with B<getsockopt>(2).  The socket option level "
8621 "for IP is B<IPPROTO_IP>.  A boolean integer flag is zero when it is false, "
8622 "otherwise true."
8623 msgstr ""
8624
8625 #. type: TP
8626 #: build/C/man7/ip.7:233
8627 #, no-wrap
8628 msgid "B<IP_ADD_MEMBERSHIP> (since Linux 1.2)"
8629 msgstr ""
8630
8631 #. type: Plain text
8632 #: build/C/man7/ip.7:239
8633 msgid "Join a multicast group.  Argument is an I<ip_mreqn> structure."
8634 msgstr ""
8635
8636 #. type: Plain text
8637 #: build/C/man7/ip.7:249
8638 #, no-wrap
8639 msgid ""
8640 "struct ip_mreqn {\n"
8641 "    struct in_addr imr_multiaddr; /* IP multicast group\n"
8642 "                                     address */\n"
8643 "    struct in_addr imr_address;   /* IP address of local\n"
8644 "                                     interface */\n"
8645 "    int            imr_ifindex;   /* interface index */\n"
8646 "};\n"
8647 msgstr ""
8648
8649 #.  (i.e., within the 224.0.0.0-239.255.255.255 range)
8650 #. type: Plain text
8651 #: build/C/man7/ip.7:270
8652 msgid ""
8653 "I<imr_multiaddr> contains the address of the multicast group the application "
8654 "wants to join or leave.  It must be a valid multicast address (or "
8655 "B<setsockopt>(2)  fails with the error B<EINVAL>).  I<imr_address> is the "
8656 "address of the local interface with which the system should join the "
8657 "multicast group; if it is equal to B<INADDR_ANY> an appropriate interface is "
8658 "chosen by the system.  I<imr_ifindex> is the interface index of the "
8659 "interface that should join/leave the I<imr_multiaddr> group, or 0 to "
8660 "indicate any interface."
8661 msgstr ""
8662
8663 #. type: Plain text
8664 #: build/C/man7/ip.7:285
8665 msgid ""
8666 "The I<ip_mreqn> structure is available only since Linux 2.2.  For "
8667 "compatibility, the old I<ip_mreq> structure (present since Linux 1.2) is "
8668 "still supported; it differs from I<ip_mreqn> only by not including the "
8669 "I<imr_ifindex> field.  Only valid as a B<setsockopt>(2)."
8670 msgstr ""
8671
8672 #. type: TP
8673 #: build/C/man7/ip.7:285
8674 #, no-wrap
8675 msgid "B<IP_ADD_SOURCE_MEMBERSHIP> (since Linux 2.4.22 / 2.5.68)"
8676 msgstr ""
8677
8678 #. type: Plain text
8679 #: build/C/man7/ip.7:292
8680 msgid ""
8681 "Join a multicast group and allow receiving data only from a specified "
8682 "source.  Argument is an I<ip_mreq_source> structure."
8683 msgstr ""
8684
8685 #. type: Plain text
8686 #: build/C/man7/ip.7:303
8687 #, no-wrap
8688 msgid ""
8689 "struct ip_mreq_source {\n"
8690 "    struct in_addr imr_multiaddr;  /* IP multicast group\n"
8691 "                                      address */\n"
8692 "    struct in_addr imr_interface;  /* IP address of local\n"
8693 "                                      interface */\n"
8694 "    struct in_addr imr_sourceaddr; /* IP address of\n"
8695 "                                      multicast source */\n"
8696 "};\n"
8697 msgstr ""
8698
8699 #. type: Plain text
8700 #: build/C/man7/ip.7:324
8701 msgid ""
8702 "The I<ip_mreq_source> structure is similar to I<ip_mreqn> described under "
8703 "B<IP_ADD_MEMBERSIP>.  The I<imr_multiaddr> field contains the address of the "
8704 "multicast group the application wants to join or leave.  The "
8705 "I<imr_interface> field is the address of the local interface with which the "
8706 "system should join the multicast group.  Finally, the I<imr_sourceaddr> "
8707 "field contains the address of the source the application wants to receive "
8708 "data from."
8709 msgstr ""
8710
8711 #. type: Plain text
8712 #: build/C/man7/ip.7:327
8713 msgid ""
8714 "This option can be used multiple times to allow receiving data from more "
8715 "than one source."
8716 msgstr ""
8717
8718 #. type: TP
8719 #: build/C/man7/ip.7:327
8720 #, no-wrap
8721 msgid "B<IP_BLOCK_SOURCE> (since Linux 2.4.22 / 2.5.68)"
8722 msgstr ""
8723
8724 #. type: Plain text
8725 #: build/C/man7/ip.7:335
8726 msgid ""
8727 "Stop receiving multicast data from a specific source in a given group.  This "
8728 "is valid only after the application has subscribed to the multicast group "
8729 "using either B<IP_ADD_MEMBERSHIP> or B<IP_ADD_SOURCE_MEMBERSHIP>."
8730 msgstr ""
8731
8732 #. type: Plain text
8733 #: build/C/man7/ip.7:340 build/C/man7/ip.7:362 build/C/man7/ip.7:920
8734 msgid ""
8735 "Argument is an I<ip_mreq_source> structure as described under "
8736 "B<IP_ADD_SOURCE_MEMBERSHIP>."
8737 msgstr ""
8738
8739 #. type: TP
8740 #: build/C/man7/ip.7:340
8741 #, no-wrap
8742 msgid "B<IP_DROP_MEMBERSHIP> (since Linux 1.2)"
8743 msgstr ""
8744
8745 #. type: Plain text
8746 #: build/C/man7/ip.7:349
8747 msgid ""
8748 "Leave a multicast group.  Argument is an I<ip_mreqn> or I<ip_mreq> structure "
8749 "similar to B<IP_ADD_MEMBERSHIP>."
8750 msgstr ""
8751
8752 #. type: TP
8753 #: build/C/man7/ip.7:349
8754 #, no-wrap
8755 msgid "B<IP_DROP_SOURCE_MEMBERSHIP> (since Linux 2.4.22 / 2.5.68)"
8756 msgstr ""
8757
8758 #. type: Plain text
8759 #: build/C/man7/ip.7:357
8760 msgid ""
8761 "Leave a source-specific group\\(emthat is, stop receiving data from a given "
8762 "multicast group that come from a given source.  If the application has "
8763 "subscribed to multiple sources within the same group, data from the "
8764 "remaining sources will still be delivered.  To stop receiving data from all "
8765 "sources at once, use B<IP_LEAVE_GROUP>."
8766 msgstr ""
8767
8768 #. type: TP
8769 #: build/C/man7/ip.7:362
8770 #, no-wrap
8771 msgid "B<IP_FREEBIND> (since Linux 2.4)"
8772 msgstr ""
8773
8774 #.  Precisely: 2.4.0-test10
8775 #. type: Plain text
8776 #: build/C/man7/ip.7:375
8777 msgid ""
8778 "If enabled, this boolean option allows binding to an IP address that is "
8779 "nonlocal or does not (yet) exist.  This permits listening on a socket, "
8780 "without requiring the underlying network interface or the specified dynamic "
8781 "IP address to be up at the time that the application is trying to bind to "
8782 "it.  This option is the per-socket equivalent of the I<ip_nonlocal_bind> "
8783 "I</proc> interface described below."
8784 msgstr ""
8785
8786 #. type: TP
8787 #: build/C/man7/ip.7:375
8788 #, no-wrap
8789 msgid "B<IP_HDRINCL> (since Linux 2.0)"
8790 msgstr ""
8791
8792 #. type: Plain text
8793 #: build/C/man7/ip.7:391
8794 msgid ""
8795 "If enabled, the user supplies an IP header in front of the user data.  Only "
8796 "valid for B<SOCK_RAW> sockets.  See B<raw>(7)  for more information.  When "
8797 "this flag is enabled the values set by B<IP_OPTIONS>, B<IP_TTL> and "
8798 "B<IP_TOS> are ignored."
8799 msgstr ""
8800
8801 #. type: TP
8802 #: build/C/man7/ip.7:391
8803 #, no-wrap
8804 msgid "B<IP_MSFILTER> (since Linux 2.4.22 / 2.5.68)"
8805 msgstr ""
8806
8807 #. type: Plain text
8808 #: build/C/man7/ip.7:397
8809 msgid ""
8810 "This option provides access to the advanced full-state filtering API.  "
8811 "Argument is an I<ip_msfilter> structure."
8812 msgstr ""
8813
8814 #. type: Plain text
8815 #: build/C/man7/ip.7:406
8816 #, no-wrap
8817 msgid ""
8818 "struct ip_msfilter {\n"
8819 "    struct in_addr imsf_multiaddr; /* IP multicast group\n"
8820 "                                      address */\n"
8821 "    struct in_addr imsf_interface; /* IP address of local\n"
8822 "                                      interface */\n"
8823 "    uint32_t       imsf_fmode;     /* Filter-mode */\n"
8824 msgstr ""
8825
8826 #. type: Plain text
8827 #: build/C/man7/ip.7:412
8828 #, no-wrap
8829 msgid ""
8830 "    uint32_t       imsf_numsrc;    /* Number of sources in\n"
8831 "                                      the following array */\n"
8832 "    struct in_addr imsf_slist[1];  /* Array of source\n"
8833 "                                      addresses */\n"
8834 "};\n"
8835 msgstr ""
8836
8837 #. type: Plain text
8838 #: build/C/man7/ip.7:427
8839 msgid ""
8840 "There are two macros, B<MCAST_INCLUDE> and B<MCAST_EXCLUDE>, which can be "
8841 "used to specify the filtering mode.  Additionally, the "
8842 "B<IP_MSFILTER_SIZE>(n)  macro exists to determine how much memory is needed "
8843 "to store I<ip_msfilter> structure with I<n> sources in the source list."
8844 msgstr ""
8845
8846 #. type: Plain text
8847 #: build/C/man7/ip.7:430
8848 msgid "For the full description of multicast source filtering refer to RFC 3376."
8849 msgstr ""
8850
8851 #. type: TP
8852 #: build/C/man7/ip.7:430
8853 #, no-wrap
8854 msgid "B<IP_MTU> (since Linux 2.2)"
8855 msgstr ""
8856
8857 #.  Precisely: 2.1.124
8858 #. type: Plain text
8859 #: build/C/man7/ip.7:438
8860 msgid ""
8861 "Retrieve the current known path MTU of the current socket.  Valid only when "
8862 "the socket has been connected.  Returns an integer.  Only valid as a "
8863 "B<getsockopt>(2)."
8864 msgstr ""
8865
8866 #. type: TP
8867 #: build/C/man7/ip.7:438
8868 #, no-wrap
8869 msgid "B<IP_MTU_DISCOVER> (since Linux 2.2)"
8870 msgstr ""
8871
8872 #.  Precisely: 2.1.124
8873 #. type: Plain text
8874 #: build/C/man7/ip.7:459
8875 msgid ""
8876 "Set or receive the Path MTU Discovery setting for a socket.  When enabled, "
8877 "Linux will perform Path MTU Discovery as defined in RFC\\ 1191 on "
8878 "B<SOCK_STREAM> sockets.  For non-B<SOCK_STREAM> sockets, B<IP_PMTUDISC_DO> "
8879 "forces the don't-fragment flag to be set on all outgoing packets.  It is the "
8880 "user's responsibility to packetize the data in MTU-sized chunks and to do "
8881 "the retransmits if necessary.  The kernel will reject (with B<EMSGSIZE>)  "
8882 "datagrams that are bigger than the known path MTU.  B<IP_PMTUDISC_WANT> will "
8883 "fragment a datagram if needed according to the path MTU, or will set the "
8884 "don't-fragment flag otherwise."
8885 msgstr ""
8886
8887 #. type: Plain text
8888 #: build/C/man7/ip.7:467
8889 msgid ""
8890 "The system-wide default can be toggled between B<IP_PMTUDISC_WANT> and "
8891 "B<IP_PMTUDISC_DONT> by writing (respectively, zero and nonzero values) to "
8892 "the I</proc/sys/net/ipv4/ip_no_pmtu_disc> file."
8893 msgstr ""
8894
8895 #. type: tbl table
8896 #: build/C/man7/ip.7:471
8897 #, no-wrap
8898 msgid "Path MTU discovery value:Meaning\n"
8899 msgstr ""
8900
8901 #. type: tbl table
8902 #: build/C/man7/ip.7:472
8903 #, no-wrap
8904 msgid "IP_PMTUDISC_WANT:Use per-route settings.\n"
8905 msgstr ""
8906
8907 #. type: tbl table
8908 #: build/C/man7/ip.7:473
8909 #, no-wrap
8910 msgid "IP_PMTUDISC_DONT:Never do Path MTU Discovery.\n"
8911 msgstr ""
8912
8913 #. type: tbl table
8914 #: build/C/man7/ip.7:474
8915 #, no-wrap
8916 msgid "IP_PMTUDISC_DO:Always do Path MTU Discovery.\n"
8917 msgstr ""
8918
8919 #. type: tbl table
8920 #: build/C/man7/ip.7:475
8921 #, no-wrap
8922 msgid "IP_PMTUDISC_PROBE:Set DF but ignore Path MTU.\n"
8923 msgstr ""
8924
8925 #. type: Plain text
8926 #: build/C/man7/ip.7:493
8927 msgid ""
8928 "When PMTU discovery is enabled, the kernel automatically keeps track of the "
8929 "path MTU per destination host.  When it is connected to a specific peer with "
8930 "B<connect>(2), the currently known path MTU can be retrieved conveniently "
8931 "using the B<IP_MTU> socket option (e.g., after an B<EMSGSIZE> error "
8932 "occurred).  The path MTU may change over time.  For connectionless sockets "
8933 "with many destinations, the new MTU for a given destination can also be "
8934 "accessed using the error queue (see B<IP_RECVERR>).  A new error will be "
8935 "queued for every incoming MTU update."
8936 msgstr ""
8937
8938 #. type: Plain text
8939 #: build/C/man7/ip.7:498
8940 msgid ""
8941 "While MTU discovery is in progress, initial packets from datagram sockets "
8942 "may be dropped.  Applications using UDP should be aware of this and not take "
8943 "it into account for their packet retransmit strategy."
8944 msgstr ""
8945
8946 #.  FIXME this is an ugly hack
8947 #. type: Plain text
8948 #: build/C/man7/ip.7:503
8949 msgid ""
8950 "To bootstrap the path MTU discovery process on unconnected sockets, it is "
8951 "possible to start with a big datagram size (up to 64K-headers bytes long) "
8952 "and let it shrink by updates of the path MTU."
8953 msgstr ""
8954
8955 #. type: Plain text
8956 #: build/C/man7/ip.7:512
8957 msgid ""
8958 "To get an initial estimate of the path MTU, connect a datagram socket to the "
8959 "destination address using B<connect>(2)  and retrieve the MTU by calling "
8960 "B<getsockopt>(2)  with the B<IP_MTU> option."
8961 msgstr ""
8962
8963 #. type: Plain text
8964 #: build/C/man7/ip.7:524
8965 msgid ""
8966 "It is possible to implement RFC 4821 MTU probing with B<SOCK_DGRAM> or "
8967 "B<SOCK_RAW> sockets by setting a value of B<IP_PMTUDISC_PROBE> (available "
8968 "since Linux 2.6.22).  This is also particularly useful for diagnostic tools "
8969 "such as B<tracepath>(8)  that wish to deliberately send probe packets larger "
8970 "than the observed Path MTU."
8971 msgstr ""
8972
8973 #. type: TP
8974 #: build/C/man7/ip.7:524
8975 #, no-wrap
8976 msgid "B<IP_MULTICAST_ALL> (since Linux 2.6.31)"
8977 msgstr ""
8978
8979 #. type: Plain text
8980 #: build/C/man7/ip.7:538
8981 msgid ""
8982 "This option can be used to modify the delivery policy of multicast messages "
8983 "to sockets bound to the wildcard B<INADDR_ANY> address.  The argument is a "
8984 "boolean integer (defaults to 1).  If set to 1, the socket will receive "
8985 "messages from all the groups that have been joined globally on the whole "
8986 "system.  Otherwise, it will deliver messages only from the groups that have "
8987 "been explicitly joined (for example via the B<IP_ADD_MEMBERSHIP> option) on "
8988 "this particular socket."
8989 msgstr ""
8990
8991 #. type: TP
8992 #: build/C/man7/ip.7:538
8993 #, no-wrap
8994 msgid "B<IP_MULTICAST_IF> (since Linux 1.2)"
8995 msgstr ""
8996
8997 #. type: Plain text
8998 #: build/C/man7/ip.7:547
8999 msgid ""
9000 "Set the local device for a multicast socket.  Argument is an I<ip_mreqn> or "
9001 "I<ip_mreq> structure similar to B<IP_ADD_MEMBERSHIP>."
9002 msgstr ""
9003
9004 #. type: Plain text
9005 #: build/C/man7/ip.7:551
9006 msgid "When an invalid socket option is passed, B<ENOPROTOOPT> is returned."
9007 msgstr ""
9008
9009 #. type: TP
9010 #: build/C/man7/ip.7:551
9011 #, no-wrap
9012 msgid "B<IP_MULTICAST_LOOP> (since Linux 1.2)"
9013 msgstr ""
9014
9015 #. type: Plain text
9016 #: build/C/man7/ip.7:555
9017 msgid ""
9018 "Set or read a boolean integer argument that determines whether sent "
9019 "multicast packets should be looped back to the local sockets."
9020 msgstr ""
9021
9022 #. type: TP
9023 #: build/C/man7/ip.7:555
9024 #, no-wrap
9025 msgid "B<IP_MULTICAST_TTL> (since Linux 1.2)"
9026 msgstr ""
9027
9028 #. type: Plain text
9029 #: build/C/man7/ip.7:563
9030 msgid ""
9031 "Set or read the time-to-live value of outgoing multicast packets for this "
9032 "socket.  It is very important for multicast packets to set the smallest TTL "
9033 "possible.  The default is 1 which means that multicast packets don't leave "
9034 "the local network unless the user program explicitly requests it.  Argument "
9035 "is an integer."
9036 msgstr ""
9037
9038 #. type: TP
9039 #: build/C/man7/ip.7:563
9040 #, no-wrap
9041 msgid "B<IP_NODEFRAG> (since Linux 2.6.36)"
9042 msgstr ""
9043
9044 #. type: Plain text
9045 #: build/C/man7/ip.7:571
9046 msgid ""
9047 "If enabled (argument is nonzero), the reassembly of outgoing packets is "
9048 "disabled in the netfilter layer.  This option is valid only for B<SOCK_RAW> "
9049 "sockets.  The argument is an integer."
9050 msgstr ""
9051
9052 #. type: TP
9053 #: build/C/man7/ip.7:571
9054 #, no-wrap
9055 msgid "B<IP_OPTIONS> (since Linux 2.0)"
9056 msgstr ""
9057
9058 #.  Precisely: 1.3.30
9059 #. type: Plain text
9060 #: build/C/man7/ip.7:600
9061 msgid ""
9062 "Set or get the IP options to be sent with every packet from this socket.  "
9063 "The arguments are a pointer to a memory buffer containing the options and "
9064 "the option length.  The B<setsockopt>(2)  call sets the IP options "
9065 "associated with a socket.  The maximum option size for IPv4 is 40 bytes.  "
9066 "See RFC\\ 791 for the allowed options.  When the initial connection request "
9067 "packet for a B<SOCK_STREAM> socket contains IP options, the IP options will "
9068 "be set automatically to the options from the initial packet with routing "
9069 "headers reversed.  Incoming packets are not allowed to change options after "
9070 "the connection is established.  The processing of all incoming source "
9071 "routing options is disabled by default and can be enabled by using the "
9072 "I<accept_source_route> I</proc> interface.  Other options like timestamps "
9073 "are still handled.  For datagram sockets, IP options can be only set by the "
9074 "local user.  Calling B<getsockopt>(2)  with B<IP_OPTIONS> puts the current "
9075 "IP options used for sending into the supplied buffer."
9076 msgstr ""
9077
9078 #. type: TP
9079 #: build/C/man7/ip.7:600
9080 #, no-wrap
9081 msgid "B<IP_PKTINFO> (since Linux 2.2)"
9082 msgstr ""
9083
9084 #.  Precisely: 2.1.68
9085 #. type: Plain text
9086 #: build/C/man7/ip.7:617
9087 msgid ""
9088 "Pass an B<IP_PKTINFO> ancillary message that contains a I<pktinfo> structure "
9089 "that supplies some information about the incoming packet.  This only works "
9090 "for datagram oriented sockets.  The argument is a flag that tells the socket "
9091 "whether the B<IP_PKTINFO> message should be passed or not.  The message "
9092 "itself can only be sent/retrieved as control message with a packet using "
9093 "B<recvmsg>(2)  or B<sendmsg>(2)."
9094 msgstr ""
9095
9096 #. type: Plain text
9097 #: build/C/man7/ip.7:626
9098 #, no-wrap
9099 msgid ""
9100 "struct in_pktinfo {\n"
9101 "    unsigned int   ipi_ifindex;  /* Interface index */\n"
9102 "    struct in_addr ipi_spec_dst; /* Local address */\n"
9103 "    struct in_addr ipi_addr;     /* Header Destination\n"
9104 "                                    address */\n"
9105 "};\n"
9106 msgstr ""
9107
9108 #.  FIXME elaborate on that.
9109 #.  This field is grossly misnamed
9110 #. type: Plain text
9111 #: build/C/man7/ip.7:651
9112 msgid ""
9113 "I<ipi_ifindex> is the unique index of the interface the packet was received "
9114 "on.  I<ipi_spec_dst> is the local address of the packet and I<ipi_addr> is "
9115 "the destination address in the packet header.  If B<IP_PKTINFO> is passed to "
9116 "B<sendmsg>(2)  and I<ipi_spec_dst> is not zero, then it is used as the local "
9117 "source address for the routing table lookup and for setting up IP source "
9118 "route options.  When I<ipi_ifindex> is not zero, the primary local address "
9119 "of the interface specified by the index overwrites I<ipi_spec_dst> for the "
9120 "routing table lookup."
9121 msgstr ""
9122
9123 #. type: TP
9124 #: build/C/man7/ip.7:651
9125 #, no-wrap
9126 msgid "B<IP_RECVERR> (since Linux 2.2)"
9127 msgstr ""
9128
9129 #.  Precisely: 2.1.15
9130 #.  or SOL_IP on Linux
9131 #. type: Plain text
9132 #: build/C/man7/ip.7:673
9133 msgid ""
9134 "Enable extended reliable error message passing.  When enabled on a datagram "
9135 "socket, all generated errors will be queued in a per-socket error queue.  "
9136 "When the user receives an error from a socket operation, the errors can be "
9137 "received by calling B<recvmsg>(2)  with the B<MSG_ERRQUEUE> flag set.  The "
9138 "I<sock_extended_err> structure describing the error will be passed in an "
9139 "ancillary message with the type B<IP_RECVERR> and the level B<IPPROTO_IP>.  "
9140 "This is useful for reliable error handling on unconnected sockets.  The "
9141 "received data portion of the error queue contains the error packet."
9142 msgstr ""
9143
9144 #. type: Plain text
9145 #: build/C/man7/ip.7:679
9146 msgid "The B<IP_RECVERR> control message contains a I<sock_extended_err> structure:"
9147 msgstr ""
9148
9149 #. type: Plain text
9150 #: build/C/man7/ip.7:687
9151 #, no-wrap
9152 msgid ""
9153 "#define SO_EE_ORIGIN_NONE    0\n"
9154 "#define SO_EE_ORIGIN_LOCAL   1\n"
9155 "#define SO_EE_ORIGIN_ICMP    2\n"
9156 "#define SO_EE_ORIGIN_ICMP6   3\n"
9157 msgstr ""
9158
9159 #. type: Plain text
9160 #: build/C/man7/ip.7:698
9161 #, no-wrap
9162 msgid ""
9163 "struct sock_extended_err {\n"
9164 "    uint32_t ee_errno;   /* error number */\n"
9165 "    uint8_t  ee_origin;  /* where the error originated */\n"
9166 "    uint8_t  ee_type;    /* type */\n"
9167 "    uint8_t  ee_code;    /* code */\n"
9168 "    uint8_t  ee_pad;\n"
9169 "    uint32_t ee_info;    /* additional information */\n"
9170 "    uint32_t ee_data;    /* other data */\n"
9171 "    /* More data may follow */\n"
9172 "};\n"
9173 msgstr ""
9174
9175 #. type: Plain text
9176 #: build/C/man7/ip.7:700
9177 #, no-wrap
9178 msgid "struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *);\n"
9179 msgstr ""
9180
9181 #. type: Plain text
9182 #: build/C/man7/ip.7:723
9183 msgid ""
9184 "I<ee_errno> contains the I<errno> number of the queued error.  I<ee_origin> "
9185 "is the origin code of where the error originated.  The other fields are "
9186 "protocol-specific.  The macro B<SO_EE_OFFENDER> returns a pointer to the "
9187 "address of the network object where the error originated from given a "
9188 "pointer to the ancillary message.  If this address is not known, the "
9189 "I<sa_family> member of the I<sockaddr> contains B<AF_UNSPEC> and the other "
9190 "fields of the I<sockaddr> are undefined."
9191 msgstr ""
9192
9193 #.  FIXME . Is it a good idea to document that? It is a dubious feature.
9194 #.  On
9195 #.  .B SOCK_STREAM
9196 #.  sockets,
9197 #.  .B IP_RECVERR
9198 #.  has slightly different semantics. Instead of
9199 #.  saving the errors for the next timeout, it passes all incoming
9200 #.  errors immediately to the user.
9201 #.  This might be useful for very short-lived TCP connections which
9202 #.  need fast error handling. Use this option with care:
9203 #.  it makes TCP unreliable
9204 #.  by not allowing it to recover properly from routing
9205 #.  shifts and other normal
9206 #.  conditions and breaks the protocol specification.
9207 #. type: Plain text
9208 #: build/C/man7/ip.7:782
9209 msgid ""
9210 "IP uses the I<sock_extended_err> structure as follows: I<ee_origin> is set "
9211 "to B<SO_EE_ORIGIN_ICMP> for errors received as an ICMP packet, or "
9212 "B<SO_EE_ORIGIN_LOCAL> for locally generated errors.  Unknown values should "
9213 "be ignored.  I<ee_type> and I<ee_code> are set from the type and code fields "
9214 "of the ICMP header.  I<ee_info> contains the discovered MTU for B<EMSGSIZE> "
9215 "errors.  The message also contains the I<sockaddr_in of the node> caused the "
9216 "error, which can be accessed with the B<SO_EE_OFFENDER> macro.  The "
9217 "I<sin_family> field of the B<SO_EE_OFFENDER> address is B<AF_UNSPEC> when "
9218 "the source was unknown.  When the error originated from the network, all IP "
9219 "options (B<IP_OPTIONS>, B<IP_TTL>, etc.) enabled on the socket and contained "
9220 "in the error packet are passed as control messages.  The payload of the "
9221 "packet causing the error is returned as normal payload.  Note that TCP has "
9222 "no error queue; B<MSG_ERRQUEUE> is not permitted on B<SOCK_STREAM> sockets.  "
9223 "B<IP_RECVERR> is valid for TCP, but all errors are returned by socket "
9224 "function return or B<SO_ERROR> only."
9225 msgstr ""
9226
9227 #. type: Plain text
9228 #: build/C/man7/ip.7:787
9229 msgid ""
9230 "For raw sockets, B<IP_RECVERR> enables passing of all received ICMP errors "
9231 "to the application, otherwise errors are only reported on connected sockets"
9232 msgstr ""
9233
9234 #. type: Plain text
9235 #: build/C/man7/ip.7:791
9236 msgid ""
9237 "It sets or retrieves an integer boolean flag.  B<IP_RECVERR> defaults to "
9238 "off."
9239 msgstr ""
9240
9241 #. type: TP
9242 #: build/C/man7/ip.7:791
9243 #, no-wrap
9244 msgid "B<IP_RECVOPTS> (since Linux 2.2)"
9245 msgstr ""
9246
9247 #.  Precisely: 2.1.15
9248 #. type: Plain text
9249 #: build/C/man7/ip.7:802
9250 msgid ""
9251 "Pass all incoming IP options to the user in a B<IP_OPTIONS> control "
9252 "message.  The routing header and other options are already filled in for the "
9253 "local host.  Not supported for B<SOCK_STREAM> sockets."
9254 msgstr ""
9255
9256 #. type: TP
9257 #: build/C/man7/ip.7:802
9258 #, no-wrap
9259 msgid "B<IP_RECVORIGDSTADDR> (since Linux 2.6.29)"
9260 msgstr ""
9261
9262 #.  commit e8b2dfe9b4501ed0047459b2756ba26e5a940a69
9263 #. type: Plain text
9264 #: build/C/man7/ip.7:813
9265 msgid ""
9266 "This boolean option enables the B<IP_ORIGDSTADDR> ancillary message in "
9267 "B<recvmsg>(2), in which the kernel returns the original destination address "
9268 "of the datagram being received.  The ancillary message contains a I<struct "
9269 "sockaddr_in>."
9270 msgstr ""
9271
9272 #. type: TP
9273 #: build/C/man7/ip.7:813
9274 #, no-wrap
9275 msgid "B<IP_RECVTOS> (since Linux 2.2)"
9276 msgstr ""
9277
9278 #.  Precisely: 2.1.68
9279 #. type: Plain text
9280 #: build/C/man7/ip.7:822
9281 msgid ""
9282 "If enabled the B<IP_TOS> ancillary message is passed with incoming packets.  "
9283 "It contains a byte which specifies the Type of Service/Precedence field of "
9284 "the packet header.  Expects a boolean integer flag."
9285 msgstr ""
9286
9287 #. type: TP
9288 #: build/C/man7/ip.7:822
9289 #, no-wrap
9290 msgid "B<IP_RECVTTL> (since Linux 2.2)"
9291 msgstr ""
9292
9293 #.  Precisely: 2.1.68
9294 #. type: Plain text
9295 #: build/C/man7/ip.7:832
9296 msgid ""
9297 "When this flag is set, pass a B<IP_TTL> control message with the time to "
9298 "live field of the received packet as a byte.  Not supported for "
9299 "B<SOCK_STREAM> sockets."
9300 msgstr ""
9301
9302 #. type: TP
9303 #: build/C/man7/ip.7:832
9304 #, no-wrap
9305 msgid "B<IP_RETOPTS> (since Linux 2.2)"
9306 msgstr ""
9307
9308 #.  Precisely: 2.1.15
9309 #. type: Plain text
9310 #: build/C/man7/ip.7:839
9311 msgid ""
9312 "Identical to B<IP_RECVOPTS>, but returns raw unprocessed options with "
9313 "timestamp and route record options not filled in for this hop."
9314 msgstr ""
9315
9316 #. type: TP
9317 #: build/C/man7/ip.7:839
9318 #, no-wrap
9319 msgid "B<IP_ROUTER_ALERT> (since Linux 2.2)"
9320 msgstr ""
9321
9322 #.  Precisely: 2.1.68
9323 #. type: Plain text
9324 #: build/C/man7/ip.7:851
9325 msgid ""
9326 "Pass all to-be forwarded packets with the IP Router Alert option set to this "
9327 "socket.  Only valid for raw sockets.  This is useful, for instance, for "
9328 "user-space RSVP daemons.  The tapped packets are not forwarded by the "
9329 "kernel; it is the user's responsibility to send them out again.  Socket "
9330 "binding is ignored, such packets are only filtered by protocol.  Expects an "
9331 "integer flag."
9332 msgstr ""
9333
9334 #. type: TP
9335 #: build/C/man7/ip.7:851
9336 #, no-wrap
9337 msgid "B<IP_TOS> (since Linux 1.0)"
9338 msgstr ""
9339
9340 #.  FIXME elaborate on this
9341 #.  Needs CAP_NET_ADMIN
9342 #.  Boolean
9343 #.  Since Linux 2.6.27
9344 #.  Author: KOVACS Krisztian <hidden@sch.bme.hu>
9345 #.  http://lwn.net/Articles/252545/
9346 #. type: Plain text
9347 #: build/C/man7/ip.7:885
9348 msgid ""
9349 "Set or receive the Type-Of-Service (TOS) field that is sent with every IP "
9350 "packet originating from this socket.  It is used to prioritize packets on "
9351 "the network.  TOS is a byte.  There are some standard TOS flags defined: "
9352 "B<IPTOS_LOWDELAY> to minimize delays for interactive traffic, "
9353 "B<IPTOS_THROUGHPUT> to optimize throughput, B<IPTOS_RELIABILITY> to optimize "
9354 "for reliability, B<IPTOS_MINCOST> should be used for \"filler data\" where "
9355 "slow transmission doesn't matter.  At most one of these TOS values can be "
9356 "specified.  Other bits are invalid and shall be cleared.  Linux sends "
9357 "B<IPTOS_LOWDELAY> datagrams first by default, but the exact behavior depends "
9358 "on the configured queueing discipline.  Some high priority levels may "
9359 "require superuser privileges (the B<CAP_NET_ADMIN> capability).  The "
9360 "priority can also be set in a protocol independent way by the "
9361 "(B<SOL_SOCKET>, B<SO_PRIORITY>)  socket option (see B<socket>(7))."
9362 msgstr ""
9363
9364 #. type: TP
9365 #: build/C/man7/ip.7:885
9366 #, no-wrap
9367 msgid "B<IP_TRANSPARENT> (since Linux 2.6.24)"
9368 msgstr ""
9369
9370 #.  commit f5715aea4564f233767ea1d944b2637a5fd7cd2e
9371 #.      This patch introduces the IP_TRANSPARENT socket option: enabling that
9372 #.      will make the IPv4 routing omit the non-local source address check on
9373 #.      output. Setting IP_TRANSPARENT requires NET_ADMIN capability.
9374 #.  http://lwn.net/Articles/252545/
9375 #. type: Plain text
9376 #: build/C/man7/ip.7:902
9377 msgid ""
9378 "Setting this boolean option enables transparent proxying on this socket.  "
9379 "This socket option allows the calling application to bind to a nonlocal IP "
9380 "address and operate both as a client and a server with the foreign address "
9381 "as the local endpoint.  NOTE: this requires that routing be set up in a way "
9382 "that packets going to the foreign address are routed through the TProxy "
9383 "box.  Enabling this socket option requires superuser privileges (the "
9384 "B<CAP_NET_ADMIN> capability)."
9385 msgstr ""
9386
9387 #. type: Plain text
9388 #: build/C/man7/ip.7:905
9389 msgid ""
9390 "TProxy redirection with the iptables TPROXY target also requires that this "
9391 "option be set on the redirected socket."
9392 msgstr ""
9393
9394 #. type: TP
9395 #: build/C/man7/ip.7:905
9396 #, no-wrap
9397 msgid "B<IP_TTL> (since Linux 1.0)"
9398 msgstr ""
9399
9400 #. type: Plain text
9401 #: build/C/man7/ip.7:909
9402 msgid ""
9403 "Set or retrieve the current time-to-live field that is used in every packet "
9404 "sent from this socket."
9405 msgstr ""
9406
9407 #. type: TP
9408 #: build/C/man7/ip.7:909
9409 #, no-wrap
9410 msgid "B<IP_UNBLOCK_SOURCE> (since Linux 2.4.22 / 2.5.68)"
9411 msgstr ""
9412
9413 #. type: Plain text
9414 #: build/C/man7/ip.7:915
9415 msgid ""
9416 "Unblock previously blocked multicast source.  Returns B<EADDRNOTAVAIL> when "
9417 "given source is not being blocked."
9418 msgstr ""
9419
9420 #.  FIXME As at 2.6.12, 14 Jun 2005, the following are undocumented:
9421 #.      ip_queue_maxlen
9422 #.      ip_conntrack_max
9423 #. type: Plain text
9424 #: build/C/man7/ip.7:936
9425 msgid ""
9426 "The IP protocol supports a set of I</proc> interfaces to configure some "
9427 "global parameters.  The parameters can be accessed by reading or writing "
9428 "files in the directory I</proc/sys/net/ipv4/>.  Interfaces described as "
9429 "I<Boolean> take an integer value, with a nonzero value (\"true\") meaning "
9430 "that the corresponding option is enabled, and a zero value (\"false\")  "
9431 "meaning that the option is disabled."
9432 msgstr ""
9433
9434 #. type: TP
9435 #: build/C/man7/ip.7:936
9436 #, no-wrap
9437 msgid "I<ip_always_defrag> (Boolean; since Linux 2.2.13)"
9438 msgstr ""
9439
9440 #. type: Plain text
9441 #: build/C/man7/ip.7:942
9442 msgid ""
9443 "[New with kernel 2.2.13; in earlier kernel versions this feature was "
9444 "controlled at compile time by the B<CONFIG_IP_ALWAYS_DEFRAG> option; this "
9445 "option is not present in 2.4.x and later]"
9446 msgstr ""
9447
9448 #. type: Plain text
9449 #: build/C/man7/ip.7:949
9450 msgid ""
9451 "When this boolean flag is enabled (not equal 0), incoming fragments (parts "
9452 "of IP packets that arose when some host between origin and destination "
9453 "decided that the packets were too large and cut them into pieces) will be "
9454 "reassembled (defragmented) before being processed, even if they are about to "
9455 "be forwarded."
9456 msgstr ""
9457
9458 #. type: Plain text
9459 #: build/C/man7/ip.7:956
9460 msgid ""
9461 "Only enable if running either a firewall that is the sole link to your "
9462 "network or a transparent proxy; never ever use it for a normal router or "
9463 "host.  Otherwise fragmented communication can be disturbed if the fragments "
9464 "travel over different links.  Defragmentation also has a large memory and "
9465 "CPU time cost."
9466 msgstr ""
9467
9468 #. type: Plain text
9469 #: build/C/man7/ip.7:960
9470 msgid ""
9471 "This is automagically turned on when masquerading or transparent proxying "
9472 "are configured."
9473 msgstr ""
9474
9475 #. type: TP
9476 #: build/C/man7/ip.7:960
9477 #, no-wrap
9478 msgid "I<ip_autoconfig> (since Linux 2.2 to 2.6.17)"
9479 msgstr ""
9480
9481 #.  Precisely: since 2.1.68
9482 #.  FIXME document ip_autoconfig
9483 #. type: Plain text
9484 #: build/C/man7/ip.7:966
9485 msgid "Not documented."
9486 msgstr ""
9487
9488 #. type: TP
9489 #: build/C/man7/ip.7:966
9490 #, no-wrap
9491 msgid "I<ip_default_ttl> (integer; default: 64; since Linux 2.2)"
9492 msgstr ""
9493
9494 #.  Precisely: 2.1.15
9495 #. type: Plain text
9496 #: build/C/man7/ip.7:974
9497 msgid ""
9498 "Set the default time-to-live value of outgoing packets.  This can be changed "
9499 "per socket with the B<IP_TTL> option."
9500 msgstr ""
9501
9502 #. type: TP
9503 #: build/C/man7/ip.7:974
9504 #, no-wrap
9505 msgid "I<ip_dynaddr> (Boolean; default: disabled; since Linux 2.0.31)"
9506 msgstr ""
9507
9508 #. type: Plain text
9509 #: build/C/man7/ip.7:981
9510 msgid ""
9511 "Enable dynamic socket address and masquerading entry rewriting on interface "
9512 "address change.  This is useful for dialup interface with changing IP "
9513 "addresses.  0 means no rewriting, 1 turns it on and 2 enables verbose mode."
9514 msgstr ""
9515
9516 #. type: TP
9517 #: build/C/man7/ip.7:981
9518 #, no-wrap
9519 msgid "I<ip_forward> (Boolean; default: disabled; since Linux 1.2)"
9520 msgstr ""
9521
9522 #. type: Plain text
9523 #: build/C/man7/ip.7:986
9524 msgid ""
9525 "Enable IP forwarding with a boolean flag.  IP forwarding can be also set on "
9526 "a per-interface basis."
9527 msgstr ""
9528
9529 #. type: TP
9530 #: build/C/man7/ip.7:986
9531 #, no-wrap
9532 msgid "I<ip_local_port_range> (since Linux 2.2)"
9533 msgstr ""
9534
9535 #.  Precisely: since 2.1.68
9536 #. type: Plain text
9537 #: build/C/man7/ip.7:1000
9538 msgid ""
9539 "Contains two integers that define the default local port range allocated to "
9540 "sockets.  Allocation starts with the first number and ends with the second "
9541 "number.  Note that these should not conflict with the ports used by "
9542 "masquerading (although the case is handled).  Also arbitrary choices may "
9543 "cause problems with some firewall packet filters that make assumptions about "
9544 "the local ports in use.  First number should be at least greater than 1024, "
9545 "or better, greater than 4096, to avoid clashes with well known ports and to "
9546 "minimize firewall problems."
9547 msgstr ""
9548
9549 #. type: TP
9550 #: build/C/man7/ip.7:1000
9551 #, no-wrap
9552 msgid "I<ip_no_pmtu_disc> (Boolean; default: disabled; since Linux 2.2)"
9553 msgstr ""
9554
9555 #.  Precisely: 2.1.15
9556 #
9557 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
9558 #. type: Plain text
9559 #: build/C/man7/ip.7:1012
9560 msgid ""
9561 "If enabled, don't do Path MTU Discovery for TCP sockets by default.  Path "
9562 "MTU discovery may fail if misconfigured firewalls (that drop all ICMP "
9563 "packets) or misconfigured interfaces (e.g., a point-to-point link where the "
9564 "both ends don't agree on the MTU) are on the path.  It is better to fix the "
9565 "broken routers on the path than to turn off Path MTU Discovery globally, "
9566 "because not doing it incurs a high cost to the network."
9567 msgstr ""
9568
9569 #. type: TP
9570 #: build/C/man7/ip.7:1012
9571 #, no-wrap
9572 msgid "I<ip_nonlocal_bind> (Boolean; default: disabled; since Linux 2.4)"
9573 msgstr ""
9574
9575 #.  Precisely: patch-2.4.0-test10
9576 #
9577 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
9578 #. type: Plain text
9579 #: build/C/man7/ip.7:1021
9580 msgid ""
9581 "If set, allows processes to B<bind>(2)  to nonlocal IP addresses, which can "
9582 "be quite useful, but may break some applications."
9583 msgstr ""
9584
9585 #. type: TP
9586 #: build/C/man7/ip.7:1021
9587 #, no-wrap
9588 msgid "I<ip6frag_time> (integer; default: 30)"
9589 msgstr ""
9590
9591 #
9592 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
9593 #. type: Plain text
9594 #: build/C/man7/ip.7:1026
9595 msgid "Time in seconds to keep an IPv6 fragment in memory."
9596 msgstr ""
9597
9598 #. type: TP
9599 #: build/C/man7/ip.7:1026
9600 #, no-wrap
9601 msgid "I<ip6frag_secret_interval> (integer; default: 600)"
9602 msgstr ""
9603
9604 #. type: Plain text
9605 #: build/C/man7/ip.7:1030
9606 msgid ""
9607 "Regeneration interval (in seconds) of the hash secret (or lifetime for the "
9608 "hash secret) for IPv6 fragments."
9609 msgstr ""
9610
9611 #. type: TP
9612 #: build/C/man7/ip.7:1030
9613 #, no-wrap
9614 msgid "I<ipfrag_high_thresh> (integer), I<ipfrag_low_thresh> (integer)"
9615 msgstr ""
9616
9617 #. type: Plain text
9618 #: build/C/man7/ip.7:1037
9619 msgid ""
9620 "If the amount of queued IP fragments reaches I<ipfrag_high_thresh>, the "
9621 "queue is pruned down to I<ipfrag_low_thresh>.  Contains an integer with the "
9622 "number of bytes."
9623 msgstr ""
9624
9625 #. type: TP
9626 #: build/C/man7/ip.7:1037
9627 #, no-wrap
9628 msgid "I<neigh/*>"
9629 msgstr ""
9630
9631 #.  FIXME Document the conf/*/* interfaces
9632 #.  FIXME Document the route/* interfaces
9633 #.  FIXME document them all
9634 #. type: Plain text
9635 #: build/C/man7/ip.7:1044
9636 msgid "See B<arp>(7)."
9637 msgstr ""
9638
9639 #.  2006-04-02, mtk
9640 #.  commented out the following because ipchains is obsolete
9641 #.  .PP
9642 #.  The ioctls to configure firewalling are documented in
9643 #.  .BR ipfw (4)
9644 #.  from the
9645 #.  .B ipchains
9646 #.  package.
9647 #. type: Plain text
9648 #: build/C/man7/ip.7:1057
9649 msgid "All ioctls described in B<socket>(7)  apply to B<ip>."
9650 msgstr ""
9651
9652 #.  FIXME Add a discussion of multicasting
9653 #. type: Plain text
9654 #: build/C/man7/ip.7:1061
9655 msgid ""
9656 "Ioctls to configure generic device parameters are described in "
9657 "B<netdevice>(7)."
9658 msgstr ""
9659
9660 #. type: Plain text
9661 #: build/C/man7/ip.7:1081
9662 msgid ""
9663 "The user tried to execute an operation without the necessary permissions.  "
9664 "These include: sending a packet to a broadcast address without having the "
9665 "B<SO_BROADCAST> flag set; sending a packet via a I<prohibit> route; "
9666 "modifying firewall settings without superuser privileges (the "
9667 "B<CAP_NET_ADMIN> capability); binding to a privileged port without superuser "
9668 "privileges (the B<CAP_NET_BIND_SERVICE> capability)."
9669 msgstr ""
9670
9671 #. type: Plain text
9672 #: build/C/man7/ip.7:1094
9673 msgid "An connection operation on a nonblocking socket is already in progress."
9674 msgstr ""
9675
9676 #. type: Plain text
9677 #: build/C/man7/ip.7:1103
9678 msgid ""
9679 "No valid routing table entry matches the destination address.  This error "
9680 "can be caused by a ICMP message from a remote router or for the local "
9681 "routing table."
9682 msgstr ""
9683
9684 #. type: Plain text
9685 #: build/C/man7/ip.7:1109
9686 msgid ""
9687 "Invalid argument passed.  For send operations this can be caused by sending "
9688 "to a I<blackhole> route."
9689 msgstr ""
9690
9691 #. type: Plain text
9692 #: build/C/man7/ip.7:1116
9693 msgid "Datagram is bigger than an MTU on the path and it cannot be fragmented."
9694 msgstr ""
9695
9696 #. type: TP
9697 #: build/C/man7/ip.7:1116
9698 #, no-wrap
9699 msgid "B<ENOBUFS>, B<ENOMEM>"
9700 msgstr ""
9701
9702 #. type: Plain text
9703 #: build/C/man7/ip.7:1121
9704 msgid ""
9705 "Not enough free memory.  This often means that the memory allocation is "
9706 "limited by the socket buffer limits, not by the system memory, but this is "
9707 "not 100% consistent."
9708 msgstr ""
9709
9710 #. type: Plain text
9711 #: build/C/man7/ip.7:1139
9712 msgid ""
9713 "User doesn't have permission to set high priority, change configuration, or "
9714 "send signals to the requested process or group."
9715 msgstr ""
9716
9717 #. type: Plain text
9718 #: build/C/man7/ip.7:1145
9719 msgid "The socket is not configured or an unknown socket type was requested."
9720 msgstr ""
9721
9722 #. type: Plain text
9723 #: build/C/man7/ip.7:1152
9724 msgid ""
9725 "Other errors may be generated by the overlaying protocols; see B<tcp>(7), "
9726 "B<raw>(7), B<udp>(7)  and B<socket>(7)."
9727 msgstr ""
9728
9729 #.  IP_PASSSEC is Linux-specific
9730 #.  IP_XFRM_POLICY is Linux-specific
9731 #.  IP_IPSEC_POLICY is a nonstandard extension, also present on some BSDs
9732 #. type: Plain text
9733 #: build/C/man7/ip.7:1167
9734 msgid ""
9735 "B<IP_FREEBIND>, B<IP_MSFILTER>, B<IP_MTU>, B<IP_MTU_DISCOVER>, "
9736 "B<IP_RECVORIGDSTADDR>, B<IP_PKTINFO>, B<IP_RECVERR>, B<IP_ROUTER_ALERT>, and "
9737 "B<IP_TRANSPARENT> are Linux-specific."
9738 msgstr ""
9739
9740 #. type: Plain text
9741 #: build/C/man7/ip.7:1176
9742 msgid ""
9743 "Be very careful with the B<SO_BROADCAST> option - it is not privileged in "
9744 "Linux.  It is easy to overload the network with careless broadcasts.  For "
9745 "new application protocols it is better to use a multicast group instead of "
9746 "broadcasting.  Broadcasting is discouraged."
9747 msgstr ""
9748
9749 #. type: Plain text
9750 #: build/C/man7/ip.7:1186
9751 msgid ""
9752 "Some other BSD sockets implementations provide B<IP_RCVDSTADDR> and "
9753 "B<IP_RECVIF> socket options to get the destination address and the interface "
9754 "of received datagrams.  Linux has the more general B<IP_PKTINFO> for the "
9755 "same task."
9756 msgstr ""
9757
9758 #. type: Plain text
9759 #: build/C/man7/ip.7:1195
9760 msgid ""
9761 "Some BSD sockets implementations also provide an B<IP_RECVTTL> option, but "
9762 "an ancillary message with type B<IP_RECVTTL> is passed with the incoming "
9763 "packet.  This is different from the B<IP_TTL> option used in Linux."
9764 msgstr ""
9765
9766 #. type: Plain text
9767 #: build/C/man7/ip.7:1201
9768 msgid ""
9769 "Using B<SOL_IP> socket options level isn't portable, BSD-based stacks use "
9770 "B<IPPROTO_IP> level."
9771 msgstr ""
9772
9773 #. type: Plain text
9774 #: build/C/man7/ip.7:1214
9775 msgid ""
9776 "For compatibility with Linux 2.0, the obsolete B<socket(AF_INET, "
9777 "SOCK_PACKET, >I<protocol>B<)> syntax is still supported to open a "
9778 "B<packet>(7)  socket.  This is deprecated and should be replaced by "
9779 "B<socket(AF_PACKET, SOCK_RAW, >I<protocol>B<)> instead.  The main difference "
9780 "is the new I<sockaddr_ll> address structure for generic link layer "
9781 "information instead of the old B<sockaddr_pkt>."
9782 msgstr ""
9783
9784 #. type: Plain text
9785 #: build/C/man7/ip.7:1219
9786 msgid ""
9787 "The ioctls to configure IP-specific interface options and ARP tables are not "
9788 "described."
9789 msgstr ""
9790
9791 #. type: Plain text
9792 #: build/C/man7/ip.7:1223
9793 msgid ""
9794 "Some versions of glibc forget to declare I<in_pktinfo>.  Workaround "
9795 "currently is to copy it into your program from this man page."
9796 msgstr ""
9797
9798 #.  .SH AUTHORS
9799 #.  This man page was written by Andi Kleen.
9800 #. type: Plain text
9801 #: build/C/man7/ip.7:1233
9802 msgid ""
9803 "Receiving the original destination address with B<MSG_ERRQUEUE> in "
9804 "I<msg_name> by B<recvmsg>(2)  does not work in some 2.2 kernels."
9805 msgstr ""
9806
9807 #. type: Plain text
9808 #: build/C/man7/ip.7:1246
9809 msgid ""
9810 "B<recvmsg>(2), B<sendmsg>(2), B<byteorder>(3), B<ipfw>(4), "
9811 "B<capabilities>(7), B<icmp>(7), B<ipv6>(7), B<netlink>(7), B<raw>(7), "
9812 "B<socket>(7), B<tcp>(7), B<udp>(7)"
9813 msgstr ""
9814
9815 #.  FIXME autobind INADDR REUSEADDR
9816 #. type: Plain text
9817 #: build/C/man7/ip.7:1251
9818 msgid ""
9819 "RFC\\ 791 for the original IP specification.  RFC\\ 1122 for the IPv4 host "
9820 "requirements.  RFC\\ 1812 for the IPv4 router requirements."
9821 msgstr ""
9822
9823 #. type: TH
9824 #: build/C/man7/ipv6.7:86
9825 #, no-wrap
9826 msgid "IPV6"
9827 msgstr ""
9828
9829 #. type: TH
9830 #: build/C/man7/ipv6.7:86
9831 #, no-wrap
9832 msgid "2012-12-16"
9833 msgstr ""
9834
9835 #. type: Plain text
9836 #: build/C/man7/ipv6.7:89
9837 msgid "ipv6 - Linux IPv6 protocol implementation"
9838 msgstr ""
9839
9840 #. type: Plain text
9841 #: build/C/man7/ipv6.7:95
9842 msgid "I<tcp6_socket>B< = socket(AF_INET6, SOCK_STREAM, 0);>"
9843 msgstr ""
9844
9845 #. type: Plain text
9846 #: build/C/man7/ipv6.7:97
9847 msgid "I<raw6_socket>B< = socket(AF_INET6, SOCK_RAW, >I<protocol>B<);>"
9848 msgstr ""
9849
9850 #. type: Plain text
9851 #: build/C/man7/ipv6.7:99
9852 msgid "I<udp6_socket>B< = socket(AF_INET6, SOCK_DGRAM, >I<protocol>B<);>"
9853 msgstr ""
9854
9855 #. type: Plain text
9856 #: build/C/man7/ipv6.7:106
9857 msgid ""
9858 "Linux 2.2 optionally implements the Internet Protocol, version 6.  This man "
9859 "page contains a description of the IPv6 basic API as implemented by the "
9860 "Linux kernel and glibc 2.1.  The interface is based on the BSD sockets "
9861 "interface; see B<socket>(7)."
9862 msgstr ""
9863
9864 #. type: Plain text
9865 #: build/C/man7/ipv6.7:111
9866 msgid ""
9867 "The IPv6 API aims to be mostly compatible with the IPv4 API (see B<ip>(7)).  "
9868 "Only differences are described in this man page."
9869 msgstr ""
9870
9871 #. type: Plain text
9872 #: build/C/man7/ipv6.7:123
9873 msgid ""
9874 "To bind an B<AF_INET6> socket to any process, the local address should be "
9875 "copied from the I<in6addr_any> variable which has I<in6_addr> type.  In "
9876 "static initializations, B<IN6ADDR_ANY_INIT> may also be used, which expands "
9877 "to a constant expression.  Both of them are in network byte order."
9878 msgstr ""
9879
9880 #. type: Plain text
9881 #: build/C/man7/ipv6.7:130
9882 msgid ""
9883 "The IPv6 loopback address (::1) is available in the global "
9884 "I<in6addr_loopback> variable.  For initializations, B<IN6ADDR_LOOPBACK_INIT> "
9885 "should be used."
9886 msgstr ""
9887
9888 #. type: Plain text
9889 #: build/C/man7/ipv6.7:137
9890 msgid ""
9891 "IPv4 connections can be handled with the v6 API by using the v4-mapped-on-v6 "
9892 "address type; thus a program only needs to support this API type to support "
9893 "both protocols.  This is handled transparently by the address handling "
9894 "functions in the C library."
9895 msgstr ""
9896
9897 #. type: Plain text
9898 #: build/C/man7/ipv6.7:142
9899 msgid ""
9900 "IPv4 and IPv6 share the local port space.  When you get an IPv4 connection "
9901 "or packet to a IPv6 socket, its source address will be mapped to v6 and it "
9902 "will be mapped to v6."
9903 msgstr ""
9904
9905 #. type: Plain text
9906 #: build/C/man7/ipv6.7:152
9907 #, no-wrap
9908 msgid ""
9909 "struct sockaddr_in6 {\n"
9910 "    sa_family_t     sin6_family;   /* AF_INET6 */\n"
9911 "    in_port_t       sin6_port;     /* port number */\n"
9912 "    uint32_t        sin6_flowinfo; /* IPv6 flow information */\n"
9913 "    struct in6_addr sin6_addr;     /* IPv6 address */\n"
9914 "    uint32_t        sin6_scope_id; /* Scope ID (new in 2.4) */\n"
9915 "};\n"
9916 msgstr ""
9917
9918 #. type: Plain text
9919 #: build/C/man7/ipv6.7:156
9920 #, no-wrap
9921 msgid ""
9922 "struct in6_addr {\n"
9923 "    unsigned char   s6_addr[16];   /* IPv6 address */\n"
9924 "};\n"
9925 msgstr ""
9926
9927 #. type: Plain text
9928 #: build/C/man7/ipv6.7:178
9929 msgid ""
9930 "I<sin6_family> is always set to B<AF_INET6>; I<sin6_port> is the protocol "
9931 "port (see I<sin_port> in B<ip>(7)); I<sin6_flowinfo> is the IPv6 flow "
9932 "identifier; I<sin6_addr> is the 128-bit IPv6 address.  I<sin6_scope_id> is "
9933 "an ID depending on the scope of the address.  It is new in Linux 2.4.  Linux "
9934 "supports it only for link-local addresses, in that case I<sin6_scope_id> "
9935 "contains the interface index (see B<netdevice>(7))"
9936 msgstr ""
9937
9938 #. type: Plain text
9939 #: build/C/man7/ipv6.7:184
9940 msgid ""
9941 "IPv6 supports several address types: unicast to address a single host, "
9942 "multicast to address a group of hosts, anycast to address the nearest member "
9943 "of a group of hosts (not implemented in Linux), IPv4-on-IPv6 to address a "
9944 "IPv4 host, and other reserved address types."
9945 msgstr ""
9946
9947 #. type: Plain text
9948 #: build/C/man7/ipv6.7:190
9949 msgid ""
9950 "The address notation for IPv6 is a group of 8 4-digit hexadecimal numbers, "
9951 "separated with a \\(aq:\\(aq.  \\&\"::\" stands for a string of 0 bits.  "
9952 "Special addresses are ::1 for loopback and ::FFFF:E<lt>IPv4 addressE<gt> for "
9953 "IPv4-mapped-on-IPv6."
9954 msgstr ""
9955
9956 #. type: Plain text
9957 #: build/C/man7/ipv6.7:192
9958 msgid "The port space of IPv6 is shared with IPv4."
9959 msgstr ""
9960
9961 #. type: Plain text
9962 #: build/C/man7/ipv6.7:200
9963 msgid ""
9964 "IPv6 supports some protocol-specific socket options that can be set with "
9965 "B<setsockopt>(2)  and read with B<getsockopt>(2).  The socket option level "
9966 "for IPv6 is B<IPPROTO_IPV6>.  A boolean integer flag is zero when it is "
9967 "false, otherwise true."
9968 msgstr ""
9969
9970 #. type: TP
9971 #: build/C/man7/ipv6.7:200
9972 #, no-wrap
9973 msgid "B<IPV6_ADDRFORM>"
9974 msgstr ""
9975
9976 #. type: Plain text
9977 #: build/C/man7/ipv6.7:214
9978 msgid ""
9979 "Turn an B<AF_INET6> socket into a socket of a different address family.  "
9980 "Only B<AF_INET> is currently supported for that.  It is allowed only for "
9981 "IPv6 sockets that are connected and bound to a v4-mapped-on-v6 address.  The "
9982 "argument is a pointer to an integer containing B<AF_INET>.  This is useful "
9983 "to pass v4-mapped sockets as file descriptors to programs that don't know "
9984 "how to deal with the IPv6 API."
9985 msgstr ""
9986
9987 #. type: TP
9988 #: build/C/man7/ipv6.7:214
9989 #, no-wrap
9990 msgid "B<IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP>"
9991 msgstr ""
9992
9993 #. type: Plain text
9994 #: build/C/man7/ipv6.7:219
9995 msgid ""
9996 "Control membership in multicast groups.  Argument is a pointer to a I<struct "
9997 "ipv6_mreq>."
9998 msgstr ""
9999
10000 #. type: TP
10001 #: build/C/man7/ipv6.7:219
10002 #, no-wrap
10003 msgid "B<IPV6_MTU>"
10004 msgstr ""
10005
10006 #. type: Plain text
10007 #: build/C/man7/ipv6.7:225
10008 msgid ""
10009 "B<getsockopt>(): Retrieve the current known path MTU of the current socket.  "
10010 "Only valid when the socket has been connected.  Returns an integer."
10011 msgstr ""
10012
10013 #. type: Plain text
10014 #: build/C/man7/ipv6.7:231
10015 msgid ""
10016 "B<setsockopt>(): Set the MTU to be used for the socket.  The MTU is limited "
10017 "by the device MTU or the path MTU when path MTU discovery is enabled.  "
10018 "Argument is a pointer to integer."
10019 msgstr ""
10020
10021 #. type: TP
10022 #: build/C/man7/ipv6.7:231
10023 #, no-wrap
10024 msgid "B<IPV6_MTU_DISCOVER>"
10025 msgstr ""
10026
10027 #. type: Plain text
10028 #: build/C/man7/ipv6.7:239
10029 msgid ""
10030 "Control path-MTU discovery on the socket.  See B<IP_MTU_DISCOVER> in "
10031 "B<ip>(7)  for details."
10032 msgstr ""
10033
10034 #. type: TP
10035 #: build/C/man7/ipv6.7:239
10036 #, no-wrap
10037 msgid "B<IPV6_MULTICAST_HOPS>"
10038 msgstr ""
10039
10040 #. type: Plain text
10041 #: build/C/man7/ipv6.7:246
10042 msgid ""
10043 "Set the multicast hop limit for the socket.  Argument is a pointer to an "
10044 "integer.  -1 in the value means use the route default, otherwise it should "
10045 "be between 0 and 255."
10046 msgstr ""
10047
10048 #. type: TP
10049 #: build/C/man7/ipv6.7:246
10050 #, no-wrap
10051 msgid "B<IPV6_MULTICAST_IF>"
10052 msgstr ""
10053
10054 #. type: Plain text
10055 #: build/C/man7/ipv6.7:257
10056 msgid ""
10057 "Set the device for outgoing multicast packets on the socket.  This is "
10058 "allowed only for B<SOCK_DGRAM> and B<SOCK_RAW> socket.  The argument is a "
10059 "pointer to an interface index (see B<netdevice>(7))  in an integer."
10060 msgstr ""
10061
10062 #. type: TP
10063 #: build/C/man7/ipv6.7:257
10064 #, no-wrap
10065 msgid "B<IPV6_MULTICAST_LOOP>"
10066 msgstr ""
10067
10068 #. type: Plain text
10069 #: build/C/man7/ipv6.7:261
10070 msgid ""
10071 "Control whether the socket sees multicast packets that it has send itself.  "
10072 "Argument is a pointer to boolean."
10073 msgstr ""
10074
10075 #. type: TP
10076 #: build/C/man7/ipv6.7:261
10077 #, no-wrap
10078 msgid "B<IPV6_RECVPKTINFO> (since Linux 2.6.14)"
10079 msgstr ""
10080
10081 #. type: Plain text
10082 #: build/C/man7/ipv6.7:275
10083 msgid ""
10084 "Set delivery of the B<IPV6_PKTINFO> control message on incoming datagrams.  "
10085 "Such control messages contain a I<struct in6_pktinfo>, as per RFC 3542.  "
10086 "Only allowed for B<SOCK_DGRAM> or B<SOCK_RAW> sockets.  Argument is a "
10087 "pointer to a boolean value in an integer."
10088 msgstr ""
10089
10090 #. type: Plain text
10091 #: build/C/man7/ipv6.7:278
10092 msgid ""
10093 "B<IPV6_RTHDR, IPV6_AUTHHDR, IPV6_DSTOPTS, IPV6_HOPOPTS, IPV6_FLOWINFO, "
10094 "IPV6_HOPLIMIT>"
10095 msgstr ""
10096
10097 #. type: Plain text
10098 #: build/C/man7/ipv6.7:303
10099 msgid ""
10100 "Set delivery of control messages for incoming datagrams containing extension "
10101 "headers from the received packet.  B<IPV6_RTHDR> delivers the routing "
10102 "header, B<IPV6_AUTHHDR> delivers the authentication header, B<IPV6_DSTOPTS> "
10103 "delivers the destination options, B<IPV6_HOPOPTS> delivers the hop options, "
10104 "B<IPV6_FLOWINFO> delivers an integer containing the flow ID, "
10105 "B<IPV6_HOPLIMIT> delivers an integer containing the hop count of the "
10106 "packet.  The control messages have the same type as the socket option.  All "
10107 "these header options can also be set for outgoing packets by putting the "
10108 "appropriate control message into the control buffer of B<sendmsg>(2).  Only "
10109 "allowed for B<SOCK_DGRAM> or B<SOCK_RAW> sockets.  Argument is a pointer to "
10110 "a boolean value."
10111 msgstr ""
10112
10113 #. type: TP
10114 #: build/C/man7/ipv6.7:303
10115 #, no-wrap
10116 msgid "B<IPV6_RECVERR>"
10117 msgstr ""
10118
10119 #. type: Plain text
10120 #: build/C/man7/ipv6.7:312
10121 msgid ""
10122 "Control receiving of asynchronous error options.  See B<IP_RECVERR> in "
10123 "B<ip>(7)  for details.  Argument is a pointer to boolean."
10124 msgstr ""
10125
10126 #. type: TP
10127 #: build/C/man7/ipv6.7:312
10128 #, no-wrap
10129 msgid "B<IPV6_ROUTER_ALERT>"
10130 msgstr ""
10131
10132 #. type: Plain text
10133 #: build/C/man7/ipv6.7:325
10134 msgid ""
10135 "Pass forwarded packets containing a router alert hop-by-hop option to this "
10136 "socket.  Only allowed for SOCK_RAW sockets.  The tapped packets are not "
10137 "forwarded by the kernel, it is the user's responsibility to send them out "
10138 "again.  Argument is a pointer to an integer.  A positive integer indicates a "
10139 "router alert option value to intercept.  Packets carrying a router alert "
10140 "option with a value field containing this integer will be delivered to the "
10141 "socket.  A negative integer disables delivery of packets with router alert "
10142 "options to this socket."
10143 msgstr ""
10144
10145 #. type: TP
10146 #: build/C/man7/ipv6.7:325
10147 #, no-wrap
10148 msgid "B<IPV6_UNICAST_HOPS>"
10149 msgstr ""
10150
10151 #. type: Plain text
10152 #: build/C/man7/ipv6.7:331
10153 msgid ""
10154 "Set the unicast hop limit for the socket.  Argument is a pointer to an "
10155 "integer.  -1 in the value means use the route default, otherwise it should "
10156 "be between 0 and 255."
10157 msgstr ""
10158
10159 #. type: TP
10160 #: build/C/man7/ipv6.7:331
10161 #, no-wrap
10162 msgid "B<IPV6_V6ONLY> (since Linux 2.4.21 and 2.6)"
10163 msgstr ""
10164
10165 #.  See RFC 3493
10166 #. type: Plain text
10167 #: build/C/man7/ipv6.7:338
10168 msgid ""
10169 "If this flag is set to true (nonzero), then the socket is restricted to "
10170 "sending and receiving IPv6 packets only.  In this case, an IPv4 and an IPv6 "
10171 "application can bind to a single port at the same time."
10172 msgstr ""
10173
10174 #. type: Plain text
10175 #: build/C/man7/ipv6.7:342
10176 msgid ""
10177 "If this flag is set to false (zero), then the socket can be used to send and "
10178 "receive packets to and from an IPv6 address or an IPv4-mapped IPv6 address."
10179 msgstr ""
10180
10181 #. type: Plain text
10182 #: build/C/man7/ipv6.7:344
10183 msgid "The argument is a pointer to a boolean value in an integer."
10184 msgstr ""
10185
10186 #.  FLOWLABEL_MGR, FLOWINFO_SEND
10187 #. type: Plain text
10188 #: build/C/man7/ipv6.7:349
10189 msgid ""
10190 "The default value for this flag is defined by the contents of the file "
10191 "I</proc/sys/net/ipv6/bindv6only>.  The default value for that file is 0 "
10192 "(false)."
10193 msgstr ""
10194
10195 #. type: Plain text
10196 #: build/C/man7/ipv6.7:361
10197 msgid ""
10198 "The user tried to B<bind>(2)  to a link-local IPv6 address, but the "
10199 "I<sin6_scope_id> in the supplied I<sockaddr_in6> structure is not a valid "
10200 "interface index."
10201 msgstr ""
10202
10203 #. type: Plain text
10204 #: build/C/man7/ipv6.7:366
10205 msgid ""
10206 "The older I<libinet6> libc5 based IPv6 API implementation for Linux is not "
10207 "described here and may vary in details."
10208 msgstr ""
10209
10210 #. type: Plain text
10211 #: build/C/man7/ipv6.7:382
10212 msgid ""
10213 "Linux 2.4 will break binary compatibility for the I<sockaddr_in6> for 64-bit "
10214 "hosts by changing the alignment of I<in6_addr> and adding an additional "
10215 "I<sin6_scope_id> field.  The kernel interfaces stay compatible, but a "
10216 "program including I<sockaddr_in6> or I<in6_addr> into other structures may "
10217 "not be.  This is not a problem for 32-bit hosts like i386."
10218 msgstr ""
10219
10220 #. type: Plain text
10221 #: build/C/man7/ipv6.7:390
10222 msgid ""
10223 "The I<sin6_flowinfo> field is new in Linux 2.4.  It is transparently "
10224 "passed/read by the kernel when the passed address length contains it.  Some "
10225 "programs that pass a longer address buffer and then check the outgoing "
10226 "address length may break."
10227 msgstr ""
10228
10229 #. type: Plain text
10230 #: build/C/man7/ipv6.7:400
10231 msgid ""
10232 "The I<sockaddr_in6> structure is bigger than the generic I<sockaddr>.  "
10233 "Programs that assume that all address types can be stored safely in a "
10234 "I<struct sockaddr> need to be changed to use I<struct sockaddr_storage> for "
10235 "that instead."
10236 msgstr ""
10237
10238 #. type: Plain text
10239 #: build/C/man7/ipv6.7:405
10240 msgid ""
10241 "The IPv6 extended API as in RFC\\ 2292 is currently only partly implemented; "
10242 "although the 2.2 kernel has near complete support for receiving options, the "
10243 "macros for generating IPv6 options are missing in glibc 2.1."
10244 msgstr ""
10245
10246 #. type: Plain text
10247 #: build/C/man7/ipv6.7:407
10248 msgid "IPSec support for EH and AH headers is missing."
10249 msgstr ""
10250
10251 #. type: Plain text
10252 #: build/C/man7/ipv6.7:409
10253 msgid "Flow label management is not complete and not documented here."
10254 msgstr ""
10255
10256 #. type: Plain text
10257 #: build/C/man7/ipv6.7:411
10258 msgid "This man page is not complete."
10259 msgstr ""
10260
10261 #. type: Plain text
10262 #: build/C/man7/ipv6.7:414
10263 msgid "B<cmsg>(3), B<ip>(7)"
10264 msgstr ""
10265
10266 #. type: Plain text
10267 #: build/C/man7/ipv6.7:418
10268 msgid ""
10269 "RFC\\ 2553: IPv6 BASIC API; Linux tries to be compliant to this.  RFC\\ "
10270 "2460: IPv6 specification."
10271 msgstr ""
10272
10273 #. type: TH
10274 #: build/C/man7/netdevice.7:18
10275 #, no-wrap
10276 msgid "NETDEVICE"
10277 msgstr ""
10278
10279 #. type: TH
10280 #: build/C/man7/netdevice.7:18
10281 #, no-wrap
10282 msgid "2012-04-26"
10283 msgstr ""
10284
10285 #. type: Plain text
10286 #: build/C/man7/netdevice.7:21
10287 msgid "netdevice - low-level access to Linux network devices"
10288 msgstr ""
10289
10290 #. type: Plain text
10291 #: build/C/man7/netdevice.7:23
10292 msgid "B<#include E<lt>sys/ioctl.hE<gt>>"
10293 msgstr ""
10294
10295 #. type: Plain text
10296 #: build/C/man7/netdevice.7:25
10297 msgid "B<#include E<lt>net/if.hE<gt>>"
10298 msgstr ""
10299
10300 #. type: Plain text
10301 #: build/C/man7/netdevice.7:28
10302 msgid ""
10303 "This man page describes the sockets interface which is used to configure "
10304 "network devices."
10305 msgstr ""
10306
10307 #. type: Plain text
10308 #: build/C/man7/netdevice.7:35
10309 msgid ""
10310 "Linux supports some standard ioctls to configure network devices.  They can "
10311 "be used on any socket's file descriptor regardless of the family or type.  "
10312 "They pass an I<ifreq> structure:"
10313 msgstr ""
10314
10315 #. type: Plain text
10316 #: build/C/man7/netdevice.7:56
10317 #, no-wrap
10318 msgid ""
10319 "struct ifreq {\n"
10320 "    char ifr_name[IFNAMSIZ]; /* Interface name */\n"
10321 "    union {\n"
10322 "        struct sockaddr ifr_addr;\n"
10323 "        struct sockaddr ifr_dstaddr;\n"
10324 "        struct sockaddr ifr_broadaddr;\n"
10325 "        struct sockaddr ifr_netmask;\n"
10326 "        struct sockaddr ifr_hwaddr;\n"
10327 "        short           ifr_flags;\n"
10328 "        int             ifr_ifindex;\n"
10329 "        int             ifr_metric;\n"
10330 "        int             ifr_mtu;\n"
10331 "        struct ifmap    ifr_map;\n"
10332 "        char            ifr_slave[IFNAMSIZ];\n"
10333 "        char            ifr_newname[IFNAMSIZ];\n"
10334 "        char           *ifr_data;\n"
10335 "    };\n"
10336 "};\n"
10337 msgstr ""
10338
10339 #. type: Plain text
10340 #: build/C/man7/netdevice.7:64
10341 #, no-wrap
10342 msgid ""
10343 "struct ifconf {\n"
10344 "    int                 ifc_len; /* size of buffer */\n"
10345 "    union {\n"
10346 "        char           *ifc_buf; /* buffer address */\n"
10347 "        struct ifreq   *ifc_req; /* array of structures */\n"
10348 "    };\n"
10349 "};\n"
10350 msgstr ""
10351
10352 #. type: Plain text
10353 #: build/C/man7/netdevice.7:72
10354 msgid ""
10355 "Normally, the user specifies which device to affect by setting I<ifr_name> "
10356 "to the name of the interface.  All other members of the structure may share "
10357 "memory."
10358 msgstr ""
10359
10360 #. type: Plain text
10361 #: build/C/man7/netdevice.7:80
10362 msgid ""
10363 "If an ioctl is marked as privileged then using it requires an effective user "
10364 "ID of 0 or the B<CAP_NET_ADMIN> capability.  If this is not the case "
10365 "B<EPERM> will be returned."
10366 msgstr ""
10367
10368 #. type: TP
10369 #: build/C/man7/netdevice.7:80
10370 #, no-wrap
10371 msgid "B<SIOCGIFNAME>"
10372 msgstr ""
10373
10374 #. type: Plain text
10375 #: build/C/man7/netdevice.7:88
10376 msgid ""
10377 "Given the I<ifr_ifindex>, return the name of the interface in I<ifr_name>.  "
10378 "This is the only ioctl which returns its result in I<ifr_name>."
10379 msgstr ""
10380
10381 #. type: TP
10382 #: build/C/man7/netdevice.7:88
10383 #, no-wrap
10384 msgid "B<SIOCGIFINDEX>"
10385 msgstr ""
10386
10387 #. type: Plain text
10388 #: build/C/man7/netdevice.7:92
10389 msgid "Retrieve the interface index of the interface into I<ifr_ifindex>."
10390 msgstr ""
10391
10392 #. type: TP
10393 #: build/C/man7/netdevice.7:92
10394 #, no-wrap
10395 msgid "B<SIOCGIFFLAGS>, B<SIOCSIFFLAGS>"
10396 msgstr ""
10397
10398 #.  Do not right adjust text blocks in tables
10399 #. type: Plain text
10400 #: build/C/man7/netdevice.7:98
10401 msgid ""
10402 "Get or set the active flag word of the device.  I<ifr_flags> contains a bit "
10403 "mask of the following values:"
10404 msgstr ""
10405
10406 #. type: tbl table
10407 #: build/C/man7/netdevice.7:103
10408 #, no-wrap
10409 msgid "Device flags\n"
10410 msgstr ""
10411
10412 #. type: tbl table
10413 #: build/C/man7/netdevice.7:104
10414 #, no-wrap
10415 msgid "IFF_UP:Interface is running.\n"
10416 msgstr ""
10417
10418 #. type: tbl table
10419 #: build/C/man7/netdevice.7:105
10420 #, no-wrap
10421 msgid "IFF_BROADCAST:Valid broadcast address set.\n"
10422 msgstr ""
10423
10424 #. type: tbl table
10425 #: build/C/man7/netdevice.7:106
10426 #, no-wrap
10427 msgid "IFF_DEBUG:Internal debugging flag.\n"
10428 msgstr ""
10429
10430 #. type: tbl table
10431 #: build/C/man7/netdevice.7:107
10432 #, no-wrap
10433 msgid "IFF_LOOPBACK:Interface is a loopback interface.\n"
10434 msgstr ""
10435
10436 #. type: tbl table
10437 #: build/C/man7/netdevice.7:108
10438 #, no-wrap
10439 msgid "IFF_POINTOPOINT:Interface is a point-to-point link.\n"
10440 msgstr ""
10441
10442 #. type: tbl table
10443 #: build/C/man7/netdevice.7:109
10444 #, no-wrap
10445 msgid "IFF_RUNNING:Resources allocated.\n"
10446 msgstr ""
10447
10448 #. type: tbl table
10449 #: build/C/man7/netdevice.7:110
10450 #, no-wrap
10451 msgid "IFF_NOARP:T{\n"
10452 msgstr ""
10453
10454 #. type: tbl table
10455 #: build/C/man7/netdevice.7:111
10456 #, no-wrap
10457 msgid "No arp protocol, L2 destination address not set.\n"
10458 msgstr ""
10459
10460 #. type: tbl table
10461 #: build/C/man7/netdevice.7:112 build/C/man7/netdevice.7:123
10462 #, no-wrap
10463 msgid "T}\n"
10464 msgstr ""
10465
10466 #. type: tbl table
10467 #: build/C/man7/netdevice.7:113
10468 #, no-wrap
10469 msgid "IFF_PROMISC:Interface is in promiscuous mode.\n"
10470 msgstr ""
10471
10472 #. type: tbl table
10473 #: build/C/man7/netdevice.7:114
10474 #, no-wrap
10475 msgid "IFF_NOTRAILERS:Avoid use of trailers.\n"
10476 msgstr ""
10477
10478 #. type: tbl table
10479 #: build/C/man7/netdevice.7:115
10480 #, no-wrap
10481 msgid "IFF_ALLMULTI:Receive all multicast packets.\n"
10482 msgstr ""
10483
10484 #. type: tbl table
10485 #: build/C/man7/netdevice.7:116
10486 #, no-wrap
10487 msgid "IFF_MASTER:Master of a load balancing bundle.\n"
10488 msgstr ""
10489
10490 #. type: tbl table
10491 #: build/C/man7/netdevice.7:117
10492 #, no-wrap
10493 msgid "IFF_SLAVE:Slave of a load balancing bundle.\n"
10494 msgstr ""
10495
10496 #. type: tbl table
10497 #: build/C/man7/netdevice.7:118
10498 #, no-wrap
10499 msgid "IFF_MULTICAST:Supports multicast\n"
10500 msgstr ""
10501
10502 #. type: tbl table
10503 #: build/C/man7/netdevice.7:119
10504 #, no-wrap
10505 msgid "IFF_PORTSEL:Is able to select media type via ifmap.\n"
10506 msgstr ""
10507
10508 #. type: tbl table
10509 #: build/C/man7/netdevice.7:120
10510 #, no-wrap
10511 msgid "IFF_AUTOMEDIA:Auto media selection active.\n"
10512 msgstr ""
10513
10514 #. type: tbl table
10515 #: build/C/man7/netdevice.7:121
10516 #, no-wrap
10517 msgid "IFF_DYNAMIC:T{\n"
10518 msgstr ""
10519
10520 #. type: tbl table
10521 #: build/C/man7/netdevice.7:122
10522 #, no-wrap
10523 msgid "The addresses are lost when the interface goes down.\n"
10524 msgstr ""
10525
10526 #. type: tbl table
10527 #: build/C/man7/netdevice.7:124
10528 #, no-wrap
10529 msgid "IFF_LOWER_UP:Driver signals L1 up (since Linux 2.6.17)\n"
10530 msgstr ""
10531
10532 #. type: tbl table
10533 #: build/C/man7/netdevice.7:125
10534 #, no-wrap
10535 msgid "IFF_DORMANT:Driver signals dormant (since Linux 2.6.17)\n"
10536 msgstr ""
10537
10538 #. type: tbl table
10539 #: build/C/man7/netdevice.7:126
10540 #, no-wrap
10541 msgid "IFF_ECHO:Echo sent packets (since Linux 2.6.25)\n"
10542 msgstr ""
10543
10544 #. type: Plain text
10545 #: build/C/man7/netdevice.7:132
10546 msgid ""
10547 "Setting the active flag word is a privileged operation, but any process may "
10548 "read it."
10549 msgstr ""
10550
10551 #. type: TP
10552 #: build/C/man7/netdevice.7:132
10553 #, no-wrap
10554 msgid "B<SIOCGIFPFLAGS>, B<SIOCSIFPFLAGS>"
10555 msgstr ""
10556
10557 #. type: Plain text
10558 #: build/C/man7/netdevice.7:137
10559 msgid ""
10560 "Get or set extended (private) flags for the device.  I<ifr_flags> contains a "
10561 "bit mask of the following values:"
10562 msgstr ""
10563
10564 #. type: tbl table
10565 #: build/C/man7/netdevice.7:141
10566 #, no-wrap
10567 msgid "Private flags\n"
10568 msgstr ""
10569
10570 #. type: tbl table
10571 #: build/C/man7/netdevice.7:142
10572 #, no-wrap
10573 msgid "IFF_802_1Q_VLAN:Interface is 802.1Q VLAN device.\n"
10574 msgstr ""
10575
10576 #. type: tbl table
10577 #: build/C/man7/netdevice.7:143
10578 #, no-wrap
10579 msgid "IFF_EBRIDGE:Interface is Ethernet bridging device.\n"
10580 msgstr ""
10581
10582 #. type: tbl table
10583 #: build/C/man7/netdevice.7:144
10584 #, no-wrap
10585 msgid "IFF_SLAVE_INACTIVE:Interface is inactive bonding slave.\n"
10586 msgstr ""
10587
10588 #. type: tbl table
10589 #: build/C/man7/netdevice.7:145
10590 #, no-wrap
10591 msgid "IFF_MASTER_8023AD:Interface is 802.3ad bonding master.\n"
10592 msgstr ""
10593
10594 #. type: tbl table
10595 #: build/C/man7/netdevice.7:146
10596 #, no-wrap
10597 msgid "IFF_MASTER_ALB:Interface is balanced-alb bonding master.\n"
10598 msgstr ""
10599
10600 #. type: tbl table
10601 #: build/C/man7/netdevice.7:147
10602 #, no-wrap
10603 msgid "IFF_BONDING:Interface is a bonding master or slave.\n"
10604 msgstr ""
10605
10606 #. type: tbl table
10607 #: build/C/man7/netdevice.7:148
10608 #, no-wrap
10609 msgid "IFF_SLAVE_NEEDARP:Interface needs ARPs for validation.\n"
10610 msgstr ""
10611
10612 #. type: tbl table
10613 #: build/C/man7/netdevice.7:149
10614 #, no-wrap
10615 msgid "IFF_ISATAP:Interface is RFC4214 ISATAP interface.\n"
10616 msgstr ""
10617
10618 #. type: Plain text
10619 #: build/C/man7/netdevice.7:153
10620 msgid "Setting the extended (private) interface flags is a privileged operation."
10621 msgstr ""
10622
10623 #. type: TP
10624 #: build/C/man7/netdevice.7:153
10625 #, no-wrap
10626 msgid "B<SIOCGIFADDR>, B<SIOCSIFADDR>"
10627 msgstr ""
10628
10629 #. type: Plain text
10630 #: build/C/man7/netdevice.7:161
10631 msgid ""
10632 "Get or set the address of the device using I<ifr_addr>.  Setting the "
10633 "interface address is a privileged operation.  For compatibility, only "
10634 "B<AF_INET> addresses are accepted or returned."
10635 msgstr ""
10636
10637 #. type: TP
10638 #: build/C/man7/netdevice.7:161
10639 #, no-wrap
10640 msgid "B<SIOCGIFDSTADDR>, B<SIOCSIFDSTADDR>"
10641 msgstr ""
10642
10643 #. type: Plain text
10644 #: build/C/man7/netdevice.7:169
10645 msgid ""
10646 "Get or set the destination address of a point-to-point device using "
10647 "I<ifr_dstaddr>.  For compatibility, only B<AF_INET> addresses are accepted "
10648 "or returned.  Setting the destination address is a privileged operation."
10649 msgstr ""
10650
10651 #. type: TP
10652 #: build/C/man7/netdevice.7:169
10653 #, no-wrap
10654 msgid "B<SIOCGIFBRDADDR>, B<SIOCSIFBRDADDR>"
10655 msgstr ""
10656
10657 #. type: Plain text
10658 #: build/C/man7/netdevice.7:177
10659 msgid ""
10660 "Get or set the broadcast address for a device using I<ifr_brdaddr>.  For "
10661 "compatibility, only B<AF_INET> addresses are accepted or returned.  Setting "
10662 "the broadcast address is a privileged operation."
10663 msgstr ""
10664
10665 #. type: TP
10666 #: build/C/man7/netdevice.7:177
10667 #, no-wrap
10668 msgid "B<SIOCGIFNETMASK>, B<SIOCSIFNETMASK>"
10669 msgstr ""
10670
10671 #. type: Plain text
10672 #: build/C/man7/netdevice.7:185
10673 msgid ""
10674 "Get or set the network mask for a device using I<ifr_netmask>.  For "
10675 "compatibility, only B<AF_INET> addresses are accepted or returned.  Setting "
10676 "the network mask is a privileged operation."
10677 msgstr ""
10678
10679 #. type: TP
10680 #: build/C/man7/netdevice.7:185
10681 #, no-wrap
10682 msgid "B<SIOCGIFMETRIC>, B<SIOCSIFMETRIC>"
10683 msgstr ""
10684
10685 #. type: Plain text
10686 #: build/C/man7/netdevice.7:194
10687 msgid ""
10688 "Get or set the metric of the device using I<ifr_metric>.  This is currently "
10689 "not implemented; it sets I<ifr_metric> to 0 if you attempt to read it and "
10690 "returns B<EOPNOTSUPP> if you attempt to set it."
10691 msgstr ""
10692
10693 #. type: TP
10694 #: build/C/man7/netdevice.7:194
10695 #, no-wrap
10696 msgid "B<SIOCGIFMTU>, B<SIOCSIFMTU>"
10697 msgstr ""
10698
10699 #. type: Plain text
10700 #: build/C/man7/netdevice.7:201
10701 msgid ""
10702 "Get or set the MTU (Maximum Transfer Unit) of a device using I<ifr_mtu>.  "
10703 "Setting the MTU is a privileged operation.  Setting the MTU to too small "
10704 "values may cause kernel crashes."
10705 msgstr ""
10706
10707 #. type: TP
10708 #: build/C/man7/netdevice.7:201
10709 #, no-wrap
10710 msgid "B<SIOCGIFHWADDR>, B<SIOCSIFHWADDR>"
10711 msgstr ""
10712
10713 #. type: Plain text
10714 #: build/C/man7/netdevice.7:212
10715 msgid ""
10716 "Get or set the hardware address of a device using I<ifr_hwaddr>.  The "
10717 "hardware address is specified in a struct I<sockaddr>.  I<sa_family> "
10718 "contains the ARPHRD_* device type, I<sa_data> the L2 hardware address "
10719 "starting from byte 0.  Setting the hardware address is a privileged "
10720 "operation."
10721 msgstr ""
10722
10723 #. type: TP
10724 #: build/C/man7/netdevice.7:212
10725 #, no-wrap
10726 msgid "B<SIOCSIFHWBROADCAST>"
10727 msgstr ""
10728
10729 #. type: Plain text
10730 #: build/C/man7/netdevice.7:217
10731 msgid ""
10732 "Set the hardware broadcast address of a device from I<ifr_hwaddr>.  This is "
10733 "a privileged operation."
10734 msgstr ""
10735
10736 #. type: TP
10737 #: build/C/man7/netdevice.7:217
10738 #, no-wrap
10739 msgid "B<SIOCGIFMAP>, B<SIOCSIFMAP>"
10740 msgstr ""
10741
10742 #. type: Plain text
10743 #: build/C/man7/netdevice.7:222
10744 msgid ""
10745 "Get or set the interface's hardware parameters using I<ifr_map>.  Setting "
10746 "the parameters is a privileged operation."
10747 msgstr ""
10748
10749 #. type: Plain text
10750 #: build/C/man7/netdevice.7:233
10751 #, no-wrap
10752 msgid ""
10753 "struct ifmap {\n"
10754 "    unsigned long   mem_start;\n"
10755 "    unsigned long   mem_end;\n"
10756 "    unsigned short  base_addr;\n"
10757 "    unsigned char   irq;\n"
10758 "    unsigned char   dma;\n"
10759 "    unsigned char   port;\n"
10760 "};\n"
10761 msgstr ""
10762
10763 #. type: Plain text
10764 #: build/C/man7/netdevice.7:238
10765 msgid ""
10766 "The interpretation of the ifmap structure depends on the device driver and "
10767 "the architecture."
10768 msgstr ""
10769
10770 #. type: TP
10771 #: build/C/man7/netdevice.7:238
10772 #, no-wrap
10773 msgid "B<SIOCADDMULTI>, B<SIOCDELMULTI>"
10774 msgstr ""
10775
10776 #. type: Plain text
10777 #: build/C/man7/netdevice.7:247
10778 msgid ""
10779 "Add an address to or delete an address from the device's link layer "
10780 "multicast filters using I<ifr_hwaddr>.  These are privileged operations.  "
10781 "See also B<packet>(7)  for an alternative."
10782 msgstr ""
10783
10784 #. type: TP
10785 #: build/C/man7/netdevice.7:247
10786 #, no-wrap
10787 msgid "B<SIOCGIFTXQLEN>, B<SIOCSIFTXQLEN>"
10788 msgstr ""
10789
10790 #. type: Plain text
10791 #: build/C/man7/netdevice.7:252
10792 msgid ""
10793 "Get or set the transmit queue length of a device using I<ifr_qlen>.  Setting "
10794 "the transmit queue length is a privileged operation."
10795 msgstr ""
10796
10797 #. type: TP
10798 #: build/C/man7/netdevice.7:252
10799 #, no-wrap
10800 msgid "B<SIOCSIFNAME>"
10801 msgstr ""
10802
10803 #. type: Plain text
10804 #: build/C/man7/netdevice.7:261
10805 msgid ""
10806 "Changes the name of the interface specified in I<ifr_name> to "
10807 "I<ifr_newname>.  This is a privileged operation.  It is allowed only when "
10808 "the interface is not up."
10809 msgstr ""
10810
10811 #. type: TP
10812 #: build/C/man7/netdevice.7:261
10813 #, no-wrap
10814 msgid "B<SIOCGIFCONF>"
10815 msgstr ""
10816
10817 #.  Slaving isn't supported in 2.2
10818 #.  .
10819 #.  .TP
10820 #.  .BR SIOCGIFSLAVE ", " SIOCSIFSLAVE
10821 #.  Get or set the slave device using
10822 #.  .IR ifr_slave .
10823 #.  Setting the slave device is a privileged operation.
10824 #.  .PP
10825 #.  FIXME add amateur radio stuff.
10826 #. type: Plain text
10827 #: build/C/man7/netdevice.7:301
10828 msgid ""
10829 "Return a list of interface (transport layer) addresses.  This currently "
10830 "means only addresses of the B<AF_INET> (IPv4) family for compatibility.  The "
10831 "user passes a I<ifconf> structure as argument to the ioctl.  It contains a "
10832 "pointer to an array of I<ifreq> structures in I<ifc_req> and its length in "
10833 "bytes in I<ifc_len>.  The kernel fills the ifreqs with all current L3 "
10834 "interface addresses that are running: I<ifr_name> contains the interface "
10835 "name (eth0:1 etc.), I<ifr_addr> the address.  The kernel returns with the "
10836 "actual length in I<ifc_len>.  If I<ifc_len> is equal to the original length "
10837 "the buffer probably has overflowed and you should retry with a bigger buffer "
10838 "to get all addresses.  When no error occurs the ioctl returns 0; otherwise "
10839 "-1.  Overflow is not an error."
10840 msgstr ""
10841
10842 #. type: Plain text
10843 #: build/C/man7/netdevice.7:307
10844 msgid ""
10845 "Most protocols support their own ioctls to configure protocol-specific "
10846 "interface options.  See the protocol man pages for a description.  For "
10847 "configuring IP addresses see B<ip>(7)."
10848 msgstr ""
10849
10850 #. type: Plain text
10851 #: build/C/man7/netdevice.7:310
10852 msgid ""
10853 "In addition some devices support private ioctls.  These are not described "
10854 "here."
10855 msgstr ""
10856
10857 #. type: Plain text
10858 #: build/C/man7/netdevice.7:318
10859 msgid ""
10860 "Strictly speaking, B<SIOCGIFCONF> and the other ioctls that accept or return "
10861 "only B<AF_INET> socket addresses, are IP specific and belong in B<ip>(7)."
10862 msgstr ""
10863
10864 #. type: Plain text
10865 #: build/C/man7/netdevice.7:323
10866 msgid ""
10867 "The names of interfaces with no addresses or that don't have the "
10868 "B<IFF_RUNNING> flag set can be found via I</proc/net/dev>."
10869 msgstr ""
10870
10871 #. type: Plain text
10872 #: build/C/man7/netdevice.7:328
10873 msgid ""
10874 "Local IPv6 IP addresses can be found via I</proc/net> or via "
10875 "B<rtnetlink>(7)."
10876 msgstr ""
10877
10878 #. type: Plain text
10879 #: build/C/man7/netdevice.7:334
10880 msgid ""
10881 "glibc 2.1 is missing the I<ifr_newname> macro in I<E<lt>net/if.hE<gt>>.  Add "
10882 "the following to your program as a workaround:"
10883 msgstr ""
10884
10885 #. type: Plain text
10886 #: build/C/man7/netdevice.7:340
10887 #, no-wrap
10888 msgid ""
10889 "#ifndef ifr_newname\n"
10890 "#define ifr_newname     ifr_ifru.ifru_slave\n"
10891 "#endif\n"
10892 msgstr ""
10893
10894 #. type: Plain text
10895 #: build/C/man7/netdevice.7:347
10896 msgid "B<proc>(5), B<capabilities>(7), B<ip>(7), B<rtnetlink>(7)"
10897 msgstr ""
10898
10899 #. type: TH
10900 #: build/C/man5/networks.5:26
10901 #, no-wrap
10902 msgid "NETWORKS"
10903 msgstr ""
10904
10905 #. type: TH
10906 #: build/C/man5/networks.5:26
10907 #, no-wrap
10908 msgid "2008-09-04"
10909 msgstr ""
10910
10911 #. type: TH
10912 #: build/C/man5/networks.5:26
10913 #, no-wrap
10914 msgid "GNU/Linux"
10915 msgstr ""
10916
10917 #. type: Plain text
10918 #: build/C/man5/networks.5:29
10919 msgid "networks - network name information"
10920 msgstr ""
10921
10922 #. type: Plain text
10923 #: build/C/man5/networks.5:35
10924 msgid ""
10925 "The file I</etc/networks> is a plain ASCII file that describes known DARPA "
10926 "networks and symbolic names for these networks.  Each line represents a "
10927 "network and has the following structure:"
10928 msgstr ""
10929
10930 #. type: Plain text
10931 #: build/C/man5/networks.5:38
10932 msgid "I<name number aliases ...>"
10933 msgstr ""
10934
10935 #. type: Plain text
10936 #: build/C/man5/networks.5:46
10937 msgid ""
10938 "where the fields are delimited by spaces or tabs.  Empty lines are ignored.  "
10939 "The hash character (B<#>) indicates the start of a comment: this character, "
10940 "and the remaining characters up to the end of the current line, are ignored "
10941 "by library functions that process the file."
10942 msgstr ""
10943
10944 #. type: Plain text
10945 #: build/C/man5/networks.5:48 build/C/man5/protocols.5:59
10946 msgid "The field descriptions are:"
10947 msgstr ""
10948
10949 #. type: TP
10950 #: build/C/man5/networks.5:48
10951 #, no-wrap
10952 msgid "I<name>"
10953 msgstr ""
10954
10955 #. type: Plain text
10956 #: build/C/man5/networks.5:53
10957 msgid ""
10958 "The symbolic name for the network.  Network names can contain any printable "
10959 "characters execept white-space characters or the comment character."
10960 msgstr ""
10961
10962 #. type: TP
10963 #: build/C/man5/networks.5:53 build/C/man5/protocols.5:67
10964 #, no-wrap
10965 msgid "I<number>"
10966 msgstr ""
10967
10968 #. type: Plain text
10969 #: build/C/man5/networks.5:58
10970 msgid ""
10971 "The official number for this network in numbers-and-dots notation (see "
10972 "B<inet>(3)).  The trailing \".0\" (for the host component of the network "
10973 "address) may be omitted."
10974 msgstr ""
10975
10976 #. type: TP
10977 #: build/C/man5/networks.5:58 build/C/man5/protocols.5:71 build/C/man5/services.5:120
10978 #, no-wrap
10979 msgid "I<aliases>"
10980 msgstr ""
10981
10982 #. type: Plain text
10983 #: build/C/man5/networks.5:61
10984 msgid "Optional aliases for the network."
10985 msgstr ""
10986
10987 #. type: Plain text
10988 #: build/C/man5/networks.5:70
10989 msgid ""
10990 "This file is read by the B<route>(8)  and B<netstat>(8)  utilities.  Only "
10991 "Class A, B or C networks are supported, partitioned networks (i.e., "
10992 "network/26 or network/28) are not supported by this facility."
10993 msgstr ""
10994
10995 #. type: Plain text
10996 #: build/C/man5/networks.5:74
10997 msgid "The networks definition file."
10998 msgstr ""
10999
11000 #. type: Plain text
11001 #: build/C/man5/networks.5:80
11002 msgid ""
11003 "B<getnetbyaddr>(3), B<getnetbyname>(3), B<getnetent>(3), B<netstat>(8), "
11004 "B<route>(8)"
11005 msgstr ""
11006
11007 #. type: TH
11008 #: build/C/man8/nscd.8:23
11009 #, no-wrap
11010 msgid "NSCD"
11011 msgstr ""
11012
11013 #. type: Plain text
11014 #: build/C/man8/nscd.8:26
11015 msgid "nscd - name service cache daemon"
11016 msgstr ""
11017
11018 #. type: Plain text
11019 #: build/C/man8/nscd.8:34
11020 msgid ""
11021 "Nscd is a daemon that provides a cache for the most common name service "
11022 "requests.  The default configuration file, I</etc/nscd.conf>, determines the "
11023 "behavior of the cache daemon.  See B<nscd.conf>(5)."
11024 msgstr ""
11025
11026 #. type: Plain text
11027 #: build/C/man8/nscd.8:47
11028 msgid ""
11029 "Nscd provides caching for accesses of the B<passwd>(5), B<group>(5), and "
11030 "B<hosts>(5)  databases through standard libc interfaces, such as "
11031 "B<getpwnam>(3), B<getpwuid>(3), B<getgrnam>(3), B<getgrgid>(3), "
11032 "B<gethostbyname>(3), and others."
11033 msgstr ""
11034
11035 #. type: Plain text
11036 #: build/C/man8/nscd.8:56
11037 msgid ""
11038 "There are two caches for each database: a positive one for items found, and "
11039 "a negative one for items not found.  Each cache has a separate TTL "
11040 "(time-to-live)  period for its data.  Note that the shadow file is "
11041 "specifically not cached.  B<getspnam>(3)  calls remain uncached as a result."
11042 msgstr ""
11043
11044 #. type: SH
11045 #: build/C/man8/nscd.8:56
11046 #, no-wrap
11047 msgid "OPTIONS"
11048 msgstr ""
11049
11050 #. type: TP
11051 #: build/C/man8/nscd.8:57
11052 #, no-wrap
11053 msgid "B<--help>"
11054 msgstr ""
11055
11056 #. type: Plain text
11057 #: build/C/man8/nscd.8:60
11058 msgid "will give you a list with all options and what they do."
11059 msgstr ""
11060
11061 #. type: Plain text
11062 #: build/C/man8/nscd.8:83
11063 msgid ""
11064 "The daemon will try to watch for changes in configuration files appropriate "
11065 "for each database (e.g., I</etc/passwd> for the I<passwd> database or "
11066 "I</etc/hosts> and I</etc/resolv.conf> for the I<hosts> database), and flush "
11067 "the cache when these are changed.  However, this will happen only after a "
11068 "short delay (unless the B<inotify>(7)  mechanism is available and glibc 2.9 "
11069 "or later is available), and this auto-detection does not cover configuration "
11070 "files required by nonstandard NSS modules, if any are specified in "
11071 "I</etc/nsswitch.conf>.  In that case, you need to run the following command "
11072 "after changing the configuration file of the database so that B<nscd> "
11073 "invalidates its cache:"
11074 msgstr ""
11075
11076 #. type: Plain text
11077 #: build/C/man8/nscd.8:85
11078 #, no-wrap
11079 msgid "    $ B<nscd -i> I<E<lt>databaseE<gt>>\n"
11080 msgstr ""
11081
11082 #.  .SH AUTHOR
11083 #.  .B nscd
11084 #.  was written by Thorsten Kukuk and Ulrich Drepper.
11085 #. type: Plain text
11086 #: build/C/man8/nscd.8:91
11087 msgid "B<nscd.conf>(5), B<nsswitch.conf>(5)"
11088 msgstr ""
11089
11090 #. type: TH
11091 #: build/C/man5/nscd.conf.5:20
11092 #, no-wrap
11093 msgid "NSCD.CONF"
11094 msgstr ""
11095
11096 #. type: Plain text
11097 #: build/C/man5/nscd.conf.5:23
11098 msgid "/etc/nscd.conf - name service cache daemon configuration file"
11099 msgstr ""
11100
11101 #. type: Plain text
11102 #: build/C/man5/nscd.conf.5:36
11103 msgid ""
11104 "The file I</etc/nscd.conf> is read from B<nscd>(8)  at startup.  Each line "
11105 "specifies either an attribute and a value, or an attribute, service, and a "
11106 "value.  Fields are separated either by SPACE or TAB characters.  A "
11107 "\\(aq#\\(aq (number sign) indicates the beginning of a comment; following "
11108 "characters, up to the end of the line, are not interpreted by nscd."
11109 msgstr ""
11110
11111 #. type: Plain text
11112 #: build/C/man5/nscd.conf.5:39
11113 msgid ""
11114 "Valid services are I<passwd>, I<group>, I<hosts>, I<services> or "
11115 "I<netgroup>."
11116 msgstr ""
11117
11118 #. type: Plain text
11119 #: build/C/man5/nscd.conf.5:42
11120 msgid "B<logfile> I<debug-file-name>"
11121 msgstr ""
11122
11123 #. type: Plain text
11124 #: build/C/man5/nscd.conf.5:44
11125 msgid "Specifies name of the file to which debug info should be written."
11126 msgstr ""
11127
11128 #. type: Plain text
11129 #: build/C/man5/nscd.conf.5:48
11130 msgid "B<debug-level> I<value>"
11131 msgstr ""
11132
11133 #. type: Plain text
11134 #: build/C/man5/nscd.conf.5:51
11135 msgid "Sets the desired debug level.  The default is 0."
11136 msgstr ""
11137
11138 #. type: Plain text
11139 #: build/C/man5/nscd.conf.5:55
11140 msgid "B<threads> I<number>"
11141 msgstr ""
11142
11143 #. type: Plain text
11144 #: build/C/man5/nscd.conf.5:59
11145 msgid ""
11146 "This is the number of threads that are started to wait for requests.  At "
11147 "least five threads will always be created."
11148 msgstr ""
11149
11150 #. type: Plain text
11151 #: build/C/man5/nscd.conf.5:63
11152 msgid "B<max-threads> I<number>"
11153 msgstr ""
11154
11155 #. type: Plain text
11156 #: build/C/man5/nscd.conf.5:66
11157 msgid "Specifies the maximum number of threads.  The default is 32."
11158 msgstr ""
11159
11160 #. type: Plain text
11161 #: build/C/man5/nscd.conf.5:70
11162 msgid "B<server-user> I<user>"
11163 msgstr ""
11164
11165 #. type: Plain text
11166 #: build/C/man5/nscd.conf.5:74
11167 msgid ""
11168 "If this option is set, nscd will run as this user and not as root.  If a "
11169 "separate cache for every user is used (-S parameter), this option is "
11170 "ignored."
11171 msgstr ""
11172
11173 #. type: Plain text
11174 #: build/C/man5/nscd.conf.5:78
11175 msgid "B<stat-user> I<user>"
11176 msgstr ""
11177
11178 #. type: Plain text
11179 #: build/C/man5/nscd.conf.5:80
11180 msgid "Specifies the user who is allowed to request statistics."
11181 msgstr ""
11182
11183 #. type: Plain text
11184 #: build/C/man5/nscd.conf.5:85
11185 msgid "B<reload-count> unlimited | I<number>"
11186 msgstr ""
11187
11188 #. type: Plain text
11189 #: build/C/man5/nscd.conf.5:89
11190 msgid ""
11191 "Limit on the number of times a cached entry gets reloaded without being used "
11192 "before it gets removed.  The default is 5."
11193 msgstr ""
11194
11195 #. type: Plain text
11196 #: build/C/man5/nscd.conf.5:93
11197 msgid "B<paranoia> I<E<lt>yes|noE<gt>>"
11198 msgstr ""
11199
11200 #. type: Plain text
11201 #: build/C/man5/nscd.conf.5:96
11202 msgid ""
11203 "Enabling paranoia mode causes nscd to restart itself periodically.  The "
11204 "default is no."
11205 msgstr ""
11206
11207 #. type: Plain text
11208 #: build/C/man5/nscd.conf.5:100
11209 msgid "B<restart-interval> I<time>"
11210 msgstr ""
11211
11212 #. type: Plain text
11213 #: build/C/man5/nscd.conf.5:108
11214 msgid ""
11215 "Sets the restart interval to I<time> seconds if periodic restart is enabled "
11216 "by enabling B<paranoia> mode.  The default is 3600."
11217 msgstr ""
11218
11219 #. type: Plain text
11220 #: build/C/man5/nscd.conf.5:113
11221 msgid "B<enable-cache> I<service> I<E<lt>yes|noE<gt>>"
11222 msgstr ""
11223
11224 #. type: Plain text
11225 #: build/C/man5/nscd.conf.5:118
11226 msgid "Enables or disables the specified I<service> cache.  The default is no."
11227 msgstr ""
11228
11229 #. type: Plain text
11230 #: build/C/man5/nscd.conf.5:123
11231 msgid "B<positive-time-to-live> I<service> I<value>"
11232 msgstr ""
11233
11234 #. type: Plain text
11235 #: build/C/man5/nscd.conf.5:131
11236 msgid ""
11237 "Sets the TTL (time-to-live) for positive entries (successful queries)  in "
11238 "the specified cache for I<service>.  I<Value> is in seconds.  Larger values "
11239 "increase cache hit rates and reduce mean response times, but increase "
11240 "problems with cache coherence."
11241 msgstr ""
11242
11243 #. type: Plain text
11244 #: build/C/man5/nscd.conf.5:136
11245 msgid "B<negative-time-to-live> I<service> I<value>"
11246 msgstr ""
11247
11248 #. type: Plain text
11249 #: build/C/man5/nscd.conf.5:146
11250 msgid ""
11251 "Sets the TTL (time-to-live) for negative entries (unsuccessful queries)  in "
11252 "the specified cache for I<service>.  I<Value> is in seconds.  Can result in "
11253 "significant performance improvements if there are several files owned by "
11254 "UIDs (user IDs) not in system databases (for example untarring the Linux "
11255 "kernel sources as root); should be kept small to reduce cache coherency "
11256 "problems."
11257 msgstr ""
11258
11259 #. type: Plain text
11260 #: build/C/man5/nscd.conf.5:151
11261 msgid "B<suggested-size> I<service> I<value>"
11262 msgstr ""
11263
11264 #. type: Plain text
11265 #: build/C/man5/nscd.conf.5:156
11266 msgid ""
11267 "This is the internal hash table size, I<value> should remain a prime number "
11268 "for optimum efficiency.  The default is 211."
11269 msgstr ""
11270
11271 #. type: Plain text
11272 #: build/C/man5/nscd.conf.5:161
11273 msgid "B<check-files> I<service> I<E<lt>yes|noE<gt>>"
11274 msgstr ""
11275
11276 #. type: Plain text
11277 #: build/C/man5/nscd.conf.5:173
11278 msgid ""
11279 "Enables or disables checking the file belonging to the specified I<service> "
11280 "for changes.  The files are I</etc/passwd>, I</etc/group>, I</etc/hosts>, "
11281 "I</etc/services> and I</etc/netgroup>.  The default is yes."
11282 msgstr ""
11283
11284 #. type: Plain text
11285 #: build/C/man5/nscd.conf.5:178
11286 msgid "B<persistent> I<service> I<E<lt>yes|noE<gt>>"
11287 msgstr ""
11288
11289 #. type: Plain text
11290 #: build/C/man5/nscd.conf.5:185
11291 msgid ""
11292 "Keep the content of the cache for I<service> over server restarts; useful "
11293 "when B<paranoia> mode is set.  The default is no."
11294 msgstr ""
11295
11296 #. type: Plain text
11297 #: build/C/man5/nscd.conf.5:190
11298 msgid "B<shared> I<service> I<E<lt>yes|noE<gt>>"
11299 msgstr ""
11300
11301 #. type: Plain text
11302 #: build/C/man5/nscd.conf.5:197
11303 msgid ""
11304 "The memory mapping of the nscd databases for I<service> is shared with the "
11305 "clients so that they can directly search in them instead of having to ask "
11306 "the daemon over the socket each time a lookup is performed.  The default is "
11307 "no."
11308 msgstr ""
11309
11310 #. type: Plain text
11311 #: build/C/man5/nscd.conf.5:202
11312 msgid "B<max-db-size> I<service> I<bytes>"
11313 msgstr ""
11314
11315 #. type: Plain text
11316 #: build/C/man5/nscd.conf.5:206
11317 msgid ""
11318 "The maximum allowable size, in bytes, of the database files for the "
11319 "I<service>.  The default is 33554432."
11320 msgstr ""
11321
11322 #. type: Plain text
11323 #: build/C/man5/nscd.conf.5:211
11324 msgid "B<auto-propagate> I<service> I<E<lt>yes|noE<gt>>"
11325 msgstr ""
11326
11327 #. type: Plain text
11328 #: build/C/man5/nscd.conf.5:231
11329 msgid ""
11330 "When set to I<no> for I<passwd> or I<group> service, then the I<.byname> "
11331 "requests are not added to I<passwd.byuid> or I<group.bygid> cache.  This can "
11332 "help with tables containing multiple records for the same ID.  The default "
11333 "is yes.  This option is valid only for services I<passwd> and I<group>."
11334 msgstr ""
11335
11336 #.  .SH AUTHOR
11337 #.  .B nscd
11338 #.  was written by Thorsten Kukuk and Ulrich Drepper.
11339 #. type: Plain text
11340 #: build/C/man5/nscd.conf.5:237
11341 msgid "B<nscd>(8)"
11342 msgstr ""
11343
11344 #. type: TH
11345 #: build/C/man5/nss.5:19
11346 #, no-wrap
11347 msgid "NSS"
11348 msgstr ""
11349
11350 #. type: Plain text
11351 #: build/C/man5/nss.5:22
11352 msgid "nss - Name Service Switch configuration file"
11353 msgstr ""
11354
11355 #. type: Plain text
11356 #: build/C/man5/nss.5:29
11357 msgid ""
11358 "Each call to a function which retrieves data from a system database like the "
11359 "password or group database is handled by the Name Service Switch "
11360 "implementation in the GNU C library.  The various services provided are "
11361 "implemented by independent modules, each of which naturally varies widely "
11362 "from the other."
11363 msgstr ""
11364
11365 #. type: Plain text
11366 #: build/C/man5/nss.5:38
11367 msgid ""
11368 "The default implementations coming with the GNU C library are by default "
11369 "conservative and do not use unsafe data.  This might be very costly in some "
11370 "situations, especially when the databases are large.  Some modules allow the "
11371 "system administrator to request taking shortcuts if these are known to be "
11372 "safe.  It is then the system administrator's responsibility to ensure the "
11373 "assumption is correct."
11374 msgstr ""
11375
11376 #. type: Plain text
11377 #: build/C/man5/nss.5:42
11378 msgid ""
11379 "There are other modules where the implementation changed over time.  If an "
11380 "implementation used to sacrifice speed for memory consumption it might "
11381 "create problems if the preference is switched."
11382 msgstr ""
11383
11384 #. type: Plain text
11385 #: build/C/man5/nss.5:51
11386 msgid ""
11387 "The I</etc/default/nss> file contains a number of variable assignments.  "
11388 "Each variable controls the behavior of one or more NSS modules.  White "
11389 "spaces are ignored.  Lines beginning with \\(aq#\\(aq are treated as "
11390 "comments."
11391 msgstr ""
11392
11393 #. type: Plain text
11394 #: build/C/man5/nss.5:53
11395 msgid "The variables currently recognized are:"
11396 msgstr ""
11397
11398 #. type: TP
11399 #: build/C/man5/nss.5:53
11400 #, no-wrap
11401 msgid "B<NETID_AUTHORITATIVE => I<TRUE>|I<FALSE>"
11402 msgstr ""
11403
11404 #. type: Plain text
11405 #: build/C/man5/nss.5:68
11406 msgid ""
11407 "If set to TRUE, the NIS backend for the B<initgroups>(3)  function will "
11408 "accept the information from the I<netid.byname> NIS map as authoritative.  "
11409 "This can speed up the function significantly if the I<group.byname> map is "
11410 "large.  The content of the I<netid.byname> map is used B<as is>.  The system "
11411 "administrator has to make sure it is correctly generated."
11412 msgstr ""
11413
11414 #. type: TP
11415 #: build/C/man5/nss.5:68
11416 #, no-wrap
11417 msgid "B<SERVICES_AUTHORITATIVE => I<TRUE>|I<FALSE>"
11418 msgstr ""
11419
11420 #. type: Plain text
11421 #: build/C/man5/nss.5:80
11422 msgid ""
11423 "If set to TRUE, the NIS backend for the B<getservbyname>(3)  and "
11424 "B<getservbyname_r>(3)  functions will assume that the "
11425 "I<services.byservicename> NIS map exists and is authoritative, particularly "
11426 "that it contains both keys with /proto and without /proto for both primary "
11427 "service names and service aliases.  The system administrator has to make "
11428 "sure it is correctly generated."
11429 msgstr ""
11430
11431 #. type: TP
11432 #: build/C/man5/nss.5:80
11433 #, no-wrap
11434 msgid "B<SETENT_BATCH_READ => I<TRUE>|I<FALSE>"
11435 msgstr ""
11436
11437 #. type: Plain text
11438 #: build/C/man5/nss.5:98
11439 msgid ""
11440 "If set to TRUE, the NIS backend for the B<setpwent>(3)  and B<setgrent>(3)  "
11441 "functions will read the entire database at once and then hand out the "
11442 "requests one by one from memory with every corresponding B<getpwent>(3)  or "
11443 "B<getgrent>(3)  call respectively.  Otherwise each B<getpwent>(3)  or "
11444 "B<getgrent>(3)  call might result in a network communication with the server "
11445 "to get the next entry."
11446 msgstr ""
11447
11448 #. type: Plain text
11449 #: build/C/man5/nss.5:100
11450 msgid "I</etc/default/nss>"
11451 msgstr ""
11452
11453 #. type: Plain text
11454 #: build/C/man5/nss.5:102
11455 msgid "The default configuration corresponds to the following configuration file:"
11456 msgstr ""
11457
11458 #.  .SH AUTHOR
11459 #.  Ulrich Drepper <drepper@redhat.com>
11460 #. type: Plain text
11461 #: build/C/man5/nss.5:110
11462 #, no-wrap
11463 msgid ""
11464 "NETID_AUTHORITATIVE=FALSE\n"
11465 "SERVICES_AUTHORITATIVE=FALSE\n"
11466 "SETENT_BATCH_READ=FALSE\n"
11467 msgstr ""
11468
11469 #. type: Plain text
11470 #: build/C/man5/nss.5:112
11471 msgid "I<nsswitch.conf>"
11472 msgstr ""
11473
11474 #. type: TH
11475 #: build/C/man5/nsswitch.conf.5:25
11476 #, no-wrap
11477 msgid "NSSWITCH.CONF"
11478 msgstr ""
11479
11480 #. type: Plain text
11481 #: build/C/man5/nsswitch.conf.5:28
11482 msgid "nsswitch.conf - Name Service Switch configuration file"
11483 msgstr ""
11484
11485 #. type: Plain text
11486 #: build/C/man5/nsswitch.conf.5:36
11487 msgid ""
11488 "The Name Service Switch (NSS) configuration file, I</etc/nsswitch.conf>, is "
11489 "used by the GNU C Library to determine the sources from which to obtain "
11490 "name-service information in a range of categories, and in what order.  Each "
11491 "category of information is identified by a database name."
11492 msgstr ""
11493
11494 #. type: Plain text
11495 #: build/C/man5/nsswitch.conf.5:42
11496 msgid ""
11497 "The file is plain ASCII text, with columns separated by spaces or tab "
11498 "characters.  The first column specifies the database name.  The remaining "
11499 "columns describe the order of sources to query and a limited set of actions "
11500 "that can be performed by lookup result."
11501 msgstr ""
11502
11503 #. type: Plain text
11504 #: build/C/man5/nsswitch.conf.5:44
11505 msgid "The following databases are understood by the GNU C Library:"
11506 msgstr ""
11507
11508 #. type: Plain text
11509 #: build/C/man5/nsswitch.conf.5:49
11510 msgid "Mail aliases, used by B<getaliasent>(3)  and related functions."
11511 msgstr ""
11512
11513 #. type: Plain text
11514 #: build/C/man5/nsswitch.conf.5:52
11515 msgid "Ethernet numbers."
11516 msgstr ""
11517
11518 #. type: Plain text
11519 #: build/C/man5/nsswitch.conf.5:57
11520 msgid "Groups of users, used by B<getgrent>(3)  and related functions."
11521 msgstr ""
11522
11523 #. type: Plain text
11524 #: build/C/man5/nsswitch.conf.5:62
11525 msgid "Host names and numbers, used by B<gethostbyname>(3)  and related functions."
11526 msgstr ""
11527
11528 #. type: Plain text
11529 #: build/C/man5/nsswitch.conf.5:67
11530 msgid "Supplementary group access list, used by B<getgrouplist>(3)  function."
11531 msgstr ""
11532
11533 #. type: Plain text
11534 #: build/C/man5/nsswitch.conf.5:71
11535 msgid ""
11536 "Network-wide list of hosts and users, used for access rules.  C libraries "
11537 "before glibc 2.1 supported netgroups only over NIS."
11538 msgstr ""
11539
11540 #. type: Plain text
11541 #: build/C/man5/nsswitch.conf.5:76
11542 msgid "Network names and numbers, used by B<getnetent>(3)  and related functions."
11543 msgstr ""
11544
11545 #. type: Plain text
11546 #: build/C/man5/nsswitch.conf.5:81
11547 msgid "User passwords, used by B<getpwent>(3)  and related functions."
11548 msgstr ""
11549
11550 #. type: Plain text
11551 #: build/C/man5/nsswitch.conf.5:86
11552 msgid "Network protocols, used by B<getprotoent>(3)  and related functions."
11553 msgstr ""
11554
11555 #. type: TP
11556 #: build/C/man5/nsswitch.conf.5:86
11557 #, no-wrap
11558 msgid "B<publickey>"
11559 msgstr ""
11560
11561 #. type: Plain text
11562 #: build/C/man5/nsswitch.conf.5:89
11563 msgid "Public and secret keys for Secure_RPC used by NFS and NIS+."
11564 msgstr ""
11565
11566 #. type: Plain text
11567 #: build/C/man5/nsswitch.conf.5:94
11568 msgid ""
11569 "Remote procedure call names and numbers, used by B<getrpcbyname>(3)  and "
11570 "related functions."
11571 msgstr ""
11572
11573 #. type: Plain text
11574 #: build/C/man5/nsswitch.conf.5:99
11575 msgid "Network services, used by B<getservent>(3)  and related functions."
11576 msgstr ""
11577
11578 #. type: Plain text
11579 #: build/C/man5/nsswitch.conf.5:104
11580 msgid "Shadow user passwords, used by B<getspnam>(3)  and related functions."
11581 msgstr ""
11582
11583 #. type: Plain text
11584 #: build/C/man5/nsswitch.conf.5:108
11585 msgid "Here is an example I</etc/nsswitch.conf> file:"
11586 msgstr ""
11587
11588 #. type: TP
11589 #: build/C/man5/nsswitch.conf.5:111
11590 #, no-wrap
11591 msgid "passwd:"
11592 msgstr ""
11593
11594 #. type: Plain text
11595 #: build/C/man5/nsswitch.conf.5:114 build/C/man5/nsswitch.conf.5:117 build/C/man5/nsswitch.conf.5:120
11596 msgid "compat"
11597 msgstr ""
11598
11599 #. type: TP
11600 #: build/C/man5/nsswitch.conf.5:114
11601 #, no-wrap
11602 msgid "group:"
11603 msgstr ""
11604
11605 #. type: TP
11606 #: build/C/man5/nsswitch.conf.5:117
11607 #, no-wrap
11608 msgid "shadow:"
11609 msgstr ""
11610
11611 #. type: TP
11612 #: build/C/man5/nsswitch.conf.5:121
11613 #, no-wrap
11614 msgid "hosts:"
11615 msgstr ""
11616
11617 #. type: Plain text
11618 #: build/C/man5/nsswitch.conf.5:124
11619 msgid "dns [!UNAVAIL=return] files"
11620 msgstr ""
11621
11622 #. type: TP
11623 #: build/C/man5/nsswitch.conf.5:124
11624 #, no-wrap
11625 msgid "networks:"
11626 msgstr ""
11627
11628 #. type: Plain text
11629 #: 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
11630 msgid "nis [NOTFOUND=return] files"
11631 msgstr ""
11632
11633 #. type: TP
11634 #: build/C/man5/nsswitch.conf.5:127
11635 #, no-wrap
11636 msgid "ethers:"
11637 msgstr ""
11638
11639 #. type: TP
11640 #: build/C/man5/nsswitch.conf.5:130
11641 #, no-wrap
11642 msgid "protocols:"
11643 msgstr ""
11644
11645 #. type: TP
11646 #: build/C/man5/nsswitch.conf.5:133
11647 #, no-wrap
11648 msgid "rpc:"
11649 msgstr ""
11650
11651 #. type: TP
11652 #: build/C/man5/nsswitch.conf.5:136
11653 #, no-wrap
11654 msgid "services:"
11655 msgstr ""
11656
11657 #. type: Plain text
11658 #: build/C/man5/nsswitch.conf.5:144
11659 msgid "The first column is the database name.  The remaining columns specify:"
11660 msgstr ""
11661
11662 #. type: Plain text
11663 #: build/C/man5/nsswitch.conf.5:148
11664 msgid ""
11665 "One or more service specifications e.g., \"files\", \"db\", or \"nis\".  The "
11666 "order of the services on the line determines the order in which those "
11667 "services will be queried, in turn, until a result is found."
11668 msgstr ""
11669
11670 #. type: Plain text
11671 #: build/C/man5/nsswitch.conf.5:151
11672 msgid ""
11673 "Optional actions to perform if a particular result is obtained from the "
11674 "preceding service, e.g., \"[NOTFOUND=return]\"."
11675 msgstr ""
11676
11677 #. type: Plain text
11678 #: build/C/man5/nsswitch.conf.5:177
11679 msgid ""
11680 "The service specifications supported on your system depend on the presence "
11681 "of shared libraries, and are therefore extensible.  Libraries called "
11682 "I</lib/libnss_SERVICE.so.>B<X> will provide the named I<SERVICE>.  On a "
11683 "standard installation, you can use \"files\", \"db\", \"nis\", and "
11684 "\"nisplus\".  For the B<hosts> database, you can additionally specify "
11685 "\"dns\".  For the B<passwd>, B<group>, and B<shadow> databases, you can "
11686 "additionally specify \"compat\" (see B<Compatibility mode> below).  The "
11687 "version number B<X> may be 1 for glibc 2.0, or 2 for glibc 2.1 and later.  "
11688 "On systems with additional libraries installed, you may have access to "
11689 "further services such as \"hesiod\", \"ldap\", \"winbind\" and \"wins\"."
11690 msgstr ""
11691
11692 #. type: Plain text
11693 #: build/C/man5/nsswitch.conf.5:182
11694 msgid ""
11695 "An action may also be specified following a service specification.  The "
11696 "action modifies the behavior following a result obtained from the preceding "
11697 "data source.  Action items take the general form:"
11698 msgstr ""
11699
11700 #. type: Plain text
11701 #: build/C/man5/nsswitch.conf.5:185
11702 msgid "[I<STATUS>=I<ACTION>]"
11703 msgstr ""
11704
11705 #. type: Plain text
11706 #: build/C/man5/nsswitch.conf.5:187
11707 msgid "[!I<STATUS>=I<ACTION>]"
11708 msgstr ""
11709
11710 #. type: Plain text
11711 #: build/C/man5/nsswitch.conf.5:190
11712 msgid "where"
11713 msgstr ""
11714
11715 #. type: Plain text
11716 #: build/C/man5/nsswitch.conf.5:201
11717 msgid "I<STATUS> =E<gt> B<success> | B<notfound> | B<unavail> | B<tryagain>"
11718 msgstr ""
11719
11720 #. type: Plain text
11721 #: build/C/man5/nsswitch.conf.5:207
11722 msgid "I<ACTION> =E<gt> B<return> | B<continue>"
11723 msgstr ""
11724
11725 #. type: Plain text
11726 #: build/C/man5/nsswitch.conf.5:212
11727 msgid ""
11728 "The ! negates the test, matching all possible results except the one "
11729 "specified.  The case of the keywords is not significant."
11730 msgstr ""
11731
11732 #. type: Plain text
11733 #: build/C/man5/nsswitch.conf.5:217
11734 msgid ""
11735 "The I<STATUS> value is matched against the result of the lookup function "
11736 "called by the preceding service specification, and can be one of:"
11737 msgstr ""
11738
11739 #. type: TP
11740 #: build/C/man5/nsswitch.conf.5:218
11741 #, no-wrap
11742 msgid "B<success>"
11743 msgstr ""
11744
11745 #. type: Plain text
11746 #: build/C/man5/nsswitch.conf.5:222
11747 msgid ""
11748 "No error occurred and the requested entry is returned.  The default action "
11749 "for this condition is \"return\"."
11750 msgstr ""
11751
11752 #. type: TP
11753 #: build/C/man5/nsswitch.conf.5:222
11754 #, no-wrap
11755 msgid "B<notfound>"
11756 msgstr ""
11757
11758 #. type: Plain text
11759 #: build/C/man5/nsswitch.conf.5:226
11760 msgid ""
11761 "The lookup succeeded, but the requested entry was not found.  The default "
11762 "action for this condition is \"continue\"."
11763 msgstr ""
11764
11765 #. type: TP
11766 #: build/C/man5/nsswitch.conf.5:226
11767 #, no-wrap
11768 msgid "B<unavail>"
11769 msgstr ""
11770
11771 #. type: Plain text
11772 #: build/C/man5/nsswitch.conf.5:233
11773 msgid ""
11774 "The service is permanently unavailable.  This can mean either that the "
11775 "required file cannot be read, or, for network services, that the server is "
11776 "not available or does not allow queries.  The default action for this "
11777 "condition is \"continue\"."
11778 msgstr ""
11779
11780 #. type: TP
11781 #: build/C/man5/nsswitch.conf.5:233
11782 #, no-wrap
11783 msgid "B<tryagain>"
11784 msgstr ""
11785
11786 #. type: Plain text
11787 #: build/C/man5/nsswitch.conf.5:239
11788 msgid ""
11789 "The service is temporarily unavailable.  This could mean a file is locked or "
11790 "a server currently cannot accept more connections.  The default action for "
11791 "this condition is \"continue\"."
11792 msgstr ""
11793
11794 #. type: Plain text
11795 #: build/C/man5/nsswitch.conf.5:244
11796 msgid "The I<ACTION> value can be one of:"
11797 msgstr ""
11798
11799 #. type: TP
11800 #: build/C/man5/nsswitch.conf.5:245
11801 #, no-wrap
11802 msgid "B<return>"
11803 msgstr ""
11804
11805 #. type: Plain text
11806 #: build/C/man5/nsswitch.conf.5:257
11807 msgid ""
11808 "Return a result now.  Do not call any further lookup functions.  However, "
11809 "for compatibility reasons, if this is the selected action for the B<group> "
11810 "database and the B<notfound> status, and the configuration file does not "
11811 "contain the B<initgroups> line, the next lookup function is always called, "
11812 "without affecting the search result."
11813 msgstr ""
11814
11815 #. type: TP
11816 #: build/C/man5/nsswitch.conf.5:257
11817 #, no-wrap
11818 msgid "B<continue>"
11819 msgstr ""
11820
11821 #. type: Plain text
11822 #: build/C/man5/nsswitch.conf.5:260
11823 msgid "Call the next lookup function."
11824 msgstr ""
11825
11826 #. type: SS
11827 #: build/C/man5/nsswitch.conf.5:261
11828 #, no-wrap
11829 msgid "Compatibility mode (compat)"
11830 msgstr ""
11831
11832 #. type: Plain text
11833 #: build/C/man5/nsswitch.conf.5:267
11834 msgid ""
11835 "The NSS \"compat\" service is similar to \"files\" except that it "
11836 "additionally permits special entries in I</etc/passwd> for granting users or "
11837 "members of netgroups access to the system.  The following entries are valid "
11838 "in this mode:"
11839 msgstr ""
11840
11841 #. type: TP
11842 #: build/C/man5/nsswitch.conf.5:268
11843 #, no-wrap
11844 msgid "B<+>I<user>"
11845 msgstr ""
11846
11847 #. type: Plain text
11848 #: build/C/man5/nsswitch.conf.5:273
11849 msgid "Include the specified I<user> from the NIS passwd map."
11850 msgstr ""
11851
11852 #. type: TP
11853 #: build/C/man5/nsswitch.conf.5:273
11854 #, no-wrap
11855 msgid "B<+@>I<netgroup>"
11856 msgstr ""
11857
11858 #. type: Plain text
11859 #: build/C/man5/nsswitch.conf.5:277
11860 msgid "Include all users in the given I<netgroup>."
11861 msgstr ""
11862
11863 #. type: TP
11864 #: build/C/man5/nsswitch.conf.5:277
11865 #, no-wrap
11866 msgid "B<->I<user>"
11867 msgstr ""
11868
11869 #. type: Plain text
11870 #: build/C/man5/nsswitch.conf.5:282
11871 msgid "Exclude the specified I<user> from the NIS passwd map."
11872 msgstr ""
11873
11874 #. type: TP
11875 #: build/C/man5/nsswitch.conf.5:282
11876 #, no-wrap
11877 msgid "B<-@>I<netgroup>"
11878 msgstr ""
11879
11880 #. type: Plain text
11881 #: build/C/man5/nsswitch.conf.5:286
11882 msgid "Exclude all users in the given I<netgroup>."
11883 msgstr ""
11884
11885 #. type: TP
11886 #: build/C/man5/nsswitch.conf.5:286
11887 #, no-wrap
11888 msgid "B<+>"
11889 msgstr ""
11890
11891 #. type: Plain text
11892 #: build/C/man5/nsswitch.conf.5:290
11893 msgid ""
11894 "Include every user, except previously excluded ones, from the NIS passwd "
11895 "map."
11896 msgstr ""
11897
11898 #. type: Plain text
11899 #: build/C/man5/nsswitch.conf.5:298
11900 msgid ""
11901 "By default the source is \"nis\", but this may be overridden by specifying "
11902 "\"nisplus\" as the source for the pseudo-databases B<passwd_compat>, "
11903 "B<group_compat>, and B<shadow_compat>."
11904 msgstr ""
11905
11906 #. type: Plain text
11907 #: build/C/man5/nsswitch.conf.5:305
11908 msgid ""
11909 "A service named I<SERVICE> is implemented by a shared object library named "
11910 "I<libnss_SERVICE.so.>B<X> that resides in I</lib>."
11911 msgstr ""
11912
11913 #. type: Plain text
11914 #: build/C/man5/nsswitch.conf.5:310
11915 msgid "NSS configuration file."
11916 msgstr ""
11917
11918 #. type: TP
11919 #: build/C/man5/nsswitch.conf.5:310
11920 #, no-wrap
11921 msgid "I</lib/libnss_compat.so.>B<X>"
11922 msgstr ""
11923
11924 #. type: Plain text
11925 #: build/C/man5/nsswitch.conf.5:313
11926 msgid "implements \"compat\" source."
11927 msgstr ""
11928
11929 #. type: TP
11930 #: build/C/man5/nsswitch.conf.5:313
11931 #, no-wrap
11932 msgid "I</lib/libnss_db.so.>B<X>"
11933 msgstr ""
11934
11935 #. type: Plain text
11936 #: build/C/man5/nsswitch.conf.5:316
11937 msgid "implements \"db\" source."
11938 msgstr ""
11939
11940 #. type: TP
11941 #: build/C/man5/nsswitch.conf.5:316
11942 #, no-wrap
11943 msgid "I</lib/libnss_dns.so.>B<X>"
11944 msgstr ""
11945
11946 #. type: Plain text
11947 #: build/C/man5/nsswitch.conf.5:319
11948 msgid "implements \"dns\" source."
11949 msgstr ""
11950
11951 #. type: TP
11952 #: build/C/man5/nsswitch.conf.5:319
11953 #, no-wrap
11954 msgid "I</lib/libnss_files.so.>B<X>"
11955 msgstr ""
11956
11957 #. type: Plain text
11958 #: build/C/man5/nsswitch.conf.5:322
11959 msgid "implements \"files\" source."
11960 msgstr ""
11961
11962 #. type: TP
11963 #: build/C/man5/nsswitch.conf.5:322
11964 #, no-wrap
11965 msgid "I</lib/libnss_hesiod.so.>B<X>"
11966 msgstr ""
11967
11968 #. type: Plain text
11969 #: build/C/man5/nsswitch.conf.5:325
11970 msgid "implements \"hesiod\" source."
11971 msgstr ""
11972
11973 #. type: TP
11974 #: build/C/man5/nsswitch.conf.5:325
11975 #, no-wrap
11976 msgid "I</lib/libnss_nis.so.>B<X>"
11977 msgstr ""
11978
11979 #. type: Plain text
11980 #: build/C/man5/nsswitch.conf.5:328
11981 msgid "implements \"nis\" source."
11982 msgstr ""
11983
11984 #. type: TP
11985 #: build/C/man5/nsswitch.conf.5:328
11986 #, no-wrap
11987 msgid "I</lib/libnss_nisplus.so.>B<X>"
11988 msgstr ""
11989
11990 #. type: Plain text
11991 #: build/C/man5/nsswitch.conf.5:331
11992 msgid "implements \"nisplus\" source."
11993 msgstr ""
11994
11995 #. type: Plain text
11996 #: build/C/man5/nsswitch.conf.5:339
11997 msgid ""
11998 "Within each process that uses B<nsswitch.conf>, the entire file is read only "
11999 "once.  If the file is later changed, the process will continue using the old "
12000 "configuration."
12001 msgstr ""
12002
12003 #. type: Plain text
12004 #: build/C/man5/nsswitch.conf.5:352
12005 msgid ""
12006 "Traditionally, there was only a single source for service information, often "
12007 "in the form of a single configuration file (e.g., I</etc/passwd>).  However, "
12008 "as other name services, such as the Network Information Service (NIS) and "
12009 "the Domain Name Service (DNS), became popular, a method was needed that "
12010 "would be more flexible than fixed search orders coded into the C library.  "
12011 "The Name Service Switch mechanism, which was based on the mechanism used by "
12012 "Sun Microsystems in the Solaris 2 C library, introduced a cleaner solution "
12013 "to the problem."
12014 msgstr ""
12015
12016 #. type: Plain text
12017 #: build/C/man5/nsswitch.conf.5:355
12018 msgid "B<getent>(1), B<nss>(5)"
12019 msgstr ""
12020
12021 #. type: TH
12022 #: build/C/man7/packet.7:12
12023 #, no-wrap
12024 msgid "PACKET"
12025 msgstr ""
12026
12027 #. type: Plain text
12028 #: build/C/man7/packet.7:15
12029 msgid "packet - packet interface on device level."
12030 msgstr ""
12031
12032 #. type: Plain text
12033 #: build/C/man7/packet.7:18
12034 #, no-wrap
12035 msgid "B<#include E<lt>sys/socket.hE<gt>>\n"
12036 msgstr ""
12037
12038 #. type: Plain text
12039 #: build/C/man7/packet.7:20
12040 #, no-wrap
12041 msgid "B<#include E<lt>netpacket/packet.hE<gt>>\n"
12042 msgstr ""
12043
12044 #. type: Plain text
12045 #: build/C/man7/packet.7:22
12046 #, no-wrap
12047 msgid "B<#include E<lt>net/ethernet.hE<gt> /* the L2 protocols */>\n"
12048 msgstr ""
12049
12050 #. type: Plain text
12051 #: build/C/man7/packet.7:24
12052 #, no-wrap
12053 msgid ""
12054 "B<packet_socket = socket(AF_PACKET, int >I<socket_type>B<, int "
12055 ">I<protocol>B<);>\n"
12056 msgstr ""
12057
12058 #. type: Plain text
12059 #: build/C/man7/packet.7:30
12060 msgid ""
12061 "Packet sockets are used to receive or send raw packets at the device driver "
12062 "(OSI Layer 2) level.  They allow the user to implement protocol modules in "
12063 "user space on top of the physical layer."
12064 msgstr ""
12065
12066 #. type: Plain text
12067 #: build/C/man7/packet.7:52
12068 msgid ""
12069 "The I<socket_type> is either B<SOCK_RAW> for raw packets including the link "
12070 "level header or B<SOCK_DGRAM> for cooked packets with the link level header "
12071 "removed.  The link level header information is available in a common format "
12072 "in a I<sockaddr_ll>.  I<protocol> is the IEEE 802.3 protocol number in "
12073 "network order.  See the I<E<lt>linux/if_ether.hE<gt>> include file for a "
12074 "list of allowed protocols.  When protocol is set to B<htons(ETH_P_ALL)> then "
12075 "all protocols are received.  All incoming packets of that protocol type will "
12076 "be passed to the packet socket before they are passed to the protocols "
12077 "implemented in the kernel."
12078 msgstr ""
12079
12080 #. type: Plain text
12081 #: build/C/man7/packet.7:56
12082 msgid ""
12083 "Only processes with effective UID 0 or the B<CAP_NET_RAW> capability may "
12084 "open packet sockets."
12085 msgstr ""
12086
12087 #. type: Plain text
12088 #: build/C/man7/packet.7:74
12089 msgid ""
12090 "B<SOCK_RAW> packets are passed to and from the device driver without any "
12091 "changes in the packet data.  When receiving a packet, the address is still "
12092 "parsed and passed in a standard I<sockaddr_ll> address structure.  When "
12093 "transmitting a packet, the user supplied buffer should contain the physical "
12094 "layer header.  That packet is then queued unmodified to the network driver "
12095 "of the interface defined by the destination address.  Some device drivers "
12096 "always add other headers.  B<SOCK_RAW> is similar to but not compatible with "
12097 "the obsolete B<AF_INET/SOCK_PACKET> of Linux 2.0."
12098 msgstr ""
12099
12100 #. type: Plain text
12101 #: build/C/man7/packet.7:84
12102 msgid ""
12103 "B<SOCK_DGRAM> operates on a slightly higher level.  The physical header is "
12104 "removed before the packet is passed to the user.  Packets sent through a "
12105 "B<SOCK_DGRAM> packet socket get a suitable physical layer header based on "
12106 "the information in the I<sockaddr_ll> destination address before they are "
12107 "queued."
12108 msgstr ""
12109
12110 #. type: Plain text
12111 #: build/C/man7/packet.7:97
12112 msgid ""
12113 "By default all packets of the specified protocol type are passed to a packet "
12114 "socket.  To get packets only from a specific interface use B<bind>(2)  "
12115 "specifying an address in a I<struct sockaddr_ll> to bind the packet socket "
12116 "to an interface.  Only the I<sll_protocol> and the I<sll_ifindex> address "
12117 "fields are used for purposes of binding."
12118 msgstr ""
12119
12120 #. type: Plain text
12121 #: build/C/man7/packet.7:101
12122 msgid "The B<connect>(2)  operation is not supported on packet sockets."
12123 msgstr ""
12124
12125 #. type: Plain text
12126 #: build/C/man7/packet.7:110
12127 msgid ""
12128 "When the B<MSG_TRUNC> flag is passed to B<recvmsg>(2), B<recv>(2), "
12129 "B<recvfrom>(2)  the real length of the packet on the wire is always "
12130 "returned, even when it is longer than the buffer."
12131 msgstr ""
12132
12133 #. type: SS
12134 #: build/C/man7/packet.7:110
12135 #, no-wrap
12136 msgid "Address types"
12137 msgstr ""
12138
12139 #. type: Plain text
12140 #: build/C/man7/packet.7:112
12141 msgid "The sockaddr_ll is a device independent physical layer address."
12142 msgstr ""
12143
12144 #. type: Plain text
12145 #: build/C/man7/packet.7:124
12146 #, no-wrap
12147 msgid ""
12148 "struct sockaddr_ll {\n"
12149 "    unsigned short sll_family;   /* Always AF_PACKET */\n"
12150 "    unsigned short sll_protocol; /* Physical layer protocol */\n"
12151 "    int            sll_ifindex;  /* Interface number */\n"
12152 "    unsigned short sll_hatype;   /* ARP hardware type */\n"
12153 "    unsigned char  sll_pkttype;  /* Packet type */\n"
12154 "    unsigned char  sll_halen;    /* Length of address */\n"
12155 "    unsigned char  sll_addr[8];  /* Physical layer address */\n"
12156 "};\n"
12157 msgstr ""
12158
12159 #. type: Plain text
12160 #: build/C/man7/packet.7:163
12161 msgid ""
12162 "I<sll_protocol> is the standard ethernet protocol type in network order as "
12163 "defined in the I<E<lt>linux/if_ether.hE<gt>> include file.  It defaults to "
12164 "the socket's protocol.  I<sll_ifindex> is the interface index of the "
12165 "interface (see B<netdevice>(7)); 0 matches any interface (only permitted for "
12166 "binding).  I<sll_hatype> is an ARP type as defined in the "
12167 "I<E<lt>linux/if_arp.hE<gt>> include file.  I<sll_pkttype> contains the "
12168 "packet type.  Valid types are B<PACKET_HOST> for a packet addressed to the "
12169 "local host, B<PACKET_BROADCAST> for a physical layer broadcast packet, "
12170 "B<PACKET_MULTICAST> for a packet sent to a physical layer multicast address, "
12171 "B<PACKET_OTHERHOST> for a packet to some other host that has been caught by "
12172 "a device driver in promiscuous mode, and B<PACKET_OUTGOING> for a packet "
12173 "originated from the local host that is looped back to a packet socket.  "
12174 "These types make sense only for receiving.  I<sll_addr> and I<sll_halen> "
12175 "contain the physical layer (e.g., IEEE 802.3) address and its length.  The "
12176 "exact interpretation depends on the device."
12177 msgstr ""
12178
12179 #. type: Plain text
12180 #: build/C/man7/packet.7:179
12181 msgid ""
12182 "When you send packets it is enough to specify I<sll_family>, I<sll_addr>, "
12183 "I<sll_halen>, I<sll_ifindex>.  The other fields should be 0.  I<sll_hatype> "
12184 "and I<sll_pkttype> are set on received packets for your information.  For "
12185 "bind only I<sll_protocol> and I<sll_ifindex> are used."
12186 msgstr ""
12187
12188 #. type: Plain text
12189 #: build/C/man7/packet.7:194
12190 msgid ""
12191 "Packet sockets can be used to configure physical layer multicasting and "
12192 "promiscuous mode.  It works by calling B<setsockopt>(2)  on a packet socket "
12193 "for B<SOL_PACKET> and one of the options B<PACKET_ADD_MEMBERSHIP> to add a "
12194 "binding or B<PACKET_DROP_MEMBERSHIP> to drop it.  They both expect a "
12195 "B<packet_mreq> structure as argument:"
12196 msgstr ""
12197
12198 #. type: Plain text
12199 #: build/C/man7/packet.7:203
12200 #, no-wrap
12201 msgid ""
12202 "struct packet_mreq {\n"
12203 "    int            mr_ifindex;    /* interface index */\n"
12204 "    unsigned short mr_type;       /* action */\n"
12205 "    unsigned short mr_alen;       /* address length */\n"
12206 "    unsigned char  mr_address[8]; /* physical layer address */\n"
12207 "};\n"
12208 msgstr ""
12209
12210 #. type: Plain text
12211 #: build/C/man7/packet.7:224
12212 msgid ""
12213 "B<mr_ifindex> contains the interface index for the interface whose status "
12214 "should be changed.  The B<mr_type> parameter specifies which action to "
12215 "perform.  B<PACKET_MR_PROMISC> enables receiving all packets on a shared "
12216 "medium (often known as \"promiscuous mode\"), B<PACKET_MR_MULTICAST> binds "
12217 "the socket to the physical layer multicast group specified in B<mr_address> "
12218 "and B<mr_alen>, and B<PACKET_MR_ALLMULTI> sets the socket up to receive all "
12219 "multicast packets arriving at the interface."
12220 msgstr ""
12221
12222 #. type: Plain text
12223 #: build/C/man7/packet.7:230
12224 msgid ""
12225 "In addition the traditional ioctls B<SIOCSIFFLAGS>, B<SIOCADDMULTI>, "
12226 "B<SIOCDELMULTI> can be used for the same purpose."
12227 msgstr ""
12228
12229 #.  FIXME Document SIOCGSTAMPNS
12230 #. type: Plain text
12231 #: build/C/man7/packet.7:236
12232 msgid ""
12233 "B<SIOCGSTAMP> can be used to receive the timestamp of the last received "
12234 "packet.  Argument is a I<struct timeval.>"
12235 msgstr ""
12236
12237 #. type: Plain text
12238 #: build/C/man7/packet.7:242
12239 msgid ""
12240 "In addition all standard ioctls defined in B<netdevice>(7)  and B<socket>(7)  "
12241 "are valid on packet sockets."
12242 msgstr ""
12243
12244 #. type: SS
12245 #: build/C/man7/packet.7:242 build/C/man7/raw.7:131 build/C/man7/tcp.7:1115 build/C/man7/udp.7:103
12246 #, no-wrap
12247 msgid "Error handling"
12248 msgstr ""
12249
12250 #. type: Plain text
12251 #: build/C/man7/packet.7:246
12252 msgid ""
12253 "Packet sockets do no error handling other than errors occurred while passing "
12254 "the packet to the device driver.  They don't have the concept of a pending "
12255 "error."
12256 msgstr ""
12257
12258 #. type: Plain text
12259 #: build/C/man7/packet.7:250
12260 msgid "Unknown multicast group address passed."
12261 msgstr ""
12262
12263 #. type: Plain text
12264 #: build/C/man7/packet.7:253
12265 msgid "User passed invalid memory address."
12266 msgstr ""
12267
12268 #. type: Plain text
12269 #: build/C/man7/packet.7:256 build/C/man7/raw.7:155
12270 msgid "Invalid argument."
12271 msgstr ""
12272
12273 #. type: Plain text
12274 #: build/C/man7/packet.7:259
12275 msgid "Packet is bigger than interface MTU."
12276 msgstr ""
12277
12278 #. type: TP
12279 #: build/C/man7/packet.7:259
12280 #, no-wrap
12281 msgid "B<ENETDOWN>"
12282 msgstr ""
12283
12284 #. type: Plain text
12285 #: build/C/man7/packet.7:262
12286 msgid "Interface is not up."
12287 msgstr ""
12288
12289 #. type: Plain text
12290 #: build/C/man7/packet.7:265
12291 msgid "Not enough memory to allocate the packet."
12292 msgstr ""
12293
12294 #. type: Plain text
12295 #: build/C/man7/packet.7:268
12296 msgid "Unknown device name or interface index specified in interface address."
12297 msgstr ""
12298
12299 #. type: Plain text
12300 #: build/C/man7/packet.7:271
12301 msgid "No packet received."
12302 msgstr ""
12303
12304 #. type: Plain text
12305 #: build/C/man7/packet.7:274
12306 msgid "No interface address passed."
12307 msgstr ""
12308
12309 #. type: TP
12310 #: build/C/man7/packet.7:274
12311 #, no-wrap
12312 msgid "B<ENXIO>"
12313 msgstr ""
12314
12315 #. type: Plain text
12316 #: build/C/man7/packet.7:277
12317 msgid "Interface address contained an invalid interface index."
12318 msgstr ""
12319
12320 #. type: Plain text
12321 #: build/C/man7/packet.7:280
12322 msgid "User has insufficient privileges to carry out this operation."
12323 msgstr ""
12324
12325 #. type: Plain text
12326 #: build/C/man7/packet.7:282
12327 msgid "In addition other errors may be generated by the low-level driver."
12328 msgstr ""
12329
12330 #. type: Plain text
12331 #: build/C/man7/packet.7:287
12332 msgid ""
12333 "B<AF_PACKET> is a new feature in Linux 2.2.  Earlier Linux versions "
12334 "supported only B<SOCK_PACKET>."
12335 msgstr ""
12336
12337 #. type: Plain text
12338 #: build/C/man7/packet.7:292
12339 msgid ""
12340 "The include file I<E<lt>netpacket/packet.hE<gt>> is present since glibc "
12341 "2.1.  Older systems need:"
12342 msgstr ""
12343
12344 #. type: Plain text
12345 #: build/C/man7/packet.7:298
12346 #, no-wrap
12347 msgid ""
12348 "#include E<lt>asm/types.hE<gt>\n"
12349 "#include E<lt>linux/if_packet.hE<gt>\n"
12350 "#include E<lt>linux/if_ether.hE<gt>  /* The L2 protocols */\n"
12351 msgstr ""
12352
12353 #. type: Plain text
12354 #: build/C/man7/packet.7:308
12355 msgid ""
12356 "For portable programs it is suggested to use B<AF_PACKET> via B<pcap>(3); "
12357 "although this covers only a subset of the B<AF_PACKET> features."
12358 msgstr ""
12359
12360 #. type: Plain text
12361 #: build/C/man7/packet.7:329
12362 msgid ""
12363 "The B<SOCK_DGRAM> packet sockets make no attempt to create or parse the IEEE "
12364 "802.2 LLC header for a IEEE 802.3 frame.  When B<ETH_P_802_3> is specified "
12365 "as protocol for sending the kernel creates the 802.3 frame and fills out the "
12366 "length field; the user has to supply the LLC header to get a fully "
12367 "conforming packet.  Incoming 802.3 packets are not multiplexed on the "
12368 "DSAP/SSAP protocol fields; instead they are supplied to the user as protocol "
12369 "B<ETH_P_802_2> with the LLC header prepended.  It is thus not possible to "
12370 "bind to B<ETH_P_802_3>; bind to B<ETH_P_802_2> instead and do the protocol "
12371 "multiplex yourself.  The default for sending is the standard Ethernet DIX "
12372 "encapsulation with the protocol filled in."
12373 msgstr ""
12374
12375 #. type: Plain text
12376 #: build/C/man7/packet.7:331
12377 msgid "Packet sockets are not subject to the input or output firewall chains."
12378 msgstr ""
12379
12380 #. type: Plain text
12381 #: build/C/man7/packet.7:341
12382 msgid ""
12383 "In Linux 2.0, the only way to get a packet socket was by calling "
12384 "B<socket(AF_INET, SOCK_PACKET, >I<protocol>B<)>.  This is still supported "
12385 "but strongly deprecated.  The main difference between the two methods is "
12386 "that B<SOCK_PACKET> uses the old I<struct sockaddr_pkt> to specify an "
12387 "interface, which doesn't provide physical layer independence."
12388 msgstr ""
12389
12390 #. type: Plain text
12391 #: build/C/man7/packet.7:349
12392 #, no-wrap
12393 msgid ""
12394 "struct sockaddr_pkt {\n"
12395 "    unsigned short spkt_family;\n"
12396 "    unsigned char  spkt_device[14];\n"
12397 "    unsigned short spkt_protocol;\n"
12398 "};\n"
12399 msgstr ""
12400
12401 #. type: Plain text
12402 #: build/C/man7/packet.7:361
12403 msgid ""
12404 "I<spkt_family> contains the device type, I<spkt_protocol> is the IEEE 802.3 "
12405 "protocol type as defined in I<E<lt>sys/if_ether.hE<gt>> and I<spkt_device> "
12406 "is the device name as a null-terminated string, for example, eth0."
12407 msgstr ""
12408
12409 #. type: Plain text
12410 #: build/C/man7/packet.7:363
12411 msgid "This structure is obsolete and should not be used in new code."
12412 msgstr ""
12413
12414 #. type: Plain text
12415 #: build/C/man7/packet.7:367
12416 msgid ""
12417 "glibc 2.1 does not have a define for B<SOL_PACKET>.  The suggested "
12418 "workaround is to use:"
12419 msgstr ""
12420
12421 #. type: Plain text
12422 #: build/C/man7/packet.7:373
12423 #, no-wrap
12424 msgid ""
12425 "#ifndef SOL_PACKET\n"
12426 "#define SOL_PACKET 263\n"
12427 "#endif\n"
12428 msgstr ""
12429
12430 #. type: Plain text
12431 #: build/C/man7/packet.7:378
12432 msgid ""
12433 "This is fixed in later glibc versions and also does not occur on libc5 "
12434 "systems."
12435 msgstr ""
12436
12437 #. type: Plain text
12438 #: build/C/man7/packet.7:380
12439 msgid "The IEEE 802.2/803.3 LLC handling could be considered as a bug."
12440 msgstr ""
12441
12442 #. type: Plain text
12443 #: build/C/man7/packet.7:382
12444 msgid "Socket filters are not documented."
12445 msgstr ""
12446
12447 #.  .SH CREDITS
12448 #.  This man page was written by Andi Kleen with help from Matthew Wilcox.
12449 #.  AF_PACKET in Linux 2.2 was implemented
12450 #.  by Alexey Kuznetsov, based on code by Alan Cox and others.
12451 #. type: Plain text
12452 #: build/C/man7/packet.7:394
12453 msgid ""
12454 "The B<MSG_TRUNC> B<recvmsg>(2)  extension is an ugly hack and should be "
12455 "replaced by a control message.  There is currently no way to get the "
12456 "original destination address of packets via B<SOCK_DGRAM>."
12457 msgstr ""
12458
12459 #. type: Plain text
12460 #: build/C/man7/packet.7:401
12461 msgid ""
12462 "B<socket>(2), B<pcap>(3), B<capabilities>(7), B<ip>(7), B<raw>(7), "
12463 "B<socket>(7)"
12464 msgstr ""
12465
12466 #. type: Plain text
12467 #: build/C/man7/packet.7:404
12468 msgid ""
12469 "RFC\\ 894 for the standard IP Ethernet encapsulation.  RFC\\ 1700 for the "
12470 "IEEE 802.3 IP encapsulation."
12471 msgstr ""
12472
12473 #. type: Plain text
12474 #: build/C/man7/packet.7:408
12475 msgid "The I<E<lt>linux/if_ether.hE<gt>> include file for physical layer protocols."
12476 msgstr ""
12477
12478 #. type: TH
12479 #: build/C/man5/protocols.5:29
12480 #, no-wrap
12481 msgid "PROTOCOLS"
12482 msgstr ""
12483
12484 #. type: TH
12485 #: build/C/man5/protocols.5:29 build/C/man7/x25.7:12
12486 #, no-wrap
12487 msgid "2012-08-05"
12488 msgstr ""
12489
12490 #. type: Plain text
12491 #: build/C/man5/protocols.5:32
12492 msgid "protocols - protocols definition file"
12493 msgstr ""
12494
12495 #. type: Plain text
12496 #: build/C/man5/protocols.5:40
12497 msgid ""
12498 "This file is a plain ASCII file, describing the various DARPA internet "
12499 "protocols that are available from the TCP/IP subsystem.  It should be "
12500 "consulted instead of using the numbers in the ARPA include files, or, even "
12501 "worse, just guessing them.  These numbers will occur in the protocol field "
12502 "of any IP header."
12503 msgstr ""
12504
12505 #.  .. by the DDN Network Information Center.
12506 #. type: Plain text
12507 #: build/C/man5/protocols.5:46
12508 msgid ""
12509 "Keep this file untouched since changes would result in incorrect IP "
12510 "packages.  Protocol numbers and names are specified by the IANA (Internet "
12511 "Assigned Numbers Authority)."
12512 msgstr ""
12513
12514 #. type: Plain text
12515 #: build/C/man5/protocols.5:48
12516 msgid "Each line is of the following format:"
12517 msgstr ""
12518
12519 #. type: Plain text
12520 #: build/C/man5/protocols.5:51
12521 msgid "I<protocol number aliases ...>"
12522 msgstr ""
12523
12524 #. type: Plain text
12525 #: build/C/man5/protocols.5:57
12526 msgid ""
12527 "where the fields are delimited by spaces or tabs.  Empty lines are ignored.  "
12528 "If a line contains a hash mark (#), the hash mark and the part of the line "
12529 "following it are ignored."
12530 msgstr ""
12531
12532 #. type: TP
12533 #: build/C/man5/protocols.5:59 build/C/man5/services.5:109
12534 #, no-wrap
12535 msgid "I<protocol>"
12536 msgstr ""
12537
12538 #. type: Plain text
12539 #: build/C/man5/protocols.5:67
12540 msgid "the native name for the protocol.  For example I<ip>, I<tcp>, or I<udp>."
12541 msgstr ""
12542
12543 #. type: Plain text
12544 #: build/C/man5/protocols.5:71
12545 msgid ""
12546 "the official number for this protocol as it will appear within the IP "
12547 "header."
12548 msgstr ""
12549
12550 #. type: Plain text
12551 #: build/C/man5/protocols.5:74
12552 msgid "optional aliases for the protocol."
12553 msgstr ""
12554
12555 #.  The following is not true as at glibc 2.8 (a line with a comma is
12556 #.  ignored by getservent()); it's not clear if/when it was ever true.
12557 #.    As a backward compatibility feature, the slash (/) between the
12558 #.    .I port
12559 #.    number and
12560 #.    .I protocol
12561 #.    name can in fact be either a slash or a comma (,).
12562 #.    Use of the comma in
12563 #.    modern installations is deprecated.
12564 #. type: Plain text
12565 #: build/C/man5/protocols.5:77 build/C/man5/services.5:165
12566 msgid ""
12567 "This file might be distributed over a network using a network-wide naming "
12568 "service like Yellow Pages/NIS or BIND/Hesiod."
12569 msgstr ""
12570
12571 #. type: Plain text
12572 #: build/C/man5/protocols.5:81
12573 msgid "The protocols definition file."
12574 msgstr ""
12575
12576 #. type: Plain text
12577 #: build/C/man5/protocols.5:83
12578 msgid "B<getprotoent>(3)"
12579 msgstr ""
12580
12581 #. type: Plain text
12582 #: build/C/man5/protocols.5:86
12583 msgid "E<.UR http://www.iana.org\\:/assignments\\:/protocol-numbers> E<.UE>"
12584 msgstr ""
12585
12586 #. type: TH
12587 #: build/C/man7/raw.7:13
12588 #, no-wrap
12589 msgid "RAW"
12590 msgstr ""
12591
12592 #. type: Plain text
12593 #: build/C/man7/raw.7:16
12594 msgid "raw - Linux IPv4 raw sockets"
12595 msgstr ""
12596
12597 #. type: Plain text
12598 #: build/C/man7/raw.7:22
12599 msgid "B<raw_socket = socket(AF_INET, SOCK_RAW, int >I<protocol>B<);>"
12600 msgstr ""
12601
12602 #. type: Plain text
12603 #: build/C/man7/raw.7:26
12604 msgid ""
12605 "Raw sockets allow new IPv4 protocols to be implemented in user space.  A raw "
12606 "socket receives or sends the raw datagram not including link level headers."
12607 msgstr ""
12608
12609 #. type: Plain text
12610 #: build/C/man7/raw.7:32
12611 msgid ""
12612 "The IPv4 layer generates an IP header when sending a packet unless the "
12613 "B<IP_HDRINCL> socket option is enabled on the socket.  When it is enabled, "
12614 "the packet must contain an IP header.  For receiving the IP header is always "
12615 "included in the packet."
12616 msgstr ""
12617
12618 #. type: Plain text
12619 #: build/C/man7/raw.7:36
12620 msgid ""
12621 "Only processes with an effective user ID of 0 or the B<CAP_NET_RAW> "
12622 "capability are allowed to open raw sockets."
12623 msgstr ""
12624
12625 #. type: Plain text
12626 #: build/C/man7/raw.7:43
12627 msgid ""
12628 "All packets or errors matching the I<protocol> number specified for the raw "
12629 "socket are passed to this socket.  For a list of the allowed protocols see "
12630 "RFC\\ 1700 assigned numbers and B<getprotobyname>(3)."
12631 msgstr ""
12632
12633 #. type: Plain text
12634 #: build/C/man7/raw.7:53
12635 msgid ""
12636 "A protocol of B<IPPROTO_RAW> implies enabled B<IP_HDRINCL> and is able to "
12637 "send any IP protocol that is specified in the passed header.  Receiving of "
12638 "all IP protocols via B<IPPROTO_RAW> is not possible using raw sockets."
12639 msgstr ""
12640
12641 #. type: tbl table
12642 #: build/C/man7/raw.7:58
12643 #, no-wrap
12644 msgid "IP Header fields modified on sending by B<IP_HDRINCL>\n"
12645 msgstr ""
12646
12647 #. type: tbl table
12648 #: build/C/man7/raw.7:59
12649 #, no-wrap
12650 msgid "IP Checksum:Always filled in.\n"
12651 msgstr ""
12652
12653 #. type: tbl table
12654 #: build/C/man7/raw.7:60
12655 #, no-wrap
12656 msgid "Source Address:Filled in when zero.\n"
12657 msgstr ""
12658
12659 #. type: tbl table
12660 #: build/C/man7/raw.7:61
12661 #, no-wrap
12662 msgid "Packet Id:Filled in when zero.\n"
12663 msgstr ""
12664
12665 #. type: tbl table
12666 #: build/C/man7/raw.7:62
12667 #, no-wrap
12668 msgid "Total Length:Always filled in.\n"
12669 msgstr ""
12670
12671 #. type: Plain text
12672 #: build/C/man7/raw.7:76
12673 msgid ""
12674 "If B<IP_HDRINCL> is specified and the IP header has a nonzero destination "
12675 "address then the destination address of the socket is used to route the "
12676 "packet.  When B<MSG_DONTROUTE> is specified, the destination address should "
12677 "refer to a local interface, otherwise a routing table lookup is done anyway "
12678 "but gatewayed routes are ignored."
12679 msgstr ""
12680
12681 #. type: Plain text
12682 #: build/C/man7/raw.7:84
12683 msgid ""
12684 "If B<IP_HDRINCL> isn't set, then IP header options can be set on raw sockets "
12685 "with B<setsockopt>(2); see B<ip>(7)  for more information."
12686 msgstr ""
12687
12688 #. type: Plain text
12689 #: build/C/man7/raw.7:89
12690 msgid ""
12691 "In Linux 2.2, all IP header fields and options can be set using IP socket "
12692 "options.  This means raw sockets are usually needed only for new protocols "
12693 "or protocols with no user interface (like ICMP)."
12694 msgstr ""
12695
12696 #. type: Plain text
12697 #: build/C/man7/raw.7:93
12698 msgid ""
12699 "When a packet is received, it is passed to any raw sockets which have been "
12700 "bound to its protocol before it is passed to other protocol handlers (e.g., "
12701 "kernel protocol modules)."
12702 msgstr ""
12703
12704 #. type: Plain text
12705 #: build/C/man7/raw.7:109
12706 msgid ""
12707 "Raw sockets use the standard I<sockaddr_in> address structure defined in "
12708 "B<ip>(7).  The I<sin_port> field could be used to specify the IP protocol "
12709 "number, but it is ignored for sending in Linux 2.2 and should be always set "
12710 "to 0 (see BUGS).  For incoming packets, I<sin_port> is set to the protocol "
12711 "of the packet.  See the I<E<lt>netinet/in.hE<gt>> include file for valid IP "
12712 "protocols."
12713 msgstr ""
12714
12715 #.  Or SOL_RAW on Linux
12716 #. type: Plain text
12717 #: build/C/man7/raw.7:118
12718 msgid ""
12719 "Raw socket options can be set with B<setsockopt>(2)  and read with "
12720 "B<getsockopt>(2)  by passing the B<IPPROTO_RAW> family flag."
12721 msgstr ""
12722
12723 #. type: TP
12724 #: build/C/man7/raw.7:118
12725 #, no-wrap
12726 msgid "B<ICMP_FILTER>"
12727 msgstr ""
12728
12729 #. type: Plain text
12730 #: build/C/man7/raw.7:126
12731 msgid ""
12732 "Enable a special filter for raw sockets bound to the B<IPPROTO_ICMP> "
12733 "protocol.  The value has a bit set for each ICMP message type which should "
12734 "be filtered out.  The default is to filter no ICMP messages."
12735 msgstr ""
12736
12737 #. type: Plain text
12738 #: build/C/man7/raw.7:131
12739 msgid ""
12740 "In addition, all B<ip>(7)  B<IPPROTO_IP> socket options valid for datagram "
12741 "sockets are supported."
12742 msgstr ""
12743
12744 #. type: Plain text
12745 #: build/C/man7/raw.7:144
12746 msgid ""
12747 "Errors originating from the network are passed to the user only when the "
12748 "socket is connected or the B<IP_RECVERR> flag is enabled.  For connected "
12749 "sockets, only B<EMSGSIZE> and B<EPROTO> are passed for compatibility.  With "
12750 "B<IP_RECVERR>, all network errors are saved in the error queue."
12751 msgstr ""
12752
12753 #. type: Plain text
12754 #: build/C/man7/raw.7:149
12755 msgid ""
12756 "User tried to send to a broadcast address without having the broadcast flag "
12757 "set on the socket."
12758 msgstr ""
12759
12760 #. type: Plain text
12761 #: build/C/man7/raw.7:152
12762 msgid "An invalid memory address was supplied."
12763 msgstr ""
12764
12765 #. type: Plain text
12766 #: build/C/man7/raw.7:162
12767 msgid ""
12768 "Packet too big.  Either Path MTU Discovery is enabled (the "
12769 "B<IP_MTU_DISCOVER> socket flag) or the packet size exceeds the maximum "
12770 "allowed IPv4 packet size of 64KB."
12771 msgstr ""
12772
12773 #. type: TP
12774 #: build/C/man7/raw.7:162 build/C/man7/unix.7:362
12775 #, no-wrap
12776 msgid "B<EOPNOTSUPP>"
12777 msgstr ""
12778
12779 #. type: Plain text
12780 #: build/C/man7/raw.7:166
12781 msgid "Invalid flag has been passed to a socket call (like B<MSG_OOB>)."
12782 msgstr ""
12783
12784 #. type: Plain text
12785 #: build/C/man7/raw.7:172
12786 msgid ""
12787 "The user doesn't have permission to open raw sockets.  Only processes with "
12788 "an effective user ID of 0 or the B<CAP_NET_RAW> attribute may do that."
12789 msgstr ""
12790
12791 #. type: TP
12792 #: build/C/man7/raw.7:172
12793 #, no-wrap
12794 msgid "B<EPROTO>"
12795 msgstr ""
12796
12797 #. type: Plain text
12798 #: build/C/man7/raw.7:175
12799 msgid "An ICMP error has arrived reporting a parameter problem."
12800 msgstr ""
12801
12802 #. type: Plain text
12803 #: build/C/man7/raw.7:181
12804 msgid ""
12805 "B<IP_RECVERR> and B<ICMP_FILTER> are new in Linux 2.2.  They are Linux "
12806 "extensions and should not be used in portable programs."
12807 msgstr ""
12808
12809 #. type: Plain text
12810 #: build/C/man7/raw.7:187
12811 msgid ""
12812 "Linux 2.0 enabled some bug-to-bug compatibility with BSD in the raw socket "
12813 "code when the B<SO_BSDCOMPAT> socket option was set \\(em since Linux 2.2, "
12814 "this option no longer has that effect."
12815 msgstr ""
12816
12817 #. type: Plain text
12818 #: build/C/man7/raw.7:205
12819 msgid ""
12820 "By default, raw sockets do path MTU (Maximum Transmission Unit) discovery.  "
12821 "This means the kernel will keep track of the MTU to a specific target IP "
12822 "address and return B<EMSGSIZE> when a raw packet write exceeds it.  When "
12823 "this happens, the application should decrease the packet size.  Path MTU "
12824 "discovery can be also turned off using the B<IP_MTU_DISCOVER> socket option "
12825 "or the I</proc/sys/net/ipv4/ip_no_pmtu_disc> file, see B<ip>(7)  for "
12826 "details.  When turned off, raw sockets will fragment outgoing packets that "
12827 "exceed the interface MTU.  However, disabling it is not recommended for "
12828 "performance and reliability reasons."
12829 msgstr ""
12830
12831 #. type: Plain text
12832 #: build/C/man7/raw.7:214
12833 msgid ""
12834 "A raw socket can be bound to a specific local address using the B<bind>(2)  "
12835 "call.  If it isn't bound, all packets with the specified IP protocol are "
12836 "received.  In addition, a RAW socket can be bound to a specific network "
12837 "device using B<SO_BINDTODEVICE>; see B<socket>(7)."
12838 msgstr ""
12839
12840 #. type: Plain text
12841 #: build/C/man7/raw.7:225
12842 msgid ""
12843 "An B<IPPROTO_RAW> socket is send only.  If you really want to receive all IP "
12844 "packets, use a B<packet>(7)  socket with the B<ETH_P_IP> protocol.  Note "
12845 "that packet sockets don't reassemble IP fragments, unlike raw sockets."
12846 msgstr ""
12847
12848 #. type: Plain text
12849 #: build/C/man7/raw.7:231
12850 msgid ""
12851 "If you want to receive all ICMP packets for a datagram socket, it is often "
12852 "better to use B<IP_RECVERR> on that particular socket; see B<ip>(7)."
12853 msgstr ""
12854
12855 #. type: Plain text
12856 #: build/C/man7/raw.7:238
12857 msgid ""
12858 "Raw sockets may tap all IP protocols in Linux, even protocols like ICMP or "
12859 "TCP which have a protocol module in the kernel.  In this case, the packets "
12860 "are passed to both the kernel module and the raw socket(s).  This should not "
12861 "be relied upon in portable programs, many other BSD socket implementation "
12862 "have limitations here."
12863 msgstr ""
12864
12865 #. type: Plain text
12866 #: build/C/man7/raw.7:243
12867 msgid ""
12868 "Linux never changes headers passed from the user (except for filling in some "
12869 "zeroed fields as described for B<IP_HDRINCL>).  This differs from many other "
12870 "implementations of raw sockets."
12871 msgstr ""
12872
12873 #. type: Plain text
12874 #: build/C/man7/raw.7:246
12875 msgid ""
12876 "RAW sockets are generally rather unportable and should be avoided in "
12877 "programs intended to be portable."
12878 msgstr ""
12879
12880 #. type: Plain text
12881 #: build/C/man7/raw.7:252
12882 msgid ""
12883 "Sending on raw sockets should take the IP protocol from I<sin_port>; this "
12884 "ability was lost in Linux 2.2.  The workaround is to use B<IP_HDRINCL>."
12885 msgstr ""
12886
12887 #. type: Plain text
12888 #: build/C/man7/raw.7:254
12889 msgid "Transparent proxy extensions are not described."
12890 msgstr ""
12891
12892 #. type: Plain text
12893 #: build/C/man7/raw.7:259
12894 msgid ""
12895 "When the B<IP_HDRINCL> option is set, datagrams will not be fragmented and "
12896 "are limited to the interface MTU."
12897 msgstr ""
12898
12899 #.  .SH AUTHORS
12900 #.  This man page was written by Andi Kleen.
12901 #. type: Plain text
12902 #: build/C/man7/raw.7:269
12903 msgid ""
12904 "Setting the IP protocol for sending in I<sin_port> got lost in Linux 2.2.  "
12905 "The protocol that the socket was bound to or that was specified in the "
12906 "initial B<socket>(2)  call is always used."
12907 msgstr ""
12908
12909 #. type: Plain text
12910 #: build/C/man7/raw.7:275
12911 msgid "B<recvmsg>(2), B<sendmsg>(2), B<capabilities>(7), B<ip>(7), B<socket>(7)"
12912 msgstr ""
12913
12914 #. type: Plain text
12915 #: build/C/man7/raw.7:282
12916 msgid ""
12917 "B<RFC\\ 1191> for path MTU discovery.  B<RFC\\ 791> and the "
12918 "I<E<lt>linux/ip.hE<gt>> header file for the IP protocol."
12919 msgstr ""
12920
12921 #. type: TH
12922 #: build/C/man3/rcmd.3:43
12923 #, no-wrap
12924 msgid "RCMD"
12925 msgstr ""
12926
12927 #. type: TH
12928 #: build/C/man3/rcmd.3:43
12929 #, no-wrap
12930 msgid "2012-04-23"
12931 msgstr ""
12932
12933 #. type: Plain text
12934 #: build/C/man3/rcmd.3:48
12935 msgid ""
12936 "rcmd, rresvport, iruserok, ruserok, rcmd_af, rresvport_af, iruserok_af, "
12937 "ruserok_af - routines for returning a stream to a remote command"
12938 msgstr ""
12939
12940 #. type: Plain text
12941 #: build/C/man3/rcmd.3:51
12942 #, no-wrap
12943 msgid ""
12944 "B<#include E<lt>netdb.hE<gt> \\ \\ >/* Or E<lt>unistd.hE<gt> on some systems "
12945 "*/\n"
12946 msgstr ""
12947
12948 #. type: Plain text
12949 #: build/C/man3/rcmd.3:54
12950 #, no-wrap
12951 msgid ""
12952 "B<int rcmd(char **>I<ahost>B<, int >I<inport>B<, const char *>I<locuser>B<, "
12953 ">\n"
12954 "B<         const char *>I<remuser>B<, const char *>I<cmd>B<, int "
12955 "*>I<fd2p>B<);>\n"
12956 msgstr ""
12957
12958 #. type: Plain text
12959 #: build/C/man3/rcmd.3:56
12960 #, no-wrap
12961 msgid "B<int rresvport(int *>I<port>B<);>\n"
12962 msgstr ""
12963
12964 #. type: Plain text
12965 #: build/C/man3/rcmd.3:59
12966 #, no-wrap
12967 msgid ""
12968 "B<int iruserok(uint32_t >I<raddr>B<, int >I<superuser>B<, >\n"
12969 "B<             const char *>I<ruser>B<, const char *>I<luser>B<);>\n"
12970 msgstr ""
12971
12972 #. type: Plain text
12973 #: build/C/man3/rcmd.3:62
12974 #, no-wrap
12975 msgid ""
12976 "B<int ruserok(const char *>I<rhost>B<, int >I<superuser>B<, >\n"
12977 "B<            const char *>I<ruser>B<, const char *>I<luser>B<);>\n"
12978 msgstr ""
12979
12980 #. type: Plain text
12981 #: build/C/man3/rcmd.3:66
12982 #, no-wrap
12983 msgid ""
12984 "B<int rcmd_af(char **>I<ahost>B<, int >I<inport>B<, const char "
12985 "*>I<locuser>B<, >\n"
12986 "B<            const char *>I<remuser>B<, const char *>I<cmd>B<, int "
12987 "*>I<fd2p>B<,>\n"
12988 "B<            sa_family_t >I<af>B<);>\n"
12989 msgstr ""
12990
12991 #. type: Plain text
12992 #: build/C/man3/rcmd.3:68
12993 #, no-wrap
12994 msgid "B<int rresvport_af(int *>I<port>B<, sa_family_t >I<af>B<);>\n"
12995 msgstr ""
12996
12997 #. type: Plain text
12998 #: build/C/man3/rcmd.3:72
12999 #, no-wrap
13000 msgid ""
13001 "B<int iruserok_af(uint32_t >I<raddr>B<, int >I<superuser>B<, >\n"
13002 "B<                const char *>I<ruser>B<, const char *>I<luser>B<, "
13003 "sa_family_t >I<af>B<);>\n"
13004 msgstr ""
13005
13006 #. type: Plain text
13007 #: build/C/man3/rcmd.3:76
13008 #, no-wrap
13009 msgid ""
13010 "B<int ruserok_af(const char *>I<rhost>B<, int >I<superuser>B<, >\n"
13011 "B<               const char *>I<ruser>B<, const char *>I<luser>B<, "
13012 "sa_family_t >I<af>B<);>\n"
13013 msgstr ""
13014
13015 #. type: Plain text
13016 #: build/C/man3/rcmd.3:92
13017 msgid ""
13018 "B<rcmd>(), B<rcmd_af>(), B<rresvport>(), B<rresvport_af>(), B<iruserok>(), "
13019 "B<iruserok_af>(), B<ruserok>(), B<ruserok_af>(): _BSD_SOURCE"
13020 msgstr ""
13021
13022 #. type: Plain text
13023 #: build/C/man3/rcmd.3:113
13024 msgid ""
13025 "The B<rcmd>()  function is used by the superuser to execute a command on a "
13026 "remote machine using an authentication scheme based on privileged port "
13027 "numbers.  The B<rresvport>()  function returns a descriptor to a socket with "
13028 "an address in the privileged port space.  The B<iruserok>()  and "
13029 "B<ruserok>()  functions are used by servers to authenticate clients "
13030 "requesting service with B<rcmd>().  All four functions are used by the "
13031 "B<rshd>(8)  server (among others)."
13032 msgstr ""
13033
13034 #. type: SS
13035 #: build/C/man3/rcmd.3:113
13036 #, no-wrap
13037 msgid "rcmd()"
13038 msgstr ""
13039
13040 #. type: Plain text
13041 #: build/C/man3/rcmd.3:129
13042 msgid ""
13043 "The B<rcmd>()  function looks up the host I<*ahost> using "
13044 "B<gethostbyname>(3), returning -1 if the host does not exist.  Otherwise "
13045 "I<*ahost> is set to the standard name of the host and a connection is "
13046 "established to a server residing at the well-known Internet port I<inport>."
13047 msgstr ""
13048
13049 #. type: Plain text
13050 #: build/C/man3/rcmd.3:158
13051 msgid ""
13052 "If the connection succeeds, a socket in the Internet domain of type "
13053 "B<SOCK_STREAM> is returned to the caller, and given to the remote command as "
13054 "I<stdin> and I<stdout>.  If I<fd2p> is nonzero, then an auxiliary channel to "
13055 "a control process will be set up, and a descriptor for it will be placed in "
13056 "I<*fd2p>.  The control process will return diagnostic output from the "
13057 "command (unit 2) on this channel, and will also accept bytes on this channel "
13058 "as being UNIX signal numbers, to be forwarded to the process group of the "
13059 "command.  If I<fd2p> is 0, then the I<stderr> (unit 2 of the remote command) "
13060 "will be made the same as the I<stdout> and no provision is made for sending "
13061 "arbitrary signals to the remote process, although you may be able to get its "
13062 "attention by using out-of-band data."
13063 msgstr ""
13064
13065 #. type: Plain text
13066 #: build/C/man3/rcmd.3:161
13067 msgid "The protocol is described in detail in B<rshd>(8)."
13068 msgstr ""
13069
13070 #. type: SS
13071 #: build/C/man3/rcmd.3:161
13072 #, no-wrap
13073 msgid "rresvport()"
13074 msgstr ""
13075
13076 #. type: Plain text
13077 #: build/C/man3/rcmd.3:183
13078 msgid ""
13079 "The B<rresvport>()  function is used to obtain a socket with a privileged "
13080 "port bound to it.  This socket is suitable for use by B<rcmd>()  and several "
13081 "other functions.  Privileged ports are those in the range 0 to 1023.  Only a "
13082 "privileged process (B<CAP_NET_BIND_SERVICE>)  is allowed to bind to a "
13083 "privileged port.  In the glibc implementation, this function restricts its "
13084 "search to the ports from 512 to 1023.  The I<port> argument is value-result: "
13085 "the value it supplies to the call is used as the starting point for a "
13086 "circular search of the port range; on (successful) return, it contains the "
13087 "port number that was bound to."
13088 msgstr ""
13089
13090 #. type: SS
13091 #: build/C/man3/rcmd.3:183
13092 #, no-wrap
13093 msgid "iruserok() and ruserok()"
13094 msgstr ""
13095
13096 #. type: Plain text
13097 #: build/C/man3/rcmd.3:201
13098 msgid ""
13099 "The B<iruserok>()  and B<ruserok>()  functions take a remote host's IP "
13100 "address or name, respectively, two usernames and a flag indicating whether "
13101 "the local user's name is that of the superuser.  Then, if the user is I<not> "
13102 "the superuser, it checks the I</etc/hosts.equiv> file.  If that lookup is "
13103 "not done, or is unsuccessful, the I<.rhosts> in the local user's home "
13104 "directory is checked to see if the request for service is allowed."
13105 msgstr ""
13106
13107 #. type: Plain text
13108 #: build/C/man3/rcmd.3:217
13109 msgid ""
13110 "If this file does not exist, is not a regular file, is owned by anyone other "
13111 "than the user or the superuser, or is writable by anyone other than the "
13112 "owner, the check automatically fails.  Zero is returned if the machine name "
13113 "is listed in the I<hosts.equiv> file, or the host and remote username are "
13114 "found in the I<.rhosts> file; otherwise B<iruserok>()  and B<ruserok>()  "
13115 "return -1.  If the local domain (as obtained from B<gethostname>(2))  is the "
13116 "same as the remote domain, only the machine name need be specified."
13117 msgstr ""
13118
13119 #. type: Plain text
13120 #: build/C/man3/rcmd.3:223
13121 msgid ""
13122 "If the IP address of the remote host is known, B<iruserok>()  should be used "
13123 "in preference to B<ruserok>(), as it does not require trusting the DNS "
13124 "server for the remote host's domain."
13125 msgstr ""
13126
13127 #. type: SS
13128 #: build/C/man3/rcmd.3:223
13129 #, no-wrap
13130 msgid "*_af() variants"
13131 msgstr ""
13132
13133 #. type: Plain text
13134 #: build/C/man3/rcmd.3:239
13135 msgid ""
13136 "All of the functions described above work with IPv4 (B<AF_INET>)  sockets.  "
13137 "The \"_af\" variants take an extra argument that allows the socket address "
13138 "family to be specified.  For these functions, the I<af> argument can be "
13139 "specified as B<AF_INET> or B<AF_INET6>.  In addition, B<rcmd_af>()  supports "
13140 "the use of B<AF_UNSPEC>."
13141 msgstr ""
13142
13143 #. type: Plain text
13144 #: build/C/man3/rcmd.3:245
13145 msgid ""
13146 "The B<rcmd>()  function returns a valid socket descriptor on success.  It "
13147 "returns -1 on error and prints a diagnostic message on the standard error."
13148 msgstr ""
13149
13150 #. type: Plain text
13151 #: build/C/man3/rcmd.3:256
13152 msgid ""
13153 "The B<rresvport>()  function returns a valid, bound socket descriptor on "
13154 "success.  It returns -1 on error with the global value I<errno> set "
13155 "according to the reason for failure.  The error code B<EAGAIN> is overloaded "
13156 "to mean \"All network ports in use.\""
13157 msgstr ""
13158
13159 #. type: Plain text
13160 #: build/C/man3/rcmd.3:262
13161 msgid ""
13162 "For information on the return from B<ruserok>()  and B<iruserok>(), see "
13163 "above."
13164 msgstr ""
13165
13166 #. type: Plain text
13167 #: build/C/man3/rcmd.3:270
13168 msgid ""
13169 "The functions B<iruserok_af>(), B<rcmd_af>(), B<rresvport_af>(), and "
13170 "B<ruserok_af>()  functions are provide in glibc since version 2.2."
13171 msgstr ""
13172
13173 #. type: Plain text
13174 #: build/C/man3/rcmd.3:278
13175 msgid ""
13176 "Not in POSIX.1-2001.  Present on the BSDs, Solaris, and many other systems.  "
13177 "These functions appeared in 4.2BSD.  The \"_af\" variants are more recent "
13178 "additions, and are not present on as wide a range of systems."
13179 msgstr ""
13180
13181 #.  Bug filed 25 Nov 2007:
13182 #.  http://sources.redhat.com/bugzilla/show_bug.cgi?id=5399
13183 #. type: Plain text
13184 #: build/C/man3/rcmd.3:285
13185 msgid ""
13186 "B<iruserok>()  and B<iruserok_af>()  are declared in glibc headers only "
13187 "since version 2.12."
13188 msgstr ""
13189
13190 #. type: Plain text
13191 #: build/C/man3/rcmd.3:293
13192 msgid ""
13193 "B<rlogin>(1), B<rsh>(1), B<intro>(2), B<rexec>(3), B<rexecd>(8), "
13194 "B<rlogind>(8), B<rshd>(8)"
13195 msgstr ""
13196
13197 #. type: TH
13198 #: build/C/man5/resolv.conf.5:23
13199 #, no-wrap
13200 msgid "RESOLV.CONF"
13201 msgstr ""
13202
13203 #. type: TH
13204 #: build/C/man5/resolv.conf.5:23 build/C/man7/udp.7:12
13205 #, no-wrap
13206 msgid "2013-07-31"
13207 msgstr ""
13208
13209 #. type: Plain text
13210 #: build/C/man5/resolv.conf.5:27
13211 msgid "resolv.conf - resolver configuration file"
13212 msgstr ""
13213
13214 #. type: Plain text
13215 #: build/C/man5/resolv.conf.5:29
13216 msgid "B</etc/resolv.conf>"
13217 msgstr ""
13218
13219 #. type: Plain text
13220 #: build/C/man5/resolv.conf.5:38
13221 msgid ""
13222 "The I<resolver> is a set of routines in the C library that provide access to "
13223 "the Internet Domain Name System (DNS).  The resolver configuration file "
13224 "contains information that is read by the resolver routines the first time "
13225 "they are invoked by a process.  The file is designed to be human readable "
13226 "and contains a list of keywords with values that provide various types of "
13227 "resolver information."
13228 msgstr ""
13229
13230 #. type: Plain text
13231 #: build/C/man5/resolv.conf.5:43
13232 msgid ""
13233 "If this file does not exist, only the name server on the local machine will "
13234 "be queried; the domain name is determined from the hostname and the domain "
13235 "search path is constructed from the domain name."
13236 msgstr ""
13237
13238 #. type: Plain text
13239 #: build/C/man5/resolv.conf.5:45
13240 msgid "The different configuration options are:"
13241 msgstr ""
13242
13243 #. type: TP
13244 #: build/C/man5/resolv.conf.5:45
13245 #, no-wrap
13246 msgid "B<nameserver> Name server IP address"
13247 msgstr ""
13248
13249 #. type: Plain text
13250 #: build/C/man5/resolv.conf.5:62
13251 msgid ""
13252 "Internet address of a name server that the resolver should query, either an "
13253 "IPv4 address (in dot notation), or an IPv6 address in colon (and possibly "
13254 "dot) notation as per RFC 2373.  Up to B<MAXNS> (currently 3, see "
13255 "I<E<lt>resolv.hE<gt>>) name servers may be listed, one per keyword.  If "
13256 "there are multiple servers, the resolver library queries them in the order "
13257 "listed.  If no B<nameserver> entries are present, the default is to use the "
13258 "name server on the local machine.  (The algorithm used is to try a name "
13259 "server, and if the query times out, try the next, until out of name servers, "
13260 "then repeat trying all the name servers until a maximum number of retries "
13261 "are made.)"
13262 msgstr ""
13263
13264 #. type: TP
13265 #: build/C/man5/resolv.conf.5:62
13266 #, no-wrap
13267 msgid "B<domain> Local domain name."
13268 msgstr ""
13269
13270 #. type: Plain text
13271 #: build/C/man5/resolv.conf.5:73
13272 msgid ""
13273 "Most queries for names within this domain can use short names relative to "
13274 "the local domain.  If set to \\(aq.\\(aq, the root domain is considered.  If "
13275 "no B<domain> entry is present, the domain is determined from the local "
13276 "hostname returned by B<gethostname>(2); the domain part is taken to be "
13277 "everything after the first \\(aq.\\(aq.  Finally, if the hostname does not "
13278 "contain a domain part, the root domain is assumed."
13279 msgstr ""
13280
13281 #. type: TP
13282 #: build/C/man5/resolv.conf.5:73
13283 #, no-wrap
13284 msgid "B<search> Search list for host-name lookup."
13285 msgstr ""
13286
13287 #.  When having a resolv.conv with a line
13288 #.   search subdomain.domain.tld domain.tld
13289 #.  and doing a hostlookup, for example by
13290 #.   ping host.anothersubdomain
13291 #.  it sends dns-requests for
13292 #.   host.anothersubdomain.
13293 #.   host.anothersubdomain.subdomain.domain.tld.
13294 #.   host.anothersubdomain.domain.tld.
13295 #.  thus not only causing unnecessary traffic for the root-dns-servers
13296 #.  but broadcasting information to the outside and making man-in-the-middle
13297 #.  attacks possible.
13298 #. type: Plain text
13299 #: build/C/man5/resolv.conf.5:103
13300 msgid ""
13301 "The search list is normally determined from the local domain name; by "
13302 "default, it contains only the local domain name.  This may be changed by "
13303 "listing the desired domain search path following the I<search> keyword with "
13304 "spaces or tabs separating the names.  Resolver queries having fewer than "
13305 "I<ndots> dots (default is 1) in them will be attempted using each component "
13306 "of the search path in turn until a match is found.  For environments with "
13307 "multiple subdomains please read B<options ndots:>I<n> below to avoid "
13308 "man-in-the-middle attacks and unnecessary traffic for the root-dns-servers.  "
13309 "Note that this process may be slow and will generate a lot of network "
13310 "traffic if the servers for the listed domains are not local, and that "
13311 "queries will time out if no server is available for one of the domains."
13312 msgstr ""
13313
13314 #. type: Plain text
13315 #: build/C/man5/resolv.conf.5:106
13316 msgid ""
13317 "The search list is currently limited to six domains with a total of 256 "
13318 "characters."
13319 msgstr ""
13320
13321 #. type: TP
13322 #: build/C/man5/resolv.conf.5:106
13323 #, no-wrap
13324 msgid "B<sortlist>"
13325 msgstr ""
13326
13327 #. type: Plain text
13328 #: build/C/man5/resolv.conf.5:119
13329 msgid ""
13330 "This option allows addresses returned by B<gethostbyname>(3)  to be sorted.  "
13331 "A sortlist is specified by IP-address-netmask pairs.  The netmask is "
13332 "optional and defaults to the natural netmask of the net.  The IP address and "
13333 "optional network pairs are separated by slashes.  Up to 10 pairs may be "
13334 "specified.  Here is an example:"
13335 msgstr ""
13336
13337 #. type: Plain text
13338 #: build/C/man5/resolv.conf.5:122
13339 msgid "sortlist 130.155.160.0/255.255.240.0 130.155.0.0"
13340 msgstr ""
13341
13342 #. type: TP
13343 #: build/C/man5/resolv.conf.5:124
13344 #, no-wrap
13345 msgid "B<options>"
13346 msgstr ""
13347
13348 #. type: Plain text
13349 #: build/C/man5/resolv.conf.5:128
13350 msgid ""
13351 "Options allows certain internal resolver variables to be modified.  The "
13352 "syntax is"
13353 msgstr ""
13354
13355 #. type: Plain text
13356 #: build/C/man5/resolv.conf.5:131
13357 msgid "B<options> I<option> I<...>"
13358 msgstr ""
13359
13360 #. type: Plain text
13361 #: build/C/man5/resolv.conf.5:133
13362 msgid "where I<option> is one of the following:"
13363 msgstr ""
13364
13365 #. type: TP
13366 #: build/C/man5/resolv.conf.5:133
13367 #, no-wrap
13368 msgid "B<debug>"
13369 msgstr ""
13370
13371 #.  Since glibc 2.2?
13372 #. type: Plain text
13373 #: build/C/man5/resolv.conf.5:142
13374 msgid ""
13375 "sets B<RES_DEBUG> in I<_res.options> (effective only if glibc was built with "
13376 "debug support; see B<resolver>(3))."
13377 msgstr ""
13378
13379 #. type: TP
13380 #: build/C/man5/resolv.conf.5:142
13381 #, no-wrap
13382 msgid "B<ndots:>I<n>"
13383 msgstr ""
13384
13385 #.  Since glibc 2.2
13386 #. type: Plain text
13387 #: build/C/man5/resolv.conf.5:156
13388 msgid ""
13389 "sets a threshold for the number of dots which must appear in a name given to "
13390 "B<res_query>(3)  (see B<resolver>(3))  before an I<initial absolute query> "
13391 "will be made.  The default for I<n> is 1, meaning that if there are any dots "
13392 "in a name, the name will be tried first as an absolute name before any "
13393 "I<search list> elements are appended to it.  The value for this option is "
13394 "silently capped to 15."
13395 msgstr ""
13396
13397 #. type: TP
13398 #: build/C/man5/resolv.conf.5:156
13399 #, no-wrap
13400 msgid "B<timeout:>I<n>"
13401 msgstr ""
13402
13403 #.  Since glibc 2.2
13404 #. type: Plain text
13405 #: build/C/man5/resolv.conf.5:167
13406 msgid ""
13407 "sets the amount of time the resolver will wait for a response from a remote "
13408 "name server before retrying the query via a different name server.  Measured "
13409 "in seconds, the default is B<RES_TIMEOUT> (currently 5, see "
13410 "I<E<lt>resolv.hE<gt>>).  The value for this option is silently capped to 30."
13411 msgstr ""
13412
13413 #. type: TP
13414 #: build/C/man5/resolv.conf.5:167
13415 #, no-wrap
13416 msgid "B<attempts:>I<n>"
13417 msgstr ""
13418
13419 #. type: Plain text
13420 #: build/C/man5/resolv.conf.5:176
13421 msgid ""
13422 "sets the number of times the resolver will send a query to its name servers "
13423 "before giving up and returning an error to the calling application.  The "
13424 "default is B<RES_DFLRETRY> (currently 2, see I<E<lt>resolv.hE<gt>>).  The "
13425 "value for this option is silently capped to 5."
13426 msgstr ""
13427
13428 #. type: TP
13429 #: build/C/man5/resolv.conf.5:176
13430 #, no-wrap
13431 msgid "B<rotate>"
13432 msgstr ""
13433
13434 #.  Since glibc 2.2
13435 #. type: Plain text
13436 #: build/C/man5/resolv.conf.5:186
13437 msgid ""
13438 "sets B<RES_ROTATE> in I<_res.options>, which causes round-robin selection of "
13439 "nameservers from among those listed.  This has the effect of spreading the "
13440 "query load among all listed servers, rather than having all clients try the "
13441 "first listed server first every time."
13442 msgstr ""
13443
13444 #. type: TP
13445 #: build/C/man5/resolv.conf.5:186
13446 #, no-wrap
13447 msgid "B<no-check-names>"
13448 msgstr ""
13449
13450 #.  since glibc 2.2
13451 #. type: Plain text
13452 #: build/C/man5/resolv.conf.5:196
13453 msgid ""
13454 "sets B<RES_NOCHECKNAME> in I<_res.options>, which disables the modern BIND "
13455 "checking of incoming hostnames and mail names for invalid characters such as "
13456 "underscore (_), non-ASCII, or control characters."
13457 msgstr ""
13458
13459 #. type: TP
13460 #: build/C/man5/resolv.conf.5:196
13461 #, no-wrap
13462 msgid "B<inet6>"
13463 msgstr ""
13464
13465 #.  Since glibc 2.2
13466 #. type: Plain text
13467 #: build/C/man5/resolv.conf.5:207
13468 msgid ""
13469 "sets B<RES_USE_INET6> in I<_res.options>.  This has the effect of trying a "
13470 "AAAA query before an A query inside the B<gethostbyname>(3)  function, and "
13471 "of mapping IPv4 responses in IPv6 \"tunneled form\" if no AAAA records are "
13472 "found but an A record set exists."
13473 msgstr ""
13474
13475 #. type: TP
13476 #: build/C/man5/resolv.conf.5:207
13477 #, no-wrap
13478 msgid "B<ip6-bytestring> (since glibc 2.3.4)"
13479 msgstr ""
13480
13481 #. type: Plain text
13482 #: build/C/man5/resolv.conf.5:216
13483 msgid ""
13484 "sets B<RES_USE_BSTRING> in I<_res.options>.  This causes reverse IPv6 "
13485 "lookups to be made using the bit-label format described in RFC\\ 2673; if "
13486 "this option is not set, then nibble format is used."
13487 msgstr ""
13488
13489 #. type: TP
13490 #: build/C/man5/resolv.conf.5:216
13491 #, no-wrap
13492 msgid "B<ip6-dotint>/B<no-ip6-dotint> (since glibc 2.3.4)"
13493 msgstr ""
13494
13495 #. type: Plain text
13496 #: build/C/man5/resolv.conf.5:233
13497 msgid ""
13498 "Clear/set B<RES_NOIP6DOTINT> in I<_res.options>.  When this option is clear "
13499 "(B<ip6-dotint>), reverse IPv6 lookups are made in the (deprecated)  "
13500 "I<ip6.int> zone; when this option is set (B<no-ip6-dotint>), reverse IPv6 "
13501 "lookups are made in the I<ip6.arpa> zone by default.  This option is set by "
13502 "default."
13503 msgstr ""
13504
13505 #. type: TP
13506 #: build/C/man5/resolv.conf.5:233
13507 #, no-wrap
13508 msgid "B<edns0> (since glibc 2.6)"
13509 msgstr ""
13510
13511 #. type: Plain text
13512 #: build/C/man5/resolv.conf.5:240
13513 msgid ""
13514 "sets B<RES_USE_EDNSO> in I<_res.options>.  This enables support for the DNS "
13515 "extensions described in RFC\\ 2671."
13516 msgstr ""
13517
13518 #. type: TP
13519 #: build/C/man5/resolv.conf.5:240
13520 #, no-wrap
13521 msgid "B<single-request> (since glibc 2.10)"
13522 msgstr ""
13523
13524 #. type: Plain text
13525 #: build/C/man5/resolv.conf.5:253
13526 msgid ""
13527 "sets B<RES_SNGLKUP> in I<_res.options>.  By default, glibc performs IPv4 and "
13528 "IPv6 lookups in parallel since version 2.9.  Some appliance DNS servers "
13529 "cannot handle these queries properly and make the requests time out.  This "
13530 "option disables the behavior and makes glibc perform the IPv6 and IPv4 "
13531 "requests sequentially (at the cost of some slowdown of the resolving "
13532 "process)."
13533 msgstr ""
13534
13535 #. type: TP
13536 #: build/C/man5/resolv.conf.5:253
13537 #, no-wrap
13538 msgid "B<single-request-reopen> (since glibc 2.9)"
13539 msgstr ""
13540
13541 #. type: Plain text
13542 #: build/C/man5/resolv.conf.5:261
13543 msgid ""
13544 "The resolver uses the same socket for the A and AAAA requests.  Some "
13545 "hardware mistakenly sends back only one reply.  When that happens the client "
13546 "system will sit and wait for the second reply.  Turning this option on "
13547 "changes this behavior so that if two requests from the same port are not "
13548 "handled correctly it will close the socket and open a new one before sending "
13549 "the second request."
13550 msgstr ""
13551
13552 #. type: Plain text
13553 #: build/C/man5/resolv.conf.5:266
13554 msgid ""
13555 "The I<domain> and I<search> keywords are mutually exclusive.  If more than "
13556 "one instance of these keywords is present, the last instance wins."
13557 msgstr ""
13558
13559 #. type: Plain text
13560 #: build/C/man5/resolv.conf.5:271
13561 msgid ""
13562 "The I<search> keyword of a system's I<resolv.conf> file can be overridden on "
13563 "a per-process basis by setting the environment variable B<LOCALDOMAIN> to a "
13564 "space-separated list of search domains."
13565 msgstr ""
13566
13567 #. type: Plain text
13568 #: build/C/man5/resolv.conf.5:277
13569 msgid ""
13570 "The I<options> keyword of a system's I<resolv.conf> file can be amended on a "
13571 "per-process basis by setting the environment variable B<RES_OPTIONS> to a "
13572 "space-separated list of resolver options as explained above under "
13573 "B<options>."
13574 msgstr ""
13575
13576 #. type: Plain text
13577 #: build/C/man5/resolv.conf.5:281
13578 msgid ""
13579 "The keyword and value must appear on a single line, and the keyword (e.g., "
13580 "B<nameserver>) must start the line.  The value follows the keyword, "
13581 "separated by white space."
13582 msgstr ""
13583
13584 #. type: Plain text
13585 #: build/C/man5/resolv.conf.5:284
13586 msgid ""
13587 "Lines that contain a semicolon (;) or hash character (#)  in the first "
13588 "column are treated as comments."
13589 msgstr ""
13590
13591 #. type: Plain text
13592 #: build/C/man5/resolv.conf.5:287
13593 msgid "I</etc/resolv.conf>, I<E<lt>resolv.hE<gt>>"
13594 msgstr ""
13595
13596 #. type: Plain text
13597 #: build/C/man5/resolv.conf.5:292
13598 msgid "B<gethostbyname>(3), B<resolver>(3), B<hostname>(7), B<named>(8)"
13599 msgstr ""
13600
13601 #. type: Plain text
13602 #: build/C/man5/resolv.conf.5:294
13603 msgid "Name Server Operations Guide for BIND"
13604 msgstr ""
13605
13606 #. type: TH
13607 #: build/C/man3/resolver.3:32
13608 #, no-wrap
13609 msgid "RESOLVER"
13610 msgstr ""
13611
13612 #. type: TH
13613 #: build/C/man3/resolver.3:32
13614 #, no-wrap
13615 msgid "2013-03-05"
13616 msgstr ""
13617
13618 #. type: Plain text
13619 #: build/C/man3/resolver.3:36
13620 msgid ""
13621 "res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, "
13622 "dn_comp, dn_expand - resolver routines"
13623 msgstr ""
13624
13625 #. type: Plain text
13626 #: build/C/man3/resolver.3:42
13627 #, no-wrap
13628 msgid ""
13629 "B<#include E<lt>netinet/in.hE<gt>>\n"
13630 "B<#include E<lt>arpa/nameser.hE<gt>>\n"
13631 "B<#include E<lt>resolv.hE<gt>>\n"
13632 "B<extern struct state _res;>\n"
13633 msgstr ""
13634
13635 #. type: Plain text
13636 #: build/C/man3/resolver.3:44
13637 #, no-wrap
13638 msgid "B<int res_init(void);>\n"
13639 msgstr ""
13640
13641 #. type: Plain text
13642 #: build/C/man3/resolver.3:46
13643 #, no-wrap
13644 msgid "B<int res_query(const char *>I<dname>B<, int >I<class>B<, int >I<type>B<,>\n"
13645 msgstr ""
13646
13647 #. type: Plain text
13648 #: build/C/man3/resolver.3:48 build/C/man3/resolver.3:53
13649 #, no-wrap
13650 msgid "B<unsigned char *>I<answer>B<, int >I<anslen>B<);>\n"
13651 msgstr ""
13652
13653 #. type: Plain text
13654 #: build/C/man3/resolver.3:51
13655 #, no-wrap
13656 msgid ""
13657 "B<int res_search(const char *>I<dname>B<, int >I<class>B<, int "
13658 ">I<type>B<,>\n"
13659 msgstr ""
13660
13661 #. type: Plain text
13662 #: build/C/man3/resolver.3:56
13663 #, no-wrap
13664 msgid "B<int res_querydomain(const char *>I<name>B<, const char *>I<domain>B<,>\n"
13665 msgstr ""
13666
13667 #. type: Plain text
13668 #: build/C/man3/resolver.3:59
13669 #, no-wrap
13670 msgid ""
13671 "B<int >I<class>B<, int >I<type>B<, unsigned char *>I<answer>B<,>\n"
13672 "B<int >I<anslen>B<);>\n"
13673 msgstr ""
13674
13675 #. type: Plain text
13676 #: build/C/man3/resolver.3:62
13677 #, no-wrap
13678 msgid "B<int res_mkquery(int >I<op>B<, const char *>I<dname>B<, int >I<class>B<,>\n"
13679 msgstr ""
13680
13681 #. type: Plain text
13682 #: build/C/man3/resolver.3:65
13683 #, no-wrap
13684 msgid ""
13685 "B<int >I<type>B<, char *>I<data>B<, int >I<datalen>B<, struct rrec "
13686 "*>I<newrr>B<,>\n"
13687 "B<char *>I<buf>B<, int >I<buflen>B<);>\n"
13688 msgstr ""
13689
13690 #. type: Plain text
13691 #: build/C/man3/resolver.3:68
13692 #, no-wrap
13693 msgid ""
13694 "B<int res_send(const char *>I<msg>B<, int >I<msglen>B<, char "
13695 "*>I<answer>B<,>\n"
13696 msgstr ""
13697
13698 #. type: Plain text
13699 #: build/C/man3/resolver.3:70
13700 #, no-wrap
13701 msgid "B<int >I<anslen>B<);>\n"
13702 msgstr ""
13703
13704 #. type: Plain text
13705 #: build/C/man3/resolver.3:73
13706 #, no-wrap
13707 msgid "B<int dn_comp(unsigned char *>I<exp_dn>B<, unsigned char *>I<comp_dn>B<,>\n"
13708 msgstr ""
13709
13710 #. type: Plain text
13711 #: build/C/man3/resolver.3:75
13712 #, no-wrap
13713 msgid ""
13714 "B<int >I<length>B<, unsigned char **>I<dnptrs>B<, unsigned char "
13715 "**>I<lastdnptr>B<);>\n"
13716 msgstr ""
13717
13718 #. type: Plain text
13719 #: build/C/man3/resolver.3:78
13720 #, no-wrap
13721 msgid "B<int dn_expand(unsigned char *>I<msg>B<, unsigned char *>I<eomorig>B<,>\n"
13722 msgstr ""
13723
13724 #. type: Plain text
13725 #: build/C/man3/resolver.3:81
13726 #, no-wrap
13727 msgid ""
13728 "B<unsigned char *>I<comp_dn>B<, char *>I<exp_dn>B<,>\n"
13729 "B<int >I<length>B<);>\n"
13730 msgstr ""
13731
13732 #. type: Plain text
13733 #: build/C/man3/resolver.3:85
13734 msgid "Link with I<-lresolv>."
13735 msgstr ""
13736
13737 #. type: Plain text
13738 #: build/C/man3/resolver.3:88
13739 msgid ""
13740 "These functions make queries to and interpret the responses from Internet "
13741 "domain name servers."
13742 msgstr ""
13743
13744 #. type: Plain text
13745 #: build/C/man3/resolver.3:102
13746 msgid ""
13747 "The B<res_init>()  function reads the configuration files (see "
13748 "B<resolv.conf>(5))  to get the default domain name, search order and name "
13749 "server address(es).  If no server is given, the local host is tried.  If no "
13750 "domain is given, that associated with the local host is used.  It can be "
13751 "overridden with the environment variable B<LOCALDOMAIN>.  B<res_init>()  is "
13752 "normally executed by the first call to one of the other functions."
13753 msgstr ""
13754
13755 #. type: Plain text
13756 #: build/C/man3/resolver.3:110
13757 msgid ""
13758 "The B<res_query>()  function queries the name server for the fully qualified "
13759 "domain name I<name> of specified I<type> and I<class>.  The reply is left in "
13760 "the buffer I<answer> of length I<anslen> supplied by the caller."
13761 msgstr ""
13762
13763 #. type: Plain text
13764 #: build/C/man3/resolver.3:123
13765 msgid ""
13766 "The B<res_search>()  function makes a query and waits for the response like "
13767 "B<res_query>(), but in addition implements the default and search rules "
13768 "controlled by B<RES_DEFNAMES> and B<RES_DNSRCH> (see description of I<_res> "
13769 "options below)."
13770 msgstr ""
13771
13772 #. type: Plain text
13773 #: build/C/man3/resolver.3:129
13774 msgid ""
13775 "The B<res_querydomain>()  function makes a query using B<res_query>()  on "
13776 "the concatenation of I<name> and I<domain>."
13777 msgstr ""
13778
13779 #. type: Plain text
13780 #: build/C/man3/resolver.3:132
13781 msgid "The following functions are lower-level routines used by B<res_query>()."
13782 msgstr ""
13783
13784 #. type: Plain text
13785 #: build/C/man3/resolver.3:143
13786 msgid ""
13787 "The B<res_mkquery>()  function constructs a query message in I<buf> of "
13788 "length I<buflen> for the domain name I<dname>.  The query type I<op> is "
13789 "usually B<QUERY>, but can be any of the types defined in "
13790 "I<E<lt>arpa/nameser.hE<gt>>.  I<newrr> is currently unused."
13791 msgstr ""
13792
13793 #. type: Plain text
13794 #: build/C/man3/resolver.3:153
13795 msgid ""
13796 "The B<res_send>()  function sends a preformatted query given in I<msg> of "
13797 "length I<msglen> and returns the answer in I<answer> which is of length "
13798 "I<anslen>.  It will call B<res_init>(), if it has not already been called."
13799 msgstr ""
13800
13801 #. type: Plain text
13802 #: build/C/man3/resolver.3:166
13803 msgid ""
13804 "The B<dn_comp>()  function compresses the domain name I<exp_dn> and stores "
13805 "it in the buffer I<comp_dn> of length I<length>.  The compression uses an "
13806 "array of pointers I<dnptrs> to previously compressed names in the current "
13807 "message.  The first pointer points to the beginning of the message and the "
13808 "list ends with NULL.  The limit of the array is specified by I<lastdnptr>.  "
13809 "If I<dnptr> is NULL, domain names are not compressed.  If I<lastdnptr> is "
13810 "NULL, the list of labels is not updated."
13811 msgstr ""
13812
13813 #. type: Plain text
13814 #: build/C/man3/resolver.3:175
13815 msgid ""
13816 "The B<dn_expand>()  function expands the compressed domain name I<comp_dn> "
13817 "to a full domain name, which is placed in the buffer I<exp_dn> of size "
13818 "I<length>.  The compressed name is contained in a query or reply message, "
13819 "and I<msg> points to the beginning of the message."
13820 msgstr ""
13821
13822 #. type: Plain text
13823 #: build/C/man3/resolver.3:183
13824 msgid ""
13825 "The resolver routines use global configuration and state information "
13826 "contained in the structure I<_res>, which is defined in "
13827 "I<E<lt>resolv.hE<gt>>.  The only field that is normally manipulated by the "
13828 "user is I<_res.options>.  This field can contain the bitwise \"OR\" of the "
13829 "following options:"
13830 msgstr ""
13831
13832 #. type: TP
13833 #: build/C/man3/resolver.3:183
13834 #, no-wrap
13835 msgid "B<RES_INIT>"
13836 msgstr ""
13837
13838 #. type: Plain text
13839 #: build/C/man3/resolver.3:188
13840 msgid "True if B<res_init>()  has been called."
13841 msgstr ""
13842
13843 #. type: TP
13844 #: build/C/man3/resolver.3:188
13845 #, no-wrap
13846 msgid "B<RES_DEBUG>"
13847 msgstr ""
13848
13849 #.  See resolv/README.
13850 #.  Support for RES_DEBUG was made conditional in glibc 2.2.
13851 #. type: Plain text
13852 #: build/C/man3/resolver.3:195
13853 msgid ""
13854 "Print debugging messages.  This option is available only if glibc was built "
13855 "with debugging enabled, which is not the default."
13856 msgstr ""
13857
13858 #. type: TP
13859 #: build/C/man3/resolver.3:195
13860 #, no-wrap
13861 msgid "B<RES_AAONLY>"
13862 msgstr ""
13863
13864 #. type: Plain text
13865 #: build/C/man3/resolver.3:202
13866 msgid ""
13867 "Accept authoritative answers only.  B<res_send>()  continues until it finds "
13868 "an authoritative answer or returns an error.  [Not currently implemented]."
13869 msgstr ""
13870
13871 #. type: TP
13872 #: build/C/man3/resolver.3:202
13873 #, no-wrap
13874 msgid "B<RES_USEVC>"
13875 msgstr ""
13876
13877 #. type: Plain text
13878 #: build/C/man3/resolver.3:205
13879 msgid "Use TCP connections for queries rather than UDP datagrams."
13880 msgstr ""
13881
13882 #. type: TP
13883 #: build/C/man3/resolver.3:205
13884 #, no-wrap
13885 msgid "B<RES_PRIMARY>"
13886 msgstr ""
13887
13888 #. type: Plain text
13889 #: build/C/man3/resolver.3:208
13890 msgid "Query primary domain name server only."
13891 msgstr ""
13892
13893 #. type: TP
13894 #: build/C/man3/resolver.3:208
13895 #, no-wrap
13896 msgid "B<RES_IGNTC>"
13897 msgstr ""
13898
13899 #. type: Plain text
13900 #: build/C/man3/resolver.3:213
13901 msgid ""
13902 "Ignore truncation errors.  Don't retry with TCP.  [Not currently "
13903 "implemented]."
13904 msgstr ""
13905
13906 #. type: TP
13907 #: build/C/man3/resolver.3:213
13908 #, no-wrap
13909 msgid "B<RES_RECURSE>"
13910 msgstr ""
13911
13912 #. type: Plain text
13913 #: build/C/man3/resolver.3:220
13914 msgid ""
13915 "Set the recursion desired bit in queries.  Recursion is carried out by the "
13916 "domain name server, not by B<res_send>().  [Enabled by default]."
13917 msgstr ""
13918
13919 #. type: TP
13920 #: build/C/man3/resolver.3:220
13921 #, no-wrap
13922 msgid "B<RES_DEFNAMES>"
13923 msgstr ""
13924
13925 #. type: Plain text
13926 #: build/C/man3/resolver.3:227
13927 msgid ""
13928 "If set, B<res_search>()  will append the default domain name to single "
13929 "component names, i.e., those that do not contain a dot.  [Enabled by "
13930 "default]."
13931 msgstr ""
13932
13933 #. type: TP
13934 #: build/C/man3/resolver.3:227
13935 #, no-wrap
13936 msgid "B<RES_STAYOPEN>"
13937 msgstr ""
13938
13939 #. type: Plain text
13940 #: build/C/man3/resolver.3:232
13941 msgid "Used with B<RES_USEVC> to keep the TCP connection open between queries."
13942 msgstr ""
13943
13944 #. type: TP
13945 #: build/C/man3/resolver.3:232
13946 #, no-wrap
13947 msgid "B<RES_DNSRCH>"
13948 msgstr ""
13949
13950 #. type: Plain text
13951 #: build/C/man3/resolver.3:241
13952 msgid ""
13953 "If set, B<res_search>()  will search for hostnames in the current domain and "
13954 "in parent domains.  This option is used by B<gethostbyname>(3).  [Enabled by "
13955 "default]."
13956 msgstr ""
13957
13958 #. type: Plain text
13959 #: build/C/man3/resolver.3:245
13960 msgid ""
13961 "This list is not complete.  You can find some other flags described in "
13962 "B<resolv.conf>(5)."
13963 msgstr ""
13964
13965 #. type: Plain text
13966 #: build/C/man3/resolver.3:250
13967 msgid "The B<res_init>()  function returns 0 on success, or -1 if an error occurs."
13968 msgstr ""
13969
13970 #. type: Plain text
13971 #: build/C/man3/resolver.3:260
13972 msgid ""
13973 "The B<res_query>(), B<res_search>(), B<res_querydomain>(), B<res_mkquery>()  "
13974 "and B<res_send>()  functions return the length of the response, or -1 if an "
13975 "error occurs."
13976 msgstr ""
13977
13978 #. type: Plain text
13979 #: build/C/man3/resolver.3:267
13980 msgid ""
13981 "The B<dn_comp>()  and B<dn_expand>()  functions return the length of the "
13982 "compressed name, or -1 if an error occurs."
13983 msgstr ""
13984
13985 #. type: Plain text
13986 #: build/C/man3/resolver.3:271
13987 #, no-wrap
13988 msgid ""
13989 "/etc/resolv.conf          resolver configuration file\n"
13990 "/etc/host.conf            resolver configuration file\n"
13991 msgstr ""
13992
13993 #. type: Plain text
13994 #: build/C/man3/resolver.3:274
13995 msgid "4.3BSD."
13996 msgstr ""
13997
13998 #. type: Plain text
13999 #: build/C/man3/resolver.3:280
14000 msgid ""
14001 "B<gethostbyname>(3), B<resolv.conf>(5), B<resolver>(5), B<hostname>(7), "
14002 "B<named>(8)"
14003 msgstr ""
14004
14005 #. type: TH
14006 #: build/C/man3/rexec.3:41
14007 #, no-wrap
14008 msgid "REXEC"
14009 msgstr ""
14010
14011 #. type: Plain text
14012 #: build/C/man3/rexec.3:44
14013 msgid "rexec, rexec_af - return stream to a remote command"
14014 msgstr ""
14015
14016 #. type: Plain text
14017 #: build/C/man3/rexec.3:48
14018 #, no-wrap
14019 msgid ""
14020 "B<#define _BSD_SOURCE>             /* See feature_test_macros(7) */\n"
14021 "B<#include E<lt>netdb.hE<gt>>\n"
14022 msgstr ""
14023
14024 #. type: Plain text
14025 #: build/C/man3/rexec.3:51
14026 #, no-wrap
14027 msgid ""
14028 "B<int rexec(char **>I<ahost>B<, int >I<inport>B<, char *>I<user>B<, >\n"
14029 "B<          char *>I<passwd>B<, char *>I<cmd>B<, int *>I<fd2p>B<);>\n"
14030 msgstr ""
14031
14032 #. type: Plain text
14033 #: build/C/man3/rexec.3:55
14034 #, no-wrap
14035 msgid ""
14036 "B<int rexec_af(char **>I<ahost>B<, int >I<inport>B<, char *>I<user>B<, >\n"
14037 "B<             char *>I<passwd>B<, char *>I<cmd>B<, int *>I<fd2p>B<,>\n"
14038 "B<             sa_family_t >I<af>B<);>\n"
14039 msgstr ""
14040
14041 #. type: Plain text
14042 #: build/C/man3/rexec.3:59
14043 msgid "This interface is obsoleted by B<rcmd>(3)."
14044 msgstr ""
14045
14046 #. type: Plain text
14047 #: build/C/man3/rexec.3:78
14048 msgid ""
14049 "The B<rexec>()  function looks up the host I<*ahost> using "
14050 "B<gethostbyname>(3), returning -1 if the host does not exist.  Otherwise "
14051 "I<*ahost> is set to the standard name of the host.  If a username and "
14052 "password are both specified, then these are used to authenticate to the "
14053 "foreign host; otherwise the environment and then the user's I<.netrc> file "
14054 "in his home directory are searched for appropriate information.  If all this "
14055 "fails, the user is prompted for the information."
14056 msgstr ""
14057
14058 #. type: Plain text
14059 #: build/C/man3/rexec.3:89
14060 msgid ""
14061 "The port I<inport> specifies which well-known DARPA Internet port to use for "
14062 "the connection; the call I<getservbyname(\"exec\", \"tcp\")> (see "
14063 "B<getservent>(3))  will return a pointer to a structure that contains the "
14064 "necessary port.  The protocol for connection is described in detail in "
14065 "B<rexecd>(8)."
14066 msgstr ""
14067
14068 #. type: Plain text
14069 #: build/C/man3/rexec.3:122
14070 msgid ""
14071 "If the connection succeeds, a socket in the Internet domain of type "
14072 "B<SOCK_STREAM> is returned to the caller, and given to the remote command as "
14073 "I<stdin> and I<stdout>.  If I<fd2p> is nonzero, then an auxiliary channel to "
14074 "a control process will be setup, and a descriptor for it will be placed in "
14075 "I<*fd2p>.  The control process will return diagnostic output from the "
14076 "command (unit 2) on this channel, and will also accept bytes on this channel "
14077 "as being UNIX signal numbers, to be forwarded to the process group of the "
14078 "command.  The diagnostic information returned does not include remote "
14079 "authorization failure, as the secondary connection is set up after "
14080 "authorization has been verified.  If I<fd2p> is 0, then the I<stderr> (unit "
14081 "2 of the remote command) will be made the same as the I<stdout> and no "
14082 "provision is made for sending arbitrary signals to the remote process, "
14083 "although you may be able to get its attention by using out-of-band data."
14084 msgstr ""
14085
14086 #. type: SS
14087 #: build/C/man3/rexec.3:122
14088 #, no-wrap
14089 msgid "rexec_af()"
14090 msgstr ""
14091
14092 #. type: Plain text
14093 #: build/C/man3/rexec.3:138
14094 msgid ""
14095 "The B<rexec>()  function works over IPv4 (B<AF_INET>).  By contrast, the "
14096 "B<rexec_af>()  function provides an extra argument, I<af>, that allows the "
14097 "caller to select the protocol.  This argument can be specified as "
14098 "B<AF_INET>, B<AF_INET6>, or B<AF_UNSPEC> (to allow the implementation to "
14099 "select the protocol)."
14100 msgstr ""
14101
14102 #. type: Plain text
14103 #: build/C/man3/rexec.3:142
14104 msgid "The B<rexec_af>()  function was added to glibc in version 2.2."
14105 msgstr ""
14106
14107 #. type: Plain text
14108 #: build/C/man3/rexec.3:149
14109 msgid "The B<rexec>()  and B<rexec_af>()  functions are not thread-safe."
14110 msgstr ""
14111
14112 #. type: Plain text
14113 #: build/C/man3/rexec.3:158
14114 msgid ""
14115 "These functions are not in POSIX.1-2001.  The B<rexec>()  function first "
14116 "appeared in 4.2BSD, and is present on the BSDs, Solaris, and many other "
14117 "systems.  The B<rexec_af>()  function is more recent, and less widespread."
14118 msgstr ""
14119
14120 #. type: Plain text
14121 #: build/C/man3/rexec.3:162
14122 msgid "The B<rexec>()  function sends the unencrypted password across the network."
14123 msgstr ""
14124
14125 #. type: Plain text
14126 #: build/C/man3/rexec.3:167
14127 msgid ""
14128 "The underlying service is considered a big security hole and therefore not "
14129 "enabled on many sites; see B<rexecd>(8)  for explanations."
14130 msgstr ""
14131
14132 #. type: Plain text
14133 #: build/C/man3/rexec.3:170
14134 msgid "B<rcmd>(3), B<rexecd>(8)"
14135 msgstr ""
14136
14137 #. type: TH
14138 #: build/C/man5/services.5:34
14139 #, no-wrap
14140 msgid "SERVICES"
14141 msgstr ""
14142
14143 #. type: TH
14144 #: build/C/man5/services.5:34
14145 #, no-wrap
14146 msgid "2010-05-22"
14147 msgstr ""
14148
14149 #. type: Plain text
14150 #: build/C/man5/services.5:37
14151 msgid "services - Internet network services list"
14152 msgstr ""
14153
14154 #. type: Plain text
14155 #: build/C/man5/services.5:52
14156 msgid ""
14157 "B<services> is a plain ASCII file providing a mapping between human-friendly "
14158 "textual names for internet services, and their underlying assigned port "
14159 "numbers and protocol types.  Every networking program should look into this "
14160 "file to get the port number (and protocol) for its service.  The C library "
14161 "routines B<getservent>(3), B<getservbyname>(3), B<getservbyport>(3), "
14162 "B<setservent>(3), and B<endservent>(3)  support querying this file from "
14163 "programs."
14164 msgstr ""
14165
14166 #. type: Plain text
14167 #: build/C/man5/services.5:58
14168 msgid ""
14169 "Port numbers are assigned by the IANA (Internet Assigned Numbers Authority), "
14170 "and their current policy is to assign both TCP and UDP protocols when "
14171 "assigning a port number.  Therefore, most entries will have two entries, "
14172 "even for TCP-only services."
14173 msgstr ""
14174
14175 #. type: Plain text
14176 #: build/C/man5/services.5:70
14177 msgid ""
14178 "Port numbers below 1024 (so-called \"low numbered\" ports) can be bound to "
14179 "only by root (see B<bind>(2), B<tcp>(7), and B<udp>(7)).  This is so clients "
14180 "connecting to low numbered ports can trust that the service running on the "
14181 "port is the standard implementation, and not a rogue service run by a user "
14182 "of the machine.  Well-known port numbers specified by the IANA are normally "
14183 "located in this root-only space."
14184 msgstr ""
14185
14186 #. type: Plain text
14187 #: build/C/man5/services.5:85
14188 msgid ""
14189 "The presence of an entry for a service in the B<services> file does not "
14190 "necessarily mean that the service is currently running on the machine.  See "
14191 "B<inetd.conf>(5)  for the configuration of Internet services offered.  Note "
14192 "that not all networking services are started by B<inetd>(8), and so won't "
14193 "appear in B<inetd.conf>(5).  In particular, news (NNTP) and mail (SMTP) "
14194 "servers are often initialized from the system boot scripts."
14195 msgstr ""
14196
14197 #. type: Plain text
14198 #: build/C/man5/services.5:94
14199 msgid ""
14200 "The location of the B<services> file is defined by B<_PATH_SERVICES> in "
14201 "I<E<lt>netdb.hE<gt>>.  This is usually set to I</etc/services>."
14202 msgstr ""
14203
14204 #. type: Plain text
14205 #: build/C/man5/services.5:96
14206 msgid "Each line describes one service, and is of the form:"
14207 msgstr ""
14208
14209 #. type: Plain text
14210 #: build/C/man5/services.5:98
14211 msgid "I<service-name\\ \\ \\ port>B</>I<protocol\\ \\ \\ >[I<aliases ...>]"
14212 msgstr ""
14213
14214 #. type: TP
14215 #: build/C/man5/services.5:98
14216 #, no-wrap
14217 msgid "where:"
14218 msgstr ""
14219
14220 #. type: TP
14221 #: build/C/man5/services.5:100
14222 #, no-wrap
14223 msgid "I<service-name>"
14224 msgstr ""
14225
14226 #. type: Plain text
14227 #: build/C/man5/services.5:106
14228 msgid ""
14229 "is the friendly name the service is known by and looked up under.  It is "
14230 "case sensitive.  Often, the client program is named after the "
14231 "I<service-name>."
14232 msgstr ""
14233
14234 #. type: TP
14235 #: build/C/man5/services.5:106
14236 #, no-wrap
14237 msgid "I<port>"
14238 msgstr ""
14239
14240 #. type: Plain text
14241 #: build/C/man5/services.5:109
14242 msgid "is the port number (in decimal) to use for this service."
14243 msgstr ""
14244
14245 #. type: Plain text
14246 #: build/C/man5/services.5:120
14247 msgid ""
14248 "is the type of protocol to be used.  This field should match an entry in the "
14249 "B<protocols>(5)  file.  Typical values include B<tcp> and B<udp>."
14250 msgstr ""
14251
14252 #. type: Plain text
14253 #: build/C/man5/services.5:126
14254 msgid ""
14255 "is an optional space or tab separated list of other names for this service.  "
14256 "Again, the names are case sensitive."
14257 msgstr ""
14258
14259 #. type: Plain text
14260 #: build/C/man5/services.5:128
14261 msgid "Either spaces or tabs may be used to separate the fields."
14262 msgstr ""
14263
14264 #. type: Plain text
14265 #: build/C/man5/services.5:132
14266 msgid ""
14267 "Comments are started by the hash sign (#) and continue until the end of the "
14268 "line.  Blank lines are skipped."
14269 msgstr ""
14270
14271 #. type: Plain text
14272 #: build/C/man5/services.5:143
14273 msgid ""
14274 "The I<service-name> should begin in the first column of the file, since "
14275 "leading spaces are not stripped.  I<service-names> can be any printable "
14276 "characters excluding space and tab.  However, a conservative choice of "
14277 "characters should be used to minimize compatibility problems.  E.g., a-z, "
14278 "0-9, and hyphen (-) would seem a sensible choice."
14279 msgstr ""
14280
14281 #. type: Plain text
14282 #: build/C/man5/services.5:152
14283 msgid ""
14284 "Lines not matching this format should not be present in the file.  "
14285 "(Currently, they are silently skipped by B<getservent>(3), "
14286 "B<getservbyname>(3), and B<getservbyport>(3).  However, this behavior should "
14287 "not be relied on.)"
14288 msgstr ""
14289
14290 #. type: Plain text
14291 #: build/C/man5/services.5:169
14292 msgid "A sample B<services> file might look like this:"
14293 msgstr ""
14294
14295 #. type: Plain text
14296 #: build/C/man5/services.5:182
14297 #, no-wrap
14298 msgid ""
14299 "CW<netstat         15/tcp\n"
14300 "qotd            17/tcp          quote\n"
14301 "msp             18/tcp          # message send protocol\n"
14302 "msp             18/udp          # message send protocol\n"
14303 "chargen         19/tcp          ttytst source\n"
14304 "chargen         19/udp          ttytst source\n"
14305 "ftp             21/tcp\n"
14306 "# 22 - unassigned\n"
14307 "telnet          23/tcp>\n"
14308 msgstr ""
14309
14310 #. type: Plain text
14311 #: build/C/man5/services.5:189
14312 msgid "The Internet network services list"
14313 msgstr ""
14314
14315 #. type: TP
14316 #: build/C/man5/services.5:189
14317 #, no-wrap
14318 msgid "I<E<lt>netdb.hE<gt>>"
14319 msgstr ""
14320
14321 #.  .SH BUGS
14322 #.  It's not clear when/if the following was ever true;
14323 #.  it isn't true for glibc 2.8:
14324 #.     There is a maximum of 35 aliases, due to the way the
14325 #.     .BR getservent (3)
14326 #.     code is written.
14327 #
14328 #.  It's not clear when/if the following was ever true;
14329 #.  it isn't true for glibc 2.8:
14330 #.     Lines longer than
14331 #.     .B BUFSIZ
14332 #.     (currently 1024) characters will be ignored by
14333 #.     .BR getservent (3),
14334 #.     .BR getservbyname (3),
14335 #.     and
14336 #.     .BR getservbyport (3).
14337 #.     However, this will also cause the next line to be mis-parsed.
14338 #. type: Plain text
14339 #: build/C/man5/services.5:210
14340 msgid "Definition of B<_PATH_SERVICES>"
14341 msgstr ""
14342
14343 #. type: Plain text
14344 #: build/C/man5/services.5:220
14345 msgid ""
14346 "B<listen>(2), B<endservent>(3), B<getservbyname>(3), B<getservbyport>(3), "
14347 "B<getservent>(3), B<setservent>(3), B<inetd.conf>(5), B<protocols>(5), "
14348 "B<inetd>(8)"
14349 msgstr ""
14350
14351 #. type: Plain text
14352 #: build/C/man5/services.5:222
14353 msgid "Assigned Numbers RFC, most recently RFC\\ 1700, (AKA STD0002)."
14354 msgstr ""
14355
14356 #. type: TH
14357 #: build/C/man3/setnetgrent.3:10
14358 #, no-wrap
14359 msgid "SETNETGRENT"
14360 msgstr ""
14361
14362 #. type: TH
14363 #: build/C/man3/setnetgrent.3:10
14364 #, no-wrap
14365 msgid "2007-07-26"
14366 msgstr ""
14367
14368 #. type: Plain text
14369 #: build/C/man3/setnetgrent.3:14
14370 msgid ""
14371 "setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr - handle "
14372 "network group entries"
14373 msgstr ""
14374
14375 #. type: Plain text
14376 #: build/C/man3/setnetgrent.3:19
14377 #, no-wrap
14378 msgid "B<int setnetgrent(const char *>I<netgroup>B<);>\n"
14379 msgstr ""
14380
14381 #. type: Plain text
14382 #: build/C/man3/setnetgrent.3:21
14383 #, no-wrap
14384 msgid "B<void endnetgrent(void);>\n"
14385 msgstr ""
14386
14387 #. type: Plain text
14388 #: build/C/man3/setnetgrent.3:23
14389 #, no-wrap
14390 msgid ""
14391 "B<int getnetgrent(char **>I<host>B<, char **>I<user>B<, char "
14392 "**>I<domain>B<);>\n"
14393 msgstr ""
14394
14395 #. type: Plain text
14396 #: build/C/man3/setnetgrent.3:26
14397 #, no-wrap
14398 msgid ""
14399 "B<int getnetgrent_r(char **>I<host>B<, char **>I<user>B<,>\n"
14400 "B<                  char **>I<domain>B<, char *>I<buf>B<, int "
14401 ">I<buflen>B<);>\n"
14402 msgstr ""
14403
14404 #. type: Plain text
14405 #: build/C/man3/setnetgrent.3:29
14406 #, no-wrap
14407 msgid ""
14408 "B<int innetgr(const char *>I<netgroup>B<, const char *>I<host>B<,>\n"
14409 "B<            const char *>I<user>B<, const char *>I<domain>B<);>\n"
14410 msgstr ""
14411
14412 #. type: Plain text
14413 #: build/C/man3/setnetgrent.3:43
14414 msgid ""
14415 "B<setnetgrent>(), B<endnetgrent>(), B<getnetgrent>(), B<getnetgrent_r>(), "
14416 "B<innetgr>(): _BSD_SOURCE || _SVID_SOURCE"
14417 msgstr ""
14418
14419 #. type: Plain text
14420 #: build/C/man3/setnetgrent.3:57
14421 msgid ""
14422 "The I<netgroup> is a SunOS invention.  A netgroup database is a list of "
14423 "string triples (I<hostname>, I<username>, I<domainname>)  or other netgroup "
14424 "names.  Any of the elements in a triple can be empty, which means that "
14425 "anything matches.  The functions described here allow access to the netgroup "
14426 "databases.  The file I</etc/nsswitch.conf> defines what database is "
14427 "searched."
14428 msgstr ""
14429
14430 #. type: Plain text
14431 #: build/C/man3/setnetgrent.3:77
14432 msgid ""
14433 "The B<setnetgrent>()  call defines the netgroup that will be searched by "
14434 "subsequent B<getnetgrent>()  calls.  The B<getnetgrent>()  function "
14435 "retrieves the next netgroup entry, and returns pointers in I<host>, I<user>, "
14436 "I<domain>.  A NULL pointer means that the corresponding entry matches any "
14437 "string.  The pointers are valid only as long as there is no call to other "
14438 "netgroup-related functions.  To avoid this problem you can use the GNU "
14439 "function B<getnetgrent_r>()  that stores the strings in the supplied "
14440 "buffer.  To free all allocated buffers use B<endnetgrent>()."
14441 msgstr ""
14442
14443 #. type: Plain text
14444 #: build/C/man3/setnetgrent.3:86
14445 msgid ""
14446 "In most cases you want to check only if the triplet (I<hostname>, "
14447 "I<username>, I<domainname>)  is a member of a netgroup.  The function "
14448 "B<innetgr>()  can be used for this without calling the above three "
14449 "functions.  Again, a NULL pointer is a wildcard and matches any string.  The "
14450 "function is thread-safe."
14451 msgstr ""
14452
14453 #. type: Plain text
14454 #: build/C/man3/setnetgrent.3:88
14455 msgid "These functions return 1 on success and 0 for failure."
14456 msgstr ""
14457
14458 #. type: Plain text
14459 #: build/C/man3/setnetgrent.3:90
14460 msgid "I</etc/netgroup>"
14461 msgstr ""
14462
14463 #.  getnetgrent_r() is on Solaris 8 and AIX 5.1, but not the BSDs.
14464 #. type: Plain text
14465 #: build/C/man3/setnetgrent.3:103
14466 msgid ""
14467 "These functions are not in POSIX.1-2001, but B<setnetgrent>(), "
14468 "B<endnetgrent>(), B<getnetgrent>(), and B<innetgr>()  are available on most "
14469 "UNIX systems.  B<getnetgrent_r>()  is not widely available on other systems."
14470 msgstr ""
14471
14472 #. type: Plain text
14473 #: build/C/man3/setnetgrent.3:107
14474 msgid "In the BSD implementation, B<setnetgrent>()  returns void."
14475 msgstr ""
14476
14477 #. type: Plain text
14478 #: build/C/man3/setnetgrent.3:111
14479 msgid "B<sethostent>(3), B<setprotoent>(3), B<setservent>(3)"
14480 msgstr ""
14481
14482 #. type: TH
14483 #: build/C/man2/shutdown.2:40
14484 #, no-wrap
14485 msgid "SHUTDOWN"
14486 msgstr ""
14487
14488 #. type: TH
14489 #: build/C/man2/shutdown.2:40
14490 #, no-wrap
14491 msgid "2012-09-06"
14492 msgstr ""
14493
14494 #. type: Plain text
14495 #: build/C/man2/shutdown.2:43
14496 msgid "shutdown - shut down part of a full-duplex connection"
14497 msgstr ""
14498
14499 #. type: Plain text
14500 #: build/C/man2/shutdown.2:47
14501 msgid "B<int shutdown(int >I<sockfd>B<, int >I<how>B<);>"
14502 msgstr ""
14503
14504 #. type: Plain text
14505 #: build/C/man2/shutdown.2:69
14506 msgid ""
14507 "The B<shutdown>()  call causes all or part of a full-duplex connection on "
14508 "the socket associated with I<sockfd> to be shut down.  If I<how> is "
14509 "B<SHUT_RD>, further receptions will be disallowed.  If I<how> is B<SHUT_WR>, "
14510 "further transmissions will be disallowed.  If I<how> is B<SHUT_RDWR>, "
14511 "further receptions and transmissions will be disallowed."
14512 msgstr ""
14513
14514 #. type: Plain text
14515 #: build/C/man2/shutdown.2:79
14516 msgid "I<sockfd> is not a valid descriptor."
14517 msgstr ""
14518
14519 #. type: Plain text
14520 #: build/C/man2/shutdown.2:84
14521 msgid "An invalid value was specified in I<how> (but see BUGS)."
14522 msgstr ""
14523
14524 #. type: Plain text
14525 #: build/C/man2/shutdown.2:87
14526 msgid "The specified socket is not connected."
14527 msgstr ""
14528
14529 #. type: Plain text
14530 #: build/C/man2/shutdown.2:91
14531 msgid "I<sockfd> is a file, not a socket."
14532 msgstr ""
14533
14534 #. type: Plain text
14535 #: build/C/man2/shutdown.2:95
14536 msgid ""
14537 "POSIX.1-2001, 4.4BSD (the B<shutdown>()  function call first appeared in "
14538 "4.2BSD)."
14539 msgstr ""
14540
14541 #. type: Plain text
14542 #: build/C/man2/shutdown.2:104
14543 msgid ""
14544 "The constants B<SHUT_RD>, B<SHUT_WR>, B<SHUT_RDWR> have the value 0, 1, 2, "
14545 "respectively, and are defined in I<E<lt>sys/socket.hE<gt>> since "
14546 "glibc-2.1.91."
14547 msgstr ""
14548
14549 #.  FIXME
14550 #.  https://bugzilla.kernel.org/show_bug.cgi?id=47111
14551 #. type: Plain text
14552 #: build/C/man2/shutdown.2:113
14553 msgid ""
14554 "As currently implemented, checks for the validity of I<how> are done in "
14555 "domain-specific code, and not all domains perform these checks.  Most "
14556 "notably, UNIX domain sockets simply ignore invalid values; this may change "
14557 "in the future."
14558 msgstr ""
14559
14560 #. type: Plain text
14561 #: build/C/man2/shutdown.2:117
14562 msgid "B<connect>(2), B<socket>(2), B<socket>(7)"
14563 msgstr ""
14564
14565 #. type: TH
14566 #: build/C/man7/tcp.7:65
14567 #, no-wrap
14568 msgid "TCP"
14569 msgstr ""
14570
14571 #. type: TH
14572 #: build/C/man7/tcp.7:65
14573 #, no-wrap
14574 msgid "2013-06-21"
14575 msgstr ""
14576
14577 #. type: Plain text
14578 #: build/C/man7/tcp.7:68
14579 msgid "tcp - TCP protocol"
14580 msgstr ""
14581
14582 #. type: Plain text
14583 #: build/C/man7/tcp.7:74
14584 msgid "B<#include E<lt>netinet/tcp.hE<gt>>"
14585 msgstr ""
14586
14587 #. type: Plain text
14588 #: build/C/man7/tcp.7:76
14589 msgid "B<tcp_socket = socket(AF_INET, SOCK_STREAM, 0);>"
14590 msgstr ""
14591
14592 #. type: Plain text
14593 #: build/C/man7/tcp.7:89
14594 msgid ""
14595 "This is an implementation of the TCP protocol defined in RFC\\ 793, RFC\\ "
14596 "1122 and RFC\\ 2001 with the NewReno and SACK extensions.  It provides a "
14597 "reliable, stream-oriented, full-duplex connection between two sockets on top "
14598 "of B<ip>(7), for both v4 and v6 versions.  TCP guarantees that the data "
14599 "arrives in order and retransmits lost packets.  It generates and checks a "
14600 "per-packet checksum to catch transmission errors.  TCP does not preserve "
14601 "record boundaries."
14602 msgstr ""
14603
14604 #. type: Plain text
14605 #: build/C/man7/tcp.7:108
14606 msgid ""
14607 "A newly created TCP socket has no remote or local address and is not fully "
14608 "specified.  To create an outgoing TCP connection use B<connect>(2)  to "
14609 "establish a connection to another TCP socket.  To receive new incoming "
14610 "connections, first B<bind>(2)  the socket to a local address and port and "
14611 "then call B<listen>(2)  to put the socket into the listening state.  After "
14612 "that a new socket for each incoming connection can be accepted using "
14613 "B<accept>(2).  A socket which has had B<accept>(2)  or B<connect>(2)  "
14614 "successfully called on it is fully specified and may transmit data.  Data "
14615 "cannot be transmitted on listening or not yet connected sockets."
14616 msgstr ""
14617
14618 #. type: Plain text
14619 #: build/C/man7/tcp.7:128
14620 msgid ""
14621 "Linux supports RFC\\ 1323 TCP high performance extensions.  These include "
14622 "Protection Against Wrapped Sequence Numbers (PAWS), Window Scaling and "
14623 "Timestamps.  Window scaling allows the use of large (E<gt> 64K) TCP windows "
14624 "in order to support links with high latency or bandwidth.  To make use of "
14625 "them, the send and receive buffer sizes must be increased.  They can be set "
14626 "globally with the I</proc/sys/net/ipv4/tcp_wmem> and "
14627 "I</proc/sys/net/ipv4/tcp_rmem> files, or on individual sockets by using the "
14628 "B<SO_SNDBUF> and B<SO_RCVBUF> socket options with the B<setsockopt>(2)  "
14629 "call."
14630 msgstr ""
14631
14632 #. type: Plain text
14633 #: build/C/man7/tcp.7:159
14634 msgid ""
14635 "The maximum sizes for socket buffers declared via the B<SO_SNDBUF> and "
14636 "B<SO_RCVBUF> mechanisms are limited by the values in the "
14637 "I</proc/sys/net/core/rmem_max> and I</proc/sys/net/core/wmem_max> files.  "
14638 "Note that TCP actually allocates twice the size of the buffer requested in "
14639 "the B<setsockopt>(2)  call, and so a succeeding B<getsockopt>(2)  call will "
14640 "not return the same size of buffer as requested in the B<setsockopt>(2)  "
14641 "call.  TCP uses the extra space for administrative purposes and internal "
14642 "kernel structures, and the I</proc> file values reflect the larger sizes "
14643 "compared to the actual TCP windows.  On individual connections, the socket "
14644 "buffer size must be set prior to the B<listen>(2)  or B<connect>(2)  calls "
14645 "in order to have it take effect.  See B<socket>(7)  for more information."
14646 msgstr ""
14647
14648 #. type: Plain text
14649 #: build/C/man7/tcp.7:191
14650 msgid ""
14651 "TCP supports urgent data.  Urgent data is used to signal the receiver that "
14652 "some important message is part of the data stream and that it should be "
14653 "processed as soon as possible.  To send urgent data specify the B<MSG_OOB> "
14654 "option to B<send>(2).  When urgent data is received, the kernel sends a "
14655 "B<SIGURG> signal to the process or process group that has been set as the "
14656 "socket \"owner\" using the B<SIOCSPGRP> or B<FIOSETOWN> ioctls (or the "
14657 "POSIX.1-2001-specified B<fcntl>(2)  B<F_SETOWN> operation).  When the "
14658 "B<SO_OOBINLINE> socket option is enabled, urgent data is put into the normal "
14659 "data stream (a program can test for its location using the B<SIOCATMARK> "
14660 "ioctl described below), otherwise it can be received only when the "
14661 "B<MSG_OOB> flag is set for B<recv>(2)  or B<recvmsg>(2)."
14662 msgstr ""
14663
14664 #. type: Plain text
14665 #: build/C/man7/tcp.7:199
14666 msgid ""
14667 "Linux 2.4 introduced a number of changes for improved throughput and "
14668 "scaling, as well as enhanced functionality.  Some of these features include "
14669 "support for zero-copy B<sendfile>(2), Explicit Congestion Notification, new "
14670 "management of TIME_WAIT sockets, keep-alive socket options and support for "
14671 "Duplicate SACK extensions."
14672 msgstr ""
14673
14674 #. type: SS
14675 #: build/C/man7/tcp.7:199
14676 #, no-wrap
14677 msgid "Address formats"
14678 msgstr ""
14679
14680 #. type: Plain text
14681 #: build/C/man7/tcp.7:208
14682 msgid ""
14683 "TCP is built on top of IP (see B<ip>(7)).  The address formats defined by "
14684 "B<ip>(7)  apply to TCP.  TCP supports point-to-point communication only; "
14685 "broadcasting and multicasting are not supported."
14686 msgstr ""
14687
14688 #. type: Plain text
14689 #: build/C/man7/tcp.7:220
14690 msgid ""
14691 "System-wide TCP parameter settings can be accessed by files in the directory "
14692 "I</proc/sys/net/ipv4/>.  In addition, most IP I</proc> interfaces also apply "
14693 "to TCP; see B<ip>(7).  Variables described as I<Boolean> take an integer "
14694 "value, with a nonzero value (\"true\") meaning that the corresponding option "
14695 "is enabled, and a zero value (\"false\")  meaning that the option is "
14696 "disabled."
14697 msgstr ""
14698
14699 #. type: TP
14700 #: build/C/man7/tcp.7:220
14701 #, no-wrap
14702 msgid "I<tcp_abc> (Integer; default: 0; since Linux 2.6.15)"
14703 msgstr ""
14704
14705 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14706 #. type: Plain text
14707 #: build/C/man7/tcp.7:228
14708 msgid ""
14709 "Control the Appropriate Byte Count (ABC), defined in RFC 3465.  ABC is a way "
14710 "of increasing the congestion window (I<cwnd>)  more slowly in response to "
14711 "partial acknowledgments.  Possible values are:"
14712 msgstr ""
14713
14714 #. type: IP
14715 #: build/C/man7/tcp.7:229 build/C/man7/tcp.7:398 build/C/man7/tcp.7:419 build/C/man7/tcp.7:563
14716 #, no-wrap
14717 msgid "0"
14718 msgstr ""
14719
14720 #. type: Plain text
14721 #: build/C/man7/tcp.7:233
14722 msgid "increase I<cwnd> once per acknowledgment (no ABC)"
14723 msgstr ""
14724
14725 #. type: IP
14726 #: build/C/man7/tcp.7:233 build/C/man7/tcp.7:400 build/C/man7/tcp.7:426 build/C/man7/tcp.7:565
14727 #, no-wrap
14728 msgid "1"
14729 msgstr ""
14730
14731 #. type: Plain text
14732 #: build/C/man7/tcp.7:237
14733 msgid "increase I<cwnd> once per acknowledgment of full sized segment"
14734 msgstr ""
14735
14736 #. type: IP
14737 #: build/C/man7/tcp.7:237 build/C/man7/tcp.7:402 build/C/man7/tcp.7:433 build/C/man7/tcp.7:567
14738 #, no-wrap
14739 msgid "2"
14740 msgstr ""
14741
14742 #. type: Plain text
14743 #: build/C/man7/tcp.7:242
14744 msgid ""
14745 "allow increase I<cwnd> by two if acknowledgment is of two segments to "
14746 "compensate for delayed acknowledgments."
14747 msgstr ""
14748
14749 #. type: TP
14750 #: build/C/man7/tcp.7:243
14751 #, no-wrap
14752 msgid "I<tcp_abort_on_overflow> (Boolean; default: disabled; since Linux 2.4)"
14753 msgstr ""
14754
14755 #.  Since 2.3.41
14756 #. type: Plain text
14757 #: build/C/man7/tcp.7:255
14758 msgid ""
14759 "Enable resetting connections if the listening service is too slow and unable "
14760 "to keep up and accept them.  It means that if overflow occurred due to a "
14761 "burst, the connection will recover.  Enable this option I<only> if you are "
14762 "really sure that the listening daemon cannot be tuned to accept connections "
14763 "faster.  Enabling this option can harm the clients of your server."
14764 msgstr ""
14765
14766 #. type: TP
14767 #: build/C/man7/tcp.7:255
14768 #, no-wrap
14769 msgid "I<tcp_adv_win_scale> (integer; default: 2; since Linux 2.4)"
14770 msgstr ""
14771
14772 #.  Since 2.4.0-test7
14773 #. type: Plain text
14774 #: build/C/man7/tcp.7:267
14775 msgid ""
14776 "Count buffering overhead as I<bytes/2^tcp_adv_win_scale>, if "
14777 "I<tcp_adv_win_scale> is greater than 0; or "
14778 "I<bytes-bytes/2^(-tcp_adv_win_scale)>, if I<tcp_adv_win_scale> is less than "
14779 "or equal to zero."
14780 msgstr ""
14781
14782 #. type: Plain text
14783 #: build/C/man7/tcp.7:280
14784 msgid ""
14785 "The socket receive buffer space is shared between the application and "
14786 "kernel.  TCP maintains part of the buffer as the TCP window, this is the "
14787 "size of the receive window advertised to the other end.  The rest of the "
14788 "space is used as the \"application\" buffer, used to isolate the network "
14789 "from scheduling and application latencies.  The I<tcp_adv_win_scale> default "
14790 "value of 2 implies that the space used for the application buffer is one "
14791 "fourth that of the total."
14792 msgstr ""
14793
14794 #. type: TP
14795 #: build/C/man7/tcp.7:280
14796 #, no-wrap
14797 msgid ""
14798 "I<tcp_allowed_congestion_control> (String; default: see text; since Linux "
14799 "2.4.20)"
14800 msgstr ""
14801
14802 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14803 #.  FIXME How are the items in this delimited? Null bytes, spaces, commas?
14804 #. type: Plain text
14805 #: build/C/man7/tcp.7:292
14806 msgid ""
14807 "Show/set the congestion control algorithm choices available to unprivileged "
14808 "processes (see the description of the B<TCP_CONGESTION> socket option).  The "
14809 "list is a subset of those listed in I<tcp_available_congestion_control>.  "
14810 "The default value for this list is \"reno\" plus the default setting of "
14811 "I<tcp_congestion_control>."
14812 msgstr ""
14813
14814 #. type: TP
14815 #: build/C/man7/tcp.7:292
14816 #, no-wrap
14817 msgid "I<tcp_available_congestion_control> (String; read-only; since Linux 2.4.20)"
14818 msgstr ""
14819
14820 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14821 #.  FIXME How are the items in this delimited? Null bytes, spaces, commas?
14822 #. type: Plain text
14823 #: build/C/man7/tcp.7:302
14824 msgid ""
14825 "Show a list of the congestion-control algorithms that are registered.  This "
14826 "list is a limiting set for the list in I<tcp_allowed_congestion_control>.  "
14827 "More congestion-control algorithms may be available as modules, but not "
14828 "loaded."
14829 msgstr ""
14830
14831 #. type: TP
14832 #: build/C/man7/tcp.7:302
14833 #, no-wrap
14834 msgid "I<tcp_app_win> (integer; default: 31; since Linux 2.4)"
14835 msgstr ""
14836
14837 #.  Since 2.4.0-test7
14838 #. type: Plain text
14839 #: build/C/man7/tcp.7:307
14840 msgid ""
14841 "This variable defines how many bytes of the TCP window are reserved for "
14842 "buffering overhead."
14843 msgstr ""
14844
14845 #
14846 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14847 #. type: Plain text
14848 #: build/C/man7/tcp.7:313
14849 msgid ""
14850 "A maximum of (I<window/2^tcp_app_win>, mss) bytes in the window are reserved "
14851 "for the application buffer.  A value of 0 implies that no amount is "
14852 "reserved."
14853 msgstr ""
14854
14855 #. type: TP
14856 #: build/C/man7/tcp.7:313
14857 #, no-wrap
14858 msgid "I<tcp_base_mss> (Integer; default: 512; since Linux 2.6.17)"
14859 msgstr ""
14860
14861 #
14862 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14863 #. type: Plain text
14864 #: build/C/man7/tcp.7:322
14865 msgid ""
14866 "The initial value of I<search_low> to be used by the packetization layer "
14867 "Path MTU discovery (MTU probing).  If MTU probing is enabled, this is the "
14868 "initial MSS used by the connection."
14869 msgstr ""
14870
14871 #. type: TP
14872 #: build/C/man7/tcp.7:322
14873 #, no-wrap
14874 msgid "I<tcp_bic> (Boolean; default: disabled; Linux 2.4.27/2.6.6 to 2.6.13)"
14875 msgstr ""
14876
14877 #
14878 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14879 #. type: Plain text
14880 #: build/C/man7/tcp.7:336
14881 msgid ""
14882 "Enable BIC TCP congestion control algorithm.  BIC-TCP is a sender-side only "
14883 "change that ensures a linear RTT fairness under large windows while offering "
14884 "both scalability and bounded TCP-friendliness.  The protocol combines two "
14885 "schemes called additive increase and binary search increase.  When the "
14886 "congestion window is large, additive increase with a large increment ensures "
14887 "linear RTT fairness as well as good scalability.  Under small congestion "
14888 "windows, binary search increase provides TCP friendliness."
14889 msgstr ""
14890
14891 #. type: TP
14892 #: build/C/man7/tcp.7:336
14893 #, no-wrap
14894 msgid "I<tcp_bic_low_window> (integer; default: 14; Linux 2.4.27/2.6.6 to 2.6.13)"
14895 msgstr ""
14896
14897 #
14898 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14899 #. type: Plain text
14900 #: build/C/man7/tcp.7:343
14901 msgid ""
14902 "Set the threshold window (in packets) where BIC TCP starts to adjust the "
14903 "congestion window.  Below this threshold BIC TCP behaves the same as the "
14904 "default TCP Reno."
14905 msgstr ""
14906
14907 #. type: TP
14908 #: build/C/man7/tcp.7:343
14909 #, no-wrap
14910 msgid ""
14911 "I<tcp_bic_fast_convergence> (Boolean; default: enabled; Linux 2.4.27/2.6.6 "
14912 "to 2.6.13)"
14913 msgstr ""
14914
14915 #. type: Plain text
14916 #: build/C/man7/tcp.7:347
14917 msgid ""
14918 "Force BIC TCP to more quickly respond to changes in congestion window.  "
14919 "Allows two flows sharing the same connection to converge more rapidly."
14920 msgstr ""
14921
14922 #. type: TP
14923 #: build/C/man7/tcp.7:347
14924 #, no-wrap
14925 msgid "I<tcp_congestion_control> (String; default: see text; since Linux 2.4.13)"
14926 msgstr ""
14927
14928 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14929 #. type: Plain text
14930 #: build/C/man7/tcp.7:354
14931 msgid ""
14932 "Set the default congestion-control algorithm to be used for new "
14933 "connections.  The algorithm \"reno\" is always available, but additional "
14934 "choices may be available depending on kernel configuration.  The default "
14935 "value for this file is set as part of kernel configuration."
14936 msgstr ""
14937
14938 #. type: TP
14939 #: build/C/man7/tcp.7:354
14940 #, no-wrap
14941 msgid "I<tcp_dma_copybreak> (integer; default: 4096; since Linux 2.6.24)"
14942 msgstr ""
14943
14944 #. type: Plain text
14945 #: build/C/man7/tcp.7:361
14946 msgid ""
14947 "Lower limit, in bytes, of the size of socket reads that will be offloaded to "
14948 "a DMA copy engine, if one is present in the system and the kernel was "
14949 "configured with the B<CONFIG_NET_DMA> option."
14950 msgstr ""
14951
14952 #. type: TP
14953 #: build/C/man7/tcp.7:361
14954 #, no-wrap
14955 msgid "I<tcp_dsack> (Boolean; default: enabled; since Linux 2.4)"
14956 msgstr ""
14957
14958 #.  Since 2.4.0-test7
14959 #. type: Plain text
14960 #: build/C/man7/tcp.7:365
14961 msgid "Enable RFC\\ 2883 TCP Duplicate SACK support."
14962 msgstr ""
14963
14964 #. type: TP
14965 #: build/C/man7/tcp.7:365
14966 #, no-wrap
14967 msgid "I<tcp_ecn> (Boolean; default: disabled; since Linux 2.4)"
14968 msgstr ""
14969
14970 #.  Since 2.4.0-test7
14971 #. type: Plain text
14972 #: build/C/man7/tcp.7:372
14973 msgid ""
14974 "Enable RFC\\ 2884 Explicit Congestion Notification.  When enabled, "
14975 "connectivity to some destinations could be affected due to older, "
14976 "misbehaving routers along the path causing connections to be dropped."
14977 msgstr ""
14978
14979 #. type: TP
14980 #: build/C/man7/tcp.7:372
14981 #, no-wrap
14982 msgid "I<tcp_fack> (Boolean; default: enabled; since Linux 2.2)"
14983 msgstr ""
14984
14985 #.  Since 2.1.92
14986 #. type: Plain text
14987 #: build/C/man7/tcp.7:376
14988 msgid "Enable TCP Forward Acknowledgement support."
14989 msgstr ""
14990
14991 #. type: TP
14992 #: build/C/man7/tcp.7:376
14993 #, no-wrap
14994 msgid "I<tcp_fin_timeout> (integer; default: 60; since Linux 2.2)"
14995 msgstr ""
14996
14997 #.  Since 2.1.53
14998 #
14999 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15000 #. type: Plain text
15001 #: build/C/man7/tcp.7:386
15002 msgid ""
15003 "This specifies how many seconds to wait for a final FIN packet before the "
15004 "socket is forcibly closed.  This is strictly a violation of the TCP "
15005 "specification, but required to prevent denial-of-service attacks.  In Linux "
15006 "2.2, the default value was 180."
15007 msgstr ""
15008
15009 #. type: TP
15010 #: build/C/man7/tcp.7:386
15011 #, no-wrap
15012 msgid "I<tcp_frto> (integer; default: 0; since Linux 2.4.21/2.6)"
15013 msgstr ""
15014
15015 #.  Since 2.4.21/2.5.43
15016 #. type: Plain text
15017 #: build/C/man7/tcp.7:395
15018 msgid ""
15019 "Enable F-RTO, an enhanced recovery algorithm for TCP retransmission timeouts "
15020 "(RTOs).  It is particularly beneficial in wireless environments where packet "
15021 "loss is typically due to random radio interference rather than intermediate "
15022 "router congestion.  See RFC 4138 for more details."
15023 msgstr ""
15024
15025 #. type: Plain text
15026 #: build/C/man7/tcp.7:397
15027 msgid "This file can have one of the following values:"
15028 msgstr ""
15029
15030 #. type: Plain text
15031 #: build/C/man7/tcp.7:400
15032 msgid "Disabled."
15033 msgstr ""
15034
15035 #. type: Plain text
15036 #: build/C/man7/tcp.7:402
15037 msgid "The basic version F-RTO algorithm is enabled."
15038 msgstr ""
15039
15040 #. type: Plain text
15041 #: build/C/man7/tcp.7:407
15042 msgid ""
15043 "Enable SACK-enhanced F-RTO if flow uses SACK.  The basic version can be used "
15044 "also when SACK is in use though in that case scenario(s) exists where F-RTO "
15045 "interacts badly with the packet counting of the SACK-enabled TCP flow."
15046 msgstr ""
15047
15048 #. type: Plain text
15049 #: build/C/man7/tcp.7:411
15050 msgid ""
15051 "Before Linux 2.6.22, this parameter was a Boolean value, supporting just "
15052 "values 0 and 1 above."
15053 msgstr ""
15054
15055 #. type: TP
15056 #: build/C/man7/tcp.7:411
15057 #, no-wrap
15058 msgid "I<tcp_frto_response> (integer; default: 0; since Linux 2.6.22)"
15059 msgstr ""
15060
15061 #. type: Plain text
15062 #: build/C/man7/tcp.7:418
15063 msgid ""
15064 "When F-RTO has detected that a TCP retransmission timeout was spurious (i.e, "
15065 "the timeout would have been avoided had TCP set a longer retransmission "
15066 "timeout), TCP has several options concerning what to do next.  Possible "
15067 "values are:"
15068 msgstr ""
15069
15070 #. type: Plain text
15071 #: build/C/man7/tcp.7:426
15072 msgid ""
15073 "Rate halving based; a smooth and conservative response, results in halved "
15074 "congestion window (I<cwnd>)  and slow-start threshold (I<ssthresh>)  after "
15075 "one RTT."
15076 msgstr ""
15077
15078 #. type: Plain text
15079 #: build/C/man7/tcp.7:433
15080 msgid ""
15081 "Very conservative response; not recommended because even though being valid, "
15082 "it interacts poorly with the rest of Linux TCP; halves I<cwnd> and "
15083 "I<ssthresh> immediately."
15084 msgstr ""
15085
15086 #. type: Plain text
15087 #: build/C/man7/tcp.7:442
15088 msgid ""
15089 "Aggressive response; undoes congestion-control measures that are now known "
15090 "to be unnecessary (ignoring the possibility of a lost retransmission that "
15091 "would require TCP to be more cautious); I<cwnd> and I<ssthresh> are restored "
15092 "to the values prior to timeout."
15093 msgstr ""
15094
15095 #. type: TP
15096 #: build/C/man7/tcp.7:443
15097 #, no-wrap
15098 msgid "I<tcp_keepalive_intvl> (integer; default: 75; since Linux 2.4)"
15099 msgstr ""
15100
15101 #.  Since 2.3.18
15102 #. type: Plain text
15103 #: build/C/man7/tcp.7:447
15104 msgid "The number of seconds between TCP keep-alive probes."
15105 msgstr ""
15106
15107 #. type: TP
15108 #: build/C/man7/tcp.7:447
15109 #, no-wrap
15110 msgid "I<tcp_keepalive_probes> (integer; default: 9; since Linux 2.2)"
15111 msgstr ""
15112
15113 #.  Since 2.1.43
15114 #. type: Plain text
15115 #: build/C/man7/tcp.7:453
15116 msgid ""
15117 "The maximum number of TCP keep-alive probes to send before giving up and "
15118 "killing the connection if no response is obtained from the other end."
15119 msgstr ""
15120
15121 #. type: TP
15122 #: build/C/man7/tcp.7:453
15123 #, no-wrap
15124 msgid "I<tcp_keepalive_time> (integer; default: 7200; since Linux 2.2)"
15125 msgstr ""
15126
15127 #.  Since 2.1.43
15128 #. type: Plain text
15129 #: build/C/man7/tcp.7:465
15130 msgid ""
15131 "The number of seconds a connection needs to be idle before TCP begins "
15132 "sending out keep-alive probes.  Keep-alives are sent only when the "
15133 "B<SO_KEEPALIVE> socket option is enabled.  The default value is 7200 seconds "
15134 "(2 hours).  An idle connection is terminated after approximately an "
15135 "additional 11 minutes (9 probes an interval of 75 seconds apart) when "
15136 "keep-alive is enabled."
15137 msgstr ""
15138
15139 #
15140 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15141 #. type: Plain text
15142 #: build/C/man7/tcp.7:470
15143 msgid ""
15144 "Note that underlying connection tracking mechanisms and application timeouts "
15145 "may be much shorter."
15146 msgstr ""
15147
15148 #. type: TP
15149 #: build/C/man7/tcp.7:470
15150 #, no-wrap
15151 msgid "I<tcp_low_latency> (Boolean; default: disabled; since Linux 2.4.21/2.6)"
15152 msgstr ""
15153
15154 #.  Since 2.4.21/2.5.60
15155 #. type: Plain text
15156 #: build/C/man7/tcp.7:478
15157 msgid ""
15158 "If enabled, the TCP stack makes decisions that prefer lower latency as "
15159 "opposed to higher throughput.  It this option is disabled, then higher "
15160 "throughput is preferred.  An example of an application where this default "
15161 "should be changed would be a Beowulf compute cluster."
15162 msgstr ""
15163
15164 #. type: TP
15165 #: build/C/man7/tcp.7:478
15166 #, no-wrap
15167 msgid "I<tcp_max_orphans> (integer; default: see below; since Linux 2.4)"
15168 msgstr ""
15169
15170 #.  Since 2.3.41
15171 #. type: Plain text
15172 #: build/C/man7/tcp.7:492
15173 msgid ""
15174 "The maximum number of orphaned (not attached to any user file handle) TCP "
15175 "sockets allowed in the system.  When this number is exceeded, the orphaned "
15176 "connection is reset and a warning is printed.  This limit exists only to "
15177 "prevent simple denial-of-service attacks.  Lowering this limit is not "
15178 "recommended.  Network conditions might require you to increase the number of "
15179 "orphans allowed, but note that each orphan can eat up to ~64K of unswappable "
15180 "memory.  The default initial value is set equal to the kernel parameter "
15181 "NR_FILE.  This initial default is adjusted depending on the memory in the "
15182 "system."
15183 msgstr ""
15184
15185 #. type: TP
15186 #: build/C/man7/tcp.7:492
15187 #, no-wrap
15188 msgid "I<tcp_max_syn_backlog> (integer; default: see below; since Linux 2.2)"
15189 msgstr ""
15190
15191 #.  Since 2.1.53
15192 #. type: Plain text
15193 #: build/C/man7/tcp.7:509
15194 msgid ""
15195 "The maximum number of queued connection requests which have still not "
15196 "received an acknowledgement from the connecting client.  If this number is "
15197 "exceeded, the kernel will begin dropping requests.  The default value of 256 "
15198 "is increased to 1024 when the memory present in the system is adequate or "
15199 "greater (E<gt>= 128Mb), and reduced to 128 for those systems with very low "
15200 "memory (E<lt>= 32Mb).  It is recommended that if this needs to be increased "
15201 "above 1024, TCP_SYNQ_HSIZE in I<include/net/tcp.h> be modified to keep "
15202 "TCP_SYNQ_HSIZE*16E<lt>=tcp_max_syn_backlog, and the kernel be recompiled."
15203 msgstr ""
15204
15205 #. type: TP
15206 #: build/C/man7/tcp.7:509
15207 #, no-wrap
15208 msgid "I<tcp_max_tw_buckets> (integer; default: see below; since Linux 2.4)"
15209 msgstr ""
15210
15211 #.  Since 2.3.41
15212 #. type: Plain text
15213 #: build/C/man7/tcp.7:519
15214 msgid ""
15215 "The maximum number of sockets in TIME_WAIT state allowed in the system.  "
15216 "This limit exists only to prevent simple denial-of-service attacks.  The "
15217 "default value of NR_FILE*2 is adjusted depending on the memory in the "
15218 "system.  If this number is exceeded, the socket is closed and a warning is "
15219 "printed."
15220 msgstr ""
15221
15222 #. type: TP
15223 #: build/C/man7/tcp.7:519
15224 #, no-wrap
15225 msgid "I<tcp_moderate_rcvbuf> (Boolean; default: enabled; since Linux 2.4.17/2.6.7)"
15226 msgstr ""
15227
15228 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
15229 #. type: Plain text
15230 #: build/C/man7/tcp.7:526
15231 msgid ""
15232 "If enabled, TCP performs receive buffer auto-tuning, attempting to "
15233 "automatically size the buffer (no greater than I<tcp_rmem[2]>)  to match the "
15234 "size required by the path for full throughput."
15235 msgstr ""
15236
15237 #. type: TP
15238 #: build/C/man7/tcp.7:526
15239 #, no-wrap
15240 msgid "I<tcp_mem> (since Linux 2.4)"
15241 msgstr ""
15242
15243 #.  Since 2.4.0-test7
15244 #. type: Plain text
15245 #: build/C/man7/tcp.7:538
15246 msgid ""
15247 "This is a vector of 3 integers: [low, pressure, high].  These bounds, "
15248 "measured in units of the system page size, are used by TCP to track its "
15249 "memory usage.  The defaults are calculated at boot time from the amount of "
15250 "available memory.  (TCP can only use I<low memory> for this, which is "
15251 "limited to around 900 megabytes on 32-bit systems.  64-bit systems do not "
15252 "suffer this limitation.)"
15253 msgstr ""
15254
15255 #. type: TP
15256 #: build/C/man7/tcp.7:539
15257 #, no-wrap
15258 msgid "I<low>"
15259 msgstr ""
15260
15261 #. type: Plain text
15262 #: build/C/man7/tcp.7:543
15263 msgid ""
15264 "TCP doesn't regulate its memory allocation when the number of pages it has "
15265 "allocated globally is below this number."
15266 msgstr ""
15267
15268 #. type: TP
15269 #: build/C/man7/tcp.7:543 build/C/man7/udp.7:151
15270 #, no-wrap
15271 msgid "I<pressure>"
15272 msgstr ""
15273
15274 #. type: Plain text
15275 #: build/C/man7/tcp.7:552
15276 msgid ""
15277 "When the amount of memory allocated by TCP exceeds this number of pages, TCP "
15278 "moderates its memory consumption.  This memory pressure state is exited once "
15279 "the number of pages allocated falls below the I<low> mark."
15280 msgstr ""
15281
15282 #. type: TP
15283 #: build/C/man7/tcp.7:552
15284 #, no-wrap
15285 msgid "I<high>"
15286 msgstr ""
15287
15288 #. type: Plain text
15289 #: build/C/man7/tcp.7:556
15290 msgid ""
15291 "The maximum number of pages, globally, that TCP will allocate.  This value "
15292 "overrides any other limits imposed by the kernel."
15293 msgstr ""
15294
15295 #. type: TP
15296 #: build/C/man7/tcp.7:557
15297 #, no-wrap
15298 msgid "I<tcp_mtu_probing> (integer; default: 0; since Linux 2.6.17)"
15299 msgstr ""
15300
15301 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
15302 #. type: Plain text
15303 #: build/C/man7/tcp.7:562
15304 msgid ""
15305 "This parameter controls TCP Packetization-Layer Path MTU Discovery.  The "
15306 "following values may be assigned to the file:"
15307 msgstr ""
15308
15309 #. type: Plain text
15310 #: build/C/man7/tcp.7:565
15311 msgid "Disabled"
15312 msgstr ""
15313
15314 #. type: Plain text
15315 #: build/C/man7/tcp.7:567
15316 msgid "Disabled by default, enabled when an ICMP black hole detected"
15317 msgstr ""
15318
15319 #. type: Plain text
15320 #: build/C/man7/tcp.7:570
15321 msgid "Always enabled, use initial MSS of I<tcp_base_mss>."
15322 msgstr ""
15323
15324 #. type: TP
15325 #: build/C/man7/tcp.7:571
15326 #, no-wrap
15327 msgid "I<tcp_no_metrics_save> (Boolean; default: disabled; since Linux 2.6.6)"
15328 msgstr ""
15329
15330 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
15331 #. type: Plain text
15332 #: build/C/man7/tcp.7:582
15333 msgid ""
15334 "By default, TCP saves various connection metrics in the route cache when the "
15335 "connection closes, so that connections established in the near future can "
15336 "use these to set initial conditions.  Usually, this increases overall "
15337 "performance, but it may sometimes cause performance degradation.  If "
15338 "I<tcp_no_metrics_save> is enabled, TCP will not cache metrics on closing "
15339 "connections."
15340 msgstr ""
15341
15342 #. type: TP
15343 #: build/C/man7/tcp.7:582
15344 #, no-wrap
15345 msgid "I<tcp_orphan_retries> (integer; default: 8; since Linux 2.4)"
15346 msgstr ""
15347
15348 #.  Since 2.3.41
15349 #. type: Plain text
15350 #: build/C/man7/tcp.7:587
15351 msgid ""
15352 "The maximum number of attempts made to probe the other end of a connection "
15353 "which has been closed by our end."
15354 msgstr ""
15355
15356 #. type: TP
15357 #: build/C/man7/tcp.7:587
15358 #, no-wrap
15359 msgid "I<tcp_reordering> (integer; default: 3; since Linux 2.4)"
15360 msgstr ""
15361
15362 #.  Since 2.4.0-test7
15363 #. type: Plain text
15364 #: build/C/man7/tcp.7:596
15365 msgid ""
15366 "The maximum a packet can be reordered in a TCP packet stream without TCP "
15367 "assuming packet loss and going into slow start.  It is not advisable to "
15368 "change this number.  This is a packet reordering detection metric designed "
15369 "to minimize unnecessary back off and retransmits provoked by reordering of "
15370 "packets on a connection."
15371 msgstr ""
15372
15373 #. type: TP
15374 #: build/C/man7/tcp.7:596
15375 #, no-wrap
15376 msgid "I<tcp_retrans_collapse> (Boolean; default: enabled; since Linux 2.2)"
15377 msgstr ""
15378
15379 #.  Since 2.1.96
15380 #. type: Plain text
15381 #: build/C/man7/tcp.7:600
15382 msgid "Try to send full-sized packets during retransmit."
15383 msgstr ""
15384
15385 #. type: TP
15386 #: build/C/man7/tcp.7:600
15387 #, no-wrap
15388 msgid "I<tcp_retries1> (integer; default: 3; since Linux 2.2)"
15389 msgstr ""
15390
15391 #.  Since 2.1.43
15392 #. type: Plain text
15393 #: build/C/man7/tcp.7:610
15394 msgid ""
15395 "The number of times TCP will attempt to retransmit a packet on an "
15396 "established connection normally, without the extra effort of getting the "
15397 "network layers involved.  Once we exceed this number of retransmits, we "
15398 "first have the network layer update the route if possible before each new "
15399 "retransmit.  The default is the RFC specified minimum of 3."
15400 msgstr ""
15401
15402 #. type: TP
15403 #: build/C/man7/tcp.7:610
15404 #, no-wrap
15405 msgid "I<tcp_retries2> (integer; default: 15; since Linux 2.2)"
15406 msgstr ""
15407
15408 #.  Since 2.1.43
15409 #. type: Plain text
15410 #: build/C/man7/tcp.7:620
15411 msgid ""
15412 "The maximum number of times a TCP packet is retransmitted in established "
15413 "state before giving up.  The default value is 15, which corresponds to a "
15414 "duration of approximately between 13 to 30 minutes, depending on the "
15415 "retransmission timeout.  The RFC\\ 1122 specified minimum limit of 100 "
15416 "seconds is typically deemed too short."
15417 msgstr ""
15418
15419 #. type: TP
15420 #: build/C/man7/tcp.7:620
15421 #, no-wrap
15422 msgid "I<tcp_rfc1337> (Boolean; default: disabled; since Linux 2.2)"
15423 msgstr ""
15424
15425 #.  Since 2.1.90
15426 #. type: Plain text
15427 #: build/C/man7/tcp.7:628
15428 msgid ""
15429 "Enable TCP behavior conformant with RFC\\ 1337.  When disabled, if a RST is "
15430 "received in TIME_WAIT state, we close the socket immediately without waiting "
15431 "for the end of the TIME_WAIT period."
15432 msgstr ""
15433
15434 #. type: TP
15435 #: build/C/man7/tcp.7:628
15436 #, no-wrap
15437 msgid "I<tcp_rmem> (since Linux 2.4)"
15438 msgstr ""
15439
15440 #.  Since 2.4.0-test7
15441 #. type: Plain text
15442 #: build/C/man7/tcp.7:636
15443 msgid ""
15444 "This is a vector of 3 integers: [min, default, max].  These parameters are "
15445 "used by TCP to regulate receive buffer sizes.  TCP dynamically adjusts the "
15446 "size of the receive buffer from the defaults listed below, in the range of "
15447 "these values, depending on memory available in the system."
15448 msgstr ""
15449
15450 #. type: TP
15451 #: build/C/man7/tcp.7:637 build/C/man7/tcp.7:813 build/C/man7/udp.7:145
15452 #, no-wrap
15453 msgid "I<min>"
15454 msgstr ""
15455
15456 #. type: Plain text
15457 #: build/C/man7/tcp.7:652
15458 msgid ""
15459 "minimum size of the receive buffer used by each TCP socket.  The default "
15460 "value is the system page size.  (On Linux 2.4, the default value is 4K, "
15461 "lowered to B<PAGE_SIZE> bytes in low-memory systems.)  This value is used to "
15462 "ensure that in memory pressure mode, allocations below this size will still "
15463 "succeed.  This is not used to bound the size of the receive buffer declared "
15464 "using B<SO_RCVBUF> on a socket."
15465 msgstr ""
15466
15467 #. type: TP
15468 #: build/C/man7/tcp.7:652 build/C/man7/tcp.7:823
15469 #, no-wrap
15470 msgid "I<default>"
15471 msgstr ""
15472
15473 #. type: Plain text
15474 #: build/C/man7/tcp.7:666
15475 msgid ""
15476 "the default size of the receive buffer for a TCP socket.  This value "
15477 "overwrites the initial default buffer size from the generic global "
15478 "I<net.core.rmem_default> defined for all protocols.  The default value is "
15479 "87380 bytes.  (On Linux 2.4, this will be lowered to 43689 in low-memory "
15480 "systems.)  If larger receive buffer sizes are desired, this value should be "
15481 "increased (to affect all sockets).  To employ large TCP windows, the "
15482 "I<net.ipv4.tcp_window_scaling> must be enabled (default)."
15483 msgstr ""
15484
15485 #. type: TP
15486 #: build/C/man7/tcp.7:666 build/C/man7/tcp.7:837 build/C/man7/udp.7:157
15487 #, no-wrap
15488 msgid "I<max>"
15489 msgstr ""
15490
15491 #. type: Plain text
15492 #: build/C/man7/tcp.7:675
15493 msgid ""
15494 "the maximum size of the receive buffer used by each TCP socket.  This value "
15495 "does not override the global I<net.core.rmem_max>.  This is not used to "
15496 "limit the size of the receive buffer declared using B<SO_RCVBUF> on a "
15497 "socket.  The default value is calculated using the formula"
15498 msgstr ""
15499
15500 #. type: Plain text
15501 #: build/C/man7/tcp.7:677
15502 #, no-wrap
15503 msgid "    max(87380, min(4MB, I<tcp_mem>[1]*PAGE_SIZE/128))\n"
15504 msgstr ""
15505
15506 #. type: Plain text
15507 #: build/C/man7/tcp.7:680
15508 msgid ""
15509 "(On Linux 2.4, the default is 87380*2 bytes, lowered to 87380 in low-memory "
15510 "systems)."
15511 msgstr ""
15512
15513 #. type: TP
15514 #: build/C/man7/tcp.7:681
15515 #, no-wrap
15516 msgid "I<tcp_sack> (Boolean; default: enabled; since Linux 2.2)"
15517 msgstr ""
15518
15519 #.  Since 2.1.36
15520 #. type: Plain text
15521 #: build/C/man7/tcp.7:685
15522 msgid "Enable RFC\\ 2018 TCP Selective Acknowledgements."
15523 msgstr ""
15524
15525 #. type: TP
15526 #: build/C/man7/tcp.7:685
15527 #, no-wrap
15528 msgid "I<tcp_slow_start_after_idle> (Boolean; default: enabled; since Linux 2.6.18)"
15529 msgstr ""
15530
15531 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
15532 #. type: Plain text
15533 #: build/C/man7/tcp.7:693
15534 msgid ""
15535 "If enabled, provide RFC 2861 behavior and time out the congestion window "
15536 "after an idle period.  An idle period is defined as the current RTO "
15537 "(retransmission timeout).  If disabled, the congestion window will not be "
15538 "timed out after an idle period."
15539 msgstr ""
15540
15541 #. type: TP
15542 #: build/C/man7/tcp.7:693
15543 #, no-wrap
15544 msgid "I<tcp_stdurg> (Boolean; default: disabled; since Linux 2.2)"
15545 msgstr ""
15546
15547 #.  Since 2.1.44
15548 #.  RFC 793 was ambiguous in its specification of the meaning of the
15549 #.  urgent pointer.  RFC 1122 (and RFC 961) fixed on a particular
15550 #.  resolution of this ambiguity (unfortunately the "wrong" one).
15551 #. type: Plain text
15552 #: build/C/man7/tcp.7:707
15553 msgid ""
15554 "If this option is enabled, then use the RFC\\ 1122 interpretation of the TCP "
15555 "urgent-pointer field.  According to this interpretation, the urgent pointer "
15556 "points to the last byte of urgent data.  If this option is disabled, then "
15557 "use the BSD-compatible interpretation of the urgent pointer: the urgent "
15558 "pointer points to the first byte after the urgent data.  Enabling this "
15559 "option may lead to interoperability problems."
15560 msgstr ""
15561
15562 #. type: TP
15563 #: build/C/man7/tcp.7:707
15564 #, no-wrap
15565 msgid "I<tcp_syn_retries> (integer; default: 5; since Linux 2.2)"
15566 msgstr ""
15567
15568 #.  Since 2.1.38
15569 #. type: Plain text
15570 #: build/C/man7/tcp.7:714
15571 msgid ""
15572 "The maximum number of times initial SYNs for an active TCP connection "
15573 "attempt will be retransmitted.  This value should not be higher than 255.  "
15574 "The default value is 5, which corresponds to approximately 180 seconds."
15575 msgstr ""
15576
15577 #. type: TP
15578 #: build/C/man7/tcp.7:714
15579 #, no-wrap
15580 msgid "I<tcp_synack_retries> (integer; default: 5; since Linux 2.2)"
15581 msgstr ""
15582
15583 #.  Since 2.1.38
15584 #. type: Plain text
15585 #: build/C/man7/tcp.7:720
15586 msgid ""
15587 "The maximum number of times a SYN/ACK segment for a passive TCP connection "
15588 "will be retransmitted.  This number should not be higher than 255."
15589 msgstr ""
15590
15591 #. type: TP
15592 #: build/C/man7/tcp.7:720
15593 #, no-wrap
15594 msgid "I<tcp_syncookies> (Boolean; since Linux 2.2)"
15595 msgstr ""
15596
15597 #.  Since 2.1.43
15598 #. type: Plain text
15599 #: build/C/man7/tcp.7:740
15600 msgid ""
15601 "Enable TCP syncookies.  The kernel must be compiled with "
15602 "B<CONFIG_SYN_COOKIES>.  Send out syncookies when the syn backlog queue of a "
15603 "socket overflows.  The syncookies feature attempts to protect a socket from "
15604 "a SYN flood attack.  This should be used as a last resort, if at all.  This "
15605 "is a violation of the TCP protocol, and conflicts with other areas of TCP "
15606 "such as TCP extensions.  It can cause problems for clients and relays.  It "
15607 "is not recommended as a tuning mechanism for heavily loaded servers to help "
15608 "with overloaded or misconfigured conditions.  For recommended alternatives "
15609 "see I<tcp_max_syn_backlog>, I<tcp_synack_retries>, and "
15610 "I<tcp_abort_on_overflow>."
15611 msgstr ""
15612
15613 #. type: TP
15614 #: build/C/man7/tcp.7:740
15615 #, no-wrap
15616 msgid "I<tcp_timestamps> (Boolean; default: enabled; since Linux 2.2)"
15617 msgstr ""
15618
15619 #.  Since 2.1.36
15620 #. type: Plain text
15621 #: build/C/man7/tcp.7:744
15622 msgid "Enable RFC\\ 1323 TCP timestamps."
15623 msgstr ""
15624
15625 #. type: TP
15626 #: build/C/man7/tcp.7:744
15627 #, no-wrap
15628 msgid "I<tcp_tso_win_divisor> (integer; default: 3; since Linux 2.6.9)"
15629 msgstr ""
15630
15631 #. type: Plain text
15632 #: build/C/man7/tcp.7:750
15633 msgid ""
15634 "This parameter controls what percentage of the congestion window can be "
15635 "consumed by a single TCP Segmentation Offload (TSO) frame.  The setting of "
15636 "this parameter is a tradeoff between burstiness and building larger TSO "
15637 "frames."
15638 msgstr ""
15639
15640 #. type: TP
15641 #: build/C/man7/tcp.7:750
15642 #, no-wrap
15643 msgid "I<tcp_tw_recycle> (Boolean; default: disabled; since Linux 2.4)"
15644 msgstr ""
15645
15646 #.  Since 2.3.15
15647 #
15648 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15649 #. type: Plain text
15650 #: build/C/man7/tcp.7:759
15651 msgid ""
15652 "Enable fast recycling of TIME_WAIT sockets.  Enabling this option is not "
15653 "recommended since this causes problems when working with NAT (Network "
15654 "Address Translation)."
15655 msgstr ""
15656
15657 #. type: TP
15658 #: build/C/man7/tcp.7:759
15659 #, no-wrap
15660 msgid "I<tcp_tw_reuse> (Boolean; default: disabled; since Linux 2.4.19/2.6)"
15661 msgstr ""
15662
15663 #.  Since 2.4.19/2.5.43
15664 #
15665 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15666 #. type: Plain text
15667 #: build/C/man7/tcp.7:767
15668 msgid ""
15669 "Allow to reuse TIME_WAIT sockets for new connections when it is safe from "
15670 "protocol viewpoint.  It should not be changed without advice/request of "
15671 "technical experts."
15672 msgstr ""
15673
15674 #. type: TP
15675 #: build/C/man7/tcp.7:767
15676 #, no-wrap
15677 msgid "I<tcp_vegas_cong_avoid> (Boolean; default: disabled; Linux 2.2 to 2.6.13)"
15678 msgstr ""
15679
15680 #.  Since 2.1.8; removed in 2.6.13
15681 #
15682 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15683 #. type: Plain text
15684 #: build/C/man7/tcp.7:778
15685 msgid ""
15686 "Enable TCP Vegas congestion avoidance algorithm.  TCP Vegas is a sender-side "
15687 "only change to TCP that anticipates the onset of congestion by estimating "
15688 "the bandwidth.  TCP Vegas adjusts the sending rate by modifying the "
15689 "congestion window.  TCP Vegas should provide less packet loss, but it is not "
15690 "as aggressive as TCP Reno."
15691 msgstr ""
15692
15693 #. type: TP
15694 #: build/C/man7/tcp.7:778
15695 #, no-wrap
15696 msgid "I<tcp_westwood> (Boolean; default: disabled; Linux 2.4.26/2.6.3 to 2.6.13)"
15697 msgstr ""
15698
15699 #. type: Plain text
15700 #: build/C/man7/tcp.7:790
15701 msgid ""
15702 "Enable TCP Westwood+ congestion control algorithm.  TCP Westwood+ is a "
15703 "sender-side only modification of the TCP Reno protocol stack that optimizes "
15704 "the performance of TCP congestion control.  It is based on end-to-end "
15705 "bandwidth estimation to set congestion window and slow start threshold after "
15706 "a congestion episode.  Using this estimation, TCP Westwood+ adaptively sets "
15707 "a slow start threshold and a congestion window which takes into account the "
15708 "bandwidth used at the time congestion is experienced.  TCP Westwood+ "
15709 "significantly increases fairness with respect to TCP Reno in wired networks "
15710 "and throughput over wireless links."
15711 msgstr ""
15712
15713 #. type: TP
15714 #: build/C/man7/tcp.7:790
15715 #, no-wrap
15716 msgid "I<tcp_window_scaling> (Boolean; default: enabled; since Linux 2.2)"
15717 msgstr ""
15718
15719 #.  Since 2.1.36
15720 #. type: Plain text
15721 #: build/C/man7/tcp.7:804
15722 msgid ""
15723 "Enable RFC\\ 1323 TCP window scaling.  This feature allows the use of a "
15724 "large window (E<gt> 64K) on a TCP connection, should the other end support "
15725 "it.  Normally, the 16 bit window length field in the TCP header limits the "
15726 "window size to less than 64K bytes.  If larger windows are desired, "
15727 "applications can increase the size of their socket buffers and the window "
15728 "scaling option will be employed.  If I<tcp_window_scaling> is disabled, TCP "
15729 "will not negotiate the use of window scaling with the other end during "
15730 "connection setup."
15731 msgstr ""
15732
15733 #. type: TP
15734 #: build/C/man7/tcp.7:804
15735 #, no-wrap
15736 msgid "I<tcp_wmem> (since Linux 2.4)"
15737 msgstr ""
15738
15739 #.  Since 2.4.0-test7
15740 #. type: Plain text
15741 #: build/C/man7/tcp.7:812
15742 msgid ""
15743 "This is a vector of 3 integers: [min, default, max].  These parameters are "
15744 "used by TCP to regulate send buffer sizes.  TCP dynamically adjusts the size "
15745 "of the send buffer from the default values listed below, in the range of "
15746 "these values, depending on memory available."
15747 msgstr ""
15748
15749 #. type: Plain text
15750 #: build/C/man7/tcp.7:823
15751 msgid ""
15752 "Minimum size of the send buffer used by each TCP socket.  The default value "
15753 "is the system page size.  (On Linux 2.4, the default value is 4K bytes.)  "
15754 "This value is used to ensure that in memory pressure mode, allocations below "
15755 "this size will still succeed.  This is not used to bound the size of the "
15756 "send buffer declared using B<SO_SNDBUF> on a socket."
15757 msgstr ""
15758
15759 #.  True in Linux 2.4 and 2.6
15760 #. type: Plain text
15761 #: build/C/man7/tcp.7:837
15762 msgid ""
15763 "The default size of the send buffer for a TCP socket.  This value overwrites "
15764 "the initial default buffer size from the generic global "
15765 "I</proc/sys/net/core/wmem_default> defined for all protocols.  The default "
15766 "value is 16K bytes.  If larger send buffer sizes are desired, this value "
15767 "should be increased (to affect all sockets).  To employ large TCP windows, "
15768 "the I</proc/sys/net/ipv4/tcp_window_scaling> must be set to a nonzero value "
15769 "(default)."
15770 msgstr ""
15771
15772 #. type: Plain text
15773 #: build/C/man7/tcp.7:846
15774 msgid ""
15775 "The maximum size of the send buffer used by each TCP socket.  This value "
15776 "does not override the value in I</proc/sys/net/core/wmem_max>.  This is not "
15777 "used to limit the size of the send buffer declared using B<SO_SNDBUF> on a "
15778 "socket.  The default value is calculated using the formula"
15779 msgstr ""
15780
15781 #. type: Plain text
15782 #: build/C/man7/tcp.7:848
15783 #, no-wrap
15784 msgid "    max(65536, min(4MB, I<tcp_mem>[1]*PAGE_SIZE/128))\n"
15785 msgstr ""
15786
15787 #. type: Plain text
15788 #: build/C/man7/tcp.7:851
15789 msgid ""
15790 "(On Linux 2.4, the default value is 128K bytes, lowered 64K depending on "
15791 "low-memory systems.)"
15792 msgstr ""
15793
15794 #. type: TP
15795 #: build/C/man7/tcp.7:852
15796 #, no-wrap
15797 msgid ""
15798 "I<tcp_workaround_signed_windows> (Boolean; default: disabled; since Linux "
15799 "2.6.26)"
15800 msgstr ""
15801
15802 #. type: Plain text
15803 #: build/C/man7/tcp.7:858
15804 msgid ""
15805 "If enabled, assume that no receipt of a window-scaling option means that the "
15806 "remote TCP is broken and treats the window as a signed quantity.  If "
15807 "disabled, assume that the remote TCP is not broken even if we do not receive "
15808 "a window scaling option from it."
15809 msgstr ""
15810
15811 #.  or SOL_TCP on Linux
15812 #. type: Plain text
15813 #: build/C/man7/tcp.7:876
15814 msgid ""
15815 "To set or get a TCP socket option, call B<getsockopt>(2)  to read or "
15816 "B<setsockopt>(2)  to write the option with the option level argument set to "
15817 "B<IPPROTO_TCP>.  Unless otherwise noted, I<optval> is a pointer to an "
15818 "I<int>.  In addition, most B<IPPROTO_IP> socket options are valid on TCP "
15819 "sockets.  For more information see B<ip>(7)."
15820 msgstr ""
15821
15822 #. type: TP
15823 #: build/C/man7/tcp.7:876
15824 #, no-wrap
15825 msgid "B<TCP_CORK> (since Linux 2.2)"
15826 msgstr ""
15827
15828 #.  precisely: since 2.1.127
15829 #. type: Plain text
15830 #: build/C/man7/tcp.7:892
15831 msgid ""
15832 "If set, don't send out partial frames.  All queued partial frames are sent "
15833 "when the option is cleared again.  This is useful for prepending headers "
15834 "before calling B<sendfile>(2), or for throughput optimization.  As currently "
15835 "implemented, there is a 200 millisecond ceiling on the time for which output "
15836 "is corked by B<TCP_CORK>.  If this ceiling is reached, then queued data is "
15837 "automatically transmitted.  This option can be combined with B<TCP_NODELAY> "
15838 "only since Linux 2.5.71.  This option should not be used in code intended to "
15839 "be portable."
15840 msgstr ""
15841
15842 #. type: TP
15843 #: build/C/man7/tcp.7:892
15844 #, no-wrap
15845 msgid "B<TCP_DEFER_ACCEPT> (since Linux 2.4)"
15846 msgstr ""
15847
15848 #.  Precisely: since 2.3.38
15849 #. type: Plain text
15850 #: build/C/man7/tcp.7:900
15851 msgid ""
15852 "Allow a listener to be awakened only when data arrives on the socket.  Takes "
15853 "an integer value (seconds), this can bound the maximum number of attempts "
15854 "TCP will make to complete the connection.  This option should not be used in "
15855 "code intended to be portable."
15856 msgstr ""
15857
15858 #. type: TP
15859 #: build/C/man7/tcp.7:900
15860 #, no-wrap
15861 msgid "B<TCP_INFO> (since Linux 2.4)"
15862 msgstr ""
15863
15864 #. type: Plain text
15865 #: build/C/man7/tcp.7:906
15866 msgid ""
15867 "Used to collect information about this socket.  The kernel returns a "
15868 "I<struct tcp_info> as defined in the file I</usr/include/linux/tcp.h>.  This "
15869 "option should not be used in code intended to be portable."
15870 msgstr ""
15871
15872 #. type: TP
15873 #: build/C/man7/tcp.7:906
15874 #, no-wrap
15875 msgid "B<TCP_KEEPCNT> (since Linux 2.4)"
15876 msgstr ""
15877
15878 #.  Precisely: since 2.3.18
15879 #. type: Plain text
15880 #: build/C/man7/tcp.7:913
15881 msgid ""
15882 "The maximum number of keepalive probes TCP should send before dropping the "
15883 "connection.  This option should not be used in code intended to be portable."
15884 msgstr ""
15885
15886 #. type: TP
15887 #: build/C/man7/tcp.7:913
15888 #, no-wrap
15889 msgid "B<TCP_KEEPIDLE> (since Linux 2.4)"
15890 msgstr ""
15891
15892 #.  Precisely: since 2.3.18
15893 #. type: Plain text
15894 #: build/C/man7/tcp.7:922
15895 msgid ""
15896 "The time (in seconds) the connection needs to remain idle before TCP starts "
15897 "sending keepalive probes, if the socket option B<SO_KEEPALIVE> has been set "
15898 "on this socket.  This option should not be used in code intended to be "
15899 "portable."
15900 msgstr ""
15901
15902 #. type: TP
15903 #: build/C/man7/tcp.7:922
15904 #, no-wrap
15905 msgid "B<TCP_KEEPINTVL> (since Linux 2.4)"
15906 msgstr ""
15907
15908 #.  Precisely: since 2.3.18
15909 #. type: Plain text
15910 #: build/C/man7/tcp.7:927
15911 msgid ""
15912 "The time (in seconds) between individual keepalive probes.  This option "
15913 "should not be used in code intended to be portable."
15914 msgstr ""
15915
15916 #. type: TP
15917 #: build/C/man7/tcp.7:927
15918 #, no-wrap
15919 msgid "B<TCP_LINGER2> (since Linux 2.4)"
15920 msgstr ""
15921
15922 #.  Precisely: since 2.3.41
15923 #. type: Plain text
15924 #: build/C/man7/tcp.7:939
15925 msgid ""
15926 "The lifetime of orphaned FIN_WAIT2 state sockets.  This option can be used "
15927 "to override the system-wide setting in the file "
15928 "I</proc/sys/net/ipv4/tcp_fin_timeout> for this socket.  This is not to be "
15929 "confused with the B<socket>(7)  level option B<SO_LINGER>.  This option "
15930 "should not be used in code intended to be portable."
15931 msgstr ""
15932
15933 #. type: TP
15934 #: build/C/man7/tcp.7:939
15935 #, no-wrap
15936 msgid "B<TCP_MAXSEG>"
15937 msgstr ""
15938
15939 #.  Present in Linux 1.0
15940 #. type: Plain text
15941 #: build/C/man7/tcp.7:949
15942 msgid ""
15943 "The maximum segment size for outgoing TCP packets.  In Linux 2.2 and "
15944 "earlier, and in Linux 2.6.28 and later, if this option is set before "
15945 "connection establishment, it also changes the MSS value announced to the "
15946 "other end in the initial packet.  Values greater than the (eventual) "
15947 "interface MTU have no effect.  TCP will also impose its minimum and maximum "
15948 "bounds over the value provided."
15949 msgstr ""
15950
15951 #. type: TP
15952 #: build/C/man7/tcp.7:949
15953 #, no-wrap
15954 msgid "B<TCP_NODELAY>"
15955 msgstr ""
15956
15957 #.  Present in Linux 1.0
15958 #. type: Plain text
15959 #: build/C/man7/tcp.7:966
15960 msgid ""
15961 "If set, disable the Nagle algorithm.  This means that segments are always "
15962 "sent as soon as possible, even if there is only a small amount of data.  "
15963 "When not set, data is buffered until there is a sufficient amount to send "
15964 "out, thereby avoiding the frequent sending of small packets, which results "
15965 "in poor utilization of the network.  This option is overridden by "
15966 "B<TCP_CORK>; however, setting this option forces an explicit flush of "
15967 "pending output, even if B<TCP_CORK> is currently set."
15968 msgstr ""
15969
15970 #. type: TP
15971 #: build/C/man7/tcp.7:966
15972 #, no-wrap
15973 msgid "B<TCP_QUICKACK> (since Linux 2.4.4)"
15974 msgstr ""
15975
15976 #. type: Plain text
15977 #: build/C/man7/tcp.7:981
15978 msgid ""
15979 "Enable quickack mode if set or disable quickack mode if cleared.  In "
15980 "quickack mode, acks are sent immediately, rather than delayed if needed in "
15981 "accordance to normal TCP operation.  This flag is not permanent, it only "
15982 "enables a switch to or from quickack mode.  Subsequent operation of the TCP "
15983 "protocol will once again enter/leave quickack mode depending on internal "
15984 "protocol processing and factors such as delayed ack timeouts occurring and "
15985 "data transfer.  This option should not be used in code intended to be "
15986 "portable."
15987 msgstr ""
15988
15989 #. type: TP
15990 #: build/C/man7/tcp.7:981
15991 #, no-wrap
15992 msgid "B<TCP_SYNCNT> (since Linux 2.4)"
15993 msgstr ""
15994
15995 #.  Precisely: since 2.3.18
15996 #. type: Plain text
15997 #: build/C/man7/tcp.7:988
15998 msgid ""
15999 "Set the number of SYN retransmits that TCP should send before aborting the "
16000 "attempt to connect.  It cannot exceed 255.  This option should not be used "
16001 "in code intended to be portable."
16002 msgstr ""
16003
16004 #. type: TP
16005 #: build/C/man7/tcp.7:988
16006 #, no-wrap
16007 msgid "B<TCP_WINDOW_CLAMP> (since Linux 2.4)"
16008 msgstr ""
16009
16010 #.  Precisely: since 2.3.41
16011 #. type: Plain text
16012 #: build/C/man7/tcp.7:995
16013 msgid ""
16014 "Bound the size of the advertised window to this value.  The kernel imposes a "
16015 "minimum size of SOCK_MIN_RCVBUF/2.  This option should not be used in code "
16016 "intended to be portable."
16017 msgstr ""
16018
16019 #. type: SS
16020 #: build/C/man7/tcp.7:995 build/C/man7/unix.7:175
16021 #, no-wrap
16022 msgid "Sockets API"
16023 msgstr ""
16024
16025 #. type: Plain text
16026 #: build/C/man7/tcp.7:1004
16027 msgid ""
16028 "TCP provides limited support for out-of-band data, in the form of (a single "
16029 "byte of) urgent data.  In Linux this means if the other end sends newer "
16030 "out-of-band data the older urgent data is inserted as normal data into the "
16031 "stream (even when B<SO_OOBINLINE> is not set).  This differs from BSD-based "
16032 "stacks."
16033 msgstr ""
16034
16035 #. type: Plain text
16036 #: build/C/man7/tcp.7:1011
16037 msgid ""
16038 "Linux uses the BSD compatible interpretation of the urgent pointer field by "
16039 "default.  This violates RFC\\ 1122, but is required for interoperability "
16040 "with other stacks.  It can be changed via I</proc/sys/net/ipv4/tcp_stdurg>."
16041 msgstr ""
16042
16043 #. type: Plain text
16044 #: build/C/man7/tcp.7:1016
16045 msgid ""
16046 "It is possible to peek at out-of-band data using the I<recv>(2)  B<MSG_PEEK> "
16047 "flag."
16048 msgstr ""
16049
16050 #. type: Plain text
16051 #: build/C/man7/tcp.7:1032
16052 msgid ""
16053 "Since version 2.4, Linux supports the use of B<MSG_TRUNC> in the I<flags> "
16054 "argument of B<recv>(2)  (and B<recvmsg>(2)).  This flag causes the received "
16055 "bytes of data to be discarded, rather than passed back in a caller-supplied "
16056 "buffer.  Since Linux 2.4.4, B<MSG_PEEK> also has this effect when used in "
16057 "conjunction with B<MSG_OOB> to receive out-of-band data."
16058 msgstr ""
16059
16060 #. type: Plain text
16061 #: build/C/man7/tcp.7:1038 build/C/man7/unix.7:288
16062 msgid ""
16063 "The following B<ioctl>(2)  calls return information in I<value>.  The "
16064 "correct syntax is:"
16065 msgstr ""
16066
16067 #. type: Plain text
16068 #: build/C/man7/tcp.7:1043
16069 #, no-wrap
16070 msgid ""
16071 "B<int>I< value>B<;>\n"
16072 "I<error>B< = ioctl(>I<tcp_socket>B<, >I<ioctl_type>B<, &>I<value>B<);>\n"
16073 msgstr ""
16074
16075 #. type: Plain text
16076 #: build/C/man7/tcp.7:1048
16077 msgid "I<ioctl_type> is one of the following:"
16078 msgstr ""
16079
16080 #. type: TP
16081 #: build/C/man7/tcp.7:1048 build/C/man7/unix.7:298
16082 #, no-wrap
16083 msgid "B<SIOCINQ>"
16084 msgstr ""
16085
16086 #.  FIXME http://sources.redhat.com/bugzilla/show_bug.cgi?id=12002,
16087 #.  filed 2010-09-10, may cause SIOCINQ to be defined in glibc headers
16088 #.  SIOCOUTQ also has an effect for UNIX domain sockets, but not
16089 #.  quite what userland might expect. It seems to return the number
16090 #.  of bytes allocated for buffers containing pending output.
16091 #.  That number is normally larger than the number of bytes of pending
16092 #.  output. Since this info is, from userland's point of view, imprecise,
16093 #.  and it may well change, probably best not to document this now.
16094 #. type: Plain text
16095 #: build/C/man7/tcp.7:1064 build/C/man7/unix.7:320
16096 msgid ""
16097 "Returns the amount of queued unread data in the receive buffer.  The socket "
16098 "must not be in LISTEN state, otherwise an error (B<EINVAL>)  is returned.  "
16099 "B<SIOCINQ> is defined in I<E<lt>linux/sockios.hE<gt>>.  Alternatively, you "
16100 "can use the synonymous B<FIONREAD>, defined in I<E<lt>sys/ioctl.hE<gt>>."
16101 msgstr ""
16102
16103 #. type: TP
16104 #: build/C/man7/tcp.7:1064
16105 #, no-wrap
16106 msgid "B<SIOCATMARK>"
16107 msgstr ""
16108
16109 #. type: Plain text
16110 #: build/C/man7/tcp.7:1069
16111 msgid ""
16112 "Returns true (i.e., I<value> is nonzero) if the inbound data stream is at "
16113 "the urgent mark."
16114 msgstr ""
16115
16116 #. type: Plain text
16117 #: build/C/man7/tcp.7:1085
16118 msgid ""
16119 "If the B<SO_OOBINLINE> socket option is set, and B<SIOCATMARK> returns true, "
16120 "then the next read from the socket will return the urgent data.  If the "
16121 "B<SO_OOBINLINE> socket option is not set, and B<SIOCATMARK> returns true, "
16122 "then the next read from the socket will return the bytes following the "
16123 "urgent data (to actually read the urgent data requires the B<recv(MSG_OOB)> "
16124 "flag)."
16125 msgstr ""
16126
16127 #. type: Plain text
16128 #: build/C/man7/tcp.7:1099
16129 msgid ""
16130 "Note that a read never reads across the urgent mark.  If an application is "
16131 "informed of the presence of urgent data via B<select>(2)  (using the "
16132 "I<exceptfds> argument) or through delivery of a B<SIGURG> signal, then it "
16133 "can advance up to the mark using a loop which repeatedly tests B<SIOCATMARK> "
16134 "and performs a read (requesting any number of bytes) as long as "
16135 "B<SIOCATMARK> returns false."
16136 msgstr ""
16137
16138 #. type: TP
16139 #: build/C/man7/tcp.7:1099
16140 #, no-wrap
16141 msgid "B<SIOCOUTQ>"
16142 msgstr ""
16143
16144 #.  FIXME http://sources.redhat.com/bugzilla/show_bug.cgi?id=12002,
16145 #.  filed 2010-09-10, may cause SIOCOUTQ to be defined in glibc headers
16146 #. type: Plain text
16147 #: build/C/man7/tcp.7:1115
16148 msgid ""
16149 "Returns the amount of unsent data in the socket send queue.  The socket must "
16150 "not be in LISTEN state, otherwise an error (B<EINVAL>)  is returned.  "
16151 "B<SIOCOUTQ> is defined in I<E<lt>linux/sockios.hE<gt>>.  Alternatively, you "
16152 "can use the synonymous B<TIOCOUTQ>, defined in I<E<lt>sys/ioctl.hE<gt>>."
16153 msgstr ""
16154
16155 #. type: Plain text
16156 #: build/C/man7/tcp.7:1120
16157 msgid ""
16158 "When a network error occurs, TCP tries to resend the packet.  If it doesn't "
16159 "succeed after some time, either B<ETIMEDOUT> or the last received error on "
16160 "this connection is reported."
16161 msgstr ""
16162
16163 #. type: Plain text
16164 #: build/C/man7/tcp.7:1131
16165 msgid ""
16166 "Some applications require a quicker error notification.  This can be enabled "
16167 "with the B<IPPROTO_IP> level B<IP_RECVERR> socket option.  When this option "
16168 "is enabled, all incoming errors are immediately passed to the user program.  "
16169 "Use this option with care \\(em it makes TCP less tolerant to routing "
16170 "changes and other normal network conditions."
16171 msgstr ""
16172
16173 #. type: TP
16174 #: build/C/man7/tcp.7:1132
16175 #, no-wrap
16176 msgid "B<EAFNOTSUPPORT>"
16177 msgstr ""
16178
16179 #. type: Plain text
16180 #: build/C/man7/tcp.7:1138
16181 msgid "Passed socket address type in I<sin_family> was not B<AF_INET>."
16182 msgstr ""
16183
16184 #. type: Plain text
16185 #: build/C/man7/tcp.7:1142
16186 msgid ""
16187 "The other end closed the socket unexpectedly or a read is executed on a shut "
16188 "down socket."
16189 msgstr ""
16190
16191 #. type: TP
16192 #: build/C/man7/tcp.7:1142
16193 #, no-wrap
16194 msgid "B<ETIMEDOUT>"
16195 msgstr ""
16196
16197 #. type: Plain text
16198 #: build/C/man7/tcp.7:1145
16199 msgid "The other end didn't acknowledge retransmitted data after some time."
16200 msgstr ""
16201
16202 #. type: Plain text
16203 #: build/C/man7/tcp.7:1149
16204 msgid ""
16205 "Any errors defined for B<ip>(7)  or the generic socket layer may also be "
16206 "returned for TCP."
16207 msgstr ""
16208
16209 #. type: Plain text
16210 #: build/C/man7/tcp.7:1156
16211 msgid ""
16212 "Support for Explicit Congestion Notification, zero-copy B<sendfile>(2), "
16213 "reordering support and some SACK extensions (DSACK) were introduced in 2.4.  "
16214 "Support for forward acknowledgement (FACK), TIME_WAIT recycling, and "
16215 "per-connection keepalive socket options were introduced in 2.3."
16216 msgstr ""
16217
16218 #. type: Plain text
16219 #: build/C/man7/tcp.7:1158
16220 msgid "Not all errors are documented."
16221 msgstr ""
16222
16223 #.  Only a single Linux kernel version is described
16224 #.  Info for 2.2 was lost. Should be added again,
16225 #.  or put into a separate page.
16226 #.  .SH AUTHORS
16227 #.  This man page was originally written by Andi Kleen.
16228 #.  It was updated for 2.4 by Nivedita Singhvi with input from
16229 #.  Alexey Kuznetsov's Documentation/networking/ip-sysctl.txt
16230 #.  document.
16231 #. type: Plain text
16232 #: build/C/man7/tcp.7:1168
16233 msgid "IPv6 is not described."
16234 msgstr ""
16235
16236 #. type: Plain text
16237 #: build/C/man7/tcp.7:1180
16238 msgid ""
16239 "B<accept>(2), B<bind>(2), B<connect>(2), B<getsockopt>(2), B<listen>(2), "
16240 "B<recvmsg>(2), B<sendfile>(2), B<sendmsg>(2), B<socket>(2), B<ip>(7), "
16241 "B<socket>(7)"
16242 msgstr ""
16243
16244 #. type: Plain text
16245 #: build/C/man7/tcp.7:1182
16246 msgid "RFC\\ 793 for the TCP specification."
16247 msgstr ""
16248
16249 #. type: Plain text
16250 #: build/C/man7/tcp.7:1184
16251 msgid ""
16252 "RFC\\ 1122 for the TCP requirements and a description of the Nagle "
16253 "algorithm."
16254 msgstr ""
16255
16256 #. type: Plain text
16257 #: build/C/man7/tcp.7:1186
16258 msgid "RFC\\ 1323 for TCP timestamp and window scaling options."
16259 msgstr ""
16260
16261 #. type: Plain text
16262 #: build/C/man7/tcp.7:1188
16263 msgid "RFC\\ 1337 for a description of TIME_WAIT assassination hazards."
16264 msgstr ""
16265
16266 #. type: Plain text
16267 #: build/C/man7/tcp.7:1190
16268 msgid "RFC\\ 3168 for a description of Explicit Congestion Notification."
16269 msgstr ""
16270
16271 #. type: Plain text
16272 #: build/C/man7/tcp.7:1192
16273 msgid "RFC\\ 2581 for TCP congestion control algorithms."
16274 msgstr ""
16275
16276 #. type: Plain text
16277 #: build/C/man7/tcp.7:1194
16278 msgid "RFC\\ 2018 and RFC\\ 2883 for SACK and extensions to SACK."
16279 msgstr ""
16280
16281 #. type: TH
16282 #: build/C/man7/udp.7:12
16283 #, no-wrap
16284 msgid "UDP"
16285 msgstr ""
16286
16287 #. type: Plain text
16288 #: build/C/man7/udp.7:15
16289 msgid "udp - User Datagram Protocol for IPv4"
16290 msgstr ""
16291
16292 #. type: Plain text
16293 #: build/C/man7/udp.7:21
16294 msgid "B<#include E<lt>netinet/udp.hE<gt>>"
16295 msgstr ""
16296
16297 #. type: Plain text
16298 #: build/C/man7/udp.7:23
16299 msgid "B<udp_socket = socket(AF_INET, SOCK_DGRAM, 0);>"
16300 msgstr ""
16301
16302 #. type: Plain text
16303 #: build/C/man7/udp.7:29
16304 msgid ""
16305 "This is an implementation of the User Datagram Protocol described in RFC\\ "
16306 "768.  It implements a connectionless, unreliable datagram packet service.  "
16307 "Packets may be reordered or duplicated before they arrive.  UDP generates "
16308 "and checks checksums to catch transmission errors."
16309 msgstr ""
16310
16311 #. type: Plain text
16312 #: build/C/man7/udp.7:58
16313 msgid ""
16314 "When a UDP socket is created, its local and remote addresses are "
16315 "unspecified.  Datagrams can be sent immediately using B<sendto>(2)  or "
16316 "B<sendmsg>(2)  with a valid destination address as an argument.  When "
16317 "B<connect>(2)  is called on the socket, the default destination address is "
16318 "set and datagrams can now be sent using B<send>(2)  or B<write>(2)  without "
16319 "specifying a destination address.  It is still possible to send to other "
16320 "destinations by passing an address to B<sendto>(2)  or B<sendmsg>(2).  In "
16321 "order to receive packets, the socket can be bound to a local address first "
16322 "by using B<bind>(2).  Otherwise the socket layer will automatically assign a "
16323 "free local port out of the range defined by "
16324 "I</proc/sys/net/ipv4/ip_local_port_range> and bind the socket to "
16325 "B<INADDR_ANY>."
16326 msgstr ""
16327
16328 #. type: Plain text
16329 #: build/C/man7/udp.7:66
16330 msgid ""
16331 "All receive operations return only one packet.  When the packet is smaller "
16332 "than the passed buffer, only that much data is returned; when it is bigger, "
16333 "the packet is truncated and the B<MSG_TRUNC> flag is set.  B<MSG_WAITALL> is "
16334 "not supported."
16335 msgstr ""
16336
16337 #. type: Plain text
16338 #: build/C/man7/udp.7:75
16339 msgid ""
16340 "IP options may be sent or received using the socket options described in "
16341 "B<ip>(7).  They are processed by the kernel only when the appropriate "
16342 "I</proc> parameter is enabled (but still passed to the user even when it is "
16343 "turned off).  See B<ip>(7)."
16344 msgstr ""
16345
16346 #. type: Plain text
16347 #: build/C/man7/udp.7:80
16348 msgid ""
16349 "When the B<MSG_DONTROUTE> flag is set on sending, the destination address "
16350 "must refer to a local interface address and the packet is sent only to that "
16351 "interface."
16352 msgstr ""
16353
16354 #. type: Plain text
16355 #: build/C/man7/udp.7:98
16356 msgid ""
16357 "By default, Linux UDP does path MTU (Maximum Transmission Unit) discovery.  "
16358 "This means the kernel will keep track of the MTU to a specific target IP "
16359 "address and return B<EMSGSIZE> when a UDP packet write exceeds it.  When "
16360 "this happens, the application should decrease the packet size.  Path MTU "
16361 "discovery can be also turned off using the B<IP_MTU_DISCOVER> socket option "
16362 "or the I</proc/sys/net/ipv4/ip_no_pmtu_disc> file; see B<ip>(7)  for "
16363 "details.  When turned off, UDP will fragment outgoing UDP packets that "
16364 "exceed the interface MTU.  However, disabling it is not recommended for "
16365 "performance and reliability reasons."
16366 msgstr ""
16367
16368 #. type: Plain text
16369 #: build/C/man7/udp.7:103
16370 msgid "UDP uses the IPv4 I<sockaddr_in> address format described in B<ip>(7)."
16371 msgstr ""
16372
16373 #. type: Plain text
16374 #: build/C/man7/udp.7:114
16375 msgid ""
16376 "All fatal errors will be passed to the user as an error return even when the "
16377 "socket is not connected.  This includes asynchronous errors received from "
16378 "the network.  You may get an error for an earlier packet that was sent on "
16379 "the same socket.  This behavior differs from many other BSD socket "
16380 "implementations which don't pass any errors unless the socket is connected.  "
16381 "Linux's behavior is mandated by B<RFC\\ 1122>."
16382 msgstr ""
16383
16384 #. type: Plain text
16385 #: build/C/man7/udp.7:128
16386 msgid ""
16387 "For compatibility with legacy code, in Linux 2.0 and 2.2 it was possible to "
16388 "set the B<SO_BSDCOMPAT> B<SOL_SOCKET> option to receive remote errors only "
16389 "when the socket has been connected (except for B<EPROTO> and B<EMSGSIZE>).  "
16390 "Locally generated errors are always passed.  Support for this socket option "
16391 "was removed in later kernels; see B<socket>(7)  for further information."
16392 msgstr ""
16393
16394 #. type: Plain text
16395 #: build/C/man7/udp.7:137
16396 msgid ""
16397 "When the B<IP_RECVERR> option is enabled, all errors are stored in the "
16398 "socket error queue, and can be received by B<recvmsg>(2)  with the "
16399 "B<MSG_ERRQUEUE> flag set."
16400 msgstr ""
16401
16402 #. type: Plain text
16403 #: build/C/man7/udp.7:140
16404 msgid ""
16405 "System-wide UDP parameter settings can be accessed by files in the directory "
16406 "I</proc/sys/net/ipv4/>."
16407 msgstr ""
16408
16409 #. type: TP
16410 #: build/C/man7/udp.7:140
16411 #, no-wrap
16412 msgid "I<udp_mem> (since Linux 2.6.25)"
16413 msgstr ""
16414
16415 #. type: Plain text
16416 #: build/C/man7/udp.7:144
16417 msgid ""
16418 "This is a vector of three integers governing the number of pages allowed for "
16419 "queueing by all UDP sockets."
16420 msgstr ""
16421
16422 #. type: Plain text
16423 #: build/C/man7/udp.7:151
16424 msgid ""
16425 "Below this number of pages, UDP is not bothered about its memory appetite.  "
16426 "When the amount of memory allocated by UDP exceeds this number, UDP starts "
16427 "to moderate memory usage."
16428 msgstr ""
16429
16430 #. type: Plain text
16431 #: build/C/man7/udp.7:157
16432 msgid ""
16433 "This value was introduced to follow the format of I<tcp_mem> (see "
16434 "B<tcp>(7))."
16435 msgstr ""
16436
16437 #. type: Plain text
16438 #: build/C/man7/udp.7:160
16439 msgid "Number of pages allowed for queueing by all UDP sockets."
16440 msgstr ""
16441
16442 #. type: Plain text
16443 #: build/C/man7/udp.7:164
16444 msgid ""
16445 "Defaults values for these three items are calculated at boot time from the "
16446 "amount of available memory."
16447 msgstr ""
16448
16449 #. type: TP
16450 #: build/C/man7/udp.7:164
16451 #, no-wrap
16452 msgid "I<udp_rmem_min> (integer; default value: PAGE_SIZE; since Linux 2.6.25)"
16453 msgstr ""
16454
16455 #. type: Plain text
16456 #: build/C/man7/udp.7:171
16457 msgid ""
16458 "Minimal size, in bytes, of receive buffers used by UDP sockets in "
16459 "moderation.  Each UDP socket is able to use the size for receiving data, "
16460 "even if total pages of UDP sockets exceed I<udp_mem> pressure."
16461 msgstr ""
16462
16463 #. type: TP
16464 #: build/C/man7/udp.7:171
16465 #, no-wrap
16466 msgid "I<udp_wmem_min> (integer; default value: PAGE_SIZE; since Linux 2.6.25)"
16467 msgstr ""
16468
16469 #. type: Plain text
16470 #: build/C/man7/udp.7:178
16471 msgid ""
16472 "Minimal size, in bytes, of send buffer used by UDP sockets in moderation.  "
16473 "Each UDP socket is able to use the size for sending data, even if total "
16474 "pages of UDP sockets exceed I<udp_mem> pressure."
16475 msgstr ""
16476
16477 #. type: Plain text
16478 #: build/C/man7/udp.7:189
16479 msgid ""
16480 "To set or get a UDP socket option, call B<getsockopt>(2)  to read or "
16481 "B<setsockopt>(2)  to write the option with the option level argument set to "
16482 "B<IPPROTO_UDP>.  Unless otherwise noted, I<optval> is a pointer to an "
16483 "I<int>."
16484 msgstr ""
16485
16486 #. type: TP
16487 #: build/C/man7/udp.7:189
16488 #, no-wrap
16489 msgid "B<UDP_CORK> (since Linux 2.5.44)"
16490 msgstr ""
16491
16492 #.  FIXME document UDP_ENCAP (new in kernel 2.5.67)
16493 #.  From include/linux/udp.h:
16494 #.  /* UDP encapsulation types */
16495 #.  #define UDP_ENCAP_ESPINUDP_NON_IKE      1 /* draft-ietf-ipsec-nat-t-ike-00/01 */
16496 #.  #define UDP_ENCAP_ESPINUDP      2 /* draft-ietf-ipsec-udp-encaps-06 */
16497 #.  #define UDP_ENCAP_L2TPINUDP     3 /* rfc2661 */
16498 #. type: Plain text
16499 #: build/C/man7/udp.7:202
16500 msgid ""
16501 "If this option is enabled, then all data output on this socket is "
16502 "accumulated into a single datagram that is transmitted when the option is "
16503 "disabled.  This option should not be used in code intended to be portable."
16504 msgstr ""
16505
16506 #. type: Plain text
16507 #: build/C/man7/udp.7:206
16508 msgid "These ioctls can be accessed using B<ioctl>(2).  The correct syntax is:"
16509 msgstr ""
16510
16511 #. type: Plain text
16512 #: build/C/man7/udp.7:211
16513 #, no-wrap
16514 msgid ""
16515 "B<int>I< value>B<;>\n"
16516 "I<error>B< = ioctl(>I<udp_socket>B<, >I<ioctl_type>B<, &>I<value>B<);>\n"
16517 msgstr ""
16518
16519 #. type: TP
16520 #: build/C/man7/udp.7:213
16521 #, no-wrap
16522 msgid "B<FIONREAD> (B<SIOCINQ>)"
16523 msgstr ""
16524
16525 #.  See http://www.securiteam.com/unixfocus/5KP0I15IKO.html
16526 #.  "GNUnet DoS (UDP Socket Unreachable)", 14 May 2006
16527 #. type: Plain text
16528 #: build/C/man7/udp.7:231
16529 msgid ""
16530 "Gets a pointer to an integer as argument.  Returns the size of the next "
16531 "pending datagram in the integer in bytes, or 0 when no datagram is pending.  "
16532 "B<Warning:> Using B<FIONREAD>, it is impossible to distinguish the case "
16533 "where no datagram is pending from the case where the next pending datagram "
16534 "contains zero bytes of data.  It is safer to use B<select>(2), B<poll>(2), "
16535 "or B<epoll>(7)  to distinguish these cases."
16536 msgstr ""
16537
16538 #. type: TP
16539 #: build/C/man7/udp.7:231
16540 #, no-wrap
16541 msgid "B<TIOCOUTQ> (B<SIOCOUTQ>)"
16542 msgstr ""
16543
16544 #. type: Plain text
16545 #: build/C/man7/udp.7:235
16546 msgid ""
16547 "Returns the number of data bytes in the local send queue.  Only supported "
16548 "with Linux 2.4 and above."
16549 msgstr ""
16550
16551 #. type: Plain text
16552 #: build/C/man7/udp.7:241
16553 msgid ""
16554 "In addition all ioctls documented in B<ip>(7)  and B<socket>(7)  are "
16555 "supported."
16556 msgstr ""
16557
16558 #. type: Plain text
16559 #: build/C/man7/udp.7:247
16560 msgid ""
16561 "All errors documented for B<socket>(7)  or B<ip>(7)  may be returned by a "
16562 "send or receive on a UDP socket."
16563 msgstr ""
16564
16565 #. type: TP
16566 #: build/C/man7/udp.7:247 build/C/man7/unix.7:325
16567 #, no-wrap
16568 msgid "B<ECONNREFUSED>"
16569 msgstr ""
16570
16571 #. type: Plain text
16572 #: build/C/man7/udp.7:251
16573 msgid ""
16574 "No receiver was associated with the destination address.  This might be "
16575 "caused by a previous packet sent over the socket."
16576 msgstr ""
16577
16578 #.  .SH CREDITS
16579 #.  This man page was written by Andi Kleen.
16580 #. type: Plain text
16581 #: build/C/man7/udp.7:256
16582 msgid "B<IP_RECVERR> is a new feature in Linux 2.2."
16583 msgstr ""
16584
16585 #. type: Plain text
16586 #: build/C/man7/udp.7:261
16587 msgid "B<ip>(7), B<raw>(7), B<socket>(7), B<udplite>(7)"
16588 msgstr ""
16589
16590 #. type: Plain text
16591 #: build/C/man7/udp.7:263
16592 msgid "RFC\\ 768 for the User Datagram Protocol."
16593 msgstr ""
16594
16595 #. type: Plain text
16596 #: build/C/man7/udp.7:265
16597 msgid "RFC\\ 1122 for the host requirements."
16598 msgstr ""
16599
16600 #. type: Plain text
16601 #: build/C/man7/udp.7:267
16602 msgid "RFC\\ 1191 for a description of path MTU discovery."
16603 msgstr ""
16604
16605 #. type: TH
16606 #: build/C/man7/udplite.7:27
16607 #, no-wrap
16608 msgid "UDPLITE"
16609 msgstr ""
16610
16611 #. type: TH
16612 #: build/C/man7/udplite.7:27
16613 #, no-wrap
16614 msgid "2008-12-03"
16615 msgstr ""
16616
16617 #. type: Plain text
16618 #: build/C/man7/udplite.7:30
16619 msgid "udplite - Lightweight User Datagram Protocol"
16620 msgstr ""
16621
16622 #. type: Plain text
16623 #: build/C/man7/udplite.7:38
16624 msgid "B<sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDPLITE);>"
16625 msgstr ""
16626
16627 #. type: Plain text
16628 #: build/C/man7/udplite.7:41
16629 msgid ""
16630 "This is an implementation of the Lightweight User Datagram Protocol "
16631 "(UDP-Lite), as described in RFC\\ 3828."
16632 msgstr ""
16633
16634 #. type: Plain text
16635 #: build/C/man7/udplite.7:47
16636 msgid ""
16637 "UDP-Lite is an extension of UDP (RFC\\ 768) to support variable-length "
16638 "checksums.  This has advantages for some types of multimedia transport that "
16639 "may be able to make use of slightly damaged datagrams, rather than having "
16640 "them discarded by lower-layer protocols."
16641 msgstr ""
16642
16643 #. type: Plain text
16644 #: build/C/man7/udplite.7:53
16645 msgid ""
16646 "The variable-length checksum coverage is set via a B<setsockopt>(2)  "
16647 "option.  If this option is not set, the only difference to UDP is in using a "
16648 "different IP protocol identifier (IANA number 136)."
16649 msgstr ""
16650
16651 #. type: Plain text
16652 #: build/C/man7/udplite.7:58
16653 msgid ""
16654 "The UDP-Lite implementation is a full extension of B<udp>(7), i.e., it "
16655 "shares the same API and API behaviour, and in addition offers two socket "
16656 "options to control the checksum coverage."
16657 msgstr ""
16658
16659 #. type: Plain text
16660 #: build/C/man7/udplite.7:67
16661 msgid ""
16662 "UDP-Litev4 uses the I<sockaddr_in> address format described in B<ip>(7).  "
16663 "UDP-Litev6 uses the I<sockaddr_in6> address format described in B<ipv6>(7)."
16664 msgstr ""
16665
16666 #. type: Plain text
16667 #: build/C/man7/udplite.7:80
16668 msgid ""
16669 "To set or get a UDP-Lite socket option, call B<getsockopt>(2)  to read or "
16670 "B<setsockopt>(2)  to write the option with the option level argument set to "
16671 "B<IPPROTO_UDPLITE>.  In addition, all B<IPPROTO_UDP> socket options are "
16672 "valid on a UDP-Lite socket.  See B<udp>(7)  for more information."
16673 msgstr ""
16674
16675 #. type: Plain text
16676 #: build/C/man7/udplite.7:82
16677 msgid "The following two options are specific to UDP-Lite."
16678 msgstr ""
16679
16680 #. type: TP
16681 #: build/C/man7/udplite.7:82
16682 #, no-wrap
16683 msgid "B<UDPLITE_SEND_CSCOV>"
16684 msgstr ""
16685
16686 #. type: Plain text
16687 #: build/C/man7/udplite.7:87
16688 msgid ""
16689 "This option sets the sender checksum coverage and takes an I<int> as "
16690 "argument, with a checksum coverage value in the range 0..2^16-1."
16691 msgstr ""
16692
16693 #. type: Plain text
16694 #: build/C/man7/udplite.7:91
16695 msgid ""
16696 "A value of 0 means that the entire datagram is always covered.  Values from "
16697 "1-7 are illegal (RFC\\ 3828, 3.1) and are rounded up to the minimum coverage "
16698 "of 8."
16699 msgstr ""
16700
16701 #. type: Plain text
16702 #: build/C/man7/udplite.7:97
16703 msgid ""
16704 "With regard to IPv6 jumbograms (RFC\\ 2675), the UDP-Litev6 checksum "
16705 "coverage is limited to the first 2^16-1 octets, as per RFC\\ 3828, 3.5.  "
16706 "Higher values are therefore silently truncated to 2^16-1.  If in doubt, the "
16707 "current coverage value can always be queried using B<getsockopt>(2)."
16708 msgstr ""
16709
16710 #. type: TP
16711 #: build/C/man7/udplite.7:97
16712 #, no-wrap
16713 msgid "B<UDPLITE_RECV_CSCOV>"
16714 msgstr ""
16715
16716 #. type: Plain text
16717 #: build/C/man7/udplite.7:108
16718 msgid ""
16719 "This is the receiver-side analogue and uses the same argument format and "
16720 "value range as B<UDPLITE_SEND_CSCOV>.  This option is not required to enable "
16721 "traffic with partial checksum coverage.  Its function is that of a traffic "
16722 "filter: when enabled, it instructs the kernel to drop all packets which have "
16723 "a coverage I<less> than the specified coverage value."
16724 msgstr ""
16725
16726 #.  SO_NO_CHECK exists and is supported by UDPv4, but is
16727 #.  commented out in socket(7), hence also commented out here
16728 #. .PP
16729 #. Since UDP-Lite mandates checksums, checksumming can not be disabled
16730 #. via the
16731 #. .B SO_NO_CHECK
16732 #. option from
16733 #. .BR socket (7).
16734 #. type: Plain text
16735 #: build/C/man7/udplite.7:121
16736 msgid ""
16737 "When the value of B<UDPLITE_RECV_CSCOV> exceeds the actual packet coverage, "
16738 "incoming packets are silently dropped, but may generate a warning message in "
16739 "the system log."
16740 msgstr ""
16741
16742 #. type: Plain text
16743 #: build/C/man7/udplite.7:126
16744 msgid ""
16745 "All errors documented for B<udp>(7)  may be returned.  UDP-Lite does not add "
16746 "further errors."
16747 msgstr ""
16748
16749 #. type: Plain text
16750 #: build/C/man7/udplite.7:129
16751 msgid "I</proc/net/snmp> - basic UDP-Litev4 statistics counters."
16752 msgstr ""
16753
16754 #. type: Plain text
16755 #: build/C/man7/udplite.7:132
16756 msgid "I</proc/net/snmp6> - basic UDP-Litev6 statistics counters."
16757 msgstr ""
16758
16759 #. type: Plain text
16760 #: build/C/man7/udplite.7:134
16761 msgid "UDP-Litev4/v6 first appeared in Linux 2.6.20."
16762 msgstr ""
16763
16764 #.  FIXME . remove this section once glibc supports UDP-Lite
16765 #. type: Plain text
16766 #: build/C/man7/udplite.7:137
16767 msgid "Where glibc support is missing, the following definitions are needed:"
16768 msgstr ""
16769
16770 #.  The following two are defined in the kernel in linux/net/udplite.h
16771 #. type: Plain text
16772 #: build/C/man7/udplite.7:144
16773 #, no-wrap
16774 msgid ""
16775 "#define IPPROTO_UDPLITE     136\n"
16776 "#define UDPLITE_SEND_CSCOV  10\n"
16777 "#define UDPLITE_RECV_CSCOV  11\n"
16778 msgstr ""
16779
16780 #. type: Plain text
16781 #: build/C/man7/udplite.7:151
16782 msgid "B<ip>(7), B<ipv6>(7), B<socket>(7), B<udp>(7)"
16783 msgstr ""
16784
16785 #. type: Plain text
16786 #: build/C/man7/udplite.7:153
16787 msgid "RFC\\ 3828 for the Lightweight User Datagram Protocol (UDP-Lite)."
16788 msgstr ""
16789
16790 #. type: Plain text
16791 #: build/C/man7/udplite.7:156
16792 msgid "I<Documentation/networking/udplite.txt> in the Linux kernel source tree"
16793 msgstr ""
16794
16795 #. type: TH
16796 #: build/C/man7/unix.7:18
16797 #, no-wrap
16798 msgid "UNIX"
16799 msgstr ""
16800
16801 #. type: Plain text
16802 #: build/C/man7/unix.7:21
16803 msgid "unix - sockets for local interprocess communication"
16804 msgstr ""
16805
16806 #. type: Plain text
16807 #: build/C/man7/unix.7:25
16808 msgid "B<#include E<lt>sys/un.hE<gt>>"
16809 msgstr ""
16810
16811 #. type: Plain text
16812 #: build/C/man7/unix.7:27
16813 msgid "I<unix_socket>B< = socket(AF_UNIX, type, 0);>"
16814 msgstr ""
16815
16816 #. type: Plain text
16817 #: build/C/man7/unix.7:29
16818 msgid "I<error>B< = socketpair(AF_UNIX, type, 0, int *>I<sv>B<);>"
16819 msgstr ""
16820
16821 #. type: Plain text
16822 #: build/C/man7/unix.7:40
16823 msgid ""
16824 "The B<AF_UNIX> (also known as B<AF_LOCAL>)  socket family is used to "
16825 "communicate between processes on the same machine efficiently.  "
16826 "Traditionally, UNIX domain sockets can be either unnamed, or bound to a file "
16827 "system pathname (marked as being of type socket).  Linux also supports an "
16828 "abstract namespace which is independent of the file system."
16829 msgstr ""
16830
16831 #. type: Plain text
16832 #: build/C/man7/unix.7:52
16833 msgid ""
16834 "Valid types are: B<SOCK_STREAM>, for a stream-oriented socket and "
16835 "B<SOCK_DGRAM>, for a datagram-oriented socket that preserves message "
16836 "boundaries (as on most UNIX implementations, UNIX domain datagram sockets "
16837 "are always reliable and don't reorder datagrams); and (since Linux 2.6.4)  "
16838 "B<SOCK_SEQPACKET>, for a connection-oriented socket that preserves message "
16839 "boundaries and delivers messages in the order that they were sent."
16840 msgstr ""
16841
16842 #. type: Plain text
16843 #: build/C/man7/unix.7:55
16844 msgid ""
16845 "UNIX domain sockets support passing file descriptors or process credentials "
16846 "to other processes using ancillary data."
16847 msgstr ""
16848
16849 #. type: Plain text
16850 #: build/C/man7/unix.7:57
16851 msgid "A UNIX domain socket address is represented in the following structure:"
16852 msgstr ""
16853
16854 #. type: Plain text
16855 #: build/C/man7/unix.7:61
16856 #, no-wrap
16857 msgid "#define UNIX_PATH_MAX    108\n"
16858 msgstr ""
16859
16860 #. type: Plain text
16861 #: build/C/man7/unix.7:66
16862 #, no-wrap
16863 msgid ""
16864 "struct sockaddr_un {\n"
16865 "    sa_family_t sun_family;               /* AF_UNIX */\n"
16866 "    char        sun_path[UNIX_PATH_MAX];  /* pathname */\n"
16867 "};\n"
16868 msgstr ""
16869
16870 #. type: Plain text
16871 #: build/C/man7/unix.7:72
16872 msgid "I<sun_family> always contains B<AF_UNIX>."
16873 msgstr ""
16874
16875 #. type: Plain text
16876 #: build/C/man7/unix.7:74
16877 msgid "Three types of address are distinguished in this structure:"
16878 msgstr ""
16879
16880 #. type: Plain text
16881 #: build/C/man7/unix.7:89
16882 msgid ""
16883 "I<pathname>: a UNIX domain socket can be bound to a null-terminated file "
16884 "system pathname using B<bind>(2).  When the address of the socket is "
16885 "returned by B<getsockname>(2), B<getpeername>(2), and B<accept>(2), its "
16886 "length is I<offsetof(struct sockaddr_un, sun_path) + strlen(sun_path) + 1>, "
16887 "and I<sun_path> contains the null-terminated pathname."
16888 msgstr ""
16889
16890 #.  There is quite some variation across implementations: FreeBSD
16891 #.  says the length is 16 bytes, HP-UX 11 says it's zero bytes.
16892 #. type: Plain text
16893 #: build/C/man7/unix.7:109
16894 msgid ""
16895 "I<unnamed>: A stream socket that has not been bound to a pathname using "
16896 "B<bind>(2)  has no name.  Likewise, the two sockets created by "
16897 "B<socketpair>(2)  are unnamed.  When the address of an unnamed socket is "
16898 "returned by B<getsockname>(2), B<getpeername>(2), and B<accept>(2), its "
16899 "length is I<sizeof(sa_family_t)>, and I<sun_path> should not be inspected."
16900 msgstr ""
16901
16902 #. type: Plain text
16903 #: build/C/man7/unix.7:135
16904 msgid ""
16905 "I<abstract>: an abstract socket address is distinguished by the fact that "
16906 "I<sun_path[0]> is a null byte (\\(aq\\e0\\(aq).  The socket's address in "
16907 "this namespace is given by the additional bytes in I<sun_path> that are "
16908 "covered by the specified length of the address structure.  (Null bytes in "
16909 "the name have no special significance.)  The name has no connection with "
16910 "file system pathnames.  When the address of an abstract socket is returned "
16911 "by B<getsockname>(2), B<getpeername>(2), and B<accept>(2), the returned "
16912 "I<addrlen> is greater than I<sizeof(sa_family_t)> (i.e., greater than 2), "
16913 "and the name of the socket is contained in the first I<(addrlen - "
16914 "sizeof(sa_family_t))> bytes of I<sun_path>.  The abstract socket namespace "
16915 "is a nonportable Linux extension."
16916 msgstr ""
16917
16918 #. type: Plain text
16919 #: build/C/man7/unix.7:148
16920 msgid ""
16921 "For historical reasons these socket options are specified with a "
16922 "B<SOL_SOCKET> type even though they are B<AF_UNIX> specific.  They can be "
16923 "set with B<setsockopt>(2)  and read with B<getsockopt>(2)  by specifying "
16924 "B<SOL_SOCKET> as the socket family."
16925 msgstr ""
16926
16927 #. type: TP
16928 #: build/C/man7/unix.7:148
16929 #, no-wrap
16930 msgid "B<SO_PASSCRED>"
16931 msgstr ""
16932
16933 #. type: Plain text
16934 #: build/C/man7/unix.7:155
16935 msgid ""
16936 "Enables the receiving of the credentials of the sending process in an "
16937 "ancillary message.  When this option is set and the socket is not yet "
16938 "connected a unique name in the abstract namespace will be generated "
16939 "automatically.  Expects an integer boolean flag."
16940 msgstr ""
16941
16942 #. type: SS
16943 #: build/C/man7/unix.7:155
16944 #, no-wrap
16945 msgid "Autobind feature"
16946 msgstr ""
16947
16948 #.  i.e. sizeof(short)
16949 #. type: Plain text
16950 #: build/C/man7/unix.7:175
16951 msgid ""
16952 "If a B<bind>(2)  call specifies I<addrlen> as I<sizeof(sa_family_t)>, or the "
16953 "B<SO_PASSCRED> socket option was specified for a socket that was not "
16954 "explicitly bound to an address, then the socket is autobound to an abstract "
16955 "address.  The address consists of a null byte followed by 5 bytes in the "
16956 "character set I<[0-9a-f]>.  Thus, there is a limit of 2^20 autobind "
16957 "addresses.  (From Linux 2.1.15, when the autobind feature was added, 8 bytes "
16958 "were used, and the limit was thus 2^32 autobind addresses.  The change to 5 "
16959 "bytes came in Linux 2.3.15.)"
16960 msgstr ""
16961
16962 #. type: Plain text
16963 #: build/C/man7/unix.7:178
16964 msgid ""
16965 "The following paragraphs describe domain-specific details and unsupported "
16966 "features of the sockets API for UNIX domain sockets on Linux."
16967 msgstr ""
16968
16969 #. type: Plain text
16970 #: build/C/man7/unix.7:186
16971 msgid ""
16972 "UNIX domain sockets do not support the transmission of out-of-band data (the "
16973 "B<MSG_OOB> flag for B<send>(2)  and B<recv>(2))."
16974 msgstr ""
16975
16976 #. type: Plain text
16977 #: build/C/man7/unix.7:191
16978 msgid "The B<send>(2)  B<MSG_MORE> flag is not supported by UNIX domain sockets."
16979 msgstr ""
16980
16981 #. type: Plain text
16982 #: build/C/man7/unix.7:199
16983 msgid ""
16984 "The use of B<MSG_TRUNC> in the I<flags> argument of B<recv>(2)  is not "
16985 "supported by UNIX domain sockets."
16986 msgstr ""
16987
16988 #. type: Plain text
16989 #: build/C/man7/unix.7:211
16990 msgid ""
16991 "The B<SO_SNDBUF> socket option does have an effect for UNIX domain sockets, "
16992 "but the B<SO_RCVBUF> option does not.  For datagram sockets, the "
16993 "B<SO_SNDBUF> value imposes an upper limit on the size of outgoing "
16994 "datagrams.  This limit is calculated as the doubled (see B<socket>(7))  "
16995 "option value less 32 bytes used for overhead."
16996 msgstr ""
16997
16998 #. type: SS
16999 #: build/C/man7/unix.7:211
17000 #, no-wrap
17001 msgid "Ancillary messages"
17002 msgstr ""
17003
17004 #. type: Plain text
17005 #: build/C/man7/unix.7:233
17006 msgid ""
17007 "Ancillary data is sent and received using B<sendmsg>(2)  and B<recvmsg>(2).  "
17008 "For historical reasons the ancillary message types listed below are "
17009 "specified with a B<SOL_SOCKET> type even though they are B<AF_UNIX> "
17010 "specific.  To send them set the I<cmsg_level> field of the struct I<cmsghdr> "
17011 "to B<SOL_SOCKET> and the I<cmsg_type> field to the type.  For more "
17012 "information see B<cmsg>(3)."
17013 msgstr ""
17014
17015 #. type: TP
17016 #: build/C/man7/unix.7:233
17017 #, no-wrap
17018 msgid "B<SCM_RIGHTS>"
17019 msgstr ""
17020
17021 #. type: Plain text
17022 #: build/C/man7/unix.7:239
17023 msgid ""
17024 "Send or receive a set of open file descriptors from another process.  The "
17025 "data portion contains an integer array of the file descriptors.  The passed "
17026 "file descriptors behave as though they have been created with B<dup>(2)."
17027 msgstr ""
17028
17029 #. type: TP
17030 #: build/C/man7/unix.7:239
17031 #, no-wrap
17032 msgid "B<SCM_CREDENTIALS>"
17033 msgstr ""
17034
17035 #. type: Plain text
17036 #: build/C/man7/unix.7:249
17037 msgid ""
17038 "Send or receive UNIX credentials.  This can be used for authentication.  The "
17039 "credentials are passed as a I<struct ucred> ancillary message.  Thus "
17040 "structure is defined in I<E<lt>sys/socket.hE<gt>> as follows:"
17041 msgstr ""
17042
17043 #. type: Plain text
17044 #: build/C/man7/unix.7:257
17045 #, no-wrap
17046 msgid ""
17047 "struct ucred {\n"
17048 "    pid_t pid;    /* process ID of the sending process */\n"
17049 "    uid_t uid;    /* user ID of the sending process */\n"
17050 "    gid_t gid;    /* group ID of the sending process */\n"
17051 "};\n"
17052 msgstr ""
17053
17054 #. type: Plain text
17055 #: build/C/man7/unix.7:266
17056 msgid ""
17057 "Since glibc 2.8, the B<_GNU_SOURCE> feature test macro must be defined "
17058 "(before including I<any> header files) in order to obtain the definition of "
17059 "this structure."
17060 msgstr ""
17061
17062 #. type: Plain text
17063 #: build/C/man7/unix.7:282
17064 msgid ""
17065 "The credentials which the sender specifies are checked by the kernel.  A "
17066 "process with effective user ID 0 is allowed to specify values that do not "
17067 "match its own.  The sender must specify its own process ID (unless it has "
17068 "the capability B<CAP_SYS_ADMIN>), its user ID, effective user ID, or saved "
17069 "set-user-ID (unless it has B<CAP_SETUID>), and its group ID, effective group "
17070 "ID, or saved set-group-ID (unless it has B<CAP_SETGID>).  To receive a "
17071 "I<struct ucred> message the B<SO_PASSCRED> option must be enabled on the "
17072 "socket."
17073 msgstr ""
17074
17075 #. type: Plain text
17076 #: build/C/man7/unix.7:293
17077 #, no-wrap
17078 msgid ""
17079 "B<int>I< value>B<;>\n"
17080 "I<error>B< = ioctl(>I<unix_socket>B<, >I<ioctl_type>B<, &>I<value>B<);>\n"
17081 msgstr ""
17082
17083 #. type: Plain text
17084 #: build/C/man7/unix.7:298
17085 msgid "I<ioctl_type> can be:"
17086 msgstr ""
17087
17088 #. type: Plain text
17089 #: build/C/man7/unix.7:325
17090 msgid ""
17091 "The specified local address is already in use or the file system socket "
17092 "object already exists."
17093 msgstr ""
17094
17095 #. type: Plain text
17096 #: build/C/man7/unix.7:331
17097 msgid ""
17098 "The remote address specified by B<connect>(2)  was not a listening socket.  "
17099 "This error can also occur if the target filename is not a socket."
17100 msgstr ""
17101
17102 #. type: TP
17103 #: build/C/man7/unix.7:331
17104 #, no-wrap
17105 msgid "B<ECONNRESET>"
17106 msgstr ""
17107
17108 #. type: Plain text
17109 #: build/C/man7/unix.7:334
17110 msgid "Remote socket was unexpectedly closed."
17111 msgstr ""
17112
17113 #. type: Plain text
17114 #: build/C/man7/unix.7:337
17115 msgid "User memory address was not valid."
17116 msgstr ""
17117
17118 #. type: Plain text
17119 #: build/C/man7/unix.7:346
17120 msgid ""
17121 "Invalid argument passed.  A common cause is that the value B<AF_UNIX> was "
17122 "not specified in the I<sun_type> field of passed addresses, or the socket "
17123 "was in an invalid state for the applied operation."
17124 msgstr ""
17125
17126 #. type: Plain text
17127 #: build/C/man7/unix.7:351
17128 msgid ""
17129 "B<connect>(2)  called on an already connected socket or a target address was "
17130 "specified on a connected socket."
17131 msgstr ""
17132
17133 #. type: Plain text
17134 #: build/C/man7/unix.7:356
17135 msgid ""
17136 "The pathname in the remote address specified to B<connect>(2)  did not "
17137 "exist."
17138 msgstr ""
17139
17140 #. type: TP
17141 #: build/C/man7/unix.7:356
17142 #, no-wrap
17143 msgid "B<ENOMEM>"
17144 msgstr ""
17145
17146 #. type: Plain text
17147 #: build/C/man7/unix.7:362
17148 msgid "Socket operation needs a target address, but the socket is not connected."
17149 msgstr ""
17150
17151 #. type: Plain text
17152 #: build/C/man7/unix.7:366
17153 msgid ""
17154 "Stream operation called on non-stream oriented socket or tried to use the "
17155 "out-of-band data option."
17156 msgstr ""
17157
17158 #. type: Plain text
17159 #: build/C/man7/unix.7:370
17160 msgid "The sender passed invalid credentials in the I<struct ucred>."
17161 msgstr ""
17162
17163 #. type: Plain text
17164 #: build/C/man7/unix.7:382
17165 msgid ""
17166 "Remote socket was closed on a stream socket.  If enabled, a B<SIGPIPE> is "
17167 "sent as well.  This can be avoided by passing the B<MSG_NOSIGNAL> flag to "
17168 "B<sendmsg>(2)  or B<recvmsg>(2)."
17169 msgstr ""
17170
17171 #. type: TP
17172 #: build/C/man7/unix.7:382
17173 #, no-wrap
17174 msgid "B<EPROTONOSUPPORT>"
17175 msgstr ""
17176
17177 #. type: Plain text
17178 #: build/C/man7/unix.7:386
17179 msgid "Passed protocol is not B<AF_UNIX>."
17180 msgstr ""
17181
17182 #. type: TP
17183 #: build/C/man7/unix.7:386
17184 #, no-wrap
17185 msgid "B<EPROTOTYPE>"
17186 msgstr ""
17187
17188 #. type: Plain text
17189 #: build/C/man7/unix.7:392
17190 msgid ""
17191 "Remote socket does not match the local socket type (B<SOCK_DGRAM> versus "
17192 "B<SOCK_STREAM>)"
17193 msgstr ""
17194
17195 #. type: Plain text
17196 #: build/C/man7/unix.7:395
17197 msgid "Unknown socket type."
17198 msgstr ""
17199
17200 #. type: Plain text
17201 #: build/C/man7/unix.7:399
17202 msgid ""
17203 "Other errors can be generated by the generic socket layer or by the file "
17204 "system while generating a file system socket object.  See the appropriate "
17205 "manual pages for more information."
17206 msgstr ""
17207
17208 #. type: Plain text
17209 #: build/C/man7/unix.7:405
17210 msgid ""
17211 "B<SCM_CREDENTIALS> and the abstract namespace were introduced with Linux 2.2 "
17212 "and should not be used in portable programs.  (Some BSD-derived systems also "
17213 "support credential passing, but the implementation details differ.)"
17214 msgstr ""
17215
17216 #. type: Plain text
17217 #: build/C/man7/unix.7:416
17218 msgid ""
17219 "In the Linux implementation, sockets which are visible in the file system "
17220 "honor the permissions of the directory they are in.  Their owner, group and "
17221 "their permissions can be changed.  Creation of a new socket will fail if the "
17222 "process does not have write and search (execute) permission on the directory "
17223 "the socket is created in.  Connecting to the socket object requires "
17224 "read/write permission.  This behavior differs from many BSD-derived systems "
17225 "which ignore permissions for UNIX domain sockets.  Portable programs should "
17226 "not rely on this feature for security."
17227 msgstr ""
17228
17229 #. type: Plain text
17230 #: build/C/man7/unix.7:424
17231 msgid ""
17232 "Binding to a socket with a filename creates a socket in the file system that "
17233 "must be deleted by the caller when it is no longer needed (using "
17234 "B<unlink>(2)).  The usual UNIX close-behind semantics apply; the socket can "
17235 "be unlinked at any time and will be finally removed from the file system "
17236 "when the last reference to it is closed."
17237 msgstr ""
17238
17239 #. type: Plain text
17240 #: build/C/man7/unix.7:433
17241 msgid ""
17242 "To pass file descriptors or credentials over a B<SOCK_STREAM>, you need to "
17243 "send or receive at least one byte of nonancillary data in the same "
17244 "B<sendmsg>(2)  or B<recvmsg>(2)  call."
17245 msgstr ""
17246
17247 #. type: Plain text
17248 #: build/C/man7/unix.7:435
17249 msgid "UNIX domain stream sockets do not support the notion of out-of-band data."
17250 msgstr ""
17251
17252 #. type: Plain text
17253 #: build/C/man7/unix.7:438
17254 msgid "See B<bind>(2)."
17255 msgstr ""
17256
17257 #. type: Plain text
17258 #: build/C/man7/unix.7:443
17259 msgid "For an example of the use of B<SCM_RIGHTS> see B<cmsg>(3)."
17260 msgstr ""
17261
17262 #. type: Plain text
17263 #: build/C/man7/unix.7:452
17264 msgid ""
17265 "B<recvmsg>(2), B<sendmsg>(2), B<socket>(2), B<socketpair>(2), B<cmsg>(3), "
17266 "B<capabilities>(7), B<credentials>(7), B<socket>(7)"
17267 msgstr ""
17268
17269 #. type: TH
17270 #: build/C/man7/x25.7:12
17271 #, no-wrap
17272 msgid "X25"
17273 msgstr ""
17274
17275 #. type: Plain text
17276 #: build/C/man7/x25.7:15
17277 msgid "x25 - ITU-T X.25 / ISO-8208 protocol interface."
17278 msgstr ""
17279
17280 #. type: Plain text
17281 #: build/C/man7/x25.7:19
17282 msgid "B<#include E<lt>linux/x25.hE<gt>>"
17283 msgstr ""
17284
17285 #. type: Plain text
17286 #: build/C/man7/x25.7:21
17287 msgid "B<x25_socket = socket(AF_X25, SOCK_SEQPACKET, 0);>"
17288 msgstr ""
17289
17290 #. type: Plain text
17291 #: build/C/man7/x25.7:30
17292 msgid ""
17293 "X25 sockets provide an interface to the X.25 packet layer protocol.  This "
17294 "allows applications to communicate over a public X.25 data network as "
17295 "standardized by International Telecommunication Union's recommendation X.25 "
17296 "(X.25 DTE-DCE mode).  X25 sockets can also be used for communication without "
17297 "an intermediate X.25 network (X.25 DTE-DTE mode) as described in ISO-8208."
17298 msgstr ""
17299
17300 #. type: Plain text
17301 #: build/C/man7/x25.7:47
17302 msgid ""
17303 "Message boundaries are preserved \\(em a B<read>(2)  from a socket will "
17304 "retrieve the same chunk of data as output with the corresponding B<write>(2)  "
17305 "to the peer socket.  When necessary, the kernel takes care of segmenting and "
17306 "reassembling long messages by means of the X.25 M-bit.  There is no "
17307 "hard-coded upper limit for the message size.  However, reassembling of a "
17308 "long message might fail if there is a temporary lack of system resources or "
17309 "when other constraints (such as socket memory or buffer size limits) become "
17310 "effective.  If that occurs, the X.25 connection will be reset."
17311 msgstr ""
17312
17313 #. type: SS
17314 #: build/C/man7/x25.7:47
17315 #, no-wrap
17316 msgid "Socket addresses"
17317 msgstr ""
17318
17319 #. type: Plain text
17320 #: build/C/man7/x25.7:54
17321 msgid ""
17322 "The B<AF_X25> socket address family uses the I<struct sockaddr_x25> for "
17323 "representing network addresses as defined in ITU-T recommendation X.121."
17324 msgstr ""
17325
17326 #. type: Plain text
17327 #: build/C/man7/x25.7:61
17328 #, no-wrap
17329 msgid ""
17330 "struct sockaddr_x25 {\n"
17331 "    sa_family_t sx25_family;    /* must be AF_X25 */\n"
17332 "    x25_address sx25_addr;      /* X.121 Address */\n"
17333 "};\n"
17334 msgstr ""
17335
17336 #. type: Plain text
17337 #: build/C/man7/x25.7:72
17338 msgid ""
17339 "I<sx25_addr> contains a char array I<x25_addr[]> to be interpreted as a "
17340 "null-terminated string.  I<sx25_addr.x25_addr[]> consists of up to 15 (not "
17341 "counting the terminating null byte) ASCII characters forming the X.121 "
17342 "address.  Only the decimal digit characters from \\(aq0\\(aq to \\(aq9\\(aq "
17343 "are allowed."
17344 msgstr ""
17345
17346 #. type: Plain text
17347 #: build/C/man7/x25.7:81
17348 msgid ""
17349 "The following X.25-specific socket options can be set by using "
17350 "B<setsockopt>(2)  and read with B<getsockopt>(2)  with the I<level> argument "
17351 "set to B<SOL_X25>."
17352 msgstr ""
17353
17354 #. type: TP
17355 #: build/C/man7/x25.7:81
17356 #, no-wrap
17357 msgid "B<X25_QBITINCL>"
17358 msgstr ""
17359
17360 #. type: Plain text
17361 #: build/C/man7/x25.7:100
17362 msgid ""
17363 "Controls whether the X.25 Q-bit (Qualified Data Bit) is accessible by the "
17364 "user.  It expects an integer argument.  If set to 0 (default), the Q-bit is "
17365 "never set for outgoing packets and the Q-bit of incoming packets is "
17366 "ignored.  If set to 1, an additional first byte is prepended to each message "
17367 "read from or written to the socket.  For data read from the socket, a 0 "
17368 "first byte indicates that the Q-bits of the corresponding incoming data "
17369 "packets were not set.  A first byte with value 1 indicates that the Q-bit of "
17370 "the corresponding incoming data packets was set.  If the first byte of the "
17371 "data written to the socket is 1 the Q-bit of the corresponding outgoing data "
17372 "packets will be set.  If the first byte is 0 the Q-bit will not be set."
17373 msgstr ""
17374
17375 #. type: Plain text
17376 #: build/C/man7/x25.7:102
17377 msgid "The AF_X25 protocol family is a new feature of Linux 2.2."
17378 msgstr ""
17379
17380 #. type: Plain text
17381 #: build/C/man7/x25.7:105
17382 msgid "Plenty, as the X.25 PLP implementation is B<CONFIG_EXPERIMENTAL>."
17383 msgstr ""
17384
17385 #. type: Plain text
17386 #: build/C/man7/x25.7:107
17387 msgid "This man page is incomplete."
17388 msgstr ""
17389
17390 #. type: Plain text
17391 #: build/C/man7/x25.7:114
17392 msgid ""
17393 "There is no dedicated application programmer's header file yet; you need to "
17394 "include the kernel header file I<E<lt>linux/x25.hE<gt>>.  "
17395 "B<CONFIG_EXPERIMENTAL> might also imply that future versions of the "
17396 "interface are not binary compatible."
17397 msgstr ""
17398
17399 #. type: Plain text
17400 #: build/C/man7/x25.7:118
17401 msgid ""
17402 "X.25 N-Reset events are not propagated to the user process yet.  Thus, if a "
17403 "reset occurred, data might be lost without notice."
17404 msgstr ""
17405
17406 #. type: Plain text
17407 #: build/C/man7/x25.7:121
17408 msgid "B<socket>(2), B<socket>(7)"
17409 msgstr ""
17410
17411 #. type: Plain text
17412 #: build/C/man7/x25.7:127
17413 msgid ""
17414 "Jonathan Simon Naylor: \\(lqThe Re-Analysis and Re-Implementation of "
17415 "X.25.\\(rq The URL is E<.UR "
17416 "ftp://ftp.pspt.fi\\:/pub\\:/ham\\:/linux\\:/ax25\\:/x25doc.tgz> E<.UE .>"
17417 msgstr ""