OSDN Git Service

733f97928e4c6221fabbbe1052bba91a7f50a2ec
[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: 2012-05-28 07:16+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:9
21 #, no-wrap
22 msgid "ARP"
23 msgstr ""
24
25 #. type: TH
26 #: build/C/man7/arp.7:9
27 #, no-wrap
28 msgid "2008-11-25"
29 msgstr ""
30
31 #. type: TH
32 #: build/C/man7/arp.7:9 build/C/man3/cmsg.3:7 build/C/man7/ddp.7:7 build/C/man1/getent.1:23 build/C/man3/getipnodebyname.3:24 build/C/man2/getpeername.2:40 build/C/man5/host.conf.5:26 build/C/man7/hostname.7:37 build/C/man5/hosts.5:27 build/C/man5/hosts.equiv.5:3 build/C/man7/icmp.7:7 build/C/man3/inet_ntop.3:24 build/C/man3/inet_pton.3:25 build/C/man7/ip.7:12 build/C/man7/ipv6.7:7 build/C/man7/netdevice.7:15 build/C/man5/nsswitch.conf.5:24 build/C/man7/packet.7:7 build/C/man5/protocols.5:28 build/C/man7/raw.7:9 build/C/man3/rcmd.3:41 build/C/man3/rexec.3:39 build/C/man5/services.5:34 build/C/man2/shutdown.2:38 build/C/man7/tcp.7:16 build/C/man7/udp.7:8 build/C/man7/udplite.7:25 build/C/man7/unix.7:15 build/C/man7/x25.7:7
33 #, no-wrap
34 msgid "Linux"
35 msgstr ""
36
37 #. type: TH
38 #: build/C/man7/arp.7:9 build/C/man3/byteorder.3:30 build/C/man3/cmsg.3:7 build/C/man7/ddp.7:7 build/C/man3/endian.3:26 build/C/man3/ether_aton.3:31 build/C/man3/getaddrinfo.3:41 build/C/man3/getaddrinfo_a.3:27 build/C/man3/gethostbyname.3:36 build/C/man3/getipnodebyname.3:24 build/C/man3/getnameinfo.3:7 build/C/man3/getnetent.3:28 build/C/man3/getnetent_r.3:24 build/C/man2/getpeername.2:40 build/C/man3/getprotoent.3:28 build/C/man3/getprotoent_r.3:24 build/C/man3/getservent.3:32 build/C/man3/getservent_r.3:24 build/C/man7/hostname.7:37 build/C/man5/hosts.5:27 build/C/man5/hosts.equiv.5:3 build/C/man7/icmp.7:7 build/C/man3/inet.3:42 build/C/man3/inet_ntop.3:24 build/C/man3/inet_pton.3:25 build/C/man7/ip.7:12 build/C/man7/ipv6.7:7 build/C/man7/netdevice.7:15 build/C/man8/nscd.8:23 build/C/man5/nscd.conf.5:20 build/C/man5/nsswitch.conf.5:24 build/C/man7/packet.7:7 build/C/man5/protocols.5:28 build/C/man7/raw.7:9 build/C/man3/rcmd.3:41 build/C/man5/resolv.conf.5:21 build/C/man3/resolver.3:30 build/C/man3/rexec.3:39 build/C/man5/services.5:34 build/C/man3/setnetgrent.3:5 build/C/man2/shutdown.2:38 build/C/man7/tcp.7:16 build/C/man7/udp.7:8 build/C/man7/udplite.7:25 build/C/man7/unix.7:15 build/C/man7/x25.7:7
39 #, no-wrap
40 msgid "Linux Programmer's Manual"
41 msgstr ""
42
43 #. type: SH
44 #: build/C/man7/arp.7:10 build/C/man3/byteorder.3:31 build/C/man3/cmsg.3:8 build/C/man7/ddp.7:8 build/C/man3/endian.3:27 build/C/man3/ether_aton.3:32 build/C/man3/getaddrinfo.3:42 build/C/man3/getaddrinfo_a.3:28 build/C/man1/getent.1:24 build/C/man3/gethostbyname.3:37 build/C/man3/getipnodebyname.3:25 build/C/man3/getnameinfo.3:8 build/C/man3/getnetent.3:29 build/C/man3/getnetent_r.3:25 build/C/man2/getpeername.2:41 build/C/man3/getprotoent.3:29 build/C/man3/getprotoent_r.3:25 build/C/man3/getservent.3:33 build/C/man3/getservent_r.3:25 build/C/man5/host.conf.5:27 build/C/man7/hostname.7:38 build/C/man5/hosts.5:28 build/C/man5/hosts.equiv.5:4 build/C/man7/icmp.7:8 build/C/man3/inet.3:43 build/C/man3/inet_ntop.3:25 build/C/man3/inet_pton.3:26 build/C/man7/ip.7:13 build/C/man7/ipv6.7:8 build/C/man7/netdevice.7:16 build/C/man5/networks.5:25 build/C/man8/nscd.8:24 build/C/man5/nscd.conf.5:21 build/C/man5/nsswitch.conf.5:25 build/C/man7/packet.7:8 build/C/man5/protocols.5:29 build/C/man7/raw.7:10 build/C/man3/rcmd.3:42 build/C/man5/resolv.conf.5:23 build/C/man3/resolver.3:31 build/C/man3/rexec.3:40 build/C/man5/services.5:35 build/C/man3/setnetgrent.3:6 build/C/man2/shutdown.2:39 build/C/man7/tcp.7:17 build/C/man7/udp.7:9 build/C/man7/udplite.7:26 build/C/man7/unix.7:16 build/C/man7/x25.7:8
45 #, no-wrap
46 msgid "NAME"
47 msgstr ""
48
49 #. type: Plain text
50 #: build/C/man7/arp.7:12
51 msgid "arp - Linux ARP kernel module."
52 msgstr ""
53
54 #. type: SH
55 #: build/C/man7/arp.7:12 build/C/man3/byteorder.3:46 build/C/man3/cmsg.3:33 build/C/man7/ddp.7:18 build/C/man3/endian.3:51 build/C/man3/ether_aton.3:57 build/C/man3/getaddrinfo.3:73 build/C/man3/getaddrinfo_a.3:48 build/C/man1/getent.1:29 build/C/man3/gethostbyname.3:116 build/C/man3/getipnodebyname.3:42 build/C/man3/getnameinfo.3:29 build/C/man3/getnetent.3:46 build/C/man3/getnetent_r.3:60 build/C/man2/getpeername.2:48 build/C/man3/getprotoent.3:46 build/C/man3/getprotoent_r.3:57 build/C/man3/getservent.3:50 build/C/man3/getservent_r.3:57 build/C/man5/host.conf.5:29 build/C/man7/hostname.7:40 build/C/man5/hosts.5:32 build/C/man5/hosts.equiv.5:7 build/C/man7/icmp.7:10 build/C/man3/inet.3:75 build/C/man3/inet_ntop.3:34 build/C/man3/inet_pton.3:34 build/C/man7/ip.7:29 build/C/man7/ipv6.7:20 build/C/man7/netdevice.7:22 build/C/man5/networks.5:27 build/C/man8/nscd.8:26 build/C/man5/nscd.conf.5:23 build/C/man5/nsswitch.conf.5:27 build/C/man7/packet.7:20 build/C/man5/protocols.5:31 build/C/man7/raw.7:18 build/C/man3/rcmd.3:90 build/C/man5/resolv.conf.5:27 build/C/man3/resolver.3:83 build/C/man3/rexec.3:54 build/C/man5/services.5:37 build/C/man3/setnetgrent.3:39 build/C/man2/shutdown.2:45 build/C/man7/tcp.7:27 build/C/man7/udp.7:17 build/C/man7/udplite.7:36 build/C/man7/unix.7:27 build/C/man7/x25.7:16
56 #, no-wrap
57 msgid "DESCRIPTION"
58 msgstr ""
59
60 #. type: Plain text
61 #: build/C/man7/arp.7:20
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:33
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:45
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:68
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 only sent when there is data queued for sending."
103 msgstr ""
104
105 #. type: Plain text
106 #: build/C/man7/arp.7:73
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:73 build/C/man7/ddp.7:139 build/C/man7/ip.7:898 build/C/man7/netdevice.7:69 build/C/man7/packet.7:225 build/C/man7/tcp.7:997 build/C/man7/udp.7:192 build/C/man7/unix.7:280
116 #, no-wrap
117 msgid "Ioctls"
118 msgstr ""
119
120 #. type: Plain text
121 #: build/C/man7/arp.7:80
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:90
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:99
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 only be performed 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:109
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:114
159 #, no-wrap
160 msgid "I<arp_flags>\n"
161 msgstr ""
162
163 #. type: tbl table
164 #: build/C/man7/arp.7:115
165 #, no-wrap
166 msgid "flag:meaning\n"
167 msgstr ""
168
169 #. type: tbl table
170 #: build/C/man7/arp.7:116
171 #, no-wrap
172 msgid "ATF_COM:Lookup complete\n"
173 msgstr ""
174
175 #. type: tbl table
176 #: build/C/man7/arp.7:117
177 #, no-wrap
178 msgid "ATF_PERM:Permanent entry\n"
179 msgstr ""
180
181 #. type: tbl table
182 #: build/C/man7/arp.7:118
183 #, no-wrap
184 msgid "ATF_PUBL:Publish entry\n"
185 msgstr ""
186
187 #. type: tbl table
188 #: build/C/man7/arp.7:119
189 #, no-wrap
190 msgid "ATF_USETRAILERS:Trailers requested\n"
191 msgstr ""
192
193 #. type: tbl table
194 #: build/C/man7/arp.7:120
195 #, no-wrap
196 msgid "ATF_NETMASK:Use a netmask\n"
197 msgstr ""
198
199 #. type: tbl table
200 #: build/C/man7/arp.7:121
201 #, no-wrap
202 msgid "ATF_DONTPUB:Don't answer\n"
203 msgstr ""
204
205 #. type: Plain text
206 #: build/C/man7/arp.7:135
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:135 build/C/man7/ddp.7:117 build/C/man7/icmp.7:36 build/C/man7/ip.7:774 build/C/man7/tcp.7:159 build/C/man7/udp.7:131
216 #, no-wrap
217 msgid "/proc interfaces"
218 msgstr ""
219
220 #. type: Plain text
221 #: build/C/man7/arp.7:148
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:148
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:155
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:155
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:162
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:162
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:173
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:173
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:179
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:179
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:185
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:185
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:191
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:191
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:198
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:198
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:205
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:205
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:212
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:212
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:219
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:219
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:226
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:226
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:232
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:232
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:240
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:240
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:245
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:245
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:252
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:252
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:256
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:256
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:263
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:263
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:269
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:269 build/C/man7/ddp.7:216 build/C/man3/endian.3:72 build/C/man3/getnameinfo.3:200 build/C/man7/icmp.7:155 build/C/man7/ipv6.7:282 build/C/man7/packet.7:277 build/C/man7/raw.7:171 build/C/man3/rcmd.3:260 build/C/man3/rexec.3:136 build/C/man7/tcp.7:1114 build/C/man7/udp.7:241 build/C/man7/udplite.7:142 build/C/man7/unix.7:397 build/C/man7/x25.7:95
494 #, no-wrap
495 msgid "VERSIONS"
496 msgstr ""
497
498 #. type: Plain text
499 #: build/C/man7/arp.7:276
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:282
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:286
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:286 build/C/man7/ddp.7:239 build/C/man3/ether_aton.3:125 build/C/man3/gethostbyname.3:422 build/C/man3/inet_ntop.3:110 build/C/man3/inet_pton.3:148 build/C/man7/ip.7:1067 build/C/man7/ipv6.7:321 build/C/man7/netdevice.7:321 build/C/man7/packet.7:358 build/C/man7/raw.7:248 build/C/man3/rcmd.3:276 build/C/man3/rexec.3:149 build/C/man7/tcp.7:1121 build/C/man7/udplite.7:124 build/C/man7/x25.7:97
522 #, no-wrap
523 msgid "BUGS"
524 msgstr ""
525
526 #. type: Plain text
527 #: build/C/man7/arp.7:290
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:296
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:299
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:299 build/C/man3/byteorder.3:77 build/C/man3/cmsg.3:213 build/C/man7/ddp.7:244 build/C/man3/endian.3:149 build/C/man3/ether_aton.3:129 build/C/man3/getaddrinfo.3:815 build/C/man3/getaddrinfo_a.3:600 build/C/man1/getent.1:367 build/C/man3/gethostbyname.3:427 build/C/man3/getipnodebyname.3:264 build/C/man3/getnameinfo.3:272 build/C/man3/getnetent.3:133 build/C/man3/getnetent_r.3:143 build/C/man2/getpeername.2:114 build/C/man3/getprotoent.3:122 build/C/man3/getprotoent_r.3:235 build/C/man3/getservent.3:131 build/C/man3/getservent_r.3:239 build/C/man5/host.conf.5:199 build/C/man7/hostname.7:83 build/C/man5/hosts.5:115 build/C/man5/hosts.equiv.5:62 build/C/man7/icmp.7:185 build/C/man3/inet.3:297 build/C/man3/inet_ntop.3:116 build/C/man3/inet_pton.3:213 build/C/man7/ip.7:1086 build/C/man7/ipv6.7:332 build/C/man7/netdevice.7:335 build/C/man5/networks.5:73 build/C/man8/nscd.8:85 build/C/man5/nscd.conf.5:186 build/C/man5/nsswitch.conf.5:339 build/C/man7/packet.7:389 build/C/man5/protocols.5:80 build/C/man7/raw.7:265 build/C/man3/rcmd.3:283 build/C/man5/resolv.conf.5:273 build/C/man3/resolver.3:267 build/C/man3/rexec.3:158 build/C/man5/services.5:209 build/C/man3/setnetgrent.3:102 build/C/man2/shutdown.2:97 build/C/man7/tcp.7:1133 build/C/man7/udp.7:246 build/C/man7/udplite.7:144 build/C/man7/unix.7:441 build/C/man7/x25.7:113
552 #, no-wrap
553 msgid "SEE ALSO"
554 msgstr ""
555
556 #. type: Plain text
557 #: build/C/man7/arp.7:302
558 msgid "B<capabilities>(7), B<ip>(7)"
559 msgstr ""
560
561 #. type: Plain text
562 #: build/C/man7/arp.7:304
563 msgid "RFC\\ 826 for a description of ARP."
564 msgstr ""
565
566 #. type: Plain text
567 #: build/C/man7/arp.7:307
568 msgid ""
569 "RFC\\ 2461 for a description of IPv6 neighbor discovery and the base "
570 "algorithms used."
571 msgstr ""
572
573 #. type: Plain text
574 #: build/C/man7/arp.7:309
575 msgid "Linux 2.2+ IPv4 ARP uses the IPv6 algorithms when applicable."
576 msgstr ""
577
578 #. type: SH
579 #: build/C/man7/arp.7:309 build/C/man3/byteorder.3:81 build/C/man3/cmsg.3:218 build/C/man7/ddp.7:249 build/C/man3/endian.3:151 build/C/man3/ether_aton.3:131 build/C/man3/getaddrinfo.3:824 build/C/man3/getaddrinfo_a.3:607 build/C/man1/getent.1:369 build/C/man3/gethostbyname.3:441 build/C/man3/getipnodebyname.3:269 build/C/man3/getnameinfo.3:303 build/C/man3/getnetent.3:140 build/C/man3/getnetent_r.3:146 build/C/man2/getpeername.2:121 build/C/man3/getprotoent.3:127 build/C/man3/getprotoent_r.3:238 build/C/man3/getservent.3:136 build/C/man3/getservent_r.3:242 build/C/man5/host.conf.5:204 build/C/man7/hostname.7:91 build/C/man5/hosts.5:125 build/C/man5/hosts.equiv.5:66 build/C/man7/icmp.7:189 build/C/man3/inet.3:307 build/C/man3/inet_ntop.3:120 build/C/man3/inet_pton.3:217 build/C/man7/ip.7:1104 build/C/man7/ipv6.7:340 build/C/man7/netdevice.7:340 build/C/man5/networks.5:79 build/C/man8/nscd.8:91 build/C/man5/nscd.conf.5:191 build/C/man5/nsswitch.conf.5:342 build/C/man7/packet.7:404 build/C/man5/protocols.5:84 build/C/man7/raw.7:279 build/C/man3/rcmd.3:291 build/C/man5/resolv.conf.5:280 build/C/man3/resolver.3:273 build/C/man3/rexec.3:161 build/C/man5/services.5:221 build/C/man3/setnetgrent.3:106 build/C/man2/shutdown.2:101 build/C/man7/tcp.7:1159 build/C/man7/udp.7:257 build/C/man7/udplite.7:153 build/C/man7/unix.7:450 build/C/man7/x25.7:123
580 #, no-wrap
581 msgid "COLOPHON"
582 msgstr ""
583
584 #. type: Plain text
585 #: build/C/man7/arp.7:316 build/C/man3/byteorder.3:88 build/C/man3/cmsg.3:225 build/C/man7/ddp.7:256 build/C/man3/endian.3:158 build/C/man3/ether_aton.3:138 build/C/man3/getaddrinfo.3:831 build/C/man3/getaddrinfo_a.3:614 build/C/man1/getent.1:376 build/C/man3/gethostbyname.3:448 build/C/man3/getipnodebyname.3:276 build/C/man3/getnameinfo.3:310 build/C/man3/getnetent.3:147 build/C/man3/getnetent_r.3:153 build/C/man2/getpeername.2:128 build/C/man3/getprotoent.3:134 build/C/man3/getprotoent_r.3:245 build/C/man3/getservent.3:143 build/C/man3/getservent_r.3:249 build/C/man5/host.conf.5:211 build/C/man7/hostname.7:98 build/C/man5/hosts.5:132 build/C/man5/hosts.equiv.5:73 build/C/man7/icmp.7:196 build/C/man3/inet.3:314 build/C/man3/inet_ntop.3:127 build/C/man3/inet_pton.3:224 build/C/man7/ip.7:1111 build/C/man7/ipv6.7:347 build/C/man7/netdevice.7:347 build/C/man5/networks.5:86 build/C/man8/nscd.8:98 build/C/man5/nscd.conf.5:198 build/C/man5/nsswitch.conf.5:349 build/C/man7/packet.7:411 build/C/man5/protocols.5:91 build/C/man7/raw.7:286 build/C/man3/rcmd.3:298 build/C/man5/resolv.conf.5:287 build/C/man3/resolver.3:280 build/C/man3/rexec.3:168 build/C/man5/services.5:228 build/C/man3/setnetgrent.3:113 build/C/man2/shutdown.2:108 build/C/man7/tcp.7:1166 build/C/man7/udp.7:264 build/C/man7/udplite.7:160 build/C/man7/unix.7:457 build/C/man7/x25.7:130
586 msgid ""
587 "This page is part of release 3.41 of the Linux I<man-pages> project.  A "
588 "description of the project, and information about reporting bugs, can be "
589 "found at http://www.kernel.org/doc/man-pages/."
590 msgstr ""
591
592 #. type: TH
593 #: build/C/man3/byteorder.3:30
594 #, no-wrap
595 msgid "BYTEORDER"
596 msgstr ""
597
598 #. type: TH
599 #: build/C/man3/byteorder.3:30
600 #, no-wrap
601 msgid "2009-01-15"
602 msgstr ""
603
604 #. type: TH
605 #: build/C/man3/byteorder.3:30 build/C/man3/endian.3:26 build/C/man3/ether_aton.3:31 build/C/man3/getaddrinfo.3:41 build/C/man3/getaddrinfo_a.3:27 build/C/man3/getnameinfo.3:7 build/C/man3/getnetent.3:28 build/C/man3/getnetent_r.3:24 build/C/man3/getprotoent.3:28 build/C/man3/getprotoent_r.3:24 build/C/man3/getservent.3:32 build/C/man3/getservent_r.3:24 build/C/man3/inet.3:42 build/C/man8/nscd.8:23 build/C/man5/nscd.conf.5:20 build/C/man3/resolver.3:30 build/C/man3/setnetgrent.3:5
606 #, no-wrap
607 msgid "GNU"
608 msgstr ""
609
610 #. type: Plain text
611 #: build/C/man3/byteorder.3:34
612 msgid ""
613 "htonl, htons, ntohl, ntohs - convert values between host and network byte "
614 "order"
615 msgstr ""
616
617 #. type: SH
618 #: build/C/man3/byteorder.3:34 build/C/man3/cmsg.3:10 build/C/man7/ddp.7:10 build/C/man3/endian.3:31 build/C/man3/ether_aton.3:35 build/C/man3/getaddrinfo.3:45 build/C/man3/getaddrinfo_a.3:31 build/C/man1/getent.1:26 build/C/man3/gethostbyname.3:44 build/C/man3/getipnodebyname.3:28 build/C/man3/getnameinfo.3:10 build/C/man3/getnetent.3:32 build/C/man3/getnetent_r.3:28 build/C/man2/getpeername.2:43 build/C/man3/getprotoent.3:32 build/C/man3/getprotoent_r.3:28 build/C/man3/getservent.3:36 build/C/man3/getservent_r.3:28 build/C/man5/hosts.5:30 build/C/man3/inet.3:46 build/C/man3/inet_ntop.3:27 build/C/man3/inet_pton.3:28 build/C/man7/ip.7:15 build/C/man7/ipv6.7:10 build/C/man7/netdevice.7:18 build/C/man7/packet.7:10 build/C/man7/raw.7:12 build/C/man3/rcmd.3:46 build/C/man5/resolv.conf.5:25 build/C/man3/resolver.3:34 build/C/man3/rexec.3:42 build/C/man3/setnetgrent.3:9 build/C/man2/shutdown.2:41 build/C/man7/tcp.7:19 build/C/man7/udp.7:11 build/C/man7/udplite.7:28 build/C/man7/unix.7:19 build/C/man7/x25.7:10
619 #, no-wrap
620 msgid "SYNOPSIS"
621 msgstr ""
622
623 #. type: Plain text
624 #: build/C/man3/byteorder.3:37 build/C/man3/inet_ntop.3:30 build/C/man3/inet_pton.3:31
625 #, no-wrap
626 msgid "B<#include E<lt>arpa/inet.hE<gt>>\n"
627 msgstr ""
628
629 #. type: Plain text
630 #: build/C/man3/byteorder.3:39
631 #, no-wrap
632 msgid "B<uint32_t htonl(uint32_t >I<hostlong>B<);>\n"
633 msgstr ""
634
635 #. type: Plain text
636 #: build/C/man3/byteorder.3:41
637 #, no-wrap
638 msgid "B<uint16_t htons(uint16_t >I<hostshort>B<);>\n"
639 msgstr ""
640
641 #. type: Plain text
642 #: build/C/man3/byteorder.3:43
643 #, no-wrap
644 msgid "B<uint32_t ntohl(uint32_t >I<netlong>B<);>\n"
645 msgstr ""
646
647 #. type: Plain text
648 #: build/C/man3/byteorder.3:45
649 #, no-wrap
650 msgid "B<uint16_t ntohs(uint16_t >I<netshort>B<);>\n"
651 msgstr ""
652
653 #. type: Plain text
654 #: build/C/man3/byteorder.3:51
655 msgid ""
656 "The B<htonl>()  function converts the unsigned integer I<hostlong> from host "
657 "byte order to network byte order."
658 msgstr ""
659
660 #. type: Plain text
661 #: build/C/man3/byteorder.3:56
662 msgid ""
663 "The B<htons>()  function converts the unsigned short integer I<hostshort> "
664 "from host byte order to network byte order."
665 msgstr ""
666
667 #. type: Plain text
668 #: build/C/man3/byteorder.3:61
669 msgid ""
670 "The B<ntohl>()  function converts the unsigned integer I<netlong> from "
671 "network byte order to host byte order."
672 msgstr ""
673
674 #. type: Plain text
675 #: build/C/man3/byteorder.3:66
676 msgid ""
677 "The B<ntohs>()  function converts the unsigned short integer I<netshort> "
678 "from network byte order to host byte order."
679 msgstr ""
680
681 #. type: Plain text
682 #: build/C/man3/byteorder.3:70
683 msgid ""
684 "On the i386 the host byte order is Least Significant Byte first, whereas the "
685 "network byte order, as used on the Internet, is Most Significant Byte first."
686 msgstr ""
687
688 #. type: SH
689 #: build/C/man3/byteorder.3:70 build/C/man3/cmsg.3:137 build/C/man3/endian.3:74 build/C/man3/ether_aton.3:123 build/C/man3/getaddrinfo.3:582 build/C/man3/getaddrinfo_a.3:303 build/C/man3/gethostbyname.3:301 build/C/man3/getipnodebyname.3:256 build/C/man3/getnameinfo.3:203 build/C/man3/getnetent.3:124 build/C/man3/getnetent_r.3:139 build/C/man2/getpeername.2:99 build/C/man3/getprotoent.3:120 build/C/man3/getprotoent_r.3:129 build/C/man3/getservent.3:129 build/C/man3/getservent_r.3:128 build/C/man3/inet.3:210 build/C/man3/inet_ntop.3:98 build/C/man3/inet_pton.3:127 build/C/man3/rcmd.3:268 build/C/man3/resolver.3:265 build/C/man3/rexec.3:140 build/C/man3/setnetgrent.3:87 build/C/man2/shutdown.2:84
690 #, no-wrap
691 msgid "CONFORMING TO"
692 msgstr ""
693
694 #. type: Plain text
695 #: build/C/man3/byteorder.3:72 build/C/man3/inet_pton.3:129
696 msgid "POSIX.1-2001."
697 msgstr ""
698
699 #. type: Plain text
700 #: build/C/man3/byteorder.3:77
701 msgid ""
702 "Some systems require the inclusion of I<E<lt>netinet/in.hE<gt>> instead of "
703 "I<E<lt>arpa/inet.hE<gt>>."
704 msgstr ""
705
706 #. type: Plain text
707 #: build/C/man3/byteorder.3:81
708 msgid "B<endian>(3), B<gethostbyname>(3), B<getservent>(3)"
709 msgstr ""
710
711 #. type: TH
712 #: build/C/man3/cmsg.3:7
713 #, no-wrap
714 msgid "CMSG"
715 msgstr ""
716
717 #. type: TH
718 #: build/C/man3/cmsg.3:7 build/C/man7/ddp.7:7
719 #, no-wrap
720 msgid "2008-11-20"
721 msgstr ""
722
723 #. type: Plain text
724 #: build/C/man3/cmsg.3:10
725 msgid "CMSG_ALIGN, CMSG_SPACE, CMSG_NXTHDR, CMSG_FIRSTHDR - Access ancillary data"
726 msgstr ""
727
728 #. type: Plain text
729 #: build/C/man3/cmsg.3:12 build/C/man7/ddp.7:12 build/C/man2/getpeername.2:45 build/C/man7/ip.7:17 build/C/man7/ipv6.7:12 build/C/man7/raw.7:14 build/C/man2/shutdown.2:43 build/C/man7/tcp.7:21 build/C/man7/udp.7:13 build/C/man7/udplite.7:30 build/C/man7/unix.7:21 build/C/man7/x25.7:12
730 msgid "B<#include E<lt>sys/socket.hE<gt>>"
731 msgstr ""
732
733 #. type: Plain text
734 #: build/C/man3/cmsg.3:14
735 msgid "B<struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *>I<msgh>B<);>"
736 msgstr ""
737
738 #. type: Plain text
739 #: build/C/man3/cmsg.3:16
740 msgid ""
741 "B<struct cmsghdr *CMSG_NXTHDR(struct msghdr *>I<msgh>B<, struct cmsghdr "
742 "*>I<cmsg>B<);>"
743 msgstr ""
744
745 #. type: Plain text
746 #: build/C/man3/cmsg.3:18
747 msgid "B<size_t CMSG_ALIGN(size_t >I<length>B<);>"
748 msgstr ""
749
750 #. type: Plain text
751 #: build/C/man3/cmsg.3:20
752 msgid "B<size_t CMSG_SPACE(size_t >I<length>B<);>"
753 msgstr ""
754
755 #. type: Plain text
756 #: build/C/man3/cmsg.3:22
757 msgid "B<size_t CMSG_LEN(size_t >I<length>B<);>"
758 msgstr ""
759
760 #. type: Plain text
761 #: build/C/man3/cmsg.3:24
762 msgid "B<unsigned char *CMSG_DATA(struct cmsghdr *>I<cmsg>B<);>"
763 msgstr ""
764
765 #. type: Plain text
766 #: build/C/man3/cmsg.3:32
767 #, no-wrap
768 msgid ""
769 "struct cmsghdr {\n"
770 "    socklen_t cmsg_len;    /* data byte count, including header */\n"
771 "    int       cmsg_level;  /* originating protocol */\n"
772 "    int       cmsg_type;   /* protocol-specific type */\n"
773 "    /* followed by unsigned char cmsg_data[]; */\n"
774 "};\n"
775 msgstr ""
776
777 #. type: Plain text
778 #: build/C/man3/cmsg.3:47
779 msgid ""
780 "These macros are used to create and access control messages (also called "
781 "ancillary data) that are not a part of the socket payload.  This control "
782 "information may include the interface the packet was received on, various "
783 "rarely used header fields, an extended error description, a set of file "
784 "descriptors or UNIX credentials.  For instance, control messages can be used "
785 "to send additional header fields such as IP options.  Ancillary data is sent "
786 "by calling B<sendmsg>(2)  and received by calling B<recvmsg>(2).  See their "
787 "manual pages for more information."
788 msgstr ""
789
790 #. type: Plain text
791 #: build/C/man3/cmsg.3:58
792 msgid ""
793 "Ancillary data is a sequence of I<struct cmsghdr> structures with appended "
794 "data.  This sequence should only be accessed using the macros described in "
795 "this manual page and never directly.  See the specific protocol man pages "
796 "for the available control message types.  The maximum ancillary buffer size "
797 "allowed per socket can be set using I</proc/sys/net/core/optmem_max>; see "
798 "B<socket>(7)."
799 msgstr ""
800
801 #. type: Plain text
802 #: build/C/man3/cmsg.3:65
803 msgid ""
804 "B<CMSG_FIRSTHDR>()  returns a pointer to the first I<cmsghdr> in the "
805 "ancillary data buffer associated with the passed I<msghdr>."
806 msgstr ""
807
808 #. type: Plain text
809 #: build/C/man3/cmsg.3:72
810 msgid ""
811 "B<CMSG_NXTHDR>()  returns the next valid I<cmsghdr> after the passed "
812 "I<cmsghdr>.  It returns NULL when there isn't enough space left in the "
813 "buffer."
814 msgstr ""
815
816 #. type: Plain text
817 #: build/C/man3/cmsg.3:77
818 msgid ""
819 "B<CMSG_ALIGN>(), given a length, returns it including the required "
820 "alignment.  This is a constant expression."
821 msgstr ""
822
823 #. type: Plain text
824 #: build/C/man3/cmsg.3:82
825 msgid ""
826 "B<CMSG_SPACE>()  returns the number of bytes an ancillary element with "
827 "payload of the passed data length occupies.  This is a constant expression."
828 msgstr ""
829
830 #. type: Plain text
831 #: build/C/man3/cmsg.3:86
832 msgid "B<CMSG_DATA>()  returns a pointer to the data portion of a I<cmsghdr>."
833 msgstr ""
834
835 #. type: Plain text
836 #: build/C/man3/cmsg.3:97
837 msgid ""
838 "B<CMSG_LEN>()  returns the value to store in the I<cmsg_len> member of the "
839 "I<cmsghdr> structure, taking into account any necessary alignment.  It takes "
840 "the data length as an argument.  This is a constant expression."
841 msgstr ""
842
843 #. type: Plain text
844 #: build/C/man3/cmsg.3:130
845 msgid ""
846 "To create ancillary data, first initialize the I<msg_controllen> member of "
847 "the I<msghdr> with the length of the control message buffer.  Use "
848 "B<CMSG_FIRSTHDR>()  on the I<msghdr> to get the first control message and "
849 "B<CMSG_NXTHDR>()  to get all subsequent ones.  In each control message, "
850 "initialize I<cmsg_len> (with B<CMSG_LEN>()), the other I<cmsghdr> header "
851 "fields, and the data portion using B<CMSG_DATA>().  Finally, the "
852 "I<msg_controllen> field of the I<msghdr> should be set to the sum of the "
853 "B<CMSG_SPACE>()  of the length of all control messages in the buffer.  For "
854 "more information on the I<msghdr>, see B<recvmsg>(2)."
855 msgstr ""
856
857 #. type: Plain text
858 #: build/C/man3/cmsg.3:137
859 msgid ""
860 "When the control message buffer is too short to store all messages, the "
861 "B<MSG_CTRUNC> flag is set in the I<msg_flags> member of the I<msghdr>."
862 msgstr ""
863
864 #. type: Plain text
865 #: build/C/man3/cmsg.3:142
866 msgid ""
867 "This ancillary data model conforms to the POSIX.1g draft, 4.4BSD-Lite, the "
868 "IPv6 advanced API described in RFC\\ 2292 and the SUSv2.  B<CMSG_ALIGN>()  "
869 "is a Linux extension."
870 msgstr ""
871
872 #. type: SH
873 #: build/C/man3/cmsg.3:142 build/C/man7/ddp.7:221 build/C/man3/endian.3:89 build/C/man3/getaddrinfo.3:587 build/C/man3/getaddrinfo_a.3:306 build/C/man3/gethostbyname.3:325 build/C/man3/getipnodebyname.3:259 build/C/man3/getnameinfo.3:205 build/C/man3/getnetent.3:126 build/C/man2/getpeername.2:103 build/C/man5/host.conf.5:190 build/C/man5/hosts.5:88 build/C/man5/hosts.equiv.5:49 build/C/man7/icmp.7:163 build/C/man3/inet.3:218 build/C/man3/inet_pton.3:129 build/C/man7/ip.7:1006 build/C/man7/ipv6.7:311 build/C/man7/netdevice.7:303 build/C/man8/nscd.8:60 build/C/man5/nsswitch.conf.5:320 build/C/man7/packet.7:295 build/C/man7/raw.7:183 build/C/man3/setnetgrent.3:98 build/C/man2/shutdown.2:88 build/C/man7/unix.7:403
874 #, no-wrap
875 msgid "NOTES"
876 msgstr ""
877
878 #. type: Plain text
879 #: build/C/man3/cmsg.3:147
880 msgid ""
881 "For portability, ancillary data should be accessed only using the macros "
882 "described here.  B<CMSG_ALIGN>()  is a Linux extension and should be not "
883 "used in portable programs."
884 msgstr ""
885
886 #. type: Plain text
887 #: build/C/man3/cmsg.3:157
888 msgid ""
889 "In Linux, B<CMSG_LEN>(), B<CMSG_DATA>(), and B<CMSG_ALIGN>()  are constant "
890 "expressions (assuming their argument is constant); this could be used to "
891 "declare the size of global variables.  This may be not portable, however."
892 msgstr ""
893
894 #. type: SH
895 #: build/C/man3/cmsg.3:157 build/C/man3/endian.3:105 build/C/man3/getaddrinfo.3:610 build/C/man3/getaddrinfo_a.3:312 build/C/man3/getnameinfo.3:233 build/C/man3/getprotoent_r.3:133 build/C/man3/getservent_r.3:132 build/C/man5/hosts.5:107 build/C/man3/inet.3:254 build/C/man3/inet_ntop.3:113 build/C/man3/inet_pton.3:154 build/C/man7/unix.7:433
896 #, no-wrap
897 msgid "EXAMPLE"
898 msgstr ""
899
900 #. type: Plain text
901 #: build/C/man3/cmsg.3:161
902 msgid "This code looks for the B<IP_TTL> option in a received ancillary buffer:"
903 msgstr ""
904
905 #. type: Plain text
906 #: build/C/man3/cmsg.3:168
907 #, no-wrap
908 msgid ""
909 "struct msghdr msgh;\n"
910 "struct cmsghdr *cmsg;\n"
911 "int *ttlptr;\n"
912 "int received_ttl;\n"
913 msgstr ""
914
915 #. type: Plain text
916 #: build/C/man3/cmsg.3:185
917 #, no-wrap
918 msgid ""
919 "/* Receive auxiliary data in msgh */\n"
920 "for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL;\n"
921 "        cmsg = CMSG_NXTHDR(&msgh,cmsg)) {\n"
922 "    if (cmsg-E<gt>cmsg_level == IPPROTO_IP\n"
923 "            && cmsg-E<gt>cmsg_type == IP_TTL) {\n"
924 "        ttlptr = (int *) CMSG_DATA(cmsg);\n"
925 "        received_ttl = *ttlptr;\n"
926 "        break;\n"
927 "    }\n"
928 "}\n"
929 "if (cmsg == NULL) {\n"
930 "    /*\n"
931 "     * Error: IP_TTL not enabled or small buffer\n"
932 "     * or I/O error.\n"
933 "     */\n"
934 "}\n"
935 msgstr ""
936
937 #. type: Plain text
938 #: build/C/man3/cmsg.3:191
939 msgid ""
940 "The code below passes an array of file descriptors over a UNIX domain socket "
941 "using B<SCM_RIGHTS>:"
942 msgstr ""
943
944 #. type: Plain text
945 #: build/C/man3/cmsg.3:199
946 #, no-wrap
947 msgid ""
948 "struct msghdr msg = {0};\n"
949 "struct cmsghdr *cmsg;\n"
950 "int myfds[NUM_FD]; /* Contains the file descriptors to pass. */\n"
951 "char buf[CMSG_SPACE(sizeof myfds)];  /* ancillary data buffer */\n"
952 "int *fdptr;\n"
953 msgstr ""
954
955 #. type: Plain text
956 #: build/C/man3/cmsg.3:211
957 #, no-wrap
958 msgid ""
959 "msg.msg_control = buf;\n"
960 "msg.msg_controllen = sizeof buf;\n"
961 "cmsg = CMSG_FIRSTHDR(&msg);\n"
962 "cmsg-E<gt>cmsg_level = SOL_SOCKET;\n"
963 "cmsg-E<gt>cmsg_type = SCM_RIGHTS;\n"
964 "cmsg-E<gt>cmsg_len = CMSG_LEN(sizeof(int) * NUM_FD);\n"
965 "/* Initialize the payload: */\n"
966 "fdptr = (int *) CMSG_DATA(cmsg);\n"
967 "memcpy(fdptr, myfds, NUM_FD * sizeof(int));\n"
968 "/* Sum of the length of all control messages in the buffer: */\n"
969 "msg.msg_controllen = cmsg-E<gt>cmsg_len;\n"
970 msgstr ""
971
972 #. type: Plain text
973 #: build/C/man3/cmsg.3:216
974 msgid "B<recvmsg>(2), B<sendmsg>(2)"
975 msgstr ""
976
977 #. type: Plain text
978 #: build/C/man3/cmsg.3:218
979 msgid "RFC\\ 2292"
980 msgstr ""
981
982 #. type: TH
983 #: build/C/man7/ddp.7:7
984 #, no-wrap
985 msgid "DDP"
986 msgstr ""
987
988 #. type: Plain text
989 #: build/C/man7/ddp.7:10
990 msgid "ddp - Linux AppleTalk protocol implementation"
991 msgstr ""
992
993 #. type: Plain text
994 #: build/C/man7/ddp.7:14
995 msgid "B<#include E<lt>netatalk/at.hE<gt>>"
996 msgstr ""
997
998 #. type: Plain text
999 #: build/C/man7/ddp.7:16
1000 msgid "I<ddp_socket>B< = socket(AF_APPLETALK, SOCK_DGRAM, 0);>"
1001 msgstr ""
1002
1003 #. type: Plain text
1004 #: build/C/man7/ddp.7:18
1005 msgid "I<raw_socket>B< = socket(AF_APPLETALK, SOCK_RAW, >I<protocol>B<);>"
1006 msgstr ""
1007
1008 #. type: Plain text
1009 #: build/C/man7/ddp.7:29
1010 msgid ""
1011 "Linux implements the Appletalk protocols described in I<Inside Appletalk>.  "
1012 "Only the DDP layer and AARP are present in the kernel.  They are designed to "
1013 "be used via the B<netatalk> protocol libraries.  This page documents the "
1014 "interface for those who wish or need to use the DDP layer directly."
1015 msgstr ""
1016
1017 #. type: Plain text
1018 #: build/C/man7/ddp.7:34
1019 msgid ""
1020 "The communication between Appletalk and the user program works using a "
1021 "BSD-compatible socket interface.  For more information on sockets, see "
1022 "B<socket>(7)."
1023 msgstr ""
1024
1025 #. type: Plain text
1026 #: build/C/man7/ddp.7:55
1027 msgid ""
1028 "An AppleTalk socket is created by calling the B<socket>(2)  function with a "
1029 "B<AF_APPLETALK> socket family argument.  Valid socket types are "
1030 "B<SOCK_DGRAM> to open a B<ddp> socket or B<SOCK_RAW> to open a B<raw> "
1031 "socket.  I<protocol> is the Appletalk protocol to be received or sent.  For "
1032 "B<SOCK_RAW> you must specify B<ATPROTO_DDP>."
1033 msgstr ""
1034
1035 #. type: Plain text
1036 #: build/C/man7/ddp.7:60
1037 msgid ""
1038 "Raw sockets may be only opened by a process with effective user ID 0 or when "
1039 "the process has the B<CAP_NET_RAW> capability."
1040 msgstr ""
1041
1042 #. type: SS
1043 #: build/C/man7/ddp.7:60 build/C/man7/ip.7:96 build/C/man7/ipv6.7:63 build/C/man7/raw.7:89 build/C/man7/udp.7:92 build/C/man7/udplite.7:56 build/C/man7/unix.7:53
1044 #, no-wrap
1045 msgid "Address Format"
1046 msgstr ""
1047
1048 #. type: Plain text
1049 #: build/C/man7/ddp.7:63
1050 msgid ""
1051 "An Appletalk socket address is defined as a combination of a network number, "
1052 "a node number, and a port number."
1053 msgstr ""
1054
1055 #. type: Plain text
1056 #: build/C/man7/ddp.7:70
1057 #, no-wrap
1058 msgid ""
1059 "struct at_addr {\n"
1060 "    unsigned short s_net;\n"
1061 "    unsigned char  s_node;\n"
1062 "};\n"
1063 msgstr ""
1064
1065 #. type: Plain text
1066 #: build/C/man7/ddp.7:76
1067 #, no-wrap
1068 msgid ""
1069 "struct sockaddr_atalk {\n"
1070 "    sa_family_t    sat_family;    /* address family */\n"
1071 "    unsigned char  sat_port;      /* port */\n"
1072 "    struct at_addr sat_addr;      /* net/node */\n"
1073 "};\n"
1074 msgstr ""
1075
1076 #.  FIXME this doesn't make sense [johnl]
1077 #. type: Plain text
1078 #: build/C/man7/ddp.7:115
1079 msgid ""
1080 "I<sat_family> is always set to B<AF_APPLETALK>.  I<sat_port> contains the "
1081 "port.  The port numbers below 129 are known as I<reserved ports>.  Only "
1082 "processes with the effective user ID 0 or the B<CAP_NET_BIND_SERVICE> "
1083 "capability may B<bind>(2)  to these sockets.  I<sat_addr> is the host "
1084 "address.  The I<net> member of I<struct at_addr> contains the host network "
1085 "in network byte order.  The value of B<AT_ANYNET> is a wildcard and also "
1086 "implies \\(lqthis network.\\(rq The I<node> member of I<struct at_addr> "
1087 "contains the host node number.  The value of B<AT_ANYNODE> is a wildcard and "
1088 "also implies \\(lqthis node.\\(rq The value of B<ATADDR_BCAST> is a link "
1089 "local broadcast address."
1090 msgstr ""
1091
1092 #. type: SS
1093 #: build/C/man7/ddp.7:115 build/C/man7/ip.7:197 build/C/man7/ipv6.7:113 build/C/man7/packet.7:174 build/C/man7/raw.7:105 build/C/man7/tcp.7:809 build/C/man7/udp.7:172 build/C/man7/udplite.7:65 build/C/man7/unix.7:133 build/C/man7/x25.7:67
1094 #, no-wrap
1095 msgid "Socket Options"
1096 msgstr ""
1097
1098 #. type: Plain text
1099 #: build/C/man7/ddp.7:117
1100 msgid "No protocol-specific socket options are supported."
1101 msgstr ""
1102
1103 #. type: Plain text
1104 #: build/C/man7/ddp.7:123
1105 msgid ""
1106 "IP supports a set of I</proc> interfaces to configure some global AppleTalk "
1107 "parameters.  The parameters can be accessed by reading or writing files in "
1108 "the directory I</proc/sys/net/atalk/>."
1109 msgstr ""
1110
1111 #. type: TP
1112 #: build/C/man7/ddp.7:123
1113 #, no-wrap
1114 msgid "I<aarp-expiry-time>"
1115 msgstr ""
1116
1117 #. type: Plain text
1118 #: build/C/man7/ddp.7:126
1119 msgid "The time interval (in seconds) before an AARP cache entry expires."
1120 msgstr ""
1121
1122 #. type: TP
1123 #: build/C/man7/ddp.7:126
1124 #, no-wrap
1125 msgid "I<aarp-resolve-time>"
1126 msgstr ""
1127
1128 #. type: Plain text
1129 #: build/C/man7/ddp.7:129
1130 msgid "The time interval (in seconds) before an AARP cache entry is resolved."
1131 msgstr ""
1132
1133 #. type: TP
1134 #: build/C/man7/ddp.7:129
1135 #, no-wrap
1136 msgid "I<aarp-retransmit-limit>"
1137 msgstr ""
1138
1139 #. type: Plain text
1140 #: build/C/man7/ddp.7:133
1141 msgid ""
1142 "The number of retransmissions of an AARP query before the node is declared "
1143 "dead."
1144 msgstr ""
1145
1146 #. type: TP
1147 #: build/C/man7/ddp.7:133
1148 #, no-wrap
1149 msgid "I<aarp-tick-time>"
1150 msgstr ""
1151
1152 #. type: Plain text
1153 #: build/C/man7/ddp.7:136
1154 msgid "The timer rate (in seconds) for the timer driving AARP."
1155 msgstr ""
1156
1157 #. type: Plain text
1158 #: build/C/man7/ddp.7:139
1159 msgid ""
1160 "The default values match the specification and should never need to be "
1161 "changed."
1162 msgstr ""
1163
1164 #.  FIXME Add a section about multicasting
1165 #. type: Plain text
1166 #: build/C/man7/ddp.7:144
1167 msgid "All ioctls described in B<socket>(7)  apply to DDP."
1168 msgstr ""
1169
1170 #. type: SH
1171 #: build/C/man7/ddp.7:144 build/C/man3/gethostbyname.3:276 build/C/man3/getnetent_r.3:127 build/C/man2/getpeername.2:71 build/C/man3/getprotoent_r.3:117 build/C/man3/getservent_r.3:116 build/C/man3/inet_ntop.3:89 build/C/man7/ip.7:915 build/C/man7/ipv6.7:270 build/C/man7/packet.7:241 build/C/man7/raw.7:140 build/C/man2/shutdown.2:72 build/C/man7/tcp.7:1096 build/C/man7/udp.7:231 build/C/man7/udplite.7:119 build/C/man7/unix.7:318
1172 #, no-wrap
1173 msgid "ERRORS"
1174 msgstr ""
1175
1176 #. type: TP
1177 #: build/C/man7/ddp.7:148 build/C/man7/ip.7:919 build/C/man7/raw.7:141
1178 #, no-wrap
1179 msgid "B<EACCES>"
1180 msgstr ""
1181
1182 #. type: Plain text
1183 #: build/C/man7/ddp.7:155
1184 msgid ""
1185 "The user tried to execute an operation without the necessary permissions.  "
1186 "These include sending to a broadcast address without having the broadcast "
1187 "flag set, and trying to bind to a reserved port without effective user ID 0 "
1188 "or B<CAP_NET_BIND_SERVICE>."
1189 msgstr ""
1190
1191 #. type: TP
1192 #: build/C/man7/ddp.7:155 build/C/man7/ip.7:935 build/C/man7/unix.7:319
1193 #, no-wrap
1194 msgid "B<EADDRINUSE>"
1195 msgstr ""
1196
1197 #. type: Plain text
1198 #: build/C/man7/ddp.7:158 build/C/man7/ip.7:938
1199 msgid "Tried to bind to an address already in use."
1200 msgstr ""
1201
1202 #. type: TP
1203 #: build/C/man7/ddp.7:158 build/C/man7/ip.7:938 build/C/man7/packet.7:242
1204 #, no-wrap
1205 msgid "B<EADDRNOTAVAIL>"
1206 msgstr ""
1207
1208 #. type: Plain text
1209 #: build/C/man7/ddp.7:162 build/C/man7/ip.7:942
1210 msgid ""
1211 "A nonexistent interface was requested or the requested source address was "
1212 "not local."
1213 msgstr ""
1214
1215 #. type: TP
1216 #: build/C/man7/ddp.7:162 build/C/man7/ip.7:942
1217 #, no-wrap
1218 msgid "B<EAGAIN>"
1219 msgstr ""
1220
1221 #. type: Plain text
1222 #: build/C/man7/ddp.7:165 build/C/man7/ip.7:945
1223 msgid "Operation on a nonblocking socket would block."
1224 msgstr ""
1225
1226 #. type: TP
1227 #: build/C/man7/ddp.7:165 build/C/man7/ip.7:945
1228 #, no-wrap
1229 msgid "B<EALREADY>"
1230 msgstr ""
1231
1232 #. type: Plain text
1233 #: build/C/man7/ddp.7:168
1234 msgid "A connection operation on a nonblocking socket is already in progress."
1235 msgstr ""
1236
1237 #. type: TP
1238 #: build/C/man7/ddp.7:168 build/C/man7/ip.7:948
1239 #, no-wrap
1240 msgid "B<ECONNABORTED>"
1241 msgstr ""
1242
1243 #. type: Plain text
1244 #: build/C/man7/ddp.7:172 build/C/man7/ip.7:952
1245 msgid "A connection was closed during an B<accept>(2)."
1246 msgstr ""
1247
1248 #. type: TP
1249 #: build/C/man7/ddp.7:172 build/C/man7/ip.7:952
1250 #, no-wrap
1251 msgid "B<EHOSTUNREACH>"
1252 msgstr ""
1253
1254 #. type: Plain text
1255 #: build/C/man7/ddp.7:175
1256 msgid "No routing table entry matches the destination address."
1257 msgstr ""
1258
1259 #. type: TP
1260 #: build/C/man7/ddp.7:175 build/C/man2/getpeername.2:83 build/C/man7/ip.7:957 build/C/man7/packet.7:248 build/C/man7/raw.7:148 build/C/man7/unix.7:335
1261 #, no-wrap
1262 msgid "B<EINVAL>"
1263 msgstr ""
1264
1265 #. type: Plain text
1266 #: build/C/man7/ddp.7:178
1267 msgid "Invalid argument passed."
1268 msgstr ""
1269
1270 #. type: TP
1271 #: build/C/man7/ddp.7:178 build/C/man7/ip.7:963 build/C/man7/unix.7:344
1272 #, no-wrap
1273 msgid "B<EISCONN>"
1274 msgstr ""
1275
1276 #. type: Plain text
1277 #: build/C/man7/ddp.7:182 build/C/man7/ip.7:967
1278 msgid "B<connect>(2)  was called on an already connected socket."
1279 msgstr ""
1280
1281 #. type: TP
1282 #: build/C/man7/ddp.7:182 build/C/man7/ip.7:967 build/C/man7/packet.7:251 build/C/man7/raw.7:151
1283 #, no-wrap
1284 msgid "B<EMSGSIZE>"
1285 msgstr ""
1286
1287 #. type: Plain text
1288 #: build/C/man7/ddp.7:185
1289 msgid "Datagram is bigger than the DDP MTU."
1290 msgstr ""
1291
1292 #. type: TP
1293 #: build/C/man7/ddp.7:185 build/C/man7/ipv6.7:272 build/C/man7/packet.7:260
1294 #, no-wrap
1295 msgid "B<ENODEV>"
1296 msgstr ""
1297
1298 #. type: Plain text
1299 #: build/C/man7/ddp.7:188
1300 msgid "Network device not available or not capable of sending IP."
1301 msgstr ""
1302
1303 #. type: TP
1304 #: build/C/man7/ddp.7:188 build/C/man3/getnetent_r.3:128 build/C/man3/getprotoent_r.3:118 build/C/man3/getservent_r.3:117 build/C/man7/ip.7:975 build/C/man7/packet.7:263 build/C/man7/unix.7:349
1305 #, no-wrap
1306 msgid "B<ENOENT>"
1307 msgstr ""
1308
1309 #. type: Plain text
1310 #: build/C/man7/ddp.7:192 build/C/man7/ip.7:979
1311 msgid "B<SIOCGSTAMP> was called on a socket where no packet arrived."
1312 msgstr ""
1313
1314 #. type: TP
1315 #: build/C/man7/ddp.7:192
1316 #, no-wrap
1317 msgid "B<ENOMEM> and B<ENOBUFS>"
1318 msgstr ""
1319
1320 #. type: Plain text
1321 #: build/C/man7/ddp.7:195
1322 msgid "Not enough memory available."
1323 msgstr ""
1324
1325 #. type: TP
1326 #: build/C/man7/ddp.7:195 build/C/man7/ip.7:979
1327 #, no-wrap
1328 msgid "B<ENOPKG>"
1329 msgstr ""
1330
1331 #. type: Plain text
1332 #: build/C/man7/ddp.7:198 build/C/man7/ip.7:982
1333 msgid "A kernel subsystem was not configured."
1334 msgstr ""
1335
1336 #. type: TP
1337 #: build/C/man7/ddp.7:198 build/C/man7/ip.7:982
1338 #, no-wrap
1339 msgid "B<ENOPROTOOPT> and B<EOPNOTSUPP>"
1340 msgstr ""
1341
1342 #. type: Plain text
1343 #: build/C/man7/ddp.7:201 build/C/man7/ip.7:985
1344 msgid "Invalid socket option passed."
1345 msgstr ""
1346
1347 #. type: TP
1348 #: build/C/man7/ddp.7:201 build/C/man2/getpeername.2:91 build/C/man7/ip.7:985 build/C/man7/packet.7:266 build/C/man2/shutdown.2:77 build/C/man7/unix.7:357
1349 #, no-wrap
1350 msgid "B<ENOTCONN>"
1351 msgstr ""
1352
1353 #. type: Plain text
1354 #: build/C/man7/ddp.7:205 build/C/man7/ip.7:989
1355 msgid ""
1356 "The operation is only defined on a connected socket, but the socket wasn't "
1357 "connected."
1358 msgstr ""
1359
1360 #. type: TP
1361 #: build/C/man7/ddp.7:205 build/C/man7/ip.7:989 build/C/man7/packet.7:272 build/C/man7/raw.7:162 build/C/man7/unix.7:364
1362 #, no-wrap
1363 msgid "B<EPERM>"
1364 msgstr ""
1365
1366 #. type: Plain text
1367 #: build/C/man7/ddp.7:210
1368 msgid ""
1369 "User doesn't have permission to set high priority, make a configuration "
1370 "change, or send signals to the requested process or group,"
1371 msgstr ""
1372
1373 #. type: TP
1374 #: build/C/man7/ddp.7:210 build/C/man7/ip.7:993 build/C/man7/tcp.7:1103 build/C/man7/unix.7:368
1375 #, no-wrap
1376 msgid "B<EPIPE>"
1377 msgstr ""
1378
1379 #. type: Plain text
1380 #: build/C/man7/ddp.7:213 build/C/man7/ip.7:996
1381 msgid "The connection was unexpectedly closed or shut down by the other end."
1382 msgstr ""
1383
1384 #. type: TP
1385 #: build/C/man7/ddp.7:213 build/C/man7/ip.7:996 build/C/man7/unix.7:390
1386 #, no-wrap
1387 msgid "B<ESOCKTNOSUPPORT>"
1388 msgstr ""
1389
1390 #. type: Plain text
1391 #: build/C/man7/ddp.7:216
1392 msgid "The socket was unconfigured, or an unknown socket type was requested."
1393 msgstr ""
1394
1395 #. type: Plain text
1396 #: build/C/man7/ddp.7:221
1397 msgid ""
1398 "Appletalk is supported by Linux 2.0 or higher.  The I</proc> interfaces "
1399 "exist since Linux 2.2."
1400 msgstr ""
1401
1402 #. type: Plain text
1403 #: build/C/man7/ddp.7:227
1404 msgid ""
1405 "Be very careful with the B<SO_BROADCAST> option - it is not privileged in "
1406 "Linux.  It is easy to overload the network with careless sending to "
1407 "broadcast addresses."
1408 msgstr ""
1409
1410 #. type: SS
1411 #: build/C/man7/ddp.7:227 build/C/man7/ip.7:1054 build/C/man7/packet.7:326
1412 #, no-wrap
1413 msgid "Compatibility"
1414 msgstr ""
1415
1416 #. type: Plain text
1417 #: build/C/man7/ddp.7:234
1418 msgid ""
1419 "The basic AppleTalk socket interface is compatible with B<netatalk> on "
1420 "BSD-derived systems.  Many BSD systems fail to check B<SO_BROADCAST> when "
1421 "sending broadcast frames; this can lead to compatibility problems."
1422 msgstr ""
1423
1424 #. type: Plain text
1425 #: build/C/man7/ddp.7:239
1426 msgid ""
1427 "The raw socket mode is unique to Linux and exists to support the alternative "
1428 "CAP package and AppleTalk monitoring tools more easily."
1429 msgstr ""
1430
1431 #. type: Plain text
1432 #: build/C/man7/ddp.7:241 build/C/man7/ip.7:1069
1433 msgid "There are too many inconsistent error values."
1434 msgstr ""
1435
1436 #. type: Plain text
1437 #: build/C/man7/ddp.7:244
1438 msgid ""
1439 "The ioctls used to configure routing tables, devices, AARP tables and other "
1440 "devices are not yet described."
1441 msgstr ""
1442
1443 #. type: Plain text
1444 #: build/C/man7/ddp.7:249
1445 msgid "B<recvmsg>(2), B<sendmsg>(2), B<capabilities>(7), B<socket>(7)"
1446 msgstr ""
1447
1448 #. type: TH
1449 #: build/C/man3/endian.3:26
1450 #, no-wrap
1451 msgid "ENDIAN"
1452 msgstr ""
1453
1454 #. type: TH
1455 #: build/C/man3/endian.3:26 build/C/man3/getnetent_r.3:24 build/C/man3/getprotoent_r.3:24 build/C/man3/getservent_r.3:24
1456 #, no-wrap
1457 msgid "2010-09-10"
1458 msgstr ""
1459
1460 #. type: Plain text
1461 #: build/C/man3/endian.3:31
1462 msgid ""
1463 "htobe16, htole16, be16toh, le16toh, htobe32, htole32, be32toh, le32toh, "
1464 "htobe64, htole64, be64toh, le64toh - convert values between host and "
1465 "big-/little-endian byte order"
1466 msgstr ""
1467
1468 #. type: Plain text
1469 #: build/C/man3/endian.3:35
1470 #, no-wrap
1471 msgid ""
1472 "B<#define _BSD_SOURCE>             /* See feature_test_macros(7) */\n"
1473 "B<#include E<lt>endian.hE<gt>>\n"
1474 msgstr ""
1475
1476 #. type: Plain text
1477 #: build/C/man3/endian.3:40
1478 #, no-wrap
1479 msgid ""
1480 "B<uint16_t htobe16(uint16_t >I<host_16bits>B<);>\n"
1481 "B<uint16_t htole16(uint16_t >I<host_16bits>B<);>\n"
1482 "B<uint16_t be16toh(uint16_t >I<big_endian_16bits>B<);>\n"
1483 "B<uint16_t le16toh(uint16_t >I<little_endian_16bits>B<);>\n"
1484 msgstr ""
1485
1486 #. type: Plain text
1487 #: build/C/man3/endian.3:45
1488 #, no-wrap
1489 msgid ""
1490 "B<uint32_t htobe32(uint32_t >I<host_32bits>B<);>\n"
1491 "B<uint32_t htole32(uint32_t >I<host_32bits>B<);>\n"
1492 "B<uint32_t be32toh(uint32_t >I<big_endian_32bits>B<);>\n"
1493 "B<uint32_t le32toh(uint32_t >I<little_endian_32bits>B<);>\n"
1494 msgstr ""
1495
1496 #. type: Plain text
1497 #: build/C/man3/endian.3:50
1498 #, no-wrap
1499 msgid ""
1500 "B<uint64_t htobe64(uint64_t >I<host_64bits>B<);>\n"
1501 "B<uint64_t htole64(uint64_t >I<host_64bits>B<);>\n"
1502 "B<uint64_t be64toh(uint64_t >I<big_endian_64bits>B<);>\n"
1503 "B<uint64_t le64toh(uint64_t >I<little_endian_64bits>B<);>\n"
1504 msgstr ""
1505
1506 #. type: Plain text
1507 #: build/C/man3/endian.3:55
1508 msgid ""
1509 "These functions convert the byte encoding of integer values from the byte "
1510 "order that the current CPU (the \"host\") uses, to and from little-endian "
1511 "and big-endian byte order."
1512 msgstr ""
1513
1514 #. type: Plain text
1515 #: build/C/man3/endian.3:60
1516 msgid ""
1517 "The number, I<nn>, in the name of each function indicates the size of "
1518 "integer handled by the function, either 16, 32, or 64 bits."
1519 msgstr ""
1520
1521 #. type: Plain text
1522 #: build/C/man3/endian.3:63
1523 msgid ""
1524 "The functions with names of the form \"htobeI<nn>\" convert from host byte "
1525 "order to big-endian order."
1526 msgstr ""
1527
1528 #. type: Plain text
1529 #: build/C/man3/endian.3:66
1530 msgid ""
1531 "The functions with names of the form \"htoleI<nn>\" convert from host byte "
1532 "order to little-endian order."
1533 msgstr ""
1534
1535 #. type: Plain text
1536 #: build/C/man3/endian.3:69
1537 msgid ""
1538 "The functions with names of the form \"beI<nn>toh\" convert from big-endian "
1539 "order to host byte order."
1540 msgstr ""
1541
1542 #. type: Plain text
1543 #: build/C/man3/endian.3:72
1544 msgid ""
1545 "The functions with names of the form \"leI<nn>toh\" convert from "
1546 "little-endian order to host byte order."
1547 msgstr ""
1548
1549 #. type: Plain text
1550 #: build/C/man3/endian.3:74
1551 msgid "These functions were added to glibc in version 2.9."
1552 msgstr ""
1553
1554 #. type: Plain text
1555 #: build/C/man3/endian.3:89
1556 msgid ""
1557 "These functions are nonstandard.  Similar functions are present on the BSDs, "
1558 "where the required header file is I<E<lt>sys/endian.hE<gt>> instead of "
1559 "I<E<lt>endian.hE<gt>>.  Unfortunately, NetBSD, FreeBSD, and glibc haven't "
1560 "followed the original OpenBSD naming convention for these functions, whereby "
1561 "the I<nn> component always appears at the end of the function name (thus, "
1562 "for example, in NetBSD, FreeBSD, and glibc, the equivalent of OpenBSDs "
1563 "\"betoh32\" is \"be32toh\")."
1564 msgstr ""
1565
1566 #. type: Plain text
1567 #: build/C/man3/endian.3:97
1568 msgid ""
1569 "These functions are similar to the older B<byteorder>(3)  family of "
1570 "functions.  For example, B<be32toh>()  is identical to B<ntohl>()B<.>"
1571 msgstr ""
1572
1573 #. type: Plain text
1574 #: build/C/man3/endian.3:105
1575 msgid ""
1576 "The advantage of the B<byteorder>(3)  functions is that they are standard "
1577 "functions available on all UNIX systems.  On the other hand, the fact that "
1578 "they were designed for use in the context of TCP/IP means that they lack the "
1579 "64-bit and little-endian variants described in this page."
1580 msgstr ""
1581
1582 #. type: Plain text
1583 #: build/C/man3/endian.3:112
1584 msgid ""
1585 "The program below display the results of converting an integer from host "
1586 "byte order to both little-endian and big-endian byte order.  Since host byte "
1587 "order is either little-endian or big-endian, only one of these conversions "
1588 "will have an effect.  When we run this program on a little-endian system "
1589 "such as x86-32, we see the following:"
1590 msgstr ""
1591
1592 #. type: Plain text
1593 #: build/C/man3/endian.3:119
1594 #, no-wrap
1595 msgid ""
1596 "$ B<./a.out>\n"
1597 "x.u32 = 0x44332211\n"
1598 "htole32(x.u32) = 0x44332211\n"
1599 "htobe32(x.u32) = 0x11223344\n"
1600 msgstr ""
1601
1602 #. type: SS
1603 #: build/C/man3/endian.3:121 build/C/man3/getprotoent_r.3:160 build/C/man3/getservent_r.3:158 build/C/man3/inet.3:270 build/C/man3/inet_pton.3:171
1604 #, no-wrap
1605 msgid "Program source"
1606 msgstr ""
1607
1608 #. type: Plain text
1609 #: build/C/man3/endian.3:128
1610 #, no-wrap
1611 msgid ""
1612 "#include E<lt>endian.hE<gt>\n"
1613 "#include E<lt>stdint.hE<gt>\n"
1614 "#include E<lt>stdio.hE<gt>\n"
1615 "#include E<lt>stdlib.hE<gt>\n"
1616 msgstr ""
1617
1618 #. type: Plain text
1619 #: build/C/man3/endian.3:136
1620 #, no-wrap
1621 msgid ""
1622 "int\n"
1623 "main(int argc, char *argv[])\n"
1624 "{\n"
1625 "    union {\n"
1626 "\tuint32_t u32;\n"
1627 "\tuint8_t arr[4];\n"
1628 "    } x;\n"
1629 msgstr ""
1630
1631 #. type: Plain text
1632 #: build/C/man3/endian.3:141
1633 #, no-wrap
1634 msgid ""
1635 "    x.arr[0] = 0x11;\t/* Lowest-address byte */\n"
1636 "    x.arr[1] = 0x22;\n"
1637 "    x.arr[2] = 0x33;\n"
1638 "    x.arr[3] = 0x44;\t/* Highest-address byte */\n"
1639 msgstr ""
1640
1641 #. type: Plain text
1642 #: build/C/man3/endian.3:145
1643 #, no-wrap
1644 msgid ""
1645 "    printf(\"x.u32 = 0x%x\\en\", x.u32);\n"
1646 "    printf(\"htole32(x.u32) = 0x%x\\en\", htole32(x.u32));\n"
1647 "    printf(\"htobe32(x.u32) = 0x%x\\en\", htobe32(x.u32));\n"
1648 msgstr ""
1649
1650 #. type: Plain text
1651 #: build/C/man3/endian.3:148 build/C/man3/getaddrinfo.3:814 build/C/man3/getprotoent_r.3:234 build/C/man3/getservent_r.3:238 build/C/man3/inet_pton.3:212
1652 #, no-wrap
1653 msgid ""
1654 "    exit(EXIT_SUCCESS);\n"
1655 "}\n"
1656 msgstr ""
1657
1658 #. type: Plain text
1659 #: build/C/man3/endian.3:151
1660 msgid "B<byteorder>(3)"
1661 msgstr ""
1662
1663 #. type: TH
1664 #: build/C/man3/ether_aton.3:31
1665 #, no-wrap
1666 msgid "ETHER_ATON"
1667 msgstr ""
1668
1669 #. type: TH
1670 #: build/C/man3/ether_aton.3:31
1671 #, no-wrap
1672 msgid "2002-07-20"
1673 msgstr ""
1674
1675 #. type: Plain text
1676 #: build/C/man3/ether_aton.3:35
1677 msgid ""
1678 "ether_aton, ether_ntoa, ether_ntohost, ether_hostton, ether_line, "
1679 "ether_ntoa_r, ether_aton_r - Ethernet address manipulation routines"
1680 msgstr ""
1681
1682 #. type: Plain text
1683 #: build/C/man3/ether_aton.3:38
1684 #, no-wrap
1685 msgid "B<#include E<lt>netinet/ether.hE<gt>>\n"
1686 msgstr ""
1687
1688 #. type: Plain text
1689 #: build/C/man3/ether_aton.3:40
1690 #, no-wrap
1691 msgid "B<char *ether_ntoa(const struct ether_addr *>I<addr>B<);>\n"
1692 msgstr ""
1693
1694 #. type: Plain text
1695 #: build/C/man3/ether_aton.3:42
1696 #, no-wrap
1697 msgid "B<struct ether_addr *ether_aton(const char *>I<asc>B<);>\n"
1698 msgstr ""
1699
1700 #. type: Plain text
1701 #: build/C/man3/ether_aton.3:44
1702 #, no-wrap
1703 msgid ""
1704 "B<int ether_ntohost(char *>I<hostname>B<, const struct ether_addr "
1705 "*>I<addr>B<);>\n"
1706 msgstr ""
1707
1708 #. type: Plain text
1709 #: build/C/man3/ether_aton.3:46
1710 #, no-wrap
1711 msgid ""
1712 "B<int ether_hostton(const char *>I<hostname>B<, struct ether_addr "
1713 "*>I<addr>B<);>\n"
1714 msgstr ""
1715
1716 #. type: Plain text
1717 #: build/C/man3/ether_aton.3:49
1718 #, no-wrap
1719 msgid ""
1720 "B<int ether_line(const char *>I<line>B<, struct ether_addr *>I<addr>B<,>\n"
1721 "B<               char *>I<hostname>B<);>\n"
1722 msgstr ""
1723
1724 #. type: Plain text
1725 #: build/C/man3/ether_aton.3:51 build/C/man3/gethostbyname.3:68
1726 #, no-wrap
1727 msgid "/* GNU extensions */\n"
1728 msgstr ""
1729
1730 #. type: Plain text
1731 #: build/C/man3/ether_aton.3:53
1732 #, no-wrap
1733 msgid ""
1734 "B<char *ether_ntoa_r(const struct ether_addr *>I<addr>B<, char "
1735 "*>I<buf>B<);>\n"
1736 msgstr ""
1737
1738 #. type: Plain text
1739 #: build/C/man3/ether_aton.3:56
1740 #, no-wrap
1741 msgid ""
1742 "B<struct ether_addr *ether_aton_r(const char *>I<asc>B<,>\n"
1743 "B<                                struct ether_addr *>I<addr>B<);>\n"
1744 msgstr ""
1745
1746 #. type: Plain text
1747 #: build/C/man3/ether_aton.3:66
1748 msgid ""
1749 "B<ether_aton>()  converts the 48-bit Ethernet host address I<asc> from the "
1750 "standard hex-digits-and-colons notation into binary data in network byte "
1751 "order and returns a pointer to it in a statically allocated buffer, which "
1752 "subsequent calls will overwrite.  B<ether_aton>()  returns NULL if the "
1753 "address is invalid."
1754 msgstr ""
1755
1756 #. type: Plain text
1757 #: build/C/man3/ether_aton.3:74
1758 msgid ""
1759 "The B<ether_ntoa>()  function converts the Ethernet host address I<addr> "
1760 "given in network byte order to a string in standard hex-digits-and-colons "
1761 "notation, omitting leading zeros.  The string is returned in a statically "
1762 "allocated buffer, which subsequent calls will overwrite."
1763 msgstr ""
1764
1765 #. type: Plain text
1766 #: build/C/man3/ether_aton.3:81
1767 msgid ""
1768 "The B<ether_ntohost>()  function maps an Ethernet address to the "
1769 "corresponding hostname in I</etc/ethers> and returns nonzero if it cannot be "
1770 "found."
1771 msgstr ""
1772
1773 #. type: Plain text
1774 #: build/C/man3/ether_aton.3:88
1775 msgid ""
1776 "The B<ether_hostton>()  function maps a hostname to the corresponding "
1777 "Ethernet address in I</etc/ethers> and returns nonzero if it cannot be "
1778 "found."
1779 msgstr ""
1780
1781 #. type: Plain text
1782 #: build/C/man3/ether_aton.3:100
1783 msgid ""
1784 "The B<ether_line>()  function parses a line in I</etc/ethers> format "
1785 "(ethernet address followed by whitespace followed by hostname; \\(aq#\\(aq "
1786 "introduces a comment) and returns an address and hostname pair, or nonzero "
1787 "if it cannot be parsed.  The buffer pointed to by I<hostname> must be "
1788 "sufficiently long, for example, have the same length as I<line>."
1789 msgstr ""
1790
1791 #. type: Plain text
1792 #: build/C/man3/ether_aton.3:111
1793 msgid ""
1794 "The functions B<ether_ntoa_r>()  and B<ether_aton_r>()  are reentrant "
1795 "thread-safe versions of B<ether_ntoa>()  and B<ether_aton>()  respectively, "
1796 "and do not use static buffers."
1797 msgstr ""
1798
1799 #. type: Plain text
1800 #: build/C/man3/ether_aton.3:115
1801 msgid "The structure I<ether_addr> is defined in I<E<lt>net/ethernet.hE<gt>> as:"
1802 msgstr ""
1803
1804 #. type: Plain text
1805 #: build/C/man3/ether_aton.3:121
1806 #, no-wrap
1807 msgid ""
1808 "struct ether_addr {\n"
1809 "    uint8_t ether_addr_octet[6];\n"
1810 "}\n"
1811 msgstr ""
1812
1813 #. type: Plain text
1814 #: build/C/man3/ether_aton.3:125
1815 msgid "4.3BSD, SunOS."
1816 msgstr ""
1817
1818 #. type: Plain text
1819 #: build/C/man3/ether_aton.3:129
1820 msgid "The glibc 2.2.5 implementation of B<ether_line>()  is broken."
1821 msgstr ""
1822
1823 #. type: Plain text
1824 #: build/C/man3/ether_aton.3:131
1825 msgid "B<ethers>(5)"
1826 msgstr ""
1827
1828 #. type: TH
1829 #: build/C/man3/getaddrinfo.3:41
1830 #, no-wrap
1831 msgid "GETADDRINFO"
1832 msgstr ""
1833
1834 #. type: TH
1835 #: build/C/man3/getaddrinfo.3:41
1836 #, no-wrap
1837 msgid "2012-04-29"
1838 msgstr ""
1839
1840 #. type: Plain text
1841 #: build/C/man3/getaddrinfo.3:45
1842 msgid ""
1843 "getaddrinfo, freeaddrinfo, gai_strerror - network address and service "
1844 "translation"
1845 msgstr ""
1846
1847 #. type: Plain text
1848 #: build/C/man3/getaddrinfo.3:50 build/C/man3/getipnodebyname.3:33
1849 #, no-wrap
1850 msgid ""
1851 "B<#include E<lt>sys/types.hE<gt>>\n"
1852 "B<#include E<lt>sys/socket.hE<gt>>\n"
1853 "B<#include E<lt>netdb.hE<gt>>\n"
1854 msgstr ""
1855
1856 #. type: Plain text
1857 #: build/C/man3/getaddrinfo.3:54
1858 #, no-wrap
1859 msgid ""
1860 "B<int getaddrinfo(const char *>I<node>B<, const char *>I<service>B<,>\n"
1861 "B<                const struct addrinfo *>I<hints>B<,>\n"
1862 "B<                struct addrinfo **>I<res>B<);>\n"
1863 msgstr ""
1864
1865 #. type: Plain text
1866 #: build/C/man3/getaddrinfo.3:56
1867 #, no-wrap
1868 msgid "B<void freeaddrinfo(struct addrinfo *>I<res>B<);>\n"
1869 msgstr ""
1870
1871 #. type: Plain text
1872 #: build/C/man3/getaddrinfo.3:58
1873 #, no-wrap
1874 msgid "B<const char *gai_strerror(int >I<errcode>B<);>\n"
1875 msgstr ""
1876
1877 #. type: Plain text
1878 #: build/C/man3/getaddrinfo.3:63 build/C/man3/gethostbyname.3:91 build/C/man3/getnameinfo.3:23 build/C/man3/getnetent_r.3:50 build/C/man3/getprotoent_r.3:47 build/C/man3/getservent_r.3:47 build/C/man3/inet.3:70 build/C/man3/rcmd.3:79 build/C/man3/setnetgrent.3:29
1879 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1880 msgstr ""
1881
1882 #. type: Plain text
1883 #: build/C/man3/getaddrinfo.3:69
1884 msgid "B<getaddrinfo>(), B<freeaddrinfo>(), B<gai_strerror>():"
1885 msgstr ""
1886
1887 #. type: Plain text
1888 #: build/C/man3/getaddrinfo.3:71
1889 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1890 msgstr ""
1891
1892 #.  .BR getipnodebyname (3),
1893 #.  .BR getipnodebyaddr (3),
1894 #. type: Plain text
1895 #: build/C/man3/getaddrinfo.3:98
1896 msgid ""
1897 "Given I<node> and I<service>, which identify an Internet host and a service, "
1898 "B<getaddrinfo>()  returns one or more I<addrinfo> structures, each of which "
1899 "contains an Internet address that can be specified in a call to B<bind>(2)  "
1900 "or B<connect>(2).  The B<getaddrinfo>()  function combines the functionality "
1901 "provided by the B<getservbyname>(3)  and B<getservbyport>(3)  functions into "
1902 "a single interface, but unlike the latter functions, B<getaddrinfo>()  is "
1903 "reentrant and allows programs to eliminate IPv4-versus-IPv6 dependencies."
1904 msgstr ""
1905
1906 #. type: Plain text
1907 #: build/C/man3/getaddrinfo.3:104
1908 msgid ""
1909 "The I<addrinfo> structure used by B<getaddrinfo>()  contains the following "
1910 "fields:"
1911 msgstr ""
1912
1913 #. type: Plain text
1914 #: build/C/man3/getaddrinfo.3:117
1915 #, no-wrap
1916 msgid ""
1917 "struct addrinfo {\n"
1918 "    int              ai_flags;\n"
1919 "    int              ai_family;\n"
1920 "    int              ai_socktype;\n"
1921 "    int              ai_protocol;\n"
1922 "    socklen_t        ai_addrlen;\n"
1923 "    struct sockaddr *ai_addr;\n"
1924 "    char            *ai_canonname;\n"
1925 "    struct addrinfo *ai_next;\n"
1926 "};\n"
1927 msgstr ""
1928
1929 #. type: Plain text
1930 #: build/C/man3/getaddrinfo.3:139
1931 msgid ""
1932 "The I<hints> argument points to an I<addrinfo> structure that specifies "
1933 "criteria for selecting the socket address structures returned in the list "
1934 "pointed to by I<res>.  If I<hints> is not NULL it points to an I<addrinfo> "
1935 "structure whose I<ai_family>, I<ai_socktype>, and I<ai_protocol> specify "
1936 "criteria that limit the set of socket addresses returned by "
1937 "B<getaddrinfo>(), as follows:"
1938 msgstr ""
1939
1940 #. type: TP
1941 #: build/C/man3/getaddrinfo.3:139
1942 #, no-wrap
1943 msgid "I<ai_family>"
1944 msgstr ""
1945
1946 #. type: Plain text
1947 #: build/C/man3/getaddrinfo.3:155
1948 msgid ""
1949 "This field specifies the desired address family for the returned addresses.  "
1950 "Valid values for this field include B<AF_INET> and B<AF_INET6>.  The value "
1951 "B<AF_UNSPEC> indicates that B<getaddrinfo>()  should return socket addresses "
1952 "for any address family (either IPv4 or IPv6, for example) that can be used "
1953 "with I<node> and I<service>."
1954 msgstr ""
1955
1956 #. type: TP
1957 #: build/C/man3/getaddrinfo.3:155
1958 #, no-wrap
1959 msgid "I<ai_socktype>"
1960 msgstr ""
1961
1962 #. type: Plain text
1963 #: build/C/man3/getaddrinfo.3:164
1964 msgid ""
1965 "This field specifies the preferred socket type, for example B<SOCK_STREAM> "
1966 "or B<SOCK_DGRAM>.  Specifying 0 in this field indicates that socket "
1967 "addresses of any type can be returned by B<getaddrinfo>()."
1968 msgstr ""
1969
1970 #. type: TP
1971 #: build/C/man3/getaddrinfo.3:164
1972 #, no-wrap
1973 msgid "I<ai_protocol>"
1974 msgstr ""
1975
1976 #. type: Plain text
1977 #: build/C/man3/getaddrinfo.3:170
1978 msgid ""
1979 "This field specifies the protocol for the returned socket addresses.  "
1980 "Specifying 0 in this field indicates that socket addresses with any protocol "
1981 "can be returned by B<getaddrinfo>()."
1982 msgstr ""
1983
1984 #. type: TP
1985 #: build/C/man3/getaddrinfo.3:170
1986 #, no-wrap
1987 msgid "I<ai_flags>"
1988 msgstr ""
1989
1990 #. type: Plain text
1991 #: build/C/man3/getaddrinfo.3:174
1992 msgid ""
1993 "This field specifies additional options, described below.  Multiple flags "
1994 "are specified by bitwise OR-ing them together."
1995 msgstr ""
1996
1997 #. type: Plain text
1998 #: build/C/man3/getaddrinfo.3:192
1999 msgid ""
2000 "All the other fields in the structure pointed to by I<hints> must contain "
2001 "either 0 or a NULL pointer, as appropriate.  Specifying I<hints> as NULL is "
2002 "equivalent to setting I<ai_socktype> and I<ai_protocol> to 0; I<ai_family> "
2003 "to B<AF_UNSPEC>; and I<ai_flags> to B<(AI_V4MAPPED\\ |\\ AI_ADDRCONFIG)>."
2004 msgstr ""
2005
2006 #. type: Plain text
2007 #: build/C/man3/getaddrinfo.3:210
2008 msgid ""
2009 "I<node> specifies either a numerical network address (for IPv4, "
2010 "numbers-and-dots notation as supported by B<inet_aton>(3); for IPv6, "
2011 "hexadecimal string format as supported by B<inet_pton>(3)), or a network "
2012 "hostname, whose network addresses are looked up and resolved.  If "
2013 "I<hints.ai_flags> contains the B<AI_NUMERICHOST> flag then I<node> must be a "
2014 "numerical network address.  The B<AI_NUMERICHOST> flag suppresses any "
2015 "potentially lengthy network host address lookups."
2016 msgstr ""
2017
2018 #. type: Plain text
2019 #: build/C/man3/getaddrinfo.3:235
2020 msgid ""
2021 "If the B<AI_PASSIVE> flag is specified in I<hints.ai_flags>, and I<node> is "
2022 "NULL, then the returned socket addresses will be suitable for B<bind>(2)ing "
2023 "a socket that will B<accept>(2)  connections.  The returned socket address "
2024 "will contain the \"wildcard address\" (B<INADDR_ANY> for IPv4 addresses, "
2025 "B<IN6ADDR_ANY_INIT> for IPv6 address).  The wildcard address is used by "
2026 "applications (typically servers)  that intend to accept connections on any "
2027 "of the hosts's network addresses.  If I<node> is not NULL, then the "
2028 "B<AI_PASSIVE> flag is ignored."
2029 msgstr ""
2030
2031 #. type: Plain text
2032 #: build/C/man3/getaddrinfo.3:255
2033 msgid ""
2034 "If the B<AI_PASSIVE> flag is not set in I<hints.ai_flags>, then the returned "
2035 "socket addresses will be suitable for use with B<connect>(2), B<sendto>(2), "
2036 "or B<sendmsg>(2).  If I<node> is NULL, then the network address will be set "
2037 "to the loopback interface address (B<INADDR_LOOPBACK> for IPv4 addresses, "
2038 "B<IN6ADDR_LOOPBACK_INIT> for IPv6 address); this is used by applications "
2039 "that intend to communicate with peers running on the same host."
2040 msgstr ""
2041
2042 #. type: Plain text
2043 #: build/C/man3/getaddrinfo.3:278
2044 msgid ""
2045 "I<service> sets the port in each returned address structure.  If this "
2046 "argument is a service name (see B<services>(5)), it is translated to the "
2047 "corresponding port number.  This argument can also be specified as a decimal "
2048 "number, which is simply converted to binary.  If I<service> is NULL, then "
2049 "the port number of the returned socket addresses will be left "
2050 "uninitialized.  If B<AI_NUMERICSERV> is specified in I<hints.ai_flags> and "
2051 "I<service> is not NULL, then I<service> must point to a string containing a "
2052 "numeric port number.  This flag is used to inhibit the invocation of a name "
2053 "resolution service in cases where it is known not to be required."
2054 msgstr ""
2055
2056 #. type: Plain text
2057 #: build/C/man3/getaddrinfo.3:284
2058 msgid "Either I<node> or I<service>, but not both, may be NULL."
2059 msgstr ""
2060
2061 #. type: Plain text
2062 #: build/C/man3/getaddrinfo.3:300
2063 msgid ""
2064 "The B<getaddrinfo>()  function allocates and initializes a linked list of "
2065 "I<addrinfo> structures, one for each network address that matches I<node> "
2066 "and I<service>, subject to any restrictions imposed by I<hints>, and returns "
2067 "a pointer to the start of the list in I<res>.  The items in the linked list "
2068 "are linked by the I<ai_next> field."
2069 msgstr ""
2070
2071 #. type: Plain text
2072 #: build/C/man3/getaddrinfo.3:322
2073 msgid ""
2074 "There are several reasons why the linked list may have more than one "
2075 "I<addrinfo> structure, including: the network host is multihomed, accessible "
2076 "over multiple protocols (e.g., both B<AF_INET> and B<AF_INET6>); or the same "
2077 "service is available from multiple socket types (one B<SOCK_STREAM> address "
2078 "and another B<SOCK_DGRAM> address, for example).  Normally, the application "
2079 "should try using the addresses in the order in which they are returned.  The "
2080 "sorting function used within B<getaddrinfo>()  is defined in RFC\\ 3484; the "
2081 "order can be tweaked for a particular system by editing I</etc/gai.conf> "
2082 "(available since glibc 2.5)."
2083 msgstr ""
2084
2085 #.  In glibc prior to 2.3.4, the ai_canonname of each addrinfo
2086 #.  structure was set pointing to the canonical name; that was
2087 #.  more than POSIX.1-2001 specified, or other implementations provided.
2088 #.  MTK, Aug 05
2089 #. type: Plain text
2090 #: build/C/man3/getaddrinfo.3:337
2091 msgid ""
2092 "If I<hints.ai_flags> includes the B<AI_CANONNAME> flag, then the "
2093 "I<ai_canonname> field of the first of the I<addrinfo> structures in the "
2094 "returned list is set to point to the official name of the host."
2095 msgstr ""
2096
2097 #. type: Plain text
2098 #: build/C/man3/getaddrinfo.3:341
2099 msgid ""
2100 "The remaining fields of each returned I<addrinfo> structure are initialized "
2101 "as follows:"
2102 msgstr ""
2103
2104 #. type: IP
2105 #: build/C/man3/getaddrinfo.3:341 build/C/man3/getaddrinfo.3:364 build/C/man3/getaddrinfo_a.3:189 build/C/man3/getaddrinfo_a.3:193 build/C/man3/getaddrinfo_a.3:195 build/C/man5/nsswitch.conf.5:138 build/C/man5/nsswitch.conf.5:142 build/C/man7/unix.7:72 build/C/man7/unix.7:87 build/C/man7/unix.7:107
2106 #, no-wrap
2107 msgid "*"
2108 msgstr ""
2109
2110 #. type: Plain text
2111 #: build/C/man3/getaddrinfo.3:364
2112 msgid ""
2113 "The I<ai_family>, I<ai_socktype>, and I<ai_protocol> fields return the "
2114 "socket creation parameters (i.e., these fields have the same meaning as the "
2115 "corresponding arguments of B<socket>(2)).  For example, I<ai_family> might "
2116 "return B<AF_INET> or B<AF_INET6>; I<ai_socktype> might return B<SOCK_DGRAM> "
2117 "or B<SOCK_STREAM>; and I<ai_protocol> returns the protocol for the socket."
2118 msgstr ""
2119
2120 #. type: Plain text
2121 #: build/C/man3/getaddrinfo.3:371
2122 msgid ""
2123 "A pointer to the socket address is placed in the I<ai_addr> field, and the "
2124 "length of the socket address, in bytes, is placed in the I<ai_addrlen> "
2125 "field."
2126 msgstr ""
2127
2128 #. type: Plain text
2129 #: build/C/man3/getaddrinfo.3:383
2130 msgid ""
2131 "If I<hints.ai_flags> includes the B<AI_ADDRCONFIG> flag, then IPv4 addresses "
2132 "are returned in the list pointed to by I<res> only if the local system has "
2133 "at least one IPv4 address configured, and IPv6 addresses are only returned "
2134 "if the local system has at least one IPv6 address configured.  The loopback "
2135 "address is not considered for this case as valid as a configured address."
2136 msgstr ""
2137
2138 #. type: Plain text
2139 #: build/C/man3/getaddrinfo.3:408
2140 msgid ""
2141 "If I<hint.ai_flags> specifies the B<AI_V4MAPPED> flag, and "
2142 "I<hints.ai_family> was specified as B<AF_INET6>, and no matching IPv6 "
2143 "addresses could be found, then return IPv4-mapped IPv6 addresses in the list "
2144 "pointed to by I<res>.  If both B<AI_V4MAPPED> and B<AI_ALL> are specified in "
2145 "I<hints.ai_flags>, then return both IPv6 and IPv4-mapped IPv6 addresses in "
2146 "the list pointed to by I<res>.  B<AI_ALL> is ignored if B<AI_V4MAPPED> is "
2147 "not also specified."
2148 msgstr ""
2149
2150 #. type: Plain text
2151 #: build/C/man3/getaddrinfo.3:414
2152 msgid ""
2153 "The B<freeaddrinfo>()  function frees the memory that was allocated for the "
2154 "dynamically allocated linked list I<res>."
2155 msgstr ""
2156
2157 #. type: SS
2158 #: build/C/man3/getaddrinfo.3:414 build/C/man3/getnameinfo.3:114
2159 #, no-wrap
2160 msgid "Extensions to getaddrinfo() for Internationalized Domain Names"
2161 msgstr ""
2162
2163 #. type: Plain text
2164 #: build/C/man3/getaddrinfo.3:423
2165 msgid ""
2166 "Starting with glibc 2.3.4, B<getaddrinfo>()  has been extended to "
2167 "selectively allow the incoming and outgoing hostnames to be transparently "
2168 "converted to and from the Internationalized Domain Name (IDN) format (see "
2169 "RFC 3490, I<Internationalizing Domain Names in Applications (IDNA)>).  Four "
2170 "new flags are defined:"
2171 msgstr ""
2172
2173 #. type: TP
2174 #: build/C/man3/getaddrinfo.3:423
2175 #, no-wrap
2176 msgid "B<AI_IDN>"
2177 msgstr ""
2178
2179 #. type: Plain text
2180 #: build/C/man3/getaddrinfo.3:429
2181 msgid ""
2182 "If this flag is specified, then the node name given in I<node> is converted "
2183 "to IDN format if necessary.  The source encoding is that of the current "
2184 "locale."
2185 msgstr ""
2186
2187 #.  Implementation Detail:
2188 #.  To minimize effects on system performance the implementation might
2189 #.  want to check whether the input string contains any non-ASCII
2190 #.  characters.  If there are none the IDN step can be skipped completely.
2191 #.  On systems which allow not-ASCII safe encodings for a locale this
2192 #.  might be a problem.
2193 #. type: Plain text
2194 #: build/C/man3/getaddrinfo.3:441
2195 msgid ""
2196 "If the input name contains non-ASCII characters, then the IDN encoding is "
2197 "used.  Those parts of the node name (delimited by dots) that contain "
2198 "non-ASCII characters are encoded using ASCII Compatible Encoding (ACE)  "
2199 "before being passed to the name resolution functions."
2200 msgstr ""
2201
2202 #. type: TP
2203 #: build/C/man3/getaddrinfo.3:441
2204 #, no-wrap
2205 msgid "B<AI_CANONIDN>"
2206 msgstr ""
2207
2208 #. type: Plain text
2209 #: build/C/man3/getaddrinfo.3:453
2210 msgid ""
2211 "After a successful name lookup, and if the B<AI_CANONNAME> flag was "
2212 "specified, B<getaddrinfo>()  will return the canonical name of the node "
2213 "corresponding to the I<addrinfo> structure value passed back.  The return "
2214 "value is an exact copy of the value returned by the name resolution "
2215 "function."
2216 msgstr ""
2217
2218 #
2219 #. Implementation Detail:
2220 #. If no component of the returned name starts with xn\-\- the IDN
2221 #. step can be skipped, therefore avoiding unnecessary slowdowns.
2222 #. type: Plain text
2223 #: build/C/man3/getaddrinfo.3:466
2224 msgid ""
2225 "If the name is encoded using ACE, then it will contain the I<xn--> prefix "
2226 "for one or more components of the name.  To convert these components into a "
2227 "readable form the B<AI_CANONIDN> flag can be passed in addition to "
2228 "B<AI_CANONNAME>.  The resulting string is encoded using the current locale's "
2229 "encoding."
2230 msgstr ""
2231
2232 #. type: TP
2233 #: build/C/man3/getaddrinfo.3:466
2234 #, no-wrap
2235 msgid "B<AI_IDN_ALLOW_UNASSIGNED>, B<AI_IDN_USE_STD3_ASCII_RULES>"
2236 msgstr ""
2237
2238 #. type: Plain text
2239 #: build/C/man3/getaddrinfo.3:473 build/C/man3/getnameinfo.3:136
2240 msgid ""
2241 "Setting these flags will enable the IDNA_ALLOW_UNASSIGNED (allow unassigned "
2242 "Unicode code points) and IDNA_USE_STD3_ASCII_RULES (check output to make "
2243 "sure it is a STD3 conforming hostname)  flags respectively to be used in the "
2244 "IDNA handling."
2245 msgstr ""
2246
2247 #. type: SH
2248 #: build/C/man3/getaddrinfo.3:473 build/C/man3/getaddrinfo_a.3:240 build/C/man3/gethostbyname.3:264 build/C/man3/getipnodebyname.3:184 build/C/man3/getnameinfo.3:136 build/C/man3/getnetent.3:111 build/C/man3/getnetent_r.3:116 build/C/man2/getpeername.2:66 build/C/man3/getprotoent.3:105 build/C/man3/getprotoent_r.3:106 build/C/man3/getservent.3:116 build/C/man3/getservent_r.3:105 build/C/man3/inet_ntop.3:81 build/C/man3/inet_pton.3:114 build/C/man3/rcmd.3:237 build/C/man3/resolver.3:238 build/C/man3/setnetgrent.3:81 build/C/man2/shutdown.2:67
2249 #, no-wrap
2250 msgid "RETURN VALUE"
2251 msgstr ""
2252
2253 #.  FIXME glibc defines the following additional errors, some which
2254 #.  can probably be returned by getaddrinfo(); they need to
2255 #.  be documented.
2256 #.  #ifdef __USE_GNU
2257 #.  #define EAI_INPROGRESS  -100  /* Processing request in progress.  */
2258 #.  #define EAI_CANCELED    -101  /* Request canceled.  */
2259 #.  #define EAI_NOTCANCELED -102  /* Request not canceled.  */
2260 #.  #define EAI_ALLDONE     -103  /* All requests done.  */
2261 #.  #define EAI_INTR        -104  /* Interrupted by a signal.  */
2262 #.  #define EAI_IDN_ENCODE  -105  /* IDN encoding failed.  */
2263 #.  #endif
2264 #. type: Plain text
2265 #: build/C/man3/getaddrinfo.3:487
2266 msgid ""
2267 "B<getaddrinfo>()  returns 0 if it succeeds, or one of the following nonzero "
2268 "error codes:"
2269 msgstr ""
2270
2271 #. type: TP
2272 #: build/C/man3/getaddrinfo.3:487
2273 #, no-wrap
2274 msgid "B<EAI_ADDRFAMILY>"
2275 msgstr ""
2276
2277 #.  Not in SUSv3
2278 #. type: Plain text
2279 #: build/C/man3/getaddrinfo.3:492
2280 msgid ""
2281 "The specified network host does not have any network addresses in the "
2282 "requested address family."
2283 msgstr ""
2284
2285 #. type: TP
2286 #: build/C/man3/getaddrinfo.3:492 build/C/man3/getaddrinfo_a.3:245 build/C/man3/getaddrinfo_a.3:262 build/C/man3/getnameinfo.3:152
2287 #, no-wrap
2288 msgid "B<EAI_AGAIN>"
2289 msgstr ""
2290
2291 #. type: Plain text
2292 #: build/C/man3/getaddrinfo.3:496
2293 msgid "The name server returned a temporary failure indication.  Try again later."
2294 msgstr ""
2295
2296 #. type: TP
2297 #: build/C/man3/getaddrinfo.3:496 build/C/man3/getnameinfo.3:156
2298 #, no-wrap
2299 msgid "B<EAI_BADFLAGS>"
2300 msgstr ""
2301
2302 #. type: Plain text
2303 #: build/C/man3/getaddrinfo.3:506
2304 msgid ""
2305 "I<hints.ai_flags> contains invalid flags; or, I<hints.ai_flags> included "
2306 "B<AI_CANONNAME> and I<name> was NULL."
2307 msgstr ""
2308
2309 #. type: TP
2310 #: build/C/man3/getaddrinfo.3:506 build/C/man3/getnameinfo.3:161
2311 #, no-wrap
2312 msgid "B<EAI_FAIL>"
2313 msgstr ""
2314
2315 #. type: Plain text
2316 #: build/C/man3/getaddrinfo.3:509
2317 msgid "The name server returned a permanent failure indication."
2318 msgstr ""
2319
2320 #. type: TP
2321 #: build/C/man3/getaddrinfo.3:509 build/C/man3/getnameinfo.3:164
2322 #, no-wrap
2323 msgid "B<EAI_FAMILY>"
2324 msgstr ""
2325
2326 #. type: Plain text
2327 #: build/C/man3/getaddrinfo.3:512
2328 msgid "The requested address family is not supported."
2329 msgstr ""
2330
2331 #. type: TP
2332 #: build/C/man3/getaddrinfo.3:512 build/C/man3/getaddrinfo_a.3:250 build/C/man3/getnameinfo.3:168
2333 #, no-wrap
2334 msgid "B<EAI_MEMORY>"
2335 msgstr ""
2336
2337 #. type: Plain text
2338 #: build/C/man3/getaddrinfo.3:515 build/C/man3/getaddrinfo_a.3:253 build/C/man3/getnameinfo.3:171 build/C/man7/unix.7:357
2339 msgid "Out of memory."
2340 msgstr ""
2341
2342 #. type: TP
2343 #: build/C/man3/getaddrinfo.3:515
2344 #, no-wrap
2345 msgid "B<EAI_NODATA>"
2346 msgstr ""
2347
2348 #.  Not in SUSv3
2349 #. type: Plain text
2350 #: build/C/man3/getaddrinfo.3:520
2351 msgid ""
2352 "The specified network host exists, but does not have any network addresses "
2353 "defined."
2354 msgstr ""
2355
2356 #. type: TP
2357 #: build/C/man3/getaddrinfo.3:520 build/C/man3/getnameinfo.3:171
2358 #, no-wrap
2359 msgid "B<EAI_NONAME>"
2360 msgstr ""
2361
2362 #. type: Plain text
2363 #: build/C/man3/getaddrinfo.3:537
2364 msgid ""
2365 "The I<node> or I<service> is not known; or both I<node> and I<service> are "
2366 "NULL; or B<AI_NUMERICSERV> was specified in I<hints.ai_flags> and I<service> "
2367 "was not a numeric port-number string."
2368 msgstr ""
2369
2370 #. type: TP
2371 #: build/C/man3/getaddrinfo.3:537
2372 #, no-wrap
2373 msgid "B<EAI_SERVICE>"
2374 msgstr ""
2375
2376 #. type: Plain text
2377 #: build/C/man3/getaddrinfo.3:558
2378 msgid ""
2379 "The requested service is not available for the requested socket type.  It "
2380 "may be available through another socket type.  For example, this error could "
2381 "occur if I<service> was \"shell\" (a service only available on stream "
2382 "sockets), and either I<hints.ai_protocol> was B<IPPROTO_UDP>, or "
2383 "I<hints.ai_socktype> was B<SOCK_DGRAM>; or the error could occur if "
2384 "I<service> was not NULL, and I<hints.ai_socktype> was B<SOCK_RAW> (a socket "
2385 "type that does not support the concept of services)."
2386 msgstr ""
2387
2388 #. type: TP
2389 #: build/C/man3/getaddrinfo.3:558
2390 #, no-wrap
2391 msgid "B<EAI_SOCKTYPE>"
2392 msgstr ""
2393
2394 #. type: Plain text
2395 #: build/C/man3/getaddrinfo.3:570
2396 msgid ""
2397 "The requested socket type is not supported.  This could occur, for example, "
2398 "if I<hints.ai_socktype> and I<hints.ai_protocol> are inconsistent (e.g., "
2399 "B<SOCK_DGRAM> and B<IPPROTO_TCP>, respectively)."
2400 msgstr ""
2401
2402 #. type: TP
2403 #: build/C/man3/getaddrinfo.3:570 build/C/man3/getaddrinfo_a.3:253 build/C/man3/getnameinfo.3:184
2404 #, no-wrap
2405 msgid "B<EAI_SYSTEM>"
2406 msgstr ""
2407
2408 #. type: Plain text
2409 #: build/C/man3/getaddrinfo.3:575
2410 msgid "Other system error, check I<errno> for details."
2411 msgstr ""
2412
2413 #. type: Plain text
2414 #: build/C/man3/getaddrinfo.3:580
2415 msgid ""
2416 "The B<gai_strerror>()  function translates these error codes to a human "
2417 "readable string, suitable for error reporting."
2418 msgstr ""
2419
2420 #. type: SH
2421 #: build/C/man3/getaddrinfo.3:580 build/C/man3/gethostbyname.3:291 build/C/man3/getnameinfo.3:194 build/C/man3/getnetent.3:120 build/C/man3/getprotoent.3:114 build/C/man3/getservent.3:125 build/C/man5/host.conf.5:180 build/C/man5/hosts.5:86 build/C/man5/hosts.equiv.5:47 build/C/man5/networks.5:69 build/C/man5/nsswitch.conf.5:285 build/C/man5/protocols.5:76 build/C/man5/resolv.conf.5:270 build/C/man3/resolver.3:260 build/C/man5/services.5:184 build/C/man3/setnetgrent.3:83 build/C/man7/udplite.7:136
2422 #, no-wrap
2423 msgid "FILES"
2424 msgstr ""
2425
2426 #. type: Plain text
2427 #: build/C/man3/getaddrinfo.3:582
2428 msgid "I</etc/gai.conf>"
2429 msgstr ""
2430
2431 #. type: Plain text
2432 #: build/C/man3/getaddrinfo.3:587
2433 msgid "POSIX.1-2001.  The B<getaddrinfo>()  function is documented in RFC\\ 2553."
2434 msgstr ""
2435
2436 #. type: Plain text
2437 #: build/C/man3/getaddrinfo.3:592
2438 msgid ""
2439 "B<getaddrinfo>()  supports the I<address>B<%>I<scope-id> notation for "
2440 "specifying the IPv6 scope-ID."
2441 msgstr ""
2442
2443 #. type: Plain text
2444 #: build/C/man3/getaddrinfo.3:600
2445 msgid ""
2446 "B<AI_ADDRCONFIG>, B<AI_ALL>, and B<AI_V4MAPPED> are available since glibc "
2447 "2.3.3.  B<AI_NUMERICSERV> is available since glibc 2.3.4."
2448 msgstr ""
2449
2450 #. type: Plain text
2451 #: build/C/man3/getaddrinfo.3:610
2452 msgid ""
2453 "According to POSIX.1-2001, specifying I<hints> as NULL should cause "
2454 "I<ai_flags> to be assumed as 0.  The GNU C library instead assumes a value "
2455 "of B<(AI_V4MAPPED\\ |\\ AI_ADDRCONFIG)> for this case, since this value is "
2456 "considered an improvement on the specification."
2457 msgstr ""
2458
2459 #.  getnameinfo.3 refers to this example
2460 #.  socket.2 refers to this example
2461 #.  bind.2 refers to this example
2462 #.  connect.2 refers to this example
2463 #.  recvfrom.2 refers to this example
2464 #.  sendto.2 refers to this example
2465 #. type: Plain text
2466 #: build/C/man3/getaddrinfo.3:624
2467 msgid ""
2468 "The following programs demonstrate the use of B<getaddrinfo>(), "
2469 "B<gai_strerror>(), B<freeaddrinfo>(), and B<getnameinfo>(3).  The programs "
2470 "are an echo server and client for UDP datagrams."
2471 msgstr ""
2472
2473 #. type: SS
2474 #: build/C/man3/getaddrinfo.3:624
2475 #, no-wrap
2476 msgid "Server program"
2477 msgstr ""
2478
2479 #. type: Plain text
2480 #: build/C/man3/getaddrinfo.3:634
2481 #, no-wrap
2482 msgid ""
2483 "#include E<lt>sys/types.hE<gt>\n"
2484 "#include E<lt>stdio.hE<gt>\n"
2485 "#include E<lt>stdlib.hE<gt>\n"
2486 "#include E<lt>unistd.hE<gt>\n"
2487 "#include E<lt>string.hE<gt>\n"
2488 "#include E<lt>sys/socket.hE<gt>\n"
2489 "#include E<lt>netdb.hE<gt>\n"
2490 msgstr ""
2491
2492 #. type: Plain text
2493 #: build/C/man3/getaddrinfo.3:636 build/C/man3/getaddrinfo.3:731
2494 #, no-wrap
2495 msgid "#define BUF_SIZE 500\n"
2496 msgstr ""
2497
2498 #. type: Plain text
2499 #: build/C/man3/getaddrinfo.3:647
2500 #, no-wrap
2501 msgid ""
2502 "int\n"
2503 "main(int argc, char *argv[])\n"
2504 "{\n"
2505 "    struct addrinfo hints;\n"
2506 "    struct addrinfo *result, *rp;\n"
2507 "    int sfd, s;\n"
2508 "    struct sockaddr_storage peer_addr;\n"
2509 "    socklen_t peer_addr_len;\n"
2510 "    ssize_t nread;\n"
2511 "    char buf[BUF_SIZE];\n"
2512 msgstr ""
2513
2514 #. type: Plain text
2515 #: build/C/man3/getaddrinfo.3:652
2516 #, no-wrap
2517 msgid ""
2518 "    if (argc != 2) {\n"
2519 "        fprintf(stderr, \"Usage: %s port\\en\", argv[0]);\n"
2520 "        exit(EXIT_FAILURE);\n"
2521 "    }\n"
2522 msgstr ""
2523
2524 #. type: Plain text
2525 #: build/C/man3/getaddrinfo.3:661
2526 #, no-wrap
2527 msgid ""
2528 "    memset(&hints, 0, sizeof(struct addrinfo));\n"
2529 "    hints.ai_family = AF_UNSPEC;    /* Allow IPv4 or IPv6 */\n"
2530 "    hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */\n"
2531 "    hints.ai_flags = AI_PASSIVE;    /* For wildcard IP address */\n"
2532 "    hints.ai_protocol = 0;          /* Any protocol */\n"
2533 "    hints.ai_canonname = NULL;\n"
2534 "    hints.ai_addr = NULL;\n"
2535 "    hints.ai_next = NULL;\n"
2536 msgstr ""
2537
2538 #. type: Plain text
2539 #: build/C/man3/getaddrinfo.3:667
2540 #, no-wrap
2541 msgid ""
2542 "    s = getaddrinfo(NULL, argv[1], &hints, &result);\n"
2543 "    if (s != 0) {\n"
2544 "        fprintf(stderr, \"getaddrinfo: %s\\en\", gai_strerror(s));\n"
2545 "        exit(EXIT_FAILURE);\n"
2546 "    }\n"
2547 msgstr ""
2548
2549 #. type: Plain text
2550 #: build/C/man3/getaddrinfo.3:672
2551 #, no-wrap
2552 msgid ""
2553 "    /* getaddrinfo() returns a list of address structures.\n"
2554 "       Try each address until we successfully bind(2).\n"
2555 "       If socket(2) (or bind(2)) fails, we (close the socket\n"
2556 "       and) try the next address. */\n"
2557 msgstr ""
2558
2559 #. type: Plain text
2560 #: build/C/man3/getaddrinfo.3:678
2561 #, no-wrap
2562 msgid ""
2563 "    for (rp = result; rp != NULL; rp = rp-E<gt>ai_next) {\n"
2564 "        sfd = socket(rp-E<gt>ai_family, rp-E<gt>ai_socktype,\n"
2565 "                rp-E<gt>ai_protocol);\n"
2566 "        if (sfd == -1)\n"
2567 "            continue;\n"
2568 msgstr ""
2569
2570 #. type: Plain text
2571 #: build/C/man3/getaddrinfo.3:681
2572 #, no-wrap
2573 msgid ""
2574 "        if (bind(sfd, rp-E<gt>ai_addr, rp-E<gt>ai_addrlen) == 0)\n"
2575 "            break;                  /* Success */\n"
2576 msgstr ""
2577
2578 #. type: Plain text
2579 #: build/C/man3/getaddrinfo.3:684 build/C/man3/getaddrinfo.3:777
2580 #, no-wrap
2581 msgid ""
2582 "        close(sfd);\n"
2583 "    }\n"
2584 msgstr ""
2585
2586 #. type: Plain text
2587 #: build/C/man3/getaddrinfo.3:689
2588 #, no-wrap
2589 msgid ""
2590 "    if (rp == NULL) {               /* No address succeeded */\n"
2591 "        fprintf(stderr, \"Could not bind\\en\");\n"
2592 "        exit(EXIT_FAILURE);\n"
2593 "    }\n"
2594 msgstr ""
2595
2596 #. type: Plain text
2597 #: build/C/man3/getaddrinfo.3:691 build/C/man3/getaddrinfo.3:784
2598 #, no-wrap
2599 msgid "    freeaddrinfo(result);           /* No longer needed */\n"
2600 msgstr ""
2601
2602 #. type: Plain text
2603 #: build/C/man3/getaddrinfo.3:693
2604 #, no-wrap
2605 msgid "    /* Read datagrams and echo them back to sender */\n"
2606 msgstr ""
2607
2608 #. type: Plain text
2609 #: build/C/man3/getaddrinfo.3:700
2610 #, no-wrap
2611 msgid ""
2612 "    for (;;) {\n"
2613 "        peer_addr_len = sizeof(struct sockaddr_storage);\n"
2614 "        nread = recvfrom(sfd, buf, BUF_SIZE, 0,\n"
2615 "                (struct sockaddr *) &peer_addr, &peer_addr_len);\n"
2616 "        if (nread == -1)\n"
2617 "            continue;               /* Ignore failed request */\n"
2618 msgstr ""
2619
2620 #. type: Plain text
2621 #: build/C/man3/getaddrinfo.3:702
2622 #, no-wrap
2623 msgid "        char host[NI_MAXHOST], service[NI_MAXSERV];\n"
2624 msgstr ""
2625
2626 #. type: Plain text
2627 #: build/C/man3/getaddrinfo.3:711
2628 #, no-wrap
2629 msgid ""
2630 "        s = getnameinfo((struct sockaddr *) &peer_addr,\n"
2631 "                        peer_addr_len, host, NI_MAXHOST,\n"
2632 "                        service, NI_MAXSERV, NI_NUMERICSERV);\n"
2633 "       if (s == 0)\n"
2634 "            printf(\"Received %ld bytes from %s:%s\\en\",\n"
2635 "                    (long) nread, host, service);\n"
2636 "        else\n"
2637 "            fprintf(stderr, \"getnameinfo: %s\\en\", gai_strerror(s));\n"
2638 msgstr ""
2639
2640 #. type: Plain text
2641 #: build/C/man3/getaddrinfo.3:718
2642 #, no-wrap
2643 msgid ""
2644 "        if (sendto(sfd, buf, nread, 0,\n"
2645 "                    (struct sockaddr *) &peer_addr,\n"
2646 "                    peer_addr_len) != nread)\n"
2647 "            fprintf(stderr, \"Error sending response\\en\");\n"
2648 "    }\n"
2649 "}\n"
2650 msgstr ""
2651
2652 #. type: SS
2653 #: build/C/man3/getaddrinfo.3:719
2654 #, no-wrap
2655 msgid "Client program"
2656 msgstr ""
2657
2658 #. type: Plain text
2659 #: build/C/man3/getaddrinfo.3:729
2660 #, no-wrap
2661 msgid ""
2662 "#include E<lt>sys/types.hE<gt>\n"
2663 "#include E<lt>sys/socket.hE<gt>\n"
2664 "#include E<lt>netdb.hE<gt>\n"
2665 "#include E<lt>stdio.hE<gt>\n"
2666 "#include E<lt>stdlib.hE<gt>\n"
2667 "#include E<lt>unistd.hE<gt>\n"
2668 "#include E<lt>string.hE<gt>\n"
2669 msgstr ""
2670
2671 #. type: Plain text
2672 #: build/C/man3/getaddrinfo.3:741
2673 #, no-wrap
2674 msgid ""
2675 "int\n"
2676 "main(int argc, char *argv[])\n"
2677 "{\n"
2678 "    struct addrinfo hints;\n"
2679 "    struct addrinfo *result, *rp;\n"
2680 "    int sfd, s, j;\n"
2681 "    size_t len;\n"
2682 "    ssize_t nread;\n"
2683 "    char buf[BUF_SIZE];\n"
2684 msgstr ""
2685
2686 #. type: Plain text
2687 #: build/C/man3/getaddrinfo.3:746
2688 #, no-wrap
2689 msgid ""
2690 "    if (argc E<lt> 3) {\n"
2691 "        fprintf(stderr, \"Usage: %s host port msg...\\en\", argv[0]);\n"
2692 "        exit(EXIT_FAILURE);\n"
2693 "    }\n"
2694 msgstr ""
2695
2696 #. type: Plain text
2697 #: build/C/man3/getaddrinfo.3:748
2698 #, no-wrap
2699 msgid "    /* Obtain address(es) matching host/port */\n"
2700 msgstr ""
2701
2702 #. type: Plain text
2703 #: build/C/man3/getaddrinfo.3:754
2704 #, no-wrap
2705 msgid ""
2706 "    memset(&hints, 0, sizeof(struct addrinfo));\n"
2707 "    hints.ai_family = AF_UNSPEC;    /* Allow IPv4 or IPv6 */\n"
2708 "    hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */\n"
2709 "    hints.ai_flags = 0;\n"
2710 "    hints.ai_protocol = 0;          /* Any protocol */\n"
2711 msgstr ""
2712
2713 #. type: Plain text
2714 #: build/C/man3/getaddrinfo.3:760
2715 #, no-wrap
2716 msgid ""
2717 "    s = getaddrinfo(argv[1], argv[2], &hints, &result);\n"
2718 "    if (s != 0) {\n"
2719 "        fprintf(stderr, \"getaddrinfo: %s\\en\", gai_strerror(s));\n"
2720 "        exit(EXIT_FAILURE);\n"
2721 "    }\n"
2722 msgstr ""
2723
2724 #. type: Plain text
2725 #: build/C/man3/getaddrinfo.3:765
2726 #, no-wrap
2727 msgid ""
2728 "    /* getaddrinfo() returns a list of address structures.\n"
2729 "       Try each address until we successfully connect(2).\n"
2730 "       If socket(2) (or connect(2)) fails, we (close the socket\n"
2731 "       and) try the next address. */\n"
2732 msgstr ""
2733
2734 #. type: Plain text
2735 #: build/C/man3/getaddrinfo.3:771
2736 #, no-wrap
2737 msgid ""
2738 "    for (rp = result; rp != NULL; rp = rp-E<gt>ai_next) {\n"
2739 "        sfd = socket(rp-E<gt>ai_family, rp-E<gt>ai_socktype,\n"
2740 "                     rp-E<gt>ai_protocol);\n"
2741 "        if (sfd == -1)\n"
2742 "            continue;\n"
2743 msgstr ""
2744
2745 #. type: Plain text
2746 #: build/C/man3/getaddrinfo.3:774
2747 #, no-wrap
2748 msgid ""
2749 "        if (connect(sfd, rp-E<gt>ai_addr, rp-E<gt>ai_addrlen) != -1)\n"
2750 "            break;                  /* Success */\n"
2751 msgstr ""
2752
2753 #. type: Plain text
2754 #: build/C/man3/getaddrinfo.3:782
2755 #, no-wrap
2756 msgid ""
2757 "    if (rp == NULL) {               /* No address succeeded */\n"
2758 "        fprintf(stderr, \"Could not connect\\en\");\n"
2759 "        exit(EXIT_FAILURE);\n"
2760 "    }\n"
2761 msgstr ""
2762
2763 #. type: Plain text
2764 #: build/C/man3/getaddrinfo.3:787
2765 #, no-wrap
2766 msgid ""
2767 "    /* Send remaining command-line arguments as separate\n"
2768 "       datagrams, and read responses from server */\n"
2769 msgstr ""
2770
2771 #. type: Plain text
2772 #: build/C/man3/getaddrinfo.3:791
2773 #, no-wrap
2774 msgid ""
2775 "    for (j = 3; j E<lt> argc; j++) {\n"
2776 "        len = strlen(argv[j]) + 1;\n"
2777 "                /* +1 for terminating null byte */\n"
2778 msgstr ""
2779
2780 #. type: Plain text
2781 #: build/C/man3/getaddrinfo.3:797
2782 #, no-wrap
2783 msgid ""
2784 "        if (len + 1 E<gt> BUF_SIZE) {\n"
2785 "            fprintf(stderr,\n"
2786 "                    \"Ignoring long message in argument %d\\en\", j);\n"
2787 "            continue;\n"
2788 "        }\n"
2789 msgstr ""
2790
2791 #. type: Plain text
2792 #: build/C/man3/getaddrinfo.3:802
2793 #, no-wrap
2794 msgid ""
2795 "        if (write(sfd, argv[j], len) != len) {\n"
2796 "            fprintf(stderr, \"partial/failed write\\en\");\n"
2797 "            exit(EXIT_FAILURE);\n"
2798 "        }\n"
2799 msgstr ""
2800
2801 #. type: Plain text
2802 #: build/C/man3/getaddrinfo.3:808
2803 #, no-wrap
2804 msgid ""
2805 "        nread = read(sfd, buf, BUF_SIZE);\n"
2806 "        if (nread == -1) {\n"
2807 "            perror(\"read\");\n"
2808 "            exit(EXIT_FAILURE);\n"
2809 "        }\n"
2810 msgstr ""
2811
2812 #. type: Plain text
2813 #: build/C/man3/getaddrinfo.3:811
2814 #, no-wrap
2815 msgid ""
2816 "        printf(\"Received %ld bytes: %s\\en\", (long) nread, buf);\n"
2817 "    }\n"
2818 msgstr ""
2819
2820 #.  .BR getipnodebyaddr (3),
2821 #.  .BR getipnodebyname (3),
2822 #. type: Plain text
2823 #: build/C/man3/getaddrinfo.3:824
2824 msgid ""
2825 "B<getaddrinfo_a>(3), B<gethostbyname>(3), B<getnameinfo>(3), B<inet>(3), "
2826 "B<hostname>(7), B<ip>(7)"
2827 msgstr ""
2828
2829 #. type: TH
2830 #: build/C/man3/getaddrinfo_a.3:27
2831 #, no-wrap
2832 msgid "GETADDRINFO_A"
2833 msgstr ""
2834
2835 #. type: TH
2836 #: build/C/man3/getaddrinfo_a.3:27
2837 #, no-wrap
2838 msgid "2010-09-27"
2839 msgstr ""
2840
2841 #. type: Plain text
2842 #: build/C/man3/getaddrinfo_a.3:31
2843 msgid ""
2844 "getaddrinfo_a, gai_suspend, gai_error, gai_cancel - asynchronous network "
2845 "address and service translation"
2846 msgstr ""
2847
2848 #. type: Plain text
2849 #: build/C/man3/getaddrinfo_a.3:35
2850 #, no-wrap
2851 msgid ""
2852 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
2853 "B<#include E<lt>netdb.hE<gt>>\n"
2854 msgstr ""
2855
2856 #. type: Plain text
2857 #: build/C/man3/getaddrinfo_a.3:38
2858 #, no-wrap
2859 msgid ""
2860 "B<int getaddrinfo_a(int >I<mode>B<, struct gaicb *>I<list[]>B<,>\n"
2861 "B<                int >I<nitems>B<, struct sigevent *>I<sevp>B<);>\n"
2862 msgstr ""
2863
2864 #. type: Plain text
2865 #: build/C/man3/getaddrinfo_a.3:41
2866 #, no-wrap
2867 msgid ""
2868 "B<int gai_suspend(struct gaicb *>I<list[]>B<, int >I<nitems>B<,>\n"
2869 "B<                struct timespec *>I<timeout>B<);>\n"
2870 msgstr ""
2871
2872 #. type: Plain text
2873 #: build/C/man3/getaddrinfo_a.3:43
2874 #, no-wrap
2875 msgid "B<int gai_error(struct gaicb *>I<req>B<);>\n"
2876 msgstr ""
2877
2878 #. type: Plain text
2879 #: build/C/man3/getaddrinfo_a.3:45
2880 #, no-wrap
2881 msgid "B<int gai_cancel(struct gaicb *>I<req>B<);>\n"
2882 msgstr ""
2883
2884 #. type: Plain text
2885 #: build/C/man3/getaddrinfo_a.3:47
2886 #, no-wrap
2887 msgid "Link with I<-lanl>.\n"
2888 msgstr ""
2889
2890 #. type: Plain text
2891 #: build/C/man3/getaddrinfo_a.3:55
2892 msgid ""
2893 "The B<getaddrinfo_a>()  function performs the same task as "
2894 "B<getaddrinfo>(3), but allows multiple name look-ups to be performed "
2895 "asynchronously, with optional notification on completion of look-up "
2896 "operations."
2897 msgstr ""
2898
2899 #. type: Plain text
2900 #: build/C/man3/getaddrinfo_a.3:59
2901 msgid "The I<mode> argument has one of the following values:"
2902 msgstr ""
2903
2904 #. type: TP
2905 #: build/C/man3/getaddrinfo_a.3:59
2906 #, no-wrap
2907 msgid "B<GAI_WAIT>"
2908 msgstr ""
2909
2910 #. type: Plain text
2911 #: build/C/man3/getaddrinfo_a.3:63
2912 msgid ""
2913 "Perform the look-ups synchronously.  The call blocks until the look-ups have "
2914 "completed."
2915 msgstr ""
2916
2917 #. type: TP
2918 #: build/C/man3/getaddrinfo_a.3:63
2919 #, no-wrap
2920 msgid "B<GAI_NOWAIT>"
2921 msgstr ""
2922
2923 #. type: Plain text
2924 #: build/C/man3/getaddrinfo_a.3:71
2925 msgid ""
2926 "Perform the look-ups asynchronously.  The call returns immediately, and the "
2927 "requests are resolved in the background.  See the discussion of the I<sevp> "
2928 "argument below."
2929 msgstr ""
2930
2931 #. type: Plain text
2932 #: build/C/man3/getaddrinfo_a.3:86
2933 msgid ""
2934 "The array I<list> specifies the look-up requests to process.  The I<nitems> "
2935 "argument specifies the number of elements in I<list>.  The requested look-up "
2936 "operations are started in parallel.  NULL elements in I<list> are ignored.  "
2937 "Each request is described by a I<gaicb> structure, defined as follows:"
2938 msgstr ""
2939
2940 #. type: Plain text
2941 #: build/C/man3/getaddrinfo_a.3:95
2942 #, no-wrap
2943 msgid ""
2944 "struct gaicb {\n"
2945 "    const char            *ar_name;\n"
2946 "    const char            *ar_service;\n"
2947 "    const struct addrinfo *ar_request;\n"
2948 "    struct addrinfo       *ar_result;\n"
2949 "};\n"
2950 msgstr ""
2951
2952 #. type: Plain text
2953 #: build/C/man3/getaddrinfo_a.3:126
2954 msgid ""
2955 "The elements of this structure correspond to the arguments of "
2956 "B<getaddrinfo>(3).  Thus, I<ar_name> corresponds to the I<node> argument and "
2957 "I<ar_service> to the I<service> argument, identifying an Internet host and a "
2958 "service.  The I<ar_request> element corresponds to the I<hints> argument, "
2959 "specifying the criteria for selecting the returned socket address "
2960 "structures.  Finally, I<ar_result> corresponds to the I<res> argument; you "
2961 "do not need to initialize this element, it will be automatically set when "
2962 "the request is resolved.  The I<addrinfo> structure referenced by the last "
2963 "two elements is described in B<getaddrinfo>(3)."
2964 msgstr ""
2965
2966 #. type: Plain text
2967 #: build/C/man3/getaddrinfo_a.3:142
2968 msgid ""
2969 "When I<mode> is specified as B<GAI_NOWAIT>, notifications about resolved "
2970 "requests can be obtained by employing the I<sigevent> structure pointed to "
2971 "by the I<sevp> argument.  For the definition and general details of this "
2972 "structure, see B<sigevent>(7).  The I<sevp-E<gt>sigev_notify> field can have "
2973 "the following values:"
2974 msgstr ""
2975
2976 #. type: TP
2977 #: build/C/man3/getaddrinfo_a.3:142
2978 #, no-wrap
2979 msgid "B<SIGEV_NONE>"
2980 msgstr ""
2981
2982 #. type: Plain text
2983 #: build/C/man3/getaddrinfo_a.3:145
2984 msgid "Don't provide any notification."
2985 msgstr ""
2986
2987 #. type: TP
2988 #: build/C/man3/getaddrinfo_a.3:145
2989 #, no-wrap
2990 msgid "B<SIGEV_SIGNAL>"
2991 msgstr ""
2992
2993 #.  si_pid and si_uid are also set, to the values of the calling process,
2994 #.  which doesn't provide useful information, so we'll skip mentioning it.
2995 #. type: Plain text
2996 #: build/C/man3/getaddrinfo_a.3:161
2997 msgid ""
2998 "When a look-up completes, generate the signal I<sigev_signo> for the "
2999 "process.  See B<sigevent>(7)  for general details.  The I<si_code> field of "
3000 "the I<siginfo_t> structure will be set to B<SI_ASYNCNL>."
3001 msgstr ""
3002
3003 #. type: TP
3004 #: build/C/man3/getaddrinfo_a.3:161
3005 #, no-wrap
3006 msgid "B<SIGEV_THREAD>"
3007 msgstr ""
3008
3009 #. type: Plain text
3010 #: build/C/man3/getaddrinfo_a.3:169
3011 msgid ""
3012 "When a look-up completes, invoke I<sigev_notify_function> as if it were the "
3013 "start function of a new thread.  See B<sigevent>(7)  for details."
3014 msgstr ""
3015
3016 #. type: Plain text
3017 #: build/C/man3/getaddrinfo_a.3:178
3018 msgid ""
3019 "For B<SIGEV_SIGNAL> and B<SIGEV_THREAD>, it may be useful to point "
3020 "I<sevp-E<gt>sigev_value.sival_ptr> to I<list>."
3021 msgstr ""
3022
3023 #. type: Plain text
3024 #: build/C/man3/getaddrinfo_a.3:189
3025 msgid ""
3026 "The B<gai_suspend>()  function suspends execution of the calling thread, "
3027 "waiting for the completion of one or more requests in the array I<list>.  "
3028 "The I<nitems> argument specifies the size of the array I<list>.  The call "
3029 "blocks until one of the following occurs:"
3030 msgstr ""
3031
3032 #. type: Plain text
3033 #: build/C/man3/getaddrinfo_a.3:193
3034 msgid "One or more of the operations in I<list> completes."
3035 msgstr ""
3036
3037 #. type: Plain text
3038 #: build/C/man3/getaddrinfo_a.3:195
3039 msgid "The call is interrupted by a signal that is caught."
3040 msgstr ""
3041
3042 #. type: Plain text
3043 #: build/C/man3/getaddrinfo_a.3:208
3044 msgid ""
3045 "The time interval specified in I<timeout> elapses.  This argument specifies "
3046 "a timeout in seconds plus nanoseconds (see B<nanosleep>(2)  for details of "
3047 "the I<timespec> structure).  If I<timeout> is NULL, then the call blocks "
3048 "indefinitely (until one of the events above occurs)."
3049 msgstr ""
3050
3051 #. type: Plain text
3052 #: build/C/man3/getaddrinfo_a.3:213
3053 msgid ""
3054 "No explicit indication of which request was completed is given; you must "
3055 "determine which request(s) have completed by iterating with B<gai_error>()  "
3056 "over the list of requests."
3057 msgstr ""
3058
3059 #. type: Plain text
3060 #: build/C/man3/getaddrinfo_a.3:223
3061 msgid ""
3062 "The B<gai_error>()  function returns the status of the request I<req>: "
3063 "either B<EAI_INPROGRESS> if the request was not completed yet, 0 if it was "
3064 "handled successfully, or an error code if the request could not be resolved."
3065 msgstr ""
3066
3067 #. type: Plain text
3068 #: build/C/man3/getaddrinfo_a.3:240
3069 msgid ""
3070 "The B<gai_cancel>()  function cancels the request I<req>.  If the request "
3071 "has been canceled successfully, the error status of the request will be set "
3072 "to B<EAI_CANCELLED> and normal asynchronous notification will be performed.  "
3073 "The request cannot be canceled if it is currently being processed; in that "
3074 "case, it will be handled as if B<gai_cancel>()  has never been called.  If "
3075 "I<req> is NULL, an attempt is made to cancel all outstanding requests that "
3076 "the process has made."
3077 msgstr ""
3078
3079 #. type: Plain text
3080 #: build/C/man3/getaddrinfo_a.3:245
3081 msgid ""
3082 "The B<getaddrinfo_a>()  function returns 0 if all of the requests have been "
3083 "enqueued successfully, or one of the following nonzero error codes:"
3084 msgstr ""
3085
3086 #. type: Plain text
3087 #: build/C/man3/getaddrinfo_a.3:250
3088 msgid ""
3089 "The resources necessary to enqueue the look-up requests were not available.  "
3090 "The application may check the error status of each request to determine "
3091 "which ones failed."
3092 msgstr ""
3093
3094 #. type: Plain text
3095 #: build/C/man3/getaddrinfo_a.3:257
3096 msgid "I<mode> is invalid."
3097 msgstr ""
3098
3099 #. type: Plain text
3100 #: build/C/man3/getaddrinfo_a.3:262
3101 msgid ""
3102 "The B<gai_suspend>()  function returns 0 if at least one of the listed "
3103 "requests has been completed.  Otherwise, it returns one of the following "
3104 "nonzero error codes:"
3105 msgstr ""
3106
3107 #. type: Plain text
3108 #: build/C/man3/getaddrinfo_a.3:265
3109 msgid "The given timeout expired before any of the requests could be completed."
3110 msgstr ""
3111
3112 #. type: TP
3113 #: build/C/man3/getaddrinfo_a.3:265 build/C/man3/getaddrinfo_a.3:295
3114 #, no-wrap
3115 msgid "B<EAI_ALLDONE>"
3116 msgstr ""
3117
3118 #. type: Plain text
3119 #: build/C/man3/getaddrinfo_a.3:268
3120 msgid "There were no actual requests given to the function."
3121 msgstr ""
3122
3123 #. type: TP
3124 #: build/C/man3/getaddrinfo_a.3:268
3125 #, no-wrap
3126 msgid "B<EAI_INTR>"
3127 msgstr ""
3128
3129 #. type: Plain text
3130 #: build/C/man3/getaddrinfo_a.3:273
3131 msgid ""
3132 "A signal has interrupted the function.  Note that this interruption might "
3133 "have been caused by signal notification of some completed look-up request."
3134 msgstr ""
3135
3136 #. type: Plain text
3137 #: build/C/man3/getaddrinfo_a.3:285
3138 msgid ""
3139 "The B<gai_error>()  function can return B<EAI_INPROGRESS> for an unfinished "
3140 "look-up request, 0 for a successfully completed look-up (as described "
3141 "above), one of the error codes that could be returned by B<getaddrinfo>(3), "
3142 "or the error code B<EAI_CANCELLED> if the request has been canceled "
3143 "explicitly before it could be finished."
3144 msgstr ""
3145
3146 #. type: Plain text
3147 #: build/C/man3/getaddrinfo_a.3:289
3148 msgid "The B<gai_cancel>()  function can return one of these values:"
3149 msgstr ""
3150
3151 #. type: TP
3152 #: build/C/man3/getaddrinfo_a.3:289
3153 #, no-wrap
3154 msgid "B<EAI_CANCELLED>"
3155 msgstr ""
3156
3157 #. type: Plain text
3158 #: build/C/man3/getaddrinfo_a.3:292
3159 msgid "The request has been canceled successfully."
3160 msgstr ""
3161
3162 #. type: TP
3163 #: build/C/man3/getaddrinfo_a.3:292
3164 #, no-wrap
3165 msgid "B<EAI_NOTCANCELLED>"
3166 msgstr ""
3167
3168 #. type: Plain text
3169 #: build/C/man3/getaddrinfo_a.3:295
3170 msgid "The request has not been canceled."
3171 msgstr ""
3172
3173 #. type: Plain text
3174 #: build/C/man3/getaddrinfo_a.3:298
3175 msgid "The request has already completed."
3176 msgstr ""
3177
3178 #. type: Plain text
3179 #: build/C/man3/getaddrinfo_a.3:303 build/C/man3/getnameinfo.3:194
3180 msgid ""
3181 "The B<gai_strerror>(3)  function translates these error codes to a human "
3182 "readable string, suitable for error reporting."
3183 msgstr ""
3184
3185 #. type: Plain text
3186 #: build/C/man3/getaddrinfo_a.3:306
3187 msgid ""
3188 "These functions are GNU extensions; they first appeared in glibc in version "
3189 "2.2.3."
3190 msgstr ""
3191
3192 #. type: Plain text
3193 #: build/C/man3/getaddrinfo_a.3:312
3194 msgid ""
3195 "The interface of B<getaddrinfo_a>()  was modeled after the B<lio_listio>(3)  "
3196 "interface."
3197 msgstr ""
3198
3199 #. type: Plain text
3200 #: build/C/man3/getaddrinfo_a.3:316
3201 msgid ""
3202 "Two examples are provided: a simple example that resolves several requests "
3203 "in parallel synchronously, and a complex example showing some of the "
3204 "asynchronous capabilities."
3205 msgstr ""
3206
3207 #. type: SS
3208 #: build/C/man3/getaddrinfo_a.3:316
3209 #, no-wrap
3210 msgid "Synchronous Example"
3211 msgstr ""
3212
3213 #. type: Plain text
3214 #: build/C/man3/getaddrinfo_a.3:321
3215 msgid ""
3216 "The program below simply resolves several hostnames in parallel, giving a "
3217 "speed-up compared to resolving the hostnames sequentially using "
3218 "B<getaddrinfo>(3).  The program might be used like this:"
3219 msgstr ""
3220
3221 #. type: Plain text
3222 #: build/C/man3/getaddrinfo_a.3:328
3223 #, no-wrap
3224 msgid ""
3225 "$ B<./a.out ftp.us.kernel.org enoent.linuxfoundation.org gnu.cz>\n"
3226 "ftp.us.kernel.org: 128.30.2.36\n"
3227 "enoent.linuxfoundation.org: Name or service not known\n"
3228 "gnu.cz: 87.236.197.13\n"
3229 msgstr ""
3230
3231 #. type: Plain text
3232 #: build/C/man3/getaddrinfo_a.3:332
3233 msgid "Here is the program source code"
3234 msgstr ""
3235
3236 #. type: Plain text
3237 #: build/C/man3/getaddrinfo_a.3:339 build/C/man3/getaddrinfo_a.3:430
3238 #, no-wrap
3239 msgid ""
3240 "#define _GNU_SOURCE\n"
3241 "#include E<lt>netdb.hE<gt>\n"
3242 "#include E<lt>stdio.hE<gt>\n"
3243 "#include E<lt>stdlib.hE<gt>\n"
3244 "#include E<lt>string.hE<gt>\n"
3245 msgstr ""
3246
3247 #. type: Plain text
3248 #: build/C/man3/getaddrinfo_a.3:347
3249 #, no-wrap
3250 msgid ""
3251 "int\n"
3252 "main(int argc, char *argv[])\n"
3253 "{\n"
3254 "    int i, ret;\n"
3255 "    struct gaicb *reqs[argc - 1];\n"
3256 "    char host[NI_MAXHOST];\n"
3257 "    struct addrinfo *res;\n"
3258 msgstr ""
3259
3260 #. type: Plain text
3261 #: build/C/man3/getaddrinfo_a.3:352
3262 #, no-wrap
3263 msgid ""
3264 "    if (argc E<lt> 2) {\n"
3265 "        fprintf(stderr, \"Usage: %s HOST...\\en\", argv[0]);\n"
3266 "        exit(EXIT_FAILURE);\n"
3267 "    }\n"
3268 msgstr ""
3269
3270 #. type: Plain text
3271 #: build/C/man3/getaddrinfo_a.3:362
3272 #, no-wrap
3273 msgid ""
3274 "    for (i = 0; i E<lt> argc - 1; i++) {\n"
3275 "        reqs[i] = malloc(sizeof(*reqs[0]));\n"
3276 "        if (reqs[i] == NULL) {\n"
3277 "            perror(\"malloc\");\n"
3278 "            exit(EXIT_FAILURE);\n"
3279 "        }\n"
3280 "        memset(reqs[i], 0, sizeof(*reqs[0]));\n"
3281 "        reqs[i]-E<gt>ar_name = argv[i + 1];\n"
3282 "    }\n"
3283 msgstr ""
3284
3285 #. type: Plain text
3286 #: build/C/man3/getaddrinfo_a.3:369
3287 #, no-wrap
3288 msgid ""
3289 "    ret = getaddrinfo_a(GAI_WAIT, reqs, argc - 1, NULL);\n"
3290 "    if (ret != 0) {\n"
3291 "        fprintf(stderr, \"getaddrinfo_a() failed: %s\\en\",\n"
3292 "                gai_strerror(ret));\n"
3293 "        exit(EXIT_FAILURE);\n"
3294 "    }\n"
3295 msgstr ""
3296
3297 #. type: Plain text
3298 #: build/C/man3/getaddrinfo_a.3:375
3299 #, no-wrap
3300 msgid ""
3301 "    for (i = 0; i E<lt> argc - 1; i++) {\n"
3302 "        printf(\"%s: \", reqs[i]-E<gt>ar_name);\n"
3303 "        ret = gai_error(reqs[i]);\n"
3304 "        if (ret == 0) {\n"
3305 "            res = reqs[i]-E<gt>ar_result;\n"
3306 msgstr ""
3307
3308 #. type: Plain text
3309 #: build/C/man3/getaddrinfo_a.3:385
3310 #, no-wrap
3311 msgid ""
3312 "            ret = getnameinfo(res-E<gt>ai_addr, res-E<gt>ai_addrlen,\n"
3313 "                    host, sizeof(host),\n"
3314 "                    NULL, 0, NI_NUMERICHOST);\n"
3315 "            if (ret != 0) {\n"
3316 "                fprintf(stderr, \"getnameinfo() failed: %s\\en\",\n"
3317 "                        gai_strerror(ret));\n"
3318 "                exit(EXIT_FAILURE);\n"
3319 "            }\n"
3320 "            puts(host);\n"
3321 msgstr ""
3322
3323 #. type: Plain text
3324 #: build/C/man3/getaddrinfo_a.3:392
3325 #, no-wrap
3326 msgid ""
3327 "        } else {\n"
3328 "            puts(gai_strerror(ret));\n"
3329 "        }\n"
3330 "    }\n"
3331 "    exit(EXIT_SUCCESS);\n"
3332 "}\n"
3333 msgstr ""
3334
3335 #. type: SS
3336 #: build/C/man3/getaddrinfo_a.3:394
3337 #, no-wrap
3338 msgid "Asynchronous Example"
3339 msgstr ""
3340
3341 #. type: Plain text
3342 #: build/C/man3/getaddrinfo_a.3:399
3343 msgid ""
3344 "This example shows a simple interactive B<getaddrinfo_a>()  front-end.  The "
3345 "notification facility is not demonstrated."
3346 msgstr ""
3347
3348 #. type: Plain text
3349 #: build/C/man3/getaddrinfo_a.3:401
3350 msgid "An example session might look like this:"
3351 msgstr ""
3352
3353 #. type: Plain text
3354 #: build/C/man3/getaddrinfo_a.3:418
3355 #, no-wrap
3356 msgid ""
3357 "$ B<./a.out>\n"
3358 "E<gt> a ftp.us.kernel.org enoent.linuxfoundation.org gnu.cz\n"
3359 "E<gt> c 2\n"
3360 "[2] gnu.cz: Request not canceled\n"
3361 "E<gt> w 0 1\n"
3362 "[00] ftp.us.kernel.org: Finished\n"
3363 "E<gt> l\n"
3364 "[00] ftp.us.kernel.org: 216.165.129.139\n"
3365 "[01] enoent.linuxfoundation.org: Processing request in progress\n"
3366 "[02] gnu.cz: 87.236.197.13\n"
3367 "E<gt> l\n"
3368 "[00] ftp.us.kernel.org: 216.165.129.139\n"
3369 "[01] enoent.linuxfoundation.org: Name or service not known\n"
3370 "[02] gnu.cz: 87.236.197.13\n"
3371 msgstr ""
3372
3373 #. type: Plain text
3374 #: build/C/man3/getaddrinfo_a.3:422
3375 msgid "The program source goes as follows:"
3376 msgstr ""
3377
3378 #. type: Plain text
3379 #: build/C/man3/getaddrinfo_a.3:433
3380 #, no-wrap
3381 msgid ""
3382 "static struct gaicb **reqs = NULL;\n"
3383 "static int nreqs = 0;\n"
3384 msgstr ""
3385
3386 #. type: Plain text
3387 #: build/C/man3/getaddrinfo_a.3:438
3388 #, no-wrap
3389 msgid ""
3390 "static char *\n"
3391 "getcmd(void)\n"
3392 "{\n"
3393 "    static char buf[256];\n"
3394 msgstr ""
3395
3396 #. type: Plain text
3397 #: build/C/man3/getaddrinfo_a.3:442
3398 #, no-wrap
3399 msgid ""
3400 "    fputs(\"E<gt> \", stdout); fflush(stdout);\n"
3401 "    if (fgets(buf, sizeof(buf), stdin) == NULL)\n"
3402 "        return NULL;\n"
3403 msgstr ""
3404
3405 #. type: Plain text
3406 #: build/C/man3/getaddrinfo_a.3:445
3407 #, no-wrap
3408 msgid ""
3409 "    if (buf[strlen(buf) - 1] == \\(aq\\en\\(aq)\n"
3410 "        buf[strlen(buf) - 1] = 0;\n"
3411 msgstr ""
3412
3413 #. type: Plain text
3414 #: build/C/man3/getaddrinfo_a.3:448
3415 #, no-wrap
3416 msgid ""
3417 "    return buf;\n"
3418 "}\n"
3419 msgstr ""
3420
3421 #. type: Plain text
3422 #: build/C/man3/getaddrinfo_a.3:456
3423 #, no-wrap
3424 msgid ""
3425 "/* Add requests for specified hostnames */\n"
3426 "static void\n"
3427 "add_requests(void)\n"
3428 "{\n"
3429 "    int nreqs_base = nreqs;\n"
3430 "    char *host;\n"
3431 "    int ret;\n"
3432 msgstr ""
3433
3434 #. type: Plain text
3435 #: build/C/man3/getaddrinfo_a.3:460
3436 #, no-wrap
3437 msgid ""
3438 "    while ((host = strtok(NULL, \" \"))) {\n"
3439 "        nreqs++;\n"
3440 "        reqs = realloc(reqs, nreqs * sizeof(reqs[0]));\n"
3441 msgstr ""
3442
3443 #. type: Plain text
3444 #: build/C/man3/getaddrinfo_a.3:464
3445 #, no-wrap
3446 msgid ""
3447 "        reqs[nreqs - 1] = calloc(1, sizeof(*reqs[0]));\n"
3448 "        reqs[nreqs - 1]-E<gt>ar_name = strdup(host);\n"
3449 "    }\n"
3450 msgstr ""
3451
3452 #. type: Plain text
3453 #: build/C/man3/getaddrinfo_a.3:466
3454 #, no-wrap
3455 msgid "    /* Queue nreqs_base..nreqs requests. */\n"
3456 msgstr ""
3457
3458 #. type: Plain text
3459 #: build/C/man3/getaddrinfo_a.3:475
3460 #, no-wrap
3461 msgid ""
3462 "    ret = getaddrinfo_a(GAI_NOWAIT, &reqs[nreqs_base],\n"
3463 "                        nreqs - nreqs_base, NULL);\n"
3464 "    if (ret) {\n"
3465 "        fprintf(stderr, \"getaddrinfo_a() failed: %s\\en\",\n"
3466 "                gai_strerror(ret));\n"
3467 "        exit(EXIT_FAILURE);\n"
3468 "    }\n"
3469 "}\n"
3470 msgstr ""
3471
3472 #. type: Plain text
3473 #: build/C/man3/getaddrinfo_a.3:484
3474 #, no-wrap
3475 msgid ""
3476 "/* Wait until at least one of specified requests completes */\n"
3477 "static void\n"
3478 "wait_requests(void)\n"
3479 "{\n"
3480 "    char *id;\n"
3481 "    int i, ret, n;\n"
3482 "    struct gaicb const **wait_reqs = calloc(nreqs, sizeof(*wait_reqs));\n"
3483 "                /* NULL elements are ignored by gai_suspend(). */\n"
3484 msgstr ""
3485
3486 #. type: Plain text
3487 #: build/C/man3/getaddrinfo_a.3:487 build/C/man3/getaddrinfo_a.3:524
3488 #, no-wrap
3489 msgid ""
3490 "    while ((id = strtok(NULL, \" \")) != NULL) {\n"
3491 "        n = atoi(id);\n"
3492 msgstr ""
3493
3494 #. type: Plain text
3495 #: build/C/man3/getaddrinfo_a.3:492 build/C/man3/getaddrinfo_a.3:529
3496 #, no-wrap
3497 msgid ""
3498 "        if (n E<gt>= nreqs) {\n"
3499 "            printf(\"Bad request number: %s\\en\", id);\n"
3500 "            return;\n"
3501 "        }\n"
3502 msgstr ""
3503
3504 #. type: Plain text
3505 #: build/C/man3/getaddrinfo_a.3:495
3506 #, no-wrap
3507 msgid ""
3508 "        wait_reqs[n] = reqs[n];\n"
3509 "    }\n"
3510 msgstr ""
3511
3512 #. type: Plain text
3513 #: build/C/man3/getaddrinfo_a.3:501
3514 #, no-wrap
3515 msgid ""
3516 "    ret = gai_suspend(wait_reqs, nreqs, NULL);\n"
3517 "    if (ret) {\n"
3518 "        printf(\"gai_suspend(): %s\\en\", gai_strerror(ret));\n"
3519 "        return;\n"
3520 "    }\n"
3521 msgstr ""
3522
3523 #. type: Plain text
3524 #: build/C/man3/getaddrinfo_a.3:505
3525 #, no-wrap
3526 msgid ""
3527 "    for (i = 0; i E<lt> nreqs; i++) {\n"
3528 "        if (wait_reqs[i] == NULL)\n"
3529 "            continue;\n"
3530 msgstr ""
3531
3532 #. type: Plain text
3533 #: build/C/man3/getaddrinfo_a.3:509
3534 #, no-wrap
3535 msgid ""
3536 "        ret = gai_error(reqs[i]);\n"
3537 "        if (ret == EAI_INPROGRESS)\n"
3538 "            continue;\n"
3539 msgstr ""
3540
3541 #. type: Plain text
3542 #: build/C/man3/getaddrinfo_a.3:514
3543 #, no-wrap
3544 msgid ""
3545 "        printf(\"[%02d] %s: %s\\en\", i, reqs[i]-E<gt>ar_name,\n"
3546 "               ret == 0 ? \"Finished\" : gai_strerror(ret));\n"
3547 "    }\n"
3548 "}\n"
3549 msgstr ""
3550
3551 #. type: Plain text
3552 #: build/C/man3/getaddrinfo_a.3:521
3553 #, no-wrap
3554 msgid ""
3555 "/* Cancel specified requests */\n"
3556 "static void\n"
3557 "cancel_requests(void)\n"
3558 "{\n"
3559 "    char *id;\n"
3560 "    int ret, n;\n"
3561 msgstr ""
3562
3563 #. type: Plain text
3564 #: build/C/man3/getaddrinfo_a.3:535
3565 #, no-wrap
3566 msgid ""
3567 "        ret = gai_cancel(reqs[n]);\n"
3568 "        printf(\"[%s] %s: %s\\en\", id, reqs[atoi(id)]-E<gt>ar_name,\n"
3569 "               gai_strerror(ret));\n"
3570 "    }\n"
3571 "}\n"
3572 msgstr ""
3573
3574 #. type: Plain text
3575 #: build/C/man3/getaddrinfo_a.3:543
3576 #, no-wrap
3577 msgid ""
3578 "/* List all requests */\n"
3579 "static void\n"
3580 "list_requests(void)\n"
3581 "{\n"
3582 "    int i, ret;\n"
3583 "    char host[NI_MAXHOST];\n"
3584 "    struct addrinfo *res;\n"
3585 msgstr ""
3586
3587 #. type: Plain text
3588 #: build/C/man3/getaddrinfo_a.3:547
3589 #, no-wrap
3590 msgid ""
3591 "    for (i = 0; i E<lt> nreqs; i++) {\n"
3592 "        printf(\"[%02d] %s: \", i, reqs[i]-E<gt>ar_name);\n"
3593 "        ret = gai_error(reqs[i]);\n"
3594 msgstr ""
3595
3596 #. type: Plain text
3597 #: build/C/man3/getaddrinfo_a.3:550
3598 #, no-wrap
3599 msgid ""
3600 "        if (!ret) {\n"
3601 "            res = reqs[i]-E<gt>ar_result;\n"
3602 msgstr ""
3603
3604 #. type: Plain text
3605 #: build/C/man3/getaddrinfo_a.3:565
3606 #, no-wrap
3607 msgid ""
3608 "            ret = getnameinfo(res-E<gt>ai_addr, res-E<gt>ai_addrlen,\n"
3609 "                              host, sizeof(host),\n"
3610 "                              NULL, 0, NI_NUMERICHOST);\n"
3611 "            if (ret) {\n"
3612 "                fprintf(stderr, \"getnameinfo() failed: %s\\en\",\n"
3613 "                        gai_strerror(ret));\n"
3614 "                exit(EXIT_FAILURE);\n"
3615 "            }\n"
3616 "            puts(host);\n"
3617 "        } else {\n"
3618 "            puts(gai_strerror(ret));\n"
3619 "        }\n"
3620 "    }\n"
3621 "}\n"
3622 msgstr ""
3623
3624 #. type: Plain text
3625 #: build/C/man3/getaddrinfo_a.3:571
3626 #, no-wrap
3627 msgid ""
3628 "int\n"
3629 "main(int argc, char *argv[])\n"
3630 "{\n"
3631 "    char *cmdline;\n"
3632 "    char *cmd;\n"
3633 msgstr ""
3634
3635 #. type: Plain text
3636 #: build/C/man3/getaddrinfo_a.3:574
3637 #, no-wrap
3638 msgid ""
3639 "    while ((cmdline = getcmd()) != NULL) {\n"
3640 "        cmd = strtok(cmdline, \" \");\n"
3641 msgstr ""
3642
3643 #. type: Plain text
3644 #: build/C/man3/getaddrinfo_a.3:599
3645 #, no-wrap
3646 msgid ""
3647 "        if (cmd == NULL) {\n"
3648 "            list_requests();\n"
3649 "        } else {\n"
3650 "            switch (cmd[0]) {\n"
3651 "            case \\(aqa\\(aq:\n"
3652 "                add_requests();\n"
3653 "                break;\n"
3654 "            case \\(aqw\\(aq:\n"
3655 "                wait_requests();\n"
3656 "                break;\n"
3657 "            case \\(aqc\\(aq:\n"
3658 "                cancel_requests();\n"
3659 "                break;\n"
3660 "            case \\(aql\\(aq:\n"
3661 "                list_requests();\n"
3662 "                break;\n"
3663 "            default:\n"
3664 "                fprintf(stderr, \"Bad command: %c\\en\", cmd[0]);\n"
3665 "                break;\n"
3666 "            }\n"
3667 "        }\n"
3668 "    }\n"
3669 "    exit(EXIT_SUCCESS);\n"
3670 "}\n"
3671 msgstr ""
3672
3673 #. type: Plain text
3674 #: build/C/man3/getaddrinfo_a.3:607
3675 msgid ""
3676 "B<getaddrinfo>(3), B<inet>(3), B<lio_listio>(3), B<hostname>(7), B<ip>(7), "
3677 "B<sigevent>(7)"
3678 msgstr ""
3679
3680 #. type: TH
3681 #: build/C/man1/getent.1:23
3682 #, no-wrap
3683 msgid "GETENT"
3684 msgstr ""
3685
3686 #. type: TH
3687 #: build/C/man1/getent.1:23
3688 #, no-wrap
3689 msgid "2011-10-31"
3690 msgstr ""
3691
3692 #. type: TH
3693 #: build/C/man1/getent.1:23
3694 #, no-wrap
3695 msgid "User Commands"
3696 msgstr ""
3697
3698 #. type: Plain text
3699 #: build/C/man1/getent.1:26
3700 msgid "getent - get entries from Name Service Switch libraries"
3701 msgstr ""
3702
3703 #. type: Plain text
3704 #: build/C/man1/getent.1:29
3705 msgid "B<getent> I<database> [I<key> ...]"
3706 msgstr ""
3707
3708 #. type: Plain text
3709 #: build/C/man1/getent.1:44
3710 msgid ""
3711 "The B<getent> command displays entries from databases supported by the Name "
3712 "Service Switch libraries, which are configured in I</etc/nsswitch.conf>.  If "
3713 "one or more I<key> arguments are provided, then only the entries that match "
3714 "the supplied keys will be displayed.  Otherwise, if no I<key> is provided, "
3715 "all entries will be displayed (unless the database does not support "
3716 "enumeration)."
3717 msgstr ""
3718
3719 #. type: Plain text
3720 #: build/C/man1/getent.1:48
3721 msgid ""
3722 "The I<database> may be any of those supported by the GNU C Library, listed "
3723 "below:"
3724 msgstr ""
3725
3726 #. type: TP
3727 #: build/C/man1/getent.1:49
3728 #, no-wrap
3729 msgid "B<ahosts>"
3730 msgstr ""
3731
3732 #. type: Plain text
3733 #: build/C/man1/getent.1:70
3734 msgid ""
3735 "When no I<key> is provided, use B<sethostent>(3), B<gethostent>(3), and "
3736 "B<endhostent>(3)  to enumerate the hosts database.  This is identical to "
3737 "using B<hosts>.  When one or more I<key> arguments are provided, pass each "
3738 "I<key> in succession to B<getaddrinfo>(3)  with the address family "
3739 "B<AF_UNSPEC>, enumerating each socket address structure returned."
3740 msgstr ""
3741
3742 #. type: TP
3743 #: build/C/man1/getent.1:70
3744 #, no-wrap
3745 msgid "B<ahostsv4>"
3746 msgstr ""
3747
3748 #. type: Plain text
3749 #: build/C/man1/getent.1:76
3750 msgid "Same as B<ahosts>, but use the address family B<AF_INET>."
3751 msgstr ""
3752
3753 #. type: TP
3754 #: build/C/man1/getent.1:76
3755 #, no-wrap
3756 msgid "B<ahostsv6>"
3757 msgstr ""
3758
3759 #. type: Plain text
3760 #: build/C/man1/getent.1:87
3761 msgid ""
3762 "Same as B<ahosts>, but use the address family B<AF_INET6>.  The call to "
3763 "B<getaddrinfo>(3)  in this case includes the B<AI_V4MAPPED> flag."
3764 msgstr ""
3765
3766 #. type: TP
3767 #: build/C/man1/getent.1:87 build/C/man5/nsswitch.conf.5:43
3768 #, no-wrap
3769 msgid "B<aliases>"
3770 msgstr ""
3771
3772 #. type: Plain text
3773 #: build/C/man1/getent.1:104
3774 msgid ""
3775 "When no I<key> is provided, use B<setaliasent>(3), B<getaliasent>(3), and "
3776 "B<endaliasent>(3)  to enumerate the aliases database.  When one or more "
3777 "I<key> arguments are provided, pass each I<key> in succession to "
3778 "B<getaliasbyname>(3)  and display the result."
3779 msgstr ""
3780
3781 #. type: TP
3782 #: build/C/man1/getent.1:104 build/C/man5/nsswitch.conf.5:48
3783 #, no-wrap
3784 msgid "B<ethers>"
3785 msgstr ""
3786
3787 #. type: Plain text
3788 #: build/C/man1/getent.1:120
3789 msgid ""
3790 "When one or more I<key> arguments are provided, pass each I<key> in "
3791 "succession to B<ether_aton>(3)  and B<ether_hostton>(3)  until a result is "
3792 "obtained, and display the result.  Enumeration is not supported on "
3793 "B<ethers>, so a I<key> must be provided."
3794 msgstr ""
3795
3796 #. type: TP
3797 #: build/C/man1/getent.1:120 build/C/man5/nsswitch.conf.5:51
3798 #, no-wrap
3799 msgid "B<group>"
3800 msgstr ""
3801
3802 #. type: Plain text
3803 #: build/C/man1/getent.1:141
3804 msgid ""
3805 "When no I<key> is provided, use B<setgrent>(3), B<getgrent>(3), and "
3806 "B<endgrent>(3)  to enumerate the group database.  When one or more I<key> "
3807 "arguments are provided, pass each numeric I<key> to B<getgrgid>(3)  and each "
3808 "nonnumeric I<key> to B<getgrnam>(3)  and display the result."
3809 msgstr ""
3810
3811 #. type: TP
3812 #: build/C/man1/getent.1:141
3813 #, no-wrap
3814 msgid "B<gshadow>"
3815 msgstr ""
3816
3817 #. type: Plain text
3818 #: build/C/man1/getent.1:158
3819 msgid ""
3820 "When no I<key> is provided, use B<setsgent>(3), B<getsgent>(3), and "
3821 "B<endsgent>(3)  to enumerate the gshadow database.  When one or more I<key> "
3822 "arguments are provided, pass each I<key> in succession to B<getsgnam>(3)  "
3823 "and display the result."
3824 msgstr ""
3825
3826 #. type: TP
3827 #: build/C/man1/getent.1:158 build/C/man5/nsswitch.conf.5:56
3828 #, no-wrap
3829 msgid "B<hosts>"
3830 msgstr ""
3831
3832 #. type: Plain text
3833 #: build/C/man1/getent.1:181
3834 msgid ""
3835 "When no I<key> is provided, use B<sethostent>(3), B<gethostent>(3), and "
3836 "B<endhostent>(3)  to enumerate the hosts database.  When one or more I<key> "
3837 "arguments are provided, pass each I<key> to B<gethostbyaddr>(3)  or "
3838 "B<gethostbyname2>(3), depending on whether a call to B<inet_pton>(3)  "
3839 "indicates that the I<key> is an IPv6 or IPv4 address or not, and display the "
3840 "result."
3841 msgstr ""
3842
3843 #. type: TP
3844 #: build/C/man1/getent.1:181
3845 #, no-wrap
3846 msgid "B<initgroups>"
3847 msgstr ""
3848
3849 #. type: Plain text
3850 #: build/C/man1/getent.1:195
3851 msgid ""
3852 "When one or more I<key> arguments are provided, pass each I<key> in "
3853 "succession to B<getgrouplist>(3)  and display the result.  Enumeration is "
3854 "not supported on B<initgroups>, so a I<key> must be provided."
3855 msgstr ""
3856
3857 #. type: TP
3858 #: build/C/man1/getent.1:195 build/C/man5/nsswitch.conf.5:61
3859 #, no-wrap
3860 msgid "B<netgroup>"
3861 msgstr ""
3862
3863 #. type: Plain text
3864 #: build/C/man1/getent.1:221
3865 msgid ""
3866 "When one I<key> is provided, pass the I<key> to B<setnetgrent>(3)  and, "
3867 "using B<getnetgrent>(3)  display the resulting string triple (I<hostname>, "
3868 "I<username>, I<domainname>).  Alternatively, three I<keys> may be provided, "
3869 "which are interpreted as the I<hostname>, I<username> and I<domainname> to "
3870 "match to a netgroup name via B<innetgr>(3).  Enumeration is not supported on "
3871 "B<initgroups>, so either one or three I<keys> must be provided."
3872 msgstr ""
3873
3874 #. type: TP
3875 #: build/C/man1/getent.1:221 build/C/man5/nsswitch.conf.5:65
3876 #, no-wrap
3877 msgid "B<networks>"
3878 msgstr ""
3879
3880 #. type: Plain text
3881 #: build/C/man1/getent.1:242
3882 msgid ""
3883 "When no I<key> is provided, use B<setnetent>(3), B<getnetent>(3), and "
3884 "B<endnetent>(3)  to enumerate the networks database.  When one or more "
3885 "I<key> arguments are provided, pass each numeric I<key> to "
3886 "B<getnetbyaddr>(3)  and each nonnumeric I<key> to B<getnetbyname>(3)  and "
3887 "display the result."
3888 msgstr ""
3889
3890 #. type: TP
3891 #: build/C/man1/getent.1:242 build/C/man5/nsswitch.conf.5:70
3892 #, no-wrap
3893 msgid "B<passwd>"
3894 msgstr ""
3895
3896 #. type: Plain text
3897 #: build/C/man1/getent.1:263
3898 msgid ""
3899 "When no I<key> is provided, use B<setpwent>(3), B<getpwent>(3), and "
3900 "B<endpwent>(3)  to enumerate the passwd database.  When one or more I<key> "
3901 "arguments are provided, pass each numeric I<key> to B<getpwuid>(3)  and each "
3902 "nonnumeric I<key> to B<getpwnam>(3)  and display the result."
3903 msgstr ""
3904
3905 #. type: TP
3906 #: build/C/man1/getent.1:263 build/C/man5/nsswitch.conf.5:75
3907 #, no-wrap
3908 msgid "B<protocols>"
3909 msgstr ""
3910
3911 #. type: Plain text
3912 #: build/C/man1/getent.1:284
3913 msgid ""
3914 "When no I<key> is provided, use B<setprotoent>(3), B<getprotoent>(3), and "
3915 "B<endprotoent>(3)  to enumerate the protocols database.  When one or more "
3916 "I<key> arguments are provided, pass each numeric I<key> to "
3917 "B<getprotobynumber>(3)  and each nonnumeric I<key> to B<getprotobyname>(3)  "
3918 "and display the result."
3919 msgstr ""
3920
3921 #. type: TP
3922 #: build/C/man1/getent.1:284 build/C/man5/nsswitch.conf.5:83
3923 #, no-wrap
3924 msgid "B<rpc>"
3925 msgstr ""
3926
3927 #. type: Plain text
3928 #: build/C/man1/getent.1:305
3929 msgid ""
3930 "When no I<key> is provided, use B<setrpcent>(3), B<getrpcent>(3), and "
3931 "B<endrpcent>(3)  to enumerate the rpc database.  When one or more I<key> "
3932 "arguments are provided, pass each numeric I<key> to B<getrpcbynumber>(3)  "
3933 "and each nonnumeric I<key> to B<getrpcbyname>(3)  and display the result."
3934 msgstr ""
3935
3936 #. type: TP
3937 #: build/C/man1/getent.1:305 build/C/man5/nsswitch.conf.5:88
3938 #, no-wrap
3939 msgid "B<services>"
3940 msgstr ""
3941
3942 #. type: Plain text
3943 #: build/C/man1/getent.1:326
3944 msgid ""
3945 "When no I<key> is provided, use B<setservent>(3), B<getservent>(3), and "
3946 "B<endservent>(3)  to enumerate the services database.  When one or more "
3947 "I<key> arguments are provided, pass each numeric I<key> to "
3948 "B<getservbynumber>(3)  and each nonnumeric I<key> to B<getservbyname>(3)  "
3949 "and display the result."
3950 msgstr ""
3951
3952 #. type: TP
3953 #: build/C/man1/getent.1:326 build/C/man5/nsswitch.conf.5:93
3954 #, no-wrap
3955 msgid "B<shadow>"
3956 msgstr ""
3957
3958 #. type: Plain text
3959 #: build/C/man1/getent.1:343
3960 msgid ""
3961 "When no I<key> is provided, use B<setspent>(3), B<getspent>(3), and "
3962 "B<endspent>(3)  to enumerate the shadow database.  When one or more I<key> "
3963 "arguments are provided, pass each I<key> in succession to B<getspnam>(3)  "
3964 "and display the result."
3965 msgstr ""
3966
3967 #. type: SH
3968 #: build/C/man1/getent.1:344
3969 #, no-wrap
3970 msgid "EXIT STATUS"
3971 msgstr ""
3972
3973 #. type: Plain text
3974 #: build/C/man1/getent.1:347
3975 msgid "One of the following exit values can be returned by B<getent>:"
3976 msgstr ""
3977
3978 #. type: TP
3979 #: build/C/man1/getent.1:348
3980 #, no-wrap
3981 msgid "B<0>"
3982 msgstr ""
3983
3984 #. type: Plain text
3985 #: build/C/man1/getent.1:351
3986 msgid "Command completed successfully."
3987 msgstr ""
3988
3989 #. type: TP
3990 #: build/C/man1/getent.1:351
3991 #, no-wrap
3992 msgid "B<1>"
3993 msgstr ""
3994
3995 #. type: Plain text
3996 #: build/C/man1/getent.1:356
3997 msgid "Missing arguments, or I<database> unknown."
3998 msgstr ""
3999
4000 #. type: TP
4001 #: build/C/man1/getent.1:356
4002 #, no-wrap
4003 msgid "B<2>"
4004 msgstr ""
4005
4006 #. type: Plain text
4007 #: build/C/man1/getent.1:362
4008 msgid "One or more supplied I<key> could not be found in the I<database>."
4009 msgstr ""
4010
4011 #. type: TP
4012 #: build/C/man1/getent.1:362
4013 #, no-wrap
4014 msgid "B<3>"
4015 msgstr ""
4016
4017 #. type: Plain text
4018 #: build/C/man1/getent.1:366
4019 msgid "Enumeration not supported on this I<database>."
4020 msgstr ""
4021
4022 #. type: Plain text
4023 #: build/C/man1/getent.1:369
4024 msgid "B<nsswitch.conf>(5)"
4025 msgstr ""
4026
4027 #. type: TH
4028 #: build/C/man3/gethostbyname.3:36
4029 #, no-wrap
4030 msgid "GETHOSTBYNAME"
4031 msgstr ""
4032
4033 #. type: TH
4034 #: build/C/man3/gethostbyname.3:36
4035 #, no-wrap
4036 msgid "2010-10-04"
4037 msgstr ""
4038
4039 #. type: Plain text
4040 #: build/C/man3/gethostbyname.3:44
4041 msgid ""
4042 "gethostbyname, gethostbyaddr, sethostent, gethostent, endhostent, h_errno, "
4043 "herror, hstrerror, gethostbyaddr_r, gethostbyname2, gethostbyname2_r, "
4044 "gethostbyname_r, gethostent_r - get network host entry"
4045 msgstr ""
4046
4047 #. type: Plain text
4048 #: build/C/man3/gethostbyname.3:48
4049 #, no-wrap
4050 msgid ""
4051 "B<#include E<lt>netdb.hE<gt>>\n"
4052 "B<extern int h_errno;>\n"
4053 msgstr ""
4054
4055 #. type: Plain text
4056 #: build/C/man3/gethostbyname.3:50
4057 #, no-wrap
4058 msgid "B<struct hostent *gethostbyname(const char *>I<name>B<);>\n"
4059 msgstr ""
4060
4061 #. type: Plain text
4062 #: build/C/man3/gethostbyname.3:54
4063 #, no-wrap
4064 msgid ""
4065 "B<#include E<lt>sys/socket.hE<gt>>       /* for AF_INET */\n"
4066 "B<struct hostent *gethostbyaddr(const void *>I<addr>B<,>\n"
4067 "B<                              socklen_t >I<len>B<, int >I<type>B<);>\n"
4068 msgstr ""
4069
4070 #. type: Plain text
4071 #: build/C/man3/gethostbyname.3:56
4072 #, no-wrap
4073 msgid "B<void sethostent(int >I<stayopen>B<);>\n"
4074 msgstr ""
4075
4076 #. type: Plain text
4077 #: build/C/man3/gethostbyname.3:58
4078 #, no-wrap
4079 msgid "B<void endhostent(void);>\n"
4080 msgstr ""
4081
4082 #. type: Plain text
4083 #: build/C/man3/gethostbyname.3:60
4084 #, no-wrap
4085 msgid "B<void herror(const char *>I<s>B<);>\n"
4086 msgstr ""
4087
4088 #. type: Plain text
4089 #: build/C/man3/gethostbyname.3:62
4090 #, no-wrap
4091 msgid "B<const char *hstrerror(int >I<err>B<);>\n"
4092 msgstr ""
4093
4094 #. type: Plain text
4095 #: build/C/man3/gethostbyname.3:64
4096 #, no-wrap
4097 msgid "/* System V/POSIX extension */\n"
4098 msgstr ""
4099
4100 #. type: Plain text
4101 #: build/C/man3/gethostbyname.3:66
4102 #, no-wrap
4103 msgid "B<struct hostent *gethostent(void);>\n"
4104 msgstr ""
4105
4106 #. type: Plain text
4107 #: build/C/man3/gethostbyname.3:70
4108 #, no-wrap
4109 msgid "B<struct hostent *gethostbyname2(const char *>I<name>B<, int >I<af>B<);>\n"
4110 msgstr ""
4111
4112 #. type: Plain text
4113 #: build/C/man3/gethostbyname.3:74
4114 #, no-wrap
4115 msgid ""
4116 "B<int gethostent_r(>\n"
4117 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4118 ">I<buflen>B<,>\n"
4119 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4120 msgstr ""
4121
4122 #. type: Plain text
4123 #: build/C/man3/gethostbyname.3:78
4124 #, no-wrap
4125 msgid ""
4126 "B<int gethostbyaddr_r(const void *>I<addr>B<, socklen_t >I<len>B<, int "
4127 ">I<type>B<,>\n"
4128 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4129 ">I<buflen>B<,>\n"
4130 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4131 msgstr ""
4132
4133 #. type: Plain text
4134 #: build/C/man3/gethostbyname.3:82
4135 #, no-wrap
4136 msgid ""
4137 "B<int gethostbyname_r(const char *>I<name>B<,>\n"
4138 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4139 ">I<buflen>B<,>\n"
4140 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4141 msgstr ""
4142
4143 #. type: Plain text
4144 #: build/C/man3/gethostbyname.3:86
4145 #, no-wrap
4146 msgid ""
4147 "B<int gethostbyname2_r(const char *>I<name>B<, int >I<af,>\n"
4148 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4149 ">I<buflen>B<,>\n"
4150 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4151 msgstr ""
4152
4153 #. type: Plain text
4154 #: build/C/man3/gethostbyname.3:100
4155 msgid ""
4156 "B<gethostbyname2>(), B<gethostent_r>(), B<gethostbyaddr_r>(), "
4157 "B<gethostbyname_r>(), B<gethostbyname2_r>():"
4158 msgstr ""
4159
4160 #. type: Plain text
4161 #: build/C/man3/gethostbyname.3:102 build/C/man3/getnetent_r.3:58 build/C/man3/getprotoent_r.3:55 build/C/man3/getservent_r.3:55
4162 msgid "_BSD_SOURCE || _SVID_SOURCE"
4163 msgstr ""
4164
4165 #. type: Plain text
4166 #: build/C/man3/gethostbyname.3:106
4167 msgid "B<herror>(), B<hstrerror>():"
4168 msgstr ""
4169
4170 #. type: TP
4171 #: build/C/man3/gethostbyname.3:107
4172 #, no-wrap
4173 msgid "Since glibc 2.8:"
4174 msgstr ""
4175
4176 #. type: Plain text
4177 #: build/C/man3/gethostbyname.3:110
4178 msgid "_BSD_SOURCE || _SVID_SOURCE || _GNU_SOURCE"
4179 msgstr ""
4180
4181 #. type: TP
4182 #: build/C/man3/gethostbyname.3:110
4183 #, no-wrap
4184 msgid "Before glibc 2.8:"
4185 msgstr ""
4186
4187 #. type: Plain text
4188 #: build/C/man3/gethostbyname.3:113
4189 msgid "none"
4190 msgstr ""
4191
4192 #. type: Plain text
4193 #: build/C/man3/gethostbyname.3:127
4194 msgid ""
4195 "The B<gethostbyname*>()  and B<gethostbyaddr*>()  functions are obsolete.  "
4196 "Applications should use B<getaddrinfo>(3)  and B<getnameinfo>(3)  instead."
4197 msgstr ""
4198
4199 #. type: Plain text
4200 #: build/C/man3/gethostbyname.3:168
4201 msgid ""
4202 "The B<gethostbyname>()  function returns a structure of type I<hostent> for "
4203 "the given host I<name>.  Here I<name> is either a hostname, or an IPv4 "
4204 "address in standard dot notation (as for B<inet_addr>(3)), or an IPv6 "
4205 "address in colon (and possibly dot) notation.  (See RFC\\ 1884 for the "
4206 "description of IPv6 addresses.)  If I<name> is an IPv4 or IPv6 address, no "
4207 "lookup is performed and B<gethostbyname>()  simply copies I<name> into the "
4208 "I<h_name> field and its I<struct in_addr> equivalent into the "
4209 "I<h_addr_list[0]> field of the returned I<hostent> structure.  If I<name> "
4210 "doesn't end in a dot and the environment variable B<HOSTALIASES> is set, the "
4211 "alias file pointed to by B<HOSTALIASES> will first be searched for I<name> "
4212 "(see B<hostname>(7)  for the file format).  The current domain and its "
4213 "parents are searched unless I<name> ends in a dot."
4214 msgstr ""
4215
4216 #. type: Plain text
4217 #: build/C/man3/gethostbyname.3:184
4218 msgid ""
4219 "The B<gethostbyaddr>()  function returns a structure of type I<hostent> for "
4220 "the given host address I<addr> of length I<len> and address type I<type>.  "
4221 "Valid address types are B<AF_INET> and B<AF_INET6>.  The host address "
4222 "argument is a pointer to a struct of a type depending on the address type, "
4223 "for example a I<struct in_addr *> (probably obtained via a call to "
4224 "B<inet_addr>(3))  for address type B<AF_INET>."
4225 msgstr ""
4226
4227 #. type: Plain text
4228 #: build/C/man3/gethostbyname.3:191
4229 msgid ""
4230 "The B<sethostent>()  function specifies, if I<stayopen> is true (1), that a "
4231 "connected TCP socket should be used for the name server queries and that the "
4232 "connection should remain open during successive queries.  Otherwise, name "
4233 "server queries will use UDP datagrams."
4234 msgstr ""
4235
4236 #. type: Plain text
4237 #: build/C/man3/gethostbyname.3:196
4238 msgid ""
4239 "The B<endhostent>()  function ends the use of a TCP connection for name "
4240 "server queries."
4241 msgstr ""
4242
4243 #. type: Plain text
4244 #: build/C/man3/gethostbyname.3:201
4245 msgid ""
4246 "The (obsolete)  B<herror>()  function prints the error message associated "
4247 "with the current value of I<h_errno> on I<stderr>."
4248 msgstr ""
4249
4250 #. type: Plain text
4251 #: build/C/man3/gethostbyname.3:206
4252 msgid ""
4253 "The (obsolete)  B<hstrerror>()  function takes an error number (typically "
4254 "I<h_errno>) and returns the corresponding message string."
4255 msgstr ""
4256
4257 #.  (See
4258 #.  .BR resolv+ (8)).
4259 #. type: Plain text
4260 #: build/C/man3/gethostbyname.3:223
4261 msgid ""
4262 "The domain name queries carried out by B<gethostbyname>()  and "
4263 "B<gethostbyaddr>()  use a combination of any or all of the name server "
4264 "B<named>(8), a broken out line from I</etc/hosts>, and the Network "
4265 "Information Service (NIS or YP), depending upon the contents of the I<order> "
4266 "line in I</etc/host.conf>.  The default action is to query B<named>(8), "
4267 "followed by I</etc/hosts>."
4268 msgstr ""
4269
4270 #. type: Plain text
4271 #: build/C/man3/gethostbyname.3:225
4272 msgid "The I<hostent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
4273 msgstr ""
4274
4275 #. type: Plain text
4276 #: build/C/man3/gethostbyname.3:237
4277 #, no-wrap
4278 msgid ""
4279 "struct hostent {\n"
4280 "    char  *h_name;            /* official name of host */\n"
4281 "    char **h_aliases;         /* alias list */\n"
4282 "    int    h_addrtype;        /* host address type */\n"
4283 "    int    h_length;          /* length of address */\n"
4284 "    char **h_addr_list;       /* list of addresses */\n"
4285 "}\n"
4286 "#define h_addr h_addr_list[0] /* for backward compatibility */\n"
4287 msgstr ""
4288
4289 #. type: Plain text
4290 #: build/C/man3/gethostbyname.3:241
4291 msgid "The members of the I<hostent> structure are:"
4292 msgstr ""
4293
4294 #. type: TP
4295 #: build/C/man3/gethostbyname.3:241 build/C/man3/getipnodebyname.3:208
4296 #, no-wrap
4297 msgid "I<h_name>"
4298 msgstr ""
4299
4300 #. type: Plain text
4301 #: build/C/man3/gethostbyname.3:244
4302 msgid "The official name of the host."
4303 msgstr ""
4304
4305 #. type: TP
4306 #: build/C/man3/gethostbyname.3:244 build/C/man3/getipnodebyname.3:211
4307 #, no-wrap
4308 msgid "I<h_aliases>"
4309 msgstr ""
4310
4311 #. type: Plain text
4312 #: build/C/man3/gethostbyname.3:247
4313 msgid "An array of alternative names for the host, terminated by a NULL pointer."
4314 msgstr ""
4315
4316 #. type: TP
4317 #: build/C/man3/gethostbyname.3:247 build/C/man3/getipnodebyname.3:215
4318 #, no-wrap
4319 msgid "I<h_addrtype>"
4320 msgstr ""
4321
4322 #. type: Plain text
4323 #: build/C/man3/gethostbyname.3:254
4324 msgid "The type of address; always B<AF_INET> or B<AF_INET6> at present."
4325 msgstr ""
4326
4327 #. type: TP
4328 #: build/C/man3/gethostbyname.3:254 build/C/man3/getipnodebyname.3:237
4329 #, no-wrap
4330 msgid "I<h_length>"
4331 msgstr ""
4332
4333 #. type: Plain text
4334 #: build/C/man3/gethostbyname.3:257
4335 msgid "The length of the address in bytes."
4336 msgstr ""
4337
4338 #. type: TP
4339 #: build/C/man3/gethostbyname.3:257 build/C/man3/getipnodebyname.3:251
4340 #, no-wrap
4341 msgid "I<h_addr_list>"
4342 msgstr ""
4343
4344 #. type: Plain text
4345 #: build/C/man3/gethostbyname.3:261
4346 msgid ""
4347 "An array of pointers to network addresses for the host (in network byte "
4348 "order), terminated by a NULL pointer."
4349 msgstr ""
4350
4351 #. type: TP
4352 #: build/C/man3/gethostbyname.3:261
4353 #, no-wrap
4354 msgid "I<h_addr>"
4355 msgstr ""
4356
4357 #. type: Plain text
4358 #: build/C/man3/gethostbyname.3:264
4359 msgid "The first address in I<h_addr_list> for backward compatibility."
4360 msgstr ""
4361
4362 #. type: Plain text
4363 #: build/C/man3/gethostbyname.3:276
4364 msgid ""
4365 "The B<gethostbyname>()  and B<gethostbyaddr>()  functions return the "
4366 "I<hostent> structure or a NULL pointer if an error occurs.  On error, the "
4367 "I<h_errno> variable holds an error number.  When non-NULL, the return value "
4368 "may point at static data, see the notes below."
4369 msgstr ""
4370
4371 #. type: Plain text
4372 #: build/C/man3/gethostbyname.3:278
4373 msgid "The variable I<h_errno> can have the following values:"
4374 msgstr ""
4375
4376 #. type: TP
4377 #: build/C/man3/gethostbyname.3:278 build/C/man3/getipnodebyname.3:188
4378 #, no-wrap
4379 msgid "B<HOST_NOT_FOUND>"
4380 msgstr ""
4381
4382 #. type: Plain text
4383 #: build/C/man3/gethostbyname.3:281
4384 msgid "The specified host is unknown."
4385 msgstr ""
4386
4387 #. type: TP
4388 #: build/C/man3/gethostbyname.3:281
4389 #, no-wrap
4390 msgid "B<NO_ADDRESS> or B<NO_DATA>"
4391 msgstr ""
4392
4393 #. type: Plain text
4394 #: build/C/man3/gethostbyname.3:284
4395 msgid "The requested name is valid but does not have an IP address."
4396 msgstr ""
4397
4398 #. type: TP
4399 #: build/C/man3/gethostbyname.3:284 build/C/man3/getipnodebyname.3:197
4400 #, no-wrap
4401 msgid "B<NO_RECOVERY>"
4402 msgstr ""
4403
4404 #. type: Plain text
4405 #: build/C/man3/gethostbyname.3:287
4406 msgid "A nonrecoverable name server error occurred."
4407 msgstr ""
4408
4409 #. type: TP
4410 #: build/C/man3/gethostbyname.3:287 build/C/man3/getipnodebyname.3:200
4411 #, no-wrap
4412 msgid "B<TRY_AGAIN>"
4413 msgstr ""
4414
4415 #. type: Plain text
4416 #: build/C/man3/gethostbyname.3:291
4417 msgid ""
4418 "A temporary error occurred on an authoritative name server.  Try again "
4419 "later."
4420 msgstr ""
4421
4422 #. type: TP
4423 #: build/C/man3/gethostbyname.3:292 build/C/man5/host.conf.5:181
4424 #, no-wrap
4425 msgid "I</etc/host.conf>"
4426 msgstr ""
4427
4428 #. type: Plain text
4429 #: build/C/man3/gethostbyname.3:295
4430 msgid "resolver configuration file"
4431 msgstr ""
4432
4433 #. type: Plain text
4434 #: build/C/man3/gethostbyname.3:295 build/C/man5/host.conf.5:187 build/C/man5/hosts.5:88
4435 #, no-wrap
4436 msgid "I</etc/hosts>"
4437 msgstr ""
4438
4439 #. type: Plain text
4440 #: build/C/man3/gethostbyname.3:298
4441 msgid "host database file"
4442 msgstr ""
4443
4444 #. type: Plain text
4445 #: build/C/man3/gethostbyname.3:298 build/C/man5/nsswitch.conf.5:293 build/C/man3/setnetgrent.3:87
4446 #, no-wrap
4447 msgid "I</etc/nsswitch.conf>"
4448 msgstr ""
4449
4450 #. type: Plain text
4451 #: build/C/man3/gethostbyname.3:301
4452 msgid "name service switch configuration"
4453 msgstr ""
4454
4455 #. type: Plain text
4456 #: build/C/man3/gethostbyname.3:325
4457 msgid ""
4458 "POSIX.1-2001 specifies B<gethostbyname>(), B<gethostbyaddr>(), "
4459 "B<sethostent>(), B<endhostent>(), B<gethostent>(), and I<h_errno>; "
4460 "B<gethostbyname>(), B<gethostbyaddr>(), and I<h_errno> are marked "
4461 "obsolescent in that standard.  POSIX.1-2008 removes the specifications of "
4462 "B<gethostbyname>(), B<gethostbyaddr>(), and I<h_errno>, recommending the use "
4463 "of B<getaddrinfo>(3)  and B<getnameinfo>(3)  instead."
4464 msgstr ""
4465
4466 #. type: Plain text
4467 #: build/C/man3/gethostbyname.3:335
4468 msgid ""
4469 "The functions B<gethostbyname>()  and B<gethostbyaddr>()  may return "
4470 "pointers to static data, which may be overwritten by later calls.  Copying "
4471 "the I<struct hostent> does not suffice, since it contains pointers; a deep "
4472 "copy is required."
4473 msgstr ""
4474
4475 #. type: Plain text
4476 #: build/C/man3/gethostbyname.3:359
4477 msgid ""
4478 "In the original BSD implementation the I<len> argument of B<gethostbyname>()  "
4479 "was an I<int>.  The SUSv2 standard is buggy and declares the I<len> argument "
4480 "of B<gethostbyaddr>()  to be of type I<size_t>.  (That is wrong, because it "
4481 "has to be I<int>, and I<size_t> is not.  POSIX.1-2001 makes it I<socklen_t>, "
4482 "which is OK.)  See also B<accept>(2)."
4483 msgstr ""
4484
4485 #. type: Plain text
4486 #: build/C/man3/gethostbyname.3:365
4487 msgid ""
4488 "The BSD prototype for B<gethostbyaddr>()  uses I<const char *> for the first "
4489 "argument."
4490 msgstr ""
4491
4492 #. type: SS
4493 #: build/C/man3/gethostbyname.3:365
4494 #, no-wrap
4495 msgid "System V/POSIX Extension"
4496 msgstr ""
4497
4498 #.  e.g., Linux, FreeBSD, UnixWare, HP-UX
4499 #.  e.g., FreeBSD, AIX
4500 #. type: Plain text
4501 #: build/C/man3/gethostbyname.3:382
4502 msgid ""
4503 "POSIX requires the B<gethostent>()  call, that should return the next entry "
4504 "in the host data base.  When using DNS/BIND this does not make much sense, "
4505 "but it may be reasonable if the host data base is a file that can be read "
4506 "line by line.  On many systems a routine of this name reads from the file "
4507 "I</etc/hosts>.  It may be available only when the library was built without "
4508 "DNS support.  The glibc version will ignore ipv6 entries.  This function is "
4509 "not reentrant, and glibc adds a reentrant version B<gethostent_r>()."
4510 msgstr ""
4511
4512 #. type: SS
4513 #: build/C/man3/gethostbyname.3:382
4514 #, no-wrap
4515 msgid "GNU Extensions"
4516 msgstr ""
4517
4518 #. type: Plain text
4519 #: build/C/man3/gethostbyname.3:388
4520 msgid ""
4521 "Glibc2 also has a B<gethostbyname2>()  that works like B<gethostbyname>(), "
4522 "but permits to specify the address family to which the address must belong."
4523 msgstr ""
4524
4525 #. type: Plain text
4526 #: build/C/man3/gethostbyname.3:422
4527 msgid ""
4528 "Glibc2 also has reentrant versions B<gethostent_r>(), B<gethostbyaddr_r>(), "
4529 "B<gethostbyname_r>()  and B<gethostbyname2_r>().  The caller supplies a "
4530 "I<hostent> structure I<ret> which will be filled in on success, and a "
4531 "temporary work buffer I<buf> of size I<buflen>.  After the call, I<result> "
4532 "will point to the result on success.  In case of an error or if no entry is "
4533 "found I<result> will be NULL.  The functions return 0 on success and a "
4534 "nonzero error number on failure.  In addition to the errors returned by the "
4535 "nonreentrant versions of these functions, if I<buf> is too small, the "
4536 "functions will return B<ERANGE>, and the call should be retried with a "
4537 "larger buffer.  The global variable I<h_errno> is not modified, but the "
4538 "address of a variable in which to store error numbers is passed in "
4539 "I<h_errnop>."
4540 msgstr ""
4541
4542 #.  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482973
4543 #. type: Plain text
4544 #: build/C/man3/gethostbyname.3:427
4545 msgid ""
4546 "B<gethostbyname>()  does not recognize components of a dotted IPv4 address "
4547 "string that are expressed in hexadecimal."
4548 msgstr ""
4549
4550 #.  .BR getipnodebyaddr (3),
4551 #.  .BR getipnodebyname (3),
4552 #.  .BR resolv+ (8)
4553 #. type: Plain text
4554 #: build/C/man3/gethostbyname.3:441
4555 msgid ""
4556 "B<getaddrinfo>(3), B<getnameinfo>(3), B<inet>(3), B<inet_ntop>(3), "
4557 "B<inet_pton>(3), B<resolver>(3), B<hosts>(5), B<nsswitch.conf>(5), "
4558 "B<hostname>(7), B<named>(8)"
4559 msgstr ""
4560
4561 #. type: TH
4562 #: build/C/man3/getipnodebyname.3:24
4563 #, no-wrap
4564 msgid "GETIPNODEBYNAME"
4565 msgstr ""
4566
4567 #. type: TH
4568 #: build/C/man3/getipnodebyname.3:24
4569 #, no-wrap
4570 msgid "2010-09-04"
4571 msgstr ""
4572
4573 #. type: Plain text
4574 #: build/C/man3/getipnodebyname.3:28
4575 msgid ""
4576 "getipnodebyname, getipnodebyaddr, freehostent - get network hostnames and "
4577 "addresses"
4578 msgstr ""
4579
4580 #. type: Plain text
4581 #: build/C/man3/getipnodebyname.3:36
4582 #, no-wrap
4583 msgid ""
4584 "B<struct hostent *getipnodebyname(const char *>I<name>B<, int >I<af>B<,>\n"
4585 "B<                                int >I<flags>B<, int *>I<error_num>B<);>\n"
4586 msgstr ""
4587
4588 #. type: Plain text
4589 #: build/C/man3/getipnodebyname.3:39
4590 #, no-wrap
4591 msgid ""
4592 "B<struct hostent *getipnodebyaddr(const void *>I<addr>B<, size_t "
4593 ">I<len>B<,>\n"
4594 "B<                                int >I<af>B<, int *>I<error_num>B<);>\n"
4595 msgstr ""
4596
4597 #. type: Plain text
4598 #: build/C/man3/getipnodebyname.3:41
4599 #, no-wrap
4600 msgid "B<void freehostent(struct hostent *>I<ip>B<);>\n"
4601 msgstr ""
4602
4603 #. type: Plain text
4604 #: build/C/man3/getipnodebyname.3:49
4605 msgid ""
4606 "These functions are deprecated (and unavailable in glibc).  Use "
4607 "B<getaddrinfo>(3)  and B<getnameinfo>(3)  instead."
4608 msgstr ""
4609
4610 #. type: Plain text
4611 #: build/C/man3/getipnodebyname.3:57
4612 msgid ""
4613 "The B<getipnodebyname>()  and B<getipnodebyaddr>()  functions return the "
4614 "names and addresses of a network host.  These functions return a pointer to "
4615 "the following structure:"
4616 msgstr ""
4617
4618 #. type: Plain text
4619 #: build/C/man3/getipnodebyname.3:67
4620 #, no-wrap
4621 msgid ""
4622 "struct hostent {\n"
4623 "    char  *h_name;\n"
4624 "    char **h_aliases;\n"
4625 "    int    h_addrtype;\n"
4626 "    int    h_length;\n"
4627 "    char **h_addr_list;\n"
4628 "};\n"
4629 msgstr ""
4630
4631 #. type: Plain text
4632 #: build/C/man3/getipnodebyname.3:80
4633 msgid ""
4634 "These functions replace the B<gethostbyname>(3)  and B<gethostbyaddr>(3)  "
4635 "functions, which could only access the IPv4 network address family.  The "
4636 "B<getipnodebyname>()  and B<getipnodebyaddr>()  functions can access "
4637 "multiple network address families."
4638 msgstr ""
4639
4640 #. type: Plain text
4641 #: build/C/man3/getipnodebyname.3:91
4642 msgid ""
4643 "Unlike the B<gethostby> functions, these functions return pointers to "
4644 "dynamically allocated memory.  The B<freehostent>()  function is used to "
4645 "release the dynamically allocated memory after the caller no longer needs "
4646 "the I<hostent> structure."
4647 msgstr ""
4648
4649 #. type: SS
4650 #: build/C/man3/getipnodebyname.3:91
4651 #, no-wrap
4652 msgid "getipnodebyname() arguments"
4653 msgstr ""
4654
4655 #. type: Plain text
4656 #: build/C/man3/getipnodebyname.3:102
4657 msgid ""
4658 "The B<getipnodebyname>()  function looks up network addresses for the host "
4659 "specified by the I<name> argument.  The I<af> argument specifies one of the "
4660 "following values:"
4661 msgstr ""
4662
4663 #. type: TP
4664 #: build/C/man3/getipnodebyname.3:102 build/C/man3/getipnodebyname.3:164 build/C/man3/inet_ntop.3:55 build/C/man3/inet_pton.3:51
4665 #, no-wrap
4666 msgid "B<AF_INET>"
4667 msgstr ""
4668
4669 #. type: Plain text
4670 #: build/C/man3/getipnodebyname.3:108
4671 msgid ""
4672 "The I<name> argument points to a dotted-quad IPv4 address or a name of an "
4673 "IPv4 network host."
4674 msgstr ""
4675
4676 #. type: TP
4677 #: build/C/man3/getipnodebyname.3:108 build/C/man3/getipnodebyname.3:174 build/C/man3/inet_ntop.3:68 build/C/man3/inet_pton.3:65
4678 #, no-wrap
4679 msgid "B<AF_INET6>"
4680 msgstr ""
4681
4682 #. type: Plain text
4683 #: build/C/man3/getipnodebyname.3:114
4684 msgid ""
4685 "The I<name> argument points to a hexadecimal IPv6 address or a name of an "
4686 "IPv6 network host."
4687 msgstr ""
4688
4689 #. type: Plain text
4690 #: build/C/man3/getipnodebyname.3:123
4691 msgid ""
4692 "The I<flags> argument specifies additional options.  More than one option "
4693 "can be specified by bitwise OR-ing them together.  I<flags> should be set to "
4694 "0 if no options are desired."
4695 msgstr ""
4696
4697 #. type: TP
4698 #: build/C/man3/getipnodebyname.3:123
4699 #, no-wrap
4700 msgid "B<AI_V4MAPPED>"
4701 msgstr ""
4702
4703 #. type: Plain text
4704 #: build/C/man3/getipnodebyname.3:130
4705 msgid ""
4706 "This flag is used with B<AF_INET6> to request a query for IPv4 addresses "
4707 "instead of IPv6 addresses; the IPv4 addresses will be mapped to IPv6 "
4708 "addresses."
4709 msgstr ""
4710
4711 #. type: TP
4712 #: build/C/man3/getipnodebyname.3:130
4713 #, no-wrap
4714 msgid "B<AI_ALL>"
4715 msgstr ""
4716
4717 #. type: Plain text
4718 #: build/C/man3/getipnodebyname.3:136
4719 msgid ""
4720 "This flag is used with B<AI_V4MAPPED> to request a query for both IPv4 and "
4721 "IPv6 addresses.  Any IPv4 address found will be mapped to an IPv6 address."
4722 msgstr ""
4723
4724 #. type: TP
4725 #: build/C/man3/getipnodebyname.3:136
4726 #, no-wrap
4727 msgid "B<AI_ADDRCONFIG>"
4728 msgstr ""
4729
4730 #. type: Plain text
4731 #: build/C/man3/getipnodebyname.3:148
4732 msgid ""
4733 "This flag is used with B<AF_INET6> to further request that queries for IPv6 "
4734 "addresses should not be made unless the system has at least one IPv6 address "
4735 "assigned to a network interface, and that queries for IPv4 addresses should "
4736 "not be made unless the system has at least one IPv4 address assigned to a "
4737 "network interface.  This flag may be used by itself or with the "
4738 "B<AI_V4MAPPED> flag."
4739 msgstr ""
4740
4741 #. type: TP
4742 #: build/C/man3/getipnodebyname.3:148
4743 #, no-wrap
4744 msgid "B<AI_DEFAULT>"
4745 msgstr ""
4746
4747 #. type: Plain text
4748 #: build/C/man3/getipnodebyname.3:152
4749 msgid "This flag is equivalent to B<(AI_ADDRCONFIG | AI_V4MAPPED)>."
4750 msgstr ""
4751
4752 #. type: SS
4753 #: build/C/man3/getipnodebyname.3:152
4754 #, no-wrap
4755 msgid "getipnodebyaddr() arguments"
4756 msgstr ""
4757
4758 #. type: Plain text
4759 #: build/C/man3/getipnodebyname.3:164
4760 msgid ""
4761 "The B<getipnodebyaddr>()  function looks up the name of the host whose "
4762 "network address is specified by the I<addr> argument.  The I<af> argument "
4763 "specifies one of the following values:"
4764 msgstr ""
4765
4766 #. type: Plain text
4767 #: build/C/man3/getipnodebyname.3:174
4768 msgid ""
4769 "The I<addr> argument points to a I<struct in_addr> and I<len> must be set to "
4770 "I<sizeof(struct in_addr)>."
4771 msgstr ""
4772
4773 #. type: Plain text
4774 #: build/C/man3/getipnodebyname.3:184
4775 msgid ""
4776 "The I<addr> argument points to a I<struct in6_addr> and I<len> must be set "
4777 "to I<sizeof(struct in6_addr)>."
4778 msgstr ""
4779
4780 #. type: Plain text
4781 #: build/C/man3/getipnodebyname.3:188
4782 msgid ""
4783 "A NULL pointer is returned if an error occurred, and I<error_num> will "
4784 "contain an error code from the following list:"
4785 msgstr ""
4786
4787 #. type: Plain text
4788 #: build/C/man3/getipnodebyname.3:191
4789 msgid "The hostname or network address was not found."
4790 msgstr ""
4791
4792 #. type: TP
4793 #: build/C/man3/getipnodebyname.3:191
4794 #, no-wrap
4795 msgid "B<NO_ADDRESS>"
4796 msgstr ""
4797
4798 #. type: Plain text
4799 #: build/C/man3/getipnodebyname.3:197
4800 msgid ""
4801 "The domain name server recognized the network address or name, but no answer "
4802 "was returned.  This can happen if the network host has only IPv4 addresses "
4803 "and a request has been made for IPv6 information only, or vice versa."
4804 msgstr ""
4805
4806 #. type: Plain text
4807 #: build/C/man3/getipnodebyname.3:200
4808 msgid "The domain name server returned a permanent failure response."
4809 msgstr ""
4810
4811 #. type: Plain text
4812 #: build/C/man3/getipnodebyname.3:204
4813 msgid ""
4814 "The domain name server returned a temporary failure response.  You might "
4815 "have better luck next time."
4816 msgstr ""
4817
4818 #. type: Plain text
4819 #: build/C/man3/getipnodebyname.3:208
4820 msgid ""
4821 "A successful query returns a pointer to a I<hostent> structure that contains "
4822 "the following fields:"
4823 msgstr ""
4824
4825 #. type: Plain text
4826 #: build/C/man3/getipnodebyname.3:211
4827 msgid "This is the official name of this network host."
4828 msgstr ""
4829
4830 #. type: Plain text
4831 #: build/C/man3/getipnodebyname.3:215
4832 msgid ""
4833 "This is an array of pointers to unofficial aliases for the same host.  The "
4834 "array is terminated by a NULL pointer."
4835 msgstr ""
4836
4837 #. type: Plain text
4838 #: build/C/man3/getipnodebyname.3:237
4839 msgid ""
4840 "This is a copy of the I<af> argument to B<getipnodebyname>()  or "
4841 "B<getipnodebyaddr>().  I<h_addrtype> will always be B<AF_INET> if the I<af> "
4842 "argument was B<AF_INET>.  I<h_addrtype> will always be B<AF_INET6> if the "
4843 "I<af> argument was B<AF_INET6>."
4844 msgstr ""
4845
4846 #. type: Plain text
4847 #: build/C/man3/getipnodebyname.3:251
4848 msgid ""
4849 "This field will be set to I<sizeof(struct in_addr)> if I<h_addrtype> is "
4850 "B<AF_INET>, and to I<sizeof(struct in6_addr)> if I<h_addrtype> is "
4851 "B<AF_INET6>."
4852 msgstr ""
4853
4854 #. type: Plain text
4855 #: build/C/man3/getipnodebyname.3:256
4856 msgid ""
4857 "This is an array of one or more pointers to network address structures for "
4858 "the network host.  The array is terminated by a NULL pointer."
4859 msgstr ""
4860
4861 #.  Not in POSIX.1-2001.
4862 #. type: Plain text
4863 #: build/C/man3/getipnodebyname.3:259
4864 msgid "RFC\\ 2553."
4865 msgstr ""
4866
4867 #. type: Plain text
4868 #: build/C/man3/getipnodebyname.3:264
4869 msgid ""
4870 "These functions were present in glibc 2.1.91-95, but were removed again.  "
4871 "Several UNIX-like systems support them, but all call them deprecated."
4872 msgstr ""
4873
4874 #. type: Plain text
4875 #: build/C/man3/getipnodebyname.3:269
4876 msgid "B<getaddrinfo>(3), B<getnameinfo>(3), B<inet_ntop>(3), B<inet_pton>(3)"
4877 msgstr ""
4878
4879 #. type: TH
4880 #: build/C/man3/getnameinfo.3:7
4881 #, no-wrap
4882 msgid "GETNAMEINFO"
4883 msgstr ""
4884
4885 #. type: TH
4886 #: build/C/man3/getnameinfo.3:7
4887 #, no-wrap
4888 msgid "2009-12-03"
4889 msgstr ""
4890
4891 #. type: Plain text
4892 #: build/C/man3/getnameinfo.3:10
4893 msgid "getnameinfo - address-to-name translation in protocol-independent manner"
4894 msgstr ""
4895
4896 #. type: Plain text
4897 #: build/C/man3/getnameinfo.3:14
4898 #, no-wrap
4899 msgid ""
4900 "B<#include E<lt>sys/socket.hE<gt>>\n"
4901 "B<#include E<lt>netdb.hE<gt>>\n"
4902 msgstr ""
4903
4904 #. type: Plain text
4905 #: build/C/man3/getnameinfo.3:18
4906 #, no-wrap
4907 msgid ""
4908 "B<int getnameinfo(const struct sockaddr *>I<sa>B<, socklen_t >I<salen>B<,>\n"
4909 "B<                char *>I<host>B<, size_t >I<hostlen>B<,>\n"
4910 "B<                char *>I<serv>B<, size_t >I<servlen>B<, int "
4911 ">I<flags>B<);>\n"
4912 msgstr ""
4913
4914 #. type: Plain text
4915 #: build/C/man3/getnameinfo.3:28
4916 msgid ""
4917 "B<getnameinfo>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4918 "_POSIX_SOURCE"
4919 msgstr ""
4920
4921 #. type: Plain text
4922 #: build/C/man3/getnameinfo.3:44
4923 msgid ""
4924 "The B<getnameinfo>()  function is the inverse of B<getaddrinfo>(3): it "
4925 "converts a socket address to a corresponding host and service, in a "
4926 "protocol-independent manner.  It combines the functionality of "
4927 "B<gethostbyaddr>(3)  and B<getservbyport>(3), but unlike those functions, "
4928 "B<getaddrinfo>(3)  is reentrant and allows programs to eliminate "
4929 "IPv4-versus-IPv6 dependencies."
4930 msgstr ""
4931
4932 #. type: Plain text
4933 #: build/C/man3/getnameinfo.3:67
4934 msgid ""
4935 "The I<sa> argument is a pointer to a generic socket address structure (of "
4936 "type I<sockaddr_in> or I<sockaddr_in6>)  of size I<salen> that holds the "
4937 "input IP address and port number.  The arguments I<host> and I<serv> are "
4938 "pointers to caller-allocated buffers (of size I<hostlen> and I<servlen> "
4939 "respectively) into which B<getnameinfo>()  places null-terminated strings "
4940 "containing the host and service names respectively."
4941 msgstr ""
4942
4943 #. type: Plain text
4944 #: build/C/man3/getnameinfo.3:80
4945 msgid ""
4946 "The caller can specify that no hostname (or no service name)  is required by "
4947 "providing a NULL I<host> (or I<serv>)  argument or a zero I<hostlen> (or "
4948 "I<servlen>)  argument.  However, at least one of hostname or service name "
4949 "must be requested."
4950 msgstr ""
4951
4952 #. type: Plain text
4953 #: build/C/man3/getnameinfo.3:86
4954 msgid "The I<flags> argument modifies the behavior of B<getnameinfo>()  as follows:"
4955 msgstr ""
4956
4957 #. type: TP
4958 #: build/C/man3/getnameinfo.3:86
4959 #, no-wrap
4960 msgid "B<NI_NAMEREQD>"
4961 msgstr ""
4962
4963 #. type: Plain text
4964 #: build/C/man3/getnameinfo.3:89
4965 msgid "If set, then an error is returned if the hostname cannot be determined."
4966 msgstr ""
4967
4968 #. type: TP
4969 #: build/C/man3/getnameinfo.3:89
4970 #, no-wrap
4971 msgid "B<NI_DGRAM>"
4972 msgstr ""
4973
4974 #. type: Plain text
4975 #: build/C/man3/getnameinfo.3:95
4976 msgid ""
4977 "If set, then the service is datagram (UDP) based rather than stream (TCP) "
4978 "based.  This is required for the few ports (512-514)  that have different "
4979 "services for UDP and TCP."
4980 msgstr ""
4981
4982 #. type: TP
4983 #: build/C/man3/getnameinfo.3:95
4984 #, no-wrap
4985 msgid "B<NI_NOFQDN>"
4986 msgstr ""
4987
4988 #. type: Plain text
4989 #: build/C/man3/getnameinfo.3:99
4990 msgid ""
4991 "If set, return only the hostname part of the fully qualified domain name for "
4992 "local hosts."
4993 msgstr ""
4994
4995 #. type: TP
4996 #: build/C/man3/getnameinfo.3:99
4997 #, no-wrap
4998 msgid "B<NI_NUMERICHOST>"
4999 msgstr ""
5000
5001 #.  For example, by calling
5002 #.  .BR inet_ntop ()
5003 #.  instead of
5004 #.  .BR gethostbyaddr ().
5005 #.  POSIX.1-2003 has NI_NUMERICSCOPE, but glibc doesn't have it.
5006 #. type: Plain text
5007 #: build/C/man3/getnameinfo.3:109
5008 msgid ""
5009 "If set, then the numeric form of the hostname is returned.  (When not set, "
5010 "this will still happen in case the node's name cannot be determined.)"
5011 msgstr ""
5012
5013 #. type: TP
5014 #: build/C/man3/getnameinfo.3:109
5015 #, no-wrap
5016 msgid "B<NI_NUMERICSERV>"
5017 msgstr ""
5018
5019 #. type: Plain text
5020 #: build/C/man3/getnameinfo.3:114
5021 msgid ""
5022 "If set, then the numeric form of the service address is returned.  (When not "
5023 "set, this will still happen in case the service's name cannot be "
5024 "determined.)"
5025 msgstr ""
5026
5027 #. type: Plain text
5028 #: build/C/man3/getnameinfo.3:123
5029 msgid ""
5030 "Starting with glibc 2.3.4, B<getnameinfo>()  has been extended to "
5031 "selectively allow hostnames to be transparently converted to and from the "
5032 "Internationalized Domain Name (IDN) format (see RFC 3490, "
5033 "I<Internationalizing Domain Names in Applications (IDNA)>).  Three new flags "
5034 "are defined:"
5035 msgstr ""
5036
5037 #. type: TP
5038 #: build/C/man3/getnameinfo.3:123
5039 #, no-wrap
5040 msgid "B<NI_IDN>"
5041 msgstr ""
5042
5043 #. type: Plain text
5044 #: build/C/man3/getnameinfo.3:129
5045 msgid ""
5046 "If this flag is used, then the name found in the lookup process is converted "
5047 "from IDN format to the locale's encoding if necessary.  ASCII-only names are "
5048 "not affected by the conversion, which makes this flag usable in existing "
5049 "programs and environments."
5050 msgstr ""
5051
5052 #. type: TP
5053 #: build/C/man3/getnameinfo.3:129
5054 #, no-wrap
5055 msgid "B<NI_IDN_ALLOW_UNASSIGNED>, B<NI_IDN_USE_STD3_ASCII_RULES>"
5056 msgstr ""
5057
5058 #.  FIXME glibc defines the following additional errors, some which
5059 #.  can probably be returned by getnameinfo(); they need to
5060 #.  be documented.
5061 #.  #ifdef __USE_GNU
5062 #.  #define EAI_INPROGRESS  -100  /* Processing request in progress.  */
5063 #.  #define EAI_CANCELED    -101  /* Request canceled.  */
5064 #.  #define EAI_NOTCANCELED -102  /* Request not canceled.  */
5065 #.  #define EAI_ALLDONE     -103  /* All requests done.  */
5066 #.  #define EAI_INTR        -104  /* Interrupted by a signal.  */
5067 #.  #define EAI_IDN_ENCODE  -105  /* IDN encoding failed.  */
5068 #.  #endif
5069 #. type: Plain text
5070 #: build/C/man3/getnameinfo.3:152
5071 msgid ""
5072 "On success 0 is returned, and node and service names, if requested, are "
5073 "filled with null-terminated strings, possibly truncated to fit the specified "
5074 "buffer lengths.  On error one of the following nonzero error codes is "
5075 "returned:"
5076 msgstr ""
5077
5078 #. type: Plain text
5079 #: build/C/man3/getnameinfo.3:156
5080 msgid "The name could not be resolved at this time.  Try again later."
5081 msgstr ""
5082
5083 #. type: Plain text
5084 #: build/C/man3/getnameinfo.3:161
5085 msgid "The I<flags> argument has an invalid value."
5086 msgstr ""
5087
5088 #. type: Plain text
5089 #: build/C/man3/getnameinfo.3:164
5090 msgid "A nonrecoverable error occurred."
5091 msgstr ""
5092
5093 #. type: Plain text
5094 #: build/C/man3/getnameinfo.3:168
5095 msgid ""
5096 "The address family was not recognized, or the address length was invalid for "
5097 "the specified family."
5098 msgstr ""
5099
5100 #. type: Plain text
5101 #: build/C/man3/getnameinfo.3:177
5102 msgid ""
5103 "The name does not resolve for the supplied arguments.  B<NI_NAMEREQD> is set "
5104 "and the host's name cannot be located, or neither hostname nor service name "
5105 "were requested."
5106 msgstr ""
5107
5108 #. type: TP
5109 #: build/C/man3/getnameinfo.3:177
5110 #, no-wrap
5111 msgid "B<EAI_OVERFLOW>"
5112 msgstr ""
5113
5114 #. type: Plain text
5115 #: build/C/man3/getnameinfo.3:184
5116 msgid "The buffer pointed to by I<host> or I<serv> was too small."
5117 msgstr ""
5118
5119 #. type: Plain text
5120 #: build/C/man3/getnameinfo.3:189
5121 msgid "A system error occurred.  The error code can be found in I<errno>."
5122 msgstr ""
5123
5124 #. type: Plain text
5125 #: build/C/man3/getnameinfo.3:196
5126 msgid "/etc/hosts"
5127 msgstr ""
5128
5129 #. type: Plain text
5130 #: build/C/man3/getnameinfo.3:198
5131 msgid "/etc/nsswitch.conf"
5132 msgstr ""
5133
5134 #. type: Plain text
5135 #: build/C/man3/getnameinfo.3:200
5136 msgid "/etc/resolv.conf"
5137 msgstr ""
5138
5139 #. type: Plain text
5140 #: build/C/man3/getnameinfo.3:203
5141 msgid "B<getnameinfo>()  is provided in glibc since version 2.1."
5142 msgstr ""
5143
5144 #. type: Plain text
5145 #: build/C/man3/getnameinfo.3:205
5146 msgid "RFC\\ 2553, POSIX.1-2001."
5147 msgstr ""
5148
5149 #. type: Plain text
5150 #: build/C/man3/getnameinfo.3:210
5151 msgid ""
5152 "In order to assist the programmer in choosing reasonable sizes for the "
5153 "supplied buffers, I<E<lt>netdb.hE<gt>> defines the constants"
5154 msgstr ""
5155
5156 #. type: Plain text
5157 #: build/C/man3/getnameinfo.3:215
5158 #, no-wrap
5159 msgid ""
5160 "#define NI_MAXHOST      1025\n"
5161 "#define NI_MAXSERV      32\n"
5162 msgstr ""
5163
5164 #. type: Plain text
5165 #: build/C/man3/getnameinfo.3:225
5166 msgid ""
5167 "Since glibc 2.8, these definitions are exposed only if one of the feature "
5168 "test macros B<_BSD_SOURCE>, B<_SVID_SOURCE>, or B<_GNU_SOURCE> is defined."
5169 msgstr ""
5170
5171 #. type: Plain text
5172 #: build/C/man3/getnameinfo.3:233
5173 msgid ""
5174 "The former is the constant B<MAXDNAME> in recent versions of BIND's "
5175 "I<E<lt>arpa/nameser.hE<gt>> header file.  The latter is a guess based on the "
5176 "services listed in the current Assigned Numbers RFC."
5177 msgstr ""
5178
5179 #. type: Plain text
5180 #: build/C/man3/getnameinfo.3:238
5181 msgid ""
5182 "The following code tries to get the numeric hostname and service name, for a "
5183 "given socket address.  Note that there is no hardcoded reference to a "
5184 "particular address family."
5185 msgstr ""
5186
5187 #. type: Plain text
5188 #: build/C/man3/getnameinfo.3:244
5189 #, no-wrap
5190 msgid ""
5191 "struct sockaddr *sa;    /* input */\n"
5192 "socklen_t len;         /* input */\n"
5193 "char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV];\n"
5194 msgstr ""
5195
5196 #. type: Plain text
5197 #: build/C/man3/getnameinfo.3:248
5198 #, no-wrap
5199 msgid ""
5200 "if (getnameinfo(sa, len, hbuf, sizeof(hbuf), sbuf,\n"
5201 "            sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV) == 0)\n"
5202 "    printf(\"host=%s, serv=%s\\en\", hbuf, sbuf);\n"
5203 msgstr ""
5204
5205 #. type: Plain text
5206 #: build/C/man3/getnameinfo.3:253
5207 msgid ""
5208 "The following version checks if the socket address has a reverse address "
5209 "mapping."
5210 msgstr ""
5211
5212 #. type: Plain text
5213 #: build/C/man3/getnameinfo.3:259
5214 #, no-wrap
5215 msgid ""
5216 "struct sockaddr *sa;    /* input */\n"
5217 "socklen_t len;         /* input */\n"
5218 "char hbuf[NI_MAXHOST];\n"
5219 msgstr ""
5220
5221 #. type: Plain text
5222 #: build/C/man3/getnameinfo.3:265
5223 #, no-wrap
5224 msgid ""
5225 "if (getnameinfo(sa, len, hbuf, sizeof(hbuf),\n"
5226 "            NULL, 0, NI_NAMEREQD))\n"
5227 "    printf(\"could not resolve hostname\");\n"
5228 "else\n"
5229 "    printf(\"host=%s\\en\", hbuf);\n"
5230 msgstr ""
5231
5232 #. type: Plain text
5233 #: build/C/man3/getnameinfo.3:272
5234 msgid ""
5235 "An example program using B<getnameinfo>()  can be found in "
5236 "B<getaddrinfo>(3)."
5237 msgstr ""
5238
5239 #. type: Plain text
5240 #: build/C/man3/getnameinfo.3:287
5241 msgid ""
5242 "B<accept>(2), B<getpeername>(2), B<getsockname>(2), B<recvfrom>(2), "
5243 "B<socket>(2), B<getaddrinfo>(3), B<gethostbyaddr>(3), B<getservbyname>(3), "
5244 "B<getservbyport>(3), B<inet_ntop>(3), B<hosts>(5), B<services>(5), "
5245 "B<hostname>(7), B<named>(8)"
5246 msgstr ""
5247
5248 #. type: Plain text
5249 #: build/C/man3/getnameinfo.3:291
5250 msgid ""
5251 "R. Gilligan, S. Thomson, J. Bound and W. Stevens, I<Basic Socket Interface "
5252 "Extensions for IPv6>, RFC\\ 2553, March 1999."
5253 msgstr ""
5254
5255 #. type: Plain text
5256 #: build/C/man3/getnameinfo.3:296
5257 msgid ""
5258 "Tatsuya Jinmei and Atsushi Onoe, I<An Extension of Format for IPv6 Scoped "
5259 "Addresses>, internet draft, work in progress.  "
5260 "ftp://ftp.ietf.org/internet-drafts/draft-ietf-ipngwg-scopedaddr-format-02.txt"
5261 msgstr ""
5262
5263 #. type: Plain text
5264 #: build/C/man3/getnameinfo.3:301
5265 msgid ""
5266 "Craig Metz, I<Protocol Independence Using the Sockets API>, Proceedings of "
5267 "the freenix track: 2000 USENIX annual technical conference, June 2000."
5268 msgstr ""
5269
5270 #. type: Plain text
5271 #: build/C/man3/getnameinfo.3:303
5272 msgid "http://www.usenix.org/publications/library/proceedings/usenix2000/freenix/metzprotocol.html"
5273 msgstr ""
5274
5275 #. type: TH
5276 #: build/C/man3/getnetent.3:28
5277 #, no-wrap
5278 msgid "GETNETENT"
5279 msgstr ""
5280
5281 #. type: TH
5282 #: build/C/man3/getnetent.3:28 build/C/man3/getprotoent.3:28 build/C/man3/getservent.3:32
5283 #, no-wrap
5284 msgid "2008-08-19"
5285 msgstr ""
5286
5287 #. type: Plain text
5288 #: build/C/man3/getnetent.3:32
5289 msgid ""
5290 "getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent - get network "
5291 "entry"
5292 msgstr ""
5293
5294 #. type: Plain text
5295 #: build/C/man3/getnetent.3:35 build/C/man3/getnetent_r.3:31 build/C/man3/getprotoent.3:35 build/C/man3/getprotoent_r.3:31 build/C/man3/getservent.3:39 build/C/man3/getservent_r.3:31 build/C/man3/setnetgrent.3:12
5296 #, no-wrap
5297 msgid "B<#include E<lt>netdb.hE<gt>>\n"
5298 msgstr ""
5299
5300 #. type: Plain text
5301 #: build/C/man3/getnetent.3:37
5302 #, no-wrap
5303 msgid "B<struct netent *getnetent(void);>\n"
5304 msgstr ""
5305
5306 #. type: Plain text
5307 #: build/C/man3/getnetent.3:39
5308 #, no-wrap
5309 msgid "B<struct netent *getnetbyname(const char *>I<name>B<);>\n"
5310 msgstr ""
5311
5312 #. type: Plain text
5313 #: build/C/man3/getnetent.3:41
5314 #, no-wrap
5315 msgid "B<struct netent *getnetbyaddr(uint32_t >I<net>B<, int >I<type>B<);>\n"
5316 msgstr ""
5317
5318 #. type: Plain text
5319 #: build/C/man3/getnetent.3:43
5320 #, no-wrap
5321 msgid "B<void setnetent(int >I<stayopen>B<);>\n"
5322 msgstr ""
5323
5324 #. type: Plain text
5325 #: build/C/man3/getnetent.3:45
5326 #, no-wrap
5327 msgid "B<void endnetent(void);>\n"
5328 msgstr ""
5329
5330 #. type: Plain text
5331 #: build/C/man3/getnetent.3:53
5332 msgid ""
5333 "The B<getnetent>()  function reads the next entry from the networks database "
5334 "and returns a I<netent> structure containing the broken-out fields from the "
5335 "entry.  A connection is opened to the database if necessary."
5336 msgstr ""
5337
5338 #. type: Plain text
5339 #: build/C/man3/getnetent.3:59
5340 msgid ""
5341 "The B<getnetbyname>()  function returns a I<netent> structure for the entry "
5342 "from the database that matches the network I<name>."
5343 msgstr ""
5344
5345 #. type: Plain text
5346 #: build/C/man3/getnetent.3:69
5347 msgid ""
5348 "The B<getnetbyaddr>()  function returns a I<netent> structure for the entry "
5349 "from the database that matches the network number I<net> of type I<type>.  "
5350 "The I<net> argument must be in host byte order."
5351 msgstr ""
5352
5353 #. type: Plain text
5354 #: build/C/man3/getnetent.3:79
5355 msgid ""
5356 "The B<setnetent>()  function opens a connection to the database, and sets "
5357 "the next entry to the first entry.  If I<stayopen> is nonzero, then the "
5358 "connection to the database will not be closed between calls to one of the "
5359 "B<getnet*>()  functions."
5360 msgstr ""
5361
5362 #. type: Plain text
5363 #: build/C/man3/getnetent.3:83
5364 msgid "The B<endnetent>()  function closes the connection to the database."
5365 msgstr ""
5366
5367 #. type: Plain text
5368 #: build/C/man3/getnetent.3:85
5369 msgid "The I<netent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
5370 msgstr ""
5371
5372 #. type: Plain text
5373 #: build/C/man3/getnetent.3:94
5374 #, no-wrap
5375 msgid ""
5376 "struct netent {\n"
5377 "    char      *n_name;     /* official network name */\n"
5378 "    char     **n_aliases;  /* alias list */\n"
5379 "    int        n_addrtype; /* net address type */\n"
5380 "    uint32_t   n_net;      /* network number */\n"
5381 "}\n"
5382 msgstr ""
5383
5384 #. type: Plain text
5385 #: build/C/man3/getnetent.3:98
5386 msgid "The members of the I<netent> structure are:"
5387 msgstr ""
5388
5389 #. type: TP
5390 #: build/C/man3/getnetent.3:98
5391 #, no-wrap
5392 msgid "I<n_name>"
5393 msgstr ""
5394
5395 #. type: Plain text
5396 #: build/C/man3/getnetent.3:101
5397 msgid "The official name of the network."
5398 msgstr ""
5399
5400 #. type: TP
5401 #: build/C/man3/getnetent.3:101
5402 #, no-wrap
5403 msgid "I<n_aliases>"
5404 msgstr ""
5405
5406 #. type: Plain text
5407 #: build/C/man3/getnetent.3:104
5408 msgid "A NULL-terminated list of alternative names for the network."
5409 msgstr ""
5410
5411 #. type: TP
5412 #: build/C/man3/getnetent.3:104
5413 #, no-wrap
5414 msgid "I<n_addrtype>"
5415 msgstr ""
5416
5417 #. type: Plain text
5418 #: build/C/man3/getnetent.3:108
5419 msgid "The type of the network number; always B<AF_INET>."
5420 msgstr ""
5421
5422 #. type: TP
5423 #: build/C/man3/getnetent.3:108
5424 #, no-wrap
5425 msgid "I<n_net>"
5426 msgstr ""
5427
5428 #. type: Plain text
5429 #: build/C/man3/getnetent.3:111
5430 msgid "The network number in host byte order."
5431 msgstr ""
5432
5433 #. type: Plain text
5434 #: build/C/man3/getnetent.3:120
5435 msgid ""
5436 "The B<getnetent>(), B<getnetbyname>()  and B<getnetbyaddr>()  functions "
5437 "return a pointer to a statically allocated I<netent> structure, or a NULL "
5438 "pointer if an error occurs or the end of the file is reached."
5439 msgstr ""
5440
5441 #. type: TP
5442 #: build/C/man3/getnetent.3:121 build/C/man5/networks.5:70
5443 #, no-wrap
5444 msgid "I</etc/networks>"
5445 msgstr ""
5446
5447 #. type: Plain text
5448 #: build/C/man3/getnetent.3:124
5449 msgid "networks database file"
5450 msgstr ""
5451
5452 #. type: Plain text
5453 #: build/C/man3/getnetent.3:126 build/C/man3/getprotoent.3:122 build/C/man3/getservent.3:131
5454 msgid "4.3BSD, POSIX.1-2001."
5455 msgstr ""
5456
5457 #. type: Plain text
5458 #: build/C/man3/getnetent.3:133
5459 msgid ""
5460 "In glibc versions before 2.2, the I<net> argument of B<getnetbyaddr>()  was "
5461 "of type I<long>."
5462 msgstr ""
5463
5464 #.  .BR networks (5)
5465 #. type: Plain text
5466 #: build/C/man3/getnetent.3:138
5467 msgid "B<getnetent_r>(3), B<getprotoent>(3), B<getservent>(3)"
5468 msgstr ""
5469
5470 #. type: Plain text
5471 #: build/C/man3/getnetent.3:140
5472 msgid "RFC\\ 1101"
5473 msgstr ""
5474
5475 #. type: TH
5476 #: build/C/man3/getnetent_r.3:24
5477 #, no-wrap
5478 msgid "GETNETENT_R"
5479 msgstr ""
5480
5481 #. type: Plain text
5482 #: build/C/man3/getnetent_r.3:28
5483 msgid "getnetent_r, getnetbyname_r, getnetbyaddr_r - get network entry (reentrant)"
5484 msgstr ""
5485
5486 #. type: Plain text
5487 #: build/C/man3/getnetent_r.3:35
5488 #, no-wrap
5489 msgid ""
5490 "B<int getnetent_r(struct netent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5491 "B<                size_t >I<buflen>B<, struct netent **>I<result>B<,>\n"
5492 "B<                int *>I<h_errnop>B<);>\n"
5493 msgstr ""
5494
5495 #. type: Plain text
5496 #: build/C/man3/getnetent_r.3:40
5497 #, no-wrap
5498 msgid ""
5499 "B<int getnetbyname_r(const char *>I<name>B<,>\n"
5500 "B<                struct netent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5501 "B<                size_t >I<buflen>B<, struct netent **>I<result>B<,>\n"
5502 "B<                int *>I<h_errnop>B<);>\n"
5503 msgstr ""
5504
5505 #. type: Plain text
5506 #: build/C/man3/getnetent_r.3:45
5507 #, no-wrap
5508 msgid ""
5509 "B<int getnetbyaddr_r(uint32_t >I<net>B<, int >I<type>B<,>\n"
5510 "B<                struct netent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5511 "B<                size_t >I<buflen>B<, struct netent **>I<result>B<,>\n"
5512 "B<                int *>I<h_errnop>B<);>\n"
5513 msgstr ""
5514
5515 #. type: Plain text
5516 #: build/C/man3/getnetent_r.3:56
5517 msgid "B<getnetent_r>(), B<getnetbyname_r>(), B<getnetbyaddr_r>():"
5518 msgstr ""
5519
5520 #. type: Plain text
5521 #: build/C/man3/getnetent_r.3:77
5522 msgid ""
5523 "The B<getnetent_r>(), B<getnetbyname_r>(), and B<getnetbyaddr_r>()  "
5524 "functions are the reentrant equivalents of, respectively, B<getnetent>(3), "
5525 "B<getnetbyname>(3), and B<getnetbynumber>(3).  They differ in the way that "
5526 "the I<netent> structure is returned, and in the function calling signature "
5527 "and return value.  This manual page describes just the differences from the "
5528 "nonreentrant functions."
5529 msgstr ""
5530
5531 #. type: Plain text
5532 #: build/C/man3/getnetent_r.3:83
5533 msgid ""
5534 "Instead of returning a pointer to a statically allocated I<netent> structure "
5535 "as the function result, these functions copy the structure into the location "
5536 "pointed to by I<result_buf>."
5537 msgstr ""
5538
5539 #.  I can find no information on the required/recommended buffer size;
5540 #.  the nonreentrant functions use a 1024 byte buffer -- mtk.
5541 #. type: Plain text
5542 #: build/C/man3/getnetent_r.3:100
5543 msgid ""
5544 "The I<buf> array is used to store the string fields pointed to by the "
5545 "returned I<netent> structure.  (The nonreentrant functions allocate these "
5546 "strings in static storage.)  The size of this array is specified in "
5547 "I<buflen>.  If I<buf> is too small, the call fails with the error B<ERANGE>, "
5548 "and the caller must try again with a larger buffer.  (A buffer of length "
5549 "1024 bytes should be sufficient for most applications.)"
5550 msgstr ""
5551
5552 #. type: Plain text
5553 #: build/C/man3/getnetent_r.3:108
5554 msgid ""
5555 "If the function call successfully obtains a network record, then I<*result> "
5556 "is set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
5557 msgstr ""
5558
5559 #.  getnetent.3 doesn't document any use of h_errno, but nevertheless
5560 #.  the nonreentrant functions no seem to set h_errno.
5561 #. type: Plain text
5562 #: build/C/man3/getnetent_r.3:116
5563 msgid ""
5564 "The buffer pointed to by I<h_errnop> is used to return the value that would "
5565 "be stored in the global variable I<h_errno> by the nonreentrant versions of "
5566 "these functions."
5567 msgstr ""
5568
5569 #. type: Plain text
5570 #: build/C/man3/getnetent_r.3:119 build/C/man3/getprotoent_r.3:109
5571 msgid ""
5572 "On success, these functions return 0.  On error, they return one of the "
5573 "positive error numbers listed in ERRORS."
5574 msgstr ""
5575
5576 #. type: Plain text
5577 #: build/C/man3/getnetent_r.3:127
5578 msgid ""
5579 "On error, record not found (B<getnetbyname_r>(), B<getnetbyaddr_r>()), or "
5580 "end of input (B<getnetent_r>())  I<result> is set to NULL."
5581 msgstr ""
5582
5583 #. type: Plain text
5584 #: build/C/man3/getnetent_r.3:132
5585 msgid "(B<getnetent_r>())  No more records in database."
5586 msgstr ""
5587
5588 #. type: TP
5589 #: build/C/man3/getnetent_r.3:132 build/C/man3/getprotoent_r.3:122 build/C/man3/getservent_r.3:121
5590 #, no-wrap
5591 msgid "B<ERANGE>"
5592 msgstr ""
5593
5594 #. type: Plain text
5595 #: build/C/man3/getnetent_r.3:139 build/C/man3/getprotoent_r.3:129 build/C/man3/getservent_r.3:128
5596 msgid ""
5597 "I<buf> is too small.  Try again with a larger buffer (and increased "
5598 "I<buflen>)."
5599 msgstr ""
5600
5601 #. type: Plain text
5602 #: build/C/man3/getnetent_r.3:143 build/C/man3/getprotoent_r.3:133 build/C/man3/getservent_r.3:132
5603 msgid ""
5604 "These functions are GNU extensions.  Functions with similar names exist on "
5605 "some other systems, though typically with different calling signatures."
5606 msgstr ""
5607
5608 #. type: Plain text
5609 #: build/C/man3/getnetent_r.3:146
5610 msgid "B<getnetent>(3), B<networks>(5)"
5611 msgstr ""
5612
5613 #. type: TH
5614 #: build/C/man2/getpeername.2:40
5615 #, no-wrap
5616 msgid "GETPEERNAME"
5617 msgstr ""
5618
5619 #. type: TH
5620 #: build/C/man2/getpeername.2:40 build/C/man2/shutdown.2:38 build/C/man7/udplite.7:25
5621 #, no-wrap
5622 msgid "2008-12-03"
5623 msgstr ""
5624
5625 #. type: Plain text
5626 #: build/C/man2/getpeername.2:43
5627 msgid "getpeername - get name of connected peer socket"
5628 msgstr ""
5629
5630 #. type: Plain text
5631 #: build/C/man2/getpeername.2:48
5632 msgid ""
5633 "B<int getpeername(int >I<sockfd>B<, struct sockaddr *>I<addr>B<, socklen_t "
5634 "*>I<addrlen>B<);>"
5635 msgstr ""
5636
5637 #. type: Plain text
5638 #: build/C/man2/getpeername.2:61
5639 msgid ""
5640 "B<getpeername>()  returns the address of the peer connected to the socket "
5641 "I<sockfd>, in the buffer pointed to by I<addr>.  The I<addrlen> argument "
5642 "should be initialized to indicate the amount of space pointed to by "
5643 "I<addr>.  On return it contains the actual size of the name returned (in "
5644 "bytes).  The name is truncated if the buffer provided is too small."
5645 msgstr ""
5646
5647 #. type: Plain text
5648 #: build/C/man2/getpeername.2:66
5649 msgid ""
5650 "The returned address is truncated if the buffer provided is too small; in "
5651 "this case, I<addrlen> will return a value greater than was supplied to the "
5652 "call."
5653 msgstr ""
5654
5655 #. type: Plain text
5656 #: build/C/man2/getpeername.2:71 build/C/man2/shutdown.2:72
5657 msgid ""
5658 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
5659 "appropriately."
5660 msgstr ""
5661
5662 #. type: TP
5663 #: build/C/man2/getpeername.2:72 build/C/man2/shutdown.2:73
5664 #, no-wrap
5665 msgid "B<EBADF>"
5666 msgstr ""
5667
5668 #. type: Plain text
5669 #: build/C/man2/getpeername.2:77
5670 msgid "The argument I<sockfd> is not a valid descriptor."
5671 msgstr ""
5672
5673 #. type: TP
5674 #: build/C/man2/getpeername.2:77 build/C/man7/packet.7:245 build/C/man7/raw.7:145 build/C/man7/unix.7:332
5675 #, no-wrap
5676 msgid "B<EFAULT>"
5677 msgstr ""
5678
5679 #. type: Plain text
5680 #: build/C/man2/getpeername.2:83
5681 msgid ""
5682 "The I<addr> argument points to memory not in a valid part of the process "
5683 "address space."
5684 msgstr ""
5685
5686 #. type: Plain text
5687 #: build/C/man2/getpeername.2:87
5688 msgid "I<addrlen> is invalid (e.g., is negative)."
5689 msgstr ""
5690
5691 #. type: TP
5692 #: build/C/man2/getpeername.2:87 build/C/man7/packet.7:257
5693 #, no-wrap
5694 msgid "B<ENOBUFS>"
5695 msgstr ""
5696
5697 #. type: Plain text
5698 #: build/C/man2/getpeername.2:91
5699 msgid ""
5700 "Insufficient resources were available in the system to perform the "
5701 "operation."
5702 msgstr ""
5703
5704 #. type: Plain text
5705 #: build/C/man2/getpeername.2:94
5706 msgid "The socket is not connected."
5707 msgstr ""
5708
5709 #. type: TP
5710 #: build/C/man2/getpeername.2:94 build/C/man2/shutdown.2:80
5711 #, no-wrap
5712 msgid "B<ENOTSOCK>"
5713 msgstr ""
5714
5715 #. type: Plain text
5716 #: build/C/man2/getpeername.2:99
5717 msgid "The argument I<sockfd> is a file, not a socket."
5718 msgstr ""
5719
5720 #. type: Plain text
5721 #: build/C/man2/getpeername.2:103
5722 msgid ""
5723 "SVr4, 4.4BSD (the B<getpeername>()  function call first appeared in 4.2BSD), "
5724 "POSIX.1-2001."
5725 msgstr ""
5726
5727 #. type: Plain text
5728 #: build/C/man2/getpeername.2:114
5729 msgid ""
5730 "The third argument of B<getpeername>()  is in reality an I<int *> (and this "
5731 "is what 4.x BSD and libc4 and libc5 have).  Some POSIX confusion resulted in "
5732 "the present I<socklen_t>, also used by glibc.  See also B<accept>(2)."
5733 msgstr ""
5734
5735 #. type: Plain text
5736 #: build/C/man2/getpeername.2:121
5737 msgid ""
5738 "B<accept>(2), B<bind>(2), B<getsockname>(2), B<ip>(7), B<socket>(7), "
5739 "B<unix>(7)"
5740 msgstr ""
5741
5742 #. type: TH
5743 #: build/C/man3/getprotoent.3:28
5744 #, no-wrap
5745 msgid "GETPROTOENT"
5746 msgstr ""
5747
5748 #. type: Plain text
5749 #: build/C/man3/getprotoent.3:32
5750 msgid ""
5751 "getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent - "
5752 "get protocol entry"
5753 msgstr ""
5754
5755 #. type: Plain text
5756 #: build/C/man3/getprotoent.3:37
5757 #, no-wrap
5758 msgid "B<struct protoent *getprotoent(void);>\n"
5759 msgstr ""
5760
5761 #. type: Plain text
5762 #: build/C/man3/getprotoent.3:39
5763 #, no-wrap
5764 msgid "B<struct protoent *getprotobyname(const char *>I<name>B<);>\n"
5765 msgstr ""
5766
5767 #. type: Plain text
5768 #: build/C/man3/getprotoent.3:41
5769 #, no-wrap
5770 msgid "B<struct protoent *getprotobynumber(int >I<proto>B<);>\n"
5771 msgstr ""
5772
5773 #. type: Plain text
5774 #: build/C/man3/getprotoent.3:43
5775 #, no-wrap
5776 msgid "B<void setprotoent(int >I<stayopen>B<);>\n"
5777 msgstr ""
5778
5779 #. type: Plain text
5780 #: build/C/man3/getprotoent.3:45
5781 #, no-wrap
5782 msgid "B<void endprotoent(void);>\n"
5783 msgstr ""
5784
5785 #. type: Plain text
5786 #: build/C/man3/getprotoent.3:54
5787 msgid ""
5788 "The B<getprotoent>()  function reads the next entry from the protocols "
5789 "database (see B<protocols>(5))  and returns a I<protoent> structure "
5790 "containing the broken-out fields from the entry.  A connection is opened to "
5791 "the database if necessary."
5792 msgstr ""
5793
5794 #. type: Plain text
5795 #: build/C/man3/getprotoent.3:61
5796 msgid ""
5797 "The B<getprotobyname>()  function returns a I<protoent> structure for the "
5798 "entry from the database that matches the protocol name I<name>.  A "
5799 "connection is opened to the database if necessary."
5800 msgstr ""
5801
5802 #. type: Plain text
5803 #: build/C/man3/getprotoent.3:68
5804 msgid ""
5805 "The B<getprotobynumber>()  function returns a I<protoent> structure for the "
5806 "entry from the database that matches the protocol number I<number>.  A "
5807 "connection is opened to the database if necessary."
5808 msgstr ""
5809
5810 #. type: Plain text
5811 #: build/C/man3/getprotoent.3:78
5812 msgid ""
5813 "The B<setprotoent>()  function opens a connection to the database, and sets "
5814 "the next entry to the first entry.  If I<stayopen> is nonzero, then the "
5815 "connection to the database will not be closed between calls to one of the "
5816 "B<getproto*>()  functions."
5817 msgstr ""
5818
5819 #. type: Plain text
5820 #: build/C/man3/getprotoent.3:82
5821 msgid "The B<endprotoent>()  function closes the connection to the database."
5822 msgstr ""
5823
5824 #. type: Plain text
5825 #: build/C/man3/getprotoent.3:84
5826 msgid "The I<protoent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
5827 msgstr ""
5828
5829 #. type: Plain text
5830 #: build/C/man3/getprotoent.3:92
5831 #, no-wrap
5832 msgid ""
5833 "struct protoent {\n"
5834 "    char  *p_name;       /* official protocol name */\n"
5835 "    char **p_aliases;    /* alias list */\n"
5836 "    int    p_proto;      /* protocol number */\n"
5837 "}\n"
5838 msgstr ""
5839
5840 #. type: Plain text
5841 #: build/C/man3/getprotoent.3:96
5842 msgid "The members of the I<protoent> structure are:"
5843 msgstr ""
5844
5845 #. type: TP
5846 #: build/C/man3/getprotoent.3:96
5847 #, no-wrap
5848 msgid "I<p_name>"
5849 msgstr ""
5850
5851 #. type: Plain text
5852 #: build/C/man3/getprotoent.3:99
5853 msgid "The official name of the protocol."
5854 msgstr ""
5855
5856 #. type: TP
5857 #: build/C/man3/getprotoent.3:99
5858 #, no-wrap
5859 msgid "I<p_aliases>"
5860 msgstr ""
5861
5862 #. type: Plain text
5863 #: build/C/man3/getprotoent.3:102
5864 msgid "A NULL-terminated list of alternative names for the protocol."
5865 msgstr ""
5866
5867 #. type: TP
5868 #: build/C/man3/getprotoent.3:102
5869 #, no-wrap
5870 msgid "I<p_proto>"
5871 msgstr ""
5872
5873 #. type: Plain text
5874 #: build/C/man3/getprotoent.3:105
5875 msgid "The protocol number."
5876 msgstr ""
5877
5878 #. type: Plain text
5879 #: build/C/man3/getprotoent.3:114
5880 msgid ""
5881 "The B<getprotoent>(), B<getprotobyname>()  and B<getprotobynumber>()  "
5882 "functions return a pointer to a statically allocated I<protoent> structure, "
5883 "or a NULL pointer if an error occurs or the end of the file is reached."
5884 msgstr ""
5885
5886 #. type: TP
5887 #: build/C/man3/getprotoent.3:116 build/C/man5/protocols.5:77
5888 #, no-wrap
5889 msgid "I</etc/protocols>"
5890 msgstr ""
5891
5892 #. type: Plain text
5893 #: build/C/man3/getprotoent.3:119
5894 msgid "protocol database file"
5895 msgstr ""
5896
5897 #. type: Plain text
5898 #: build/C/man3/getprotoent.3:127
5899 msgid "B<getnetent>(3), B<getprotoent_r>(3), B<getservent>(3), B<protocols>(5)"
5900 msgstr ""
5901
5902 #. type: TH
5903 #: build/C/man3/getprotoent_r.3:24
5904 #, no-wrap
5905 msgid "GETPROTOENT_R"
5906 msgstr ""
5907
5908 #. type: Plain text
5909 #: build/C/man3/getprotoent_r.3:28
5910 msgid ""
5911 "getprotoent_r, getprotobyname_r, getprotobynumber_r - get protocol entry "
5912 "(reentrant)"
5913 msgstr ""
5914
5915 #. type: Plain text
5916 #: build/C/man3/getprotoent_r.3:34
5917 #, no-wrap
5918 msgid ""
5919 "B<int getprotoent_r(struct protoent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5920 "B<                size_t >I<buflen>B<, struct protoent **>I<result>B<);>\n"
5921 msgstr ""
5922
5923 #. type: Plain text
5924 #: build/C/man3/getprotoent_r.3:38
5925 #, no-wrap
5926 msgid ""
5927 "B<int getprotobyname_r(const char *>I<name>B<,>\n"
5928 "B<                struct protoent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5929 "B<                size_t >I<buflen>B<, struct protoent **>I<result>B<);>\n"
5930 msgstr ""
5931
5932 #. type: Plain text
5933 #: build/C/man3/getprotoent_r.3:42
5934 #, no-wrap
5935 msgid ""
5936 "B<int getprotobynumber_r(int >I<proto>B<,>\n"
5937 "B<                struct protoent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5938 "B<                size_t >I<buflen>B<, struct protoent **>I<result>B<);>\n"
5939 msgstr ""
5940
5941 #. type: Plain text
5942 #: build/C/man3/getprotoent_r.3:53
5943 msgid "B<getprotoent_r>(), B<getprotobyname_r>(), B<getprotobynumber_r>():"
5944 msgstr ""
5945
5946 #. type: Plain text
5947 #: build/C/man3/getprotoent_r.3:74
5948 msgid ""
5949 "The B<getprotoent_r>(), B<getprotobyname_r>(), and B<getprotobynumber_r>()  "
5950 "functions are the reentrant equivalents of, respectively, B<getprotoent>(3), "
5951 "B<getprotobyname>(3), and B<getprotobynumber>(3).  They differ in the way "
5952 "that the I<protoent> structure is returned, and in the function calling "
5953 "signature and return value.  This manual page describes just the differences "
5954 "from the nonreentrant functions."
5955 msgstr ""
5956
5957 #. type: Plain text
5958 #: build/C/man3/getprotoent_r.3:80
5959 msgid ""
5960 "Instead of returning a pointer to a statically allocated I<protoent> "
5961 "structure as the function result, these functions copy the structure into "
5962 "the location pointed to by I<result_buf>."
5963 msgstr ""
5964
5965 #.  I can find no information on the required/recommended buffer size;
5966 #.  the nonreentrant functions use a 1024 byte buffer.
5967 #.  The 1024 byte value is also what the Solaris man page suggests. -- mtk
5968 #. type: Plain text
5969 #: build/C/man3/getprotoent_r.3:98
5970 msgid ""
5971 "The I<buf> array is used to store the string fields pointed to by the "
5972 "returned I<protoent> structure.  (The nonreentrant functions allocate these "
5973 "strings in static storage.)  The size of this array is specified in "
5974 "I<buflen>.  If I<buf> is too small, the call fails with the error B<ERANGE>, "
5975 "and the caller must try again with a larger buffer.  (A buffer of length "
5976 "1024 bytes should be sufficient for most applications.)"
5977 msgstr ""
5978
5979 #. type: Plain text
5980 #: build/C/man3/getprotoent_r.3:106
5981 msgid ""
5982 "If the function call successfully obtains a protocol record, then I<*result> "
5983 "is set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
5984 msgstr ""
5985
5986 #. type: Plain text
5987 #: build/C/man3/getprotoent_r.3:117
5988 msgid ""
5989 "On error, record not found (B<getprotobyname_r>(), B<getprotobynumber_r>()), "
5990 "or end of input (B<getprotoent_r>())  I<result> is set to NULL."
5991 msgstr ""
5992
5993 #. type: Plain text
5994 #: build/C/man3/getprotoent_r.3:122
5995 msgid "(B<getprotoent_r>())  No more records in database."
5996 msgstr ""
5997
5998 #. type: Plain text
5999 #: build/C/man3/getprotoent_r.3:147
6000 msgid ""
6001 "The program below uses B<getprotobyname_r>()  to retrieve the protocol "
6002 "record for the protocol named in its first command-line argument.  If a "
6003 "second (integer) command-line argument is supplied, it is used as the "
6004 "initial value for I<buflen>; if B<getprotobyname_r>()  fails with the error "
6005 "B<ERANGE>, the program retries with larger buffer sizes.  The following "
6006 "shell session shows a couple of sample runs:"
6007 msgstr ""
6008
6009 #. type: Plain text
6010 #: build/C/man3/getprotoent_r.3:158
6011 #, no-wrap
6012 msgid ""
6013 "$B< ./a.out tcp 1>\n"
6014 "ERANGE! Retrying with larger buffer\n"
6015 "getprotobyname_r() returned: 0 (success)  (buflen=78)\n"
6016 "p_name=tcp; p_proto=6; aliases=TCP\n"
6017 "$B< ./a.out xxx 1>\n"
6018 "ERANGE! Retrying with larger buffer\n"
6019 "getprotobyname_r() returned: 0 (success)  (buflen=100)\n"
6020 "Call failed/record not found\n"
6021 msgstr ""
6022
6023 #. type: Plain text
6024 #: build/C/man3/getprotoent_r.3:170 build/C/man3/getservent_r.3:168
6025 #, no-wrap
6026 msgid ""
6027 "#define _GNU_SOURCE\n"
6028 "#include E<lt>ctype.hE<gt>\n"
6029 "#include E<lt>netdb.hE<gt>\n"
6030 "#include E<lt>stdlib.hE<gt>\n"
6031 "#include E<lt>stdio.hE<gt>\n"
6032 "#include E<lt>errno.hE<gt>\n"
6033 "#include E<lt>string.hE<gt>\n"
6034 msgstr ""
6035
6036 #. type: Plain text
6037 #: build/C/man3/getprotoent_r.3:172 build/C/man3/getservent_r.3:170
6038 #, no-wrap
6039 msgid "#define MAX_BUF 10000\n"
6040 msgstr ""
6041
6042 #. type: Plain text
6043 #: build/C/man3/getprotoent_r.3:181
6044 #, no-wrap
6045 msgid ""
6046 "int\n"
6047 "main(int argc, char *argv[])\n"
6048 "{\n"
6049 "    int buflen, erange_cnt, s;\n"
6050 "    struct protoent result_buf;\n"
6051 "    struct protoent *result;\n"
6052 "    char buf[MAX_BUF];\n"
6053 "    char **p;\n"
6054 msgstr ""
6055
6056 #. type: Plain text
6057 #: build/C/man3/getprotoent_r.3:186
6058 #, no-wrap
6059 msgid ""
6060 "    if (argc E<lt> 2) {\n"
6061 "        printf(\"Usage: %s proto-name [buflen]\\en\", argv[0]);\n"
6062 "        exit(EXIT_FAILURE);\n"
6063 "    }\n"
6064 msgstr ""
6065
6066 #. type: Plain text
6067 #: build/C/man3/getprotoent_r.3:190
6068 #, no-wrap
6069 msgid ""
6070 "    buflen = 1024;\n"
6071 "    if (argc E<gt> 2)\n"
6072 "        buflen = atoi(argv[2]);\n"
6073 msgstr ""
6074
6075 #. type: Plain text
6076 #: build/C/man3/getprotoent_r.3:195 build/C/man3/getservent_r.3:198
6077 #, no-wrap
6078 msgid ""
6079 "    if (buflen E<gt> MAX_BUF) {\n"
6080 "        printf(\"Exceeded buffer limit (%d)\\en\", MAX_BUF);\n"
6081 "        exit(EXIT_FAILURE);\n"
6082 "    }\n"
6083 msgstr ""
6084
6085 #. type: Plain text
6086 #: build/C/man3/getprotoent_r.3:204
6087 #, no-wrap
6088 msgid ""
6089 "    erange_cnt = 0;\n"
6090 "    do {\n"
6091 "        s = getprotobyname_r(argv[1], &result_buf,\n"
6092 "                     buf, buflen, &result);\n"
6093 "        if (s == ERANGE) {\n"
6094 "            if (erange_cnt == 0)\n"
6095 "                printf(\"ERANGE! Retrying with larger buffer\\en\");\n"
6096 "            erange_cnt++;\n"
6097 msgstr ""
6098
6099 #. type: Plain text
6100 #: build/C/man3/getprotoent_r.3:207 build/C/man3/getservent_r.3:210
6101 #, no-wrap
6102 msgid ""
6103 "            /* Increment a byte at a time so we can see exactly\n"
6104 "               what size buffer was required */\n"
6105 msgstr ""
6106
6107 #. type: Plain text
6108 #: build/C/man3/getprotoent_r.3:209 build/C/man3/getservent_r.3:212
6109 #, no-wrap
6110 msgid "            buflen++;\n"
6111 msgstr ""
6112
6113 #. type: Plain text
6114 #: build/C/man3/getprotoent_r.3:216 build/C/man3/getservent_r.3:219
6115 #, no-wrap
6116 msgid ""
6117 "            if (buflen E<gt> MAX_BUF) {\n"
6118 "                printf(\"Exceeded buffer limit (%d)\\en\", MAX_BUF);\n"
6119 "                exit(EXIT_FAILURE);\n"
6120 "            }\n"
6121 "        }\n"
6122 "    } while (s == ERANGE);\n"
6123 msgstr ""
6124
6125 #. type: Plain text
6126 #: build/C/man3/getprotoent_r.3:220
6127 #, no-wrap
6128 msgid ""
6129 "    printf(\"getprotobyname_r() returned: %s  (buflen=%d)\\en\",\n"
6130 "            (s == 0) ? \"0 (success)\" : (s == ENOENT) ? \"ENOENT\" :\n"
6131 "            strerror(s), buflen);\n"
6132 msgstr ""
6133
6134 #. type: Plain text
6135 #: build/C/man3/getprotoent_r.3:225 build/C/man3/getservent_r.3:228
6136 #, no-wrap
6137 msgid ""
6138 "    if (s != 0 || result == NULL) {\n"
6139 "        printf(\"Call failed/record not found\\en\");\n"
6140 "        exit(EXIT_FAILURE);\n"
6141 "    }\n"
6142 msgstr ""
6143
6144 #. type: Plain text
6145 #: build/C/man3/getprotoent_r.3:231
6146 #, no-wrap
6147 msgid ""
6148 "    printf(\"p_name=%s; p_proto=%d; aliases=\",\n"
6149 "                result_buf.p_name, result_buf.p_proto);\n"
6150 "    for (p = result_buf.p_aliases; *p != NULL; p++)\n"
6151 "        printf(\"%s \", *p);\n"
6152 "    printf(\"\\en\");\n"
6153 msgstr ""
6154
6155 #. type: Plain text
6156 #: build/C/man3/getprotoent_r.3:238
6157 msgid "B<getprotoent>(3), B<protocols>(5)"
6158 msgstr ""
6159
6160 #. type: TH
6161 #: build/C/man3/getservent.3:32
6162 #, no-wrap
6163 msgid "GETSERVENT"
6164 msgstr ""
6165
6166 #. type: Plain text
6167 #: build/C/man3/getservent.3:36
6168 msgid ""
6169 "getservent, getservbyname, getservbyport, setservent, endservent - get "
6170 "service entry"
6171 msgstr ""
6172
6173 #. type: Plain text
6174 #: build/C/man3/getservent.3:41
6175 #, no-wrap
6176 msgid "B<struct servent *getservent(void);>\n"
6177 msgstr ""
6178
6179 #. type: Plain text
6180 #: build/C/man3/getservent.3:43
6181 #, no-wrap
6182 msgid ""
6183 "B<struct servent *getservbyname(const char *>I<name>B<, const char "
6184 "*>I<proto>B<);>\n"
6185 msgstr ""
6186
6187 #. type: Plain text
6188 #: build/C/man3/getservent.3:45
6189 #, no-wrap
6190 msgid "B<struct servent *getservbyport(int >I<port>B<, const char *>I<proto>B<);>\n"
6191 msgstr ""
6192
6193 #. type: Plain text
6194 #: build/C/man3/getservent.3:47
6195 #, no-wrap
6196 msgid "B<void setservent(int >I<stayopen>B<);>\n"
6197 msgstr ""
6198
6199 #. type: Plain text
6200 #: build/C/man3/getservent.3:49
6201 #, no-wrap
6202 msgid "B<void endservent(void);>\n"
6203 msgstr ""
6204
6205 #. type: Plain text
6206 #: build/C/man3/getservent.3:58
6207 msgid ""
6208 "The B<getservent>()  function reads the next entry from the services "
6209 "database (see B<services>(5))  and returns a I<servent> structure containing "
6210 "the broken-out fields from the entry.  A connection is opened to the "
6211 "database if necessary."
6212 msgstr ""
6213
6214 #. type: Plain text
6215 #: build/C/man3/getservent.3:66
6216 msgid ""
6217 "The B<getservbyname>()  function returns a I<servent> structure for the "
6218 "entry from the database that matches the service I<name> using protocol "
6219 "I<proto>.  If I<proto> is NULL, any protocol will be matched.  A connection "
6220 "is opened to the database if necessary."
6221 msgstr ""
6222
6223 #. type: Plain text
6224 #: build/C/man3/getservent.3:75
6225 msgid ""
6226 "The B<getservbyport>()  function returns a I<servent> structure for the "
6227 "entry from the database that matches the port I<port> (given in network byte "
6228 "order)  using protocol I<proto>.  If I<proto> is NULL, any protocol will be "
6229 "matched.  A connection is opened to the database if necessary."
6230 msgstr ""
6231
6232 #. type: Plain text
6233 #: build/C/man3/getservent.3:85
6234 msgid ""
6235 "The B<setservent>()  function opens a connection to the database, and sets "
6236 "the next entry to the first entry.  If I<stayopen> is nonzero, then the "
6237 "connection to the database will not be closed between calls to one of the "
6238 "B<getserv*>()  functions."
6239 msgstr ""
6240
6241 #. type: Plain text
6242 #: build/C/man3/getservent.3:89
6243 msgid "The B<endservent>()  function closes the connection to the database."
6244 msgstr ""
6245
6246 #. type: Plain text
6247 #: build/C/man3/getservent.3:91
6248 msgid "The I<servent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
6249 msgstr ""
6250
6251 #. type: Plain text
6252 #: build/C/man3/getservent.3:100
6253 #, no-wrap
6254 msgid ""
6255 "struct servent {\n"
6256 "    char  *s_name;       /* official service name */\n"
6257 "    char **s_aliases;    /* alias list */\n"
6258 "    int    s_port;       /* port number */\n"
6259 "    char  *s_proto;      /* protocol to use */\n"
6260 "}\n"
6261 msgstr ""
6262
6263 #. type: Plain text
6264 #: build/C/man3/getservent.3:104
6265 msgid "The members of the I<servent> structure are:"
6266 msgstr ""
6267
6268 #. type: TP
6269 #: build/C/man3/getservent.3:104
6270 #, no-wrap
6271 msgid "I<s_name>"
6272 msgstr ""
6273
6274 #. type: Plain text
6275 #: build/C/man3/getservent.3:107
6276 msgid "The official name of the service."
6277 msgstr ""
6278
6279 #. type: TP
6280 #: build/C/man3/getservent.3:107
6281 #, no-wrap
6282 msgid "I<s_aliases>"
6283 msgstr ""
6284
6285 #. type: Plain text
6286 #: build/C/man3/getservent.3:110
6287 msgid "A NULL-terminated list of alternative names for the service."
6288 msgstr ""
6289
6290 #. type: TP
6291 #: build/C/man3/getservent.3:110
6292 #, no-wrap
6293 msgid "I<s_port>"
6294 msgstr ""
6295
6296 #. type: Plain text
6297 #: build/C/man3/getservent.3:113
6298 msgid "The port number for the service given in network byte order."
6299 msgstr ""
6300
6301 #. type: TP
6302 #: build/C/man3/getservent.3:113
6303 #, no-wrap
6304 msgid "I<s_proto>"
6305 msgstr ""
6306
6307 #. type: Plain text
6308 #: build/C/man3/getservent.3:116
6309 msgid "The name of the protocol to use with this service."
6310 msgstr ""
6311
6312 #. type: Plain text
6313 #: build/C/man3/getservent.3:125
6314 msgid ""
6315 "The B<getservent>(), B<getservbyname>()  and B<getservbyport>()  functions "
6316 "return a pointer to a statically allocated I<servent> structure, or a NULL "
6317 "pointer if an error occurs or the end of the file is reached."
6318 msgstr ""
6319
6320 #. type: TP
6321 #: build/C/man3/getservent.3:126 build/C/man5/services.5:185
6322 #, no-wrap
6323 msgid "I</etc/services>"
6324 msgstr ""
6325
6326 #. type: Plain text
6327 #: build/C/man3/getservent.3:129
6328 msgid "services database file"
6329 msgstr ""
6330
6331 #. type: Plain text
6332 #: build/C/man3/getservent.3:136
6333 msgid "B<getnetent>(3), B<getprotoent>(3), B<getservent_r>(3), B<services>(5)"
6334 msgstr ""
6335
6336 #. type: TH
6337 #: build/C/man3/getservent_r.3:24
6338 #, no-wrap
6339 msgid "GETSERVENT_R"
6340 msgstr ""
6341
6342 #. type: Plain text
6343 #: build/C/man3/getservent_r.3:28
6344 msgid ""
6345 "getservent_r, getservbyname_r, getservbyport_r - get service entry "
6346 "(reentrant)"
6347 msgstr ""
6348
6349 #. type: Plain text
6350 #: build/C/man3/getservent_r.3:34
6351 #, no-wrap
6352 msgid ""
6353 "B<int getservent_r(struct servent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6354 "B<                size_t >I<buflen>B<, struct servent **>I<result>B<);>\n"
6355 msgstr ""
6356
6357 #. type: Plain text
6358 #: build/C/man3/getservent_r.3:38
6359 #, no-wrap
6360 msgid ""
6361 "B<int getservbyname_r(const char *>I<name>B<, const char *>I<proto>B<,>\n"
6362 "B<                struct servent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6363 "B<                size_t >I<buflen>B<, struct servent **>I<result>B<);>\n"
6364 msgstr ""
6365
6366 #. type: Plain text
6367 #: build/C/man3/getservent_r.3:42
6368 #, no-wrap
6369 msgid ""
6370 "B<int getservbyport_r(int >I<port>B<, const char *>I<proto>B<,>\n"
6371 "B<                struct servent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6372 "B<                size_t >I<buflen>B<, struct servent **>I<result>B<);>\n"
6373 msgstr ""
6374
6375 #. type: Plain text
6376 #: build/C/man3/getservent_r.3:53
6377 msgid "B<getservent_r>(), B<getservbyname_r>(), B<getservbyport_r>():"
6378 msgstr ""
6379
6380 #. type: Plain text
6381 #: build/C/man3/getservent_r.3:74
6382 msgid ""
6383 "The B<getservent_r>(), B<getservbyname_r>(), and B<getservbyport_r>()  "
6384 "functions are the reentrant equivalents of, respectively, B<getservent>(3), "
6385 "B<getservbyname>(3), and B<getservbyport>(3).  They differ in the way that "
6386 "the I<servent> structure is returned, and in the function calling signature "
6387 "and return value.  This manual page describes just the differences from the "
6388 "nonreentrant functions."
6389 msgstr ""
6390
6391 #. type: Plain text
6392 #: build/C/man3/getservent_r.3:80
6393 msgid ""
6394 "Instead of returning a pointer to a statically allocated I<servent> "
6395 "structure as the function result, these functions copy the structure into "
6396 "the location pointed to by I<result_buf>."
6397 msgstr ""
6398
6399 #.  I can find no information on the required/recommended buffer size;
6400 #.  the nonreentrant functions use a 1024 byte buffer -- mtk.
6401 #. type: Plain text
6402 #: build/C/man3/getservent_r.3:97
6403 msgid ""
6404 "The I<buf> array is used to store the string fields pointed to by the "
6405 "returned I<servent> structure.  (The nonreentrant functions allocate these "
6406 "strings in static storage.)  The size of this array is specified in "
6407 "I<buflen>.  If I<buf> is too small, the call fails with the error B<ERANGE>, "
6408 "and the caller must try again with a larger buffer.  (A buffer of length "
6409 "1024 bytes should be sufficient for most applications.)"
6410 msgstr ""
6411
6412 #. type: Plain text
6413 #: build/C/man3/getservent_r.3:105
6414 msgid ""
6415 "If the function call successfully obtains a service record, then I<*result> "
6416 "is set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
6417 msgstr ""
6418
6419 #. type: Plain text
6420 #: build/C/man3/getservent_r.3:108
6421 msgid ""
6422 "On success, these functions return 0.  On error, they return one of the "
6423 "positive error numbers listed in errors."
6424 msgstr ""
6425
6426 #. type: Plain text
6427 #: build/C/man3/getservent_r.3:116
6428 msgid ""
6429 "On error, record not found (B<getservbyname_r>(), B<getservbyport_r>()), or "
6430 "end of input (B<getservent_r>())  I<result> is set to NULL."
6431 msgstr ""
6432
6433 #. type: Plain text
6434 #: build/C/man3/getservent_r.3:121
6435 msgid "(B<getservent_r>())  No more records in database."
6436 msgstr ""
6437
6438 #. type: Plain text
6439 #: build/C/man3/getservent_r.3:146
6440 msgid ""
6441 "The program below uses B<getservbyport_r>()  to retrieve the service record "
6442 "for the port and protocol named in its first command-line argument.  If a "
6443 "third (integer) command-line argument is supplied, it is used as the initial "
6444 "value for I<buflen>; if B<getservbyport_r>()  fails with the error "
6445 "B<ERANGE>, the program retries with larger buffer sizes.  The following "
6446 "shell session shows a couple of sample runs:"
6447 msgstr ""
6448
6449 #. type: Plain text
6450 #: build/C/man3/getservent_r.3:156
6451 #, no-wrap
6452 msgid ""
6453 "$B< ./a.out 7 tcp 1>\n"
6454 "ERANGE! Retrying with larger buffer\n"
6455 "getservbyport_r() returned: 0 (success)  (buflen=87)\n"
6456 "s_name=echo; s_proto=tcp; s_port=7; aliases=\n"
6457 "$B< ./a.out 77777 tcp>\n"
6458 "getservbyport_r() returned: 0 (success)  (buflen=1024)\n"
6459 "Call failed/record not found\n"
6460 msgstr ""
6461
6462 #. type: Plain text
6463 #: build/C/man3/getservent_r.3:180
6464 #, no-wrap
6465 msgid ""
6466 "int\n"
6467 "main(int argc, char *argv[])\n"
6468 "{\n"
6469 "    int buflen, erange_cnt, port, s;\n"
6470 "    struct servent result_buf;\n"
6471 "    struct servent *result;\n"
6472 "    char buf[MAX_BUF];\n"
6473 "    char *protop;\n"
6474 "    char **p;\n"
6475 msgstr ""
6476
6477 #. type: Plain text
6478 #: build/C/man3/getservent_r.3:185
6479 #, no-wrap
6480 msgid ""
6481 "    if (argc E<lt> 3) {\n"
6482 "        printf(\"Usage: %s port-num proto-name [buflen]\\en\", argv[0]);\n"
6483 "        exit(EXIT_FAILURE);\n"
6484 "    }\n"
6485 msgstr ""
6486
6487 #. type: Plain text
6488 #: build/C/man3/getservent_r.3:189
6489 #, no-wrap
6490 msgid ""
6491 "    port = htons(atoi(argv[1]));\n"
6492 "    protop = (strcmp(argv[2], \"null\") == 0 ||\n"
6493 "\t      strcmp(argv[2], \"NULL\") == 0) ?  NULL : argv[2];\n"
6494 msgstr ""
6495
6496 #. type: Plain text
6497 #: build/C/man3/getservent_r.3:193
6498 #, no-wrap
6499 msgid ""
6500 "    buflen = 1024;\n"
6501 "    if (argc E<gt> 3)\n"
6502 "        buflen = atoi(argv[3]);\n"
6503 msgstr ""
6504
6505 #. type: Plain text
6506 #: build/C/man3/getservent_r.3:207
6507 #, no-wrap
6508 msgid ""
6509 "    erange_cnt = 0;\n"
6510 "    do {\n"
6511 "        s = getservbyport_r(port, protop, &result_buf,\n"
6512 "                     buf, buflen, &result);\n"
6513 "        if (s == ERANGE) {\n"
6514 "            if (erange_cnt == 0)\n"
6515 "                printf(\"ERANGE! Retrying with larger buffer\\en\");\n"
6516 "            erange_cnt++;\n"
6517 msgstr ""
6518
6519 #. type: Plain text
6520 #: build/C/man3/getservent_r.3:223
6521 #, no-wrap
6522 msgid ""
6523 "    printf(\"getservbyport_r() returned: %s  (buflen=%d)\\en\",\n"
6524 "            (s == 0) ? \"0 (success)\" : (s == ENOENT) ? \"ENOENT\" :\n"
6525 "            strerror(s), buflen);\n"
6526 msgstr ""
6527
6528 #. type: Plain text
6529 #: build/C/man3/getservent_r.3:235
6530 #, no-wrap
6531 msgid ""
6532 "    printf(\"s_name=%s; s_proto=%s; s_port=%d; aliases=\",\n"
6533 "                result_buf.s_name, result_buf.s_proto,\n"
6534 "                ntohs(result_buf.s_port));\n"
6535 "    for (p = result_buf.s_aliases; *p != NULL; p++)\n"
6536 "        printf(\"%s \", *p);\n"
6537 "    printf(\"\\en\");\n"
6538 msgstr ""
6539
6540 #. type: Plain text
6541 #: build/C/man3/getservent_r.3:242
6542 msgid "B<getservent>(3), B<services>(5)"
6543 msgstr ""
6544
6545 #. type: TH
6546 #: build/C/man5/host.conf.5:26
6547 #, no-wrap
6548 msgid "HOST.CONF"
6549 msgstr ""
6550
6551 #. type: TH
6552 #: build/C/man5/host.conf.5:26
6553 #, no-wrap
6554 msgid "2003-08-23"
6555 msgstr ""
6556
6557 #. type: TH
6558 #: build/C/man5/host.conf.5:26 build/C/man5/networks.5:24
6559 #, no-wrap
6560 msgid "Linux System Administration"
6561 msgstr ""
6562
6563 #. type: Plain text
6564 #: build/C/man5/host.conf.5:29
6565 msgid "host.conf - resolver configuration file"
6566 msgstr ""
6567
6568 #. type: Plain text
6569 #: build/C/man5/host.conf.5:38
6570 msgid ""
6571 "The file I</etc/host.conf> contains configuration information specific to "
6572 "the resolver library.  It should contain one configuration keyword per line, "
6573 "followed by appropriate configuration information.  The keywords recognized "
6574 "are I<order>, I<trim>, I<multi>, I<nospoof>, I<spoof>, and I<reorder>.  "
6575 "These keywords are described below."
6576 msgstr ""
6577
6578 #. type: TP
6579 #: build/C/man5/host.conf.5:38
6580 #, no-wrap
6581 msgid "I<order>"
6582 msgstr ""
6583
6584 #. type: Plain text
6585 #: build/C/man5/host.conf.5:44
6586 msgid ""
6587 "This keyword specifies how host lookups are to be performed.  It should be "
6588 "followed by one or more lookup methods, separated by commas.  Valid methods "
6589 "are I<bind>, I<hosts>, and I<nis>."
6590 msgstr ""
6591
6592 #. type: TP
6593 #: build/C/man5/host.conf.5:44
6594 #, no-wrap
6595 msgid "I<trim>"
6596 msgstr ""
6597
6598 #. type: Plain text
6599 #: build/C/man5/host.conf.5:61
6600 msgid ""
6601 "This keyword may be listed more than once.  Each time it should be followed "
6602 "by a list of domains, separated by colons (\\(aq:\\(aq), semicolons "
6603 "(\\(aq;\\(aq) or commas (\\(aq,\\(aq), with the leading dot.  When set, the "
6604 "resolv+ library will automatically trim the given domain name from the end "
6605 "of any hostname resolved via DNS.  This is intended for use with local hosts "
6606 "and domains.  (Related note: trim will not affect hostnames gathered via NIS "
6607 "or the hosts file.  Care should be taken to ensure that the first hostname "
6608 "for each entry in the hosts file is fully qualified or unqualified, as "
6609 "appropriate for the local installation.)"
6610 msgstr ""
6611
6612 #. type: TP
6613 #: build/C/man5/host.conf.5:61
6614 #, no-wrap
6615 msgid "I<multi>"
6616 msgstr ""
6617
6618 #. type: Plain text
6619 #: build/C/man5/host.conf.5:76
6620 msgid ""
6621 "Valid values are I<on> and I<off>.  If set to I<on>, the resolv+ library "
6622 "will return all valid addresses for a host that appears in the I</etc/hosts> "
6623 "file, instead of only the first.  This is I<off> by default, as it may cause "
6624 "a substantial performance loss at sites with large hosts files."
6625 msgstr ""
6626
6627 #. type: TP
6628 #: build/C/man5/host.conf.5:76
6629 #, no-wrap
6630 msgid "I<nospoof>"
6631 msgstr ""
6632
6633 #. type: Plain text
6634 #: build/C/man5/host.conf.5:91
6635 msgid ""
6636 "Valid values are I<on> and I<off>.  If set to I<on>, the resolv+ library "
6637 "will attempt to prevent hostname spoofing to enhance the security of "
6638 "B<rlogin> and B<rsh>.  It works as follows: after performing a host address "
6639 "lookup, resolv+ will perform a hostname lookup for that address.  If the two "
6640 "hostnames do not match, the query will fail.  The default value is I<off>."
6641 msgstr ""
6642
6643 #. type: TP
6644 #: build/C/man5/host.conf.5:91
6645 #, no-wrap
6646 msgid "I<spoofalert>"
6647 msgstr ""
6648
6649 #. type: Plain text
6650 #: build/C/man5/host.conf.5:103
6651 msgid ""
6652 "Valid values are I<on> and I<off>.  If this option is set to I<on> and the "
6653 "I<nospoof> option is also set, resolv+ will log a warning of the error via "
6654 "the syslog facility.  The default value is I<off>."
6655 msgstr ""
6656
6657 #. type: TP
6658 #: build/C/man5/host.conf.5:103
6659 #, no-wrap
6660 msgid "I<spoof>"
6661 msgstr ""
6662
6663 #. type: Plain text
6664 #: build/C/man5/host.conf.5:122
6665 msgid ""
6666 "Valid values are I<off>, I<nowarn> and I<warn>.  If this option is set to "
6667 "I<off>, spoofed addresses are permitted and no warnings will be emitted via "
6668 "the syslog facility.  If this option is set to I<warn>, resolv+ will attempt "
6669 "to prevent hostname spoofing to enhance the security and log a warning of "
6670 "the error via the syslog facility.  If this option is set to I<nowarn>, the "
6671 "resolv+ library will attempt to prevent hostname spoofing to enhance the "
6672 "security but not emit warnings via the syslog facility.  Setting this option "
6673 "to anything else is equal to setting it to I<nowarn>."
6674 msgstr ""
6675
6676 #. type: TP
6677 #: build/C/man5/host.conf.5:122
6678 #, no-wrap
6679 msgid "I<reorder>"
6680 msgstr ""
6681
6682 #. type: Plain text
6683 #: build/C/man5/host.conf.5:135
6684 msgid ""
6685 "Valid values are I<on> and I<off>.  If set to I<on>, resolv+ will attempt to "
6686 "reorder host addresses so that local addresses (i.e., on the same subnet) "
6687 "are listed first when a B<gethostbyname>(3)  is performed.  Reordering is "
6688 "done for all lookup methods.  The default value is I<off>."
6689 msgstr ""
6690
6691 #. type: SH
6692 #: build/C/man5/host.conf.5:135
6693 #, no-wrap
6694 msgid "ENVIRONMENT"
6695 msgstr ""
6696
6697 #. type: Plain text
6698 #: build/C/man5/host.conf.5:139
6699 msgid ""
6700 "There are six environment variables that can be used to allow users to "
6701 "override the behavior which is configured in I</etc/host.conf>."
6702 msgstr ""
6703
6704 #. type: TP
6705 #: build/C/man5/host.conf.5:139
6706 #, no-wrap
6707 msgid "B<RESOLV_HOST_CONF>"
6708 msgstr ""
6709
6710 #. type: Plain text
6711 #: build/C/man5/host.conf.5:143
6712 msgid ""
6713 "If set this variable points to a file that should be read instead of "
6714 "I</etc/host.conf>."
6715 msgstr ""
6716
6717 #. type: TP
6718 #: build/C/man5/host.conf.5:143
6719 #, no-wrap
6720 msgid "B<RESOLV_SERV_ORDER>"
6721 msgstr ""
6722
6723 #. type: Plain text
6724 #: build/C/man5/host.conf.5:148
6725 msgid "Overrides the I<order> command."
6726 msgstr ""
6727
6728 #. type: TP
6729 #: build/C/man5/host.conf.5:148
6730 #, no-wrap
6731 msgid "B<RESOLV_SPOOF_CHECK>"
6732 msgstr ""
6733
6734 #. type: Plain text
6735 #: build/C/man5/host.conf.5:157
6736 msgid ""
6737 "Overrides the I<nospoof>, I<spoofalert> and I<spoof> commands in the same "
6738 "way as the I<spoof> command is parsed.  Valid values are I<off>, I<nowarn> "
6739 "and I<warn>."
6740 msgstr ""
6741
6742 #. type: TP
6743 #: build/C/man5/host.conf.5:157
6744 #, no-wrap
6745 msgid "B<RESOLV_MULTI>"
6746 msgstr ""
6747
6748 #. type: Plain text
6749 #: build/C/man5/host.conf.5:162
6750 msgid "Overrides the I<multi> command."
6751 msgstr ""
6752
6753 #. type: TP
6754 #: build/C/man5/host.conf.5:162
6755 #, no-wrap
6756 msgid "B<RESOLV_REORDER>"
6757 msgstr ""
6758
6759 #. type: Plain text
6760 #: build/C/man5/host.conf.5:167
6761 msgid "Overrides the I<reorder> command."
6762 msgstr ""
6763
6764 #. type: TP
6765 #: build/C/man5/host.conf.5:167
6766 #, no-wrap
6767 msgid "B<RESOLV_ADD_TRIM_DOMAINS>"
6768 msgstr ""
6769
6770 #. type: Plain text
6771 #: build/C/man5/host.conf.5:172
6772 msgid ""
6773 "A list of domains, separated by colons (\\(aq:\\(aq), semicolons "
6774 "(\\(aq;\\(aq) or commas (\\(aq,\\(aq), with the leading dot, which will be "
6775 "added to the list of domains that should be trimmed."
6776 msgstr ""
6777
6778 #. type: TP
6779 #: build/C/man5/host.conf.5:172
6780 #, no-wrap
6781 msgid "B<RESOLV_OVERRIDE_TRIM_DOMAINS>"
6782 msgstr ""
6783
6784 #. type: Plain text
6785 #: build/C/man5/host.conf.5:180
6786 msgid ""
6787 "A list of domains, separated by colons (\\(aq:\\(aq), semicolons "
6788 "(\\(aq;\\(aq) or commas (\\(aq,\\(aq), with the leading dot, which will "
6789 "replace the list of domains that should be trimmed.  Overrides the I<trim> "
6790 "command."
6791 msgstr ""
6792
6793 #. type: Plain text
6794 #: build/C/man5/host.conf.5:184 build/C/man5/host.conf.5:187
6795 msgid "Resolver configuration file"
6796 msgstr ""
6797
6798 #. type: TP
6799 #: build/C/man5/host.conf.5:184
6800 #, no-wrap
6801 msgid "I</etc/resolv.conf>"
6802 msgstr ""
6803
6804 #. type: Plain text
6805 #: build/C/man5/host.conf.5:190
6806 msgid "Local hosts database"
6807 msgstr ""
6808
6809 #. type: Plain text
6810 #: build/C/man5/host.conf.5:199
6811 msgid ""
6812 "The following differences exist compared to the original implementation.  A "
6813 "new command I<spoof> and a new environment variable B<RESOLV_SPOOF_CHECK> "
6814 "can take arguments like I<off>, I<nowarn> and I<warn>.  Line comments can "
6815 "appear anywhere and not only at the beginning of a line."
6816 msgstr ""
6817
6818 #. type: Plain text
6819 #: build/C/man5/host.conf.5:204
6820 msgid "B<gethostbyname>(3), B<hostname>(7), B<named>(8), B<resolv+>(8)"
6821 msgstr ""
6822
6823 #. type: TH
6824 #: build/C/man7/hostname.7:37
6825 #, no-wrap
6826 msgid "HOSTNAME"
6827 msgstr ""
6828
6829 #. type: TH
6830 #: build/C/man7/hostname.7:37
6831 #, no-wrap
6832 msgid "2010-11-07"
6833 msgstr ""
6834
6835 #. type: Plain text
6836 #: build/C/man7/hostname.7:40
6837 msgid "hostname - hostname resolution description"
6838 msgstr ""
6839
6840 #. type: Plain text
6841 #: build/C/man7/hostname.7:44
6842 msgid ""
6843 "Hostnames are domains, where a domain is a hierarchical, dot-separated list "
6844 "of subdomains; for example, the machine monet, in the Berkeley subdomain of "
6845 "the EDU domain would be represented as \"monet.Berkeley.EDU\"."
6846 msgstr ""
6847
6848 #. type: Plain text
6849 #: build/C/man7/hostname.7:53
6850 msgid ""
6851 "Hostnames are often used with network client and server programs, which must "
6852 "generally translate the name to an address for use.  (This task is generally "
6853 "performed by either B<getaddrinfo>(3)  or the obsolete B<gethostbyname>(3).)  "
6854 "Hostnames are resolved by the Internet name resolver in the following "
6855 "fashion."
6856 msgstr ""
6857
6858 #. type: Plain text
6859 #: build/C/man7/hostname.7:66
6860 msgid ""
6861 "If the name consists of a single component, that is, contains no dot, and if "
6862 "the environment variable B<HOSTALIASES> is set to the name of a file, that "
6863 "file is searched for any string matching the input hostname.  The file "
6864 "should consist of lines made up of two white-space separated strings, the "
6865 "first of which is the hostname alias, and the second of which is the "
6866 "complete hostname to be substituted for that alias.  If a case-insensitive "
6867 "match is found between the hostname to be resolved and the first field of a "
6868 "line in the file, the substituted name is looked up with no further "
6869 "processing."
6870 msgstr ""
6871
6872 #. type: Plain text
6873 #: build/C/man7/hostname.7:70
6874 msgid ""
6875 "If the input name ends with a trailing dot, the trailing dot is removed, and "
6876 "the remaining name is looked up with no further processing."
6877 msgstr ""
6878
6879 #. type: Plain text
6880 #: build/C/man7/hostname.7:83
6881 msgid ""
6882 "If the input name does not end with a trailing dot, it is looked up by "
6883 "searching through a list of domains until a match is found.  The default "
6884 "search list includes first the local domain, then its parent domains with at "
6885 "least 2 name components (longest first).  For example, in the domain "
6886 "CS.Berkeley.EDU, the name lithium.CChem will be checked first as "
6887 "lithium.CChem.CS.Berkeley.EDU and then as lithium.CChem.Berkeley.EDU.  "
6888 "Lithium.CChem.EDU will not be tried, as there is only one component "
6889 "remaining from the local domain.  The search path can be changed from the "
6890 "default by a system-wide configuration file (see B<resolver>(5))."
6891 msgstr ""
6892
6893 #.  .SH HISTORY
6894 #.  Hostname appeared in
6895 #.  4.2BSD.
6896 #. type: Plain text
6897 #: build/C/man7/hostname.7:91
6898 msgid "B<gethostbyname>(3), B<resolver>(5), B<mailaddr>(7), B<named>(8)"
6899 msgstr ""
6900
6901 #. type: TH
6902 #: build/C/man5/hosts.5:27
6903 #, no-wrap
6904 msgid "HOSTS"
6905 msgstr ""
6906
6907 #. type: TH
6908 #: build/C/man5/hosts.5:27
6909 #, no-wrap
6910 msgid "2002-06-16"
6911 msgstr ""
6912
6913 #. type: Plain text
6914 #: build/C/man5/hosts.5:30
6915 msgid "hosts - static table lookup for hostnames"
6916 msgstr ""
6917
6918 #. type: Plain text
6919 #: build/C/man5/hosts.5:32
6920 msgid "B</etc/hosts>"
6921 msgstr ""
6922
6923 #. type: Plain text
6924 #: build/C/man5/hosts.5:40
6925 msgid ""
6926 "This manual page describes the format of the I</etc/hosts> file.  This file "
6927 "is a simple text file that associates IP addresses with hostnames, one line "
6928 "per IP address.  For each host a single line should be present with the "
6929 "following information:"
6930 msgstr ""
6931
6932 #. type: Plain text
6933 #: build/C/man5/hosts.5:43
6934 msgid "IP_address canonical_hostname [aliases...]"
6935 msgstr ""
6936
6937 #. type: Plain text
6938 #: build/C/man5/hosts.5:56
6939 msgid ""
6940 "Fields of the entry are separated by any number of blanks and/or tab "
6941 "characters.  Text from a \"#\" character until the end of the line is a "
6942 "comment, and is ignored.  Host names may contain only alphanumeric "
6943 "characters, minus signs (\"-\"), and periods (\".\").  They must begin with "
6944 "an alphabetic character and end with an alphanumeric character.  Optional "
6945 "aliases provide for name changes, alternate spellings, shorter hostnames, or "
6946 "generic hostnames (for example, I<localhost>)."
6947 msgstr ""
6948
6949 #. type: Plain text
6950 #: build/C/man5/hosts.5:64
6951 msgid ""
6952 "The Berkeley Internet Name Domain (BIND) Server implements the Internet name "
6953 "server for UNIX systems.  It augments or replaces the I</etc/hosts> file or "
6954 "hostname lookup, and frees a host from relying on I</etc/hosts> being up to "
6955 "date and complete."
6956 msgstr ""
6957
6958 #. type: Plain text
6959 #: build/C/man5/hosts.5:67
6960 msgid ""
6961 "In modern systems, even though the host table has been superseded by DNS, it "
6962 "is still widely used for:"
6963 msgstr ""
6964
6965 #. type: TP
6966 #: build/C/man5/hosts.5:67
6967 #, no-wrap
6968 msgid "B<bootstrapping>"
6969 msgstr ""
6970
6971 #. type: Plain text
6972 #: build/C/man5/hosts.5:73
6973 msgid ""
6974 "Most systems have a small host table containing the name and address "
6975 "information for important hosts on the local network.  This is useful when "
6976 "DNS is not running, for example during system bootup."
6977 msgstr ""
6978
6979 #. type: TP
6980 #: build/C/man5/hosts.5:73
6981 #, no-wrap
6982 msgid "B<NIS>"
6983 msgstr ""
6984
6985 #. type: Plain text
6986 #: build/C/man5/hosts.5:79
6987 msgid ""
6988 "Sites that use NIS use the host table as input to the NIS host database.  "
6989 "Even though NIS can be used with DNS, most NIS sites still use the host "
6990 "table with an entry for all local hosts as a backup."
6991 msgstr ""
6992
6993 #. type: TP
6994 #: build/C/man5/hosts.5:79
6995 #, no-wrap
6996 msgid "B<isolated nodes>"
6997 msgstr ""
6998
6999 #. type: Plain text
7000 #: build/C/man5/hosts.5:86
7001 msgid ""
7002 "Very small sites that are isolated from the network use the host table "
7003 "instead of DNS.  If the local information rarely changes, and the network is "
7004 "not connected to the Internet, DNS offers little advantage."
7005 msgstr ""
7006
7007 #. type: Plain text
7008 #: build/C/man5/hosts.5:91
7009 msgid ""
7010 "Modifications to this file normally take effect immediately, except in cases "
7011 "where the file is cached by applications."
7012 msgstr ""
7013
7014 #. type: SS
7015 #: build/C/man5/hosts.5:91
7016 #, no-wrap
7017 msgid "Historical Notes"
7018 msgstr ""
7019
7020 #. type: Plain text
7021 #: build/C/man5/hosts.5:94
7022 msgid ""
7023 "RFC\\ 952 gave the original format for the host table, though it has since "
7024 "changed."
7025 msgstr ""
7026
7027 #. type: Plain text
7028 #: build/C/man5/hosts.5:107
7029 msgid ""
7030 "Before the advent of DNS, the host table was the only way of resolving "
7031 "hostnames on the fledgling Internet.  Indeed, this file could be created "
7032 "from the official host data base maintained at the Network Information "
7033 "Control Center (NIC), though local changes were often required to bring it "
7034 "up to date regarding unofficial aliases and/or unknown hosts.  The NIC no "
7035 "longer maintains the hosts.txt files, though looking around at the time of "
7036 "writing (circa 2000), there are historical hosts.txt files on the WWW.  I "
7037 "just found three, from 92, 94, and 95."
7038 msgstr ""
7039
7040 #. type: Plain text
7041 #: build/C/man5/hosts.5:114
7042 #, no-wrap
7043 msgid ""
7044 "127.0.0.1       localhost\n"
7045 "192.168.1.10    foo.mydomain.org       foo\n"
7046 "192.168.1.13    bar.mydomain.org       bar\n"
7047 "146.82.138.7    master.debian.org      master\n"
7048 "209.237.226.90  www.opensource.org\n"
7049 msgstr ""
7050
7051 #.  .SH AUTHOR
7052 #.  This manual page was written by Manoj Srivastava <srivasta@debian.org>,
7053 #.  for the Debian GNU/Linux system.
7054 #. type: Plain text
7055 #: build/C/man5/hosts.5:125
7056 msgid ""
7057 "B<hostname>(1), B<resolver>(3), B<resolver>(5), B<hostname>(7), B<named>(8), "
7058 "Internet RFC\\ 952"
7059 msgstr ""
7060
7061 #. type: TH
7062 #: build/C/man5/hosts.equiv.5:3
7063 #, no-wrap
7064 msgid "HOSTS.EQUIV"
7065 msgstr ""
7066
7067 #. type: TH
7068 #: build/C/man5/hosts.equiv.5:3
7069 #, no-wrap
7070 msgid "2003-08-24"
7071 msgstr ""
7072
7073 #. type: Plain text
7074 #: build/C/man5/hosts.equiv.5:7
7075 msgid ""
7076 "/etc/hosts.equiv - list of hosts and users that are granted \"trusted\" B<r> "
7077 "command access to your system"
7078 msgstr ""
7079
7080 #. type: Plain text
7081 #: build/C/man5/hosts.equiv.5:11
7082 msgid ""
7083 "The B<hosts.equiv> file allows or denies hosts and users to use the "
7084 "B<r>-commands (e.g., B<rlogin>, B<rsh> or B<rcp>) without supplying a "
7085 "password."
7086 msgstr ""
7087
7088 #. type: Plain text
7089 #: build/C/man5/hosts.equiv.5:13
7090 msgid "The file uses the following format:"
7091 msgstr ""
7092
7093 #. type: TP
7094 #: build/C/man5/hosts.equiv.5:13
7095 #, no-wrap
7096 msgid "I<[ + | - ]> I<[hostname]> I<[username]>"
7097 msgstr ""
7098
7099 #. type: Plain text
7100 #: build/C/man5/hosts.equiv.5:27
7101 msgid ""
7102 "The I<hostname> is the name of a host which is logically equivalent to the "
7103 "local host.  Users logged into that host are allowed to access like-named "
7104 "user accounts on the local host without supplying a password.  The "
7105 "I<hostname> may be (optionally) preceded by a plus (+) sign.  If the plus "
7106 "sign is used alone it allows any host to access your system.  You can "
7107 "explicitly deny access to a host by preceding the I<hostname> by a minus (-) "
7108 "sign.  Users from that host must always supply a password.  For security "
7109 "reasons you should always use the FQDN of the hostname and not the short "
7110 "hostname."
7111 msgstr ""
7112
7113 #. type: Plain text
7114 #: build/C/man5/hosts.equiv.5:39
7115 msgid ""
7116 "The I<username> entry grants a specific user access to all user accounts "
7117 "(except root) without supplying a password.  That means the user is NOT "
7118 "restricted to like-named accounts.  The I<username> may be (optionally) "
7119 "preceded by a plus (+) sign.  You can also explicitly deny access to a "
7120 "specific user by preceding the I<username> with a minus (-) sign.  This says "
7121 "that the user is not trusted no matter what other entries for that host "
7122 "exist."
7123 msgstr ""
7124
7125 #. type: Plain text
7126 #: build/C/man5/hosts.equiv.5:41
7127 msgid "Netgroups can be specified by preceding the netgroup by an @ sign."
7128 msgstr ""
7129
7130 #. type: Plain text
7131 #: build/C/man5/hosts.equiv.5:47
7132 msgid ""
7133 "Be extremely careful when using the plus (+) sign.  A simple typographical "
7134 "error could result in a standalone plus sign.  A standalone plus sign is a "
7135 "wildcard character that means \"any host\"!"
7136 msgstr ""
7137
7138 #. type: Plain text
7139 #: build/C/man5/hosts.equiv.5:49
7140 msgid "I</etc/hosts.equiv>"
7141 msgstr ""
7142
7143 #. type: Plain text
7144 #: build/C/man5/hosts.equiv.5:54
7145 msgid ""
7146 "Some systems will only honor the contents of this file when it has owner "
7147 "root and no write permission for anybody else.  Some exceptionally paranoid "
7148 "systems even require that there be no other hard links to the file."
7149 msgstr ""
7150
7151 #. type: Plain text
7152 #: build/C/man5/hosts.equiv.5:62
7153 msgid ""
7154 "Modern systems use the Pluggable Authentication Modules library (PAM).  With "
7155 "PAM a standalone plus sign is only considered a wildcard character which "
7156 "means \"any host\" when the word I<promiscuous> is added to the auth "
7157 "component line in your PAM file for the particular service (e.g., "
7158 "B<rlogin>)."
7159 msgstr ""
7160
7161 #. type: Plain text
7162 #: build/C/man5/hosts.equiv.5:66
7163 msgid "B<rhosts>(5), B<rlogind>(8), B<rshd>(8)"
7164 msgstr ""
7165
7166 #. type: TH
7167 #: build/C/man7/icmp.7:7
7168 #, no-wrap
7169 msgid "ICMP"
7170 msgstr ""
7171
7172 #. type: TH
7173 #: build/C/man7/icmp.7:7 build/C/man7/ipv6.7:7 build/C/man8/nscd.8:23 build/C/man7/packet.7:7 build/C/man7/raw.7:9 build/C/man7/unix.7:15 build/C/man7/x25.7:7
7174 #, no-wrap
7175 msgid "2012-05-10"
7176 msgstr ""
7177
7178 #. type: Plain text
7179 #: build/C/man7/icmp.7:10
7180 msgid "icmp - Linux IPv4 ICMP kernel module."
7181 msgstr ""
7182
7183 #. type: Plain text
7184 #: build/C/man7/icmp.7:18
7185 msgid ""
7186 "This kernel protocol module implements the Internet Control Message Protocol "
7187 "defined in RFC\\ 792.  It is used to signal error conditions and for "
7188 "diagnosis.  The user doesn't interact directly with this module; instead it "
7189 "communicates with the other protocols in the kernel and these pass the ICMP "
7190 "errors to the application layers.  The kernel ICMP module also answers ICMP "
7191 "requests."
7192 msgstr ""
7193
7194 #. type: Plain text
7195 #: build/C/man7/icmp.7:30
7196 msgid ""
7197 "A user protocol may receive ICMP packets for all local sockets by opening a "
7198 "raw socket with the protocol B<IPPROTO_ICMP>.  See B<raw>(7)  for more "
7199 "information.  The types of ICMP packets passed to the socket can be filtered "
7200 "using the B<ICMP_FILTER> socket option.  ICMP packets are always processed "
7201 "by the kernel too, even when passed to a user socket."
7202 msgstr ""
7203
7204 #. type: Plain text
7205 #: build/C/man7/icmp.7:36
7206 msgid ""
7207 "Linux limits the rate of ICMP error packets to each destination.  "
7208 "B<ICMP_REDIRECT> and B<ICMP_DEST_UNREACH> are also limited by the "
7209 "destination route of the incoming packets."
7210 msgstr ""
7211
7212 #.  FIXME better description needed
7213 #. type: Plain text
7214 #: build/C/man7/icmp.7:49
7215 msgid ""
7216 "ICMP supports a set of I</proc> interfaces to configure some global IP "
7217 "parameters.  The parameters can be accessed by reading or writing files in "
7218 "the directory I</proc/sys/net/ipv4/>.  Most of these parameters are rate "
7219 "limitations for specific ICMP types.  Linux 2.2 uses a token bucket filter "
7220 "to limit ICMPs.  The value is the timeout in jiffies until the token bucket "
7221 "filter is cleared after a burst.  A jiffy is a system dependent unit, "
7222 "usually 10ms on i386 and about 1ms on alpha and ia64."
7223 msgstr ""
7224
7225 #. type: TP
7226 #: build/C/man7/icmp.7:49
7227 #, no-wrap
7228 msgid "I<icmp_destunreach_rate> (Linux 2.2 to 2.4.9)"
7229 msgstr ""
7230
7231 #.  Precisely: from 2.1.102
7232 #. type: Plain text
7233 #: build/C/man7/icmp.7:58
7234 msgid ""
7235 "Maximum rate to send ICMP Destination Unreachable packets.  This limits the "
7236 "rate at which packets are sent to any individual route or destination.  The "
7237 "limit does not affect sending of B<ICMP_FRAG_NEEDED> packets needed for path "
7238 "MTU discovery."
7239 msgstr ""
7240
7241 #. type: TP
7242 #: build/C/man7/icmp.7:58
7243 #, no-wrap
7244 msgid "I<icmp_echo_ignore_all> (since Linux 2.2)"
7245 msgstr ""
7246
7247 #.  Precisely: 2.1.68
7248 #. type: Plain text
7249 #: build/C/man7/icmp.7:64
7250 msgid "If this value is nonzero, Linux will ignore all B<ICMP_ECHO> requests."
7251 msgstr ""
7252
7253 #. type: TP
7254 #: build/C/man7/icmp.7:64
7255 #, no-wrap
7256 msgid "I<icmp_echo_ignore_broadcasts> (since Linux 2.2)"
7257 msgstr ""
7258
7259 #.  Precisely: from 2.1.68
7260 #. type: Plain text
7261 #: build/C/man7/icmp.7:70
7262 msgid ""
7263 "If this value is nonzero, Linux will ignore all B<ICMP_ECHO> packets sent to "
7264 "broadcast addresses."
7265 msgstr ""
7266
7267 #. type: TP
7268 #: build/C/man7/icmp.7:70
7269 #, no-wrap
7270 msgid "I<icmp_echoreply_rate> (Linux 2.2 to 2.4.9)"
7271 msgstr ""
7272
7273 #.  Precisely: from 2.1.102
7274 #. type: Plain text
7275 #: build/C/man7/icmp.7:78
7276 msgid ""
7277 "Maximum rate for sending B<ICMP_ECHOREPLY> packets in response to "
7278 "B<ICMP_ECHOREQUEST> packets."
7279 msgstr ""
7280
7281 #. type: TP
7282 #: build/C/man7/icmp.7:78
7283 #, no-wrap
7284 msgid ""
7285 "I<icmp_errors_use_inbound_ifaddr> (Boolean; default: disabled; since Linux "
7286 "2.6.12)"
7287 msgstr ""
7288
7289 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7290 #. type: Plain text
7291 #: build/C/man7/icmp.7:83
7292 msgid ""
7293 "If disabled, ICMP error messages are sent with the primary address of the "
7294 "exiting interface."
7295 msgstr ""
7296
7297 #. type: Plain text
7298 #: build/C/man7/icmp.7:89
7299 msgid ""
7300 "If enabled, the message will be sent with the primary address of the "
7301 "interface that received the packet that caused the ICMP error.  This is the "
7302 "behavior that many network administrators will expect from a router.  And it "
7303 "can make debugging complicated network layouts much easier."
7304 msgstr ""
7305
7306 #. type: Plain text
7307 #: build/C/man7/icmp.7:93
7308 msgid ""
7309 "Note that if no primary address exists for the interface selected, then the "
7310 "primary address of the first non-loopback interface that has one will be "
7311 "used regardless of this setting."
7312 msgstr ""
7313
7314 #. type: TP
7315 #: build/C/man7/icmp.7:93
7316 #, no-wrap
7317 msgid ""
7318 "I<icmp_ignore_bogus_error_responses> (Boolean; default: disabled; since "
7319 "Linux 2.2)"
7320 msgstr ""
7321
7322 #.  precisely: since 2.1.32
7323 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7324 #. type: Plain text
7325 #: build/C/man7/icmp.7:101
7326 msgid ""
7327 "Some routers violate RFC1122 by sending bogus responses to broadcast "
7328 "frames.  Such violations are normally logged via a kernel warning.  If this "
7329 "parameter is enabled, the kernel will not give such warnings, which will "
7330 "avoid log file clutter."
7331 msgstr ""
7332
7333 #. type: TP
7334 #: build/C/man7/icmp.7:101
7335 #, no-wrap
7336 msgid "I<icmp_paramprob_rate> (Linux 2.2 to 2.4.9)"
7337 msgstr ""
7338
7339 #.  Precisely: from 2.1.102
7340 #. type: Plain text
7341 #: build/C/man7/icmp.7:108
7342 msgid ""
7343 "Maximum rate for sending B<ICMP_PARAMETERPROB> packets.  These packets are "
7344 "sent when a packet arrives with an invalid IP header."
7345 msgstr ""
7346
7347 #. type: TP
7348 #: build/C/man7/icmp.7:108
7349 #, no-wrap
7350 msgid "I<icmp_ratelimit> (integer; default: 1000; since Linux 2.4.10)"
7351 msgstr ""
7352
7353 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7354 #. type: Plain text
7355 #: build/C/man7/icmp.7:116
7356 msgid ""
7357 "Limit the maximum rates for sending ICMP packets whose type matches "
7358 "I<icmp_ratemask> (see below) to specific targets.  0 to disable any "
7359 "limiting, otherwise the minimum space between responses in milliseconds."
7360 msgstr ""
7361
7362 #. type: TP
7363 #: build/C/man7/icmp.7:116
7364 #, no-wrap
7365 msgid "I<icmp_ratemask> (integer; default: see below; since Linux 2.4.10)"
7366 msgstr ""
7367
7368 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7369 #. type: Plain text
7370 #: build/C/man7/icmp.7:120
7371 msgid "Mask made of ICMP types for which rates are being limited."
7372 msgstr ""
7373
7374 #. type: Plain text
7375 #: build/C/man7/icmp.7:122
7376 msgid "Significant bits: IHGFEDCBA9876543210"
7377 msgstr ""
7378
7379 #. type: Plain text
7380 #: build/C/man7/icmp.7:124
7381 msgid "Default mask: 0000001100000011000 (0x1818)"
7382 msgstr ""
7383
7384 #. type: Plain text
7385 #: build/C/man7/icmp.7:127
7386 msgid "Bit definitions (see the kernel source file I<include/linux/icmp.h>):"
7387 msgstr ""
7388
7389 #. type: Plain text
7390 #: build/C/man7/icmp.7:143
7391 #, no-wrap
7392 msgid ""
7393 "0 Echo Reply\n"
7394 "3 Destination Unreachable *\n"
7395 "4 Source Quench *\n"
7396 "5 Redirect\n"
7397 "8 Echo Request\n"
7398 "B Time Exceeded *\n"
7399 "C Parameter Problem *\n"
7400 "D Timestamp Request\n"
7401 "E Timestamp Reply\n"
7402 "F Info Request\n"
7403 "G Info Reply\n"
7404 "H Address Mask Request\n"
7405 "I Address Mask Reply\n"
7406 msgstr ""
7407
7408 #. type: Plain text
7409 #: build/C/man7/icmp.7:148
7410 msgid ""
7411 "The bits marked with an asterisk are rate limited by default (see the "
7412 "default mask above)."
7413 msgstr ""
7414
7415 #. type: TP
7416 #: build/C/man7/icmp.7:148
7417 #, no-wrap
7418 msgid "I<icmp_timeexceed_rate> (Linux 2.2 to 2.4.9)"
7419 msgstr ""
7420
7421 #. type: Plain text
7422 #: build/C/man7/icmp.7:155
7423 msgid ""
7424 "Maximum rate for sending B<ICMP_TIME_EXCEEDED> packets.  These packets are "
7425 "sent to prevent loops when a packet has crossed too many hops."
7426 msgstr ""
7427
7428 #. type: Plain text
7429 #: build/C/man7/icmp.7:159
7430 msgid "Support for the B<ICMP_ADDRESS> request was removed in 2.2."
7431 msgstr ""
7432
7433 #. type: Plain text
7434 #: build/C/man7/icmp.7:163
7435 msgid "Support for B<ICMP_SOURCE_QUENCH> was removed in Linux 2.2."
7436 msgstr ""
7437
7438 #.  not really true ATM
7439 #.  .PP
7440 #.  Linux ICMP should be compliant to RFC 1122.
7441 #. type: Plain text
7442 #: build/C/man7/icmp.7:171
7443 msgid ""
7444 "As many other implementations don't support B<IPPROTO_ICMP> raw sockets, "
7445 "this feature should not be relied on in portable programs."
7446 msgstr ""
7447
7448 #. type: Plain text
7449 #: build/C/man7/icmp.7:176
7450 msgid ""
7451 "B<ICMP_REDIRECT> packets are not sent when Linux is not acting as a router.  "
7452 "They are also only accepted from the old gateway defined in the routing "
7453 "table and the redirect routes are expired after some time."
7454 msgstr ""
7455
7456 #. type: Plain text
7457 #: build/C/man7/icmp.7:180
7458 msgid ""
7459 "The 64-bit timestamp returned by B<ICMP_TIMESTAMP> is in milliseconds since "
7460 "the Epoch, 1970-01-01 00:00:00 +0000 (UTC)."
7461 msgstr ""
7462
7463 #. type: Plain text
7464 #: build/C/man7/icmp.7:185
7465 msgid ""
7466 "Linux ICMP internally uses a raw socket to send ICMPs.  This raw socket may "
7467 "appear in B<netstat>(8)  output with a zero inode."
7468 msgstr ""
7469
7470 #. type: Plain text
7471 #: build/C/man7/icmp.7:187
7472 msgid "B<ip>(7)"
7473 msgstr ""
7474
7475 #. type: Plain text
7476 #: build/C/man7/icmp.7:189
7477 msgid "RFC\\ 792 for a description of the ICMP protocol."
7478 msgstr ""
7479
7480 #. type: TH
7481 #: build/C/man3/inet.3:42
7482 #, no-wrap
7483 msgid "INET"
7484 msgstr ""
7485
7486 #. type: TH
7487 #: build/C/man3/inet.3:42
7488 #, no-wrap
7489 msgid "2008-06-19"
7490 msgstr ""
7491
7492 #. type: Plain text
7493 #: build/C/man3/inet.3:46
7494 msgid ""
7495 "inet_aton, inet_addr, inet_network, inet_ntoa, inet_makeaddr, inet_lnaof, "
7496 "inet_netof - Internet address manipulation routines"
7497 msgstr ""
7498
7499 #. type: Plain text
7500 #: build/C/man3/inet.3:51
7501 #, no-wrap
7502 msgid ""
7503 "B<#include E<lt>sys/socket.hE<gt>>\n"
7504 "B<#include E<lt>netinet/in.hE<gt>>\n"
7505 "B<#include E<lt>arpa/inet.hE<gt>>\n"
7506 msgstr ""
7507
7508 #. type: Plain text
7509 #: build/C/man3/inet.3:53
7510 #, no-wrap
7511 msgid "B<int inet_aton(const char *>I<cp>B<, struct in_addr *>I<inp>B<);>\n"
7512 msgstr ""
7513
7514 #. type: Plain text
7515 #: build/C/man3/inet.3:55
7516 #, no-wrap
7517 msgid "B<in_addr_t inet_addr(const char *>I<cp>B<);>\n"
7518 msgstr ""
7519
7520 #. type: Plain text
7521 #: build/C/man3/inet.3:57
7522 #, no-wrap
7523 msgid "B<in_addr_t inet_network(const char *>I<cp>B<);>\n"
7524 msgstr ""
7525
7526 #. type: Plain text
7527 #: build/C/man3/inet.3:59
7528 #, no-wrap
7529 msgid "B<char *inet_ntoa(struct in_addr >I<in>B<);>\n"
7530 msgstr ""
7531
7532 #. type: Plain text
7533 #: build/C/man3/inet.3:61
7534 #, no-wrap
7535 msgid "B<struct in_addr inet_makeaddr(int >I<net>B<, int >I<host>B<);>\n"
7536 msgstr ""
7537
7538 #. type: Plain text
7539 #: build/C/man3/inet.3:63
7540 #, no-wrap
7541 msgid "B<in_addr_t inet_lnaof(struct in_addr >I<in>B<);>\n"
7542 msgstr ""
7543
7544 #. type: Plain text
7545 #: build/C/man3/inet.3:65
7546 #, no-wrap
7547 msgid "B<in_addr_t inet_netof(struct in_addr >I<in>B<);>\n"
7548 msgstr ""
7549
7550 #. type: Plain text
7551 #: build/C/man3/inet.3:75
7552 msgid "B<inet_aton>(), B<inet_ntoa>(): _BSD_SOURCE || _SVID_SOURCE"
7553 msgstr ""
7554
7555 #. type: Plain text
7556 #: build/C/man3/inet.3:85
7557 msgid ""
7558 "B<inet_aton>()  converts the Internet host address I<cp> from the IPv4 "
7559 "numbers-and-dots notation into binary form (in network byte order)  and "
7560 "stores it in the structure that I<inp> points to.  B<inet_aton>()  returns "
7561 "nonzero if the address is valid, zero if not.  The address supplied in I<cp> "
7562 "can have one of the following forms:"
7563 msgstr ""
7564
7565 #. type: TP
7566 #: build/C/man3/inet.3:85
7567 #, no-wrap
7568 msgid "I<a.b.c.d>"
7569 msgstr ""
7570
7571 #. type: Plain text
7572 #: build/C/man3/inet.3:89
7573 msgid ""
7574 "Each of the four numeric parts specifies a byte of the address; the bytes "
7575 "are assigned in left-to-right order to produce the binary address."
7576 msgstr ""
7577
7578 #. type: TP
7579 #: build/C/man3/inet.3:89
7580 #, no-wrap
7581 msgid "I<a.b.c>"
7582 msgstr ""
7583
7584 #. type: Plain text
7585 #: build/C/man3/inet.3:102
7586 msgid ""
7587 "Parts I<a> and I<b> specify the first two bytes of the binary address.  Part "
7588 "I<c> is interpreted as a 16-bit value that defines the rightmost two bytes "
7589 "of the binary address.  This notation is suitable for specifying (outmoded) "
7590 "Class B network addresses."
7591 msgstr ""
7592
7593 #. type: TP
7594 #: build/C/man3/inet.3:102
7595 #, no-wrap
7596 msgid "I<a.b>"
7597 msgstr ""
7598
7599 #. type: Plain text
7600 #: build/C/man3/inet.3:113
7601 msgid ""
7602 "Part I<a> specifies the first byte of the binary address.  Part I<b> is "
7603 "interpreted as a 24-bit value that defines the rightmost three bytes of the "
7604 "binary address.  This notation is suitable for specifying (outmoded) Class C "
7605 "network addresses."
7606 msgstr ""
7607
7608 #. type: TP
7609 #: build/C/man3/inet.3:113
7610 #, no-wrap
7611 msgid "I<a>"
7612 msgstr ""
7613
7614 #. type: Plain text
7615 #: build/C/man3/inet.3:119
7616 msgid ""
7617 "The value I<a> is interpreted as a 32-bit value that is stored directly into "
7618 "the binary address without any byte rearrangement."
7619 msgstr ""
7620
7621 #. type: Plain text
7622 #: build/C/man3/inet.3:132
7623 msgid ""
7624 "In all of the above forms, components of the dotted address can be specified "
7625 "in decimal, octal (with a leading I<0>), or hexadecimal, with a leading "
7626 "I<0X>).  Addresses in any of these forms are collectively termed I<IPV4 "
7627 "numbers-and-dots notation>.  The form that uses exactly four decimal numbers "
7628 "is referred to as I<IPv4 dotted-decimal notation> (or sometimes: I<IPv4 "
7629 "dotted-quad notation>)."
7630 msgstr ""
7631
7632 #. type: Plain text
7633 #: build/C/man3/inet.3:149
7634 msgid ""
7635 "The B<inet_addr>()  function converts the Internet host address I<cp> from "
7636 "IPv4 numbers-and-dots notation into binary data in network byte order.  If "
7637 "the input is invalid, B<INADDR_NONE> (usually -1) is returned.  Use of this "
7638 "function is problematic because -1 is a valid address (255.255.255.255).  "
7639 "Avoid its use in favor of B<inet_aton>(), B<inet_pton>(3), or "
7640 "B<getaddrinfo>(3)  which provide a cleaner way to indicate error return."
7641 msgstr ""
7642
7643 #. type: Plain text
7644 #: build/C/man3/inet.3:159
7645 msgid ""
7646 "The B<inet_network>()  function converts I<cp>, a string in IPv4 "
7647 "numbers-and-dots notation, into a number in host byte order suitable for use "
7648 "as an Internet network address.  On success, the converted address is "
7649 "returned.  If the input is invalid, -1 is returned."
7650 msgstr ""
7651
7652 #. type: Plain text
7653 #: build/C/man3/inet.3:167
7654 msgid ""
7655 "The B<inet_ntoa>()  function converts the Internet host address I<in>, given "
7656 "in network byte order, to a string in IPv4 dotted-decimal notation.  The "
7657 "string is returned in a statically allocated buffer, which subsequent calls "
7658 "will overwrite."
7659 msgstr ""
7660
7661 #. type: Plain text
7662 #: build/C/man3/inet.3:173
7663 msgid ""
7664 "The B<inet_lnaof>()  function returns the local network address part of the "
7665 "Internet address I<in>.  The returned value is in host byte order."
7666 msgstr ""
7667
7668 #. type: Plain text
7669 #: build/C/man3/inet.3:179
7670 msgid ""
7671 "The B<inet_netof>()  function returns the network number part of the "
7672 "Internet address I<in>.  The returned value is in host byte order."
7673 msgstr ""
7674
7675 #. type: Plain text
7676 #: build/C/man3/inet.3:190
7677 msgid ""
7678 "The B<inet_makeaddr>()  function is the converse of B<inet_netof>()  and "
7679 "B<inet_lnaof>().  It returns an Internet host address in network byte order, "
7680 "created by combining the network number I<net> with the local address "
7681 "I<host>, both in host byte order."
7682 msgstr ""
7683
7684 #. type: Plain text
7685 #: build/C/man3/inet.3:200
7686 msgid ""
7687 "The structure I<in_addr> as used in B<inet_ntoa>(), B<inet_makeaddr>(), "
7688 "B<inet_lnaof>()  and B<inet_netof>()  is defined in "
7689 "I<E<lt>netinet/in.hE<gt>> as:"
7690 msgstr ""
7691
7692 #. type: Plain text
7693 #: build/C/man3/inet.3:204
7694 #, no-wrap
7695 msgid "typedef uint32_t in_addr_t;\n"
7696 msgstr ""
7697
7698 #. type: Plain text
7699 #: build/C/man3/inet.3:208
7700 #, no-wrap
7701 msgid ""
7702 "struct in_addr {\n"
7703 "    in_addr_t s_addr;\n"
7704 "};\n"
7705 msgstr ""
7706
7707 #. type: Plain text
7708 #: build/C/man3/inet.3:218
7709 msgid ""
7710 "4.3BSD.  B<inet_addr>()  and B<inet_ntoa>()  are specified in POSIX.1-2001.  "
7711 "B<inet_aton>()  is not specified in POSIX.1-2001, but is available on most "
7712 "systems."
7713 msgstr ""
7714
7715 #. type: Plain text
7716 #: build/C/man3/inet.3:222
7717 msgid ""
7718 "On the i386 the host byte order is Least Significant Byte first (little "
7719 "endian), whereas the network byte order, as used on the Internet, is Most "
7720 "Significant Byte first (big endian)."
7721 msgstr ""
7722
7723 #. type: Plain text
7724 #: build/C/man3/inet.3:231
7725 msgid ""
7726 "B<inet_lnaof>(), B<inet_netof>(), and B<inet_makeaddr>()  are legacy "
7727 "functions that assume they are dealing with I<classful network addresses>.  "
7728 "Classful networking divides IPv4 network addresses into host and network "
7729 "components at byte boundaries, as follows:"
7730 msgstr ""
7731
7732 #. type: TP
7733 #: build/C/man3/inet.3:231
7734 #, no-wrap
7735 msgid "Class A"
7736 msgstr ""
7737
7738 #. type: Plain text
7739 #: build/C/man3/inet.3:237
7740 msgid ""
7741 "This address type is indicated by the value 0 in the most significant bit of "
7742 "the (network byte ordered) address.  The network address is contained in the "
7743 "most significant byte, and the host address occupies the remaining three "
7744 "bytes."
7745 msgstr ""
7746
7747 #. type: TP
7748 #: build/C/man3/inet.3:237
7749 #, no-wrap
7750 msgid "Class B"
7751 msgstr ""
7752
7753 #. type: Plain text
7754 #: build/C/man3/inet.3:243
7755 msgid ""
7756 "This address type is indicated by the binary value 10 in the most "
7757 "significant two bits of the address.  The network address is contained in "
7758 "the two most significant bytes, and the host address occupies the remaining "
7759 "two bytes."
7760 msgstr ""
7761
7762 #. type: TP
7763 #: build/C/man3/inet.3:243
7764 #, no-wrap
7765 msgid "Class C"
7766 msgstr ""
7767
7768 #. type: Plain text
7769 #: build/C/man3/inet.3:249
7770 msgid ""
7771 "This address type is indicated by the binary value 110 in the most "
7772 "significant three bits of the address.  The network address is contained in "
7773 "the three most significant bytes, and the host address occupies the "
7774 "remaining byte."
7775 msgstr ""
7776
7777 #. type: Plain text
7778 #: build/C/man3/inet.3:254
7779 msgid ""
7780 "Classful network addresses are now obsolete, having been superseded by "
7781 "Classless Inter-Domain Routing (CIDR), which divides addresses into network "
7782 "and host components at arbitrary bit (rather than byte) boundaries."
7783 msgstr ""
7784
7785 #. type: Plain text
7786 #: build/C/man3/inet.3:261
7787 msgid ""
7788 "An example of the use of B<inet_aton>()  and B<inet_ntoa>()  is shown "
7789 "below.  Here are some example runs:"
7790 msgstr ""
7791
7792 #. type: Plain text
7793 #: build/C/man3/inet.3:268
7794 #, no-wrap
7795 msgid ""
7796 "$B< ./a.out 226.000.000.037>      # Last byte is in octal\n"
7797 "226.0.0.31\n"
7798 "$B< ./a.out 0x7f.1         >      # First byte is in hex\n"
7799 "127.0.0.1\n"
7800 msgstr ""
7801
7802 #. type: Plain text
7803 #: build/C/man3/inet.3:277
7804 #, no-wrap
7805 msgid ""
7806 "#define _BSD_SOURCE\n"
7807 "#include E<lt>arpa/inet.hE<gt>\n"
7808 "#include E<lt>stdio.hE<gt>\n"
7809 "#include E<lt>stdlib.hE<gt>\n"
7810 msgstr ""
7811
7812 #. type: Plain text
7813 #: build/C/man3/inet.3:282
7814 #, no-wrap
7815 msgid ""
7816 "int\n"
7817 "main(int argc, char *argv[])\n"
7818 "{\n"
7819 "    struct in_addr addr;\n"
7820 msgstr ""
7821
7822 #. type: Plain text
7823 #: build/C/man3/inet.3:287
7824 #, no-wrap
7825 msgid ""
7826 "    if (argc != 2) {\n"
7827 "        fprintf(stderr, \"%s E<lt>dotted-addressE<gt>\\en\", argv[0]);\n"
7828 "        exit(EXIT_FAILURE);\n"
7829 "    }\n"
7830 msgstr ""
7831
7832 #. type: Plain text
7833 #: build/C/man3/inet.3:292
7834 #, no-wrap
7835 msgid ""
7836 "    if (inet_aton(argv[1], &addr) == 0) {\n"
7837 "        perror(\"inet_aton\");\n"
7838 "        exit(EXIT_FAILURE);\n"
7839 "    }\n"
7840 msgstr ""
7841
7842 #. type: Plain text
7843 #: build/C/man3/inet.3:296
7844 #, no-wrap
7845 msgid ""
7846 "    printf(\"%s\\en\", inet_ntoa(addr));\n"
7847 "    exit(EXIT_SUCCESS);\n"
7848 "}\n"
7849 msgstr ""
7850
7851 #. type: Plain text
7852 #: build/C/man3/inet.3:307
7853 msgid ""
7854 "B<byteorder>(3), B<getaddrinfo>(3), B<gethostbyname>(3), B<getnameinfo>(3), "
7855 "B<getnetent>(3), B<inet_ntop>(3), B<inet_pton>(3), B<hosts>(5), "
7856 "B<networks>(5)"
7857 msgstr ""
7858
7859 #. type: TH
7860 #: build/C/man3/inet_ntop.3:24
7861 #, no-wrap
7862 msgid "INET_NTOP"
7863 msgstr ""
7864
7865 #. type: TH
7866 #: build/C/man3/inet_ntop.3:24
7867 #, no-wrap
7868 msgid "2008-11-11"
7869 msgstr ""
7870
7871 #. type: Plain text
7872 #: build/C/man3/inet_ntop.3:27
7873 msgid "inet_ntop - convert IPv4 and IPv6 addresses from binary to text form"
7874 msgstr ""
7875
7876 #. type: Plain text
7877 #: build/C/man3/inet_ntop.3:33
7878 #, no-wrap
7879 msgid ""
7880 "B<const char *inet_ntop(int >I<af>B<, const void *>I<src>B<,>\n"
7881 "B<                      char *>I<dst>B<, socklen_t >I<size>B<);>\n"
7882 msgstr ""
7883
7884 #. type: Plain text
7885 #: build/C/man3/inet_ntop.3:46
7886 msgid ""
7887 "This function converts the network address structure I<src> in the I<af> "
7888 "address family into a character string.  The resulting string is copied to "
7889 "the buffer pointed to by I<dst>, which must be a non-NULL pointer.  The "
7890 "caller specifies the number of bytes available in this buffer in the "
7891 "argument I<size>."
7892 msgstr ""
7893
7894 #. type: Plain text
7895 #: build/C/man3/inet_ntop.3:55
7896 msgid ""
7897 "B<inet_ntop>()  extends the B<inet_ntoa>(3)  function to support multiple "
7898 "address families, B<inet_ntoa>(3)  is now considered to be deprecated in "
7899 "favor of B<inet_ntop>().  The following address families are currently "
7900 "supported:"
7901 msgstr ""
7902
7903 #. type: Plain text
7904 #: build/C/man3/inet_ntop.3:68
7905 msgid ""
7906 "I<src> points to a I<struct in_addr> (in network byte order)  which is "
7907 "converted to an IPv4 network address in the dotted-decimal format, "
7908 "\"I<ddd.ddd.ddd.ddd>\".  The buffer I<dst> must be at least "
7909 "B<INET_ADDRSTRLEN> bytes long."
7910 msgstr ""
7911
7912 #. type: Plain text
7913 #: build/C/man3/inet_ntop.3:81
7914 msgid ""
7915 "I<src> points to a I<struct in6_addr> (in network byte order)  which is "
7916 "converted to a representation of this address in the most appropriate IPv6 "
7917 "network address format for this address.  The buffer I<dst> must be at least "
7918 "B<INET6_ADDRSTRLEN> bytes long."
7919 msgstr ""
7920
7921 #. type: Plain text
7922 #: build/C/man3/inet_ntop.3:89
7923 msgid ""
7924 "On success, B<inet_ntop>()  returns a non-NULL pointer to I<dst>.  NULL is "
7925 "returned if there was an error, with I<errno> set to indicate the error."
7926 msgstr ""
7927
7928 #. type: TP
7929 #: build/C/man3/inet_ntop.3:90
7930 #, no-wrap
7931 msgid "B<EAFNOSUPPORT>"
7932 msgstr ""
7933
7934 #. type: Plain text
7935 #: build/C/man3/inet_ntop.3:94
7936 msgid "I<af> was not a valid address family."
7937 msgstr ""
7938
7939 #. type: TP
7940 #: build/C/man3/inet_ntop.3:94
7941 #, no-wrap
7942 msgid "B<ENOSPC>"
7943 msgstr ""
7944
7945 #. type: Plain text
7946 #: build/C/man3/inet_ntop.3:98
7947 msgid "The converted address string would exceed the size given by I<size>."
7948 msgstr ""
7949
7950 #.  2.1.3: size_t, 2.1.91: socklen_t
7951 #. type: Plain text
7952 #: build/C/man3/inet_ntop.3:110
7953 msgid ""
7954 "POSIX.1-2001.  Note that RFC\\ 2553 defines a prototype where the last "
7955 "argument I<size> is of type I<size_t>.  Many systems follow RFC\\ 2553.  "
7956 "Glibc 2.0 and 2.1 have I<size_t>, but 2.2 and later have I<socklen_t>."
7957 msgstr ""
7958
7959 #. type: Plain text
7960 #: build/C/man3/inet_ntop.3:113
7961 msgid "B<AF_INET6> converts IPv4-mapped IPv6 addresses into an IPv6 format."
7962 msgstr ""
7963
7964 #. type: Plain text
7965 #: build/C/man3/inet_ntop.3:116
7966 msgid "See B<inet_pton>(3)."
7967 msgstr ""
7968
7969 #. type: Plain text
7970 #: build/C/man3/inet_ntop.3:120
7971 msgid "B<getnameinfo>(3), B<inet>(3), B<inet_pton>(3)"
7972 msgstr ""
7973
7974 #. type: TH
7975 #: build/C/man3/inet_pton.3:25
7976 #, no-wrap
7977 msgid "INET_PTON"
7978 msgstr ""
7979
7980 #. type: TH
7981 #: build/C/man3/inet_pton.3:25
7982 #, no-wrap
7983 msgid "2008-06-18"
7984 msgstr ""
7985
7986 #. type: Plain text
7987 #: build/C/man3/inet_pton.3:28
7988 msgid "inet_pton - convert IPv4 and IPv6 addresses from text to binary form"
7989 msgstr ""
7990
7991 #. type: Plain text
7992 #: build/C/man3/inet_pton.3:33
7993 #, no-wrap
7994 msgid "B<int inet_pton(int >I<af>B<, const char *>I<src>B<, void *>I<dst>B<);>\n"
7995 msgstr ""
7996
7997 #. type: Plain text
7998 #: build/C/man3/inet_pton.3:49
7999 msgid ""
8000 "This function converts the character string I<src> into a network address "
8001 "structure in the I<af> address family, then copies the network address "
8002 "structure to I<dst>.  The I<af> argument must be either B<AF_INET> or "
8003 "B<AF_INET6>."
8004 msgstr ""
8005
8006 #. type: Plain text
8007 #: build/C/man3/inet_pton.3:51
8008 msgid "The following address families are currently supported:"
8009 msgstr ""
8010
8011 #. type: Plain text
8012 #: build/C/man3/inet_pton.3:65
8013 msgid ""
8014 "I<src> points to a character string containing an IPv4 network address in "
8015 "dotted-decimal format, \"I<ddd.ddd.ddd.ddd>\", where I<ddd> is a decimal "
8016 "number of up to three digits in the range 0 to 255.  The address is "
8017 "converted to a I<struct in_addr> and copied to I<dst>, which must be "
8018 "I<sizeof(struct in_addr)> (4) bytes (32 bits) long."
8019 msgstr ""
8020
8021 #. type: Plain text
8022 #: build/C/man3/inet_pton.3:77
8023 msgid ""
8024 "I<src> points to a character string containing an IPv6 network address.  The "
8025 "address is converted to a I<struct in6_addr> and copied to I<dst>, which "
8026 "must be I<sizeof(struct in6_addr)> (16) bytes (128 bits) long.  The allowed "
8027 "formats for IPv6 addresses follow these rules:"
8028 msgstr ""
8029
8030 #. type: IP
8031 #: build/C/man3/inet_pton.3:78
8032 #, no-wrap
8033 msgid "1."
8034 msgstr ""
8035
8036 #. type: Plain text
8037 #: build/C/man3/inet_pton.3:85
8038 msgid ""
8039 "The preferred format is I<x:x:x:x:x:x:x:x>.  This form consists of eight "
8040 "hexadecimal numbers, each of which expresses a 16-bit value (i.e., each I<x> "
8041 "can be up to 4 hex digits)."
8042 msgstr ""
8043
8044 #. type: IP
8045 #: build/C/man3/inet_pton.3:85
8046 #, no-wrap
8047 msgid "2."
8048 msgstr ""
8049
8050 #. type: Plain text
8051 #: build/C/man3/inet_pton.3:98
8052 msgid ""
8053 "A series of contiguous zero values in the preferred format can be "
8054 "abbreviated to I<::>.  Only one instance of I<::> can occur in an address.  "
8055 "For example, the loopback address I<0:0:0:0:0:0:0:1> can be abbreviated as "
8056 "I<::1>.  The wildcard address, consisting of all zeros, can be written as "
8057 "I<::>."
8058 msgstr ""
8059
8060 #. type: IP
8061 #: build/C/man3/inet_pton.3:98
8062 #, no-wrap
8063 msgid "3."
8064 msgstr ""
8065
8066 #. type: Plain text
8067 #: build/C/man3/inet_pton.3:111
8068 msgid ""
8069 "An alternate format is useful for expressing IPv4-mapped IPv6 addresses.  "
8070 "This form is written as I<x:x:x:x:x:x:d.d.d.d>, where the six leading I<x>s "
8071 "are hexadecimal values that define the six most-significant 16-bit pieces of "
8072 "the address (i.e., 96 bits), and the I<d>s express a value in dotted-decimal "
8073 "notation that defines the least significant 32 bits of the address.  An "
8074 "example of such an address is I<::FFFF:204.152.189.116>."
8075 msgstr ""
8076
8077 #. type: Plain text
8078 #: build/C/man3/inet_pton.3:114
8079 msgid "See RFC 2373 for further details on the representation of IPv6 addresses."
8080 msgstr ""
8081
8082 #. type: Plain text
8083 #: build/C/man3/inet_pton.3:127
8084 msgid ""
8085 "B<inet_pton>()  returns 1 on success (network address was successfully "
8086 "converted).  0 is returned if I<src> does not contain a character string "
8087 "representing a valid network address in the specified address family.  If "
8088 "I<af> does not contain a valid address family, -1 is returned and I<errno> "
8089 "is set to B<EAFNOSUPPORT>."
8090 msgstr ""
8091
8092 #. type: Plain text
8093 #: build/C/man3/inet_pton.3:148
8094 msgid ""
8095 "Unlike B<inet_aton>(3)  and B<inet_addr>(3), B<inet_pton>()  supports IPv6 "
8096 "addresses.  On the other hand, B<inet_pton>()  only accepts IPv4 addresses "
8097 "in dotted-decimal notation, whereas B<inet_aton>(3)  and B<inet_addr>(3)  "
8098 "allow the more general numbers-and-dots notation (hexadecimal and octal "
8099 "number formats, and formats that don't require all four bytes to be "
8100 "explicitly written).  For an interface that handles both IPv6 addresses, and "
8101 "IPv4 addresses in numbers-and-dots notation, see B<getaddrinfo>(3)."
8102 msgstr ""
8103
8104 #. type: Plain text
8105 #: build/C/man3/inet_pton.3:154
8106 msgid ""
8107 "B<AF_INET6> does not recognize IPv4 addresses.  An explicit IPv4-mapped IPv6 "
8108 "address must be supplied in I<src> instead."
8109 msgstr ""
8110
8111 #. type: Plain text
8112 #: build/C/man3/inet_pton.3:160
8113 msgid ""
8114 "The program below demonstrates the use of B<inet_pton>()  and "
8115 "B<inet_ntop>(3).  Here are some example runs:"
8116 msgstr ""
8117
8118 #. type: Plain text
8119 #: build/C/man3/inet_pton.3:169
8120 #, no-wrap
8121 msgid ""
8122 "$B< ./a.out i6 0:0:0:0:0:0:0:0>\n"
8123 "::\n"
8124 "$B< ./a.out i6 1:0:0:0:0:0:0:8>\n"
8125 "1::8\n"
8126 "$B< ./a.out i6 0:0:0:0:0:FFFF:204.152.189.116>\n"
8127 "::ffff:204.152.189.116\n"
8128 msgstr ""
8129
8130 #. type: Plain text
8131 #: build/C/man3/inet_pton.3:178
8132 #, no-wrap
8133 msgid ""
8134 "#include E<lt>arpa/inet.hE<gt>\n"
8135 "#include E<lt>stdio.hE<gt>\n"
8136 "#include E<lt>stdlib.hE<gt>\n"
8137 "#include E<lt>string.hE<gt>\n"
8138 msgstr ""
8139
8140 #. type: Plain text
8141 #: build/C/man3/inet_pton.3:185
8142 #, no-wrap
8143 msgid ""
8144 "int\n"
8145 "main(int argc, char *argv[])\n"
8146 "{\n"
8147 "    unsigned char buf[sizeof(struct in6_addr)];\n"
8148 "    int domain, s;\n"
8149 "    char str[INET6_ADDRSTRLEN];\n"
8150 msgstr ""
8151
8152 #. type: Plain text
8153 #: build/C/man3/inet_pton.3:190
8154 #, no-wrap
8155 msgid ""
8156 "    if (argc != 3) {\n"
8157 "        fprintf(stderr, \"Usage: %s {i4|i6|E<lt>numE<gt>} string\\en\", "
8158 "argv[0]);\n"
8159 "        exit(EXIT_FAILURE);\n"
8160 "    }\n"
8161 msgstr ""
8162
8163 #. type: Plain text
8164 #: build/C/man3/inet_pton.3:193
8165 #, no-wrap
8166 msgid ""
8167 "    domain = (strcmp(argv[1], \"i4\") == 0) ? AF_INET :\n"
8168 "             (strcmp(argv[1], \"i6\") == 0) ? AF_INET6 : atoi(argv[1]);\n"
8169 msgstr ""
8170
8171 #. type: Plain text
8172 #: build/C/man3/inet_pton.3:202
8173 #, no-wrap
8174 msgid ""
8175 "    s = inet_pton(domain, argv[2], buf);\n"
8176 "    if (s E<lt>= 0) {\n"
8177 "        if (s == 0)\n"
8178 "            fprintf(stderr, \"Not in presentation format\");\n"
8179 "        else\n"
8180 "            perror(\"inet_pton\");\n"
8181 "        exit(EXIT_FAILURE);\n"
8182 "    }\n"
8183 msgstr ""
8184
8185 #. type: Plain text
8186 #: build/C/man3/inet_pton.3:207
8187 #, no-wrap
8188 msgid ""
8189 "    if (inet_ntop(domain, buf, str, INET6_ADDRSTRLEN) == NULL) {\n"
8190 "        perror(\"inet_ntop\");\n"
8191 "        exit(EXIT_FAILURE);\n"
8192 "    }\n"
8193 msgstr ""
8194
8195 #. type: Plain text
8196 #: build/C/man3/inet_pton.3:209
8197 #, no-wrap
8198 msgid "    printf(\"%s\\en\", str);\n"
8199 msgstr ""
8200
8201 #. type: Plain text
8202 #: build/C/man3/inet_pton.3:217
8203 msgid "B<getaddrinfo>(3), B<inet>(3), B<inet_ntop>(3)"
8204 msgstr ""
8205
8206 #. type: TH
8207 #: build/C/man7/ip.7:12
8208 #, no-wrap
8209 msgid "IP"
8210 msgstr ""
8211
8212 #. type: TH
8213 #: build/C/man7/ip.7:12
8214 #, no-wrap
8215 msgid "2011-09-22"
8216 msgstr ""
8217
8218 #. type: Plain text
8219 #: build/C/man7/ip.7:15
8220 msgid "ip - Linux IPv4 protocol implementation"
8221 msgstr ""
8222
8223 #. type: Plain text
8224 #: build/C/man7/ip.7:21 build/C/man7/ipv6.7:14 build/C/man7/raw.7:16 build/C/man7/tcp.7:23 build/C/man7/udp.7:15
8225 msgid "B<#include E<lt>netinet/in.hE<gt>>"
8226 msgstr ""
8227
8228 #. type: Plain text
8229 #: build/C/man7/ip.7:23
8230 msgid "B<#include E<lt>netinet/ip.hE<gt> >/* superset of previous */"
8231 msgstr ""
8232
8233 #. type: Plain text
8234 #: build/C/man7/ip.7:25
8235 msgid "I<tcp_socket>B< = socket(AF_INET, SOCK_STREAM, 0);>"
8236 msgstr ""
8237
8238 #. type: Plain text
8239 #: build/C/man7/ip.7:27
8240 msgid "I<udp_socket>B< = socket(AF_INET, SOCK_DGRAM, 0);>"
8241 msgstr ""
8242
8243 #. type: Plain text
8244 #: build/C/man7/ip.7:29
8245 msgid "I<raw_socket>B< = socket(AF_INET, SOCK_RAW, >I<protocol>B<);>"
8246 msgstr ""
8247
8248 #.  FIXME has someone verified that 2.1 is really 1812 compliant?
8249 #. type: Plain text
8250 #: build/C/man7/ip.7:36
8251 msgid ""
8252 "Linux implements the Internet Protocol, version 4, described in RFC\\ 791 "
8253 "and RFC\\ 1122.  B<ip> contains a level 2 multicasting implementation "
8254 "conforming to RFC\\ 1112.  It also contains an IP router including a packet "
8255 "filter."
8256 msgstr ""
8257
8258 #. type: Plain text
8259 #: build/C/man7/ip.7:40
8260 msgid ""
8261 "The programming interface is BSD-sockets compatible.  For more information "
8262 "on sockets, see B<socket>(7)."
8263 msgstr ""
8264
8265 #. type: Plain text
8266 #: build/C/man7/ip.7:71
8267 msgid ""
8268 "An IP socket is created by calling the B<socket>(2)  function as "
8269 "B<socket(AF_INET, >I<socket_type>B<, >I<protocol>B<)>.  Valid socket types "
8270 "are B<SOCK_STREAM> to open a B<tcp>(7)  socket, B<SOCK_DGRAM> to open a "
8271 "B<udp>(7)  socket, or B<SOCK_RAW> to open a B<raw>(7)  socket to access the "
8272 "IP protocol directly.  I<protocol> is the IP protocol in the IP header to be "
8273 "received or sent.  The only valid values for I<protocol> are 0 and "
8274 "B<IPPROTO_TCP> for TCP sockets, and 0 and B<IPPROTO_UDP> for UDP sockets.  "
8275 "For B<SOCK_RAW> you may specify a valid IANA IP protocol defined in RFC\\ "
8276 "1700 assigned numbers."
8277 msgstr ""
8278
8279 #.  FIXME ip current does an autobind in listen, but I'm not sure
8280 #.  if that should be documented.
8281 #. type: Plain text
8282 #: build/C/man7/ip.7:90
8283 msgid ""
8284 "When a process wants to receive new incoming packets or connections, it "
8285 "should bind a socket to a local interface address using B<bind>(2).  Only "
8286 "one IP socket may be bound to any given local (address, port) pair.  When "
8287 "B<INADDR_ANY> is specified in the bind call, the socket will be bound to "
8288 "I<all> local interfaces.  When B<listen>(2)  or B<connect>(2)  are called on "
8289 "an unbound socket, it is automatically bound to a random free port with the "
8290 "local address set to B<INADDR_ANY>."
8291 msgstr ""
8292
8293 #. type: Plain text
8294 #: build/C/man7/ip.7:96
8295 msgid ""
8296 "A TCP local socket address that has been bound is unavailable for some time "
8297 "after closing, unless the B<SO_REUSEADDR> flag has been set.  Care should be "
8298 "taken when using this flag as it makes TCP less reliable."
8299 msgstr ""
8300
8301 #. type: Plain text
8302 #: build/C/man7/ip.7:107
8303 msgid ""
8304 "An IP socket address is defined as a combination of an IP interface address "
8305 "and a 16-bit port number.  The basic IP protocol does not supply port "
8306 "numbers, they are implemented by higher level protocols like B<udp>(7)  and "
8307 "B<tcp>(7).  On raw sockets I<sin_port> is set to the IP protocol."
8308 msgstr ""
8309
8310 #. type: Plain text
8311 #: build/C/man7/ip.7:115
8312 #, no-wrap
8313 msgid ""
8314 "struct sockaddr_in {\n"
8315 "    sa_family_t    sin_family; /* address family: AF_INET */\n"
8316 "    in_port_t      sin_port;   /* port in network byte order */\n"
8317 "    struct in_addr sin_addr;   /* internet address */\n"
8318 "};\n"
8319 msgstr ""
8320
8321 #. type: Plain text
8322 #: build/C/man7/ip.7:120
8323 #, no-wrap
8324 msgid ""
8325 "/* Internet address. */\n"
8326 "struct in_addr {\n"
8327 "    uint32_t       s_addr;     /* address in network byte order */\n"
8328 "};\n"
8329 msgstr ""
8330
8331 #. type: Plain text
8332 #: build/C/man7/ip.7:145
8333 msgid ""
8334 "I<sin_family> is always set to B<AF_INET>.  This is required; in Linux 2.2 "
8335 "most networking functions return B<EINVAL> when this setting is missing.  "
8336 "I<sin_port> contains the port in network byte order.  The port numbers below "
8337 "1024 are called I<privileged ports> (or sometimes: I<reserved ports>).  Only "
8338 "privileged processes (i.e., those having the B<CAP_NET_BIND_SERVICE> "
8339 "capability) may B<bind>(2)  to these sockets.  Note that the raw IPv4 "
8340 "protocol as such has no concept of a port, they are only implemented by "
8341 "higher protocols like B<tcp>(7)  and B<udp>(7)."
8342 msgstr ""
8343
8344 #. type: Plain text
8345 #: build/C/man7/ip.7:164
8346 msgid ""
8347 "I<sin_addr> is the IP host address.  The I<s_addr> member of I<struct "
8348 "in_addr> contains the host interface address in network byte order.  "
8349 "I<in_addr> should be assigned one of the B<INADDR_*> values (e.g., "
8350 "B<INADDR_ANY>)  or set using the B<inet_aton>(3), B<inet_addr>(3), "
8351 "B<inet_makeaddr>(3)  library functions or directly with the name resolver "
8352 "(see B<gethostbyname>(3))."
8353 msgstr ""
8354
8355 #.  Leave a loophole for XTP @)
8356 #. type: Plain text
8357 #: build/C/man7/ip.7:176
8358 msgid ""
8359 "IPv4 addresses are divided into unicast, broadcast and multicast addresses.  "
8360 "Unicast addresses specify a single interface of a host, broadcast addresses "
8361 "specify all hosts on a network and multicast addresses address all hosts in "
8362 "a multicast group.  Datagrams to broadcast addresses can be only sent or "
8363 "received when the B<SO_BROADCAST> socket flag is set.  In the current "
8364 "implementation, connection-oriented sockets are only allowed to use unicast "
8365 "addresses."
8366 msgstr ""
8367
8368 #. type: Plain text
8369 #: build/C/man7/ip.7:184
8370 msgid ""
8371 "Note that the address and the port are always stored in network byte order.  "
8372 "In particular, this means that you need to call B<htons>(3)  on the number "
8373 "that is assigned to a port.  All address/port manipulation functions in the "
8374 "standard library work in network byte order."
8375 msgstr ""
8376
8377 #. type: Plain text
8378 #: build/C/man7/ip.7:197
8379 msgid ""
8380 "There are several special addresses: B<INADDR_LOOPBACK> (127.0.0.1)  always "
8381 "refers to the local host via the loopback device; B<INADDR_ANY> (0.0.0.0)  "
8382 "means any address for binding; B<INADDR_BROADCAST> (255.255.255.255)  means "
8383 "any host and has the same effect on bind as B<INADDR_ANY> for historical "
8384 "reasons."
8385 msgstr ""
8386
8387 #.  or SOL_IP on Linux
8388 #. type: Plain text
8389 #: build/C/man7/ip.7:206
8390 msgid ""
8391 "IP supports some protocol-specific socket options that can be set with "
8392 "B<setsockopt>(2)  and read with B<getsockopt>(2).  The socket option level "
8393 "for IP is B<IPPROTO_IP>.  A boolean integer flag is zero when it is false, "
8394 "otherwise true."
8395 msgstr ""
8396
8397 #. type: TP
8398 #: build/C/man7/ip.7:206
8399 #, no-wrap
8400 msgid "B<IP_ADD_MEMBERSHIP> (since Linux 1.2)"
8401 msgstr ""
8402
8403 #. type: Plain text
8404 #: build/C/man7/ip.7:212
8405 msgid "Join a multicast group.  Argument is an I<ip_mreqn> structure."
8406 msgstr ""
8407
8408 #. type: Plain text
8409 #: build/C/man7/ip.7:222
8410 #, no-wrap
8411 msgid ""
8412 "struct ip_mreqn {\n"
8413 "    struct in_addr imr_multiaddr; /* IP multicast group\n"
8414 "                                     address */\n"
8415 "    struct in_addr imr_address;   /* IP address of local\n"
8416 "                                     interface */\n"
8417 "    int            imr_ifindex;   /* interface index */\n"
8418 "};\n"
8419 msgstr ""
8420
8421 #.  (i.e., within the 224.0.0.0-239.255.255.255 range)
8422 #. type: Plain text
8423 #: build/C/man7/ip.7:243
8424 msgid ""
8425 "I<imr_multiaddr> contains the address of the multicast group the application "
8426 "wants to join or leave.  It must be a valid multicast address (or "
8427 "B<setsockopt>(2)  fails with the error B<EINVAL>).  I<imr_address> is the "
8428 "address of the local interface with which the system should join the "
8429 "multicast group; if it is equal to B<INADDR_ANY> an appropriate interface is "
8430 "chosen by the system.  I<imr_ifindex> is the interface index of the "
8431 "interface that should join/leave the I<imr_multiaddr> group, or 0 to "
8432 "indicate any interface."
8433 msgstr ""
8434
8435 #. type: Plain text
8436 #: build/C/man7/ip.7:258
8437 msgid ""
8438 "The I<ip_mreqn> structure is available only since Linux 2.2.  For "
8439 "compatibility, the old I<ip_mreq> structure (present since Linux 1.2) is "
8440 "still supported; it differs from I<ip_mreqn> only by not including the "
8441 "I<imr_ifindex> field.  Only valid as a B<setsockopt>(2)."
8442 msgstr ""
8443
8444 #. type: TP
8445 #: build/C/man7/ip.7:258
8446 #, no-wrap
8447 msgid "B<IP_DROP_MEMBERSHIP> (since Linux 1.2)"
8448 msgstr ""
8449
8450 #. type: Plain text
8451 #: build/C/man7/ip.7:267
8452 msgid ""
8453 "Leave a multicast group.  Argument is an I<ip_mreqn> or I<ip_mreq> structure "
8454 "similar to B<IP_ADD_MEMBERSHIP>."
8455 msgstr ""
8456
8457 #. type: TP
8458 #: build/C/man7/ip.7:267
8459 #, no-wrap
8460 msgid "B<IP_FREEBIND> (since Linux 2.4)"
8461 msgstr ""
8462
8463 #.  Precisely: 2.4.0-test10
8464 #. type: Plain text
8465 #: build/C/man7/ip.7:280
8466 msgid ""
8467 "If enabled, this boolean option allows binding to an IP address that is "
8468 "nonlocal or does not (yet) exist.  This permits listening on a socket, "
8469 "without requiring the underlying network interface or the specified dynamic "
8470 "IP address to be up at the time that the application is trying to bind to "
8471 "it.  This option is the per-socket equivalent of the I<ip_nonlocal_bind> "
8472 "I</proc> interface described below."
8473 msgstr ""
8474
8475 #. type: TP
8476 #: build/C/man7/ip.7:280
8477 #, no-wrap
8478 msgid "B<IP_HDRINCL> (since Linux 2.0)"
8479 msgstr ""
8480
8481 #
8482 #.  FIXME Document IP_IPSEC_POLICY
8483 #.  Since Linux 2.5.47
8484 #.  Needs CAP_NET_ADMIN
8485 #. type: Plain text
8486 #: build/C/man7/ip.7:300
8487 msgid ""
8488 "If enabled, the user supplies an IP header in front of the user data.  Only "
8489 "valid for B<SOCK_RAW> sockets.  See B<raw>(7)  for more information.  When "
8490 "this flag is enabled the values set by B<IP_OPTIONS>, B<IP_TTL> and "
8491 "B<IP_TOS> are ignored."
8492 msgstr ""
8493
8494 #. type: TP
8495 #: build/C/man7/ip.7:300
8496 #, no-wrap
8497 msgid "B<IP_MTU> (since Linux 2.2)"
8498 msgstr ""
8499
8500 #.  Precisely: 2.1.124
8501 #. type: Plain text
8502 #: build/C/man7/ip.7:308
8503 msgid ""
8504 "Retrieve the current known path MTU of the current socket.  Only valid when "
8505 "the socket has been connected.  Returns an integer.  Only valid as a "
8506 "B<getsockopt>(2)."
8507 msgstr ""
8508
8509 #. type: TP
8510 #: build/C/man7/ip.7:308
8511 #, no-wrap
8512 msgid "B<IP_MTU_DISCOVER> (since Linux 2.2)"
8513 msgstr ""
8514
8515 #.  Precisely: 2.1.124
8516 #. type: Plain text
8517 #: build/C/man7/ip.7:329
8518 msgid ""
8519 "Set or receive the Path MTU Discovery setting for a socket.  When enabled, "
8520 "Linux will perform Path MTU Discovery as defined in RFC\\ 1191 on "
8521 "B<SOCK_STREAM> sockets.  For non-B<SOCK_STREAM> sockets, B<IP_PMTUDISC_DO> "
8522 "forces the don't-fragment flag to be set on all outgoing packets.  It is the "
8523 "user's responsibility to packetize the data in MTU-sized chunks and to do "
8524 "the retransmits if necessary.  The kernel will reject (with B<EMSGSIZE>)  "
8525 "datagrams that are bigger than the known path MTU.  B<IP_PMTUDISC_WANT> will "
8526 "fragment a datagram if needed according to the path MTU, or will set the "
8527 "don't-fragment flag otherwise."
8528 msgstr ""
8529
8530 #. type: Plain text
8531 #: build/C/man7/ip.7:337
8532 msgid ""
8533 "The system-wide default can be toggled between B<IP_PMTUDISC_WANT> and "
8534 "B<IP_PMTUDISC_DONT> by writing (respectively, zero and nonzero values) to "
8535 "the I</proc/sys/net/ipv4/ip_no_pmtu_disc> file."
8536 msgstr ""
8537
8538 #. type: tbl table
8539 #: build/C/man7/ip.7:342
8540 #, no-wrap
8541 msgid "Path MTU discovery value:Meaning\n"
8542 msgstr ""
8543
8544 #. type: tbl table
8545 #: build/C/man7/ip.7:343
8546 #, no-wrap
8547 msgid "IP_PMTUDISC_WANT:Use per-route settings.\n"
8548 msgstr ""
8549
8550 #. type: tbl table
8551 #: build/C/man7/ip.7:344
8552 #, no-wrap
8553 msgid "IP_PMTUDISC_DONT:Never do Path MTU Discovery.\n"
8554 msgstr ""
8555
8556 #. type: tbl table
8557 #: build/C/man7/ip.7:345
8558 #, no-wrap
8559 msgid "IP_PMTUDISC_DO:Always do Path MTU Discovery.\n"
8560 msgstr ""
8561
8562 #. type: tbl table
8563 #: build/C/man7/ip.7:346
8564 #, no-wrap
8565 msgid "IP_PMTUDISC_PROBE:Set DF but ignore Path MTU.\n"
8566 msgstr ""
8567
8568 #. type: Plain text
8569 #: build/C/man7/ip.7:364
8570 msgid ""
8571 "When PMTU discovery is enabled, the kernel automatically keeps track of the "
8572 "path MTU per destination host.  When it is connected to a specific peer with "
8573 "B<connect>(2), the currently known path MTU can be retrieved conveniently "
8574 "using the B<IP_MTU> socket option (e.g., after an B<EMSGSIZE> error "
8575 "occurred).  The path MTU may change over time.  For connectionless sockets "
8576 "with many destinations, the new MTU for a given destination can also be "
8577 "accessed using the error queue (see B<IP_RECVERR>).  A new error will be "
8578 "queued for every incoming MTU update."
8579 msgstr ""
8580
8581 #. type: Plain text
8582 #: build/C/man7/ip.7:369
8583 msgid ""
8584 "While MTU discovery is in progress, initial packets from datagram sockets "
8585 "may be dropped.  Applications using UDP should be aware of this and not take "
8586 "it into account for their packet retransmit strategy."
8587 msgstr ""
8588
8589 #.  FIXME this is an ugly hack
8590 #. type: Plain text
8591 #: build/C/man7/ip.7:374
8592 msgid ""
8593 "To bootstrap the path MTU discovery process on unconnected sockets, it is "
8594 "possible to start with a big datagram size (up to 64K-headers bytes long) "
8595 "and let it shrink by updates of the path MTU."
8596 msgstr ""
8597
8598 #. type: Plain text
8599 #: build/C/man7/ip.7:383
8600 msgid ""
8601 "To get an initial estimate of the path MTU, connect a datagram socket to the "
8602 "destination address using B<connect>(2)  and retrieve the MTU by calling "
8603 "B<getsockopt>(2)  with the B<IP_MTU> option."
8604 msgstr ""
8605
8606 #. type: Plain text
8607 #: build/C/man7/ip.7:395
8608 msgid ""
8609 "It is possible to implement RFC 4821 MTU probing with B<SOCK_DGRAM> or "
8610 "B<SOCK_RAW> sockets by setting a value of B<IP_PMTUDISC_PROBE> (available "
8611 "since Linux 2.6.22).  This is also particularly useful for diagnostic tools "
8612 "such as B<tracepath>(8)  that wish to deliberately send probe packets larger "
8613 "than the observed Path MTU."
8614 msgstr ""
8615
8616 #. type: TP
8617 #: build/C/man7/ip.7:395
8618 #, no-wrap
8619 msgid "B<IP_MULTICAST_IF> (since Linux 1.2)"
8620 msgstr ""
8621
8622 #. type: Plain text
8623 #: build/C/man7/ip.7:404
8624 msgid ""
8625 "Set the local device for a multicast socket.  Argument is an I<ip_mreqn> or "
8626 "I<ip_mreq> structure similar to B<IP_ADD_MEMBERSHIP>."
8627 msgstr ""
8628
8629 #. type: Plain text
8630 #: build/C/man7/ip.7:408
8631 msgid "When an invalid socket option is passed, B<ENOPROTOOPT> is returned."
8632 msgstr ""
8633
8634 #. type: TP
8635 #: build/C/man7/ip.7:408
8636 #, no-wrap
8637 msgid "B<IP_MULTICAST_LOOP> (since Linux 1.2)"
8638 msgstr ""
8639
8640 #. type: Plain text
8641 #: build/C/man7/ip.7:412
8642 msgid ""
8643 "Set or read a boolean integer argument that determines whether sent "
8644 "multicast packets should be looped back to the local sockets."
8645 msgstr ""
8646
8647 #. type: TP
8648 #: build/C/man7/ip.7:412
8649 #, no-wrap
8650 msgid "B<IP_MULTICAST_TTL> (since Linux 1.2)"
8651 msgstr ""
8652
8653 #. type: Plain text
8654 #: build/C/man7/ip.7:420
8655 msgid ""
8656 "Set or read the time-to-live value of outgoing multicast packets for this "
8657 "socket.  It is very important for multicast packets to set the smallest TTL "
8658 "possible.  The default is 1 which means that multicast packets don't leave "
8659 "the local network unless the user program explicitly requests it.  Argument "
8660 "is an integer."
8661 msgstr ""
8662
8663 #. type: TP
8664 #: build/C/man7/ip.7:420
8665 #, no-wrap
8666 msgid "B<IP_NODEFRAG> (since Linux 2.6.36)"
8667 msgstr ""
8668
8669 #. type: Plain text
8670 #: build/C/man7/ip.7:428
8671 msgid ""
8672 "If enabled (argument is nonzero), the reassembly of outgoing packets is "
8673 "disabled in the netfilter layer.  This option is only valid for B<SOCK_RAW> "
8674 "sockets.  The argument is an integer."
8675 msgstr ""
8676
8677 #. type: TP
8678 #: build/C/man7/ip.7:428
8679 #, no-wrap
8680 msgid "B<IP_OPTIONS> (since Linux 2.0)"
8681 msgstr ""
8682
8683 #.  Precisely: 1.3.30
8684 #.  FIXME Document IP_PASSSEC
8685 #.  Boolean
8686 #.  Since Linux 2.6.17
8687 #.  commit 2c7946a7bf45ae86736ab3b43d0085e43947945c
8688 #.  Author: Catherine Zhang <cxzhang@watson.ibm.com>
8689 #. type: Plain text
8690 #: build/C/man7/ip.7:462
8691 msgid ""
8692 "Set or get the IP options to be sent with every packet from this socket.  "
8693 "The arguments are a pointer to a memory buffer containing the options and "
8694 "the option length.  The B<setsockopt>(2)  call sets the IP options "
8695 "associated with a socket.  The maximum option size for IPv4 is 40 bytes.  "
8696 "See RFC\\ 791 for the allowed options.  When the initial connection request "
8697 "packet for a B<SOCK_STREAM> socket contains IP options, the IP options will "
8698 "be set automatically to the options from the initial packet with routing "
8699 "headers reversed.  Incoming packets are not allowed to change options after "
8700 "the connection is established.  The processing of all incoming source "
8701 "routing options is disabled by default and can be enabled by using the "
8702 "I<accept_source_route> I</proc> interface.  Other options like timestamps "
8703 "are still handled.  For datagram sockets, IP options can be only set by the "
8704 "local user.  Calling B<getsockopt>(2)  with B<IP_OPTIONS> puts the current "
8705 "IP options used for sending into the supplied buffer."
8706 msgstr ""
8707
8708 #. type: TP
8709 #: build/C/man7/ip.7:462
8710 #, no-wrap
8711 msgid "B<IP_PKTINFO> (since Linux 2.2)"
8712 msgstr ""
8713
8714 #.  Precisely: 2.1.68
8715 #. type: Plain text
8716 #: build/C/man7/ip.7:479
8717 msgid ""
8718 "Pass an B<IP_PKTINFO> ancillary message that contains a I<pktinfo> structure "
8719 "that supplies some information about the incoming packet.  This only works "
8720 "for datagram oriented sockets.  The argument is a flag that tells the socket "
8721 "whether the B<IP_PKTINFO> message should be passed or not.  The message "
8722 "itself can only be sent/retrieved as control message with a packet using "
8723 "B<recvmsg>(2)  or B<sendmsg>(2)."
8724 msgstr ""
8725
8726 #. type: Plain text
8727 #: build/C/man7/ip.7:488
8728 #, no-wrap
8729 msgid ""
8730 "struct in_pktinfo {\n"
8731 "    unsigned int   ipi_ifindex;  /* Interface index */\n"
8732 "    struct in_addr ipi_spec_dst; /* Local address */\n"
8733 "    struct in_addr ipi_addr;     /* Header Destination\n"
8734 "                                    address */\n"
8735 "};\n"
8736 msgstr ""
8737
8738 #.  FIXME elaborate on that.
8739 #.  This field is grossly misnamed
8740 #. type: Plain text
8741 #: build/C/man7/ip.7:513
8742 msgid ""
8743 "I<ipi_ifindex> is the unique index of the interface the packet was received "
8744 "on.  I<ipi_spec_dst> is the local address of the packet and I<ipi_addr> is "
8745 "the destination address in the packet header.  If B<IP_PKTINFO> is passed to "
8746 "B<sendmsg>(2)  and I<ipi_spec_dst> is not zero, then it is used as the local "
8747 "source address for the routing table lookup and for setting up IP source "
8748 "route options.  When I<ipi_ifindex> is not zero, the primary local address "
8749 "of the interface specified by the index overwrites I<ipi_spec_dst> for the "
8750 "routing table lookup."
8751 msgstr ""
8752
8753 #. type: TP
8754 #: build/C/man7/ip.7:513
8755 #, no-wrap
8756 msgid "B<IP_RECVERR> (since Linux 2.2)"
8757 msgstr ""
8758
8759 #.  Precisely: 2.1.15
8760 #.  or SOL_IP on Linux
8761 #. type: Plain text
8762 #: build/C/man7/ip.7:535
8763 msgid ""
8764 "Enable extended reliable error message passing.  When enabled on a datagram "
8765 "socket, all generated errors will be queued in a per-socket error queue.  "
8766 "When the user receives an error from a socket operation, the errors can be "
8767 "received by calling B<recvmsg>(2)  with the B<MSG_ERRQUEUE> flag set.  The "
8768 "I<sock_extended_err> structure describing the error will be passed in an "
8769 "ancillary message with the type B<IP_RECVERR> and the level B<IPPROTO_IP>.  "
8770 "This is useful for reliable error handling on unconnected sockets.  The "
8771 "received data portion of the error queue contains the error packet."
8772 msgstr ""
8773
8774 #. type: Plain text
8775 #: build/C/man7/ip.7:541
8776 msgid "The B<IP_RECVERR> control message contains a I<sock_extended_err> structure:"
8777 msgstr ""
8778
8779 #. type: Plain text
8780 #: build/C/man7/ip.7:549
8781 #, no-wrap
8782 msgid ""
8783 "#define SO_EE_ORIGIN_NONE    0\n"
8784 "#define SO_EE_ORIGIN_LOCAL   1\n"
8785 "#define SO_EE_ORIGIN_ICMP    2\n"
8786 "#define SO_EE_ORIGIN_ICMP6   3\n"
8787 msgstr ""
8788
8789 #. type: Plain text
8790 #: build/C/man7/ip.7:560
8791 #, no-wrap
8792 msgid ""
8793 "struct sock_extended_err {\n"
8794 "    uint32_t ee_errno;   /* error number */\n"
8795 "    uint8_t  ee_origin;  /* where the error originated */\n"
8796 "    uint8_t  ee_type;    /* type */\n"
8797 "    uint8_t  ee_code;    /* code */\n"
8798 "    uint8_t  ee_pad;\n"
8799 "    uint32_t ee_info;    /* additional information */\n"
8800 "    uint32_t ee_data;    /* other data */\n"
8801 "    /* More data may follow */\n"
8802 "};\n"
8803 msgstr ""
8804
8805 #. type: Plain text
8806 #: build/C/man7/ip.7:562
8807 #, no-wrap
8808 msgid "struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *);\n"
8809 msgstr ""
8810
8811 #. type: Plain text
8812 #: build/C/man7/ip.7:585
8813 msgid ""
8814 "I<ee_errno> contains the I<errno> number of the queued error.  I<ee_origin> "
8815 "is the origin code of where the error originated.  The other fields are "
8816 "protocol-specific.  The macro B<SO_EE_OFFENDER> returns a pointer to the "
8817 "address of the network object where the error originated from given a "
8818 "pointer to the ancillary message.  If this address is not known, the "
8819 "I<sa_family> member of the I<sockaddr> contains B<AF_UNSPEC> and the other "
8820 "fields of the I<sockaddr> are undefined."
8821 msgstr ""
8822
8823 #.  FIXME . Is it a good idea to document that? It is a dubious feature.
8824 #.  On
8825 #.  .B SOCK_STREAM
8826 #.  sockets,
8827 #.  .B IP_RECVERR
8828 #.  has slightly different semantics. Instead of
8829 #.  saving the errors for the next timeout, it passes all incoming
8830 #.  errors immediately to the user.
8831 #.  This might be useful for very short-lived TCP connections which
8832 #.  need fast error handling. Use this option with care:
8833 #.  it makes TCP unreliable
8834 #.  by not allowing it to recover properly from routing
8835 #.  shifts and other normal
8836 #.  conditions and breaks the protocol specification.
8837 #. type: Plain text
8838 #: build/C/man7/ip.7:644
8839 msgid ""
8840 "IP uses the I<sock_extended_err> structure as follows: I<ee_origin> is set "
8841 "to B<SO_EE_ORIGIN_ICMP> for errors received as an ICMP packet, or "
8842 "B<SO_EE_ORIGIN_LOCAL> for locally generated errors.  Unknown values should "
8843 "be ignored.  I<ee_type> and I<ee_code> are set from the type and code fields "
8844 "of the ICMP header.  I<ee_info> contains the discovered MTU for B<EMSGSIZE> "
8845 "errors.  The message also contains the I<sockaddr_in of the node> caused the "
8846 "error, which can be accessed with the B<SO_EE_OFFENDER> macro.  The "
8847 "I<sin_family> field of the B<SO_EE_OFFENDER> address is B<AF_UNSPEC> when "
8848 "the source was unknown.  When the error originated from the network, all IP "
8849 "options (B<IP_OPTIONS>, B<IP_TTL>, etc.) enabled on the socket and contained "
8850 "in the error packet are passed as control messages.  The payload of the "
8851 "packet causing the error is returned as normal payload.  Note that TCP has "
8852 "no error queue; B<MSG_ERRQUEUE> is not permitted on B<SOCK_STREAM> sockets.  "
8853 "B<IP_RECVERR> is valid for TCP, but all errors are returned by socket "
8854 "function return or B<SO_ERROR> only."
8855 msgstr ""
8856
8857 #. type: Plain text
8858 #: build/C/man7/ip.7:649
8859 msgid ""
8860 "For raw sockets, B<IP_RECVERR> enables passing of all received ICMP errors "
8861 "to the application, otherwise errors are only reported on connected sockets"
8862 msgstr ""
8863
8864 #. type: Plain text
8865 #: build/C/man7/ip.7:653
8866 msgid ""
8867 "It sets or retrieves an integer boolean flag.  B<IP_RECVERR> defaults to "
8868 "off."
8869 msgstr ""
8870
8871 #. type: TP
8872 #: build/C/man7/ip.7:653
8873 #, no-wrap
8874 msgid "B<IP_RECVOPTS> (since Linux 2.2)"
8875 msgstr ""
8876
8877 #.  Precisely: 2.1.15
8878 #. type: Plain text
8879 #: build/C/man7/ip.7:664
8880 msgid ""
8881 "Pass all incoming IP options to the user in a B<IP_OPTIONS> control "
8882 "message.  The routing header and other options are already filled in for the "
8883 "local host.  Not supported for B<SOCK_STREAM> sockets."
8884 msgstr ""
8885
8886 #. type: TP
8887 #: build/C/man7/ip.7:664
8888 #, no-wrap
8889 msgid "B<IP_RECVORIGDSTADDR> (since Linux 2.6.29)"
8890 msgstr ""
8891
8892 #.  commit e8b2dfe9b4501ed0047459b2756ba26e5a940a69
8893 #. type: Plain text
8894 #: build/C/man7/ip.7:675
8895 msgid ""
8896 "This boolean option enables the B<IP_ORIGDSTADDR> ancillary message in "
8897 "B<recvmsg>(2), in which the kernel returns the original destination address "
8898 "of the datagram being received.  The ancillary message contains a I<struct "
8899 "sockaddr_in>."
8900 msgstr ""
8901
8902 #. type: TP
8903 #: build/C/man7/ip.7:675
8904 #, no-wrap
8905 msgid "B<IP_RECVTOS> (since Linux 2.2)"
8906 msgstr ""
8907
8908 #.  Precisely: 2.1.68
8909 #. type: Plain text
8910 #: build/C/man7/ip.7:684
8911 msgid ""
8912 "If enabled the B<IP_TOS> ancillary message is passed with incoming packets.  "
8913 "It contains a byte which specifies the Type of Service/Precedence field of "
8914 "the packet header.  Expects a boolean integer flag."
8915 msgstr ""
8916
8917 #. type: TP
8918 #: build/C/man7/ip.7:684
8919 #, no-wrap
8920 msgid "B<IP_RECVTTL> (since Linux 2.2)"
8921 msgstr ""
8922
8923 #.  Precisely: 2.1.68
8924 #. type: Plain text
8925 #: build/C/man7/ip.7:694
8926 msgid ""
8927 "When this flag is set, pass a B<IP_TTL> control message with the time to "
8928 "live field of the received packet as a byte.  Not supported for "
8929 "B<SOCK_STREAM> sockets."
8930 msgstr ""
8931
8932 #. type: TP
8933 #: build/C/man7/ip.7:694
8934 #, no-wrap
8935 msgid "B<IP_RETOPTS> (since Linux 2.2)"
8936 msgstr ""
8937
8938 #.  Precisely: 2.1.15
8939 #. type: Plain text
8940 #: build/C/man7/ip.7:701
8941 msgid ""
8942 "Identical to B<IP_RECVOPTS>, but returns raw unprocessed options with "
8943 "timestamp and route record options not filled in for this hop."
8944 msgstr ""
8945
8946 #. type: TP
8947 #: build/C/man7/ip.7:701
8948 #, no-wrap
8949 msgid "B<IP_ROUTER_ALERT> (since Linux 2.2)"
8950 msgstr ""
8951
8952 #.  Precisely: 2.1.68
8953 #. type: Plain text
8954 #: build/C/man7/ip.7:713
8955 msgid ""
8956 "Pass all to-be forwarded packets with the IP Router Alert option set to this "
8957 "socket.  Only valid for raw sockets.  This is useful, for instance, for "
8958 "user-space RSVP daemons.  The tapped packets are not forwarded by the "
8959 "kernel; it is the user's responsibility to send them out again.  Socket "
8960 "binding is ignored, such packets are only filtered by protocol.  Expects an "
8961 "integer flag."
8962 msgstr ""
8963
8964 #. type: TP
8965 #: build/C/man7/ip.7:713
8966 #, no-wrap
8967 msgid "B<IP_TOS> (since Linux 1.0)"
8968 msgstr ""
8969
8970 #.  FIXME elaborate on this
8971 #.  Needs CAP_NET_ADMIN
8972 #.  Boolean
8973 #.  Since Linux 2.6.27
8974 #.  Author: KOVACS Krisztian <hidden@sch.bme.hu>
8975 #.  http://lwn.net/Articles/252545/
8976 #. type: Plain text
8977 #: build/C/man7/ip.7:747
8978 msgid ""
8979 "Set or receive the Type-Of-Service (TOS) field that is sent with every IP "
8980 "packet originating from this socket.  It is used to prioritize packets on "
8981 "the network.  TOS is a byte.  There are some standard TOS flags defined: "
8982 "B<IPTOS_LOWDELAY> to minimize delays for interactive traffic, "
8983 "B<IPTOS_THROUGHPUT> to optimize throughput, B<IPTOS_RELIABILITY> to optimize "
8984 "for reliability, B<IPTOS_MINCOST> should be used for \"filler data\" where "
8985 "slow transmission doesn't matter.  At most one of these TOS values can be "
8986 "specified.  Other bits are invalid and shall be cleared.  Linux sends "
8987 "B<IPTOS_LOWDELAY> datagrams first by default, but the exact behavior depends "
8988 "on the configured queueing discipline.  Some high priority levels may "
8989 "require superuser privileges (the B<CAP_NET_ADMIN> capability).  The "
8990 "priority can also be set in a protocol independent way by the "
8991 "(B<SOL_SOCKET>, B<SO_PRIORITY>)  socket option (see B<socket>(7))."
8992 msgstr ""
8993
8994 #. type: TP
8995 #: build/C/man7/ip.7:747
8996 #, no-wrap
8997 msgid "B<IP_TRANSPARENT> (since Linux 2.6.24)"
8998 msgstr ""
8999
9000 #.  commit f5715aea4564f233767ea1d944b2637a5fd7cd2e
9001 #.      This patch introduces the IP_TRANSPARENT socket option: enabling that
9002 #.      will make the IPv4 routing omit the non-local source address check on
9003 #.      output. Setting IP_TRANSPARENT requires NET_ADMIN capability.
9004 #.  http://lwn.net/Articles/252545/
9005 #. type: Plain text
9006 #: build/C/man7/ip.7:764
9007 msgid ""
9008 "Setting this boolean option enables transparent proxying on this socket.  "
9009 "This socket option allows the calling application to bind to a nonlocal IP "
9010 "address and operate both as a client and a server with the foreign address "
9011 "as the local endpoint.  NOTE: this requires that routing be set up in a way "
9012 "that packets going to the foreign address are routed through the TProxy "
9013 "box.  Enabling this socket option requires superuser privileges (the "
9014 "B<CAP_NET_ADMIN> capability)."
9015 msgstr ""
9016
9017 #. type: Plain text
9018 #: build/C/man7/ip.7:767
9019 msgid ""
9020 "TProxy redirection with the iptables TPROXY target also requires that this "
9021 "option be set on the redirected socket."
9022 msgstr ""
9023
9024 #. type: TP
9025 #: build/C/man7/ip.7:767
9026 #, no-wrap
9027 msgid "B<IP_TTL> (since Linux 1.0)"
9028 msgstr ""
9029
9030 #.  FIXME Document IP_XFRM_POLICY
9031 #.  Since Linux 2.5.48
9032 #.  Needs CAP_NET_ADMIN
9033 #. type: Plain text
9034 #: build/C/man7/ip.7:774
9035 msgid ""
9036 "Set or retrieve the current time-to-live field that is used in every packet "
9037 "sent from this socket."
9038 msgstr ""
9039
9040 #.  FIXME As at 2.6.12, 14 Jun 2005, the following are undocumented:
9041 #.      ip_queue_maxlen
9042 #.      ip_conntrack_max
9043 #. type: Plain text
9044 #: build/C/man7/ip.7:790
9045 msgid ""
9046 "The IP protocol supports a set of I</proc> interfaces to configure some "
9047 "global parameters.  The parameters can be accessed by reading or writing "
9048 "files in the directory I</proc/sys/net/ipv4/>.  Interfaces described as "
9049 "I<Boolean> take an integer value, with a nonzero value (\"true\") meaning "
9050 "that the corresponding option is enabled, and a zero value (\"false\")  "
9051 "meaning that the option is disabled."
9052 msgstr ""
9053
9054 #. type: TP
9055 #: build/C/man7/ip.7:790
9056 #, no-wrap
9057 msgid "I<ip_always_defrag> (Boolean; since Linux 2.2.13)"
9058 msgstr ""
9059
9060 #. type: Plain text
9061 #: build/C/man7/ip.7:796
9062 msgid ""
9063 "[New with kernel 2.2.13; in earlier kernel versions this feature was "
9064 "controlled at compile time by the B<CONFIG_IP_ALWAYS_DEFRAG> option; this "
9065 "option is not present in 2.4.x and later]"
9066 msgstr ""
9067
9068 #. type: Plain text
9069 #: build/C/man7/ip.7:803
9070 msgid ""
9071 "When this boolean flag is enabled (not equal 0), incoming fragments (parts "
9072 "of IP packets that arose when some host between origin and destination "
9073 "decided that the packets were too large and cut them into pieces) will be "
9074 "reassembled (defragmented) before being processed, even if they are about to "
9075 "be forwarded."
9076 msgstr ""
9077
9078 #. type: Plain text
9079 #: build/C/man7/ip.7:810
9080 msgid ""
9081 "Only enable if running either a firewall that is the sole link to your "
9082 "network or a transparent proxy; never ever use it for a normal router or "
9083 "host.  Otherwise fragmented communication can be disturbed if the fragments "
9084 "travel over different links.  Defragmentation also has a large memory and "
9085 "CPU time cost."
9086 msgstr ""
9087
9088 #. type: Plain text
9089 #: build/C/man7/ip.7:814
9090 msgid ""
9091 "This is automagically turned on when masquerading or transparent proxying "
9092 "are configured."
9093 msgstr ""
9094
9095 #. type: TP
9096 #: build/C/man7/ip.7:814
9097 #, no-wrap
9098 msgid "I<ip_autoconfig> (since Linux 2.2 to 2.6.17)"
9099 msgstr ""
9100
9101 #.  Precisely: since 2.1.68
9102 #.  FIXME document ip_autoconfig
9103 #. type: Plain text
9104 #: build/C/man7/ip.7:820
9105 msgid "Not documented."
9106 msgstr ""
9107
9108 #. type: TP
9109 #: build/C/man7/ip.7:820
9110 #, no-wrap
9111 msgid "I<ip_default_ttl> (integer; default: 64; since Linux 2.2)"
9112 msgstr ""
9113
9114 #.  Precisely: 2.1.15
9115 #. type: Plain text
9116 #: build/C/man7/ip.7:828
9117 msgid ""
9118 "Set the default time-to-live value of outgoing packets.  This can be changed "
9119 "per socket with the B<IP_TTL> option."
9120 msgstr ""
9121
9122 #. type: TP
9123 #: build/C/man7/ip.7:828
9124 #, no-wrap
9125 msgid "I<ip_dynaddr> (Boolean; default: disabled; since Linux 2.0.31)"
9126 msgstr ""
9127
9128 #. type: Plain text
9129 #: build/C/man7/ip.7:835
9130 msgid ""
9131 "Enable dynamic socket address and masquerading entry rewriting on interface "
9132 "address change.  This is useful for dialup interface with changing IP "
9133 "addresses.  0 means no rewriting, 1 turns it on and 2 enables verbose mode."
9134 msgstr ""
9135
9136 #. type: TP
9137 #: build/C/man7/ip.7:835
9138 #, no-wrap
9139 msgid "I<ip_forward> (Boolean; default: disabled; since Linux 1.2)"
9140 msgstr ""
9141
9142 #. type: Plain text
9143 #: build/C/man7/ip.7:840
9144 msgid ""
9145 "Enable IP forwarding with a boolean flag.  IP forwarding can be also set on "
9146 "a per-interface basis."
9147 msgstr ""
9148
9149 #. type: TP
9150 #: build/C/man7/ip.7:840
9151 #, no-wrap
9152 msgid "I<ip_local_port_range> (since Linux 2.2)"
9153 msgstr ""
9154
9155 #.  Precisely: since 2.1.68
9156 #. type: Plain text
9157 #: build/C/man7/ip.7:854
9158 msgid ""
9159 "Contains two integers that define the default local port range allocated to "
9160 "sockets.  Allocation starts with the first number and ends with the second "
9161 "number.  Note that these should not conflict with the ports used by "
9162 "masquerading (although the case is handled).  Also arbitrary choices may "
9163 "cause problems with some firewall packet filters that make assumptions about "
9164 "the local ports in use.  First number should be at least greater than 1024, "
9165 "or better, greater than 4096, to avoid clashes with well known ports and to "
9166 "minimize firewall problems."
9167 msgstr ""
9168
9169 #. type: TP
9170 #: build/C/man7/ip.7:854
9171 #, no-wrap
9172 msgid "I<ip_no_pmtu_disc> (Boolean; default: disabled; since Linux 2.2)"
9173 msgstr ""
9174
9175 #.  Precisely: 2.1.15
9176 #
9177 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
9178 #. type: Plain text
9179 #: build/C/man7/ip.7:866
9180 msgid ""
9181 "If enabled, don't do Path MTU Discovery for TCP sockets by default.  Path "
9182 "MTU discovery may fail if misconfigured firewalls (that drop all ICMP "
9183 "packets) or misconfigured interfaces (e.g., a point-to-point link where the "
9184 "both ends don't agree on the MTU) are on the path.  It is better to fix the "
9185 "broken routers on the path than to turn off Path MTU Discovery globally, "
9186 "because not doing it incurs a high cost to the network."
9187 msgstr ""
9188
9189 #. type: TP
9190 #: build/C/man7/ip.7:866
9191 #, no-wrap
9192 msgid "I<ip_nonlocal_bind> (Boolean; default: disabled; since Linux 2.4)"
9193 msgstr ""
9194
9195 #.  Precisely: patch-2.4.0-test10
9196 #
9197 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
9198 #. type: Plain text
9199 #: build/C/man7/ip.7:875
9200 msgid ""
9201 "If set, allows processes to B<bind>(2)  to nonlocal IP addresses, which can "
9202 "be quite useful, but may break some applications."
9203 msgstr ""
9204
9205 #. type: TP
9206 #: build/C/man7/ip.7:875
9207 #, no-wrap
9208 msgid "I<ip6frag_time> (integer; default: 30)"
9209 msgstr ""
9210
9211 #
9212 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
9213 #. type: Plain text
9214 #: build/C/man7/ip.7:880
9215 msgid "Time in seconds to keep an IPv6 fragment in memory."
9216 msgstr ""
9217
9218 #. type: TP
9219 #: build/C/man7/ip.7:880
9220 #, no-wrap
9221 msgid "I<ip6frag_secret_interval> (integer; default: 600)"
9222 msgstr ""
9223
9224 #. type: Plain text
9225 #: build/C/man7/ip.7:884
9226 msgid ""
9227 "Regeneration interval (in seconds) of the hash secret (or lifetime for the "
9228 "hash secret) for IPv6 fragments."
9229 msgstr ""
9230
9231 #. type: TP
9232 #: build/C/man7/ip.7:884
9233 #, no-wrap
9234 msgid "I<ipfrag_high_thresh> (integer), I<ipfrag_low_thresh> (integer)"
9235 msgstr ""
9236
9237 #. type: Plain text
9238 #: build/C/man7/ip.7:891
9239 msgid ""
9240 "If the amount of queued IP fragments reaches I<ipfrag_high_thresh>, the "
9241 "queue is pruned down to I<ipfrag_low_thresh>.  Contains an integer with the "
9242 "number of bytes."
9243 msgstr ""
9244
9245 #. type: TP
9246 #: build/C/man7/ip.7:891
9247 #, no-wrap
9248 msgid "I<neigh/*>"
9249 msgstr ""
9250
9251 #.  FIXME Document the conf/*/* interfaces
9252 #.  FIXME Document the route/* interfaces
9253 #.  FIXME document them all
9254 #. type: Plain text
9255 #: build/C/man7/ip.7:898
9256 msgid "See B<arp>(7)."
9257 msgstr ""
9258
9259 #.  2006-04-02, mtk
9260 #.  commented out the following because ipchains is obsolete
9261 #.  .PP
9262 #.  The ioctls to configure firewalling are documented in
9263 #.  .BR ipfw (4)
9264 #.  from the
9265 #.  .B ipchains
9266 #.  package.
9267 #. type: Plain text
9268 #: build/C/man7/ip.7:911
9269 msgid "All ioctls described in B<socket>(7)  apply to B<ip>."
9270 msgstr ""
9271
9272 #.  FIXME Add a discussion of multicasting
9273 #. type: Plain text
9274 #: build/C/man7/ip.7:915
9275 msgid ""
9276 "Ioctls to configure generic device parameters are described in "
9277 "B<netdevice>(7)."
9278 msgstr ""
9279
9280 #. type: Plain text
9281 #: build/C/man7/ip.7:935
9282 msgid ""
9283 "The user tried to execute an operation without the necessary permissions.  "
9284 "These include: sending a packet to a broadcast address without having the "
9285 "B<SO_BROADCAST> flag set; sending a packet via a I<prohibit> route; "
9286 "modifying firewall settings without superuser privileges (the "
9287 "B<CAP_NET_ADMIN> capability); binding to a privileged port without superuser "
9288 "privileges (the B<CAP_NET_BIND_SERVICE> capability)."
9289 msgstr ""
9290
9291 #. type: Plain text
9292 #: build/C/man7/ip.7:948
9293 msgid "An connection operation on a nonblocking socket is already in progress."
9294 msgstr ""
9295
9296 #. type: Plain text
9297 #: build/C/man7/ip.7:957
9298 msgid ""
9299 "No valid routing table entry matches the destination address.  This error "
9300 "can be caused by a ICMP message from a remote router or for the local "
9301 "routing table."
9302 msgstr ""
9303
9304 #. type: Plain text
9305 #: build/C/man7/ip.7:963
9306 msgid ""
9307 "Invalid argument passed.  For send operations this can be caused by sending "
9308 "to a I<blackhole> route."
9309 msgstr ""
9310
9311 #. type: Plain text
9312 #: build/C/man7/ip.7:970
9313 msgid "Datagram is bigger than an MTU on the path and it cannot be fragmented."
9314 msgstr ""
9315
9316 #. type: TP
9317 #: build/C/man7/ip.7:970
9318 #, no-wrap
9319 msgid "B<ENOBUFS>, B<ENOMEM>"
9320 msgstr ""
9321
9322 #. type: Plain text
9323 #: build/C/man7/ip.7:975
9324 msgid ""
9325 "Not enough free memory.  This often means that the memory allocation is "
9326 "limited by the socket buffer limits, not by the system memory, but this is "
9327 "not 100% consistent."
9328 msgstr ""
9329
9330 #. type: Plain text
9331 #: build/C/man7/ip.7:993
9332 msgid ""
9333 "User doesn't have permission to set high priority, change configuration, or "
9334 "send signals to the requested process or group."
9335 msgstr ""
9336
9337 #. type: Plain text
9338 #: build/C/man7/ip.7:999
9339 msgid "The socket is not configured or an unknown socket type was requested."
9340 msgstr ""
9341
9342 #. type: Plain text
9343 #: build/C/man7/ip.7:1006
9344 msgid ""
9345 "Other errors may be generated by the overlaying protocols; see B<tcp>(7), "
9346 "B<raw>(7), B<udp>(7)  and B<socket>(7)."
9347 msgstr ""
9348
9349 #.  IP_PASSSEC is Linux-specific
9350 #.  IP_XFRM_POLICY is Linux-specific
9351 #.  IP_IPSEC_POLICY is a nonstandard extension, also present on some BSDs
9352 #. type: Plain text
9353 #: build/C/man7/ip.7:1020
9354 msgid ""
9355 "B<IP_FREEBIND>, B<IP_MTU>, B<IP_MTU_DISCOVER>, B<IP_RECVORIGDSTADDR>, "
9356 "B<IP_PKTINFO>, B<IP_RECVERR>, B<IP_ROUTER_ALERT>, and B<IP_TRANSPARENT> are "
9357 "Linux-specific."
9358 msgstr ""
9359
9360 #. type: Plain text
9361 #: build/C/man7/ip.7:1029
9362 msgid ""
9363 "Be very careful with the B<SO_BROADCAST> option - it is not privileged in "
9364 "Linux.  It is easy to overload the network with careless broadcasts.  For "
9365 "new application protocols it is better to use a multicast group instead of "
9366 "broadcasting.  Broadcasting is discouraged."
9367 msgstr ""
9368
9369 #. type: Plain text
9370 #: build/C/man7/ip.7:1039
9371 msgid ""
9372 "Some other BSD sockets implementations provide B<IP_RCVDSTADDR> and "
9373 "B<IP_RECVIF> socket options to get the destination address and the interface "
9374 "of received datagrams.  Linux has the more general B<IP_PKTINFO> for the "
9375 "same task."
9376 msgstr ""
9377
9378 #. type: Plain text
9379 #: build/C/man7/ip.7:1048
9380 msgid ""
9381 "Some BSD sockets implementations also provide an B<IP_RECVTTL> option, but "
9382 "an ancillary message with type B<IP_RECVTTL> is passed with the incoming "
9383 "packet.  This is different from the B<IP_TTL> option used in Linux."
9384 msgstr ""
9385
9386 #. type: Plain text
9387 #: build/C/man7/ip.7:1054
9388 msgid ""
9389 "Using B<SOL_IP> socket options level isn't portable, BSD-based stacks use "
9390 "B<IPPROTO_IP> level."
9391 msgstr ""
9392
9393 #. type: Plain text
9394 #: build/C/man7/ip.7:1067
9395 msgid ""
9396 "For compatibility with Linux 2.0, the obsolete B<socket(AF_INET, "
9397 "SOCK_PACKET, >I<protocol>B<)> syntax is still supported to open a "
9398 "B<packet>(7)  socket.  This is deprecated and should be replaced by "
9399 "B<socket(AF_PACKET, SOCK_RAW, >I<protocol>B<)> instead.  The main difference "
9400 "is the new I<sockaddr_ll> address structure for generic link layer "
9401 "information instead of the old B<sockaddr_pkt>."
9402 msgstr ""
9403
9404 #. type: Plain text
9405 #: build/C/man7/ip.7:1072
9406 msgid ""
9407 "The ioctls to configure IP-specific interface options and ARP tables are not "
9408 "described."
9409 msgstr ""
9410
9411 #. type: Plain text
9412 #: build/C/man7/ip.7:1076
9413 msgid ""
9414 "Some versions of glibc forget to declare I<in_pktinfo>.  Workaround "
9415 "currently is to copy it into your program from this man page."
9416 msgstr ""
9417
9418 #.  .SH AUTHORS
9419 #.  This man page was written by Andi Kleen.
9420 #. type: Plain text
9421 #: build/C/man7/ip.7:1086
9422 msgid ""
9423 "Receiving the original destination address with B<MSG_ERRQUEUE> in "
9424 "I<msg_name> by B<recvmsg>(2)  does not work in some 2.2 kernels."
9425 msgstr ""
9426
9427 #. type: Plain text
9428 #: build/C/man7/ip.7:1097
9429 msgid ""
9430 "B<recvmsg>(2), B<sendmsg>(2), B<byteorder>(3), B<ipfw>(4), "
9431 "B<capabilities>(7), B<netlink>(7), B<raw>(7), B<socket>(7), B<tcp>(7), "
9432 "B<udp>(7)"
9433 msgstr ""
9434
9435 #. type: Plain text
9436 #: build/C/man7/ip.7:1099
9437 msgid "RFC\\ 791 for the original IP specification."
9438 msgstr ""
9439
9440 #. type: Plain text
9441 #: build/C/man7/ip.7:1101
9442 msgid "RFC\\ 1122 for the IPv4 host requirements."
9443 msgstr ""
9444
9445 #.  FIXME autobind INADDR REUSEADDR
9446 #. type: Plain text
9447 #: build/C/man7/ip.7:1104
9448 msgid "RFC\\ 1812 for the IPv4 router requirements."
9449 msgstr ""
9450
9451 #. type: TH
9452 #: build/C/man7/ipv6.7:7
9453 #, no-wrap
9454 msgid "IPV6"
9455 msgstr ""
9456
9457 #. type: Plain text
9458 #: build/C/man7/ipv6.7:10
9459 msgid "ipv6 - Linux IPv6 protocol implementation"
9460 msgstr ""
9461
9462 #. type: Plain text
9463 #: build/C/man7/ipv6.7:16
9464 msgid "I<tcp6_socket>B< = socket(AF_INET6, SOCK_STREAM, 0);>"
9465 msgstr ""
9466
9467 #. type: Plain text
9468 #: build/C/man7/ipv6.7:18
9469 msgid "I<raw6_socket>B< = socket(AF_INET6, SOCK_RAW, >I<protocol>B<);>"
9470 msgstr ""
9471
9472 #. type: Plain text
9473 #: build/C/man7/ipv6.7:20
9474 msgid "I<udp6_socket>B< = socket(AF_INET6, SOCK_DGRAM, >I<protocol>B<);>"
9475 msgstr ""
9476
9477 #. type: Plain text
9478 #: build/C/man7/ipv6.7:27
9479 msgid ""
9480 "Linux 2.2 optionally implements the Internet Protocol, version 6.  This man "
9481 "page contains a description of the IPv6 basic API as implemented by the "
9482 "Linux kernel and glibc 2.1.  The interface is based on the BSD sockets "
9483 "interface; see B<socket>(7)."
9484 msgstr ""
9485
9486 #. type: Plain text
9487 #: build/C/man7/ipv6.7:32
9488 msgid ""
9489 "The IPv6 API aims to be mostly compatible with the IPv4 API (see B<ip>(7)).  "
9490 "Only differences are described in this man page."
9491 msgstr ""
9492
9493 #. type: Plain text
9494 #: build/C/man7/ipv6.7:44
9495 msgid ""
9496 "To bind an B<AF_INET6> socket to any process, the local address should be "
9497 "copied from the I<in6addr_any> variable which has I<in6_addr> type.  In "
9498 "static initializations, B<IN6ADDR_ANY_INIT> may also be used, which expands "
9499 "to a constant expression.  Both of them are in network byte order."
9500 msgstr ""
9501
9502 #. type: Plain text
9503 #: build/C/man7/ipv6.7:51
9504 msgid ""
9505 "The IPv6 loopback address (::1) is available in the global "
9506 "I<in6addr_loopback> variable.  For initializations, B<IN6ADDR_LOOPBACK_INIT> "
9507 "should be used."
9508 msgstr ""
9509
9510 #. type: Plain text
9511 #: build/C/man7/ipv6.7:58
9512 msgid ""
9513 "IPv4 connections can be handled with the v6 API by using the v4-mapped-on-v6 "
9514 "address type; thus a program only needs to support this API type to support "
9515 "both protocols.  This is handled transparently by the address handling "
9516 "functions in the C library."
9517 msgstr ""
9518
9519 #. type: Plain text
9520 #: build/C/man7/ipv6.7:63
9521 msgid ""
9522 "IPv4 and IPv6 share the local port space.  When you get an IPv4 connection "
9523 "or packet to a IPv6 socket, its source address will be mapped to v6 and it "
9524 "will be mapped to v6."
9525 msgstr ""
9526
9527 #. type: Plain text
9528 #: build/C/man7/ipv6.7:73
9529 #, no-wrap
9530 msgid ""
9531 "struct sockaddr_in6 {\n"
9532 "    sa_family_t     sin6_family;   /* AF_INET6 */\n"
9533 "    in_port_t       sin6_port;     /* port number */\n"
9534 "    uint32_t        sin6_flowinfo; /* IPv6 flow information */\n"
9535 "    struct in6_addr sin6_addr;     /* IPv6 address */\n"
9536 "    uint32_t        sin6_scope_id; /* Scope ID (new in 2.4) */\n"
9537 "};\n"
9538 msgstr ""
9539
9540 #. type: Plain text
9541 #: build/C/man7/ipv6.7:77
9542 #, no-wrap
9543 msgid ""
9544 "struct in6_addr {\n"
9545 "    unsigned char   s6_addr[16];   /* IPv6 address */\n"
9546 "};\n"
9547 msgstr ""
9548
9549 #. type: Plain text
9550 #: build/C/man7/ipv6.7:99
9551 msgid ""
9552 "I<sin6_family> is always set to B<AF_INET6>; I<sin6_port> is the protocol "
9553 "port (see I<sin_port> in B<ip>(7)); I<sin6_flowinfo> is the IPv6 flow "
9554 "identifier; I<sin6_addr> is the 128-bit IPv6 address.  I<sin6_scope_id> is "
9555 "an ID depending on the scope of the address.  It is new in Linux 2.4.  Linux "
9556 "only supports it for link-local addresses, in that case I<sin6_scope_id> "
9557 "contains the interface index (see B<netdevice>(7))"
9558 msgstr ""
9559
9560 #. type: Plain text
9561 #: build/C/man7/ipv6.7:105
9562 msgid ""
9563 "IPv6 supports several address types: unicast to address a single host, "
9564 "multicast to address a group of hosts, anycast to address the nearest member "
9565 "of a group of hosts (not implemented in Linux), IPv4-on-IPv6 to address a "
9566 "IPv4 host, and other reserved address types."
9567 msgstr ""
9568
9569 #. type: Plain text
9570 #: build/C/man7/ipv6.7:111
9571 msgid ""
9572 "The address notation for IPv6 is a group of 8 4-digit hexadecimal numbers, "
9573 "separated with a \\(aq:\\(aq.  \\&\"::\" stands for a string of 0 bits.  "
9574 "Special addresses are ::1 for loopback and ::FFFF:E<lt>IPv4 addressE<gt> for "
9575 "IPv4-mapped-on-IPv6."
9576 msgstr ""
9577
9578 #. type: Plain text
9579 #: build/C/man7/ipv6.7:113
9580 msgid "The port space of IPv6 is shared with IPv4."
9581 msgstr ""
9582
9583 #. type: Plain text
9584 #: build/C/man7/ipv6.7:121
9585 msgid ""
9586 "IPv6 supports some protocol-specific socket options that can be set with "
9587 "B<setsockopt>(2)  and read with B<getsockopt>(2).  The socket option level "
9588 "for IPv6 is B<IPPROTO_IPV6>.  A boolean integer flag is zero when it is "
9589 "false, otherwise true."
9590 msgstr ""
9591
9592 #. type: TP
9593 #: build/C/man7/ipv6.7:121
9594 #, no-wrap
9595 msgid "B<IPV6_ADDRFORM>"
9596 msgstr ""
9597
9598 #. type: Plain text
9599 #: build/C/man7/ipv6.7:135
9600 msgid ""
9601 "Turn an B<AF_INET6> socket into a socket of a different address family.  "
9602 "Only B<AF_INET> is currently supported for that.  It is only allowed for "
9603 "IPv6 sockets that are connected and bound to a v4-mapped-on-v6 address.  The "
9604 "argument is a pointer to an integer containing B<AF_INET>.  This is useful "
9605 "to pass v4-mapped sockets as file descriptors to programs that don't know "
9606 "how to deal with the IPv6 API."
9607 msgstr ""
9608
9609 #. type: TP
9610 #: build/C/man7/ipv6.7:135
9611 #, no-wrap
9612 msgid "B<IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP>"
9613 msgstr ""
9614
9615 #.  FIXME IPV6_CHECKSUM is not documented, and probably should be
9616 #.  FIXME IPV6_JOIN_ANYCAST is not documented, and probably should be
9617 #.  FIXME IPV6_LEAVE_ANYCAST is not documented, and probably should be
9618 #.  FIXME IPV6_RECVPKTINFO is not documented, and probably should be
9619 #.  FIXME IPV6_2292PKTINFO is not documented, and probably should be
9620 #.  FIXME there are probably many other IPV6_* socket options that
9621 #.  should be documented
9622 #. type: Plain text
9623 #: build/C/man7/ipv6.7:148
9624 msgid ""
9625 "Control membership in multicast groups.  Argument is a pointer to a I<struct "
9626 "ipv6_mreq> structure."
9627 msgstr ""
9628
9629 #. type: TP
9630 #: build/C/man7/ipv6.7:148
9631 #, no-wrap
9632 msgid "B<IPV6_MTU>"
9633 msgstr ""
9634
9635 #. type: Plain text
9636 #: build/C/man7/ipv6.7:154
9637 msgid ""
9638 "Set the MTU to be used for the socket.  The MTU is limited by the device MTU "
9639 "or the path MTU when path MTU discovery is enabled.  Argument is a pointer "
9640 "to integer."
9641 msgstr ""
9642
9643 #. type: TP
9644 #: build/C/man7/ipv6.7:154
9645 #, no-wrap
9646 msgid "B<IPV6_MTU_DISCOVER>"
9647 msgstr ""
9648
9649 #. type: Plain text
9650 #: build/C/man7/ipv6.7:162
9651 msgid ""
9652 "Control path-MTU discovery on the socket.  See B<IP_MTU_DISCOVER> in "
9653 "B<ip>(7)  for details."
9654 msgstr ""
9655
9656 #. type: TP
9657 #: build/C/man7/ipv6.7:162
9658 #, no-wrap
9659 msgid "B<IPV6_MULTICAST_HOPS>"
9660 msgstr ""
9661
9662 #. type: Plain text
9663 #: build/C/man7/ipv6.7:169
9664 msgid ""
9665 "Set the multicast hop limit for the socket.  Argument is a pointer to an "
9666 "integer.  -1 in the value means use the route default, otherwise it should "
9667 "be between 0 and 255."
9668 msgstr ""
9669
9670 #. type: TP
9671 #: build/C/man7/ipv6.7:169
9672 #, no-wrap
9673 msgid "B<IPV6_MULTICAST_IF>"
9674 msgstr ""
9675
9676 #. type: Plain text
9677 #: build/C/man7/ipv6.7:181
9678 msgid ""
9679 "Set the device for outgoing multicast packets on the socket.  This is only "
9680 "allowed for B<SOCK_DGRAM> and B<SOCK_RAW> socket.  The argument is a pointer "
9681 "to an interface index (see B<netdevice>(7))  in an integer."
9682 msgstr ""
9683
9684 #. type: TP
9685 #: build/C/man7/ipv6.7:181
9686 #, no-wrap
9687 msgid "B<IPV6_MULTICAST_LOOP>"
9688 msgstr ""
9689
9690 #. type: Plain text
9691 #: build/C/man7/ipv6.7:185
9692 msgid ""
9693 "Control whether the socket sees multicast packets that it has send itself.  "
9694 "Argument is a pointer to boolean."
9695 msgstr ""
9696
9697 #. type: TP
9698 #: build/C/man7/ipv6.7:185
9699 #, no-wrap
9700 msgid "B<IPV6_PKTINFO>"
9701 msgstr ""
9702
9703 #. type: Plain text
9704 #: build/C/man7/ipv6.7:196
9705 msgid ""
9706 "Set delivery of the B<IPV6_PKTINFO> control message on incoming datagrams.  "
9707 "Only allowed for B<SOCK_DGRAM> or B<SOCK_RAW> sockets.  Argument is a "
9708 "pointer to a boolean value in an integer."
9709 msgstr ""
9710
9711 #. type: Plain text
9712 #: build/C/man7/ipv6.7:199
9713 msgid ""
9714 "B<IPV6_RTHDR, IPV6_AUTHHDR, IPV6_DSTOPTS, IPV6_HOPOPTS, IPV6_FLOWINFO, "
9715 "IPV6_HOPLIMIT>"
9716 msgstr ""
9717
9718 #. type: Plain text
9719 #: build/C/man7/ipv6.7:224
9720 msgid ""
9721 "Set delivery of control messages for incoming datagrams containing extension "
9722 "headers from the received packet.  B<IPV6_RTHDR> delivers the routing "
9723 "header, B<IPV6_AUTHHDR> delivers the authentication header, B<IPV6_DSTOPTS> "
9724 "delivers the destination options, B<IPV6_HOPOPTS> delivers the hop options, "
9725 "B<IPV6_FLOWINFO> delivers an integer containing the flow ID, "
9726 "B<IPV6_HOPLIMIT> delivers an integer containing the hop count of the "
9727 "packet.  The control messages have the same type as the socket option.  All "
9728 "these header options can also be set for outgoing packets by putting the "
9729 "appropriate control message into the control buffer of B<sendmsg>(2).  Only "
9730 "allowed for B<SOCK_DGRAM> or B<SOCK_RAW> sockets.  Argument is a pointer to "
9731 "a boolean value."
9732 msgstr ""
9733
9734 #. type: TP
9735 #: build/C/man7/ipv6.7:224
9736 #, no-wrap
9737 msgid "B<IPV6_RECVERR>"
9738 msgstr ""
9739
9740 #. type: Plain text
9741 #: build/C/man7/ipv6.7:233
9742 msgid ""
9743 "Control receiving of asynchronous error options.  See B<IP_RECVERR> in "
9744 "B<ip>(7)  for details.  Argument is a pointer to boolean."
9745 msgstr ""
9746
9747 #. type: TP
9748 #: build/C/man7/ipv6.7:233
9749 #, no-wrap
9750 msgid "B<IPV6_ROUTER_ALERT>"
9751 msgstr ""
9752
9753 #. type: Plain text
9754 #: build/C/man7/ipv6.7:246
9755 msgid ""
9756 "Pass forwarded packets containing a router alert hop-by-hop option to this "
9757 "socket.  Only allowed for SOCK_RAW sockets.  The tapped packets are not "
9758 "forwarded by the kernel, it is the user's responsibility to send them out "
9759 "again.  Argument is a pointer to an integer.  A positive integer indicates a "
9760 "router alert option value to intercept.  Packets carrying a router alert "
9761 "option with a value field containing this integer will be delivered to the "
9762 "socket.  A negative integer disables delivery of packets with router alert "
9763 "options to this socket."
9764 msgstr ""
9765
9766 #. type: TP
9767 #: build/C/man7/ipv6.7:246
9768 #, no-wrap
9769 msgid "B<IPV6_UNICAST_HOPS>"
9770 msgstr ""
9771
9772 #. type: Plain text
9773 #: build/C/man7/ipv6.7:252
9774 msgid ""
9775 "Set the unicast hop limit for the socket.  Argument is a pointer to an "
9776 "integer.  -1 in the value means use the route default, otherwise it should "
9777 "be between 0 and 255."
9778 msgstr ""
9779
9780 #. type: TP
9781 #: build/C/man7/ipv6.7:252
9782 #, no-wrap
9783 msgid "B<IPV6_V6ONLY> (since Linux 2.4.21 and 2.6)"
9784 msgstr ""
9785
9786 #.  See RFC 3493
9787 #. type: Plain text
9788 #: build/C/man7/ipv6.7:259
9789 msgid ""
9790 "If this flag is set to true (nonzero), then the socket is restricted to "
9791 "sending and receiving IPv6 packets only.  In this case, an IPv4 and an IPv6 "
9792 "application can bind to a single port at the same time."
9793 msgstr ""
9794
9795 #. type: Plain text
9796 #: build/C/man7/ipv6.7:263
9797 msgid ""
9798 "If this flag is set to false (zero), then the socket can be used to send and "
9799 "receive packets to and from an IPv6 address or an IPv4-mapped IPv6 address."
9800 msgstr ""
9801
9802 #. type: Plain text
9803 #: build/C/man7/ipv6.7:265
9804 msgid "The argument is a pointer to a boolean value in an integer."
9805 msgstr ""
9806
9807 #.  FLOWLABEL_MGR, FLOWINFO_SEND
9808 #. type: Plain text
9809 #: build/C/man7/ipv6.7:270
9810 msgid ""
9811 "The default value for this flag is defined by the contents of the file "
9812 "I</proc/sys/net/ipv6/bindv6only>.  The default value for that file is 0 "
9813 "(false)."
9814 msgstr ""
9815
9816 #. type: Plain text
9817 #: build/C/man7/ipv6.7:282
9818 msgid ""
9819 "The user tried to B<bind>(2)  to a link-local IPv6 address, but the "
9820 "I<sin6_scope_id> in the supplied I<sockaddr_in6> structure is not a valid "
9821 "interface index."
9822 msgstr ""
9823
9824 #. type: Plain text
9825 #: build/C/man7/ipv6.7:287
9826 msgid ""
9827 "The older I<libinet6> libc5 based IPv6 API implementation for Linux is not "
9828 "described here and may vary in details."
9829 msgstr ""
9830
9831 #. type: Plain text
9832 #: build/C/man7/ipv6.7:303
9833 msgid ""
9834 "Linux 2.4 will break binary compatibility for the I<sockaddr_in6> for 64-bit "
9835 "hosts by changing the alignment of I<in6_addr> and adding an additional "
9836 "I<sin6_scope_id> field.  The kernel interfaces stay compatible, but a "
9837 "program including I<sockaddr_in6> or I<in6_addr> into other structures may "
9838 "not be.  This is not a problem for 32-bit hosts like i386."
9839 msgstr ""
9840
9841 #. type: Plain text
9842 #: build/C/man7/ipv6.7:311
9843 msgid ""
9844 "The I<sin6_flowinfo> field is new in Linux 2.4.  It is transparently "
9845 "passed/read by the kernel when the passed address length contains it.  Some "
9846 "programs that pass a longer address buffer and then check the outgoing "
9847 "address length may break."
9848 msgstr ""
9849
9850 #. type: Plain text
9851 #: build/C/man7/ipv6.7:321
9852 msgid ""
9853 "The I<sockaddr_in6> structure is bigger than the generic I<sockaddr>.  "
9854 "Programs that assume that all address types can be stored safely in a "
9855 "I<struct sockaddr> need to be changed to use I<struct sockaddr_storage> for "
9856 "that instead."
9857 msgstr ""
9858
9859 #. type: Plain text
9860 #: build/C/man7/ipv6.7:326
9861 msgid ""
9862 "The IPv6 extended API as in RFC\\ 2292 is currently only partly implemented; "
9863 "although the 2.2 kernel has near complete support for receiving options, the "
9864 "macros for generating IPv6 options are missing in glibc 2.1."
9865 msgstr ""
9866
9867 #. type: Plain text
9868 #: build/C/man7/ipv6.7:328
9869 msgid "IPSec support for EH and AH headers is missing."
9870 msgstr ""
9871
9872 #. type: Plain text
9873 #: build/C/man7/ipv6.7:330
9874 msgid "Flow label management is not complete and not documented here."
9875 msgstr ""
9876
9877 #. type: Plain text
9878 #: build/C/man7/ipv6.7:332
9879 msgid "This man page is not complete."
9880 msgstr ""
9881
9882 #. type: Plain text
9883 #: build/C/man7/ipv6.7:335
9884 msgid "B<cmsg>(3), B<ip>(7)"
9885 msgstr ""
9886
9887 #. type: Plain text
9888 #: build/C/man7/ipv6.7:338
9889 msgid "RFC\\ 2553: IPv6 BASIC API.  Linux tries to be compliant to this."
9890 msgstr ""
9891
9892 #. type: Plain text
9893 #: build/C/man7/ipv6.7:340
9894 msgid "RFC\\ 2460: IPv6 specification."
9895 msgstr ""
9896
9897 #. type: TH
9898 #: build/C/man7/netdevice.7:15
9899 #, no-wrap
9900 msgid "NETDEVICE"
9901 msgstr ""
9902
9903 #. type: TH
9904 #: build/C/man7/netdevice.7:15
9905 #, no-wrap
9906 msgid "2012-04-26"
9907 msgstr ""
9908
9909 #. type: Plain text
9910 #: build/C/man7/netdevice.7:18
9911 msgid "netdevice - Low level access to Linux network devices"
9912 msgstr ""
9913
9914 #. type: Plain text
9915 #: build/C/man7/netdevice.7:20
9916 msgid "B<#include E<lt>sys/ioctl.hE<gt>>"
9917 msgstr ""
9918
9919 #. type: Plain text
9920 #: build/C/man7/netdevice.7:22
9921 msgid "B<#include E<lt>net/if.hE<gt>>"
9922 msgstr ""
9923
9924 #. type: Plain text
9925 #: build/C/man7/netdevice.7:25
9926 msgid ""
9927 "This man page describes the sockets interface which is used to configure "
9928 "network devices."
9929 msgstr ""
9930
9931 #. type: Plain text
9932 #: build/C/man7/netdevice.7:32
9933 msgid ""
9934 "Linux supports some standard ioctls to configure network devices.  They can "
9935 "be used on any socket's file descriptor regardless of the family or type.  "
9936 "They pass an I<ifreq> structure:"
9937 msgstr ""
9938
9939 #. type: Plain text
9940 #: build/C/man7/netdevice.7:53
9941 #, no-wrap
9942 msgid ""
9943 "struct ifreq {\n"
9944 "    char ifr_name[IFNAMSIZ]; /* Interface name */\n"
9945 "    union {\n"
9946 "        struct sockaddr ifr_addr;\n"
9947 "        struct sockaddr ifr_dstaddr;\n"
9948 "        struct sockaddr ifr_broadaddr;\n"
9949 "        struct sockaddr ifr_netmask;\n"
9950 "        struct sockaddr ifr_hwaddr;\n"
9951 "        short           ifr_flags;\n"
9952 "        int             ifr_ifindex;\n"
9953 "        int             ifr_metric;\n"
9954 "        int             ifr_mtu;\n"
9955 "        struct ifmap    ifr_map;\n"
9956 "        char            ifr_slave[IFNAMSIZ];\n"
9957 "        char            ifr_newname[IFNAMSIZ];\n"
9958 "        char           *ifr_data;\n"
9959 "    };\n"
9960 "};\n"
9961 msgstr ""
9962
9963 #. type: Plain text
9964 #: build/C/man7/netdevice.7:61
9965 #, no-wrap
9966 msgid ""
9967 "struct ifconf {\n"
9968 "    int                 ifc_len; /* size of buffer */\n"
9969 "    union {\n"
9970 "        char           *ifc_buf; /* buffer address */\n"
9971 "        struct ifreq   *ifc_req; /* array of structures */\n"
9972 "    };\n"
9973 "};\n"
9974 msgstr ""
9975
9976 #. type: Plain text
9977 #: build/C/man7/netdevice.7:69
9978 msgid ""
9979 "Normally, the user specifies which device to affect by setting I<ifr_name> "
9980 "to the name of the interface.  All other members of the structure may share "
9981 "memory."
9982 msgstr ""
9983
9984 #. type: Plain text
9985 #: build/C/man7/netdevice.7:77
9986 msgid ""
9987 "If an ioctl is marked as privileged then using it requires an effective user "
9988 "ID of 0 or the B<CAP_NET_ADMIN> capability.  If this is not the case "
9989 "B<EPERM> will be returned."
9990 msgstr ""
9991
9992 #. type: TP
9993 #: build/C/man7/netdevice.7:77
9994 #, no-wrap
9995 msgid "B<SIOCGIFNAME>"
9996 msgstr ""
9997
9998 #. type: Plain text
9999 #: build/C/man7/netdevice.7:85
10000 msgid ""
10001 "Given the I<ifr_ifindex>, return the name of the interface in I<ifr_name>.  "
10002 "This is the only ioctl which returns its result in I<ifr_name>."
10003 msgstr ""
10004
10005 #. type: TP
10006 #: build/C/man7/netdevice.7:85
10007 #, no-wrap
10008 msgid "B<SIOCGIFINDEX>"
10009 msgstr ""
10010
10011 #. type: Plain text
10012 #: build/C/man7/netdevice.7:89
10013 msgid "Retrieve the interface index of the interface into I<ifr_ifindex>."
10014 msgstr ""
10015
10016 #. type: TP
10017 #: build/C/man7/netdevice.7:89
10018 #, no-wrap
10019 msgid "B<SIOCGIFFLAGS>, B<SIOCSIFFLAGS>"
10020 msgstr ""
10021
10022 #. type: Plain text
10023 #: build/C/man7/netdevice.7:94
10024 msgid ""
10025 "Get or set the active flag word of the device.  I<ifr_flags> contains a bit "
10026 "mask of the following values:"
10027 msgstr ""
10028
10029 #. type: tbl table
10030 #: build/C/man7/netdevice.7:98
10031 #, no-wrap
10032 msgid "Device flags\n"
10033 msgstr ""
10034
10035 #. type: tbl table
10036 #: build/C/man7/netdevice.7:99
10037 #, no-wrap
10038 msgid "IFF_UP:Interface is running.\n"
10039 msgstr ""
10040
10041 #. type: tbl table
10042 #: build/C/man7/netdevice.7:100
10043 #, no-wrap
10044 msgid "IFF_BROADCAST:Valid broadcast address set.\n"
10045 msgstr ""
10046
10047 #. type: tbl table
10048 #: build/C/man7/netdevice.7:101
10049 #, no-wrap
10050 msgid "IFF_DEBUG:Internal debugging flag.\n"
10051 msgstr ""
10052
10053 #. type: tbl table
10054 #: build/C/man7/netdevice.7:102
10055 #, no-wrap
10056 msgid "IFF_LOOPBACK:Interface is a loopback interface.\n"
10057 msgstr ""
10058
10059 #. type: tbl table
10060 #: build/C/man7/netdevice.7:103
10061 #, no-wrap
10062 msgid "IFF_POINTOPOINT:Interface is a point-to-point link.\n"
10063 msgstr ""
10064
10065 #. type: tbl table
10066 #: build/C/man7/netdevice.7:104
10067 #, no-wrap
10068 msgid "IFF_RUNNING:Resources allocated.\n"
10069 msgstr ""
10070
10071 #. type: tbl table
10072 #: build/C/man7/netdevice.7:105
10073 #, no-wrap
10074 msgid "IFF_NOARP:No arp protocol, L2 destination address not set.\n"
10075 msgstr ""
10076
10077 #. type: tbl table
10078 #: build/C/man7/netdevice.7:106
10079 #, no-wrap
10080 msgid "IFF_PROMISC:Interface is in promiscuous mode.\n"
10081 msgstr ""
10082
10083 #. type: tbl table
10084 #: build/C/man7/netdevice.7:107
10085 #, no-wrap
10086 msgid "IFF_NOTRAILERS:Avoid use of trailers.\n"
10087 msgstr ""
10088
10089 #. type: tbl table
10090 #: build/C/man7/netdevice.7:108
10091 #, no-wrap
10092 msgid "IFF_ALLMULTI:Receive all multicast packets.\n"
10093 msgstr ""
10094
10095 #. type: tbl table
10096 #: build/C/man7/netdevice.7:109
10097 #, no-wrap
10098 msgid "IFF_MASTER:Master of a load balancing bundle.\n"
10099 msgstr ""
10100
10101 #. type: tbl table
10102 #: build/C/man7/netdevice.7:110
10103 #, no-wrap
10104 msgid "IFF_SLAVE:Slave of a load balancing bundle.\n"
10105 msgstr ""
10106
10107 #. type: tbl table
10108 #: build/C/man7/netdevice.7:111
10109 #, no-wrap
10110 msgid "IFF_MULTICAST:Supports multicast\n"
10111 msgstr ""
10112
10113 #. type: tbl table
10114 #: build/C/man7/netdevice.7:112
10115 #, no-wrap
10116 msgid "IFF_PORTSEL:Is able to select media type via ifmap.\n"
10117 msgstr ""
10118
10119 #. type: tbl table
10120 #: build/C/man7/netdevice.7:113
10121 #, no-wrap
10122 msgid "IFF_AUTOMEDIA:Auto media selection active.\n"
10123 msgstr ""
10124
10125 #. type: tbl table
10126 #: build/C/man7/netdevice.7:114
10127 #, no-wrap
10128 msgid "IFF_DYNAMIC:T{\n"
10129 msgstr ""
10130
10131 #. type: tbl table
10132 #: build/C/man7/netdevice.7:115
10133 #, no-wrap
10134 msgid "The addresses are lost when the interface goes down.\n"
10135 msgstr ""
10136
10137 #. type: tbl table
10138 #: build/C/man7/netdevice.7:116
10139 #, no-wrap
10140 msgid "T}\n"
10141 msgstr ""
10142
10143 #. type: tbl table
10144 #: build/C/man7/netdevice.7:117
10145 #, no-wrap
10146 msgid "IFF_LOWER_UP:Driver signals L1 up (since Linux 2.6.17)\n"
10147 msgstr ""
10148
10149 #. type: tbl table
10150 #: build/C/man7/netdevice.7:118
10151 #, no-wrap
10152 msgid "IFF_DORMANT:Driver signals dormant (since Linux 2.6.17)\n"
10153 msgstr ""
10154
10155 #. type: tbl table
10156 #: build/C/man7/netdevice.7:119
10157 #, no-wrap
10158 msgid "IFF_ECHO:Echo sent packets (since Linux 2.6.25)\n"
10159 msgstr ""
10160
10161 #. type: Plain text
10162 #: build/C/man7/netdevice.7:125
10163 msgid ""
10164 "Setting the active flag word is a privileged operation, but any process may "
10165 "read it."
10166 msgstr ""
10167
10168 #. type: TP
10169 #: build/C/man7/netdevice.7:125
10170 #, no-wrap
10171 msgid "B<SIOCGIFPFLAGS>, B<SIOCSIFPFLAGS>"
10172 msgstr ""
10173
10174 #. type: Plain text
10175 #: build/C/man7/netdevice.7:130
10176 msgid ""
10177 "Get or set extended (private) flags for the device.  I<ifr_flags> contains a "
10178 "bit mask of the following values:"
10179 msgstr ""
10180
10181 #. type: tbl table
10182 #: build/C/man7/netdevice.7:134
10183 #, no-wrap
10184 msgid "Private flags\n"
10185 msgstr ""
10186
10187 #. type: tbl table
10188 #: build/C/man7/netdevice.7:135
10189 #, no-wrap
10190 msgid "IFF_802_1Q_VLAN:Interface is 802.1Q VLAN device.\n"
10191 msgstr ""
10192
10193 #. type: tbl table
10194 #: build/C/man7/netdevice.7:136
10195 #, no-wrap
10196 msgid "IFF_EBRIDGE:Interface is Ethernet bridging device.\n"
10197 msgstr ""
10198
10199 #. type: tbl table
10200 #: build/C/man7/netdevice.7:137
10201 #, no-wrap
10202 msgid "IFF_SLAVE_INACTIVE:Interface is inactive bonding slave.\n"
10203 msgstr ""
10204
10205 #. type: tbl table
10206 #: build/C/man7/netdevice.7:138
10207 #, no-wrap
10208 msgid "IFF_MASTER_8023AD:Interface is 802.3ad bonding master.\n"
10209 msgstr ""
10210
10211 #. type: tbl table
10212 #: build/C/man7/netdevice.7:139
10213 #, no-wrap
10214 msgid "IFF_MASTER_ALB:Interface is balanced-alb bonding master.\n"
10215 msgstr ""
10216
10217 #. type: tbl table
10218 #: build/C/man7/netdevice.7:140
10219 #, no-wrap
10220 msgid "IFF_BONDING:Interface is a bonding master or slave.\n"
10221 msgstr ""
10222
10223 #. type: tbl table
10224 #: build/C/man7/netdevice.7:141
10225 #, no-wrap
10226 msgid "IFF_SLAVE_NEEDARP:Interface needs ARPs for validation.\n"
10227 msgstr ""
10228
10229 #. type: tbl table
10230 #: build/C/man7/netdevice.7:142
10231 #, no-wrap
10232 msgid "IFF_ISATAP:Interface is RFC4214 ISATAP interface.\n"
10233 msgstr ""
10234
10235 #. type: Plain text
10236 #: build/C/man7/netdevice.7:146
10237 msgid "Setting the extended (private) interface flags is a privileged operation."
10238 msgstr ""
10239
10240 #. type: TP
10241 #: build/C/man7/netdevice.7:146
10242 #, no-wrap
10243 msgid "B<SIOCGIFADDR>, B<SIOCSIFADDR>"
10244 msgstr ""
10245
10246 #. type: Plain text
10247 #: build/C/man7/netdevice.7:154
10248 msgid ""
10249 "Get or set the address of the device using I<ifr_addr>.  Setting the "
10250 "interface address is a privileged operation.  For compatibility, only "
10251 "B<AF_INET> addresses are accepted or returned."
10252 msgstr ""
10253
10254 #. type: TP
10255 #: build/C/man7/netdevice.7:154
10256 #, no-wrap
10257 msgid "B<SIOCGIFDSTADDR>, B<SIOCSIFDSTADDR>"
10258 msgstr ""
10259
10260 #. type: Plain text
10261 #: build/C/man7/netdevice.7:162
10262 msgid ""
10263 "Get or set the destination address of a point-to-point device using "
10264 "I<ifr_dstaddr>.  For compatibility, only B<AF_INET> addresses are accepted "
10265 "or returned.  Setting the destination address is a privileged operation."
10266 msgstr ""
10267
10268 #. type: TP
10269 #: build/C/man7/netdevice.7:162
10270 #, no-wrap
10271 msgid "B<SIOCGIFBRDADDR>, B<SIOCSIFBRDADDR>"
10272 msgstr ""
10273
10274 #. type: Plain text
10275 #: build/C/man7/netdevice.7:170
10276 msgid ""
10277 "Get or set the broadcast address for a device using I<ifr_brdaddr>.  For "
10278 "compatibility, only B<AF_INET> addresses are accepted or returned.  Setting "
10279 "the broadcast address is a privileged operation."
10280 msgstr ""
10281
10282 #. type: TP
10283 #: build/C/man7/netdevice.7:170
10284 #, no-wrap
10285 msgid "B<SIOCGIFNETMASK>, B<SIOCSIFNETMASK>"
10286 msgstr ""
10287
10288 #. type: Plain text
10289 #: build/C/man7/netdevice.7:178
10290 msgid ""
10291 "Get or set the network mask for a device using I<ifr_netmask>.  For "
10292 "compatibility, only B<AF_INET> addresses are accepted or returned.  Setting "
10293 "the network mask is a privileged operation."
10294 msgstr ""
10295
10296 #. type: TP
10297 #: build/C/man7/netdevice.7:178
10298 #, no-wrap
10299 msgid "B<SIOCGIFMETRIC>, B<SIOCSIFMETRIC>"
10300 msgstr ""
10301
10302 #. type: Plain text
10303 #: build/C/man7/netdevice.7:187
10304 msgid ""
10305 "Get or set the metric of the device using I<ifr_metric>.  This is currently "
10306 "not implemented; it sets I<ifr_metric> to 0 if you attempt to read it and "
10307 "returns B<EOPNOTSUPP> if you attempt to set it."
10308 msgstr ""
10309
10310 #. type: TP
10311 #: build/C/man7/netdevice.7:187
10312 #, no-wrap
10313 msgid "B<SIOCGIFMTU>, B<SIOCSIFMTU>"
10314 msgstr ""
10315
10316 #. type: Plain text
10317 #: build/C/man7/netdevice.7:194
10318 msgid ""
10319 "Get or set the MTU (Maximum Transfer Unit) of a device using I<ifr_mtu>.  "
10320 "Setting the MTU is a privileged operation.  Setting the MTU to too small "
10321 "values may cause kernel crashes."
10322 msgstr ""
10323
10324 #. type: TP
10325 #: build/C/man7/netdevice.7:194
10326 #, no-wrap
10327 msgid "B<SIOCGIFHWADDR>, B<SIOCSIFHWADDR>"
10328 msgstr ""
10329
10330 #. type: Plain text
10331 #: build/C/man7/netdevice.7:205
10332 msgid ""
10333 "Get or set the hardware address of a device using I<ifr_hwaddr>.  The "
10334 "hardware address is specified in a struct I<sockaddr>.  I<sa_family> "
10335 "contains the ARPHRD_* device type, I<sa_data> the L2 hardware address "
10336 "starting from byte 0.  Setting the hardware address is a privileged "
10337 "operation."
10338 msgstr ""
10339
10340 #. type: TP
10341 #: build/C/man7/netdevice.7:205
10342 #, no-wrap
10343 msgid "B<SIOCSIFHWBROADCAST>"
10344 msgstr ""
10345
10346 #. type: Plain text
10347 #: build/C/man7/netdevice.7:210
10348 msgid ""
10349 "Set the hardware broadcast address of a device from I<ifr_hwaddr>.  This is "
10350 "a privileged operation."
10351 msgstr ""
10352
10353 #. type: TP
10354 #: build/C/man7/netdevice.7:210
10355 #, no-wrap
10356 msgid "B<SIOCGIFMAP>, B<SIOCSIFMAP>"
10357 msgstr ""
10358
10359 #. type: Plain text
10360 #: build/C/man7/netdevice.7:215
10361 msgid ""
10362 "Get or set the interface's hardware parameters using I<ifr_map>.  Setting "
10363 "the parameters is a privileged operation."
10364 msgstr ""
10365
10366 #. type: Plain text
10367 #: build/C/man7/netdevice.7:226
10368 #, no-wrap
10369 msgid ""
10370 "struct ifmap {\n"
10371 "    unsigned long   mem_start;\n"
10372 "    unsigned long   mem_end;\n"
10373 "    unsigned short  base_addr;\n"
10374 "    unsigned char   irq;\n"
10375 "    unsigned char   dma;\n"
10376 "    unsigned char   port;\n"
10377 "};\n"
10378 msgstr ""
10379
10380 #. type: Plain text
10381 #: build/C/man7/netdevice.7:231
10382 msgid ""
10383 "The interpretation of the ifmap structure depends on the device driver and "
10384 "the architecture."
10385 msgstr ""
10386
10387 #. type: TP
10388 #: build/C/man7/netdevice.7:231
10389 #, no-wrap
10390 msgid "B<SIOCADDMULTI>, B<SIOCDELMULTI>"
10391 msgstr ""
10392
10393 #. type: Plain text
10394 #: build/C/man7/netdevice.7:240
10395 msgid ""
10396 "Add an address to or delete an address from the device's link layer "
10397 "multicast filters using I<ifr_hwaddr>.  These are privileged operations.  "
10398 "See also B<packet>(7)  for an alternative."
10399 msgstr ""
10400
10401 #. type: TP
10402 #: build/C/man7/netdevice.7:240
10403 #, no-wrap
10404 msgid "B<SIOCGIFTXQLEN>, B<SIOCSIFTXQLEN>"
10405 msgstr ""
10406
10407 #. type: Plain text
10408 #: build/C/man7/netdevice.7:245
10409 msgid ""
10410 "Get or set the transmit queue length of a device using I<ifr_qlen>.  Setting "
10411 "the transmit queue length is a privileged operation."
10412 msgstr ""
10413
10414 #. type: TP
10415 #: build/C/man7/netdevice.7:245
10416 #, no-wrap
10417 msgid "B<SIOCSIFNAME>"
10418 msgstr ""
10419
10420 #. type: Plain text
10421 #: build/C/man7/netdevice.7:254
10422 msgid ""
10423 "Changes the name of the interface specified in I<ifr_name> to "
10424 "I<ifr_newname>.  This is a privileged operation.  It is only allowed when "
10425 "the interface is not up."
10426 msgstr ""
10427
10428 #. type: TP
10429 #: build/C/man7/netdevice.7:254
10430 #, no-wrap
10431 msgid "B<SIOCGIFCONF>"
10432 msgstr ""
10433
10434 #.  Slaving isn't supported in 2.2
10435 #.  .
10436 #.  .TP
10437 #.  .BR SIOCGIFSLAVE ", " SIOCSIFSLAVE
10438 #.  Get or set the slave device using
10439 #.  .IR ifr_slave .
10440 #.  Setting the slave device is a privileged operation.
10441 #.  .PP
10442 #.  FIXME add amateur radio stuff.
10443 #. type: Plain text
10444 #: build/C/man7/netdevice.7:294
10445 msgid ""
10446 "Return a list of interface (transport layer) addresses.  This currently "
10447 "means only addresses of the B<AF_INET> (IPv4) family for compatibility.  The "
10448 "user passes a I<ifconf> structure as argument to the ioctl.  It contains a "
10449 "pointer to an array of I<ifreq> structures in I<ifc_req> and its length in "
10450 "bytes in I<ifc_len>.  The kernel fills the ifreqs with all current L3 "
10451 "interface addresses that are running: I<ifr_name> contains the interface "
10452 "name (eth0:1 etc.), I<ifr_addr> the address.  The kernel returns with the "
10453 "actual length in I<ifc_len>.  If I<ifc_len> is equal to the original length "
10454 "the buffer probably has overflowed and you should retry with a bigger buffer "
10455 "to get all addresses.  When no error occurs the ioctl returns 0; otherwise "
10456 "-1.  Overflow is not an error."
10457 msgstr ""
10458
10459 #. type: Plain text
10460 #: build/C/man7/netdevice.7:300
10461 msgid ""
10462 "Most protocols support their own ioctls to configure protocol-specific "
10463 "interface options.  See the protocol man pages for a description.  For "
10464 "configuring IP addresses see B<ip>(7)."
10465 msgstr ""
10466
10467 #. type: Plain text
10468 #: build/C/man7/netdevice.7:303
10469 msgid ""
10470 "In addition some devices support private ioctls.  These are not described "
10471 "here."
10472 msgstr ""
10473
10474 #. type: Plain text
10475 #: build/C/man7/netdevice.7:311
10476 msgid ""
10477 "Strictly speaking, B<SIOCGIFCONF> and the other ioctls that only accept or "
10478 "return B<AF_INET> socket addresses, are IP specific and belong in B<ip>(7)."
10479 msgstr ""
10480
10481 #. type: Plain text
10482 #: build/C/man7/netdevice.7:316
10483 msgid ""
10484 "The names of interfaces with no addresses or that don't have the "
10485 "B<IFF_RUNNING> flag set can be found via I</proc/net/dev>."
10486 msgstr ""
10487
10488 #. type: Plain text
10489 #: build/C/man7/netdevice.7:321
10490 msgid ""
10491 "Local IPv6 IP addresses can be found via I</proc/net> or via "
10492 "B<rtnetlink>(7)."
10493 msgstr ""
10494
10495 #. type: Plain text
10496 #: build/C/man7/netdevice.7:327
10497 msgid ""
10498 "glibc 2.1 is missing the I<ifr_newname> macro in I<E<lt>net/if.hE<gt>>.  Add "
10499 "the following to your program as a workaround:"
10500 msgstr ""
10501
10502 #. type: Plain text
10503 #: build/C/man7/netdevice.7:333
10504 #, no-wrap
10505 msgid ""
10506 "#ifndef ifr_newname\n"
10507 "#define ifr_newname     ifr_ifru.ifru_slave\n"
10508 "#endif\n"
10509 msgstr ""
10510
10511 #. type: Plain text
10512 #: build/C/man7/netdevice.7:340
10513 msgid "B<proc>(5), B<capabilities>(7), B<ip>(7), B<rtnetlink>(7)"
10514 msgstr ""
10515
10516 #. type: TH
10517 #: build/C/man5/networks.5:24
10518 #, no-wrap
10519 msgid "NETWORKS"
10520 msgstr ""
10521
10522 #. type: TH
10523 #: build/C/man5/networks.5:24
10524 #, no-wrap
10525 msgid "2008-09-04"
10526 msgstr ""
10527
10528 #. type: TH
10529 #: build/C/man5/networks.5:24
10530 #, no-wrap
10531 msgid "GNU/Linux"
10532 msgstr ""
10533
10534 #. type: Plain text
10535 #: build/C/man5/networks.5:27
10536 msgid "networks - network name information"
10537 msgstr ""
10538
10539 #. type: Plain text
10540 #: build/C/man5/networks.5:33
10541 msgid ""
10542 "The file I</etc/networks> is a plain ASCII file that describes known DARPA "
10543 "networks and symbolic names for these networks.  Each line represents a "
10544 "network and has the following structure:"
10545 msgstr ""
10546
10547 #. type: Plain text
10548 #: build/C/man5/networks.5:36
10549 msgid "I<name number aliases ...>"
10550 msgstr ""
10551
10552 #. type: Plain text
10553 #: build/C/man5/networks.5:44
10554 msgid ""
10555 "where the fields are delimited by spaces or tabs.  Empty lines are ignored.  "
10556 "The hash character (B<#>) indicates the start of a comment: this character, "
10557 "and the remaining characters up to the end of the current line, are ignored "
10558 "by library functions that process the file."
10559 msgstr ""
10560
10561 #. type: Plain text
10562 #: build/C/man5/networks.5:46 build/C/man5/protocols.5:58
10563 msgid "The field descriptions are:"
10564 msgstr ""
10565
10566 #. type: TP
10567 #: build/C/man5/networks.5:47
10568 #, no-wrap
10569 msgid "I<name>"
10570 msgstr ""
10571
10572 #. type: Plain text
10573 #: build/C/man5/networks.5:52
10574 msgid ""
10575 "The symbolic name for the network.  Network names can contain any printable "
10576 "characters execept white-space characters or the comment character."
10577 msgstr ""
10578
10579 #. type: TP
10580 #: build/C/man5/networks.5:52 build/C/man5/protocols.5:66
10581 #, no-wrap
10582 msgid "I<number>"
10583 msgstr ""
10584
10585 #. type: Plain text
10586 #: build/C/man5/networks.5:57
10587 msgid ""
10588 "The official number for this network in numbers-and-dots notation (see "
10589 "B<inet>(3)).  The trailing \".0\" (for the host component of the network "
10590 "address) may be omitted."
10591 msgstr ""
10592
10593 #. type: TP
10594 #: build/C/man5/networks.5:57 build/C/man5/protocols.5:70 build/C/man5/services.5:120
10595 #, no-wrap
10596 msgid "I<aliases>"
10597 msgstr ""
10598
10599 #. type: Plain text
10600 #: build/C/man5/networks.5:60
10601 msgid "Optional aliases for the network."
10602 msgstr ""
10603
10604 #. type: Plain text
10605 #: build/C/man5/networks.5:69
10606 msgid ""
10607 "This file is read by the B<route>(8)  and B<netstat>(8)  utilities.  Only "
10608 "Class A, B or C networks are supported, partitioned networks (i.e., "
10609 "network/26 or network/28) are not supported by this facility."
10610 msgstr ""
10611
10612 #. type: Plain text
10613 #: build/C/man5/networks.5:73
10614 msgid "The networks definition file."
10615 msgstr ""
10616
10617 #. type: Plain text
10618 #: build/C/man5/networks.5:79
10619 msgid ""
10620 "B<getnetbyaddr>(3), B<getnetbyname>(3), B<getnetent>(3), B<netstat>(8), "
10621 "B<route>(8)"
10622 msgstr ""
10623
10624 #. type: TH
10625 #: build/C/man8/nscd.8:23
10626 #, no-wrap
10627 msgid "NSCD"
10628 msgstr ""
10629
10630 #. type: Plain text
10631 #: build/C/man8/nscd.8:26
10632 msgid "nscd - name service cache daemon"
10633 msgstr ""
10634
10635 #. type: Plain text
10636 #: build/C/man8/nscd.8:34
10637 msgid ""
10638 "Nscd is a daemon that provides a cache for the most common name service "
10639 "requests.  The default configuration file, I</etc/nscd.conf>, determines the "
10640 "behavior of the cache daemon.  See B<nscd.conf>(5)."
10641 msgstr ""
10642
10643 #. type: Plain text
10644 #: build/C/man8/nscd.8:47
10645 msgid ""
10646 "Nscd provides caching for accesses of the B<passwd>(5), B<group>(5), and "
10647 "B<hosts>(5)  databases through standard libc interfaces, such as "
10648 "B<getpwnam>(3), B<getpwuid>(3), B<getgrnam>(3), B<getgrgid>(3), "
10649 "B<gethostbyname>(3), and others."
10650 msgstr ""
10651
10652 #. type: Plain text
10653 #: build/C/man8/nscd.8:56
10654 msgid ""
10655 "There are two caches for each database: a positive one for items found, and "
10656 "a negative one for items not found.  Each cache has a separate TTL "
10657 "(time-to-live)  period for its data.  Note that the shadow file is "
10658 "specifically not cached.  B<getspnam>(3)  calls remain uncached as a result."
10659 msgstr ""
10660
10661 #. type: SH
10662 #: build/C/man8/nscd.8:56
10663 #, no-wrap
10664 msgid "OPTIONS"
10665 msgstr ""
10666
10667 #. type: TP
10668 #: build/C/man8/nscd.8:57
10669 #, no-wrap
10670 msgid "B<--help>"
10671 msgstr ""
10672
10673 #. type: Plain text
10674 #: build/C/man8/nscd.8:60
10675 msgid "will give you a list with all options and what they do."
10676 msgstr ""
10677
10678 #. type: Plain text
10679 #: build/C/man8/nscd.8:83
10680 msgid ""
10681 "The daemon will try to watch for changes in configuration files appropriate "
10682 "for each database (e.g., I</etc/passwd> for the I<passwd> database or "
10683 "I</etc/hosts> and I</etc/resolv.conf> for the I<hosts> database), and flush "
10684 "the cache when these are changed.  However, this will happen only after a "
10685 "short delay (unless the B<inotify>(7)  mechanism is available and glibc 2.9 "
10686 "or later is available), and this auto-detection does not cover configuration "
10687 "files required by nonstandard NSS modules, if any are specified in "
10688 "I</etc/nsswitch.conf>.  In that case, you need to run the following command "
10689 "after changing the configuration file of the database so that B<nscd> "
10690 "invalidates its cache:"
10691 msgstr ""
10692
10693 #. type: Plain text
10694 #: build/C/man8/nscd.8:85
10695 #, no-wrap
10696 msgid "    $ B<nscd -i> I<E<lt>databaseE<gt>>\n"
10697 msgstr ""
10698
10699 #.  .SH AUTHOR
10700 #.  .B nscd
10701 #.  was written by Thorsten Kukuk and Ulrich Drepper.
10702 #. type: Plain text
10703 #: build/C/man8/nscd.8:91
10704 msgid "B<nscd.conf>(5), B<nsswitch.conf>(5)"
10705 msgstr ""
10706
10707 #. type: TH
10708 #: build/C/man5/nscd.conf.5:20
10709 #, no-wrap
10710 msgid "NSCD.CONF"
10711 msgstr ""
10712
10713 #. type: TH
10714 #: build/C/man5/nscd.conf.5:20
10715 #, no-wrap
10716 msgid "1999-10-01"
10717 msgstr ""
10718
10719 #. type: Plain text
10720 #: build/C/man5/nscd.conf.5:23
10721 msgid "/etc/nscd.conf - name service cache daemon configuration file"
10722 msgstr ""
10723
10724 #. type: Plain text
10725 #: build/C/man5/nscd.conf.5:36
10726 msgid ""
10727 "The file I</etc/nscd.conf> is read from B<nscd>(8)  at startup.  Each line "
10728 "specifies either an attribute and a value, or an attribute, service, and a "
10729 "value.  Fields are separated either by SPACE or TAB characters.  A "
10730 "\\(aq#\\(aq (number sign) indicates the beginning of a comment; following "
10731 "characters, up to the end of the line, are not interpreted by nscd."
10732 msgstr ""
10733
10734 #. type: Plain text
10735 #: build/C/man5/nscd.conf.5:38
10736 msgid "Valid services are I<passwd>, I<group>, or I<hosts>."
10737 msgstr ""
10738
10739 #. type: Plain text
10740 #: build/C/man5/nscd.conf.5:41
10741 msgid "B<logfile> I<debug-file-name>"
10742 msgstr ""
10743
10744 #. type: Plain text
10745 #: build/C/man5/nscd.conf.5:43
10746 msgid "Specifies name of the file to which debug info should be written."
10747 msgstr ""
10748
10749 #. type: Plain text
10750 #: build/C/man5/nscd.conf.5:47
10751 msgid "B<debug-level> I<value>"
10752 msgstr ""
10753
10754 #. type: Plain text
10755 #: build/C/man5/nscd.conf.5:49
10756 msgid "Sets the desired debug level."
10757 msgstr ""
10758
10759 #. type: Plain text
10760 #: build/C/man5/nscd.conf.5:53
10761 msgid "B<threads> I<number>"
10762 msgstr ""
10763
10764 #. type: Plain text
10765 #: build/C/man5/nscd.conf.5:57
10766 msgid ""
10767 "This is the number of threads that are started to wait for requests.  At "
10768 "least five threads will always be created."
10769 msgstr ""
10770
10771 #. type: Plain text
10772 #: build/C/man5/nscd.conf.5:61
10773 msgid "B<server-user> I<user>"
10774 msgstr ""
10775
10776 #. type: Plain text
10777 #: build/C/man5/nscd.conf.5:65
10778 msgid ""
10779 "If this option is set, nscd will run as this user and not as root.  If a "
10780 "separate cache for every user is used (-S parameter), this option is "
10781 "ignored."
10782 msgstr ""
10783
10784 #. type: Plain text
10785 #: build/C/man5/nscd.conf.5:70
10786 msgid "B<enable-cache> I<service> I<E<lt>yes|noE<gt>>"
10787 msgstr ""
10788
10789 #. type: Plain text
10790 #: build/C/man5/nscd.conf.5:74
10791 msgid "Enables or disables the specified I<service> cache."
10792 msgstr ""
10793
10794 #. type: Plain text
10795 #: build/C/man5/nscd.conf.5:79
10796 msgid "B<positive-time-to-live> I<service> I<value>"
10797 msgstr ""
10798
10799 #. type: Plain text
10800 #: build/C/man5/nscd.conf.5:87
10801 msgid ""
10802 "Sets the TTL (time-to-live) for positive entries (successful queries)  in "
10803 "the specified cache for I<service>.  I<Value> is in seconds.  Larger values "
10804 "increase cache hit rates and reduce mean response times, but increase "
10805 "problems with cache coherence."
10806 msgstr ""
10807
10808 #. type: Plain text
10809 #: build/C/man5/nscd.conf.5:92
10810 msgid "B<negative-time-to-live> I<service> I<value>"
10811 msgstr ""
10812
10813 #. type: Plain text
10814 #: build/C/man5/nscd.conf.5:102
10815 msgid ""
10816 "Sets the TTL (time-to-live) for negative entries (unsuccessful queries)  in "
10817 "the specified cache for I<service>.  I<Value> is in seconds.  Can result in "
10818 "significant performance improvements if there are several files owned by "
10819 "UIDs (user IDs) not in system databases (for example untarring the linux "
10820 "kernel sources as root); should be kept small to reduce cache coherency "
10821 "problems."
10822 msgstr ""
10823
10824 #. type: Plain text
10825 #: build/C/man5/nscd.conf.5:107
10826 msgid "B<suggested-size> I<service> I<value>"
10827 msgstr ""
10828
10829 #. type: Plain text
10830 #: build/C/man5/nscd.conf.5:111
10831 msgid ""
10832 "This is the internal hash table size, I<value> should remain a prime number "
10833 "for optimum efficiency."
10834 msgstr ""
10835
10836 #. type: Plain text
10837 #: build/C/man5/nscd.conf.5:116
10838 msgid "B<check-files> I<service> I<E<lt>yes|noE<gt>>"
10839 msgstr ""
10840
10841 #. type: Plain text
10842 #: build/C/man5/nscd.conf.5:125
10843 msgid ""
10844 "Enables or disables checking the file belonging to the specified I<service> "
10845 "for changes.  The files are I</etc/passwd>, I</etc/group>, and "
10846 "I</etc/hosts>."
10847 msgstr ""
10848
10849 #. type: Plain text
10850 #: build/C/man5/nscd.conf.5:129
10851 msgid "B<max-threads> I<threads>"
10852 msgstr ""
10853
10854 #. type: Plain text
10855 #: build/C/man5/nscd.conf.5:131
10856 msgid "Specifies the maximum number of threads to be started."
10857 msgstr ""
10858
10859 #. type: Plain text
10860 #: build/C/man5/nscd.conf.5:135
10861 msgid "B<stat-user> I<username>"
10862 msgstr ""
10863
10864 #. type: Plain text
10865 #: build/C/man5/nscd.conf.5:137
10866 msgid "Specifies the user who is allowed to request statistics."
10867 msgstr ""
10868
10869 #. type: Plain text
10870 #: build/C/man5/nscd.conf.5:142
10871 msgid "B<reload-count> unlimited | I<number>"
10872 msgstr ""
10873
10874 #. type: Plain text
10875 #: build/C/man5/nscd.conf.5:146
10876 msgid ""
10877 "Limit on the number of times a cached entry gets reloaded without being used "
10878 "before it gets removed.  The default is 5."
10879 msgstr ""
10880
10881 #. type: Plain text
10882 #: build/C/man5/nscd.conf.5:150
10883 msgid "B<paranoia> I<E<lt>yes|noE<gt>>"
10884 msgstr ""
10885
10886 #. type: Plain text
10887 #: build/C/man5/nscd.conf.5:152
10888 msgid "Enabling paranoia mode causes nscd to restart itself periodically."
10889 msgstr ""
10890
10891 #. type: Plain text
10892 #: build/C/man5/nscd.conf.5:156
10893 msgid "B<restart-interval> I<time>"
10894 msgstr ""
10895
10896 #. type: Plain text
10897 #: build/C/man5/nscd.conf.5:163
10898 msgid ""
10899 "Sets the restart interval to I<time> seconds if periodic restart is enabled "
10900 "by enabling B<paranoia> mode."
10901 msgstr ""
10902
10903 #. type: Plain text
10904 #: build/C/man5/nscd.conf.5:168
10905 msgid "B<persistent> I<service> I<E<lt>yes|noE<gt>>"
10906 msgstr ""
10907
10908 #. type: Plain text
10909 #: build/C/man5/nscd.conf.5:174
10910 msgid ""
10911 "Keep the content of the cache for I<service> over server restarts; useful "
10912 "when B<paranoia> mode is set."
10913 msgstr ""
10914
10915 #. type: Plain text
10916 #: build/C/man5/nscd.conf.5:179
10917 msgid "B<shared> I<service> I<E<lt>yes|noE<gt>>"
10918 msgstr ""
10919
10920 #. type: Plain text
10921 #: build/C/man5/nscd.conf.5:185
10922 msgid ""
10923 "The memory mapping of the nscd databases for I<service> is shared with the "
10924 "clients so that they can directly search in them instead of having to ask "
10925 "the daemon over the socket each time a lookup is performed."
10926 msgstr ""
10927
10928 #.  .SH AUTHOR
10929 #.  .B nscd
10930 #.  was written by Thorsten Kukuk and Ulrich Drepper.
10931 #. type: Plain text
10932 #: build/C/man5/nscd.conf.5:191
10933 msgid "B<nscd>(8)"
10934 msgstr ""
10935
10936 #. type: TH
10937 #: build/C/man5/nsswitch.conf.5:24
10938 #, no-wrap
10939 msgid "NSSWITCH.CONF"
10940 msgstr ""
10941
10942 #. type: TH
10943 #: build/C/man5/nsswitch.conf.5:24
10944 #, no-wrap
10945 msgid "2012-04-14"
10946 msgstr ""
10947
10948 #. type: Plain text
10949 #: build/C/man5/nsswitch.conf.5:27
10950 msgid "nsswitch.conf - Name Service Switch configuration file"
10951 msgstr ""
10952
10953 #. type: Plain text
10954 #: build/C/man5/nsswitch.conf.5:35
10955 msgid ""
10956 "The Name Service Switch (NSS) configuration file, I</etc/nsswitch.conf>, is "
10957 "used by the GNU C Library to determine the sources from which to obtain "
10958 "name-service information in a range of categories, and in what order.  Each "
10959 "category of information is identified by a database name."
10960 msgstr ""
10961
10962 #. type: Plain text
10963 #: build/C/man5/nsswitch.conf.5:41
10964 msgid ""
10965 "The file is plain ASCII text, with columns separated by spaces or tab "
10966 "characters.  The first column specifies the database name.  The remaining "
10967 "columns describe the order of sources to query and a limited set of actions "
10968 "that can be performed by lookup result."
10969 msgstr ""
10970
10971 #. type: Plain text
10972 #: build/C/man5/nsswitch.conf.5:43
10973 msgid "The following databases are understood by the GNU C Library:"
10974 msgstr ""
10975
10976 #. type: Plain text
10977 #: build/C/man5/nsswitch.conf.5:48
10978 msgid "Mail aliases, used by B<getaliasent>(3)  and related functions."
10979 msgstr ""
10980
10981 #. type: Plain text
10982 #: build/C/man5/nsswitch.conf.5:51
10983 msgid "Ethernet numbers."
10984 msgstr ""
10985
10986 #. type: Plain text
10987 #: build/C/man5/nsswitch.conf.5:56
10988 msgid "Groups of users, used by B<getgrent>(3)  and related functions."
10989 msgstr ""
10990
10991 #. type: Plain text
10992 #: build/C/man5/nsswitch.conf.5:61
10993 msgid "Host names and numbers, used by B<gethostbyname>(3)  and related functions."
10994 msgstr ""
10995
10996 #. type: Plain text
10997 #: build/C/man5/nsswitch.conf.5:65
10998 msgid ""
10999 "Network-wide list of hosts and users, used for access rules.  C libraries "
11000 "before glibc 2.1 supported netgroups only over NIS."
11001 msgstr ""
11002
11003 #. type: Plain text
11004 #: build/C/man5/nsswitch.conf.5:70
11005 msgid "Network names and numbers, used by B<getnetent>(3)  and related functions."
11006 msgstr ""
11007
11008 #. type: Plain text
11009 #: build/C/man5/nsswitch.conf.5:75
11010 msgid "User passwords, used by B<getpwent>(3)  and related functions."
11011 msgstr ""
11012
11013 #. type: Plain text
11014 #: build/C/man5/nsswitch.conf.5:80
11015 msgid "Network protocols, used by B<getprotoent>(3)  and related functions."
11016 msgstr ""
11017
11018 #. type: TP
11019 #: build/C/man5/nsswitch.conf.5:80
11020 #, no-wrap
11021 msgid "B<publickey>"
11022 msgstr ""
11023
11024 #. type: Plain text
11025 #: build/C/man5/nsswitch.conf.5:83
11026 msgid "Public and secret keys for Secure_RPC used by NFS and NIS+."
11027 msgstr ""
11028
11029 #. type: Plain text
11030 #: build/C/man5/nsswitch.conf.5:88
11031 msgid ""
11032 "Remote procedure call names and numbers, used by B<getrpcbyname>(3)  and "
11033 "related functions."
11034 msgstr ""
11035
11036 #. type: Plain text
11037 #: build/C/man5/nsswitch.conf.5:93
11038 msgid "Network services, used by B<getservent>(3)  and related functions."
11039 msgstr ""
11040
11041 #. type: Plain text
11042 #: build/C/man5/nsswitch.conf.5:98
11043 msgid "Shadow user passwords, used by B<getspnam>(3)  and related functions."
11044 msgstr ""
11045
11046 #. type: Plain text
11047 #: build/C/man5/nsswitch.conf.5:102
11048 msgid "Here is an example I</etc/nsswitch.conf> file:"
11049 msgstr ""
11050
11051 #. type: TP
11052 #: build/C/man5/nsswitch.conf.5:105
11053 #, no-wrap
11054 msgid "passwd:"
11055 msgstr ""
11056
11057 #. type: Plain text
11058 #: build/C/man5/nsswitch.conf.5:108 build/C/man5/nsswitch.conf.5:111 build/C/man5/nsswitch.conf.5:114
11059 msgid "compat"
11060 msgstr ""
11061
11062 #. type: TP
11063 #: build/C/man5/nsswitch.conf.5:108
11064 #, no-wrap
11065 msgid "group:"
11066 msgstr ""
11067
11068 #. type: TP
11069 #: build/C/man5/nsswitch.conf.5:111
11070 #, no-wrap
11071 msgid "shadow:"
11072 msgstr ""
11073
11074 #. type: TP
11075 #: build/C/man5/nsswitch.conf.5:115
11076 #, no-wrap
11077 msgid "hosts:"
11078 msgstr ""
11079
11080 #. type: Plain text
11081 #: build/C/man5/nsswitch.conf.5:118
11082 msgid "dns [!UNAVAIL=return] files"
11083 msgstr ""
11084
11085 #. type: TP
11086 #: build/C/man5/nsswitch.conf.5:118
11087 #, no-wrap
11088 msgid "networks:"
11089 msgstr ""
11090
11091 #. type: Plain text
11092 #: build/C/man5/nsswitch.conf.5:121 build/C/man5/nsswitch.conf.5:124 build/C/man5/nsswitch.conf.5:127 build/C/man5/nsswitch.conf.5:130 build/C/man5/nsswitch.conf.5:133
11093 msgid "nis [NOTFOUND=return] files"
11094 msgstr ""
11095
11096 #. type: TP
11097 #: build/C/man5/nsswitch.conf.5:121
11098 #, no-wrap
11099 msgid "ethers:"
11100 msgstr ""
11101
11102 #. type: TP
11103 #: build/C/man5/nsswitch.conf.5:124
11104 #, no-wrap
11105 msgid "protocols:"
11106 msgstr ""
11107
11108 #. type: TP
11109 #: build/C/man5/nsswitch.conf.5:127
11110 #, no-wrap
11111 msgid "rpc:"
11112 msgstr ""
11113
11114 #. type: TP
11115 #: build/C/man5/nsswitch.conf.5:130
11116 #, no-wrap
11117 msgid "services:"
11118 msgstr ""
11119
11120 #. type: Plain text
11121 #: build/C/man5/nsswitch.conf.5:138
11122 msgid "The first column is the database name.  The remaining columns specify:"
11123 msgstr ""
11124
11125 #. type: Plain text
11126 #: build/C/man5/nsswitch.conf.5:142
11127 msgid ""
11128 "One or more service specifications e.g., \"files\", \"db\", or \"nis\".  The "
11129 "order of the services on the line determines the order in which those "
11130 "services will be queried, in turn, until a result is found."
11131 msgstr ""
11132
11133 #. type: Plain text
11134 #: build/C/man5/nsswitch.conf.5:145
11135 msgid ""
11136 "Optional actions to perform if a particular result is obtained from the "
11137 "preceding service, e.g., \"[NOTFOUND=return]\"."
11138 msgstr ""
11139
11140 #. type: Plain text
11141 #: build/C/man5/nsswitch.conf.5:172
11142 msgid ""
11143 "The service specifications supported on your system depend on the presence "
11144 "of shared libraries, and are therefore extensible.  Libraries called "
11145 "I</lib/libnss_SERVICE.so.>B<X> will provide the named I<SERVICE>.  On a "
11146 "standard installation, you can use \"files\", \"db\", \"nis\", and "
11147 "\"nisplus\".  For the B<hosts> database, you can additionally specify "
11148 "\"dns\".  For the B<passwd>, B<group>, and B<shadow> databases, you can "
11149 "additionally specify \"compat\" (see B<Compatibility mode> below).  The "
11150 "version number B<X> may be 1 for glibc 2.0, or 2 for glibc 2.1 and later.  "
11151 "On systems with additional libraries installed, you may have access to "
11152 "further services such as \"hesiod\", \"ldap\", \"winbind\" and \"wins\"."
11153 msgstr ""
11154
11155 #. type: Plain text
11156 #: build/C/man5/nsswitch.conf.5:177
11157 msgid ""
11158 "An action may also be specified following a service specification.  The "
11159 "action modifies the behavior following a result obtained from the preceding "
11160 "data source.  Action items take the general form:"
11161 msgstr ""
11162
11163 #. type: Plain text
11164 #: build/C/man5/nsswitch.conf.5:180
11165 msgid "[I<STATUS>=I<ACTION>]"
11166 msgstr ""
11167
11168 #. type: Plain text
11169 #: build/C/man5/nsswitch.conf.5:182
11170 msgid "[!I<STATUS>=I<ACTION>]"
11171 msgstr ""
11172
11173 #. type: Plain text
11174 #: build/C/man5/nsswitch.conf.5:185
11175 msgid "where"
11176 msgstr ""
11177
11178 #. type: Plain text
11179 #: build/C/man5/nsswitch.conf.5:196
11180 msgid "I<STATUS> =E<gt> B<success> | B<notfound> | B<unavail> | B<tryagain>"
11181 msgstr ""
11182
11183 #. type: Plain text
11184 #: build/C/man5/nsswitch.conf.5:202
11185 msgid "I<ACTION> =E<gt> B<return> | B<continue>"
11186 msgstr ""
11187
11188 #. type: Plain text
11189 #: build/C/man5/nsswitch.conf.5:207
11190 msgid ""
11191 "The ! negates the test, matching all possible results except the one "
11192 "specified.  The case of the keywords is not significant."
11193 msgstr ""
11194
11195 #. type: Plain text
11196 #: build/C/man5/nsswitch.conf.5:212
11197 msgid ""
11198 "The I<STATUS> value is matched against the result of the lookup function "
11199 "called by the preceding service specification, and can be one of:"
11200 msgstr ""
11201
11202 #. type: TP
11203 #: build/C/man5/nsswitch.conf.5:213
11204 #, no-wrap
11205 msgid "B<success>"
11206 msgstr ""
11207
11208 #. type: Plain text
11209 #: build/C/man5/nsswitch.conf.5:217
11210 msgid ""
11211 "No error occurred and the requested entry is returned.  The default action "
11212 "for this condition is \"return\"."
11213 msgstr ""
11214
11215 #. type: TP
11216 #: build/C/man5/nsswitch.conf.5:217
11217 #, no-wrap
11218 msgid "B<notfound>"
11219 msgstr ""
11220
11221 #. type: Plain text
11222 #: build/C/man5/nsswitch.conf.5:221
11223 msgid ""
11224 "The lookup succeeded, but the requested entry was not found.  The default "
11225 "action for this condition is \"continue\"."
11226 msgstr ""
11227
11228 #. type: TP
11229 #: build/C/man5/nsswitch.conf.5:221
11230 #, no-wrap
11231 msgid "B<unavail>"
11232 msgstr ""
11233
11234 #. type: Plain text
11235 #: build/C/man5/nsswitch.conf.5:228
11236 msgid ""
11237 "The service is permanently unavailable.  This can mean either that the "
11238 "required file cannot be read, or, for network services, that the server is "
11239 "not available or does not allow queries.  The default action for this "
11240 "condition is \"continue\"."
11241 msgstr ""
11242
11243 #. type: TP
11244 #: build/C/man5/nsswitch.conf.5:228
11245 #, no-wrap
11246 msgid "B<tryagain>"
11247 msgstr ""
11248
11249 #. type: Plain text
11250 #: build/C/man5/nsswitch.conf.5:234
11251 msgid ""
11252 "The service is temporarily unavailable.  This could mean a file is locked or "
11253 "a server currently cannot accept more connections.  The default action for "
11254 "this condition is \"continue\"."
11255 msgstr ""
11256
11257 #. type: Plain text
11258 #: build/C/man5/nsswitch.conf.5:239
11259 msgid "The I<ACTION> value can be one of:"
11260 msgstr ""
11261
11262 #. type: TP
11263 #: build/C/man5/nsswitch.conf.5:240
11264 #, no-wrap
11265 msgid "B<return>"
11266 msgstr ""
11267
11268 #. type: Plain text
11269 #: build/C/man5/nsswitch.conf.5:244
11270 msgid "Return a result now.  Do not call any further lookup functions."
11271 msgstr ""
11272
11273 #. type: TP
11274 #: build/C/man5/nsswitch.conf.5:244
11275 #, no-wrap
11276 msgid "B<continue>"
11277 msgstr ""
11278
11279 #. type: Plain text
11280 #: build/C/man5/nsswitch.conf.5:247
11281 msgid "Call the next lookup function."
11282 msgstr ""
11283
11284 #. type: SS
11285 #: build/C/man5/nsswitch.conf.5:248
11286 #, no-wrap
11287 msgid "Compatibility mode (compat)"
11288 msgstr ""
11289
11290 #. type: Plain text
11291 #: build/C/man5/nsswitch.conf.5:254
11292 msgid ""
11293 "The NSS \"compat\" service is similar to \"files\" except that it "
11294 "additionally permits special entries in I</etc/passwd> for granting users or "
11295 "members of netgroups access to the system.  The following entries are valid "
11296 "in this mode:"
11297 msgstr ""
11298
11299 #. type: TP
11300 #: build/C/man5/nsswitch.conf.5:255
11301 #, no-wrap
11302 msgid "B<+>I<user>"
11303 msgstr ""
11304
11305 #. type: Plain text
11306 #: build/C/man5/nsswitch.conf.5:260
11307 msgid "Include the specified I<user> from the NIS passwd map."
11308 msgstr ""
11309
11310 #. type: TP
11311 #: build/C/man5/nsswitch.conf.5:260
11312 #, no-wrap
11313 msgid "B<+@>I<netgroup>"
11314 msgstr ""
11315
11316 #. type: Plain text
11317 #: build/C/man5/nsswitch.conf.5:264
11318 msgid "Include all users in the given I<netgroup>."
11319 msgstr ""
11320
11321 #. type: TP
11322 #: build/C/man5/nsswitch.conf.5:264
11323 #, no-wrap
11324 msgid "B<->I<user>"
11325 msgstr ""
11326
11327 #. type: Plain text
11328 #: build/C/man5/nsswitch.conf.5:269
11329 msgid "Exclude the specified I<user> from the NIS passwd map."
11330 msgstr ""
11331
11332 #. type: TP
11333 #: build/C/man5/nsswitch.conf.5:269
11334 #, no-wrap
11335 msgid "B<-@>I<netgroup>"
11336 msgstr ""
11337
11338 #. type: Plain text
11339 #: build/C/man5/nsswitch.conf.5:273
11340 msgid "Exclude all users in the given I<netgroup>."
11341 msgstr ""
11342
11343 #. type: TP
11344 #: build/C/man5/nsswitch.conf.5:273
11345 #, no-wrap
11346 msgid "B<+>"
11347 msgstr ""
11348
11349 #. type: Plain text
11350 #: build/C/man5/nsswitch.conf.5:277
11351 msgid ""
11352 "Include every user, except previously excluded ones, from the NIS passwd "
11353 "map."
11354 msgstr ""
11355
11356 #. type: Plain text
11357 #: build/C/man5/nsswitch.conf.5:285
11358 msgid ""
11359 "By default the source is \"nis\", but this may be overridden by specifying "
11360 "\"nisplus\" as the source for the pseudo-databases B<passwd_compat>, "
11361 "B<group_compat>, and B<shadow_compat>."
11362 msgstr ""
11363
11364 #. type: Plain text
11365 #: build/C/man5/nsswitch.conf.5:292
11366 msgid ""
11367 "A service named I<SERVICE> is implemented by a shared object library named "
11368 "I<libnss_SERVICE.so.>B<X> that resides in I</lib>."
11369 msgstr ""
11370
11371 #. type: Plain text
11372 #: build/C/man5/nsswitch.conf.5:297
11373 msgid "NSS configuration file."
11374 msgstr ""
11375
11376 #. type: TP
11377 #: build/C/man5/nsswitch.conf.5:297
11378 #, no-wrap
11379 msgid "I</lib/libnss_compat.so.>B<X>"
11380 msgstr ""
11381
11382 #. type: Plain text
11383 #: build/C/man5/nsswitch.conf.5:300
11384 msgid "implements \"compat\" source."
11385 msgstr ""
11386
11387 #. type: TP
11388 #: build/C/man5/nsswitch.conf.5:300
11389 #, no-wrap
11390 msgid "I</lib/libnss_db.so.>B<X>"
11391 msgstr ""
11392
11393 #. type: Plain text
11394 #: build/C/man5/nsswitch.conf.5:303
11395 msgid "implements \"db\" source."
11396 msgstr ""
11397
11398 #. type: TP
11399 #: build/C/man5/nsswitch.conf.5:303
11400 #, no-wrap
11401 msgid "I</lib/libnss_dns.so.>B<X>"
11402 msgstr ""
11403
11404 #. type: Plain text
11405 #: build/C/man5/nsswitch.conf.5:306
11406 msgid "implements \"dns\" source."
11407 msgstr ""
11408
11409 #. type: TP
11410 #: build/C/man5/nsswitch.conf.5:306
11411 #, no-wrap
11412 msgid "I</lib/libnss_files.so.>B<X>"
11413 msgstr ""
11414
11415 #. type: Plain text
11416 #: build/C/man5/nsswitch.conf.5:309
11417 msgid "implements \"files\" source."
11418 msgstr ""
11419
11420 #. type: TP
11421 #: build/C/man5/nsswitch.conf.5:309
11422 #, no-wrap
11423 msgid "I</lib/libnss_hesiod.so.>B<X>"
11424 msgstr ""
11425
11426 #. type: Plain text
11427 #: build/C/man5/nsswitch.conf.5:312
11428 msgid "implements \"hesiod\" source."
11429 msgstr ""
11430
11431 #. type: TP
11432 #: build/C/man5/nsswitch.conf.5:312
11433 #, no-wrap
11434 msgid "I</lib/libnss_nis.so.>B<X>"
11435 msgstr ""
11436
11437 #. type: Plain text
11438 #: build/C/man5/nsswitch.conf.5:315
11439 msgid "implements \"nis\" source."
11440 msgstr ""
11441
11442 #. type: TP
11443 #: build/C/man5/nsswitch.conf.5:315
11444 #, no-wrap
11445 msgid "I</lib/libnss_nisplus.so.>B<X>"
11446 msgstr ""
11447
11448 #. type: Plain text
11449 #: build/C/man5/nsswitch.conf.5:318
11450 msgid "implements \"nisplus\" source."
11451 msgstr ""
11452
11453 #. type: Plain text
11454 #: build/C/man5/nsswitch.conf.5:326
11455 msgid ""
11456 "Within each process that uses B<nsswitch.conf>, the entire file is read only "
11457 "once.  If the file is later changed, the process will continue using the old "
11458 "configuration."
11459 msgstr ""
11460
11461 #. type: Plain text
11462 #: build/C/man5/nsswitch.conf.5:339
11463 msgid ""
11464 "Traditionally, there was only a single source for service information, often "
11465 "in the form of a single configuration file (e.g., I</etc/passwd>).  However, "
11466 "as other name services, such as the Network Information Service (NIS) and "
11467 "the Domain Name Service (DNS), became popular, a method was needed that "
11468 "would be more flexible than fixed search orders coded into the C library.  "
11469 "The Name Service Switch mechanism, which was based on the mechanism used by "
11470 "Sun Microsystems in the Solaris 2 C library, introduced a cleaner solution "
11471 "to the problem."
11472 msgstr ""
11473
11474 #. type: Plain text
11475 #: build/C/man5/nsswitch.conf.5:342
11476 msgid "B<getent>(1), B<nss>(5)"
11477 msgstr ""
11478
11479 #. type: TH
11480 #: build/C/man7/packet.7:7
11481 #, no-wrap
11482 msgid "PACKET"
11483 msgstr ""
11484
11485 #. type: Plain text
11486 #: build/C/man7/packet.7:10
11487 msgid "packet - packet interface on device level."
11488 msgstr ""
11489
11490 #. type: Plain text
11491 #: build/C/man7/packet.7:13
11492 #, no-wrap
11493 msgid "B<#include E<lt>sys/socket.hE<gt>>\n"
11494 msgstr ""
11495
11496 #. type: Plain text
11497 #: build/C/man7/packet.7:15
11498 #, no-wrap
11499 msgid "B<#include E<lt>netpacket/packet.hE<gt>>\n"
11500 msgstr ""
11501
11502 #. type: Plain text
11503 #: build/C/man7/packet.7:17
11504 #, no-wrap
11505 msgid "B<#include E<lt>net/ethernet.hE<gt> /* the L2 protocols */>\n"
11506 msgstr ""
11507
11508 #. type: Plain text
11509 #: build/C/man7/packet.7:19
11510 #, no-wrap
11511 msgid ""
11512 "B<packet_socket = socket(AF_PACKET, int >I<socket_type>B<, int "
11513 ">I<protocol>B<);>\n"
11514 msgstr ""
11515
11516 #. type: Plain text
11517 #: build/C/man7/packet.7:25
11518 msgid ""
11519 "Packet sockets are used to receive or send raw packets at the device driver "
11520 "(OSI Layer 2) level.  They allow the user to implement protocol modules in "
11521 "user space on top of the physical layer."
11522 msgstr ""
11523
11524 #. type: Plain text
11525 #: build/C/man7/packet.7:47
11526 msgid ""
11527 "The I<socket_type> is either B<SOCK_RAW> for raw packets including the link "
11528 "level header or B<SOCK_DGRAM> for cooked packets with the link level header "
11529 "removed.  The link level header information is available in a common format "
11530 "in a I<sockaddr_ll>.  I<protocol> is the IEEE 802.3 protocol number in "
11531 "network order.  See the I<E<lt>linux/if_ether.hE<gt>> include file for a "
11532 "list of allowed protocols.  When protocol is set to B<htons(ETH_P_ALL)> then "
11533 "all protocols are received.  All incoming packets of that protocol type will "
11534 "be passed to the packet socket before they are passed to the protocols "
11535 "implemented in the kernel."
11536 msgstr ""
11537
11538 #. type: Plain text
11539 #: build/C/man7/packet.7:51
11540 msgid ""
11541 "Only processes with effective UID 0 or the B<CAP_NET_RAW> capability may "
11542 "open packet sockets."
11543 msgstr ""
11544
11545 #. type: Plain text
11546 #: build/C/man7/packet.7:69
11547 msgid ""
11548 "B<SOCK_RAW> packets are passed to and from the device driver without any "
11549 "changes in the packet data.  When receiving a packet, the address is still "
11550 "parsed and passed in a standard I<sockaddr_ll> address structure.  When "
11551 "transmitting a packet, the user supplied buffer should contain the physical "
11552 "layer header.  That packet is then queued unmodified to the network driver "
11553 "of the interface defined by the destination address.  Some device drivers "
11554 "always add other headers.  B<SOCK_RAW> is similar to but not compatible with "
11555 "the obsolete B<AF_INET/SOCK_PACKET> of Linux 2.0."
11556 msgstr ""
11557
11558 #. type: Plain text
11559 #: build/C/man7/packet.7:79
11560 msgid ""
11561 "B<SOCK_DGRAM> operates on a slightly higher level.  The physical header is "
11562 "removed before the packet is passed to the user.  Packets sent through a "
11563 "B<SOCK_DGRAM> packet socket get a suitable physical layer header based on "
11564 "the information in the I<sockaddr_ll> destination address before they are "
11565 "queued."
11566 msgstr ""
11567
11568 #. type: Plain text
11569 #: build/C/man7/packet.7:92
11570 msgid ""
11571 "By default all packets of the specified protocol type are passed to a packet "
11572 "socket.  To only get packets from a specific interface use B<bind>(2)  "
11573 "specifying an address in a I<struct sockaddr_ll> to bind the packet socket "
11574 "to an interface.  Only the I<sll_protocol> and the I<sll_ifindex> address "
11575 "fields are used for purposes of binding."
11576 msgstr ""
11577
11578 #. type: Plain text
11579 #: build/C/man7/packet.7:96
11580 msgid "The B<connect>(2)  operation is not supported on packet sockets."
11581 msgstr ""
11582
11583 #. type: Plain text
11584 #: build/C/man7/packet.7:105
11585 msgid ""
11586 "When the B<MSG_TRUNC> flag is passed to B<recvmsg>(2), B<recv>(2), "
11587 "B<recvfrom>(2)  the real length of the packet on the wire is always "
11588 "returned, even when it is longer than the buffer."
11589 msgstr ""
11590
11591 #. type: SS
11592 #: build/C/man7/packet.7:105
11593 #, no-wrap
11594 msgid "Address Types"
11595 msgstr ""
11596
11597 #. type: Plain text
11598 #: build/C/man7/packet.7:107
11599 msgid "The sockaddr_ll is a device independent physical layer address."
11600 msgstr ""
11601
11602 #. type: Plain text
11603 #: build/C/man7/packet.7:119
11604 #, no-wrap
11605 msgid ""
11606 "struct sockaddr_ll {\n"
11607 "    unsigned short sll_family;   /* Always AF_PACKET */\n"
11608 "    unsigned short sll_protocol; /* Physical layer protocol */\n"
11609 "    int            sll_ifindex;  /* Interface number */\n"
11610 "    unsigned short sll_hatype;   /* ARP hardware type */\n"
11611 "    unsigned char  sll_pkttype;  /* Packet type */\n"
11612 "    unsigned char  sll_halen;    /* Length of address */\n"
11613 "    unsigned char  sll_addr[8];  /* Physical layer address */\n"
11614 "};\n"
11615 msgstr ""
11616
11617 #. type: Plain text
11618 #: build/C/man7/packet.7:158
11619 msgid ""
11620 "I<sll_protocol> is the standard ethernet protocol type in network order as "
11621 "defined in the I<E<lt>linux/if_ether.hE<gt>> include file.  It defaults to "
11622 "the socket's protocol.  I<sll_ifindex> is the interface index of the "
11623 "interface (see B<netdevice>(7)); 0 matches any interface (only permitted for "
11624 "binding).  I<sll_hatype> is an ARP type as defined in the "
11625 "I<E<lt>linux/if_arp.hE<gt>> include file.  I<sll_pkttype> contains the "
11626 "packet type.  Valid types are B<PACKET_HOST> for a packet addressed to the "
11627 "local host, B<PACKET_BROADCAST> for a physical layer broadcast packet, "
11628 "B<PACKET_MULTICAST> for a packet sent to a physical layer multicast address, "
11629 "B<PACKET_OTHERHOST> for a packet to some other host that has been caught by "
11630 "a device driver in promiscuous mode, and B<PACKET_OUTGOING> for a packet "
11631 "originated from the local host that is looped back to a packet socket.  "
11632 "These types make only sense for receiving.  I<sll_addr> and I<sll_halen> "
11633 "contain the physical layer (e.g., IEEE 802.3) address and its length.  The "
11634 "exact interpretation depends on the device."
11635 msgstr ""
11636
11637 #. type: Plain text
11638 #: build/C/man7/packet.7:174
11639 msgid ""
11640 "When you send packets it is enough to specify I<sll_family>, I<sll_addr>, "
11641 "I<sll_halen>, I<sll_ifindex>.  The other fields should be 0.  I<sll_hatype> "
11642 "and I<sll_pkttype> are set on received packets for your information.  For "
11643 "bind only I<sll_protocol> and I<sll_ifindex> are used."
11644 msgstr ""
11645
11646 #. type: Plain text
11647 #: build/C/man7/packet.7:189
11648 msgid ""
11649 "Packet sockets can be used to configure physical layer multicasting and "
11650 "promiscuous mode.  It works by calling B<setsockopt>(2)  on a packet socket "
11651 "for B<SOL_PACKET> and one of the options B<PACKET_ADD_MEMBERSHIP> to add a "
11652 "binding or B<PACKET_DROP_MEMBERSHIP> to drop it.  They both expect a "
11653 "B<packet_mreq> structure as argument:"
11654 msgstr ""
11655
11656 #. type: Plain text
11657 #: build/C/man7/packet.7:198
11658 #, no-wrap
11659 msgid ""
11660 "struct packet_mreq {\n"
11661 "    int            mr_ifindex;    /* interface index */\n"
11662 "    unsigned short mr_type;       /* action */\n"
11663 "    unsigned short mr_alen;       /* address length */\n"
11664 "    unsigned char  mr_address[8]; /* physical layer address */\n"
11665 "};\n"
11666 msgstr ""
11667
11668 #. type: Plain text
11669 #: build/C/man7/packet.7:219
11670 msgid ""
11671 "B<mr_ifindex> contains the interface index for the interface whose status "
11672 "should be changed.  The B<mr_type> parameter specifies which action to "
11673 "perform.  B<PACKET_MR_PROMISC> enables receiving all packets on a shared "
11674 "medium (often known as \"promiscuous mode\"), B<PACKET_MR_MULTICAST> binds "
11675 "the socket to the physical layer multicast group specified in B<mr_address> "
11676 "and B<mr_alen>, and B<PACKET_MR_ALLMULTI> sets the socket up to receive all "
11677 "multicast packets arriving at the interface."
11678 msgstr ""
11679
11680 #. type: Plain text
11681 #: build/C/man7/packet.7:225
11682 msgid ""
11683 "In addition the traditional ioctls B<SIOCSIFFLAGS>, B<SIOCADDMULTI>, "
11684 "B<SIOCDELMULTI> can be used for the same purpose."
11685 msgstr ""
11686
11687 #.  FIXME Document SIOCGSTAMPNS
11688 #. type: Plain text
11689 #: build/C/man7/packet.7:231
11690 msgid ""
11691 "B<SIOCGSTAMP> can be used to receive the timestamp of the last received "
11692 "packet.  Argument is a I<struct timeval.>"
11693 msgstr ""
11694
11695 #. type: Plain text
11696 #: build/C/man7/packet.7:237
11697 msgid ""
11698 "In addition all standard ioctls defined in B<netdevice>(7)  and B<socket>(7)  "
11699 "are valid on packet sockets."
11700 msgstr ""
11701
11702 #. type: SS
11703 #: build/C/man7/packet.7:237 build/C/man7/raw.7:127 build/C/man7/tcp.7:1080 build/C/man7/udp.7:97
11704 #, no-wrap
11705 msgid "Error Handling"
11706 msgstr ""
11707
11708 #. type: Plain text
11709 #: build/C/man7/packet.7:241
11710 msgid ""
11711 "Packet sockets do no error handling other than errors occurred while passing "
11712 "the packet to the device driver.  They don't have the concept of a pending "
11713 "error."
11714 msgstr ""
11715
11716 #. type: Plain text
11717 #: build/C/man7/packet.7:245
11718 msgid "Unknown multicast group address passed."
11719 msgstr ""
11720
11721 #. type: Plain text
11722 #: build/C/man7/packet.7:248
11723 msgid "User passed invalid memory address."
11724 msgstr ""
11725
11726 #. type: Plain text
11727 #: build/C/man7/packet.7:251 build/C/man7/raw.7:151
11728 msgid "Invalid argument."
11729 msgstr ""
11730
11731 #. type: Plain text
11732 #: build/C/man7/packet.7:254
11733 msgid "Packet is bigger than interface MTU."
11734 msgstr ""
11735
11736 #. type: TP
11737 #: build/C/man7/packet.7:254
11738 #, no-wrap
11739 msgid "B<ENETDOWN>"
11740 msgstr ""
11741
11742 #. type: Plain text
11743 #: build/C/man7/packet.7:257
11744 msgid "Interface is not up."
11745 msgstr ""
11746
11747 #. type: Plain text
11748 #: build/C/man7/packet.7:260
11749 msgid "Not enough memory to allocate the packet."
11750 msgstr ""
11751
11752 #. type: Plain text
11753 #: build/C/man7/packet.7:263
11754 msgid "Unknown device name or interface index specified in interface address."
11755 msgstr ""
11756
11757 #. type: Plain text
11758 #: build/C/man7/packet.7:266
11759 msgid "No packet received."
11760 msgstr ""
11761
11762 #. type: Plain text
11763 #: build/C/man7/packet.7:269
11764 msgid "No interface address passed."
11765 msgstr ""
11766
11767 #. type: TP
11768 #: build/C/man7/packet.7:269
11769 #, no-wrap
11770 msgid "B<ENXIO>"
11771 msgstr ""
11772
11773 #. type: Plain text
11774 #: build/C/man7/packet.7:272
11775 msgid "Interface address contained an invalid interface index."
11776 msgstr ""
11777
11778 #. type: Plain text
11779 #: build/C/man7/packet.7:275
11780 msgid "User has insufficient privileges to carry out this operation."
11781 msgstr ""
11782
11783 #. type: Plain text
11784 #: build/C/man7/packet.7:277
11785 msgid "In addition other errors may be generated by the low-level driver."
11786 msgstr ""
11787
11788 #. type: Plain text
11789 #: build/C/man7/packet.7:282
11790 msgid ""
11791 "B<AF_PACKET> is a new feature in Linux 2.2.  Earlier Linux versions "
11792 "supported only B<SOCK_PACKET>."
11793 msgstr ""
11794
11795 #. type: Plain text
11796 #: build/C/man7/packet.7:287
11797 msgid ""
11798 "The include file I<E<lt>netpacket/packet.hE<gt>> is present since glibc "
11799 "2.1.  Older systems need:"
11800 msgstr ""
11801
11802 #. type: Plain text
11803 #: build/C/man7/packet.7:293
11804 #, no-wrap
11805 msgid ""
11806 "#include E<lt>asm/types.hE<gt>\n"
11807 "#include E<lt>linux/if_packet.hE<gt>\n"
11808 "#include E<lt>linux/if_ether.hE<gt>  /* The L2 protocols */\n"
11809 msgstr ""
11810
11811 #. type: Plain text
11812 #: build/C/man7/packet.7:303
11813 msgid ""
11814 "For portable programs it is suggested to use B<AF_PACKET> via B<pcap>(3); "
11815 "although this only covers a subset of the B<AF_PACKET> features."
11816 msgstr ""
11817
11818 #. type: Plain text
11819 #: build/C/man7/packet.7:324
11820 msgid ""
11821 "The B<SOCK_DGRAM> packet sockets make no attempt to create or parse the IEEE "
11822 "802.2 LLC header for a IEEE 802.3 frame.  When B<ETH_P_802_3> is specified "
11823 "as protocol for sending the kernel creates the 802.3 frame and fills out the "
11824 "length field; the user has to supply the LLC header to get a fully "
11825 "conforming packet.  Incoming 802.3 packets are not multiplexed on the "
11826 "DSAP/SSAP protocol fields; instead they are supplied to the user as protocol "
11827 "B<ETH_P_802_2> with the LLC header prepended.  It is thus not possible to "
11828 "bind to B<ETH_P_802_3>; bind to B<ETH_P_802_2> instead and do the protocol "
11829 "multiplex yourself.  The default for sending is the standard Ethernet DIX "
11830 "encapsulation with the protocol filled in."
11831 msgstr ""
11832
11833 #. type: Plain text
11834 #: build/C/man7/packet.7:326
11835 msgid "Packet sockets are not subject to the input or output firewall chains."
11836 msgstr ""
11837
11838 #. type: Plain text
11839 #: build/C/man7/packet.7:336
11840 msgid ""
11841 "In Linux 2.0, the only way to get a packet socket was by calling "
11842 "B<socket(AF_INET, SOCK_PACKET, >I<protocol>B<)>.  This is still supported "
11843 "but strongly deprecated.  The main difference between the two methods is "
11844 "that B<SOCK_PACKET> uses the old I<struct sockaddr_pkt> to specify an "
11845 "interface, which doesn't provide physical layer independence."
11846 msgstr ""
11847
11848 #. type: Plain text
11849 #: build/C/man7/packet.7:344
11850 #, no-wrap
11851 msgid ""
11852 "struct sockaddr_pkt {\n"
11853 "    unsigned short spkt_family;\n"
11854 "    unsigned char  spkt_device[14];\n"
11855 "    unsigned short spkt_protocol;\n"
11856 "};\n"
11857 msgstr ""
11858
11859 #. type: Plain text
11860 #: build/C/man7/packet.7:356
11861 msgid ""
11862 "I<spkt_family> contains the device type, I<spkt_protocol> is the IEEE 802.3 "
11863 "protocol type as defined in I<E<lt>sys/if_ether.hE<gt>> and I<spkt_device> "
11864 "is the device name as a null-terminated string, for example, eth0."
11865 msgstr ""
11866
11867 #. type: Plain text
11868 #: build/C/man7/packet.7:358
11869 msgid "This structure is obsolete and should not be used in new code."
11870 msgstr ""
11871
11872 #. type: Plain text
11873 #: build/C/man7/packet.7:362
11874 msgid ""
11875 "glibc 2.1 does not have a define for B<SOL_PACKET>.  The suggested "
11876 "workaround is to use:"
11877 msgstr ""
11878
11879 #. type: Plain text
11880 #: build/C/man7/packet.7:368
11881 #, no-wrap
11882 msgid ""
11883 "#ifndef SOL_PACKET\n"
11884 "#define SOL_PACKET 263\n"
11885 "#endif\n"
11886 msgstr ""
11887
11888 #. type: Plain text
11889 #: build/C/man7/packet.7:373
11890 msgid ""
11891 "This is fixed in later glibc versions and also does not occur on libc5 "
11892 "systems."
11893 msgstr ""
11894
11895 #. type: Plain text
11896 #: build/C/man7/packet.7:375
11897 msgid "The IEEE 802.2/803.3 LLC handling could be considered as a bug."
11898 msgstr ""
11899
11900 #. type: Plain text
11901 #: build/C/man7/packet.7:377
11902 msgid "Socket filters are not documented."
11903 msgstr ""
11904
11905 #.  .SH CREDITS
11906 #.  This man page was written by Andi Kleen with help from Matthew Wilcox.
11907 #.  AF_PACKET in Linux 2.2 was implemented
11908 #.  by Alexey Kuznetsov, based on code by Alan Cox and others.
11909 #. type: Plain text
11910 #: build/C/man7/packet.7:389
11911 msgid ""
11912 "The B<MSG_TRUNC> B<recvmsg>(2)  extension is an ugly hack and should be "
11913 "replaced by a control message.  There is currently no way to get the "
11914 "original destination address of packets via B<SOCK_DGRAM>."
11915 msgstr ""
11916
11917 #. type: Plain text
11918 #: build/C/man7/packet.7:396
11919 msgid ""
11920 "B<socket>(2), B<pcap>(3), B<capabilities>(7), B<ip>(7), B<raw>(7), "
11921 "B<socket>(7)"
11922 msgstr ""
11923
11924 #. type: Plain text
11925 #: build/C/man7/packet.7:398
11926 msgid "RFC\\ 894 for the standard IP Ethernet encapsulation."
11927 msgstr ""
11928
11929 #. type: Plain text
11930 #: build/C/man7/packet.7:400
11931 msgid "RFC\\ 1700 for the IEEE 802.3 IP encapsulation."
11932 msgstr ""
11933
11934 #. type: Plain text
11935 #: build/C/man7/packet.7:404
11936 msgid "The I<E<lt>linux/if_ether.hE<gt>> include file for physical layer protocols."
11937 msgstr ""
11938
11939 #. type: TH
11940 #: build/C/man5/protocols.5:28
11941 #, no-wrap
11942 msgid "PROTOCOLS"
11943 msgstr ""
11944
11945 #. type: TH
11946 #: build/C/man5/protocols.5:28
11947 #, no-wrap
11948 msgid "2008-09-23"
11949 msgstr ""
11950
11951 #. type: Plain text
11952 #: build/C/man5/protocols.5:31
11953 msgid "protocols - protocols definition file"
11954 msgstr ""
11955
11956 #. type: Plain text
11957 #: build/C/man5/protocols.5:39
11958 msgid ""
11959 "This file is a plain ASCII file, describing the various DARPA internet "
11960 "protocols that are available from the TCP/IP subsystem.  It should be "
11961 "consulted instead of using the numbers in the ARPA include files, or, even "
11962 "worse, just guessing them.  These numbers will occur in the protocol field "
11963 "of any IP header."
11964 msgstr ""
11965
11966 #.  .. by the DDN Network Information Center.
11967 #. type: Plain text
11968 #: build/C/man5/protocols.5:45
11969 msgid ""
11970 "Keep this file untouched since changes would result in incorrect IP "
11971 "packages.  Protocol numbers and names are specified by the IANA (Internet "
11972 "Assigned Numbers Authority)."
11973 msgstr ""
11974
11975 #. type: Plain text
11976 #: build/C/man5/protocols.5:47
11977 msgid "Each line is of the following format:"
11978 msgstr ""
11979
11980 #. type: Plain text
11981 #: build/C/man5/protocols.5:50
11982 msgid "I<protocol number aliases ...>"
11983 msgstr ""
11984
11985 #. type: Plain text
11986 #: build/C/man5/protocols.5:56
11987 msgid ""
11988 "where the fields are delimited by spaces or tabs.  Empty lines are ignored.  "
11989 "If a line contains a hash mark (#), the hash mark and the part of the line "
11990 "following it are ignored."
11991 msgstr ""
11992
11993 #. type: TP
11994 #: build/C/man5/protocols.5:58 build/C/man5/services.5:109
11995 #, no-wrap
11996 msgid "I<protocol>"
11997 msgstr ""
11998
11999 #. type: Plain text
12000 #: build/C/man5/protocols.5:66
12001 msgid "the native name for the protocol.  For example I<ip>, I<tcp>, or I<udp>."
12002 msgstr ""
12003
12004 #. type: Plain text
12005 #: build/C/man5/protocols.5:70
12006 msgid ""
12007 "the official number for this protocol as it will appear within the IP "
12008 "header."
12009 msgstr ""
12010
12011 #. type: Plain text
12012 #: build/C/man5/protocols.5:73
12013 msgid "optional aliases for the protocol."
12014 msgstr ""
12015
12016 #.  The following is not true as at glibc 2.8 (a line with a comma is
12017 #.  ignored by getservent()); it's not clear if/when it was ever true.
12018 #.    As a backward compatibility feature, the slash (/) between the
12019 #.    .I port
12020 #.    number and
12021 #.    .I protocol
12022 #.    name can in fact be either a slash or a comma (,).
12023 #.    Use of the comma in
12024 #.    modern installations is deprecated.
12025 #. type: Plain text
12026 #: build/C/man5/protocols.5:76 build/C/man5/services.5:165
12027 msgid ""
12028 "This file might be distributed over a network using a network-wide naming "
12029 "service like Yellow Pages/NIS or BIND/Hesiod."
12030 msgstr ""
12031
12032 #. type: Plain text
12033 #: build/C/man5/protocols.5:80
12034 msgid "The protocols definition file."
12035 msgstr ""
12036
12037 #. type: Plain text
12038 #: build/C/man5/protocols.5:82
12039 msgid "B<getprotoent>(3)"
12040 msgstr ""
12041
12042 #. type: Plain text
12043 #: build/C/man5/protocols.5:84
12044 msgid "http://www.iana.org/assignments/protocol-numbers"
12045 msgstr ""
12046
12047 #. type: TH
12048 #: build/C/man7/raw.7:9
12049 #, no-wrap
12050 msgid "RAW"
12051 msgstr ""
12052
12053 #. type: Plain text
12054 #: build/C/man7/raw.7:12
12055 msgid "raw - Linux IPv4 raw sockets"
12056 msgstr ""
12057
12058 #. type: Plain text
12059 #: build/C/man7/raw.7:18
12060 msgid "B<raw_socket = socket(AF_INET, SOCK_RAW, int >I<protocol>B<);>"
12061 msgstr ""
12062
12063 #. type: Plain text
12064 #: build/C/man7/raw.7:22
12065 msgid ""
12066 "Raw sockets allow new IPv4 protocols to be implemented in user space.  A raw "
12067 "socket receives or sends the raw datagram not including link level headers."
12068 msgstr ""
12069
12070 #. type: Plain text
12071 #: build/C/man7/raw.7:28
12072 msgid ""
12073 "The IPv4 layer generates an IP header when sending a packet unless the "
12074 "B<IP_HDRINCL> socket option is enabled on the socket.  When it is enabled, "
12075 "the packet must contain an IP header.  For receiving the IP header is always "
12076 "included in the packet."
12077 msgstr ""
12078
12079 #. type: Plain text
12080 #: build/C/man7/raw.7:32
12081 msgid ""
12082 "Only processes with an effective user ID of 0 or the B<CAP_NET_RAW> "
12083 "capability are allowed to open raw sockets."
12084 msgstr ""
12085
12086 #. type: Plain text
12087 #: build/C/man7/raw.7:39
12088 msgid ""
12089 "All packets or errors matching the I<protocol> number specified for the raw "
12090 "socket are passed to this socket.  For a list of the allowed protocols see "
12091 "RFC\\ 1700 assigned numbers and B<getprotobyname>(3)."
12092 msgstr ""
12093
12094 #. type: Plain text
12095 #: build/C/man7/raw.7:49
12096 msgid ""
12097 "A protocol of B<IPPROTO_RAW> implies enabled B<IP_HDRINCL> and is able to "
12098 "send any IP protocol that is specified in the passed header.  Receiving of "
12099 "all IP protocols via B<IPPROTO_RAW> is not possible using raw sockets."
12100 msgstr ""
12101
12102 #. type: tbl table
12103 #: build/C/man7/raw.7:54
12104 #, no-wrap
12105 msgid "IP Header fields modified on sending by B<IP_HDRINCL>\n"
12106 msgstr ""
12107
12108 #. type: tbl table
12109 #: build/C/man7/raw.7:55
12110 #, no-wrap
12111 msgid "IP Checksum:Always filled in.\n"
12112 msgstr ""
12113
12114 #. type: tbl table
12115 #: build/C/man7/raw.7:56
12116 #, no-wrap
12117 msgid "Source Address:Filled in when zero.\n"
12118 msgstr ""
12119
12120 #. type: tbl table
12121 #: build/C/man7/raw.7:57
12122 #, no-wrap
12123 msgid "Packet Id:Filled in when zero.\n"
12124 msgstr ""
12125
12126 #. type: tbl table
12127 #: build/C/man7/raw.7:58
12128 #, no-wrap
12129 msgid "Total Length:Always filled in.\n"
12130 msgstr ""
12131
12132 #. type: Plain text
12133 #: build/C/man7/raw.7:72
12134 msgid ""
12135 "If B<IP_HDRINCL> is specified and the IP header has a nonzero destination "
12136 "address then the destination address of the socket is used to route the "
12137 "packet.  When B<MSG_DONTROUTE> is specified, the destination address should "
12138 "refer to a local interface, otherwise a routing table lookup is done anyway "
12139 "but gatewayed routes are ignored."
12140 msgstr ""
12141
12142 #. type: Plain text
12143 #: build/C/man7/raw.7:80
12144 msgid ""
12145 "If B<IP_HDRINCL> isn't set, then IP header options can be set on raw sockets "
12146 "with B<setsockopt>(2); see B<ip>(7)  for more information."
12147 msgstr ""
12148
12149 #. type: Plain text
12150 #: build/C/man7/raw.7:85
12151 msgid ""
12152 "In Linux 2.2, all IP header fields and options can be set using IP socket "
12153 "options.  This means raw sockets are usually only needed for new protocols "
12154 "or protocols with no user interface (like ICMP)."
12155 msgstr ""
12156
12157 #. type: Plain text
12158 #: build/C/man7/raw.7:89
12159 msgid ""
12160 "When a packet is received, it is passed to any raw sockets which have been "
12161 "bound to its protocol before it is passed to other protocol handlers (e.g., "
12162 "kernel protocol modules)."
12163 msgstr ""
12164
12165 #. type: Plain text
12166 #: build/C/man7/raw.7:105
12167 msgid ""
12168 "Raw sockets use the standard I<sockaddr_in> address structure defined in "
12169 "B<ip>(7).  The I<sin_port> field could be used to specify the IP protocol "
12170 "number, but it is ignored for sending in Linux 2.2 and should be always set "
12171 "to 0 (see BUGS).  For incoming packets, I<sin_port> is set to the protocol "
12172 "of the packet.  See the I<E<lt>netinet/in.hE<gt>> include file for valid IP "
12173 "protocols."
12174 msgstr ""
12175
12176 #.  Or SOL_RAW on Linux
12177 #. type: Plain text
12178 #: build/C/man7/raw.7:114
12179 msgid ""
12180 "Raw socket options can be set with B<setsockopt>(2)  and read with "
12181 "B<getsockopt>(2)  by passing the B<IPPROTO_RAW> family flag."
12182 msgstr ""
12183
12184 #. type: TP
12185 #: build/C/man7/raw.7:114
12186 #, no-wrap
12187 msgid "B<ICMP_FILTER>"
12188 msgstr ""
12189
12190 #. type: Plain text
12191 #: build/C/man7/raw.7:122
12192 msgid ""
12193 "Enable a special filter for raw sockets bound to the B<IPPROTO_ICMP> "
12194 "protocol.  The value has a bit set for each ICMP message type which should "
12195 "be filtered out.  The default is to filter no ICMP messages."
12196 msgstr ""
12197
12198 #. type: Plain text
12199 #: build/C/man7/raw.7:127
12200 msgid ""
12201 "In addition, all B<ip>(7)  B<IPPROTO_IP> socket options valid for datagram "
12202 "sockets are supported."
12203 msgstr ""
12204
12205 #. type: Plain text
12206 #: build/C/man7/raw.7:140
12207 msgid ""
12208 "Errors originating from the network are only passed to the user when the "
12209 "socket is connected or the B<IP_RECVERR> flag is enabled.  For connected "
12210 "sockets, only B<EMSGSIZE> and B<EPROTO> are passed for compatibility.  With "
12211 "B<IP_RECVERR>, all network errors are saved in the error queue."
12212 msgstr ""
12213
12214 #. type: Plain text
12215 #: build/C/man7/raw.7:145
12216 msgid ""
12217 "User tried to send to a broadcast address without having the broadcast flag "
12218 "set on the socket."
12219 msgstr ""
12220
12221 #. type: Plain text
12222 #: build/C/man7/raw.7:148
12223 msgid "An invalid memory address was supplied."
12224 msgstr ""
12225
12226 #. type: Plain text
12227 #: build/C/man7/raw.7:158
12228 msgid ""
12229 "Packet too big.  Either Path MTU Discovery is enabled (the "
12230 "B<IP_MTU_DISCOVER> socket flag) or the packet size exceeds the maximum "
12231 "allowed IPv4 packet size of 64KB."
12232 msgstr ""
12233
12234 #. type: TP
12235 #: build/C/man7/raw.7:158 build/C/man7/unix.7:360
12236 #, no-wrap
12237 msgid "B<EOPNOTSUPP>"
12238 msgstr ""
12239
12240 #. type: Plain text
12241 #: build/C/man7/raw.7:162
12242 msgid "Invalid flag has been passed to a socket call (like B<MSG_OOB>)."
12243 msgstr ""
12244
12245 #. type: Plain text
12246 #: build/C/man7/raw.7:168
12247 msgid ""
12248 "The user doesn't have permission to open raw sockets.  Only processes with "
12249 "an effective user ID of 0 or the B<CAP_NET_RAW> attribute may do that."
12250 msgstr ""
12251
12252 #. type: TP
12253 #: build/C/man7/raw.7:168
12254 #, no-wrap
12255 msgid "B<EPROTO>"
12256 msgstr ""
12257
12258 #. type: Plain text
12259 #: build/C/man7/raw.7:171
12260 msgid "An ICMP error has arrived reporting a parameter problem."
12261 msgstr ""
12262
12263 #. type: Plain text
12264 #: build/C/man7/raw.7:177
12265 msgid ""
12266 "B<IP_RECVERR> and B<ICMP_FILTER> are new in Linux 2.2.  They are Linux "
12267 "extensions and should not be used in portable programs."
12268 msgstr ""
12269
12270 #. type: Plain text
12271 #: build/C/man7/raw.7:183
12272 msgid ""
12273 "Linux 2.0 enabled some bug-to-bug compatibility with BSD in the raw socket "
12274 "code when the B<SO_BSDCOMPAT> socket option was set \\(em since Linux 2.2, "
12275 "this option no longer has that effect."
12276 msgstr ""
12277
12278 #. type: Plain text
12279 #: build/C/man7/raw.7:201
12280 msgid ""
12281 "By default, raw sockets do path MTU (Maximum Transmission Unit) discovery.  "
12282 "This means the kernel will keep track of the MTU to a specific target IP "
12283 "address and return B<EMSGSIZE> when a raw packet write exceeds it.  When "
12284 "this happens, the application should decrease the packet size.  Path MTU "
12285 "discovery can be also turned off using the B<IP_MTU_DISCOVER> socket option "
12286 "or the I</proc/sys/net/ipv4/ip_no_pmtu_disc> file, see B<ip>(7)  for "
12287 "details.  When turned off, raw sockets will fragment outgoing packets that "
12288 "exceed the interface MTU.  However, disabling it is not recommended for "
12289 "performance and reliability reasons."
12290 msgstr ""
12291
12292 #. type: Plain text
12293 #: build/C/man7/raw.7:210
12294 msgid ""
12295 "A raw socket can be bound to a specific local address using the B<bind>(2)  "
12296 "call.  If it isn't bound, all packets with the specified IP protocol are "
12297 "received.  In addition, a RAW socket can be bound to a specific network "
12298 "device using B<SO_BINDTODEVICE>; see B<socket>(7)."
12299 msgstr ""
12300
12301 #. type: Plain text
12302 #: build/C/man7/raw.7:221
12303 msgid ""
12304 "An B<IPPROTO_RAW> socket is send only.  If you really want to receive all IP "
12305 "packets, use a B<packet>(7)  socket with the B<ETH_P_IP> protocol.  Note "
12306 "that packet sockets don't reassemble IP fragments, unlike raw sockets."
12307 msgstr ""
12308
12309 #. type: Plain text
12310 #: build/C/man7/raw.7:227
12311 msgid ""
12312 "If you want to receive all ICMP packets for a datagram socket, it is often "
12313 "better to use B<IP_RECVERR> on that particular socket; see B<ip>(7)."
12314 msgstr ""
12315
12316 #. type: Plain text
12317 #: build/C/man7/raw.7:234
12318 msgid ""
12319 "Raw sockets may tap all IP protocols in Linux, even protocols like ICMP or "
12320 "TCP which have a protocol module in the kernel.  In this case, the packets "
12321 "are passed to both the kernel module and the raw socket(s).  This should not "
12322 "be relied upon in portable programs, many other BSD socket implementation "
12323 "have limitations here."
12324 msgstr ""
12325
12326 #. type: Plain text
12327 #: build/C/man7/raw.7:239
12328 msgid ""
12329 "Linux never changes headers passed from the user (except for filling in some "
12330 "zeroed fields as described for B<IP_HDRINCL>).  This differs from many other "
12331 "implementations of raw sockets."
12332 msgstr ""
12333
12334 #. type: Plain text
12335 #: build/C/man7/raw.7:242
12336 msgid ""
12337 "RAW sockets are generally rather unportable and should be avoided in "
12338 "programs intended to be portable."
12339 msgstr ""
12340
12341 #. type: Plain text
12342 #: build/C/man7/raw.7:248
12343 msgid ""
12344 "Sending on raw sockets should take the IP protocol from I<sin_port>; this "
12345 "ability was lost in Linux 2.2.  The workaround is to use B<IP_HDRINCL>."
12346 msgstr ""
12347
12348 #. type: Plain text
12349 #: build/C/man7/raw.7:250
12350 msgid "Transparent proxy extensions are not described."
12351 msgstr ""
12352
12353 #. type: Plain text
12354 #: build/C/man7/raw.7:255
12355 msgid ""
12356 "When the B<IP_HDRINCL> option is set, datagrams will not be fragmented and "
12357 "are limited to the interface MTU."
12358 msgstr ""
12359
12360 #.  .SH AUTHORS
12361 #.  This man page was written by Andi Kleen.
12362 #. type: Plain text
12363 #: build/C/man7/raw.7:265
12364 msgid ""
12365 "Setting the IP protocol for sending in I<sin_port> got lost in Linux 2.2.  "
12366 "The protocol that the socket was bound to or that was specified in the "
12367 "initial B<socket>(2)  call is always used."
12368 msgstr ""
12369
12370 #. type: Plain text
12371 #: build/C/man7/raw.7:271
12372 msgid "B<recvmsg>(2), B<sendmsg>(2), B<capabilities>(7), B<ip>(7), B<socket>(7)"
12373 msgstr ""
12374
12375 #. type: Plain text
12376 #: build/C/man7/raw.7:274
12377 msgid "B<RFC\\ 1191> for path MTU discovery."
12378 msgstr ""
12379
12380 #. type: Plain text
12381 #: build/C/man7/raw.7:279
12382 msgid ""
12383 "B<RFC\\ 791> and the I<E<lt>linux/ip.hE<gt>> include file for the IP "
12384 "protocol."
12385 msgstr ""
12386
12387 #. type: TH
12388 #: build/C/man3/rcmd.3:41
12389 #, no-wrap
12390 msgid "RCMD"
12391 msgstr ""
12392
12393 #. type: TH
12394 #: build/C/man3/rcmd.3:41 build/C/man3/resolver.3:30 build/C/man3/rexec.3:39 build/C/man7/tcp.7:16
12395 #, no-wrap
12396 msgid "2012-04-23"
12397 msgstr ""
12398
12399 #. type: Plain text
12400 #: build/C/man3/rcmd.3:46
12401 msgid ""
12402 "rcmd, rresvport, iruserok, ruserok, rcmd_af, rresvport_af, iruserok_af, "
12403 "ruserok_af - routines for returning a stream to a remote command"
12404 msgstr ""
12405
12406 #. type: Plain text
12407 #: build/C/man3/rcmd.3:49
12408 #, no-wrap
12409 msgid ""
12410 "B<#include E<lt>netdb.hE<gt> \\ \\ >/* Or E<lt>unistd.hE<gt> on some systems "
12411 "*/\n"
12412 msgstr ""
12413
12414 #. type: Plain text
12415 #: build/C/man3/rcmd.3:52
12416 #, no-wrap
12417 msgid ""
12418 "B<int rcmd(char **>I<ahost>B<, int >I<inport>B<, const char *>I<locuser>B<, "
12419 ">\n"
12420 "B<         const char *>I<remuser>B<, const char *>I<cmd>B<, int "
12421 "*>I<fd2p>B<);>\n"
12422 msgstr ""
12423
12424 #. type: Plain text
12425 #: build/C/man3/rcmd.3:54
12426 #, no-wrap
12427 msgid "B<int rresvport(int *>I<port>B<);>\n"
12428 msgstr ""
12429
12430 #. type: Plain text
12431 #: build/C/man3/rcmd.3:57
12432 #, no-wrap
12433 msgid ""
12434 "B<int iruserok(uint32_t >I<raddr>B<, int >I<superuser>B<, >\n"
12435 "B<             const char *>I<ruser>B<, const char *>I<luser>B<);>\n"
12436 msgstr ""
12437
12438 #. type: Plain text
12439 #: build/C/man3/rcmd.3:60
12440 #, no-wrap
12441 msgid ""
12442 "B<int ruserok(const char *>I<rhost>B<, int >I<superuser>B<, >\n"
12443 "B<            const char *>I<ruser>B<, const char *>I<luser>B<);>\n"
12444 msgstr ""
12445
12446 #. type: Plain text
12447 #: build/C/man3/rcmd.3:64
12448 #, no-wrap
12449 msgid ""
12450 "B<int rcmd_af(char **>I<ahost>B<, int >I<inport>B<, const char "
12451 "*>I<locuser>B<, >\n"
12452 "B<            const char *>I<remuser>B<, const char *>I<cmd>B<, int "
12453 "*>I<fd2p>B<,>\n"
12454 "B<            sa_family_t >I<af>B<);>\n"
12455 msgstr ""
12456
12457 #. type: Plain text
12458 #: build/C/man3/rcmd.3:66
12459 #, no-wrap
12460 msgid "B<int rresvport_af(int *>I<port>B<, sa_family_t >I<af>B<);>\n"
12461 msgstr ""
12462
12463 #. type: Plain text
12464 #: build/C/man3/rcmd.3:70
12465 #, no-wrap
12466 msgid ""
12467 "B<int iruserok_af(uint32_t >I<raddr>B<, int >I<superuser>B<, >\n"
12468 "B<                const char *>I<ruser>B<, const char *>I<luser>B<, "
12469 "sa_family_t >I<af>B<);>\n"
12470 msgstr ""
12471
12472 #. type: Plain text
12473 #: build/C/man3/rcmd.3:74
12474 #, no-wrap
12475 msgid ""
12476 "B<int ruserok_af(const char *>I<rhost>B<, int >I<superuser>B<, >\n"
12477 "B<               const char *>I<ruser>B<, const char *>I<luser>B<, "
12478 "sa_family_t >I<af>B<);>\n"
12479 msgstr ""
12480
12481 #. type: Plain text
12482 #: build/C/man3/rcmd.3:90
12483 msgid ""
12484 "B<rcmd>(), B<rcmd_af>(), B<rresvport>(), B<rresvport_af>(), B<iruserok>(), "
12485 "B<iruserok_af>(), B<ruserok>(), B<ruserok_af>(): _BSD_SOURCE"
12486 msgstr ""
12487
12488 #. type: Plain text
12489 #: build/C/man3/rcmd.3:111
12490 msgid ""
12491 "The B<rcmd>()  function is used by the superuser to execute a command on a "
12492 "remote machine using an authentication scheme based on privileged port "
12493 "numbers.  The B<rresvport>()  function returns a descriptor to a socket with "
12494 "an address in the privileged port space.  The B<iruserok>()  and "
12495 "B<ruserok>()  functions are used by servers to authenticate clients "
12496 "requesting service with B<rcmd>().  All four functions are used by the "
12497 "B<rshd>(8)  server (among others)."
12498 msgstr ""
12499
12500 #. type: SS
12501 #: build/C/man3/rcmd.3:111
12502 #, no-wrap
12503 msgid "rcmd()"
12504 msgstr ""
12505
12506 #. type: Plain text
12507 #: build/C/man3/rcmd.3:127
12508 msgid ""
12509 "The B<rcmd>()  function looks up the host I<*ahost> using "
12510 "B<gethostbyname>(3), returning -1 if the host does not exist.  Otherwise "
12511 "I<*ahost> is set to the standard name of the host and a connection is "
12512 "established to a server residing at the well-known Internet port I<inport>."
12513 msgstr ""
12514
12515 #. type: Plain text
12516 #: build/C/man3/rcmd.3:156
12517 msgid ""
12518 "If the connection succeeds, a socket in the Internet domain of type "
12519 "B<SOCK_STREAM> is returned to the caller, and given to the remote command as "
12520 "I<stdin> and I<stdout>.  If I<fd2p> is nonzero, then an auxiliary channel to "
12521 "a control process will be set up, and a descriptor for it will be placed in "
12522 "I<*fd2p>.  The control process will return diagnostic output from the "
12523 "command (unit 2) on this channel, and will also accept bytes on this channel "
12524 "as being UNIX signal numbers, to be forwarded to the process group of the "
12525 "command.  If I<fd2p> is 0, then the I<stderr> (unit 2 of the remote command) "
12526 "will be made the same as the I<stdout> and no provision is made for sending "
12527 "arbitrary signals to the remote process, although you may be able to get its "
12528 "attention by using out-of-band data."
12529 msgstr ""
12530
12531 #. type: Plain text
12532 #: build/C/man3/rcmd.3:159
12533 msgid "The protocol is described in detail in B<rshd>(8)."
12534 msgstr ""
12535
12536 #. type: SS
12537 #: build/C/man3/rcmd.3:159
12538 #, no-wrap
12539 msgid "rresvport()"
12540 msgstr ""
12541
12542 #. type: Plain text
12543 #: build/C/man3/rcmd.3:181
12544 msgid ""
12545 "The B<rresvport>()  function is used to obtain a socket with a privileged "
12546 "port bound to it.  This socket is suitable for use by B<rcmd>()  and several "
12547 "other functions.  Privileged ports are those in the range 0 to 1023.  Only a "
12548 "privileged process (B<CAP_NET_BIND_SERVICE>)  is allowed to bind to a "
12549 "privileged port.  In the glibc implementation, this function restricts its "
12550 "search to the ports from 512 to 1023.  The I<port> argument is value-result: "
12551 "the value it supplies to the call is used as the starting point for a "
12552 "circular search of the port range; on (successful) return, it contains the "
12553 "port number that was bound to."
12554 msgstr ""
12555
12556 #. type: SS
12557 #: build/C/man3/rcmd.3:181
12558 #, no-wrap
12559 msgid "iruserok() and ruserok()"
12560 msgstr ""
12561
12562 #. type: Plain text
12563 #: build/C/man3/rcmd.3:199
12564 msgid ""
12565 "The B<iruserok>()  and B<ruserok>()  functions take a remote host's IP "
12566 "address or name, respectively, two usernames and a flag indicating whether "
12567 "the local user's name is that of the superuser.  Then, if the user is I<not> "
12568 "the superuser, it checks the I</etc/hosts.equiv> file.  If that lookup is "
12569 "not done, or is unsuccessful, the I<.rhosts> in the local user's home "
12570 "directory is checked to see if the request for service is allowed."
12571 msgstr ""
12572
12573 #. type: Plain text
12574 #: build/C/man3/rcmd.3:215
12575 msgid ""
12576 "If this file does not exist, is not a regular file, is owned by anyone other "
12577 "than the user or the superuser, or is writable by anyone other than the "
12578 "owner, the check automatically fails.  Zero is returned if the machine name "
12579 "is listed in the I<hosts.equiv> file, or the host and remote username are "
12580 "found in the I<.rhosts> file; otherwise B<iruserok>()  and B<ruserok>()  "
12581 "return -1.  If the local domain (as obtained from B<gethostname>(2))  is the "
12582 "same as the remote domain, only the machine name need be specified."
12583 msgstr ""
12584
12585 #. type: Plain text
12586 #: build/C/man3/rcmd.3:221
12587 msgid ""
12588 "If the IP address of the remote host is known, B<iruserok>()  should be used "
12589 "in preference to B<ruserok>(), as it does not require trusting the DNS "
12590 "server for the remote host's domain."
12591 msgstr ""
12592
12593 #. type: SS
12594 #: build/C/man3/rcmd.3:221
12595 #, no-wrap
12596 msgid "*_af() variants"
12597 msgstr ""
12598
12599 #. type: Plain text
12600 #: build/C/man3/rcmd.3:237
12601 msgid ""
12602 "All of the functions described above work with IPv4 (B<AF_INET>)  sockets.  "
12603 "The \"_af\" variants take an extra argument that allows the socket address "
12604 "family to be specified.  For these functions, the I<af> argument can be "
12605 "specified as B<AF_INET> or B<AF_INET6>.  In addition, B<rcmd_af>()  supports "
12606 "the use of B<AF_UNSPEC>."
12607 msgstr ""
12608
12609 #. type: Plain text
12610 #: build/C/man3/rcmd.3:243
12611 msgid ""
12612 "The B<rcmd>()  function returns a valid socket descriptor on success.  It "
12613 "returns -1 on error and prints a diagnostic message on the standard error."
12614 msgstr ""
12615
12616 #. type: Plain text
12617 #: build/C/man3/rcmd.3:254
12618 msgid ""
12619 "The B<rresvport>()  function returns a valid, bound socket descriptor on "
12620 "success.  It returns -1 on error with the global value I<errno> set "
12621 "according to the reason for failure.  The error code B<EAGAIN> is overloaded "
12622 "to mean \"All network ports in use.\""
12623 msgstr ""
12624
12625 #. type: Plain text
12626 #: build/C/man3/rcmd.3:260
12627 msgid ""
12628 "For information on the return from B<ruserok>()  and B<iruserok>(), see "
12629 "above."
12630 msgstr ""
12631
12632 #. type: Plain text
12633 #: build/C/man3/rcmd.3:268
12634 msgid ""
12635 "The functions B<iruserok_af>(), B<rcmd_af>(), B<rresvport_af>(), and "
12636 "B<ruserok_af>()  functions are provide in glibc since version 2.2."
12637 msgstr ""
12638
12639 #. type: Plain text
12640 #: build/C/man3/rcmd.3:276
12641 msgid ""
12642 "Not in POSIX.1-2001.  Present on the BSDs, Solaris, and many other systems.  "
12643 "These functions appeared in 4.2BSD.  The \"_af\" variants are more recent "
12644 "additions, and are not present on as wide a range of systems."
12645 msgstr ""
12646
12647 #.  Bug filed 25 Nov 2007:
12648 #.  http://sources.redhat.com/bugzilla/show_bug.cgi?id=5399
12649 #. type: Plain text
12650 #: build/C/man3/rcmd.3:283
12651 msgid ""
12652 "B<iruserok>()  and B<iruserok_af>()  are declared in glibc headers only "
12653 "since version 2.12."
12654 msgstr ""
12655
12656 #. type: Plain text
12657 #: build/C/man3/rcmd.3:291
12658 msgid ""
12659 "B<rlogin>(1), B<rsh>(1), B<intro>(2), B<rexec>(3), B<rexecd>(8), "
12660 "B<rlogind>(8), B<rshd>(8)"
12661 msgstr ""
12662
12663 #. type: TH
12664 #: build/C/man5/resolv.conf.5:21
12665 #, no-wrap
12666 msgid "RESOLV.CONF"
12667 msgstr ""
12668
12669 #. type: TH
12670 #: build/C/man5/resolv.conf.5:21
12671 #, no-wrap
12672 msgid "2012-05-04"
12673 msgstr ""
12674
12675 #. type: Plain text
12676 #: build/C/man5/resolv.conf.5:25
12677 msgid "resolv.conf - resolver configuration file"
12678 msgstr ""
12679
12680 #. type: Plain text
12681 #: build/C/man5/resolv.conf.5:27
12682 msgid "B</etc/resolv.conf>"
12683 msgstr ""
12684
12685 #. type: Plain text
12686 #: build/C/man5/resolv.conf.5:36
12687 msgid ""
12688 "The I<resolver> is a set of routines in the C library that provide access to "
12689 "the Internet Domain Name System (DNS).  The resolver configuration file "
12690 "contains information that is read by the resolver routines the first time "
12691 "they are invoked by a process.  The file is designed to be human readable "
12692 "and contains a list of keywords with values that provide various types of "
12693 "resolver information."
12694 msgstr ""
12695
12696 #. type: Plain text
12697 #: build/C/man5/resolv.conf.5:41
12698 msgid ""
12699 "If this file does not exist, only the name server on the local machine will "
12700 "be queried; the domain name is determined from the hostname and the domain "
12701 "search path is constructed from the domain name."
12702 msgstr ""
12703
12704 #. type: Plain text
12705 #: build/C/man5/resolv.conf.5:43
12706 msgid "The different configuration options are:"
12707 msgstr ""
12708
12709 #. type: TP
12710 #: build/C/man5/resolv.conf.5:43
12711 #, no-wrap
12712 msgid "B<nameserver> Name server IP address"
12713 msgstr ""
12714
12715 #. type: Plain text
12716 #: build/C/man5/resolv.conf.5:59
12717 msgid ""
12718 "Internet address (in dot notation) of a name server that the resolver should "
12719 "query.  Up to B<MAXNS> (currently 3, see I<E<lt>resolv.hE<gt>>) name servers "
12720 "may be listed, one per keyword.  If there are multiple servers, the resolver "
12721 "library queries them in the order listed.  If no B<nameserver> entries are "
12722 "present, the default is to use the name server on the local machine.  (The "
12723 "algorithm used is to try a name server, and if the query times out, try the "
12724 "next, until out of name servers, then repeat trying all the name servers "
12725 "until a maximum number of retries are made.)"
12726 msgstr ""
12727
12728 #. type: TP
12729 #: build/C/man5/resolv.conf.5:59
12730 #, no-wrap
12731 msgid "B<domain> Local domain name."
12732 msgstr ""
12733
12734 #. type: Plain text
12735 #: build/C/man5/resolv.conf.5:69
12736 msgid ""
12737 "Most queries for names within this domain can use short names relative to "
12738 "the local domain.  If no B<domain> entry is present, the domain is "
12739 "determined from the local hostname returned by B<gethostname>(2); the domain "
12740 "part is taken to be everything after the first \\(aq.\\(aq.  Finally, if the "
12741 "hostname does not contain a domain part, the root domain is assumed."
12742 msgstr ""
12743
12744 #. type: TP
12745 #: build/C/man5/resolv.conf.5:69
12746 #, no-wrap
12747 msgid "B<search> Search list for host-name lookup."
12748 msgstr ""
12749
12750 #.  When having a resolv.conv with a line
12751 #.   search subdomain.domain.tld domain.tld
12752 #.  and doing a hostlookup, for example by
12753 #.   ping host.anothersubdomain
12754 #.  it sends dns-requests for
12755 #.   host.anothersubdomain.
12756 #.   host.anothersubdomain.subdomain.domain.tld.
12757 #.   host.anothersubdomain.domain.tld.
12758 #.  thus not only causing unnecessary traffic for the root-dns-servers
12759 #.  but broadcasting information to the outside and making man-in-the-middle
12760 #.  attacks possible.
12761 #. type: Plain text
12762 #: build/C/man5/resolv.conf.5:99
12763 msgid ""
12764 "The search list is normally determined from the local domain name; by "
12765 "default, it contains only the local domain name.  This may be changed by "
12766 "listing the desired domain search path following the I<search> keyword with "
12767 "spaces or tabs separating the names.  Resolver queries having fewer than "
12768 "I<ndots> dots (default is 1) in them will be attempted using each component "
12769 "of the search path in turn until a match is found.  For environments with "
12770 "multiple subdomains please read B<options ndots:>I<n> below to avoid "
12771 "man-in-the-middle attacks and unnecessary traffic for the root-dns-servers.  "
12772 "Note that this process may be slow and will generate a lot of network "
12773 "traffic if the servers for the listed domains are not local, and that "
12774 "queries will time out if no server is available for one of the domains."
12775 msgstr ""
12776
12777 #. type: Plain text
12778 #: build/C/man5/resolv.conf.5:102
12779 msgid ""
12780 "The search list is currently limited to six domains with a total of 256 "
12781 "characters."
12782 msgstr ""
12783
12784 #. type: TP
12785 #: build/C/man5/resolv.conf.5:102
12786 #, no-wrap
12787 msgid "B<sortlist>"
12788 msgstr ""
12789
12790 #. type: Plain text
12791 #: build/C/man5/resolv.conf.5:115
12792 msgid ""
12793 "This option allows addresses returned by B<gethostbyname>(3)  to be sorted.  "
12794 "A sortlist is specified by IP-address-netmask pairs.  The netmask is "
12795 "optional and defaults to the natural netmask of the net.  The IP address and "
12796 "optional network pairs are separated by slashes.  Up to 10 pairs may be "
12797 "specified.  Here is an example:"
12798 msgstr ""
12799
12800 #. type: Plain text
12801 #: build/C/man5/resolv.conf.5:118
12802 msgid "sortlist 130.155.160.0/255.255.240.0 130.155.0.0"
12803 msgstr ""
12804
12805 #. type: TP
12806 #: build/C/man5/resolv.conf.5:120
12807 #, no-wrap
12808 msgid "B<options>"
12809 msgstr ""
12810
12811 #. type: Plain text
12812 #: build/C/man5/resolv.conf.5:124
12813 msgid ""
12814 "Options allows certain internal resolver variables to be modified.  The "
12815 "syntax is"
12816 msgstr ""
12817
12818 #. type: Plain text
12819 #: build/C/man5/resolv.conf.5:127
12820 msgid "B<options> I<option> I<...>"
12821 msgstr ""
12822
12823 #. type: Plain text
12824 #: build/C/man5/resolv.conf.5:129
12825 msgid "where I<option> is one of the following:"
12826 msgstr ""
12827
12828 #. type: TP
12829 #: build/C/man5/resolv.conf.5:129
12830 #, no-wrap
12831 msgid "B<debug>"
12832 msgstr ""
12833
12834 #.  Since glibc 2.2?
12835 #. type: Plain text
12836 #: build/C/man5/resolv.conf.5:136
12837 msgid "sets B<RES_DEBUG> in I<_res.options>."
12838 msgstr ""
12839
12840 #. type: TP
12841 #: build/C/man5/resolv.conf.5:136
12842 #, no-wrap
12843 msgid "B<ndots:>I<n>"
12844 msgstr ""
12845
12846 #.  Since glibc 2.2
12847 #. type: Plain text
12848 #: build/C/man5/resolv.conf.5:150
12849 msgid ""
12850 "sets a threshold for the number of dots which must appear in a name given to "
12851 "B<res_query>(3)  (see B<resolver>(3))  before an I<initial absolute query> "
12852 "will be made.  The default for I<n> is 1, meaning that if there are any dots "
12853 "in a name, the name will be tried first as an absolute name before any "
12854 "I<search list> elements are appended to it.  The value for this option is "
12855 "silently capped to 15."
12856 msgstr ""
12857
12858 #. type: TP
12859 #: build/C/man5/resolv.conf.5:150
12860 #, no-wrap
12861 msgid "B<timeout:>I<n>"
12862 msgstr ""
12863
12864 #.  Since glibc 2.2
12865 #. type: Plain text
12866 #: build/C/man5/resolv.conf.5:161
12867 msgid ""
12868 "sets the amount of time the resolver will wait for a response from a remote "
12869 "name server before retrying the query via a different name server.  Measured "
12870 "in seconds, the default is B<RES_TIMEOUT> (currently 5, see "
12871 "I<E<lt>resolv.hE<gt>>).  The value for this option is silently capped to 30."
12872 msgstr ""
12873
12874 #. type: TP
12875 #: build/C/man5/resolv.conf.5:161
12876 #, no-wrap
12877 msgid "B<attempts:>I<n>"
12878 msgstr ""
12879
12880 #. type: Plain text
12881 #: build/C/man5/resolv.conf.5:170
12882 msgid ""
12883 "sets the number of times the resolver will send a query to its name servers "
12884 "before giving up and returning an error to the calling application.  The "
12885 "default is B<RES_DFLRETRY> (currently 2, see I<E<lt>resolv.hE<gt>>).  The "
12886 "value for this option is silently capped to 5."
12887 msgstr ""
12888
12889 #. type: TP
12890 #: build/C/man5/resolv.conf.5:170
12891 #, no-wrap
12892 msgid "B<rotate>"
12893 msgstr ""
12894
12895 #.  Since glibc 2.2
12896 #. type: Plain text
12897 #: build/C/man5/resolv.conf.5:180
12898 msgid ""
12899 "sets B<RES_ROTATE> in I<_res.options>, which causes round robin selection of "
12900 "nameservers from among those listed.  This has the effect of spreading the "
12901 "query load among all listed servers, rather than having all clients try the "
12902 "first listed server first every time."
12903 msgstr ""
12904
12905 #. type: TP
12906 #: build/C/man5/resolv.conf.5:180
12907 #, no-wrap
12908 msgid "B<no-check-names>"
12909 msgstr ""
12910
12911 #.  since glibc 2.2
12912 #. type: Plain text
12913 #: build/C/man5/resolv.conf.5:190
12914 msgid ""
12915 "sets B<RES_NOCHECKNAME> in I<_res.options>, which disables the modern BIND "
12916 "checking of incoming hostnames and mail names for invalid characters such as "
12917 "underscore (_), non-ASCII, or control characters."
12918 msgstr ""
12919
12920 #. type: TP
12921 #: build/C/man5/resolv.conf.5:190
12922 #, no-wrap
12923 msgid "B<inet6>"
12924 msgstr ""
12925
12926 #.  Since glibc 2.2
12927 #. type: Plain text
12928 #: build/C/man5/resolv.conf.5:201
12929 msgid ""
12930 "sets B<RES_USE_INET6> in I<_res.options>.  This has the effect of trying a "
12931 "AAAA query before an A query inside the B<gethostbyname>(3)  function, and "
12932 "of mapping IPv4 responses in IPv6 \"tunneled form\" if no AAAA records are "
12933 "found but an A record set exists."
12934 msgstr ""
12935
12936 #. type: TP
12937 #: build/C/man5/resolv.conf.5:201
12938 #, no-wrap
12939 msgid "B<ip6-bytestring> (since glibc 2.3.4)"
12940 msgstr ""
12941
12942 #. type: Plain text
12943 #: build/C/man5/resolv.conf.5:210
12944 msgid ""
12945 "sets B<RES_USE_BSTRING> in I<_res.options>.  This causes reverse IPv6 "
12946 "lookups to be made using the bit-label format described in RFC\\ 2673; if "
12947 "this option is not set, then nibble format is used."
12948 msgstr ""
12949
12950 #. type: TP
12951 #: build/C/man5/resolv.conf.5:210
12952 #, no-wrap
12953 msgid "B<ip6-dotint>/B<no-ip6-dotint> (since glibc 2.3.4)"
12954 msgstr ""
12955
12956 #. type: Plain text
12957 #: build/C/man5/resolv.conf.5:227
12958 msgid ""
12959 "Clear/set B<RES_NOIP6DOTINT> in I<_res.options>.  When this option is clear "
12960 "(B<ip6-dotint>), reverse IPv6 lookups are made in the (deprecated)  "
12961 "I<ip6.int> zone; when this option is set (B<no-ip6-dotint>), reverse IPv6 "
12962 "lookups are made in the I<ip6.arpa> zone by default.  This option is set by "
12963 "default."
12964 msgstr ""
12965
12966 #. type: TP
12967 #: build/C/man5/resolv.conf.5:227
12968 #, no-wrap
12969 msgid "B<edns0> (since glibc 2.6)"
12970 msgstr ""
12971
12972 #. type: Plain text
12973 #: build/C/man5/resolv.conf.5:234
12974 msgid ""
12975 "sets B<RES_USE_EDNSO> in I<_res.options>.  This enables support for the DNS "
12976 "extensions described in RFC\\ 2671."
12977 msgstr ""
12978
12979 #. type: TP
12980 #: build/C/man5/resolv.conf.5:234
12981 #, no-wrap
12982 msgid "B<single-request> (since glibc 2.10)"
12983 msgstr ""
12984
12985 #. type: Plain text
12986 #: build/C/man5/resolv.conf.5:247
12987 msgid ""
12988 "sets B<RES_SNGLKUP> in I<_res.options>.  By default, glibc performs IPv4 and "
12989 "IPv6 lookups in parallel since version 2.9.  Some appliance DNS servers "
12990 "cannot handle these queries properly and make the requests time out.  This "
12991 "option disables the behavior and makes glibc perform the IPv6 and IPv4 "
12992 "requests sequentially (at the cost of some slowdown of the resolving "
12993 "process)."
12994 msgstr ""
12995
12996 #. type: Plain text
12997 #: build/C/man5/resolv.conf.5:252
12998 msgid ""
12999 "The I<domain> and I<search> keywords are mutually exclusive.  If more than "
13000 "one instance of these keywords is present, the last instance wins."
13001 msgstr ""
13002
13003 #. type: Plain text
13004 #: build/C/man5/resolv.conf.5:257
13005 msgid ""
13006 "The I<search> keyword of a system's I<resolv.conf> file can be overridden on "
13007 "a per-process basis by setting the environment variable B<LOCALDOMAIN> to a "
13008 "space-separated list of search domains."
13009 msgstr ""
13010
13011 #. type: Plain text
13012 #: build/C/man5/resolv.conf.5:263
13013 msgid ""
13014 "The I<options> keyword of a system's I<resolv.conf> file can be amended on a "
13015 "per-process basis by setting the environment variable B<RES_OPTIONS> to a "
13016 "space-separated list of resolver options as explained above under "
13017 "B<options>."
13018 msgstr ""
13019
13020 #. type: Plain text
13021 #: build/C/man5/resolv.conf.5:267
13022 msgid ""
13023 "The keyword and value must appear on a single line, and the keyword (e.g., "
13024 "B<nameserver>) must start the line.  The value follows the keyword, "
13025 "separated by white space."
13026 msgstr ""
13027
13028 #. type: Plain text
13029 #: build/C/man5/resolv.conf.5:270
13030 msgid ""
13031 "Lines that contain a semicolon (;) or hash character (#)  in the first "
13032 "column are treated as comments."
13033 msgstr ""
13034
13035 #. type: Plain text
13036 #: build/C/man5/resolv.conf.5:273
13037 msgid "I</etc/resolv.conf>, I<E<lt>resolv.hE<gt>>"
13038 msgstr ""
13039
13040 #. type: Plain text
13041 #: build/C/man5/resolv.conf.5:278
13042 msgid "B<gethostbyname>(3), B<resolver>(3), B<hostname>(7), B<named>(8)"
13043 msgstr ""
13044
13045 #. type: Plain text
13046 #: build/C/man5/resolv.conf.5:280
13047 msgid "Name Server Operations Guide for BIND"
13048 msgstr ""
13049
13050 #. type: TH
13051 #: build/C/man3/resolver.3:30
13052 #, no-wrap
13053 msgid "RESOLVER"
13054 msgstr ""
13055
13056 #. type: Plain text
13057 #: build/C/man3/resolver.3:34
13058 msgid ""
13059 "res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, "
13060 "dn_comp, dn_expand - resolver routines"
13061 msgstr ""
13062
13063 #. type: Plain text
13064 #: build/C/man3/resolver.3:40
13065 #, no-wrap
13066 msgid ""
13067 "B<#include E<lt>netinet/in.hE<gt>>\n"
13068 "B<#include E<lt>arpa/nameser.hE<gt>>\n"
13069 "B<#include E<lt>resolv.hE<gt>>\n"
13070 "B<extern struct state _res;>\n"
13071 msgstr ""
13072
13073 #. type: Plain text
13074 #: build/C/man3/resolver.3:42
13075 #, no-wrap
13076 msgid "B<int res_init(void);>\n"
13077 msgstr ""
13078
13079 #. type: Plain text
13080 #: build/C/man3/resolver.3:44
13081 #, no-wrap
13082 msgid "B<int res_query(const char *>I<dname>B<, int >I<class>B<, int >I<type>B<,>\n"
13083 msgstr ""
13084
13085 #. type: Plain text
13086 #: build/C/man3/resolver.3:46 build/C/man3/resolver.3:51
13087 #, no-wrap
13088 msgid "B<unsigned char *>I<answer>B<, int >I<anslen>B<);>\n"
13089 msgstr ""
13090
13091 #. type: Plain text
13092 #: build/C/man3/resolver.3:49
13093 #, no-wrap
13094 msgid ""
13095 "B<int res_search(const char *>I<dname>B<, int >I<class>B<, int "
13096 ">I<type>B<,>\n"
13097 msgstr ""
13098
13099 #. type: Plain text
13100 #: build/C/man3/resolver.3:54
13101 #, no-wrap
13102 msgid "B<int res_querydomain(const char *>I<name>B<, const char *>I<domain>B<,>\n"
13103 msgstr ""
13104
13105 #. type: Plain text
13106 #: build/C/man3/resolver.3:57
13107 #, no-wrap
13108 msgid ""
13109 "B<int >I<class>B<, int >I<type>B<, unsigned char *>I<answer>B<,>\n"
13110 "B<int >I<anslen>B<);>\n"
13111 msgstr ""
13112
13113 #. type: Plain text
13114 #: build/C/man3/resolver.3:60
13115 #, no-wrap
13116 msgid "B<int res_mkquery(int >I<op>B<, const char *>I<dname>B<, int >I<class>B<,>\n"
13117 msgstr ""
13118
13119 #. type: Plain text
13120 #: build/C/man3/resolver.3:63
13121 #, no-wrap
13122 msgid ""
13123 "B<int >I<type>B<, char *>I<data>B<, int >I<datalen>B<, struct rrec "
13124 "*>I<newrr>B<,>\n"
13125 "B<char *>I<buf>B<, int >I<buflen>B<);>\n"
13126 msgstr ""
13127
13128 #. type: Plain text
13129 #: build/C/man3/resolver.3:66
13130 #, no-wrap
13131 msgid ""
13132 "B<int res_send(const char *>I<msg>B<, int >I<msglen>B<, char "
13133 "*>I<answer>B<,>\n"
13134 msgstr ""
13135
13136 #. type: Plain text
13137 #: build/C/man3/resolver.3:68
13138 #, no-wrap
13139 msgid "B<int >I<anslen>B<);>\n"
13140 msgstr ""
13141
13142 #. type: Plain text
13143 #: build/C/man3/resolver.3:71
13144 #, no-wrap
13145 msgid "B<int dn_comp(unsigned char *>I<exp_dn>B<, unsigned char *>I<comp_dn>B<,>\n"
13146 msgstr ""
13147
13148 #. type: Plain text
13149 #: build/C/man3/resolver.3:73
13150 #, no-wrap
13151 msgid ""
13152 "B<int >I<length>B<, unsigned char **>I<dnptrs>B<, unsigned char "
13153 "**>I<lastdnptr>B<);>\n"
13154 msgstr ""
13155
13156 #. type: Plain text
13157 #: build/C/man3/resolver.3:76
13158 #, no-wrap
13159 msgid "B<int dn_expand(unsigned char *>I<msg>B<, unsigned char *>I<eomorig>B<,>\n"
13160 msgstr ""
13161
13162 #. type: Plain text
13163 #: build/C/man3/resolver.3:79
13164 #, no-wrap
13165 msgid ""
13166 "B<unsigned char *>I<comp_dn>B<, char *>I<exp_dn>B<,>\n"
13167 "B<int >I<length>B<);>\n"
13168 msgstr ""
13169
13170 #. type: Plain text
13171 #: build/C/man3/resolver.3:83
13172 msgid "Link with I<-lresolv>."
13173 msgstr ""
13174
13175 #. type: Plain text
13176 #: build/C/man3/resolver.3:86
13177 msgid ""
13178 "These functions make queries to and interpret the responses from Internet "
13179 "domain name servers."
13180 msgstr ""
13181
13182 #. type: Plain text
13183 #: build/C/man3/resolver.3:99
13184 msgid ""
13185 "The B<res_init>()  function reads the configuration files (see "
13186 "resolv.conf(5)) to get the default domain name, search order and name server "
13187 "address(es).  If no server is given, the local host is tried.  If no domain "
13188 "is given, that associated with the local host is used.  It can be overridden "
13189 "with the environment variable B<LOCALDOMAIN>.  B<res_init>()  is normally "
13190 "executed by the first call to one of the other functions."
13191 msgstr ""
13192
13193 #. type: Plain text
13194 #: build/C/man3/resolver.3:107
13195 msgid ""
13196 "The B<res_query>()  function queries the name server for the fully qualified "
13197 "domain name I<name> of specified I<type> and I<class>.  The reply is left in "
13198 "the buffer I<answer> of length I<anslen> supplied by the caller."
13199 msgstr ""
13200
13201 #. type: Plain text
13202 #: build/C/man3/resolver.3:120
13203 msgid ""
13204 "The B<res_search>()  function makes a query and waits for the response like "
13205 "B<res_query>(), but in addition implements the default and search rules "
13206 "controlled by B<RES_DEFNAMES> and B<RES_DNSRCH> (see description of I<_res> "
13207 "options below)."
13208 msgstr ""
13209
13210 #. type: Plain text
13211 #: build/C/man3/resolver.3:126
13212 msgid ""
13213 "The B<res_querydomain>()  function makes a query using B<res_query>()  on "
13214 "the concatenation of I<name> and I<domain>."
13215 msgstr ""
13216
13217 #. type: Plain text
13218 #: build/C/man3/resolver.3:129
13219 msgid "The following functions are lower-level routines used by B<res_query>()."
13220 msgstr ""
13221
13222 #. type: Plain text
13223 #: build/C/man3/resolver.3:140
13224 msgid ""
13225 "The B<res_mkquery>()  function constructs a query message in I<buf> of "
13226 "length I<buflen> for the domain name I<dname>.  The query type I<op> is "
13227 "usually B<QUERY>, but can be any of the types defined in "
13228 "I<E<lt>arpa/nameser.hE<gt>>.  I<newrr> is currently unused."
13229 msgstr ""
13230
13231 #. type: Plain text
13232 #: build/C/man3/resolver.3:150
13233 msgid ""
13234 "The B<res_send>()  function sends a preformatted query given in I<msg> of "
13235 "length I<msglen> and returns the answer in I<answer> which is of length "
13236 "I<anslen>.  It will call B<res_init>(), if it has not already been called."
13237 msgstr ""
13238
13239 #. type: Plain text
13240 #: build/C/man3/resolver.3:163
13241 msgid ""
13242 "The B<dn_comp>()  function compresses the domain name I<exp_dn> and stores "
13243 "it in the buffer I<comp_dn> of length I<length>.  The compression uses an "
13244 "array of pointers I<dnptrs> to previously compressed names in the current "
13245 "message.  The first pointer points to the beginning of the message and the "
13246 "list ends with NULL.  The limit of the array is specified by I<lastdnptr>.  "
13247 "If I<dnptr> is NULL, domain names are not compressed.  If I<lastdnptr> is "
13248 "NULL, the list of labels is not updated."
13249 msgstr ""
13250
13251 #. type: Plain text
13252 #: build/C/man3/resolver.3:172
13253 msgid ""
13254 "The B<dn_expand>()  function expands the compressed domain name I<comp_dn> "
13255 "to a full domain name, which is placed in the buffer I<exp_dn> of size "
13256 "I<length>.  The compressed name is contained in a query or reply message, "
13257 "and I<msg> points to the beginning of the message."
13258 msgstr ""
13259
13260 #. type: Plain text
13261 #: build/C/man3/resolver.3:180
13262 msgid ""
13263 "The resolver routines use global configuration and state information "
13264 "contained in the structure I<_res>, which is defined in "
13265 "I<E<lt>resolv.hE<gt>>.  The only field that is normally manipulated by the "
13266 "user is I<_res.options>.  This field can contain the bitwise \"OR\" of the "
13267 "following options:"
13268 msgstr ""
13269
13270 #. type: TP
13271 #: build/C/man3/resolver.3:180
13272 #, no-wrap
13273 msgid "B<RES_INIT>"
13274 msgstr ""
13275
13276 #. type: Plain text
13277 #: build/C/man3/resolver.3:185
13278 msgid "True if B<res_init>()  has been called."
13279 msgstr ""
13280
13281 #. type: TP
13282 #: build/C/man3/resolver.3:185
13283 #, no-wrap
13284 msgid "B<RES_DEBUG>"
13285 msgstr ""
13286
13287 #. type: Plain text
13288 #: build/C/man3/resolver.3:188
13289 msgid "Print debugging messages."
13290 msgstr ""
13291
13292 #. type: TP
13293 #: build/C/man3/resolver.3:188
13294 #, no-wrap
13295 msgid "B<RES_AAONLY>"
13296 msgstr ""
13297
13298 #. type: Plain text
13299 #: build/C/man3/resolver.3:195
13300 msgid ""
13301 "Accept authoritative answers only.  B<res_send>()  continues until it finds "
13302 "an authoritative answer or returns an error.  [Not currently implemented]."
13303 msgstr ""
13304
13305 #. type: TP
13306 #: build/C/man3/resolver.3:195
13307 #, no-wrap
13308 msgid "B<RES_USEVC>"
13309 msgstr ""
13310
13311 #. type: Plain text
13312 #: build/C/man3/resolver.3:198
13313 msgid "Use TCP connections for queries rather than UDP datagrams."
13314 msgstr ""
13315
13316 #. type: TP
13317 #: build/C/man3/resolver.3:198
13318 #, no-wrap
13319 msgid "B<RES_PRIMARY>"
13320 msgstr ""
13321
13322 #. type: Plain text
13323 #: build/C/man3/resolver.3:201
13324 msgid "Query primary domain name server only."
13325 msgstr ""
13326
13327 #. type: TP
13328 #: build/C/man3/resolver.3:201
13329 #, no-wrap
13330 msgid "B<RES_IGNTC>"
13331 msgstr ""
13332
13333 #. type: Plain text
13334 #: build/C/man3/resolver.3:206
13335 msgid ""
13336 "Ignore truncation errors.  Don't retry with TCP.  [Not currently "
13337 "implemented]."
13338 msgstr ""
13339
13340 #. type: TP
13341 #: build/C/man3/resolver.3:206
13342 #, no-wrap
13343 msgid "B<RES_RECURSE>"
13344 msgstr ""
13345
13346 #. type: Plain text
13347 #: build/C/man3/resolver.3:213
13348 msgid ""
13349 "Set the recursion desired bit in queries.  Recursion is carried out by the "
13350 "domain name server, not by B<res_send>().  [Enabled by default]."
13351 msgstr ""
13352
13353 #. type: TP
13354 #: build/C/man3/resolver.3:213
13355 #, no-wrap
13356 msgid "B<RES_DEFNAMES>"
13357 msgstr ""
13358
13359 #. type: Plain text
13360 #: build/C/man3/resolver.3:220
13361 msgid ""
13362 "If set, B<res_search>()  will append the default domain name to single "
13363 "component names, i.e., those that do not contain a dot.  [Enabled by "
13364 "default]."
13365 msgstr ""
13366
13367 #. type: TP
13368 #: build/C/man3/resolver.3:220
13369 #, no-wrap
13370 msgid "B<RES_STAYOPEN>"
13371 msgstr ""
13372
13373 #. type: Plain text
13374 #: build/C/man3/resolver.3:225
13375 msgid "Used with B<RES_USEVC> to keep the TCP connection open between queries."
13376 msgstr ""
13377
13378 #. type: TP
13379 #: build/C/man3/resolver.3:225
13380 #, no-wrap
13381 msgid "B<RES_DNSRCH>"
13382 msgstr ""
13383
13384 #. type: Plain text
13385 #: build/C/man3/resolver.3:234
13386 msgid ""
13387 "If set, B<res_search>()  will search for hostnames in the current domain and "
13388 "in parent domains.  This option is used by B<gethostbyname>(3).  [Enabled by "
13389 "default]."
13390 msgstr ""
13391
13392 #. type: Plain text
13393 #: build/C/man3/resolver.3:238
13394 msgid ""
13395 "This list is not complete.  You can find some other flags described in "
13396 "B<resolv.conf>(5)."
13397 msgstr ""
13398
13399 #. type: Plain text
13400 #: build/C/man3/resolver.3:243
13401 msgid "The B<res_init>()  function returns 0 on success, or -1 if an error occurs."
13402 msgstr ""
13403
13404 #. type: Plain text
13405 #: build/C/man3/resolver.3:253
13406 msgid ""
13407 "The B<res_query>(), B<res_search>(), B<res_querydomain>(), B<res_mkquery>()  "
13408 "and B<res_send>()  functions return the length of the response, or -1 if an "
13409 "error occurs."
13410 msgstr ""
13411
13412 #. type: Plain text
13413 #: build/C/man3/resolver.3:260
13414 msgid ""
13415 "The B<dn_comp>()  and B<dn_expand>()  functions return the length of the "
13416 "compressed name, or -1 if an error occurs."
13417 msgstr ""
13418
13419 #. type: Plain text
13420 #: build/C/man3/resolver.3:264
13421 #, no-wrap
13422 msgid ""
13423 "/etc/resolv.conf          resolver configuration file\n"
13424 "/etc/host.conf            resolver configuration file\n"
13425 msgstr ""
13426
13427 #. type: Plain text
13428 #: build/C/man3/resolver.3:267
13429 msgid "4.3BSD."
13430 msgstr ""
13431
13432 #. type: Plain text
13433 #: build/C/man3/resolver.3:273
13434 msgid ""
13435 "B<gethostbyname>(3), B<resolv.conf>(5), B<resolver>(5), B<hostname>(7), "
13436 "B<named>(8)"
13437 msgstr ""
13438
13439 #. type: TH
13440 #: build/C/man3/rexec.3:39
13441 #, no-wrap
13442 msgid "REXEC"
13443 msgstr ""
13444
13445 #. type: Plain text
13446 #: build/C/man3/rexec.3:42
13447 msgid "rexec, rexec_af - return stream to a remote command"
13448 msgstr ""
13449
13450 #. type: Plain text
13451 #: build/C/man3/rexec.3:46
13452 #, no-wrap
13453 msgid ""
13454 "B<#define _BSD_SOURCE>             /* See feature_test_macros(7) */\n"
13455 "B<#include E<lt>netdb.hE<gt>>\n"
13456 msgstr ""
13457
13458 #. type: Plain text
13459 #: build/C/man3/rexec.3:49
13460 #, no-wrap
13461 msgid ""
13462 "B<int rexec(char **>I<ahost>B<, int >I<inport>B<, char *>I<user>B<, >\n"
13463 "B<          char *>I<passwd>B<, char *>I<cmd>B<, int *>I<fd2p>B<);>\n"
13464 msgstr ""
13465
13466 #. type: Plain text
13467 #: build/C/man3/rexec.3:53
13468 #, no-wrap
13469 msgid ""
13470 "B<int rexec_af(char **>I<ahost>B<, int >I<inport>B<, char *>I<user>B<, >\n"
13471 "B<             char *>I<passwd>B<, char *>I<cmd>B<, int *>I<fd2p>B<,>\n"
13472 "B<             sa_family_t >I<af>B<);>\n"
13473 msgstr ""
13474
13475 #. type: Plain text
13476 #: build/C/man3/rexec.3:57
13477 msgid "This interface is obsoleted by B<rcmd>(3)."
13478 msgstr ""
13479
13480 #. type: Plain text
13481 #: build/C/man3/rexec.3:76
13482 msgid ""
13483 "The B<rexec>()  function looks up the host I<*ahost> using "
13484 "B<gethostbyname>(3), returning -1 if the host does not exist.  Otherwise "
13485 "I<*ahost> is set to the standard name of the host.  If a username and "
13486 "password are both specified, then these are used to authenticate to the "
13487 "foreign host; otherwise the environment and then the user's I<.netrc> file "
13488 "in his home directory are searched for appropriate information.  If all this "
13489 "fails, the user is prompted for the information."
13490 msgstr ""
13491
13492 #. type: Plain text
13493 #: build/C/man3/rexec.3:87
13494 msgid ""
13495 "The port I<inport> specifies which well-known DARPA Internet port to use for "
13496 "the connection; the call I<getservbyname(\"exec\", \"tcp\")> (see "
13497 "B<getservent>(3))  will return a pointer to a structure that contains the "
13498 "necessary port.  The protocol for connection is described in detail in "
13499 "B<rexecd>(8)."
13500 msgstr ""
13501
13502 #. type: Plain text
13503 #: build/C/man3/rexec.3:120
13504 msgid ""
13505 "If the connection succeeds, a socket in the Internet domain of type "
13506 "B<SOCK_STREAM> is returned to the caller, and given to the remote command as "
13507 "I<stdin> and I<stdout>.  If I<fd2p> is nonzero, then an auxiliary channel to "
13508 "a control process will be setup, and a descriptor for it will be placed in "
13509 "I<*fd2p>.  The control process will return diagnostic output from the "
13510 "command (unit 2) on this channel, and will also accept bytes on this channel "
13511 "as being UNIX signal numbers, to be forwarded to the process group of the "
13512 "command.  The diagnostic information returned does not include remote "
13513 "authorization failure, as the secondary connection is set up after "
13514 "authorization has been verified.  If I<fd2p> is 0, then the I<stderr> (unit "
13515 "2 of the remote command) will be made the same as the I<stdout> and no "
13516 "provision is made for sending arbitrary signals to the remote process, "
13517 "although you may be able to get its attention by using out-of-band data."
13518 msgstr ""
13519
13520 #. type: SS
13521 #: build/C/man3/rexec.3:120
13522 #, no-wrap
13523 msgid "rexec_af()"
13524 msgstr ""
13525
13526 #. type: Plain text
13527 #: build/C/man3/rexec.3:136
13528 msgid ""
13529 "The B<rexec>()  function works over IPv4 (B<AF_INET>).  By contrast, the "
13530 "B<rexec_af>()  function provides an extra argument, I<af>, that allows the "
13531 "caller to select the protocol.  This argument can be specified as "
13532 "B<AF_INET>, B<AF_INET6>, or B<AF_UNSPEC> (to allow the implementation to "
13533 "select the protocol)."
13534 msgstr ""
13535
13536 #. type: Plain text
13537 #: build/C/man3/rexec.3:140
13538 msgid "The B<rexec_af>()  function was added to glibc in version 2.2."
13539 msgstr ""
13540
13541 #. type: Plain text
13542 #: build/C/man3/rexec.3:149
13543 msgid ""
13544 "These functions are not in POSIX.1-2001.  The B<rexec>()  function first "
13545 "appeared in 4.2BSD, and is present on the BSDs, Solaris, and many other "
13546 "systems.  The B<rexec_af>()  function is more recent, and less widespread."
13547 msgstr ""
13548
13549 #. type: Plain text
13550 #: build/C/man3/rexec.3:153
13551 msgid "The B<rexec>()  function sends the unencrypted password across the network."
13552 msgstr ""
13553
13554 #. type: Plain text
13555 #: build/C/man3/rexec.3:158
13556 msgid ""
13557 "The underlying service is considered a big security hole and therefore not "
13558 "enabled on many sites; see B<rexecd>(8)  for explanations."
13559 msgstr ""
13560
13561 #. type: Plain text
13562 #: build/C/man3/rexec.3:161
13563 msgid "B<rcmd>(3), B<rexecd>(8)"
13564 msgstr ""
13565
13566 #. type: TH
13567 #: build/C/man5/services.5:34
13568 #, no-wrap
13569 msgid "SERVICES"
13570 msgstr ""
13571
13572 #. type: TH
13573 #: build/C/man5/services.5:34
13574 #, no-wrap
13575 msgid "2010-05-22"
13576 msgstr ""
13577
13578 #. type: Plain text
13579 #: build/C/man5/services.5:37
13580 msgid "services - Internet network services list"
13581 msgstr ""
13582
13583 #. type: Plain text
13584 #: build/C/man5/services.5:52
13585 msgid ""
13586 "B<services> is a plain ASCII file providing a mapping between human-friendly "
13587 "textual names for internet services, and their underlying assigned port "
13588 "numbers and protocol types.  Every networking program should look into this "
13589 "file to get the port number (and protocol) for its service.  The C library "
13590 "routines B<getservent>(3), B<getservbyname>(3), B<getservbyport>(3), "
13591 "B<setservent>(3), and B<endservent>(3)  support querying this file from "
13592 "programs."
13593 msgstr ""
13594
13595 #. type: Plain text
13596 #: build/C/man5/services.5:58
13597 msgid ""
13598 "Port numbers are assigned by the IANA (Internet Assigned Numbers Authority), "
13599 "and their current policy is to assign both TCP and UDP protocols when "
13600 "assigning a port number.  Therefore, most entries will have two entries, "
13601 "even for TCP-only services."
13602 msgstr ""
13603
13604 #. type: Plain text
13605 #: build/C/man5/services.5:70
13606 msgid ""
13607 "Port numbers below 1024 (so-called \"low numbered\" ports) can only be bound "
13608 "to by root (see B<bind>(2), B<tcp>(7), and B<udp>(7)).  This is so clients "
13609 "connecting to low numbered ports can trust that the service running on the "
13610 "port is the standard implementation, and not a rogue service run by a user "
13611 "of the machine.  Well-known port numbers specified by the IANA are normally "
13612 "located in this root-only space."
13613 msgstr ""
13614
13615 #. type: Plain text
13616 #: build/C/man5/services.5:85
13617 msgid ""
13618 "The presence of an entry for a service in the B<services> file does not "
13619 "necessarily mean that the service is currently running on the machine.  See "
13620 "B<inetd.conf>(5)  for the configuration of Internet services offered.  Note "
13621 "that not all networking services are started by B<inetd>(8), and so won't "
13622 "appear in B<inetd.conf>(5).  In particular, news (NNTP) and mail (SMTP) "
13623 "servers are often initialized from the system boot scripts."
13624 msgstr ""
13625
13626 #. type: Plain text
13627 #: build/C/man5/services.5:94
13628 msgid ""
13629 "The location of the B<services> file is defined by B<_PATH_SERVICES> in "
13630 "I<E<lt>netdb.hE<gt>>.  This is usually set to I</etc/services>."
13631 msgstr ""
13632
13633 #. type: Plain text
13634 #: build/C/man5/services.5:96
13635 msgid "Each line describes one service, and is of the form:"
13636 msgstr ""
13637
13638 #. type: Plain text
13639 #: build/C/man5/services.5:98
13640 msgid "I<service-name\\ \\ \\ port>B</>I<protocol\\ \\ \\ >[I<aliases ...>]"
13641 msgstr ""
13642
13643 #. type: TP
13644 #: build/C/man5/services.5:98
13645 #, no-wrap
13646 msgid "where:"
13647 msgstr ""
13648
13649 #. type: TP
13650 #: build/C/man5/services.5:100
13651 #, no-wrap
13652 msgid "I<service-name>"
13653 msgstr ""
13654
13655 #. type: Plain text
13656 #: build/C/man5/services.5:106
13657 msgid ""
13658 "is the friendly name the service is known by and looked up under.  It is "
13659 "case sensitive.  Often, the client program is named after the "
13660 "I<service-name>."
13661 msgstr ""
13662
13663 #. type: TP
13664 #: build/C/man5/services.5:106
13665 #, no-wrap
13666 msgid "I<port>"
13667 msgstr ""
13668
13669 #. type: Plain text
13670 #: build/C/man5/services.5:109
13671 msgid "is the port number (in decimal) to use for this service."
13672 msgstr ""
13673
13674 #. type: Plain text
13675 #: build/C/man5/services.5:120
13676 msgid ""
13677 "is the type of protocol to be used.  This field should match an entry in the "
13678 "B<protocols>(5)  file.  Typical values include B<tcp> and B<udp>."
13679 msgstr ""
13680
13681 #. type: Plain text
13682 #: build/C/man5/services.5:126
13683 msgid ""
13684 "is an optional space or tab separated list of other names for this service.  "
13685 "Again, the names are case sensitive."
13686 msgstr ""
13687
13688 #. type: Plain text
13689 #: build/C/man5/services.5:128
13690 msgid "Either spaces or tabs may be used to separate the fields."
13691 msgstr ""
13692
13693 #. type: Plain text
13694 #: build/C/man5/services.5:132
13695 msgid ""
13696 "Comments are started by the hash sign (#) and continue until the end of the "
13697 "line.  Blank lines are skipped."
13698 msgstr ""
13699
13700 #. type: Plain text
13701 #: build/C/man5/services.5:143
13702 msgid ""
13703 "The I<service-name> should begin in the first column of the file, since "
13704 "leading spaces are not stripped.  I<service-names> can be any printable "
13705 "characters excluding space and tab.  However, a conservative choice of "
13706 "characters should be used to minimize compatibility problems.  E.g., a-z, "
13707 "0-9, and hyphen (-) would seem a sensible choice."
13708 msgstr ""
13709
13710 #. type: Plain text
13711 #: build/C/man5/services.5:152
13712 msgid ""
13713 "Lines not matching this format should not be present in the file.  "
13714 "(Currently, they are silently skipped by B<getservent>(3), "
13715 "B<getservbyname>(3), and B<getservbyport>(3).  However, this behavior should "
13716 "not be relied on.)"
13717 msgstr ""
13718
13719 #. type: Plain text
13720 #: build/C/man5/services.5:169
13721 msgid "A sample B<services> file might look like this:"
13722 msgstr ""
13723
13724 #. type: ta
13725 #: build/C/man5/services.5:172
13726 #, no-wrap
13727 msgid "3i"
13728 msgstr ""
13729
13730 #. type: Plain text
13731 #: build/C/man5/services.5:182
13732 #, no-wrap
13733 msgid ""
13734 "netstat         15/tcp\n"
13735 "qotd            17/tcp          quote\n"
13736 "msp             18/tcp          # message send protocol\n"
13737 "msp             18/udp          # message send protocol\n"
13738 "chargen         19/tcp          ttytst source\n"
13739 "chargen         19/udp          ttytst source\n"
13740 "ftp             21/tcp\n"
13741 "# 22 - unassigned\n"
13742 "telnet          23/tcp\n"
13743 msgstr ""
13744
13745 #. type: Plain text
13746 #: build/C/man5/services.5:188
13747 msgid "The Internet network services list"
13748 msgstr ""
13749
13750 #. type: TP
13751 #: build/C/man5/services.5:188
13752 #, no-wrap
13753 msgid "I<E<lt>netdb.hE<gt>>"
13754 msgstr ""
13755
13756 #.  .SH BUGS
13757 #.  It's not clear when/if the following was ever true;
13758 #.  it isn't true for glibc 2.8:
13759 #.     There is a maximum of 35 aliases, due to the way the
13760 #.     .BR getservent (3)
13761 #.     code is written.
13762 #
13763 #.  It's not clear when/if the following was ever true;
13764 #.  it isn't true for glibc 2.8:
13765 #.     Lines longer than
13766 #.     .B BUFSIZ
13767 #.     (currently 1024) characters will be ignored by
13768 #.     .BR getservent (3),
13769 #.     .BR getservbyname (3),
13770 #.     and
13771 #.     .BR getservbyport (3).
13772 #.     However, this will also cause the next line to be mis-parsed.
13773 #. type: Plain text
13774 #: build/C/man5/services.5:209
13775 msgid "Definition of B<_PATH_SERVICES>"
13776 msgstr ""
13777
13778 #. type: Plain text
13779 #: build/C/man5/services.5:219
13780 msgid ""
13781 "B<listen>(2), B<endservent>(3), B<getservbyname>(3), B<getservbyport>(3), "
13782 "B<getservent>(3), B<setservent>(3), B<inetd.conf>(5), B<protocols>(5), "
13783 "B<inetd>(8)"
13784 msgstr ""
13785
13786 #. type: Plain text
13787 #: build/C/man5/services.5:221
13788 msgid "Assigned Numbers RFC, most recently RFC\\ 1700, (AKA STD0002)"
13789 msgstr ""
13790
13791 #. type: TH
13792 #: build/C/man3/setnetgrent.3:5
13793 #, no-wrap
13794 msgid "SETNETGRENT"
13795 msgstr ""
13796
13797 #. type: TH
13798 #: build/C/man3/setnetgrent.3:5
13799 #, no-wrap
13800 msgid "2007-07-26"
13801 msgstr ""
13802
13803 #. type: Plain text
13804 #: build/C/man3/setnetgrent.3:9
13805 msgid ""
13806 "setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr - handle "
13807 "network group entries"
13808 msgstr ""
13809
13810 #. type: Plain text
13811 #: build/C/man3/setnetgrent.3:14
13812 #, no-wrap
13813 msgid "B<int setnetgrent(const char *>I<netgroup>B<);>\n"
13814 msgstr ""
13815
13816 #. type: Plain text
13817 #: build/C/man3/setnetgrent.3:16
13818 #, no-wrap
13819 msgid "B<void endnetgrent(void);>\n"
13820 msgstr ""
13821
13822 #. type: Plain text
13823 #: build/C/man3/setnetgrent.3:18
13824 #, no-wrap
13825 msgid ""
13826 "B<int getnetgrent(char **>I<host>B<, char **>I<user>B<, char "
13827 "**>I<domain>B<);>\n"
13828 msgstr ""
13829
13830 #. type: Plain text
13831 #: build/C/man3/setnetgrent.3:21
13832 #, no-wrap
13833 msgid ""
13834 "B<int getnetgrent_r(char **>I<host>B<, char **>I<user>B<,>\n"
13835 "B<                  char **>I<domain>B<, char *>I<buf>B<, int "
13836 ">I<buflen>B<);>\n"
13837 msgstr ""
13838
13839 #. type: Plain text
13840 #: build/C/man3/setnetgrent.3:24
13841 #, no-wrap
13842 msgid ""
13843 "B<int innetgr(const char *>I<netgroup>B<, const char *>I<host>B<,>\n"
13844 "B<            const char *>I<user>B<, const char *>I<domain>B<);>\n"
13845 msgstr ""
13846
13847 #. type: Plain text
13848 #: build/C/man3/setnetgrent.3:38
13849 msgid ""
13850 "B<setnetgrent>(), B<endnetgrent>(), B<getnetgrent>(), B<getnetgrent_r>(), "
13851 "B<innetgr>(): _BSD_SOURCE || _SVID_SOURCE"
13852 msgstr ""
13853
13854 #. type: Plain text
13855 #: build/C/man3/setnetgrent.3:52
13856 msgid ""
13857 "The I<netgroup> is a SunOS invention.  A netgroup database is a list of "
13858 "string triples (I<hostname>, I<username>, I<domainname>)  or other netgroup "
13859 "names.  Any of the elements in a triple can be empty, which means that "
13860 "anything matches.  The functions described here allow access to the netgroup "
13861 "databases.  The file I</etc/nsswitch.conf> defines what database is "
13862 "searched."
13863 msgstr ""
13864
13865 #. type: Plain text
13866 #: build/C/man3/setnetgrent.3:72
13867 msgid ""
13868 "The B<setnetgrent>()  call defines the netgroup that will be searched by "
13869 "subsequent B<getnetgrent>()  calls.  The B<getnetgrent>()  function "
13870 "retrieves the next netgroup entry, and returns pointers in I<host>, I<user>, "
13871 "I<domain>.  A NULL pointer means that the corresponding entry matches any "
13872 "string.  The pointers are valid only as long as there is no call to other "
13873 "netgroup-related functions.  To avoid this problem you can use the GNU "
13874 "function B<getnetgrent_r>()  that stores the strings in the supplied "
13875 "buffer.  To free all allocated buffers use B<endnetgrent>()."
13876 msgstr ""
13877
13878 #. type: Plain text
13879 #: build/C/man3/setnetgrent.3:81
13880 msgid ""
13881 "In most cases you only want to check if the triplet (I<hostname>, "
13882 "I<username>, I<domainname>)  is a member of a netgroup.  The function "
13883 "B<innetgr>()  can be used for this without calling the above three "
13884 "functions.  Again, a NULL pointer is a wildcard and matches any string.  The "
13885 "function is thread-safe."
13886 msgstr ""
13887
13888 #. type: Plain text
13889 #: build/C/man3/setnetgrent.3:83
13890 msgid "These functions return 1 on success and 0 for failure."
13891 msgstr ""
13892
13893 #. type: Plain text
13894 #: build/C/man3/setnetgrent.3:85
13895 msgid "I</etc/netgroup>"
13896 msgstr ""
13897
13898 #.  getnetgrent_r() is on Solaris 8 and AIX 5.1, but not the BSDs.
13899 #. type: Plain text
13900 #: build/C/man3/setnetgrent.3:98
13901 msgid ""
13902 "These functions are not in POSIX.1-2001, but B<setnetgrent>(), "
13903 "B<endnetgrent>(), B<getnetgrent>(), and B<innetgr>()  are available on most "
13904 "UNIX systems.  B<getnetgrent_r>()  is not widely available on other systems."
13905 msgstr ""
13906
13907 #. type: Plain text
13908 #: build/C/man3/setnetgrent.3:102
13909 msgid "In the BSD implementation, B<setnetgrent>()  returns void."
13910 msgstr ""
13911
13912 #. type: Plain text
13913 #: build/C/man3/setnetgrent.3:106
13914 msgid "B<sethostent>(3), B<setprotoent>(3), B<setservent>(3)"
13915 msgstr ""
13916
13917 #. type: TH
13918 #: build/C/man2/shutdown.2:38
13919 #, no-wrap
13920 msgid "SHUTDOWN"
13921 msgstr ""
13922
13923 #. type: Plain text
13924 #: build/C/man2/shutdown.2:41
13925 msgid "shutdown - shut down part of a full-duplex connection"
13926 msgstr ""
13927
13928 #. type: Plain text
13929 #: build/C/man2/shutdown.2:45
13930 msgid "B<int shutdown(int >I<sockfd>B<, int >I<how>B<);>"
13931 msgstr ""
13932
13933 #. type: Plain text
13934 #: build/C/man2/shutdown.2:67
13935 msgid ""
13936 "The B<shutdown>()  call causes all or part of a full-duplex connection on "
13937 "the socket associated with I<sockfd> to be shut down.  If I<how> is "
13938 "B<SHUT_RD>, further receptions will be disallowed.  If I<how> is B<SHUT_WR>, "
13939 "further transmissions will be disallowed.  If I<how> is B<SHUT_RDWR>, "
13940 "further receptions and transmissions will be disallowed."
13941 msgstr ""
13942
13943 #. type: Plain text
13944 #: build/C/man2/shutdown.2:77
13945 msgid "I<sockfd> is not a valid descriptor."
13946 msgstr ""
13947
13948 #. type: Plain text
13949 #: build/C/man2/shutdown.2:80
13950 msgid "The specified socket is not connected."
13951 msgstr ""
13952
13953 #. type: Plain text
13954 #: build/C/man2/shutdown.2:84
13955 msgid "I<sockfd> is a file, not a socket."
13956 msgstr ""
13957
13958 #. type: Plain text
13959 #: build/C/man2/shutdown.2:88
13960 msgid ""
13961 "POSIX.1-2001, 4.4BSD (the B<shutdown>()  function call first appeared in "
13962 "4.2BSD)."
13963 msgstr ""
13964
13965 #. type: Plain text
13966 #: build/C/man2/shutdown.2:97
13967 msgid ""
13968 "The constants B<SHUT_RD>, B<SHUT_WR>, B<SHUT_RDWR> have the value 0, 1, 2, "
13969 "respectively, and are defined in I<E<lt>sys/socket.hE<gt>> since "
13970 "glibc-2.1.91."
13971 msgstr ""
13972
13973 #. type: Plain text
13974 #: build/C/man2/shutdown.2:101
13975 msgid "B<connect>(2), B<socket>(2), B<socket>(7)"
13976 msgstr ""
13977
13978 #. type: TH
13979 #: build/C/man7/tcp.7:16
13980 #, no-wrap
13981 msgid "TCP"
13982 msgstr ""
13983
13984 #. type: Plain text
13985 #: build/C/man7/tcp.7:19
13986 msgid "tcp - TCP protocol"
13987 msgstr ""
13988
13989 #. type: Plain text
13990 #: build/C/man7/tcp.7:25
13991 msgid "B<#include E<lt>netinet/tcp.hE<gt>>"
13992 msgstr ""
13993
13994 #. type: Plain text
13995 #: build/C/man7/tcp.7:27
13996 msgid "B<tcp_socket = socket(AF_INET, SOCK_STREAM, 0);>"
13997 msgstr ""
13998
13999 #. type: Plain text
14000 #: build/C/man7/tcp.7:40
14001 msgid ""
14002 "This is an implementation of the TCP protocol defined in RFC\\ 793, RFC\\ "
14003 "1122 and RFC\\ 2001 with the NewReno and SACK extensions.  It provides a "
14004 "reliable, stream-oriented, full-duplex connection between two sockets on top "
14005 "of B<ip>(7), for both v4 and v6 versions.  TCP guarantees that the data "
14006 "arrives in order and retransmits lost packets.  It generates and checks a "
14007 "per-packet checksum to catch transmission errors.  TCP does not preserve "
14008 "record boundaries."
14009 msgstr ""
14010
14011 #. type: Plain text
14012 #: build/C/man7/tcp.7:59
14013 msgid ""
14014 "A newly created TCP socket has no remote or local address and is not fully "
14015 "specified.  To create an outgoing TCP connection use B<connect>(2)  to "
14016 "establish a connection to another TCP socket.  To receive new incoming "
14017 "connections, first B<bind>(2)  the socket to a local address and port and "
14018 "then call B<listen>(2)  to put the socket into the listening state.  After "
14019 "that a new socket for each incoming connection can be accepted using "
14020 "B<accept>(2).  A socket which has had B<accept>(2)  or B<connect>(2)  "
14021 "successfully called on it is fully specified and may transmit data.  Data "
14022 "cannot be transmitted on listening or not yet connected sockets."
14023 msgstr ""
14024
14025 #. type: Plain text
14026 #: build/C/man7/tcp.7:79
14027 msgid ""
14028 "Linux supports RFC\\ 1323 TCP high performance extensions.  These include "
14029 "Protection Against Wrapped Sequence Numbers (PAWS), Window Scaling and "
14030 "Timestamps.  Window scaling allows the use of large (E<gt> 64K) TCP windows "
14031 "in order to support links with high latency or bandwidth.  To make use of "
14032 "them, the send and receive buffer sizes must be increased.  They can be set "
14033 "globally with the I</proc/sys/net/ipv4/tcp_wmem> and "
14034 "I</proc/sys/net/ipv4/tcp_rmem> files, or on individual sockets by using the "
14035 "B<SO_SNDBUF> and B<SO_RCVBUF> socket options with the B<setsockopt>(2)  "
14036 "call."
14037 msgstr ""
14038
14039 #. type: Plain text
14040 #: build/C/man7/tcp.7:110
14041 msgid ""
14042 "The maximum sizes for socket buffers declared via the B<SO_SNDBUF> and "
14043 "B<SO_RCVBUF> mechanisms are limited by the values in the "
14044 "I</proc/sys/net/core/rmem_max> and I</proc/sys/net/core/wmem_max> files.  "
14045 "Note that TCP actually allocates twice the size of the buffer requested in "
14046 "the B<setsockopt>(2)  call, and so a succeeding B<getsockopt>(2)  call will "
14047 "not return the same size of buffer as requested in the B<setsockopt>(2)  "
14048 "call.  TCP uses the extra space for administrative purposes and internal "
14049 "kernel structures, and the I</proc> file values reflect the larger sizes "
14050 "compared to the actual TCP windows.  On individual connections, the socket "
14051 "buffer size must be set prior to the B<listen>(2)  or B<connect>(2)  calls "
14052 "in order to have it take effect.  See B<socket>(7)  for more information."
14053 msgstr ""
14054
14055 #. type: Plain text
14056 #: build/C/man7/tcp.7:142
14057 msgid ""
14058 "TCP supports urgent data.  Urgent data is used to signal the receiver that "
14059 "some important message is part of the data stream and that it should be "
14060 "processed as soon as possible.  To send urgent data specify the B<MSG_OOB> "
14061 "option to B<send>(2).  When urgent data is received, the kernel sends a "
14062 "B<SIGURG> signal to the process or process group that has been set as the "
14063 "socket \"owner\" using the B<SIOCSPGRP> or B<FIOSETOWN> ioctls (or the "
14064 "POSIX.1-2001-specified B<fcntl>(2)  B<F_SETOWN> operation).  When the "
14065 "B<SO_OOBINLINE> socket option is enabled, urgent data is put into the normal "
14066 "data stream (a program can test for its location using the B<SIOCATMARK> "
14067 "ioctl described below), otherwise it can be only received when the "
14068 "B<MSG_OOB> flag is set for B<recv>(2)  or B<recvmsg>(2)."
14069 msgstr ""
14070
14071 #. type: Plain text
14072 #: build/C/man7/tcp.7:150
14073 msgid ""
14074 "Linux 2.4 introduced a number of changes for improved throughput and "
14075 "scaling, as well as enhanced functionality.  Some of these features include "
14076 "support for zero-copy B<sendfile>(2), Explicit Congestion Notification, new "
14077 "management of TIME_WAIT sockets, keep-alive socket options and support for "
14078 "Duplicate SACK extensions."
14079 msgstr ""
14080
14081 #. type: SS
14082 #: build/C/man7/tcp.7:150
14083 #, no-wrap
14084 msgid "Address Formats"
14085 msgstr ""
14086
14087 #. type: Plain text
14088 #: build/C/man7/tcp.7:159
14089 msgid ""
14090 "TCP is built on top of IP (see B<ip>(7)).  The address formats defined by "
14091 "B<ip>(7)  apply to TCP.  TCP only supports point-to-point communication; "
14092 "broadcasting and multicasting are not supported."
14093 msgstr ""
14094
14095 #. type: Plain text
14096 #: build/C/man7/tcp.7:171
14097 msgid ""
14098 "System-wide TCP parameter settings can be accessed by files in the directory "
14099 "I</proc/sys/net/ipv4/>.  In addition, most IP I</proc> interfaces also apply "
14100 "to TCP; see B<ip>(7).  Variables described as I<Boolean> take an integer "
14101 "value, with a nonzero value (\"true\") meaning that the corresponding option "
14102 "is enabled, and a zero value (\"false\")  meaning that the option is "
14103 "disabled."
14104 msgstr ""
14105
14106 #. type: TP
14107 #: build/C/man7/tcp.7:171
14108 #, no-wrap
14109 msgid "I<tcp_abc> (Integer; default: 0; since Linux 2.6.15)"
14110 msgstr ""
14111
14112 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14113 #. type: Plain text
14114 #: build/C/man7/tcp.7:179
14115 msgid ""
14116 "Control the Appropriate Byte Count (ABC), defined in RFC 3465.  ABC is a way "
14117 "of increasing the congestion window (I<cwnd>)  more slowly in response to "
14118 "partial acknowledgments.  Possible values are:"
14119 msgstr ""
14120
14121 #. type: IP
14122 #: build/C/man7/tcp.7:180 build/C/man7/tcp.7:349 build/C/man7/tcp.7:370 build/C/man7/tcp.7:514
14123 #, no-wrap
14124 msgid "0"
14125 msgstr ""
14126
14127 #. type: Plain text
14128 #: build/C/man7/tcp.7:184
14129 msgid "increase I<cwnd> once per acknowledgment (no ABC)"
14130 msgstr ""
14131
14132 #. type: IP
14133 #: build/C/man7/tcp.7:184 build/C/man7/tcp.7:351 build/C/man7/tcp.7:377 build/C/man7/tcp.7:516
14134 #, no-wrap
14135 msgid "1"
14136 msgstr ""
14137
14138 #. type: Plain text
14139 #: build/C/man7/tcp.7:188
14140 msgid "increase I<cwnd> once per acknowledgment of full sized segment"
14141 msgstr ""
14142
14143 #. type: IP
14144 #: build/C/man7/tcp.7:188 build/C/man7/tcp.7:353 build/C/man7/tcp.7:384 build/C/man7/tcp.7:518
14145 #, no-wrap
14146 msgid "2"
14147 msgstr ""
14148
14149 #. type: Plain text
14150 #: build/C/man7/tcp.7:193
14151 msgid ""
14152 "allow increase I<cwnd> by two if acknowledgment is of two segments to "
14153 "compensate for delayed acknowledgments."
14154 msgstr ""
14155
14156 #. type: TP
14157 #: build/C/man7/tcp.7:194
14158 #, no-wrap
14159 msgid "I<tcp_abort_on_overflow> (Boolean; default: disabled; since Linux 2.4)"
14160 msgstr ""
14161
14162 #.  Since 2.3.41
14163 #. type: Plain text
14164 #: build/C/man7/tcp.7:206
14165 msgid ""
14166 "Enable resetting connections if the listening service is too slow and unable "
14167 "to keep up and accept them.  It means that if overflow occurred due to a "
14168 "burst, the connection will recover.  Enable this option I<only> if you are "
14169 "really sure that the listening daemon cannot be tuned to accept connections "
14170 "faster.  Enabling this option can harm the clients of your server."
14171 msgstr ""
14172
14173 #. type: TP
14174 #: build/C/man7/tcp.7:206
14175 #, no-wrap
14176 msgid "I<tcp_adv_win_scale> (integer; default: 2; since Linux 2.4)"
14177 msgstr ""
14178
14179 #.  Since 2.4.0-test7
14180 #. type: Plain text
14181 #: build/C/man7/tcp.7:218
14182 msgid ""
14183 "Count buffering overhead as I<bytes/2^tcp_adv_win_scale>, if "
14184 "I<tcp_adv_win_scale> is greater than 0; or "
14185 "I<bytes-bytes/2^(-tcp_adv_win_scale)>, if I<tcp_adv_win_scale> is less than "
14186 "or equal to zero."
14187 msgstr ""
14188
14189 #. type: Plain text
14190 #: build/C/man7/tcp.7:231
14191 msgid ""
14192 "The socket receive buffer space is shared between the application and "
14193 "kernel.  TCP maintains part of the buffer as the TCP window, this is the "
14194 "size of the receive window advertised to the other end.  The rest of the "
14195 "space is used as the \"application\" buffer, used to isolate the network "
14196 "from scheduling and application latencies.  The I<tcp_adv_win_scale> default "
14197 "value of 2 implies that the space used for the application buffer is one "
14198 "fourth that of the total."
14199 msgstr ""
14200
14201 #. type: TP
14202 #: build/C/man7/tcp.7:231
14203 #, no-wrap
14204 msgid ""
14205 "I<tcp_allowed_congestion_control> (String; default: see text; since Linux "
14206 "2.4.20)"
14207 msgstr ""
14208
14209 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14210 #.  FIXME How are the items in this delimited? Null bytes, spaces, commas?
14211 #. type: Plain text
14212 #: build/C/man7/tcp.7:243
14213 msgid ""
14214 "Show/set the congestion control algorithm choices available to unprivileged "
14215 "processes (see the description of the B<TCP_CONGESTION> socket option).  The "
14216 "list is a subset of those listed in I<tcp_available_congestion_control>.  "
14217 "The default value for this list is \"reno\" plus the default setting of "
14218 "I<tcp_congestion_control>."
14219 msgstr ""
14220
14221 #. type: TP
14222 #: build/C/man7/tcp.7:243
14223 #, no-wrap
14224 msgid "I<tcp_available_congestion_control> (String; read-only; since Linux 2.4.20)"
14225 msgstr ""
14226
14227 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14228 #.  FIXME How are the items in this delimited? Null bytes, spaces, commas?
14229 #. type: Plain text
14230 #: build/C/man7/tcp.7:253
14231 msgid ""
14232 "Show a list of the congestion-control algorithms that are registered.  This "
14233 "list is a limiting set for the list in I<tcp_allowed_congestion_control>.  "
14234 "More congestion-control algorithms may be available as modules, but not "
14235 "loaded."
14236 msgstr ""
14237
14238 #. type: TP
14239 #: build/C/man7/tcp.7:253
14240 #, no-wrap
14241 msgid "I<tcp_app_win> (integer; default: 31; since Linux 2.4)"
14242 msgstr ""
14243
14244 #.  Since 2.4.0-test7
14245 #. type: Plain text
14246 #: build/C/man7/tcp.7:258
14247 msgid ""
14248 "This variable defines how many bytes of the TCP window are reserved for "
14249 "buffering overhead."
14250 msgstr ""
14251
14252 #
14253 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14254 #. type: Plain text
14255 #: build/C/man7/tcp.7:264
14256 msgid ""
14257 "A maximum of (I<window/2^tcp_app_win>, mss) bytes in the window are reserved "
14258 "for the application buffer.  A value of 0 implies that no amount is "
14259 "reserved."
14260 msgstr ""
14261
14262 #. type: TP
14263 #: build/C/man7/tcp.7:264
14264 #, no-wrap
14265 msgid "I<tcp_base_mss> (Integer; default: 512; since Linux 2.6.17)"
14266 msgstr ""
14267
14268 #
14269 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14270 #. type: Plain text
14271 #: build/C/man7/tcp.7:273
14272 msgid ""
14273 "The initial value of I<search_low> to be used by the packetization layer "
14274 "Path MTU discovery (MTU probing).  If MTU probing is enabled, this is the "
14275 "initial MSS used by the connection."
14276 msgstr ""
14277
14278 #. type: TP
14279 #: build/C/man7/tcp.7:273
14280 #, no-wrap
14281 msgid "I<tcp_bic> (Boolean; default: disabled; Linux 2.4.27/2.6.6 to 2.6.13)"
14282 msgstr ""
14283
14284 #
14285 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14286 #. type: Plain text
14287 #: build/C/man7/tcp.7:287
14288 msgid ""
14289 "Enable BIC TCP congestion control algorithm.  BIC-TCP is a sender-side only "
14290 "change that ensures a linear RTT fairness under large windows while offering "
14291 "both scalability and bounded TCP-friendliness.  The protocol combines two "
14292 "schemes called additive increase and binary search increase.  When the "
14293 "congestion window is large, additive increase with a large increment ensures "
14294 "linear RTT fairness as well as good scalability.  Under small congestion "
14295 "windows, binary search increase provides TCP friendliness."
14296 msgstr ""
14297
14298 #. type: TP
14299 #: build/C/man7/tcp.7:287
14300 #, no-wrap
14301 msgid "I<tcp_bic_low_window> (integer; default: 14; Linux 2.4.27/2.6.6 to 2.6.13)"
14302 msgstr ""
14303
14304 #
14305 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14306 #. type: Plain text
14307 #: build/C/man7/tcp.7:294
14308 msgid ""
14309 "Set the threshold window (in packets) where BIC TCP starts to adjust the "
14310 "congestion window.  Below this threshold BIC TCP behaves the same as the "
14311 "default TCP Reno."
14312 msgstr ""
14313
14314 #. type: TP
14315 #: build/C/man7/tcp.7:294
14316 #, no-wrap
14317 msgid ""
14318 "I<tcp_bic_fast_convergence> (Boolean; default: enabled; Linux 2.4.27/2.6.6 "
14319 "to 2.6.13)"
14320 msgstr ""
14321
14322 #. type: Plain text
14323 #: build/C/man7/tcp.7:298
14324 msgid ""
14325 "Force BIC TCP to more quickly respond to changes in congestion window.  "
14326 "Allows two flows sharing the same connection to converge more rapidly."
14327 msgstr ""
14328
14329 #. type: TP
14330 #: build/C/man7/tcp.7:298
14331 #, no-wrap
14332 msgid "I<tcp_congestion_control> (String; default: see text; since Linux 2.4.13)"
14333 msgstr ""
14334
14335 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14336 #. type: Plain text
14337 #: build/C/man7/tcp.7:305
14338 msgid ""
14339 "Set the default congestion-control algorithm to be used for new "
14340 "connections.  The algorithm \"reno\" is always available, but additional "
14341 "choices may be available depending on kernel configuration.  The default "
14342 "value for this file is set as part of kernel configuration."
14343 msgstr ""
14344
14345 #. type: TP
14346 #: build/C/man7/tcp.7:305
14347 #, no-wrap
14348 msgid "I<tcp_dma_copybreak> (integer; default: 4096; since Linux 2.6.24)"
14349 msgstr ""
14350
14351 #. type: Plain text
14352 #: build/C/man7/tcp.7:312
14353 msgid ""
14354 "Lower limit, in bytes, of the size of socket reads that will be offloaded to "
14355 "a DMA copy engine, if one is present in the system and the kernel was "
14356 "configured with the B<CONFIG_NET_DMA> option."
14357 msgstr ""
14358
14359 #. type: TP
14360 #: build/C/man7/tcp.7:312
14361 #, no-wrap
14362 msgid "I<tcp_dsack> (Boolean; default: enabled; since Linux 2.4)"
14363 msgstr ""
14364
14365 #.  Since 2.4.0-test7
14366 #. type: Plain text
14367 #: build/C/man7/tcp.7:316
14368 msgid "Enable RFC\\ 2883 TCP Duplicate SACK support."
14369 msgstr ""
14370
14371 #. type: TP
14372 #: build/C/man7/tcp.7:316
14373 #, no-wrap
14374 msgid "I<tcp_ecn> (Boolean; default: disabled; since Linux 2.4)"
14375 msgstr ""
14376
14377 #.  Since 2.4.0-test7
14378 #. type: Plain text
14379 #: build/C/man7/tcp.7:323
14380 msgid ""
14381 "Enable RFC\\ 2884 Explicit Congestion Notification.  When enabled, "
14382 "connectivity to some destinations could be affected due to older, "
14383 "misbehaving routers along the path causing connections to be dropped."
14384 msgstr ""
14385
14386 #. type: TP
14387 #: build/C/man7/tcp.7:323
14388 #, no-wrap
14389 msgid "I<tcp_fack> (Boolean; default: enabled; since Linux 2.2)"
14390 msgstr ""
14391
14392 #.  Since 2.1.92
14393 #. type: Plain text
14394 #: build/C/man7/tcp.7:327
14395 msgid "Enable TCP Forward Acknowledgement support."
14396 msgstr ""
14397
14398 #. type: TP
14399 #: build/C/man7/tcp.7:327
14400 #, no-wrap
14401 msgid "I<tcp_fin_timeout> (integer; default: 60; since Linux 2.2)"
14402 msgstr ""
14403
14404 #.  Since 2.1.53
14405 #
14406 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14407 #. type: Plain text
14408 #: build/C/man7/tcp.7:337
14409 msgid ""
14410 "This specifies how many seconds to wait for a final FIN packet before the "
14411 "socket is forcibly closed.  This is strictly a violation of the TCP "
14412 "specification, but required to prevent denial-of-service attacks.  In Linux "
14413 "2.2, the default value was 180."
14414 msgstr ""
14415
14416 #. type: TP
14417 #: build/C/man7/tcp.7:337
14418 #, no-wrap
14419 msgid "I<tcp_frto> (integer; default: 0; since Linux 2.4.21/2.6)"
14420 msgstr ""
14421
14422 #.  Since 2.4.21/2.5.43
14423 #. type: Plain text
14424 #: build/C/man7/tcp.7:346
14425 msgid ""
14426 "Enable F-RTO, an enhanced recovery algorithm for TCP retransmission timeouts "
14427 "(RTOs).  It is particularly beneficial in wireless environments where packet "
14428 "loss is typically due to random radio interference rather than intermediate "
14429 "router congestion.  See RFC 4138 for more details."
14430 msgstr ""
14431
14432 #. type: Plain text
14433 #: build/C/man7/tcp.7:348
14434 msgid "This file can have one of the following values:"
14435 msgstr ""
14436
14437 #. type: Plain text
14438 #: build/C/man7/tcp.7:351
14439 msgid "Disabled."
14440 msgstr ""
14441
14442 #. type: Plain text
14443 #: build/C/man7/tcp.7:353
14444 msgid "The basic version F-RTO algorithm is enabled."
14445 msgstr ""
14446
14447 #. type: Plain text
14448 #: build/C/man7/tcp.7:358
14449 msgid ""
14450 "Enable SACK-enhanced F-RTO if flow uses SACK.  The basic version can be used "
14451 "also when SACK is in use though in that case scenario(s) exists where F-RTO "
14452 "interacts badly with the packet counting of the SACK-enabled TCP flow."
14453 msgstr ""
14454
14455 #. type: Plain text
14456 #: build/C/man7/tcp.7:362
14457 msgid ""
14458 "Before Linux 2.6.22, this parameter was a Boolean value, supporting just "
14459 "values 0 and 1 above."
14460 msgstr ""
14461
14462 #. type: TP
14463 #: build/C/man7/tcp.7:362
14464 #, no-wrap
14465 msgid "I<tcp_frto_response> (integer; default: 0; since Linux 2.6.22)"
14466 msgstr ""
14467
14468 #. type: Plain text
14469 #: build/C/man7/tcp.7:369
14470 msgid ""
14471 "When F-RTO has detected that a TCP retransmission timeout was spurious (i.e, "
14472 "the timeout would have been avoided had TCP set a longer retransmission "
14473 "timeout), TCP has several options concerning what to do next.  Possible "
14474 "values are:"
14475 msgstr ""
14476
14477 #. type: Plain text
14478 #: build/C/man7/tcp.7:377
14479 msgid ""
14480 "Rate halving based; a smooth and conservative response, results in halved "
14481 "congestion window (I<cwnd>)  and slow-start threshold (I<ssthresh>)  after "
14482 "one RTT."
14483 msgstr ""
14484
14485 #. type: Plain text
14486 #: build/C/man7/tcp.7:384
14487 msgid ""
14488 "Very conservative response; not recommended because even though being valid, "
14489 "it interacts poorly with the rest of Linux TCP; halves I<cwnd> and "
14490 "I<ssthresh> immediately."
14491 msgstr ""
14492
14493 #. type: Plain text
14494 #: build/C/man7/tcp.7:393
14495 msgid ""
14496 "Aggressive response; undoes congestion-control measures that are now known "
14497 "to be unnecessary (ignoring the possibility of a lost retransmission that "
14498 "would require TCP to be more cautious); I<cwnd> and I<ssthresh> are restored "
14499 "to the values prior to timeout."
14500 msgstr ""
14501
14502 #. type: TP
14503 #: build/C/man7/tcp.7:394
14504 #, no-wrap
14505 msgid "I<tcp_keepalive_intvl> (integer; default: 75; since Linux 2.4)"
14506 msgstr ""
14507
14508 #.  Since 2.3.18
14509 #. type: Plain text
14510 #: build/C/man7/tcp.7:398
14511 msgid "The number of seconds between TCP keep-alive probes."
14512 msgstr ""
14513
14514 #. type: TP
14515 #: build/C/man7/tcp.7:398
14516 #, no-wrap
14517 msgid "I<tcp_keepalive_probes> (integer; default: 9; since Linux 2.2)"
14518 msgstr ""
14519
14520 #.  Since 2.1.43
14521 #. type: Plain text
14522 #: build/C/man7/tcp.7:404
14523 msgid ""
14524 "The maximum number of TCP keep-alive probes to send before giving up and "
14525 "killing the connection if no response is obtained from the other end."
14526 msgstr ""
14527
14528 #. type: TP
14529 #: build/C/man7/tcp.7:404
14530 #, no-wrap
14531 msgid "I<tcp_keepalive_time> (integer; default: 7200; since Linux 2.2)"
14532 msgstr ""
14533
14534 #.  Since 2.1.43
14535 #. type: Plain text
14536 #: build/C/man7/tcp.7:416
14537 msgid ""
14538 "The number of seconds a connection needs to be idle before TCP begins "
14539 "sending out keep-alive probes.  Keep-alives are only sent when the "
14540 "B<SO_KEEPALIVE> socket option is enabled.  The default value is 7200 seconds "
14541 "(2 hours).  An idle connection is terminated after approximately an "
14542 "additional 11 minutes (9 probes an interval of 75 seconds apart) when "
14543 "keep-alive is enabled."
14544 msgstr ""
14545
14546 #
14547 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14548 #. type: Plain text
14549 #: build/C/man7/tcp.7:421
14550 msgid ""
14551 "Note that underlying connection tracking mechanisms and application timeouts "
14552 "may be much shorter."
14553 msgstr ""
14554
14555 #. type: TP
14556 #: build/C/man7/tcp.7:421
14557 #, no-wrap
14558 msgid "I<tcp_low_latency> (Boolean; default: disabled; since Linux 2.4.21/2.6)"
14559 msgstr ""
14560
14561 #.  Since 2.4.21/2.5.60
14562 #. type: Plain text
14563 #: build/C/man7/tcp.7:429
14564 msgid ""
14565 "If enabled, the TCP stack makes decisions that prefer lower latency as "
14566 "opposed to higher throughput.  It this option is disabled, then higher "
14567 "throughput is preferred.  An example of an application where this default "
14568 "should be changed would be a Beowulf compute cluster."
14569 msgstr ""
14570
14571 #. type: TP
14572 #: build/C/man7/tcp.7:429
14573 #, no-wrap
14574 msgid "I<tcp_max_orphans> (integer; default: see below; since Linux 2.4)"
14575 msgstr ""
14576
14577 #.  Since 2.3.41
14578 #. type: Plain text
14579 #: build/C/man7/tcp.7:443
14580 msgid ""
14581 "The maximum number of orphaned (not attached to any user file handle) TCP "
14582 "sockets allowed in the system.  When this number is exceeded, the orphaned "
14583 "connection is reset and a warning is printed.  This limit exists only to "
14584 "prevent simple denial-of-service attacks.  Lowering this limit is not "
14585 "recommended.  Network conditions might require you to increase the number of "
14586 "orphans allowed, but note that each orphan can eat up to ~64K of unswappable "
14587 "memory.  The default initial value is set equal to the kernel parameter "
14588 "NR_FILE.  This initial default is adjusted depending on the memory in the "
14589 "system."
14590 msgstr ""
14591
14592 #. type: TP
14593 #: build/C/man7/tcp.7:443
14594 #, no-wrap
14595 msgid "I<tcp_max_syn_backlog> (integer; default: see below; since Linux 2.2)"
14596 msgstr ""
14597
14598 #.  Since 2.1.53
14599 #. type: Plain text
14600 #: build/C/man7/tcp.7:460
14601 msgid ""
14602 "The maximum number of queued connection requests which have still not "
14603 "received an acknowledgement from the connecting client.  If this number is "
14604 "exceeded, the kernel will begin dropping requests.  The default value of 256 "
14605 "is increased to 1024 when the memory present in the system is adequate or "
14606 "greater (E<gt>= 128Mb), and reduced to 128 for those systems with very low "
14607 "memory (E<lt>= 32Mb).  It is recommended that if this needs to be increased "
14608 "above 1024, TCP_SYNQ_HSIZE in I<include/net/tcp.h> be modified to keep "
14609 "TCP_SYNQ_HSIZE*16E<lt>=tcp_max_syn_backlog, and the kernel be recompiled."
14610 msgstr ""
14611
14612 #. type: TP
14613 #: build/C/man7/tcp.7:460
14614 #, no-wrap
14615 msgid "I<tcp_max_tw_buckets> (integer; default: see below; since Linux 2.4)"
14616 msgstr ""
14617
14618 #.  Since 2.3.41
14619 #. type: Plain text
14620 #: build/C/man7/tcp.7:470
14621 msgid ""
14622 "The maximum number of sockets in TIME_WAIT state allowed in the system.  "
14623 "This limit exists only to prevent simple denial-of-service attacks.  The "
14624 "default value of NR_FILE*2 is adjusted depending on the memory in the "
14625 "system.  If this number is exceeded, the socket is closed and a warning is "
14626 "printed."
14627 msgstr ""
14628
14629 #. type: TP
14630 #: build/C/man7/tcp.7:470
14631 #, no-wrap
14632 msgid "I<tcp_moderate_rcvbuf> (Boolean; default: enabled; since Linux 2.4.17/2.6.7)"
14633 msgstr ""
14634
14635 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14636 #. type: Plain text
14637 #: build/C/man7/tcp.7:477
14638 msgid ""
14639 "If enabled, TCP performs receive buffer auto-tuning, attempting to "
14640 "automatically size the buffer (no greater than I<tcp_rmem[2]>)  to match the "
14641 "size required by the path for full throughput."
14642 msgstr ""
14643
14644 #. type: TP
14645 #: build/C/man7/tcp.7:477
14646 #, no-wrap
14647 msgid "I<tcp_mem> (since Linux 2.4)"
14648 msgstr ""
14649
14650 #.  Since 2.4.0-test7
14651 #. type: Plain text
14652 #: build/C/man7/tcp.7:489
14653 msgid ""
14654 "This is a vector of 3 integers: [low, pressure, high].  These bounds, "
14655 "measured in units of the system page size, are used by TCP to track its "
14656 "memory usage.  The defaults are calculated at boot time from the amount of "
14657 "available memory.  (TCP can only use I<low memory> for this, which is "
14658 "limited to around 900 megabytes on 32-bit systems.  64-bit systems do not "
14659 "suffer this limitation.)"
14660 msgstr ""
14661
14662 #. type: TP
14663 #: build/C/man7/tcp.7:490
14664 #, no-wrap
14665 msgid "I<low>"
14666 msgstr ""
14667
14668 #. type: Plain text
14669 #: build/C/man7/tcp.7:494
14670 msgid ""
14671 "TCP doesn't regulate its memory allocation when the number of pages it has "
14672 "allocated globally is below this number."
14673 msgstr ""
14674
14675 #. type: TP
14676 #: build/C/man7/tcp.7:494 build/C/man7/udp.7:145
14677 #, no-wrap
14678 msgid "I<pressure>"
14679 msgstr ""
14680
14681 #. type: Plain text
14682 #: build/C/man7/tcp.7:503
14683 msgid ""
14684 "When the amount of memory allocated by TCP exceeds this number of pages, TCP "
14685 "moderates its memory consumption.  This memory pressure state is exited once "
14686 "the number of pages allocated falls below the I<low> mark."
14687 msgstr ""
14688
14689 #. type: TP
14690 #: build/C/man7/tcp.7:503
14691 #, no-wrap
14692 msgid "I<high>"
14693 msgstr ""
14694
14695 #. type: Plain text
14696 #: build/C/man7/tcp.7:507
14697 msgid ""
14698 "The maximum number of pages, globally, that TCP will allocate.  This value "
14699 "overrides any other limits imposed by the kernel."
14700 msgstr ""
14701
14702 #. type: TP
14703 #: build/C/man7/tcp.7:508
14704 #, no-wrap
14705 msgid "I<tcp_mtu_probing> (integer; default: 0; since Linux 2.6.17)"
14706 msgstr ""
14707
14708 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14709 #. type: Plain text
14710 #: build/C/man7/tcp.7:513
14711 msgid ""
14712 "This parameter controls TCP Packetization-Layer Path MTU Discovery.  The "
14713 "following values may be assigned to the file:"
14714 msgstr ""
14715
14716 #. type: Plain text
14717 #: build/C/man7/tcp.7:516
14718 msgid "Disabled"
14719 msgstr ""
14720
14721 #. type: Plain text
14722 #: build/C/man7/tcp.7:518
14723 msgid "Disabled by default, enabled when an ICMP black hole detected"
14724 msgstr ""
14725
14726 #. type: Plain text
14727 #: build/C/man7/tcp.7:521
14728 msgid "Always enabled, use initial MSS of I<tcp_base_mss>."
14729 msgstr ""
14730
14731 #. type: TP
14732 #: build/C/man7/tcp.7:522
14733 #, no-wrap
14734 msgid "I<tcp_no_metrics_save> (Boolean; default: disabled; since Linux 2.6.6)"
14735 msgstr ""
14736
14737 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14738 #. type: Plain text
14739 #: build/C/man7/tcp.7:533
14740 msgid ""
14741 "By default, TCP saves various connection metrics in the route cache when the "
14742 "connection closes, so that connections established in the near future can "
14743 "use these to set initial conditions.  Usually, this increases overall "
14744 "performance, but it may sometimes cause performance degradation.  If "
14745 "I<tcp_no_metrics_save> is enabled, TCP will not cache metrics on closing "
14746 "connections."
14747 msgstr ""
14748
14749 #. type: TP
14750 #: build/C/man7/tcp.7:533
14751 #, no-wrap
14752 msgid "I<tcp_orphan_retries> (integer; default: 8; since Linux 2.4)"
14753 msgstr ""
14754
14755 #.  Since 2.3.41
14756 #. type: Plain text
14757 #: build/C/man7/tcp.7:538
14758 msgid ""
14759 "The maximum number of attempts made to probe the other end of a connection "
14760 "which has been closed by our end."
14761 msgstr ""
14762
14763 #. type: TP
14764 #: build/C/man7/tcp.7:538
14765 #, no-wrap
14766 msgid "I<tcp_reordering> (integer; default: 3; since Linux 2.4)"
14767 msgstr ""
14768
14769 #.  Since 2.4.0-test7
14770 #. type: Plain text
14771 #: build/C/man7/tcp.7:547
14772 msgid ""
14773 "The maximum a packet can be reordered in a TCP packet stream without TCP "
14774 "assuming packet loss and going into slow start.  It is not advisable to "
14775 "change this number.  This is a packet reordering detection metric designed "
14776 "to minimize unnecessary back off and retransmits provoked by reordering of "
14777 "packets on a connection."
14778 msgstr ""
14779
14780 #. type: TP
14781 #: build/C/man7/tcp.7:547
14782 #, no-wrap
14783 msgid "I<tcp_retrans_collapse> (Boolean; default: enabled; since Linux 2.2)"
14784 msgstr ""
14785
14786 #.  Since 2.1.96
14787 #. type: Plain text
14788 #: build/C/man7/tcp.7:551
14789 msgid "Try to send full-sized packets during retransmit."
14790 msgstr ""
14791
14792 #. type: TP
14793 #: build/C/man7/tcp.7:551
14794 #, no-wrap
14795 msgid "I<tcp_retries1> (integer; default: 3; since Linux 2.2)"
14796 msgstr ""
14797
14798 #.  Since 2.1.43
14799 #. type: Plain text
14800 #: build/C/man7/tcp.7:561
14801 msgid ""
14802 "The number of times TCP will attempt to retransmit a packet on an "
14803 "established connection normally, without the extra effort of getting the "
14804 "network layers involved.  Once we exceed this number of retransmits, we "
14805 "first have the network layer update the route if possible before each new "
14806 "retransmit.  The default is the RFC specified minimum of 3."
14807 msgstr ""
14808
14809 #. type: TP
14810 #: build/C/man7/tcp.7:561
14811 #, no-wrap
14812 msgid "I<tcp_retries2> (integer; default: 15; since Linux 2.2)"
14813 msgstr ""
14814
14815 #.  Since 2.1.43
14816 #. type: Plain text
14817 #: build/C/man7/tcp.7:571
14818 msgid ""
14819 "The maximum number of times a TCP packet is retransmitted in established "
14820 "state before giving up.  The default value is 15, which corresponds to a "
14821 "duration of approximately between 13 to 30 minutes, depending on the "
14822 "retransmission timeout.  The RFC\\ 1122 specified minimum limit of 100 "
14823 "seconds is typically deemed too short."
14824 msgstr ""
14825
14826 #. type: TP
14827 #: build/C/man7/tcp.7:571
14828 #, no-wrap
14829 msgid "I<tcp_rfc1337> (Boolean; default: disabled; since Linux 2.2)"
14830 msgstr ""
14831
14832 #.  Since 2.1.90
14833 #. type: Plain text
14834 #: build/C/man7/tcp.7:579
14835 msgid ""
14836 "Enable TCP behavior conformant with RFC\\ 1337.  When disabled, if a RST is "
14837 "received in TIME_WAIT state, we close the socket immediately without waiting "
14838 "for the end of the TIME_WAIT period."
14839 msgstr ""
14840
14841 #. type: TP
14842 #: build/C/man7/tcp.7:579
14843 #, no-wrap
14844 msgid "I<tcp_rmem> (since Linux 2.4)"
14845 msgstr ""
14846
14847 #.  Since 2.4.0-test7
14848 #. type: Plain text
14849 #: build/C/man7/tcp.7:587
14850 msgid ""
14851 "This is a vector of 3 integers: [min, default, max].  These parameters are "
14852 "used by TCP to regulate receive buffer sizes.  TCP dynamically adjusts the "
14853 "size of the receive buffer from the defaults listed below, in the range of "
14854 "these values, depending on memory available in the system."
14855 msgstr ""
14856
14857 #. type: TP
14858 #: build/C/man7/tcp.7:588 build/C/man7/tcp.7:764 build/C/man7/udp.7:139
14859 #, no-wrap
14860 msgid "I<min>"
14861 msgstr ""
14862
14863 #. type: Plain text
14864 #: build/C/man7/tcp.7:603
14865 msgid ""
14866 "minimum size of the receive buffer used by each TCP socket.  The default "
14867 "value is the system page size.  (On Linux 2.4, the default value is 4K, "
14868 "lowered to B<PAGE_SIZE> bytes in low-memory systems.)  This value is used to "
14869 "ensure that in memory pressure mode, allocations below this size will still "
14870 "succeed.  This is not used to bound the size of the receive buffer declared "
14871 "using B<SO_RCVBUF> on a socket."
14872 msgstr ""
14873
14874 #. type: TP
14875 #: build/C/man7/tcp.7:603 build/C/man7/tcp.7:774
14876 #, no-wrap
14877 msgid "I<default>"
14878 msgstr ""
14879
14880 #. type: Plain text
14881 #: build/C/man7/tcp.7:617
14882 msgid ""
14883 "the default size of the receive buffer for a TCP socket.  This value "
14884 "overwrites the initial default buffer size from the generic global "
14885 "I<net.core.rmem_default> defined for all protocols.  The default value is "
14886 "87380 bytes.  (On Linux 2.4, this will be lowered to 43689 in low-memory "
14887 "systems.)  If larger receive buffer sizes are desired, this value should be "
14888 "increased (to affect all sockets).  To employ large TCP windows, the "
14889 "I<net.ipv4.tcp_window_scaling> must be enabled (default)."
14890 msgstr ""
14891
14892 #. type: TP
14893 #: build/C/man7/tcp.7:617 build/C/man7/tcp.7:788 build/C/man7/udp.7:151
14894 #, no-wrap
14895 msgid "I<max>"
14896 msgstr ""
14897
14898 #. type: Plain text
14899 #: build/C/man7/tcp.7:626
14900 msgid ""
14901 "the maximum size of the receive buffer used by each TCP socket.  This value "
14902 "does not override the global I<net.core.rmem_max>.  This is not used to "
14903 "limit the size of the receive buffer declared using B<SO_RCVBUF> on a "
14904 "socket.  The default value is calculated using the formula"
14905 msgstr ""
14906
14907 #. type: Plain text
14908 #: build/C/man7/tcp.7:628
14909 #, no-wrap
14910 msgid "    max(87380, min(4MB, I<tcp_mem>[1]*PAGE_SIZE/128))\n"
14911 msgstr ""
14912
14913 #. type: Plain text
14914 #: build/C/man7/tcp.7:631
14915 msgid ""
14916 "(On Linux 2.4, the default is 87380*2 bytes, lowered to 87380 in low-memory "
14917 "systems)."
14918 msgstr ""
14919
14920 #. type: TP
14921 #: build/C/man7/tcp.7:632
14922 #, no-wrap
14923 msgid "I<tcp_sack> (Boolean; default: enabled; since Linux 2.2)"
14924 msgstr ""
14925
14926 #.  Since 2.1.36
14927 #. type: Plain text
14928 #: build/C/man7/tcp.7:636
14929 msgid "Enable RFC\\ 2018 TCP Selective Acknowledgements."
14930 msgstr ""
14931
14932 #. type: TP
14933 #: build/C/man7/tcp.7:636
14934 #, no-wrap
14935 msgid "I<tcp_slow_start_after_idle> (Boolean; default: enabled; since Linux 2.6.18)"
14936 msgstr ""
14937
14938 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14939 #. type: Plain text
14940 #: build/C/man7/tcp.7:644
14941 msgid ""
14942 "If enabled, provide RFC 2861 behavior and time out the congestion window "
14943 "after an idle period.  An idle period is defined as the current RTO "
14944 "(retransmission timeout).  If disabled, the congestion window will not be "
14945 "timed out after an idle period."
14946 msgstr ""
14947
14948 #. type: TP
14949 #: build/C/man7/tcp.7:644
14950 #, no-wrap
14951 msgid "I<tcp_stdurg> (Boolean; default: disabled; since Linux 2.2)"
14952 msgstr ""
14953
14954 #.  Since 2.1.44
14955 #.  RFC 793 was ambiguous in its specification of the meaning of the
14956 #.  urgent pointer.  RFC 1122 (and RFC 961) fixed on a particular
14957 #.  resolution of this ambiguity (unfortunately the "wrong" one).
14958 #. type: Plain text
14959 #: build/C/man7/tcp.7:658
14960 msgid ""
14961 "If this option is enabled, then use the RFC\\ 1122 interpretation of the TCP "
14962 "urgent-pointer field.  According to this interpretation, the urgent pointer "
14963 "points to the last byte of urgent data.  If this option is disabled, then "
14964 "use the BSD-compatible interpretation of the urgent pointer: the urgent "
14965 "pointer points to the first byte after the urgent data.  Enabling this "
14966 "option may lead to interoperability problems."
14967 msgstr ""
14968
14969 #. type: TP
14970 #: build/C/man7/tcp.7:658
14971 #, no-wrap
14972 msgid "I<tcp_syn_retries> (integer; default: 5; since Linux 2.2)"
14973 msgstr ""
14974
14975 #.  Since 2.1.38
14976 #. type: Plain text
14977 #: build/C/man7/tcp.7:665
14978 msgid ""
14979 "The maximum number of times initial SYNs for an active TCP connection "
14980 "attempt will be retransmitted.  This value should not be higher than 255.  "
14981 "The default value is 5, which corresponds to approximately 180 seconds."
14982 msgstr ""
14983
14984 #. type: TP
14985 #: build/C/man7/tcp.7:665
14986 #, no-wrap
14987 msgid "I<tcp_synack_retries> (integer; default: 5; since Linux 2.2)"
14988 msgstr ""
14989
14990 #.  Since 2.1.38
14991 #. type: Plain text
14992 #: build/C/man7/tcp.7:671
14993 msgid ""
14994 "The maximum number of times a SYN/ACK segment for a passive TCP connection "
14995 "will be retransmitted.  This number should not be higher than 255."
14996 msgstr ""
14997
14998 #. type: TP
14999 #: build/C/man7/tcp.7:671
15000 #, no-wrap
15001 msgid "I<tcp_syncookies> (Boolean; since Linux 2.2)"
15002 msgstr ""
15003
15004 #.  Since 2.1.43
15005 #. type: Plain text
15006 #: build/C/man7/tcp.7:691
15007 msgid ""
15008 "Enable TCP syncookies.  The kernel must be compiled with "
15009 "B<CONFIG_SYN_COOKIES>.  Send out syncookies when the syn backlog queue of a "
15010 "socket overflows.  The syncookies feature attempts to protect a socket from "
15011 "a SYN flood attack.  This should be used as a last resort, if at all.  This "
15012 "is a violation of the TCP protocol, and conflicts with other areas of TCP "
15013 "such as TCP extensions.  It can cause problems for clients and relays.  It "
15014 "is not recommended as a tuning mechanism for heavily loaded servers to help "
15015 "with overloaded or misconfigured conditions.  For recommended alternatives "
15016 "see I<tcp_max_syn_backlog>, I<tcp_synack_retries>, and "
15017 "I<tcp_abort_on_overflow>."
15018 msgstr ""
15019
15020 #. type: TP
15021 #: build/C/man7/tcp.7:691
15022 #, no-wrap
15023 msgid "I<tcp_timestamps> (Boolean; default: enabled; since Linux 2.2)"
15024 msgstr ""
15025
15026 #.  Since 2.1.36
15027 #. type: Plain text
15028 #: build/C/man7/tcp.7:695
15029 msgid "Enable RFC\\ 1323 TCP timestamps."
15030 msgstr ""
15031
15032 #. type: TP
15033 #: build/C/man7/tcp.7:695
15034 #, no-wrap
15035 msgid "I<tcp_tso_win_divisor> (integer; default: 3; since Linux 2.6.9)"
15036 msgstr ""
15037
15038 #. type: Plain text
15039 #: build/C/man7/tcp.7:701
15040 msgid ""
15041 "This parameter controls what percentage of the congestion window can be "
15042 "consumed by a single TCP Segmentation Offload (TSO) frame.  The setting of "
15043 "this parameter is a tradeoff between burstiness and building larger TSO "
15044 "frames."
15045 msgstr ""
15046
15047 #. type: TP
15048 #: build/C/man7/tcp.7:701
15049 #, no-wrap
15050 msgid "I<tcp_tw_recycle> (Boolean; default: disabled; since Linux 2.4)"
15051 msgstr ""
15052
15053 #.  Since 2.3.15
15054 #
15055 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15056 #. type: Plain text
15057 #: build/C/man7/tcp.7:710
15058 msgid ""
15059 "Enable fast recycling of TIME_WAIT sockets.  Enabling this option is not "
15060 "recommended since this causes problems when working with NAT (Network "
15061 "Address Translation)."
15062 msgstr ""
15063
15064 #. type: TP
15065 #: build/C/man7/tcp.7:710
15066 #, no-wrap
15067 msgid "I<tcp_tw_reuse> (Boolean; default: disabled; since Linux 2.4.19/2.6)"
15068 msgstr ""
15069
15070 #.  Since 2.4.19/2.5.43
15071 #
15072 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15073 #. type: Plain text
15074 #: build/C/man7/tcp.7:718
15075 msgid ""
15076 "Allow to reuse TIME_WAIT sockets for new connections when it is safe from "
15077 "protocol viewpoint.  It should not be changed without advice/request of "
15078 "technical experts."
15079 msgstr ""
15080
15081 #. type: TP
15082 #: build/C/man7/tcp.7:718
15083 #, no-wrap
15084 msgid "I<tcp_vegas_cong_avoid> (Boolean; default: disabled; Linux 2.2 to 2.6.13)"
15085 msgstr ""
15086
15087 #.  Since 2.1.8; removed in 2.6.13
15088 #
15089 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15090 #. type: Plain text
15091 #: build/C/man7/tcp.7:729
15092 msgid ""
15093 "Enable TCP Vegas congestion avoidance algorithm.  TCP Vegas is a sender-side "
15094 "only change to TCP that anticipates the onset of congestion by estimating "
15095 "the bandwidth.  TCP Vegas adjusts the sending rate by modifying the "
15096 "congestion window.  TCP Vegas should provide less packet loss, but it is not "
15097 "as aggressive as TCP Reno."
15098 msgstr ""
15099
15100 #. type: TP
15101 #: build/C/man7/tcp.7:729
15102 #, no-wrap
15103 msgid "I<tcp_westwood> (Boolean; default: disabled; Linux 2.4.26/2.6.3 to 2.6.13)"
15104 msgstr ""
15105
15106 #. type: Plain text
15107 #: build/C/man7/tcp.7:741
15108 msgid ""
15109 "Enable TCP Westwood+ congestion control algorithm.  TCP Westwood+ is a "
15110 "sender-side only modification of the TCP Reno protocol stack that optimizes "
15111 "the performance of TCP congestion control.  It is based on end-to-end "
15112 "bandwidth estimation to set congestion window and slow start threshold after "
15113 "a congestion episode.  Using this estimation, TCP Westwood+ adaptively sets "
15114 "a slow start threshold and a congestion window which takes into account the "
15115 "bandwidth used at the time congestion is experienced.  TCP Westwood+ "
15116 "significantly increases fairness with respect to TCP Reno in wired networks "
15117 "and throughput over wireless links."
15118 msgstr ""
15119
15120 #. type: TP
15121 #: build/C/man7/tcp.7:741
15122 #, no-wrap
15123 msgid "I<tcp_window_scaling> (Boolean; default: enabled; since Linux 2.2)"
15124 msgstr ""
15125
15126 #.  Since 2.1.36
15127 #. type: Plain text
15128 #: build/C/man7/tcp.7:755
15129 msgid ""
15130 "Enable RFC\\ 1323 TCP window scaling.  This feature allows the use of a "
15131 "large window (E<gt> 64K) on a TCP connection, should the other end support "
15132 "it.  Normally, the 16 bit window length field in the TCP header limits the "
15133 "window size to less than 64K bytes.  If larger windows are desired, "
15134 "applications can increase the size of their socket buffers and the window "
15135 "scaling option will be employed.  If I<tcp_window_scaling> is disabled, TCP "
15136 "will not negotiate the use of window scaling with the other end during "
15137 "connection setup."
15138 msgstr ""
15139
15140 #. type: TP
15141 #: build/C/man7/tcp.7:755
15142 #, no-wrap
15143 msgid "I<tcp_wmem> (since Linux 2.4)"
15144 msgstr ""
15145
15146 #.  Since 2.4.0-test7
15147 #. type: Plain text
15148 #: build/C/man7/tcp.7:763
15149 msgid ""
15150 "This is a vector of 3 integers: [min, default, max].  These parameters are "
15151 "used by TCP to regulate send buffer sizes.  TCP dynamically adjusts the size "
15152 "of the send buffer from the default values listed below, in the range of "
15153 "these values, depending on memory available."
15154 msgstr ""
15155
15156 #. type: Plain text
15157 #: build/C/man7/tcp.7:774
15158 msgid ""
15159 "Minimum size of the send buffer used by each TCP socket.  The default value "
15160 "is the system page size.  (On Linux 2.4, the default value is 4K bytes.)  "
15161 "This value is used to ensure that in memory pressure mode, allocations below "
15162 "this size will still succeed.  This is not used to bound the size of the "
15163 "send buffer declared using B<SO_SNDBUF> on a socket."
15164 msgstr ""
15165
15166 #.  True in Linux 2.4 and 2.6
15167 #. type: Plain text
15168 #: build/C/man7/tcp.7:788
15169 msgid ""
15170 "The default size of the send buffer for a TCP socket.  This value overwrites "
15171 "the initial default buffer size from the generic global "
15172 "I</proc/sys/net/core/wmem_default> defined for all protocols.  The default "
15173 "value is 16K bytes.  If larger send buffer sizes are desired, this value "
15174 "should be increased (to affect all sockets).  To employ large TCP windows, "
15175 "the I</proc/sys/net/ipv4/tcp_window_scaling> must be set to a nonzero value "
15176 "(default)."
15177 msgstr ""
15178
15179 #. type: Plain text
15180 #: build/C/man7/tcp.7:797
15181 msgid ""
15182 "The maximum size of the send buffer used by each TCP socket.  This value "
15183 "does not override the value in I</proc/sys/net/core/wmem_max>.  This is not "
15184 "used to limit the size of the send buffer declared using B<SO_SNDBUF> on a "
15185 "socket.  The default value is calculated using the formula"
15186 msgstr ""
15187
15188 #. type: Plain text
15189 #: build/C/man7/tcp.7:799
15190 #, no-wrap
15191 msgid "    max(65536, min(4MB, I<tcp_mem>[1]*PAGE_SIZE/128))\n"
15192 msgstr ""
15193
15194 #. type: Plain text
15195 #: build/C/man7/tcp.7:802
15196 msgid ""
15197 "(On Linux 2.4, the default value is 128K bytes, lowered 64K depending on "
15198 "low-memory systems.)"
15199 msgstr ""
15200
15201 #. type: TP
15202 #: build/C/man7/tcp.7:803
15203 #, no-wrap
15204 msgid ""
15205 "I<tcp_workaround_signed_windows> (Boolean; default: disabled; since Linux "
15206 "2.6.26)"
15207 msgstr ""
15208
15209 #. type: Plain text
15210 #: build/C/man7/tcp.7:809
15211 msgid ""
15212 "If enabled, assume that no receipt of a window-scaling option means that the "
15213 "remote TCP is broken and treats the window as a signed quantity.  If "
15214 "disabled, assume that the remote TCP is not broken even if we do not receive "
15215 "a window scaling option from it."
15216 msgstr ""
15217
15218 #.  or SOL_TCP on Linux
15219 #.  FIXME Document TCP_CONGESTION (new in 2.6.13)
15220 #. type: Plain text
15221 #: build/C/man7/tcp.7:824
15222 msgid ""
15223 "To set or get a TCP socket option, call B<getsockopt>(2)  to read or "
15224 "B<setsockopt>(2)  to write the option with the option level argument set to "
15225 "B<IPPROTO_TCP>.  In addition, most B<IPPROTO_IP> socket options are valid on "
15226 "TCP sockets.  For more information see B<ip>(7)."
15227 msgstr ""
15228
15229 #. type: TP
15230 #: build/C/man7/tcp.7:824
15231 #, no-wrap
15232 msgid "B<TCP_CORK> (since Linux 2.2)"
15233 msgstr ""
15234
15235 #.  precisely: since 2.1.127
15236 #. type: Plain text
15237 #: build/C/man7/tcp.7:840
15238 msgid ""
15239 "If set, don't send out partial frames.  All queued partial frames are sent "
15240 "when the option is cleared again.  This is useful for prepending headers "
15241 "before calling B<sendfile>(2), or for throughput optimization.  As currently "
15242 "implemented, there is a 200 millisecond ceiling on the time for which output "
15243 "is corked by B<TCP_CORK>.  If this ceiling is reached, then queued data is "
15244 "automatically transmitted.  This option can be combined with B<TCP_NODELAY> "
15245 "only since Linux 2.5.71.  This option should not be used in code intended to "
15246 "be portable."
15247 msgstr ""
15248
15249 #. type: TP
15250 #: build/C/man7/tcp.7:840
15251 #, no-wrap
15252 msgid "B<TCP_DEFER_ACCEPT> (since Linux 2.4)"
15253 msgstr ""
15254
15255 #.  Precisely: since 2.3.38
15256 #. type: Plain text
15257 #: build/C/man7/tcp.7:848
15258 msgid ""
15259 "Allow a listener to be awakened only when data arrives on the socket.  Takes "
15260 "an integer value (seconds), this can bound the maximum number of attempts "
15261 "TCP will make to complete the connection.  This option should not be used in "
15262 "code intended to be portable."
15263 msgstr ""
15264
15265 #. type: TP
15266 #: build/C/man7/tcp.7:848
15267 #, no-wrap
15268 msgid "B<TCP_INFO> (since Linux 2.4)"
15269 msgstr ""
15270
15271 #. type: Plain text
15272 #: build/C/man7/tcp.7:854
15273 msgid ""
15274 "Used to collect information about this socket.  The kernel returns a "
15275 "I<struct tcp_info> as defined in the file I</usr/include/linux/tcp.h>.  This "
15276 "option should not be used in code intended to be portable."
15277 msgstr ""
15278
15279 #. type: TP
15280 #: build/C/man7/tcp.7:854
15281 #, no-wrap
15282 msgid "B<TCP_KEEPCNT> (since Linux 2.4)"
15283 msgstr ""
15284
15285 #.  Precisely: since 2.3.18
15286 #. type: Plain text
15287 #: build/C/man7/tcp.7:861
15288 msgid ""
15289 "The maximum number of keepalive probes TCP should send before dropping the "
15290 "connection.  This option should not be used in code intended to be portable."
15291 msgstr ""
15292
15293 #. type: TP
15294 #: build/C/man7/tcp.7:861
15295 #, no-wrap
15296 msgid "B<TCP_KEEPIDLE> (since Linux 2.4)"
15297 msgstr ""
15298
15299 #.  Precisely: since 2.3.18
15300 #. type: Plain text
15301 #: build/C/man7/tcp.7:870
15302 msgid ""
15303 "The time (in seconds) the connection needs to remain idle before TCP starts "
15304 "sending keepalive probes, if the socket option B<SO_KEEPALIVE> has been set "
15305 "on this socket.  This option should not be used in code intended to be "
15306 "portable."
15307 msgstr ""
15308
15309 #. type: TP
15310 #: build/C/man7/tcp.7:870
15311 #, no-wrap
15312 msgid "B<TCP_KEEPINTVL> (since Linux 2.4)"
15313 msgstr ""
15314
15315 #.  Precisely: since 2.3.18
15316 #. type: Plain text
15317 #: build/C/man7/tcp.7:875
15318 msgid ""
15319 "The time (in seconds) between individual keepalive probes.  This option "
15320 "should not be used in code intended to be portable."
15321 msgstr ""
15322
15323 #. type: TP
15324 #: build/C/man7/tcp.7:875
15325 #, no-wrap
15326 msgid "B<TCP_LINGER2> (since Linux 2.4)"
15327 msgstr ""
15328
15329 #.  Precisely: since 2.3.41
15330 #. type: Plain text
15331 #: build/C/man7/tcp.7:887
15332 msgid ""
15333 "The lifetime of orphaned FIN_WAIT2 state sockets.  This option can be used "
15334 "to override the system-wide setting in the file "
15335 "I</proc/sys/net/ipv4/tcp_fin_timeout> for this socket.  This is not to be "
15336 "confused with the B<socket>(7)  level option B<SO_LINGER>.  This option "
15337 "should not be used in code intended to be portable."
15338 msgstr ""
15339
15340 #. type: TP
15341 #: build/C/man7/tcp.7:887
15342 #, no-wrap
15343 msgid "B<TCP_MAXSEG>"
15344 msgstr ""
15345
15346 #.  Present in Linux 1.0
15347 #.  FIXME
15348 #.  Document TCP_MD5SIG, added in Linux 2.6.20,
15349 #.  Needs CONFIG_TCP_MD5SIG
15350 #.  From net/inet/Kconfig
15351 #.  bool "TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL)"
15352 #.  RFC2385 specifies a method of giving MD5 protection to TCP sessions.
15353 #.  Its main (only?) use is to protect BGP sessions between core routers
15354 #.  on the Internet.
15355 #
15356 #.  There is a TCP_MD5SIG option documented in FreeBSD's tcp(4),
15357 #.  but probably many details are different on Linux
15358 #.  Authors were yoshfuji@linux-ipv6.org and Dave Muller
15359 #.  http://thread.gmane.org/gmane.linux.network/47490
15360 #.  http://www.daemon-systems.org/man/tcp.4.html
15361 #.  http://article.gmane.org/gmane.os.netbsd.devel.network/3767/match=tcp_md5sig+freebsd
15362 #. type: Plain text
15363 #: build/C/man7/tcp.7:912
15364 msgid ""
15365 "The maximum segment size for outgoing TCP packets.  In Linux 2.2 and "
15366 "earlier, and in Linux 2.6.28 and later, if this option is set before "
15367 "connection establishment, it also changes the MSS value announced to the "
15368 "other end in the initial packet.  Values greater than the (eventual) "
15369 "interface MTU have no effect.  TCP will also impose its minimum and maximum "
15370 "bounds over the value provided."
15371 msgstr ""
15372
15373 #. type: TP
15374 #: build/C/man7/tcp.7:912
15375 #, no-wrap
15376 msgid "B<TCP_NODELAY>"
15377 msgstr ""
15378
15379 #.  Present in Linux 1.0
15380 #. type: Plain text
15381 #: build/C/man7/tcp.7:929
15382 msgid ""
15383 "If set, disable the Nagle algorithm.  This means that segments are always "
15384 "sent as soon as possible, even if there is only a small amount of data.  "
15385 "When not set, data is buffered until there is a sufficient amount to send "
15386 "out, thereby avoiding the frequent sending of small packets, which results "
15387 "in poor utilization of the network.  This option is overridden by "
15388 "B<TCP_CORK>; however, setting this option forces an explicit flush of "
15389 "pending output, even if B<TCP_CORK> is currently set."
15390 msgstr ""
15391
15392 #. type: TP
15393 #: build/C/man7/tcp.7:929
15394 #, no-wrap
15395 msgid "B<TCP_QUICKACK> (since Linux 2.4.4)"
15396 msgstr ""
15397
15398 #.  FIXME Document TCP_USER_TIMEOUT (new in 2.6.37)
15399 #.  See commit dca43c75e7e545694a9dd6288553f55c53e2a3a3
15400 #. type: Plain text
15401 #: build/C/man7/tcp.7:946
15402 msgid ""
15403 "Enable quickack mode if set or disable quickack mode if cleared.  In "
15404 "quickack mode, acks are sent immediately, rather than delayed if needed in "
15405 "accordance to normal TCP operation.  This flag is not permanent, it only "
15406 "enables a switch to or from quickack mode.  Subsequent operation of the TCP "
15407 "protocol will once again enter/leave quickack mode depending on internal "
15408 "protocol processing and factors such as delayed ack timeouts occurring and "
15409 "data transfer.  This option should not be used in code intended to be "
15410 "portable."
15411 msgstr ""
15412
15413 #. type: TP
15414 #: build/C/man7/tcp.7:946
15415 #, no-wrap
15416 msgid "B<TCP_SYNCNT> (since Linux 2.4)"
15417 msgstr ""
15418
15419 #.  Precisely: since 2.3.18
15420 #. type: Plain text
15421 #: build/C/man7/tcp.7:953
15422 msgid ""
15423 "Set the number of SYN retransmits that TCP should send before aborting the "
15424 "attempt to connect.  It cannot exceed 255.  This option should not be used "
15425 "in code intended to be portable."
15426 msgstr ""
15427
15428 #. type: TP
15429 #: build/C/man7/tcp.7:953
15430 #, no-wrap
15431 msgid "B<TCP_WINDOW_CLAMP> (since Linux 2.4)"
15432 msgstr ""
15433
15434 #.  Precisely: since 2.3.41
15435 #. type: Plain text
15436 #: build/C/man7/tcp.7:960
15437 msgid ""
15438 "Bound the size of the advertised window to this value.  The kernel imposes a "
15439 "minimum size of SOCK_MIN_RCVBUF/2.  This option should not be used in code "
15440 "intended to be portable."
15441 msgstr ""
15442
15443 #. type: SS
15444 #: build/C/man7/tcp.7:960 build/C/man7/unix.7:173
15445 #, no-wrap
15446 msgid "Sockets API"
15447 msgstr ""
15448
15449 #. type: Plain text
15450 #: build/C/man7/tcp.7:969
15451 msgid ""
15452 "TCP provides limited support for out-of-band data, in the form of (a single "
15453 "byte of) urgent data.  In Linux this means if the other end sends newer "
15454 "out-of-band data the older urgent data is inserted as normal data into the "
15455 "stream (even when B<SO_OOBINLINE> is not set).  This differs from BSD-based "
15456 "stacks."
15457 msgstr ""
15458
15459 #. type: Plain text
15460 #: build/C/man7/tcp.7:976
15461 msgid ""
15462 "Linux uses the BSD compatible interpretation of the urgent pointer field by "
15463 "default.  This violates RFC\\ 1122, but is required for interoperability "
15464 "with other stacks.  It can be changed via I</proc/sys/net/ipv4/tcp_stdurg>."
15465 msgstr ""
15466
15467 #. type: Plain text
15468 #: build/C/man7/tcp.7:981
15469 msgid ""
15470 "It is possible to peek at out-of-band data using the I<recv>(2)  B<MSG_PEEK> "
15471 "flag."
15472 msgstr ""
15473
15474 #. type: Plain text
15475 #: build/C/man7/tcp.7:997
15476 msgid ""
15477 "Since version 2.4, Linux supports the use of B<MSG_TRUNC> in the I<flags> "
15478 "argument of B<recv>(2)  (and B<recvmsg>(2)).  This flag causes the received "
15479 "bytes of data to be discarded, rather than passed back in a caller-supplied "
15480 "buffer.  Since Linux 2.4.4, B<MSG_PEEK> also has this effect when used in "
15481 "conjunction with B<MSG_OOB> to receive out-of-band data."
15482 msgstr ""
15483
15484 #. type: Plain text
15485 #: build/C/man7/tcp.7:1003 build/C/man7/unix.7:286
15486 msgid ""
15487 "The following B<ioctl>(2)  calls return information in I<value>.  The "
15488 "correct syntax is:"
15489 msgstr ""
15490
15491 #. type: Plain text
15492 #: build/C/man7/tcp.7:1008
15493 #, no-wrap
15494 msgid ""
15495 "B<int>I< value>B<;>\n"
15496 "I<error>B< = ioctl(>I<tcp_socket>B<, >I<ioctl_type>B<, &>I<value>B<);>\n"
15497 msgstr ""
15498
15499 #. type: Plain text
15500 #: build/C/man7/tcp.7:1013
15501 msgid "I<ioctl_type> is one of the following:"
15502 msgstr ""
15503
15504 #. type: TP
15505 #: build/C/man7/tcp.7:1013 build/C/man7/unix.7:296
15506 #, no-wrap
15507 msgid "B<SIOCINQ>"
15508 msgstr ""
15509
15510 #.  FIXME http://sources.redhat.com/bugzilla/show_bug.cgi?id=12002,
15511 #.  filed 2010-09-10, may cause SIOCINQ to be defined in glibc headers
15512 #.  SIOCOUTQ also has an effect for UNIX domain sockets, but not
15513 #.  quite what userland might expect. It seems to return the number
15514 #.  of bytes allocated for buffers containing pending output.
15515 #.  That number is normally larger than the number of bytes of pending
15516 #.  output. Since this info is, from userland's point of view, imprecise,
15517 #.  and it may well change, probably best not to document this now.
15518 #. type: Plain text
15519 #: build/C/man7/tcp.7:1029 build/C/man7/unix.7:318
15520 msgid ""
15521 "Returns the amount of queued unread data in the receive buffer.  The socket "
15522 "must not be in LISTEN state, otherwise an error (B<EINVAL>)  is returned.  "
15523 "B<SIOCINQ> is defined in I<E<lt>linux/sockios.hE<gt>>.  Alternatively, you "
15524 "can use the synonymous B<FIONREAD>, defined in I<E<lt>sys/ioctl.hE<gt>>."
15525 msgstr ""
15526
15527 #. type: TP
15528 #: build/C/man7/tcp.7:1029
15529 #, no-wrap
15530 msgid "B<SIOCATMARK>"
15531 msgstr ""
15532
15533 #. type: Plain text
15534 #: build/C/man7/tcp.7:1034
15535 msgid ""
15536 "Returns true (i.e., I<value> is nonzero) if the inbound data stream is at "
15537 "the urgent mark."
15538 msgstr ""
15539
15540 #. type: Plain text
15541 #: build/C/man7/tcp.7:1050
15542 msgid ""
15543 "If the B<SO_OOBINLINE> socket option is set, and B<SIOCATMARK> returns true, "
15544 "then the next read from the socket will return the urgent data.  If the "
15545 "B<SO_OOBINLINE> socket option is not set, and B<SIOCATMARK> returns true, "
15546 "then the next read from the socket will return the bytes following the "
15547 "urgent data (to actually read the urgent data requires the B<recv(MSG_OOB)> "
15548 "flag)."
15549 msgstr ""
15550
15551 #. type: Plain text
15552 #: build/C/man7/tcp.7:1064
15553 msgid ""
15554 "Note that a read never reads across the urgent mark.  If an application is "
15555 "informed of the presence of urgent data via B<select>(2)  (using the "
15556 "I<exceptfds> argument) or through delivery of a B<SIGURG> signal, then it "
15557 "can advance up to the mark using a loop which repeatedly tests B<SIOCATMARK> "
15558 "and performs a read (requesting any number of bytes) as long as "
15559 "B<SIOCATMARK> returns false."
15560 msgstr ""
15561
15562 #. type: TP
15563 #: build/C/man7/tcp.7:1064
15564 #, no-wrap
15565 msgid "B<SIOCOUTQ>"
15566 msgstr ""
15567
15568 #.  FIXME http://sources.redhat.com/bugzilla/show_bug.cgi?id=12002,
15569 #.  filed 2010-09-10, may cause SIOCOUTQ to be defined in glibc headers
15570 #. type: Plain text
15571 #: build/C/man7/tcp.7:1080
15572 msgid ""
15573 "Returns the amount of unsent data in the socket send queue.  The socket must "
15574 "not be in LISTEN state, otherwise an error (B<EINVAL>)  is returned.  "
15575 "B<SIOCOUTQ> is defined in I<E<lt>linux/sockios.hE<gt>>.  Alternatively, you "
15576 "can use the synonymous B<TIOCOUTQ>, defined in I<E<lt>sys/ioctl.hE<gt>>."
15577 msgstr ""
15578
15579 #. type: Plain text
15580 #: build/C/man7/tcp.7:1085
15581 msgid ""
15582 "When a network error occurs, TCP tries to resend the packet.  If it doesn't "
15583 "succeed after some time, either B<ETIMEDOUT> or the last received error on "
15584 "this connection is reported."
15585 msgstr ""
15586
15587 #. type: Plain text
15588 #: build/C/man7/tcp.7:1096
15589 msgid ""
15590 "Some applications require a quicker error notification.  This can be enabled "
15591 "with the B<IPPROTO_IP> level B<IP_RECVERR> socket option.  When this option "
15592 "is enabled, all incoming errors are immediately passed to the user program.  "
15593 "Use this option with care \\(em it makes TCP less tolerant to routing "
15594 "changes and other normal network conditions."
15595 msgstr ""
15596
15597 #. type: TP
15598 #: build/C/man7/tcp.7:1097
15599 #, no-wrap
15600 msgid "B<EAFNOTSUPPORT>"
15601 msgstr ""
15602
15603 #. type: Plain text
15604 #: build/C/man7/tcp.7:1103
15605 msgid "Passed socket address type in I<sin_family> was not B<AF_INET>."
15606 msgstr ""
15607
15608 #. type: Plain text
15609 #: build/C/man7/tcp.7:1107
15610 msgid ""
15611 "The other end closed the socket unexpectedly or a read is executed on a shut "
15612 "down socket."
15613 msgstr ""
15614
15615 #. type: TP
15616 #: build/C/man7/tcp.7:1107
15617 #, no-wrap
15618 msgid "B<ETIMEDOUT>"
15619 msgstr ""
15620
15621 #. type: Plain text
15622 #: build/C/man7/tcp.7:1110
15623 msgid "The other end didn't acknowledge retransmitted data after some time."
15624 msgstr ""
15625
15626 #. type: Plain text
15627 #: build/C/man7/tcp.7:1114
15628 msgid ""
15629 "Any errors defined for B<ip>(7)  or the generic socket layer may also be "
15630 "returned for TCP."
15631 msgstr ""
15632
15633 #. type: Plain text
15634 #: build/C/man7/tcp.7:1121
15635 msgid ""
15636 "Support for Explicit Congestion Notification, zero-copy B<sendfile>(2), "
15637 "reordering support and some SACK extensions (DSACK) were introduced in 2.4.  "
15638 "Support for forward acknowledgement (FACK), TIME_WAIT recycling, and "
15639 "per-connection keepalive socket options were introduced in 2.3."
15640 msgstr ""
15641
15642 #. type: Plain text
15643 #: build/C/man7/tcp.7:1123
15644 msgid "Not all errors are documented."
15645 msgstr ""
15646
15647 #.  Only a single Linux kernel version is described
15648 #.  Info for 2.2 was lost. Should be added again,
15649 #.  or put into a separate page.
15650 #.  .SH AUTHORS
15651 #.  This man page was originally written by Andi Kleen.
15652 #.  It was updated for 2.4 by Nivedita Singhvi with input from
15653 #.  Alexey Kuznetsov's Documentation/networking/ip-sysctl.txt
15654 #.  document.
15655 #. type: Plain text
15656 #: build/C/man7/tcp.7:1133
15657 msgid "IPv6 is not described."
15658 msgstr ""
15659
15660 #. type: Plain text
15661 #: build/C/man7/tcp.7:1145
15662 msgid ""
15663 "B<accept>(2), B<bind>(2), B<connect>(2), B<getsockopt>(2), B<listen>(2), "
15664 "B<recvmsg>(2), B<sendfile>(2), B<sendmsg>(2), B<socket>(2), B<ip>(7), "
15665 "B<socket>(7)"
15666 msgstr ""
15667
15668 #. type: Plain text
15669 #: build/C/man7/tcp.7:1147
15670 msgid "RFC\\ 793 for the TCP specification."
15671 msgstr ""
15672
15673 #. type: Plain text
15674 #: build/C/man7/tcp.7:1149
15675 msgid ""
15676 "RFC\\ 1122 for the TCP requirements and a description of the Nagle "
15677 "algorithm."
15678 msgstr ""
15679
15680 #. type: Plain text
15681 #: build/C/man7/tcp.7:1151
15682 msgid "RFC\\ 1323 for TCP timestamp and window scaling options."
15683 msgstr ""
15684
15685 #. type: Plain text
15686 #: build/C/man7/tcp.7:1153
15687 msgid "RFC\\ 1337 for a description of TIME_WAIT assassination hazards."
15688 msgstr ""
15689
15690 #. type: Plain text
15691 #: build/C/man7/tcp.7:1155
15692 msgid "RFC\\ 3168 for a description of Explicit Congestion Notification."
15693 msgstr ""
15694
15695 #. type: Plain text
15696 #: build/C/man7/tcp.7:1157
15697 msgid "RFC\\ 2581 for TCP congestion control algorithms."
15698 msgstr ""
15699
15700 #. type: Plain text
15701 #: build/C/man7/tcp.7:1159
15702 msgid "RFC\\ 2018 and RFC\\ 2883 for SACK and extensions to SACK."
15703 msgstr ""
15704
15705 #. type: TH
15706 #: build/C/man7/udp.7:8
15707 #, no-wrap
15708 msgid "UDP"
15709 msgstr ""
15710
15711 #. type: TH
15712 #: build/C/man7/udp.7:8
15713 #, no-wrap
15714 msgid "2010-06-13"
15715 msgstr ""
15716
15717 #. type: Plain text
15718 #: build/C/man7/udp.7:11
15719 msgid "udp - User Datagram Protocol for IPv4"
15720 msgstr ""
15721
15722 #. type: Plain text
15723 #: build/C/man7/udp.7:17
15724 msgid "B<udp_socket = socket(AF_INET, SOCK_DGRAM, 0);>"
15725 msgstr ""
15726
15727 #. type: Plain text
15728 #: build/C/man7/udp.7:23
15729 msgid ""
15730 "This is an implementation of the User Datagram Protocol described in RFC\\ "
15731 "768.  It implements a connectionless, unreliable datagram packet service.  "
15732 "Packets may be reordered or duplicated before they arrive.  UDP generates "
15733 "and checks checksums to catch transmission errors."
15734 msgstr ""
15735
15736 #. type: Plain text
15737 #: build/C/man7/udp.7:52
15738 msgid ""
15739 "When a UDP socket is created, its local and remote addresses are "
15740 "unspecified.  Datagrams can be sent immediately using B<sendto>(2)  or "
15741 "B<sendmsg>(2)  with a valid destination address as an argument.  When "
15742 "B<connect>(2)  is called on the socket, the default destination address is "
15743 "set and datagrams can now be sent using B<send>(2)  or B<write>(2)  without "
15744 "specifying a destination address.  It is still possible to send to other "
15745 "destinations by passing an address to B<sendto>(2)  or B<sendmsg>(2).  In "
15746 "order to receive packets, the socket can be bound to a local address first "
15747 "by using B<bind>(2).  Otherwise the socket layer will automatically assign a "
15748 "free local port out of the range defined by "
15749 "I</proc/sys/net/ipv4/ip_local_port_range> and bind the socket to "
15750 "B<INADDR_ANY>."
15751 msgstr ""
15752
15753 #. type: Plain text
15754 #: build/C/man7/udp.7:60
15755 msgid ""
15756 "All receive operations return only one packet.  When the packet is smaller "
15757 "than the passed buffer, only that much data is returned; when it is bigger, "
15758 "the packet is truncated and the B<MSG_TRUNC> flag is set.  B<MSG_WAITALL> is "
15759 "not supported."
15760 msgstr ""
15761
15762 #. type: Plain text
15763 #: build/C/man7/udp.7:69
15764 msgid ""
15765 "IP options may be sent or received using the socket options described in "
15766 "B<ip>(7).  They are only processed by the kernel when the appropriate "
15767 "I</proc> parameter is enabled (but still passed to the user even when it is "
15768 "turned off).  See B<ip>(7)."
15769 msgstr ""
15770
15771 #. type: Plain text
15772 #: build/C/man7/udp.7:74
15773 msgid ""
15774 "When the B<MSG_DONTROUTE> flag is set on sending, the destination address "
15775 "must refer to a local interface address and the packet is only sent to that "
15776 "interface."
15777 msgstr ""
15778
15779 #. type: Plain text
15780 #: build/C/man7/udp.7:92
15781 msgid ""
15782 "By default, Linux UDP does path MTU (Maximum Transmission Unit) discovery.  "
15783 "This means the kernel will keep track of the MTU to a specific target IP "
15784 "address and return B<EMSGSIZE> when a UDP packet write exceeds it.  When "
15785 "this happens, the application should decrease the packet size.  Path MTU "
15786 "discovery can be also turned off using the B<IP_MTU_DISCOVER> socket option "
15787 "or the I</proc/sys/net/ipv4/ip_no_pmtu_disc> file; see B<ip>(7)  for "
15788 "details.  When turned off, UDP will fragment outgoing UDP packets that "
15789 "exceed the interface MTU.  However, disabling it is not recommended for "
15790 "performance and reliability reasons."
15791 msgstr ""
15792
15793 #. type: Plain text
15794 #: build/C/man7/udp.7:97
15795 msgid "UDP uses the IPv4 I<sockaddr_in> address format described in B<ip>(7)."
15796 msgstr ""
15797
15798 #. type: Plain text
15799 #: build/C/man7/udp.7:108
15800 msgid ""
15801 "All fatal errors will be passed to the user as an error return even when the "
15802 "socket is not connected.  This includes asynchronous errors received from "
15803 "the network.  You may get an error for an earlier packet that was sent on "
15804 "the same socket.  This behavior differs from many other BSD socket "
15805 "implementations which don't pass any errors unless the socket is connected.  "
15806 "Linux's behavior is mandated by B<RFC\\ 1122>."
15807 msgstr ""
15808
15809 #. type: Plain text
15810 #: build/C/man7/udp.7:122
15811 msgid ""
15812 "For compatibility with legacy code, in Linux 2.0 and 2.2 it was possible to "
15813 "set the B<SO_BSDCOMPAT> B<SOL_SOCKET> option to receive remote errors only "
15814 "when the socket has been connected (except for B<EPROTO> and B<EMSGSIZE>).  "
15815 "Locally generated errors are always passed.  Support for this socket option "
15816 "was removed in later kernels; see B<socket>(7)  for further information."
15817 msgstr ""
15818
15819 #. type: Plain text
15820 #: build/C/man7/udp.7:131
15821 msgid ""
15822 "When the B<IP_RECVERR> option is enabled, all errors are stored in the "
15823 "socket error queue, and can be received by B<recvmsg>(2)  with the "
15824 "B<MSG_ERRQUEUE> flag set."
15825 msgstr ""
15826
15827 #. type: Plain text
15828 #: build/C/man7/udp.7:134
15829 msgid ""
15830 "System-wide UDP parameter settings can be accessed by files in the directory "
15831 "I</proc/sys/net/ipv4/>."
15832 msgstr ""
15833
15834 #. type: TP
15835 #: build/C/man7/udp.7:134
15836 #, no-wrap
15837 msgid "I<udp_mem> (since Linux 2.6.25)"
15838 msgstr ""
15839
15840 #. type: Plain text
15841 #: build/C/man7/udp.7:138
15842 msgid ""
15843 "This is a vector of three integers governing the number of pages allowed for "
15844 "queueing by all UDP sockets."
15845 msgstr ""
15846
15847 #. type: Plain text
15848 #: build/C/man7/udp.7:145
15849 msgid ""
15850 "Below this number of pages, UDP is not bothered about its memory appetite.  "
15851 "When the amount of memory allocated by UDP exceeds this number, UDP starts "
15852 "to moderate memory usage."
15853 msgstr ""
15854
15855 #. type: Plain text
15856 #: build/C/man7/udp.7:151
15857 msgid ""
15858 "This value was introduced to follow the format of I<tcp_mem> (see "
15859 "B<tcp>(7))."
15860 msgstr ""
15861
15862 #. type: Plain text
15863 #: build/C/man7/udp.7:154
15864 msgid "Number of pages allowed for queueing by all UDP sockets."
15865 msgstr ""
15866
15867 #. type: Plain text
15868 #: build/C/man7/udp.7:158
15869 msgid ""
15870 "Defaults values for these three items are calculated at boot time from the "
15871 "amount of available memory."
15872 msgstr ""
15873
15874 #. type: TP
15875 #: build/C/man7/udp.7:158
15876 #, no-wrap
15877 msgid "I<udp_rmem_min> (integer; default value: PAGE_SIZE; since Linux 2.6.25)"
15878 msgstr ""
15879
15880 #. type: Plain text
15881 #: build/C/man7/udp.7:165
15882 msgid ""
15883 "Minimal size, in bytes, of receive buffers used by UDP sockets in "
15884 "moderation.  Each UDP socket is able to use the size for receiving data, "
15885 "even if total pages of UDP sockets exceed I<udp_mem> pressure."
15886 msgstr ""
15887
15888 #. type: TP
15889 #: build/C/man7/udp.7:165
15890 #, no-wrap
15891 msgid "I<udp_wmem_min> (integer; default value: PAGE_SIZE; since Linux 2.6.25)"
15892 msgstr ""
15893
15894 #. type: Plain text
15895 #: build/C/man7/udp.7:172
15896 msgid ""
15897 "Minimal size, in bytes, of send buffer used by UDP sockets in moderation.  "
15898 "Each UDP socket is able to use the size for sending data, even if total "
15899 "pages of UDP sockets exceed I<udp_mem> pressure."
15900 msgstr ""
15901
15902 #. type: Plain text
15903 #: build/C/man7/udp.7:179
15904 msgid ""
15905 "To set or get a UDP socket option, call B<getsockopt>(2)  to read or "
15906 "B<setsockopt>(2)  to write the option with the option level argument set to "
15907 "B<IPPROTO_UDP>."
15908 msgstr ""
15909
15910 #. type: TP
15911 #: build/C/man7/udp.7:179
15912 #, no-wrap
15913 msgid "B<UDP_CORK> (since Linux 2.5.44)"
15914 msgstr ""
15915
15916 #.  FIXME document UDP_ENCAP (new in kernel 2.5.67)
15917 #.  From include/linux/udp.h:
15918 #.  /* UDP encapsulation types */
15919 #.  #define UDP_ENCAP_ESPINUDP_NON_IKE      1 /* draft-ietf-ipsec-nat-t-ike-00/01 */
15920 #.  #define UDP_ENCAP_ESPINUDP      2 /* draft-ietf-ipsec-udp-encaps-06 */
15921 #.  #define UDP_ENCAP_L2TPINUDP     3 /* rfc2661 */
15922 #. type: Plain text
15923 #: build/C/man7/udp.7:192
15924 msgid ""
15925 "If this option is enabled, then all data output on this socket is "
15926 "accumulated into a single datagram that is transmitted when the option is "
15927 "disabled.  This option should not be used in code intended to be portable."
15928 msgstr ""
15929
15930 #. type: Plain text
15931 #: build/C/man7/udp.7:196
15932 msgid "These ioctls can be accessed using B<ioctl>(2).  The correct syntax is:"
15933 msgstr ""
15934
15935 #. type: Plain text
15936 #: build/C/man7/udp.7:201
15937 #, no-wrap
15938 msgid ""
15939 "B<int>I< value>B<;>\n"
15940 "I<error>B< = ioctl(>I<udp_socket>B<, >I<ioctl_type>B<, &>I<value>B<);>\n"
15941 msgstr ""
15942
15943 #. type: TP
15944 #: build/C/man7/udp.7:203
15945 #, no-wrap
15946 msgid "B<FIONREAD> (B<SIOCINQ>)"
15947 msgstr ""
15948
15949 #.  See http://www.securiteam.com/unixfocus/5KP0I15IKO.html
15950 #.  "GNUnet DoS (UDP Socket Unreachable)", 14 May 2006
15951 #. type: Plain text
15952 #: build/C/man7/udp.7:221
15953 msgid ""
15954 "Gets a pointer to an integer as argument.  Returns the size of the next "
15955 "pending datagram in the integer in bytes, or 0 when no datagram is pending.  "
15956 "B<Warning:> Using B<FIONREAD>, it is impossible to distinguish the case "
15957 "where no datagram is pending from the case where the next pending datagram "
15958 "contains zero bytes of data.  It is safer to use B<select>(2), B<poll>(2), "
15959 "or B<epoll>(7)  to distinguish these cases."
15960 msgstr ""
15961
15962 #. type: TP
15963 #: build/C/man7/udp.7:221
15964 #, no-wrap
15965 msgid "B<TIOCOUTQ> (B<SIOCOUTQ>)"
15966 msgstr ""
15967
15968 #. type: Plain text
15969 #: build/C/man7/udp.7:225
15970 msgid ""
15971 "Returns the number of data bytes in the local send queue.  Only supported "
15972 "with Linux 2.4 and above."
15973 msgstr ""
15974
15975 #. type: Plain text
15976 #: build/C/man7/udp.7:231
15977 msgid ""
15978 "In addition all ioctls documented in B<ip>(7)  and B<socket>(7)  are "
15979 "supported."
15980 msgstr ""
15981
15982 #. type: Plain text
15983 #: build/C/man7/udp.7:237
15984 msgid ""
15985 "All errors documented for B<socket>(7)  or B<ip>(7)  may be returned by a "
15986 "send or receive on a UDP socket."
15987 msgstr ""
15988
15989 #. type: TP
15990 #: build/C/man7/udp.7:237 build/C/man7/unix.7:323
15991 #, no-wrap
15992 msgid "B<ECONNREFUSED>"
15993 msgstr ""
15994
15995 #. type: Plain text
15996 #: build/C/man7/udp.7:241
15997 msgid ""
15998 "No receiver was associated with the destination address.  This might be "
15999 "caused by a previous packet sent over the socket."
16000 msgstr ""
16001
16002 #.  .SH CREDITS
16003 #.  This man page was written by Andi Kleen.
16004 #. type: Plain text
16005 #: build/C/man7/udp.7:246
16006 msgid "B<IP_RECVERR> is a new feature in Linux 2.2."
16007 msgstr ""
16008
16009 #. type: Plain text
16010 #: build/C/man7/udp.7:251
16011 msgid "B<ip>(7), B<raw>(7), B<socket>(7), B<udplite>(7)"
16012 msgstr ""
16013
16014 #. type: Plain text
16015 #: build/C/man7/udp.7:253
16016 msgid "RFC\\ 768 for the User Datagram Protocol."
16017 msgstr ""
16018
16019 #. type: Plain text
16020 #: build/C/man7/udp.7:255
16021 msgid "RFC\\ 1122 for the host requirements."
16022 msgstr ""
16023
16024 #. type: Plain text
16025 #: build/C/man7/udp.7:257
16026 msgid "RFC\\ 1191 for a description of path MTU discovery."
16027 msgstr ""
16028
16029 #. type: TH
16030 #: build/C/man7/udplite.7:25
16031 #, no-wrap
16032 msgid "UDPLITE"
16033 msgstr ""
16034
16035 #. type: Plain text
16036 #: build/C/man7/udplite.7:28
16037 msgid "udplite - Lightweight User Datagram Protocol"
16038 msgstr ""
16039
16040 #. type: Plain text
16041 #: build/C/man7/udplite.7:36
16042 msgid "B<sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDPLITE);>"
16043 msgstr ""
16044
16045 #. type: Plain text
16046 #: build/C/man7/udplite.7:39
16047 msgid ""
16048 "This is an implementation of the Lightweight User Datagram Protocol "
16049 "(UDP-Lite), as described in RFC\\ 3828."
16050 msgstr ""
16051
16052 #. type: Plain text
16053 #: build/C/man7/udplite.7:45
16054 msgid ""
16055 "UDP-Lite is an extension of UDP (RFC\\ 768) to support variable-length "
16056 "checksums.  This has advantages for some types of multimedia transport that "
16057 "may be able to make use of slightly damaged datagrams, rather than having "
16058 "them discarded by lower-layer protocols."
16059 msgstr ""
16060
16061 #. type: Plain text
16062 #: build/C/man7/udplite.7:51
16063 msgid ""
16064 "The variable-length checksum coverage is set via a B<setsockopt>(2)  "
16065 "option.  If this option is not set, the only difference to UDP is in using a "
16066 "different IP protocol identifier (IANA number 136)."
16067 msgstr ""
16068
16069 #. type: Plain text
16070 #: build/C/man7/udplite.7:56
16071 msgid ""
16072 "The UDP-Lite implementation is a full extension of B<udp>(7), i.e., it "
16073 "shares the same API and API behaviour, and in addition offers two socket "
16074 "options to control the checksum coverage."
16075 msgstr ""
16076
16077 #. type: Plain text
16078 #: build/C/man7/udplite.7:65
16079 msgid ""
16080 "UDP-Litev4 uses the I<sockaddr_in> address format described in B<ip>(7).  "
16081 "UDP-Litev6 uses the I<sockaddr_in6> address format described in B<ipv6>(7)."
16082 msgstr ""
16083
16084 #. type: Plain text
16085 #: build/C/man7/udplite.7:78
16086 msgid ""
16087 "To set or get a UDP-Lite socket option, call B<getsockopt>(2)  to read or "
16088 "B<setsockopt>(2)  to write the option with the option level argument set to "
16089 "B<IPPROTO_UDPLITE>.  In addition, all B<IPPROTO_UDP> socket options are "
16090 "valid on a UDP-Lite socket.  See B<udp>(7)  for more information."
16091 msgstr ""
16092
16093 #. type: Plain text
16094 #: build/C/man7/udplite.7:80
16095 msgid "The following two options are specific to UDP-Lite."
16096 msgstr ""
16097
16098 #. type: TP
16099 #: build/C/man7/udplite.7:80
16100 #, no-wrap
16101 msgid "B<UDPLITE_SEND_CSCOV>"
16102 msgstr ""
16103
16104 #. type: Plain text
16105 #: build/C/man7/udplite.7:85
16106 msgid ""
16107 "This option sets the sender checksum coverage and takes an I<int> as "
16108 "argument, with a checksum coverage value in the range 0..2^16-1."
16109 msgstr ""
16110
16111 #. type: Plain text
16112 #: build/C/man7/udplite.7:89
16113 msgid ""
16114 "A value of 0 means that the entire datagram is always covered.  Values from "
16115 "1-7 are illegal (RFC\\ 3828, 3.1) and are rounded up to the minimum coverage "
16116 "of 8."
16117 msgstr ""
16118
16119 #. type: Plain text
16120 #: build/C/man7/udplite.7:95
16121 msgid ""
16122 "With regard to IPv6 jumbograms (RFC\\ 2675), the UDP-Litev6 checksum "
16123 "coverage is limited to the first 2^16-1 octets, as per RFC\\ 3828, 3.5.  "
16124 "Higher values are therefore silently truncated to 2^16-1.  If in doubt, the "
16125 "current coverage value can always be queried using B<getsockopt>(2)."
16126 msgstr ""
16127
16128 #. type: TP
16129 #: build/C/man7/udplite.7:95
16130 #, no-wrap
16131 msgid "B<UDPLITE_RECV_CSCOV>"
16132 msgstr ""
16133
16134 #. type: Plain text
16135 #: build/C/man7/udplite.7:106
16136 msgid ""
16137 "This is the receiver-side analogue and uses the same argument format and "
16138 "value range as B<UDPLITE_SEND_CSCOV>.  This option is not required to enable "
16139 "traffic with partial checksum coverage.  Its function is that of a traffic "
16140 "filter: when enabled, it instructs the kernel to drop all packets which have "
16141 "a coverage I<less> than the specified coverage value."
16142 msgstr ""
16143
16144 #.  SO_NO_CHECK exists and is supported by UDPv4, but is
16145 #.  commented out in socket(7), hence also commented out here
16146 #. .PP
16147 #. Since UDP-Lite mandates checksums, checksumming can not be disabled
16148 #. via the
16149 #. .B SO_NO_CHECK
16150 #. option from
16151 #. .BR socket (7).
16152 #. type: Plain text
16153 #: build/C/man7/udplite.7:119
16154 msgid ""
16155 "When the value of B<UDPLITE_RECV_CSCOV> exceeds the actual packet coverage, "
16156 "incoming packets are silently dropped, but may generate a warning message in "
16157 "the system log."
16158 msgstr ""
16159
16160 #. type: Plain text
16161 #: build/C/man7/udplite.7:124
16162 msgid ""
16163 "All errors documented for B<udp>(7)  may be returned.  UDP-Lite does not add "
16164 "further errors."
16165 msgstr ""
16166
16167 #.  FIXME . remove this section once glibc supports UDP-Lite
16168 #. type: Plain text
16169 #: build/C/man7/udplite.7:127
16170 msgid "Where glibc support is missing, the following definitions are needed:"
16171 msgstr ""
16172
16173 #.  The following two are defined in the kernel in linux/net/udplite.h
16174 #. type: Plain text
16175 #: build/C/man7/udplite.7:134
16176 #, no-wrap
16177 msgid ""
16178 "#define IPPROTO_UDPLITE     136\n"
16179 "#define UDPLITE_SEND_CSCOV  10\n"
16180 "#define UDPLITE_RECV_CSCOV  11\n"
16181 msgstr ""
16182
16183 #. type: Plain text
16184 #: build/C/man7/udplite.7:139
16185 msgid "I</proc/net/snmp> - basic UDP-Litev4 statistics counters."
16186 msgstr ""
16187
16188 #. type: Plain text
16189 #: build/C/man7/udplite.7:142
16190 msgid "I</proc/net/snmp6> - basic UDP-Litev6 statistics counters."
16191 msgstr ""
16192
16193 #. type: Plain text
16194 #: build/C/man7/udplite.7:144
16195 msgid "UDP-Litev4/v6 first appeared in Linux 2.6.20."
16196 msgstr ""
16197
16198 #. type: Plain text
16199 #: build/C/man7/udplite.7:149
16200 msgid "B<ip>(7), B<ipv6>(7), B<socket>(7), B<udp>(7)"
16201 msgstr ""
16202
16203 #. type: Plain text
16204 #: build/C/man7/udplite.7:151
16205 msgid "RFC\\ 3828 for the Lightweight User Datagram Protocol (UDP-Lite)"
16206 msgstr ""
16207
16208 #. type: Plain text
16209 #: build/C/man7/udplite.7:153
16210 msgid "I<Documentation/networking/udplite.txt>"
16211 msgstr ""
16212
16213 #. type: TH
16214 #: build/C/man7/unix.7:15
16215 #, no-wrap
16216 msgid "UNIX"
16217 msgstr ""
16218
16219 #. type: Plain text
16220 #: build/C/man7/unix.7:19
16221 msgid "unix - Sockets for local interprocess communication"
16222 msgstr ""
16223
16224 #. type: Plain text
16225 #: build/C/man7/unix.7:23
16226 msgid "B<#include E<lt>sys/un.hE<gt>>"
16227 msgstr ""
16228
16229 #. type: Plain text
16230 #: build/C/man7/unix.7:25
16231 msgid "I<unix_socket>B< = socket(AF_UNIX, type, 0);>"
16232 msgstr ""
16233
16234 #. type: Plain text
16235 #: build/C/man7/unix.7:27
16236 msgid "I<error>B< = socketpair(AF_UNIX, type, 0, int *>I<sv>B<);>"
16237 msgstr ""
16238
16239 #. type: Plain text
16240 #: build/C/man7/unix.7:38
16241 msgid ""
16242 "The B<AF_UNIX> (also known as B<AF_LOCAL>)  socket family is used to "
16243 "communicate between processes on the same machine efficiently.  "
16244 "Traditionally, UNIX domain sockets can be either unnamed, or bound to a file "
16245 "system pathname (marked as being of type socket).  Linux also supports an "
16246 "abstract namespace which is independent of the file system."
16247 msgstr ""
16248
16249 #. type: Plain text
16250 #: build/C/man7/unix.7:50
16251 msgid ""
16252 "Valid types are: B<SOCK_STREAM>, for a stream-oriented socket and "
16253 "B<SOCK_DGRAM>, for a datagram-oriented socket that preserves message "
16254 "boundaries (as on most UNIX implementations, UNIX domain datagram sockets "
16255 "are always reliable and don't reorder datagrams); and (since Linux 2.6.4)  "
16256 "B<SOCK_SEQPACKET>, for a connection-oriented socket that preserves message "
16257 "boundaries and delivers messages in the order that they were sent."
16258 msgstr ""
16259
16260 #. type: Plain text
16261 #: build/C/man7/unix.7:53
16262 msgid ""
16263 "UNIX domain sockets support passing file descriptors or process credentials "
16264 "to other processes using ancillary data."
16265 msgstr ""
16266
16267 #. type: Plain text
16268 #: build/C/man7/unix.7:55
16269 msgid "A UNIX domain socket address is represented in the following structure:"
16270 msgstr ""
16271
16272 #. type: Plain text
16273 #: build/C/man7/unix.7:59
16274 #, no-wrap
16275 msgid "#define UNIX_PATH_MAX    108\n"
16276 msgstr ""
16277
16278 #. type: Plain text
16279 #: build/C/man7/unix.7:64
16280 #, no-wrap
16281 msgid ""
16282 "struct sockaddr_un {\n"
16283 "    sa_family_t sun_family;               /* AF_UNIX */\n"
16284 "    char        sun_path[UNIX_PATH_MAX];  /* pathname */\n"
16285 "};\n"
16286 msgstr ""
16287
16288 #. type: Plain text
16289 #: build/C/man7/unix.7:70
16290 msgid "I<sun_family> always contains B<AF_UNIX>."
16291 msgstr ""
16292
16293 #. type: Plain text
16294 #: build/C/man7/unix.7:72
16295 msgid "Three types of address are distinguished in this structure:"
16296 msgstr ""
16297
16298 #. type: Plain text
16299 #: build/C/man7/unix.7:87
16300 msgid ""
16301 "I<pathname>: a UNIX domain socket can be bound to a null-terminated file "
16302 "system pathname using B<bind>(2).  When the address of the socket is "
16303 "returned by B<getsockname>(2), B<getpeername>(2), and B<accept>(2), its "
16304 "length is I<offsetof(struct sockaddr_un, sun_path) + strlen(sun_path) + 1>, "
16305 "and I<sun_path> contains the null-terminated pathname."
16306 msgstr ""
16307
16308 #.  There is quite some variation across implementations: FreeBSD
16309 #.  says the length is 16 bytes, HP-UX 11 says it's zero bytes.
16310 #. type: Plain text
16311 #: build/C/man7/unix.7:107
16312 msgid ""
16313 "I<unnamed>: A stream socket that has not been bound to a pathname using "
16314 "B<bind>(2)  has no name.  Likewise, the two sockets created by "
16315 "B<socketpair>(2)  are unnamed.  When the address of an unnamed socket is "
16316 "returned by B<getsockname>(2), B<getpeername>(2), and B<accept>(2), its "
16317 "length is I<sizeof(sa_family_t)>, and I<sun_path> should not be inspected."
16318 msgstr ""
16319
16320 #. type: Plain text
16321 #: build/C/man7/unix.7:133
16322 msgid ""
16323 "I<abstract>: an abstract socket address is distinguished by the fact that "
16324 "I<sun_path[0]> is a null byte (\\(aq\\e0\\(aq).  The socket's address in "
16325 "this namespace is given by the additional bytes in I<sun_path> that are "
16326 "covered by the specified length of the address structure.  (Null bytes in "
16327 "the name have no special significance.)  The name has no connection with "
16328 "file system pathnames.  When the address of an abstract socket is returned "
16329 "by B<getsockname>(2), B<getpeername>(2), and B<accept>(2), the returned "
16330 "I<addrlen> is greater than I<sizeof(sa_family_t)> (i.e., greater than 2), "
16331 "and the name of the socket is contained in the first I<(addrlen - "
16332 "sizeof(sa_family_t))> bytes of I<sun_path>.  The abstract socket namespace "
16333 "is a nonportable Linux extension."
16334 msgstr ""
16335
16336 #. type: Plain text
16337 #: build/C/man7/unix.7:146
16338 msgid ""
16339 "For historical reasons these socket options are specified with a "
16340 "B<SOL_SOCKET> type even though they are B<AF_UNIX> specific.  They can be "
16341 "set with B<setsockopt>(2)  and read with B<getsockopt>(2)  by specifying "
16342 "B<SOL_SOCKET> as the socket family."
16343 msgstr ""
16344
16345 #. type: TP
16346 #: build/C/man7/unix.7:146
16347 #, no-wrap
16348 msgid "B<SO_PASSCRED>"
16349 msgstr ""
16350
16351 #. type: Plain text
16352 #: build/C/man7/unix.7:153
16353 msgid ""
16354 "Enables the receiving of the credentials of the sending process in an "
16355 "ancillary message.  When this option is set and the socket is not yet "
16356 "connected a unique name in the abstract namespace will be generated "
16357 "automatically.  Expects an integer boolean flag."
16358 msgstr ""
16359
16360 #. type: SS
16361 #: build/C/man7/unix.7:153
16362 #, no-wrap
16363 msgid "Autobind Feature"
16364 msgstr ""
16365
16366 #.  i.e. sizeof(short)
16367 #. type: Plain text
16368 #: build/C/man7/unix.7:173
16369 msgid ""
16370 "If a B<bind>(2)  call specifies I<addrlen> as I<sizeof(sa_family_t)>, or the "
16371 "B<SO_PASSCRED> socket option was specified for a socket that was not "
16372 "explicitly bound to an address, then the socket is autobound to an abstract "
16373 "address.  The address consists of a null byte followed by 5 bytes in the "
16374 "character set I<[0-9a-f]>.  Thus, there is a limit of 2^20 autobind "
16375 "addresses.  (From Linux 2.1.15, when the autobind feature was added, 8 bytes "
16376 "were used, and the limit was thus 2^32 autobind addresses.  The change to 5 "
16377 "bytes came in Linux 2.3.15.)"
16378 msgstr ""
16379
16380 #. type: Plain text
16381 #: build/C/man7/unix.7:176
16382 msgid ""
16383 "The following paragraphs describe domain-specific details and unsupported "
16384 "features of the sockets API for UNIX domain sockets on Linux."
16385 msgstr ""
16386
16387 #. type: Plain text
16388 #: build/C/man7/unix.7:184
16389 msgid ""
16390 "UNIX domain sockets do not support the transmission of out-of-band data (the "
16391 "B<MSG_OOB> flag for B<send>(2)  and B<recv>(2))."
16392 msgstr ""
16393
16394 #. type: Plain text
16395 #: build/C/man7/unix.7:189
16396 msgid "The B<send>(2)  B<MSG_MORE> flag is not supported by UNIX domain sockets."
16397 msgstr ""
16398
16399 #. type: Plain text
16400 #: build/C/man7/unix.7:197
16401 msgid ""
16402 "The use of B<MSG_TRUNC> in the I<flags> argument of B<recv>(2)  is not "
16403 "supported by UNIX domain sockets."
16404 msgstr ""
16405
16406 #. type: Plain text
16407 #: build/C/man7/unix.7:209
16408 msgid ""
16409 "The B<SO_SNDBUF> socket option does have an effect for UNIX domain sockets, "
16410 "but the B<SO_RCVBUF> option does not.  For datagram sockets, the "
16411 "B<SO_SNDBUF> value imposes an upper limit on the size of outgoing "
16412 "datagrams.  This limit is calculated as the doubled (see B<socket>(7))  "
16413 "option value less 32 bytes used for overhead."
16414 msgstr ""
16415
16416 #. type: SS
16417 #: build/C/man7/unix.7:209
16418 #, no-wrap
16419 msgid "Ancillary Messages"
16420 msgstr ""
16421
16422 #. type: Plain text
16423 #: build/C/man7/unix.7:231
16424 msgid ""
16425 "Ancillary data is sent and received using B<sendmsg>(2)  and B<recvmsg>(2).  "
16426 "For historical reasons the ancillary message types listed below are "
16427 "specified with a B<SOL_SOCKET> type even though they are B<AF_UNIX> "
16428 "specific.  To send them set the I<cmsg_level> field of the struct I<cmsghdr> "
16429 "to B<SOL_SOCKET> and the I<cmsg_type> field to the type.  For more "
16430 "information see B<cmsg>(3)."
16431 msgstr ""
16432
16433 #. type: TP
16434 #: build/C/man7/unix.7:231
16435 #, no-wrap
16436 msgid "B<SCM_RIGHTS>"
16437 msgstr ""
16438
16439 #. type: Plain text
16440 #: build/C/man7/unix.7:237
16441 msgid ""
16442 "Send or receive a set of open file descriptors from another process.  The "
16443 "data portion contains an integer array of the file descriptors.  The passed "
16444 "file descriptors behave as though they have been created with B<dup>(2)."
16445 msgstr ""
16446
16447 #. type: TP
16448 #: build/C/man7/unix.7:237
16449 #, no-wrap
16450 msgid "B<SCM_CREDENTIALS>"
16451 msgstr ""
16452
16453 #. type: Plain text
16454 #: build/C/man7/unix.7:247
16455 msgid ""
16456 "Send or receive UNIX credentials.  This can be used for authentication.  The "
16457 "credentials are passed as a I<struct ucred> ancillary message.  Thus "
16458 "structure is defined in I<E<lt>sys/socket.hE<gt>> as follows:"
16459 msgstr ""
16460
16461 #. type: Plain text
16462 #: build/C/man7/unix.7:255
16463 #, no-wrap
16464 msgid ""
16465 "struct ucred {\n"
16466 "    pid_t pid;    /* process ID of the sending process */\n"
16467 "    uid_t uid;    /* user ID of the sending process */\n"
16468 "    gid_t gid;    /* group ID of the sending process */\n"
16469 "};\n"
16470 msgstr ""
16471
16472 #. type: Plain text
16473 #: build/C/man7/unix.7:264
16474 msgid ""
16475 "Since glibc 2.8, the B<_GNU_SOURCE> feature test macro must be defined "
16476 "(before including I<any> header files) in order to obtain the definition of "
16477 "this structure."
16478 msgstr ""
16479
16480 #. type: Plain text
16481 #: build/C/man7/unix.7:280
16482 msgid ""
16483 "The credentials which the sender specifies are checked by the kernel.  A "
16484 "process with effective user ID 0 is allowed to specify values that do not "
16485 "match its own.  The sender must specify its own process ID (unless it has "
16486 "the capability B<CAP_SYS_ADMIN>), its user ID, effective user ID, or saved "
16487 "set-user-ID (unless it has B<CAP_SETUID>), and its group ID, effective group "
16488 "ID, or saved set-group-ID (unless it has B<CAP_SETGID>).  To receive a "
16489 "I<struct ucred> message the B<SO_PASSCRED> option must be enabled on the "
16490 "socket."
16491 msgstr ""
16492
16493 #. type: Plain text
16494 #: build/C/man7/unix.7:291
16495 #, no-wrap
16496 msgid ""
16497 "B<int>I< value>B<;>\n"
16498 "I<error>B< = ioctl(>I<unix_socket>B<, >I<ioctl_type>B<, &>I<value>B<);>\n"
16499 msgstr ""
16500
16501 #. type: Plain text
16502 #: build/C/man7/unix.7:296
16503 msgid "I<ioctl_type> can be:"
16504 msgstr ""
16505
16506 #. type: Plain text
16507 #: build/C/man7/unix.7:323
16508 msgid ""
16509 "The specified local address is already in use or the file system socket "
16510 "object already exists."
16511 msgstr ""
16512
16513 #. type: Plain text
16514 #: build/C/man7/unix.7:329
16515 msgid ""
16516 "The remote address specified by B<connect>(2)  was not a listening socket.  "
16517 "This error can also occur if the target filename is not a socket."
16518 msgstr ""
16519
16520 #. type: TP
16521 #: build/C/man7/unix.7:329
16522 #, no-wrap
16523 msgid "B<ECONNRESET>"
16524 msgstr ""
16525
16526 #. type: Plain text
16527 #: build/C/man7/unix.7:332
16528 msgid "Remote socket was unexpectedly closed."
16529 msgstr ""
16530
16531 #. type: Plain text
16532 #: build/C/man7/unix.7:335
16533 msgid "User memory address was not valid."
16534 msgstr ""
16535
16536 #. type: Plain text
16537 #: build/C/man7/unix.7:344
16538 msgid ""
16539 "Invalid argument passed.  A common cause is that the value B<AF_UNIX> was "
16540 "not specified in the I<sun_type> field of passed addresses, or the socket "
16541 "was in an invalid state for the applied operation."
16542 msgstr ""
16543
16544 #. type: Plain text
16545 #: build/C/man7/unix.7:349
16546 msgid ""
16547 "B<connect>(2)  called on an already connected socket or a target address was "
16548 "specified on a connected socket."
16549 msgstr ""
16550
16551 #. type: Plain text
16552 #: build/C/man7/unix.7:354
16553 msgid ""
16554 "The pathname in the remote address specified to B<connect>(2)  did not "
16555 "exist."
16556 msgstr ""
16557
16558 #. type: TP
16559 #: build/C/man7/unix.7:354
16560 #, no-wrap
16561 msgid "B<ENOMEM>"
16562 msgstr ""
16563
16564 #. type: Plain text
16565 #: build/C/man7/unix.7:360
16566 msgid "Socket operation needs a target address, but the socket is not connected."
16567 msgstr ""
16568
16569 #. type: Plain text
16570 #: build/C/man7/unix.7:364
16571 msgid ""
16572 "Stream operation called on non-stream oriented socket or tried to use the "
16573 "out-of-band data option."
16574 msgstr ""
16575
16576 #. type: Plain text
16577 #: build/C/man7/unix.7:368
16578 msgid "The sender passed invalid credentials in the I<struct ucred>."
16579 msgstr ""
16580
16581 #. type: Plain text
16582 #: build/C/man7/unix.7:380
16583 msgid ""
16584 "Remote socket was closed on a stream socket.  If enabled, a B<SIGPIPE> is "
16585 "sent as well.  This can be avoided by passing the B<MSG_NOSIGNAL> flag to "
16586 "B<sendmsg>(2)  or B<recvmsg>(2)."
16587 msgstr ""
16588
16589 #. type: TP
16590 #: build/C/man7/unix.7:380
16591 #, no-wrap
16592 msgid "B<EPROTONOSUPPORT>"
16593 msgstr ""
16594
16595 #. type: Plain text
16596 #: build/C/man7/unix.7:384
16597 msgid "Passed protocol is not B<AF_UNIX>."
16598 msgstr ""
16599
16600 #. type: TP
16601 #: build/C/man7/unix.7:384
16602 #, no-wrap
16603 msgid "B<EPROTOTYPE>"
16604 msgstr ""
16605
16606 #. type: Plain text
16607 #: build/C/man7/unix.7:390
16608 msgid ""
16609 "Remote socket does not match the local socket type (B<SOCK_DGRAM> versus "
16610 "B<SOCK_STREAM>)"
16611 msgstr ""
16612
16613 #. type: Plain text
16614 #: build/C/man7/unix.7:393
16615 msgid "Unknown socket type."
16616 msgstr ""
16617
16618 #. type: Plain text
16619 #: build/C/man7/unix.7:397
16620 msgid ""
16621 "Other errors can be generated by the generic socket layer or by the file "
16622 "system while generating a file system socket object.  See the appropriate "
16623 "manual pages for more information."
16624 msgstr ""
16625
16626 #. type: Plain text
16627 #: build/C/man7/unix.7:403
16628 msgid ""
16629 "B<SCM_CREDENTIALS> and the abstract namespace were introduced with Linux 2.2 "
16630 "and should not be used in portable programs.  (Some BSD-derived systems also "
16631 "support credential passing, but the implementation details differ.)"
16632 msgstr ""
16633
16634 #. type: Plain text
16635 #: build/C/man7/unix.7:414
16636 msgid ""
16637 "In the Linux implementation, sockets which are visible in the file system "
16638 "honor the permissions of the directory they are in.  Their owner, group and "
16639 "their permissions can be changed.  Creation of a new socket will fail if the "
16640 "process does not have write and search (execute) permission on the directory "
16641 "the socket is created in.  Connecting to the socket object requires "
16642 "read/write permission.  This behavior differs from many BSD-derived systems "
16643 "which ignore permissions for UNIX domain sockets.  Portable programs should "
16644 "not rely on this feature for security."
16645 msgstr ""
16646
16647 #. type: Plain text
16648 #: build/C/man7/unix.7:422
16649 msgid ""
16650 "Binding to a socket with a filename creates a socket in the file system that "
16651 "must be deleted by the caller when it is no longer needed (using "
16652 "B<unlink>(2)).  The usual UNIX close-behind semantics apply; the socket can "
16653 "be unlinked at any time and will be finally removed from the file system "
16654 "when the last reference to it is closed."
16655 msgstr ""
16656
16657 #. type: Plain text
16658 #: build/C/man7/unix.7:431
16659 msgid ""
16660 "To pass file descriptors or credentials over a B<SOCK_STREAM>, you need to "
16661 "send or receive at least one byte of nonancillary data in the same "
16662 "B<sendmsg>(2)  or B<recvmsg>(2)  call."
16663 msgstr ""
16664
16665 #. type: Plain text
16666 #: build/C/man7/unix.7:433
16667 msgid "UNIX domain stream sockets do not support the notion of out-of-band data."
16668 msgstr ""
16669
16670 #. type: Plain text
16671 #: build/C/man7/unix.7:436
16672 msgid "See B<bind>(2)."
16673 msgstr ""
16674
16675 #. type: Plain text
16676 #: build/C/man7/unix.7:441
16677 msgid "For an example of the use of B<SCM_RIGHTS> see B<cmsg>(3)."
16678 msgstr ""
16679
16680 #. type: Plain text
16681 #: build/C/man7/unix.7:450
16682 msgid ""
16683 "B<recvmsg>(2), B<sendmsg>(2), B<socket>(2), B<socketpair>(2), B<cmsg>(3), "
16684 "B<capabilities>(7), B<credentials>(7), B<socket>(7)"
16685 msgstr ""
16686
16687 #. type: TH
16688 #: build/C/man7/x25.7:7
16689 #, no-wrap
16690 msgid "X25"
16691 msgstr ""
16692
16693 #. type: Plain text
16694 #: build/C/man7/x25.7:10
16695 msgid "x25 - ITU-T X.25 / ISO-8208 protocol interface."
16696 msgstr ""
16697
16698 #. type: Plain text
16699 #: build/C/man7/x25.7:14
16700 msgid "B<#include E<lt>linux/x25.hE<gt>>"
16701 msgstr ""
16702
16703 #. type: Plain text
16704 #: build/C/man7/x25.7:16
16705 msgid "B<x25_socket = socket(AF_X25, SOCK_SEQPACKET, 0);>"
16706 msgstr ""
16707
16708 #. type: Plain text
16709 #: build/C/man7/x25.7:25
16710 msgid ""
16711 "X25 sockets provide an interface to the X.25 packet layer protocol.  This "
16712 "allows applications to communicate over a public X.25 data network as "
16713 "standardized by International Telecommunication Union's recommendation X.25 "
16714 "(X.25 DTE-DCE mode).  X25 sockets can also be used for communication without "
16715 "an intermediate X.25 network (X.25 DTE-DTE mode) as described in ISO-8208."
16716 msgstr ""
16717
16718 #. type: Plain text
16719 #: build/C/man7/x25.7:42
16720 msgid ""
16721 "Message boundaries are preserved \\(em a B<read>(2)  from a socket will "
16722 "retrieve the same chunk of data as output with the corresponding B<write>(2)  "
16723 "to the peer socket.  When necessary, the kernel takes care of segmenting and "
16724 "reassembling long messages by means of the X.25 M-bit.  There is no "
16725 "hard-coded upper limit for the message size.  However, reassembling of a "
16726 "long message might fail if there is a temporary lack of system resources or "
16727 "when other constraints (such as socket memory or buffer size limits) become "
16728 "effective.  If that occurs, the X.25 connection will be reset."
16729 msgstr ""
16730
16731 #. type: SS
16732 #: build/C/man7/x25.7:42
16733 #, no-wrap
16734 msgid "Socket Addresses"
16735 msgstr ""
16736
16737 #. type: Plain text
16738 #: build/C/man7/x25.7:49
16739 msgid ""
16740 "The B<AF_X25> socket address family uses the I<struct sockaddr_x25> for "
16741 "representing network addresses as defined in ITU-T recommendation X.121."
16742 msgstr ""
16743
16744 #. type: Plain text
16745 #: build/C/man7/x25.7:56
16746 #, no-wrap
16747 msgid ""
16748 "struct sockaddr_x25 {\n"
16749 "    sa_family_t sx25_family;    /* must be AF_X25 */\n"
16750 "    x25_address sx25_addr;      /* X.121 Address */\n"
16751 "};\n"
16752 msgstr ""
16753
16754 #. type: Plain text
16755 #: build/C/man7/x25.7:67
16756 msgid ""
16757 "I<sx25_addr> contains a char array I<x25_addr[]> to be interpreted as a "
16758 "null-terminated string.  I<sx25_addr.x25_addr[]> consists of up to 15 (not "
16759 "counting the terminating 0) ASCII characters forming the X.121 address.  "
16760 "Only the decimal digit characters from \\(aq0\\(aq to \\(aq9\\(aq are "
16761 "allowed."
16762 msgstr ""
16763
16764 #. type: Plain text
16765 #: build/C/man7/x25.7:76
16766 msgid ""
16767 "The following X.25-specific socket options can be set by using "
16768 "B<setsockopt>(2)  and read with B<getsockopt>(2)  with the I<level> argument "
16769 "set to B<SOL_X25>."
16770 msgstr ""
16771
16772 #. type: TP
16773 #: build/C/man7/x25.7:76
16774 #, no-wrap
16775 msgid "B<X25_QBITINCL>"
16776 msgstr ""
16777
16778 #. type: Plain text
16779 #: build/C/man7/x25.7:95
16780 msgid ""
16781 "Controls whether the X.25 Q-bit (Qualified Data Bit) is accessible by the "
16782 "user.  It expects an integer argument.  If set to 0 (default), the Q-bit is "
16783 "never set for outgoing packets and the Q-bit of incoming packets is "
16784 "ignored.  If set to 1, an additional first byte is prepended to each message "
16785 "read from or written to the socket.  For data read from the socket, a 0 "
16786 "first byte indicates that the Q-bits of the corresponding incoming data "
16787 "packets were not set.  A first byte with value 1 indicates that the Q-bit of "
16788 "the corresponding incoming data packets was set.  If the first byte of the "
16789 "data written to the socket is 1 the Q-bit of the corresponding outgoing data "
16790 "packets will be set.  If the first byte is 0 the Q-bit will not be set."
16791 msgstr ""
16792
16793 #. type: Plain text
16794 #: build/C/man7/x25.7:97
16795 msgid "The AF_X25 protocol family is a new feature of Linux 2.2."
16796 msgstr ""
16797
16798 #. type: Plain text
16799 #: build/C/man7/x25.7:100
16800 msgid "Plenty, as the X.25 PLP implementation is B<CONFIG_EXPERIMENTAL>."
16801 msgstr ""
16802
16803 #. type: Plain text
16804 #: build/C/man7/x25.7:102
16805 msgid "This man page is incomplete."
16806 msgstr ""
16807
16808 #. type: Plain text
16809 #: build/C/man7/x25.7:109
16810 msgid ""
16811 "There is no dedicated application programmer's header file yet; you need to "
16812 "include the kernel header file I<E<lt>linux/x25.hE<gt>>.  "
16813 "B<CONFIG_EXPERIMENTAL> might also imply that future versions of the "
16814 "interface are not binary compatible."
16815 msgstr ""
16816
16817 #. type: Plain text
16818 #: build/C/man7/x25.7:113
16819 msgid ""
16820 "X.25 N-Reset events are not propagated to the user process yet.  Thus, if a "
16821 "reset occurred, data might be lost without notice."
16822 msgstr ""
16823
16824 #. type: Plain text
16825 #: build/C/man7/x25.7:116
16826 msgid "B<socket>(2), B<socket>(7)"
16827 msgstr ""
16828
16829 #. type: Plain text
16830 #: build/C/man7/x25.7:120
16831 msgid ""
16832 "Jonathan Simon Naylor: \\(lqThe Re-Analysis and Re-Implementation of "
16833 "X.25.\\(rq The URL is"
16834 msgstr ""
16835
16836 #. type: Plain text
16837 #: build/C/man7/x25.7:122
16838 msgid "I<ftp://ftp.pspt.fi/pub/ham/linux/ax25/x25doc.tgz>"
16839 msgstr ""