OSDN Git Service

(split) LDP: Update POT and ja.po to LDP v3.40.
[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-01 04:38+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:270 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:309 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:813 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:320 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:340 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:266 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:822 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:302 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:328 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:343 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:272 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:829 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:309 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:335 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:350 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:279 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.40 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:580 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:264 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 build/C/man7/raw.7:9
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:585 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:299 build/C/man7/netdevice.7:303 build/C/man8/nscd.8:60 build/C/man5/nsswitch.conf.5:321 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:608 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/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/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 function 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:812 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 build/C/man5/nsswitch.conf.5:24
1836 #, no-wrap
1837 msgid "2012-04-14"
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:139 build/C/man5/nsswitch.conf.5:143 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:381
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."
2135 msgstr ""
2136
2137 #. type: Plain text
2138 #: build/C/man3/getaddrinfo.3:406
2139 msgid ""
2140 "If I<hint.ai_flags> specifies the B<AI_V4MAPPED> flag, and "
2141 "I<hints.ai_family> was specified as B<AF_INET6>, and no matching IPv6 "
2142 "addresses could be found, then return IPv4-mapped IPv6 addresses in the list "
2143 "pointed to by I<res>.  If both B<AI_V4MAPPED> and B<AI_ALL> are specified in "
2144 "I<hints.ai_flags>, then return both IPv6 and IPv4-mapped IPv6 addresses in "
2145 "the list pointed to by I<res>.  B<AI_ALL> is ignored if B<AI_V4MAPPED> is "
2146 "not also specified."
2147 msgstr ""
2148
2149 #. type: Plain text
2150 #: build/C/man3/getaddrinfo.3:412
2151 msgid ""
2152 "The B<freeaddrinfo>()  function frees the memory that was allocated for the "
2153 "dynamically allocated linked list I<res>."
2154 msgstr ""
2155
2156 #. type: SS
2157 #: build/C/man3/getaddrinfo.3:412 build/C/man3/getnameinfo.3:114
2158 #, no-wrap
2159 msgid "Extensions to getaddrinfo() for Internationalized Domain Names"
2160 msgstr ""
2161
2162 #. type: Plain text
2163 #: build/C/man3/getaddrinfo.3:421
2164 msgid ""
2165 "Starting with glibc 2.3.4, B<getaddrinfo>()  has been extended to "
2166 "selectively allow the incoming and outgoing hostnames to be transparently "
2167 "converted to and from the Internationalized Domain Name (IDN) format (see "
2168 "RFC 3490, I<Internationalizing Domain Names in Applications (IDNA)>).  Four "
2169 "new flags are defined:"
2170 msgstr ""
2171
2172 #. type: TP
2173 #: build/C/man3/getaddrinfo.3:421
2174 #, no-wrap
2175 msgid "B<AI_IDN>"
2176 msgstr ""
2177
2178 #. type: Plain text
2179 #: build/C/man3/getaddrinfo.3:427
2180 msgid ""
2181 "If this flag is specified, then the node name given in I<node> is converted "
2182 "to IDN format if necessary.  The source encoding is that of the current "
2183 "locale."
2184 msgstr ""
2185
2186 #.  Implementation Detail:
2187 #.  To minimize effects on system performance the implementation might
2188 #.  want to check whether the input string contains any non-ASCII
2189 #.  characters.  If there are none the IDN step can be skipped completely.
2190 #.  On systems which allow not-ASCII safe encodings for a locale this
2191 #.  might be a problem.
2192 #. type: Plain text
2193 #: build/C/man3/getaddrinfo.3:439
2194 msgid ""
2195 "If the input name contains non-ASCII characters, then the IDN encoding is "
2196 "used.  Those parts of the node name (delimited by dots) that contain "
2197 "non-ASCII characters are encoded using ASCII Compatible Encoding (ACE)  "
2198 "before being passed to the name resolution functions."
2199 msgstr ""
2200
2201 #. type: TP
2202 #: build/C/man3/getaddrinfo.3:439
2203 #, no-wrap
2204 msgid "B<AI_CANONIDN>"
2205 msgstr ""
2206
2207 #. type: Plain text
2208 #: build/C/man3/getaddrinfo.3:451
2209 msgid ""
2210 "After a successful name lookup, and if the B<AI_CANONNAME> flag was "
2211 "specified, B<getaddrinfo>()  will return the canonical name of the node "
2212 "corresponding to the I<addrinfo> structure value passed back.  The return "
2213 "value is an exact copy of the value returned by the name resolution "
2214 "function."
2215 msgstr ""
2216
2217 #
2218 #. Implementation Detail:
2219 #. If no component of the returned name starts with xn\-\- the IDN
2220 #. step can be skipped, therefore avoiding unnecessary slowdowns.
2221 #. type: Plain text
2222 #: build/C/man3/getaddrinfo.3:464
2223 msgid ""
2224 "If the name is encoded using ACE, then it will contain the I<xn--> prefix "
2225 "for one or more components of the name.  To convert these components into a "
2226 "readable form the B<AI_CANONIDN> flag can be passed in addition to "
2227 "B<AI_CANONNAME>.  The resulting string is encoded using the current locale's "
2228 "encoding."
2229 msgstr ""
2230
2231 #. type: TP
2232 #: build/C/man3/getaddrinfo.3:464
2233 #, no-wrap
2234 msgid "B<AI_IDN_ALLOW_UNASSIGNED>, B<AI_IDN_USE_STD3_ASCII_RULES>"
2235 msgstr ""
2236
2237 #. type: Plain text
2238 #: build/C/man3/getaddrinfo.3:471 build/C/man3/getnameinfo.3:136
2239 msgid ""
2240 "Setting these flags will enable the IDNA_ALLOW_UNASSIGNED (allow unassigned "
2241 "Unicode code points) and IDNA_USE_STD3_ASCII_RULES (check output to make "
2242 "sure it is a STD3 conforming hostname)  flags respectively to be used in the "
2243 "IDNA handling."
2244 msgstr ""
2245
2246 #. type: SH
2247 #: build/C/man3/getaddrinfo.3:471 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:237 build/C/man3/setnetgrent.3:81 build/C/man2/shutdown.2:67
2248 #, no-wrap
2249 msgid "RETURN VALUE"
2250 msgstr ""
2251
2252 #.  FIXME glibc defines the following additional errors, some which
2253 #.  can probably be returned by getaddrinfo(); they need to
2254 #.  be documented.
2255 #.  #ifdef __USE_GNU
2256 #.  #define EAI_INPROGRESS  -100  /* Processing request in progress.  */
2257 #.  #define EAI_CANCELED    -101  /* Request canceled.  */
2258 #.  #define EAI_NOTCANCELED -102  /* Request not canceled.  */
2259 #.  #define EAI_ALLDONE     -103  /* All requests done.  */
2260 #.  #define EAI_INTR        -104  /* Interrupted by a signal.  */
2261 #.  #define EAI_IDN_ENCODE  -105  /* IDN encoding failed.  */
2262 #.  #endif
2263 #. type: Plain text
2264 #: build/C/man3/getaddrinfo.3:485
2265 msgid ""
2266 "B<getaddrinfo>()  returns 0 if it succeeds, or one of the following nonzero "
2267 "error codes:"
2268 msgstr ""
2269
2270 #. type: TP
2271 #: build/C/man3/getaddrinfo.3:485
2272 #, no-wrap
2273 msgid "B<EAI_ADDRFAMILY>"
2274 msgstr ""
2275
2276 #.  Not in SUSv3
2277 #. type: Plain text
2278 #: build/C/man3/getaddrinfo.3:490
2279 msgid ""
2280 "The specified network host does not have any network addresses in the "
2281 "requested address family."
2282 msgstr ""
2283
2284 #. type: TP
2285 #: build/C/man3/getaddrinfo.3:490 build/C/man3/getaddrinfo_a.3:245 build/C/man3/getaddrinfo_a.3:262 build/C/man3/getnameinfo.3:152
2286 #, no-wrap
2287 msgid "B<EAI_AGAIN>"
2288 msgstr ""
2289
2290 #. type: Plain text
2291 #: build/C/man3/getaddrinfo.3:494
2292 msgid "The name server returned a temporary failure indication.  Try again later."
2293 msgstr ""
2294
2295 #. type: TP
2296 #: build/C/man3/getaddrinfo.3:494 build/C/man3/getnameinfo.3:156
2297 #, no-wrap
2298 msgid "B<EAI_BADFLAGS>"
2299 msgstr ""
2300
2301 #. type: Plain text
2302 #: build/C/man3/getaddrinfo.3:504
2303 msgid ""
2304 "I<hints.ai_flags> contains invalid flags; or, I<hints.ai_flags> included "
2305 "B<AI_CANONNAME> and I<name> was NULL."
2306 msgstr ""
2307
2308 #. type: TP
2309 #: build/C/man3/getaddrinfo.3:504 build/C/man3/getnameinfo.3:161
2310 #, no-wrap
2311 msgid "B<EAI_FAIL>"
2312 msgstr ""
2313
2314 #. type: Plain text
2315 #: build/C/man3/getaddrinfo.3:507
2316 msgid "The name server returned a permanent failure indication."
2317 msgstr ""
2318
2319 #. type: TP
2320 #: build/C/man3/getaddrinfo.3:507 build/C/man3/getnameinfo.3:164
2321 #, no-wrap
2322 msgid "B<EAI_FAMILY>"
2323 msgstr ""
2324
2325 #. type: Plain text
2326 #: build/C/man3/getaddrinfo.3:510
2327 msgid "The requested address family is not supported."
2328 msgstr ""
2329
2330 #. type: TP
2331 #: build/C/man3/getaddrinfo.3:510 build/C/man3/getaddrinfo_a.3:250 build/C/man3/getnameinfo.3:168
2332 #, no-wrap
2333 msgid "B<EAI_MEMORY>"
2334 msgstr ""
2335
2336 #. type: Plain text
2337 #: build/C/man3/getaddrinfo.3:513 build/C/man3/getaddrinfo_a.3:253 build/C/man3/getnameinfo.3:171 build/C/man7/unix.7:357
2338 msgid "Out of memory."
2339 msgstr ""
2340
2341 #. type: TP
2342 #: build/C/man3/getaddrinfo.3:513
2343 #, no-wrap
2344 msgid "B<EAI_NODATA>"
2345 msgstr ""
2346
2347 #.  Not in SUSv3
2348 #. type: Plain text
2349 #: build/C/man3/getaddrinfo.3:518
2350 msgid ""
2351 "The specified network host exists, but does not have any network addresses "
2352 "defined."
2353 msgstr ""
2354
2355 #. type: TP
2356 #: build/C/man3/getaddrinfo.3:518 build/C/man3/getnameinfo.3:171
2357 #, no-wrap
2358 msgid "B<EAI_NONAME>"
2359 msgstr ""
2360
2361 #. type: Plain text
2362 #: build/C/man3/getaddrinfo.3:535
2363 msgid ""
2364 "The I<node> or I<service> is not known; or both I<node> and I<service> are "
2365 "NULL; or B<AI_NUMERICSERV> was specified in I<hints.ai_flags> and I<service> "
2366 "was not a numeric port-number string."
2367 msgstr ""
2368
2369 #. type: TP
2370 #: build/C/man3/getaddrinfo.3:535
2371 #, no-wrap
2372 msgid "B<EAI_SERVICE>"
2373 msgstr ""
2374
2375 #. type: Plain text
2376 #: build/C/man3/getaddrinfo.3:556
2377 msgid ""
2378 "The requested service is not available for the requested socket type.  It "
2379 "may be available through another socket type.  For example, this error could "
2380 "occur if I<service> was \"shell\" (a service only available on stream "
2381 "sockets), and either I<hints.ai_protocol> was B<IPPROTO_UDP>, or "
2382 "I<hints.ai_socktype> was B<SOCK_DGRAM>; or the error could occur if "
2383 "I<service> was not NULL, and I<hints.ai_socktype> was B<SOCK_RAW> (a socket "
2384 "type that does not support the concept of services)."
2385 msgstr ""
2386
2387 #. type: TP
2388 #: build/C/man3/getaddrinfo.3:556
2389 #, no-wrap
2390 msgid "B<EAI_SOCKTYPE>"
2391 msgstr ""
2392
2393 #. type: Plain text
2394 #: build/C/man3/getaddrinfo.3:568
2395 msgid ""
2396 "The requested socket type is not supported.  This could occur, for example, "
2397 "if I<hints.ai_socktype> and I<hints.ai_protocol> are inconsistent (e.g., "
2398 "B<SOCK_DGRAM> and B<IPPROTO_TCP>, respectively)."
2399 msgstr ""
2400
2401 #. type: TP
2402 #: build/C/man3/getaddrinfo.3:568 build/C/man3/getaddrinfo_a.3:253 build/C/man3/getnameinfo.3:184
2403 #, no-wrap
2404 msgid "B<EAI_SYSTEM>"
2405 msgstr ""
2406
2407 #. type: Plain text
2408 #: build/C/man3/getaddrinfo.3:573
2409 msgid "Other system error, check I<errno> for details."
2410 msgstr ""
2411
2412 #. type: Plain text
2413 #: build/C/man3/getaddrinfo.3:578
2414 msgid ""
2415 "The B<gai_strerror>()  function translates these error codes to a human "
2416 "readable string, suitable for error reporting."
2417 msgstr ""
2418
2419 #. type: SH
2420 #: build/C/man3/getaddrinfo.3:578 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:286 build/C/man5/protocols.5:76 build/C/man5/resolv.conf.5:270 build/C/man3/resolver.3:259 build/C/man5/services.5:184 build/C/man3/setnetgrent.3:83 build/C/man7/udplite.7:136
2421 #, no-wrap
2422 msgid "FILES"
2423 msgstr ""
2424
2425 #. type: Plain text
2426 #: build/C/man3/getaddrinfo.3:580
2427 msgid "I</etc/gai.conf>"
2428 msgstr ""
2429
2430 #. type: Plain text
2431 #: build/C/man3/getaddrinfo.3:585
2432 msgid "POSIX.1-2001.  The B<getaddrinfo>()  function is documented in RFC\\ 2553."
2433 msgstr ""
2434
2435 #. type: Plain text
2436 #: build/C/man3/getaddrinfo.3:590
2437 msgid ""
2438 "B<getaddrinfo>()  supports the I<address>B<%>I<scope-id> notation for "
2439 "specifying the IPv6 scope-ID."
2440 msgstr ""
2441
2442 #. type: Plain text
2443 #: build/C/man3/getaddrinfo.3:598
2444 msgid ""
2445 "B<AI_ADDRCONFIG>, B<AI_ALL>, and B<AI_V4MAPPED> are available since glibc "
2446 "2.3.3.  B<AI_NUMERICSERV> is available since glibc 2.3.4."
2447 msgstr ""
2448
2449 #. type: Plain text
2450 #: build/C/man3/getaddrinfo.3:608
2451 msgid ""
2452 "According to POSIX.1-2001, specifying I<hints> as NULL should cause "
2453 "I<ai_flags> to be assumed as 0.  The GNU C library instead assumes a value "
2454 "of B<(AI_V4MAPPED\\ |\\ AI_ADDRCONFIG)> for this case, since this value is "
2455 "considered an improvement on the specification."
2456 msgstr ""
2457
2458 #.  getnameinfo.3 refers to this example
2459 #.  socket.2 refers to this example
2460 #.  bind.2 refers to this example
2461 #.  connect.2 refers to this example
2462 #.  recvfrom.2 refers to this example
2463 #.  sendto.2 refers to this example
2464 #. type: Plain text
2465 #: build/C/man3/getaddrinfo.3:622
2466 msgid ""
2467 "The following programs demonstrate the use of B<getaddrinfo>(), "
2468 "B<gai_strerror>(), B<freeaddrinfo>(), and B<getnameinfo>(3).  The programs "
2469 "are an echo server and client for UDP datagrams."
2470 msgstr ""
2471
2472 #. type: SS
2473 #: build/C/man3/getaddrinfo.3:622
2474 #, no-wrap
2475 msgid "Server program"
2476 msgstr ""
2477
2478 #. type: Plain text
2479 #: build/C/man3/getaddrinfo.3:632
2480 #, no-wrap
2481 msgid ""
2482 "#include E<lt>sys/types.hE<gt>\n"
2483 "#include E<lt>stdio.hE<gt>\n"
2484 "#include E<lt>stdlib.hE<gt>\n"
2485 "#include E<lt>unistd.hE<gt>\n"
2486 "#include E<lt>string.hE<gt>\n"
2487 "#include E<lt>sys/socket.hE<gt>\n"
2488 "#include E<lt>netdb.hE<gt>\n"
2489 msgstr ""
2490
2491 #. type: Plain text
2492 #: build/C/man3/getaddrinfo.3:634 build/C/man3/getaddrinfo.3:729
2493 #, no-wrap
2494 msgid "#define BUF_SIZE 500\n"
2495 msgstr ""
2496
2497 #. type: Plain text
2498 #: build/C/man3/getaddrinfo.3:645
2499 #, no-wrap
2500 msgid ""
2501 "int\n"
2502 "main(int argc, char *argv[])\n"
2503 "{\n"
2504 "    struct addrinfo hints;\n"
2505 "    struct addrinfo *result, *rp;\n"
2506 "    int sfd, s;\n"
2507 "    struct sockaddr_storage peer_addr;\n"
2508 "    socklen_t peer_addr_len;\n"
2509 "    ssize_t nread;\n"
2510 "    char buf[BUF_SIZE];\n"
2511 msgstr ""
2512
2513 #. type: Plain text
2514 #: build/C/man3/getaddrinfo.3:650
2515 #, no-wrap
2516 msgid ""
2517 "    if (argc != 2) {\n"
2518 "        fprintf(stderr, \"Usage: %s port\\en\", argv[0]);\n"
2519 "        exit(EXIT_FAILURE);\n"
2520 "    }\n"
2521 msgstr ""
2522
2523 #. type: Plain text
2524 #: build/C/man3/getaddrinfo.3:659
2525 #, no-wrap
2526 msgid ""
2527 "    memset(&hints, 0, sizeof(struct addrinfo));\n"
2528 "    hints.ai_family = AF_UNSPEC;    /* Allow IPv4 or IPv6 */\n"
2529 "    hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */\n"
2530 "    hints.ai_flags = AI_PASSIVE;    /* For wildcard IP address */\n"
2531 "    hints.ai_protocol = 0;          /* Any protocol */\n"
2532 "    hints.ai_canonname = NULL;\n"
2533 "    hints.ai_addr = NULL;\n"
2534 "    hints.ai_next = NULL;\n"
2535 msgstr ""
2536
2537 #. type: Plain text
2538 #: build/C/man3/getaddrinfo.3:665
2539 #, no-wrap
2540 msgid ""
2541 "    s = getaddrinfo(NULL, argv[1], &hints, &result);\n"
2542 "    if (s != 0) {\n"
2543 "        fprintf(stderr, \"getaddrinfo: %s\\en\", gai_strerror(s));\n"
2544 "        exit(EXIT_FAILURE);\n"
2545 "    }\n"
2546 msgstr ""
2547
2548 #. type: Plain text
2549 #: build/C/man3/getaddrinfo.3:670
2550 #, no-wrap
2551 msgid ""
2552 "    /* getaddrinfo() returns a list of address structures.\n"
2553 "       Try each address until we successfully bind(2).\n"
2554 "       If socket(2) (or bind(2)) fails, we (close the socket\n"
2555 "       and) try the next address. */\n"
2556 msgstr ""
2557
2558 #. type: Plain text
2559 #: build/C/man3/getaddrinfo.3:676
2560 #, no-wrap
2561 msgid ""
2562 "    for (rp = result; rp != NULL; rp = rp-E<gt>ai_next) {\n"
2563 "        sfd = socket(rp-E<gt>ai_family, rp-E<gt>ai_socktype,\n"
2564 "                rp-E<gt>ai_protocol);\n"
2565 "        if (sfd == -1)\n"
2566 "            continue;\n"
2567 msgstr ""
2568
2569 #. type: Plain text
2570 #: build/C/man3/getaddrinfo.3:679
2571 #, no-wrap
2572 msgid ""
2573 "        if (bind(sfd, rp-E<gt>ai_addr, rp-E<gt>ai_addrlen) == 0)\n"
2574 "            break;                  /* Success */\n"
2575 msgstr ""
2576
2577 #. type: Plain text
2578 #: build/C/man3/getaddrinfo.3:682 build/C/man3/getaddrinfo.3:775
2579 #, no-wrap
2580 msgid ""
2581 "        close(sfd);\n"
2582 "    }\n"
2583 msgstr ""
2584
2585 #. type: Plain text
2586 #: build/C/man3/getaddrinfo.3:687
2587 #, no-wrap
2588 msgid ""
2589 "    if (rp == NULL) {               /* No address succeeded */\n"
2590 "        fprintf(stderr, \"Could not bind\\en\");\n"
2591 "        exit(EXIT_FAILURE);\n"
2592 "    }\n"
2593 msgstr ""
2594
2595 #. type: Plain text
2596 #: build/C/man3/getaddrinfo.3:689 build/C/man3/getaddrinfo.3:782
2597 #, no-wrap
2598 msgid "    freeaddrinfo(result);           /* No longer needed */\n"
2599 msgstr ""
2600
2601 #. type: Plain text
2602 #: build/C/man3/getaddrinfo.3:691
2603 #, no-wrap
2604 msgid "    /* Read datagrams and echo them back to sender */\n"
2605 msgstr ""
2606
2607 #. type: Plain text
2608 #: build/C/man3/getaddrinfo.3:698
2609 #, no-wrap
2610 msgid ""
2611 "    for (;;) {\n"
2612 "        peer_addr_len = sizeof(struct sockaddr_storage);\n"
2613 "        nread = recvfrom(sfd, buf, BUF_SIZE, 0,\n"
2614 "                (struct sockaddr *) &peer_addr, &peer_addr_len);\n"
2615 "        if (nread == -1)\n"
2616 "            continue;               /* Ignore failed request */\n"
2617 msgstr ""
2618
2619 #. type: Plain text
2620 #: build/C/man3/getaddrinfo.3:700
2621 #, no-wrap
2622 msgid "        char host[NI_MAXHOST], service[NI_MAXSERV];\n"
2623 msgstr ""
2624
2625 #. type: Plain text
2626 #: build/C/man3/getaddrinfo.3:709
2627 #, no-wrap
2628 msgid ""
2629 "        s = getnameinfo((struct sockaddr *) &peer_addr,\n"
2630 "                        peer_addr_len, host, NI_MAXHOST,\n"
2631 "                        service, NI_MAXSERV, NI_NUMERICSERV);\n"
2632 "       if (s == 0)\n"
2633 "            printf(\"Received %ld bytes from %s:%s\\en\",\n"
2634 "                    (long) nread, host, service);\n"
2635 "        else\n"
2636 "            fprintf(stderr, \"getnameinfo: %s\\en\", gai_strerror(s));\n"
2637 msgstr ""
2638
2639 #. type: Plain text
2640 #: build/C/man3/getaddrinfo.3:716
2641 #, no-wrap
2642 msgid ""
2643 "        if (sendto(sfd, buf, nread, 0,\n"
2644 "                    (struct sockaddr *) &peer_addr,\n"
2645 "                    peer_addr_len) != nread)\n"
2646 "            fprintf(stderr, \"Error sending response\\en\");\n"
2647 "    }\n"
2648 "}\n"
2649 msgstr ""
2650
2651 #. type: SS
2652 #: build/C/man3/getaddrinfo.3:717
2653 #, no-wrap
2654 msgid "Client program"
2655 msgstr ""
2656
2657 #. type: Plain text
2658 #: build/C/man3/getaddrinfo.3:727
2659 #, no-wrap
2660 msgid ""
2661 "#include E<lt>sys/types.hE<gt>\n"
2662 "#include E<lt>sys/socket.hE<gt>\n"
2663 "#include E<lt>netdb.hE<gt>\n"
2664 "#include E<lt>stdio.hE<gt>\n"
2665 "#include E<lt>stdlib.hE<gt>\n"
2666 "#include E<lt>unistd.hE<gt>\n"
2667 "#include E<lt>string.hE<gt>\n"
2668 msgstr ""
2669
2670 #. type: Plain text
2671 #: build/C/man3/getaddrinfo.3:739
2672 #, no-wrap
2673 msgid ""
2674 "int\n"
2675 "main(int argc, char *argv[])\n"
2676 "{\n"
2677 "    struct addrinfo hints;\n"
2678 "    struct addrinfo *result, *rp;\n"
2679 "    int sfd, s, j;\n"
2680 "    size_t len;\n"
2681 "    ssize_t nread;\n"
2682 "    char buf[BUF_SIZE];\n"
2683 msgstr ""
2684
2685 #. type: Plain text
2686 #: build/C/man3/getaddrinfo.3:744
2687 #, no-wrap
2688 msgid ""
2689 "    if (argc E<lt> 3) {\n"
2690 "        fprintf(stderr, \"Usage: %s host port msg...\\en\", argv[0]);\n"
2691 "        exit(EXIT_FAILURE);\n"
2692 "    }\n"
2693 msgstr ""
2694
2695 #. type: Plain text
2696 #: build/C/man3/getaddrinfo.3:746
2697 #, no-wrap
2698 msgid "    /* Obtain address(es) matching host/port */\n"
2699 msgstr ""
2700
2701 #. type: Plain text
2702 #: build/C/man3/getaddrinfo.3:752
2703 #, no-wrap
2704 msgid ""
2705 "    memset(&hints, 0, sizeof(struct addrinfo));\n"
2706 "    hints.ai_family = AF_UNSPEC;    /* Allow IPv4 or IPv6 */\n"
2707 "    hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */\n"
2708 "    hints.ai_flags = 0;\n"
2709 "    hints.ai_protocol = 0;          /* Any protocol */\n"
2710 msgstr ""
2711
2712 #. type: Plain text
2713 #: build/C/man3/getaddrinfo.3:758
2714 #, no-wrap
2715 msgid ""
2716 "    s = getaddrinfo(argv[1], argv[2], &hints, &result);\n"
2717 "    if (s != 0) {\n"
2718 "        fprintf(stderr, \"getaddrinfo: %s\\en\", gai_strerror(s));\n"
2719 "        exit(EXIT_FAILURE);\n"
2720 "    }\n"
2721 msgstr ""
2722
2723 #. type: Plain text
2724 #: build/C/man3/getaddrinfo.3:763
2725 #, no-wrap
2726 msgid ""
2727 "    /* getaddrinfo() returns a list of address structures.\n"
2728 "       Try each address until we successfully connect(2).\n"
2729 "       If socket(2) (or connect(2)) fails, we (close the socket\n"
2730 "       and) try the next address. */\n"
2731 msgstr ""
2732
2733 #. type: Plain text
2734 #: build/C/man3/getaddrinfo.3:769
2735 #, no-wrap
2736 msgid ""
2737 "    for (rp = result; rp != NULL; rp = rp-E<gt>ai_next) {\n"
2738 "        sfd = socket(rp-E<gt>ai_family, rp-E<gt>ai_socktype,\n"
2739 "                     rp-E<gt>ai_protocol);\n"
2740 "        if (sfd == -1)\n"
2741 "            continue;\n"
2742 msgstr ""
2743
2744 #. type: Plain text
2745 #: build/C/man3/getaddrinfo.3:772
2746 #, no-wrap
2747 msgid ""
2748 "        if (connect(sfd, rp-E<gt>ai_addr, rp-E<gt>ai_addrlen) != -1)\n"
2749 "            break;                  /* Success */\n"
2750 msgstr ""
2751
2752 #. type: Plain text
2753 #: build/C/man3/getaddrinfo.3:780
2754 #, no-wrap
2755 msgid ""
2756 "    if (rp == NULL) {               /* No address succeeded */\n"
2757 "        fprintf(stderr, \"Could not connect\\en\");\n"
2758 "        exit(EXIT_FAILURE);\n"
2759 "    }\n"
2760 msgstr ""
2761
2762 #. type: Plain text
2763 #: build/C/man3/getaddrinfo.3:785
2764 #, no-wrap
2765 msgid ""
2766 "    /* Send remaining command-line arguments as separate\n"
2767 "       datagrams, and read responses from server */\n"
2768 msgstr ""
2769
2770 #. type: Plain text
2771 #: build/C/man3/getaddrinfo.3:789
2772 #, no-wrap
2773 msgid ""
2774 "    for (j = 3; j E<lt> argc; j++) {\n"
2775 "        len = strlen(argv[j]) + 1;\n"
2776 "                /* +1 for terminating null byte */\n"
2777 msgstr ""
2778
2779 #. type: Plain text
2780 #: build/C/man3/getaddrinfo.3:795
2781 #, no-wrap
2782 msgid ""
2783 "        if (len + 1 E<gt> BUF_SIZE) {\n"
2784 "            fprintf(stderr,\n"
2785 "                    \"Ignoring long message in argument %d\\en\", j);\n"
2786 "            continue;\n"
2787 "        }\n"
2788 msgstr ""
2789
2790 #. type: Plain text
2791 #: build/C/man3/getaddrinfo.3:800
2792 #, no-wrap
2793 msgid ""
2794 "        if (write(sfd, argv[j], len) != len) {\n"
2795 "            fprintf(stderr, \"partial/failed write\\en\");\n"
2796 "            exit(EXIT_FAILURE);\n"
2797 "        }\n"
2798 msgstr ""
2799
2800 #. type: Plain text
2801 #: build/C/man3/getaddrinfo.3:806
2802 #, no-wrap
2803 msgid ""
2804 "        nread = read(sfd, buf, BUF_SIZE);\n"
2805 "        if (nread == -1) {\n"
2806 "            perror(\"read\");\n"
2807 "            exit(EXIT_FAILURE);\n"
2808 "        }\n"
2809 msgstr ""
2810
2811 #. type: Plain text
2812 #: build/C/man3/getaddrinfo.3:809
2813 #, no-wrap
2814 msgid ""
2815 "        printf(\"Received %ld bytes: %s\\en\", (long) nread, buf);\n"
2816 "    }\n"
2817 msgstr ""
2818
2819 #.  .BR getipnodebyaddr (3),
2820 #.  .BR getipnodebyname (3),
2821 #. type: Plain text
2822 #: build/C/man3/getaddrinfo.3:822
2823 msgid ""
2824 "B<getaddrinfo_a>(3), B<gethostbyname>(3), B<getnameinfo>(3), B<inet>(3), "
2825 "B<hostname>(7), B<ip>(7)"
2826 msgstr ""
2827
2828 #. type: TH
2829 #: build/C/man3/getaddrinfo_a.3:27
2830 #, no-wrap
2831 msgid "GETADDRINFO_A"
2832 msgstr ""
2833
2834 #. type: TH
2835 #: build/C/man3/getaddrinfo_a.3:27
2836 #, no-wrap
2837 msgid "2010-09-27"
2838 msgstr ""
2839
2840 #. type: Plain text
2841 #: build/C/man3/getaddrinfo_a.3:31
2842 msgid ""
2843 "getaddrinfo_a, gai_suspend, gai_error, gai_cancel - asynchronous network "
2844 "address and service translation"
2845 msgstr ""
2846
2847 #. type: Plain text
2848 #: build/C/man3/getaddrinfo_a.3:35
2849 #, no-wrap
2850 msgid ""
2851 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
2852 "B<#include E<lt>netdb.hE<gt>>\n"
2853 msgstr ""
2854
2855 #. type: Plain text
2856 #: build/C/man3/getaddrinfo_a.3:38
2857 #, no-wrap
2858 msgid ""
2859 "B<int getaddrinfo_a(int >I<mode>B<, struct gaicb *>I<list[]>B<,>\n"
2860 "B<                int >I<nitems>B<, struct sigevent *>I<sevp>B<);>\n"
2861 msgstr ""
2862
2863 #. type: Plain text
2864 #: build/C/man3/getaddrinfo_a.3:41
2865 #, no-wrap
2866 msgid ""
2867 "B<int gai_suspend(struct gaicb *>I<list[]>B<, int >I<nitems>B<,>\n"
2868 "B<                struct timespec *>I<timeout>B<);>\n"
2869 msgstr ""
2870
2871 #. type: Plain text
2872 #: build/C/man3/getaddrinfo_a.3:43
2873 #, no-wrap
2874 msgid "B<int gai_error(struct gaicb *>I<req>B<);>\n"
2875 msgstr ""
2876
2877 #. type: Plain text
2878 #: build/C/man3/getaddrinfo_a.3:45
2879 #, no-wrap
2880 msgid "B<int gai_cancel(struct gaicb *>I<req>B<);>\n"
2881 msgstr ""
2882
2883 #. type: Plain text
2884 #: build/C/man3/getaddrinfo_a.3:47
2885 #, no-wrap
2886 msgid "Link with I<-lanl>.\n"
2887 msgstr ""
2888
2889 #. type: Plain text
2890 #: build/C/man3/getaddrinfo_a.3:55
2891 msgid ""
2892 "The B<getaddrinfo_a>()  function performs the same task as "
2893 "B<getaddrinfo>(3), but allows multiple name look-ups to be performed "
2894 "asynchronously, with optional notification on completion of look-up "
2895 "operations."
2896 msgstr ""
2897
2898 #. type: Plain text
2899 #: build/C/man3/getaddrinfo_a.3:59
2900 msgid "The I<mode> argument has one of the following values:"
2901 msgstr ""
2902
2903 #. type: TP
2904 #: build/C/man3/getaddrinfo_a.3:59
2905 #, no-wrap
2906 msgid "B<GAI_WAIT>"
2907 msgstr ""
2908
2909 #. type: Plain text
2910 #: build/C/man3/getaddrinfo_a.3:63
2911 msgid ""
2912 "Perform the look-ups synchronously.  The call blocks until the look-ups have "
2913 "completed."
2914 msgstr ""
2915
2916 #. type: TP
2917 #: build/C/man3/getaddrinfo_a.3:63
2918 #, no-wrap
2919 msgid "B<GAI_NOWAIT>"
2920 msgstr ""
2921
2922 #. type: Plain text
2923 #: build/C/man3/getaddrinfo_a.3:71
2924 msgid ""
2925 "Perform the look-ups asynchronously.  The call returns immediately, and the "
2926 "requests are resolved in the background.  See the discussion of the I<sevp> "
2927 "argument below."
2928 msgstr ""
2929
2930 #. type: Plain text
2931 #: build/C/man3/getaddrinfo_a.3:86
2932 msgid ""
2933 "The array I<list> specifies the look-up requests to process.  The I<nitems> "
2934 "argument specifies the number of elements in I<list>.  The requested look-up "
2935 "operations are started in parallel.  NULL elements in I<list> are ignored.  "
2936 "Each request is described by a I<gaicb> structure, defined as follows:"
2937 msgstr ""
2938
2939 #. type: Plain text
2940 #: build/C/man3/getaddrinfo_a.3:95
2941 #, no-wrap
2942 msgid ""
2943 "struct gaicb {\n"
2944 "    const char            *ar_name;\n"
2945 "    const char            *ar_service;\n"
2946 "    const struct addrinfo *ar_request;\n"
2947 "    struct addrinfo       *ar_result;\n"
2948 "};\n"
2949 msgstr ""
2950
2951 #. type: Plain text
2952 #: build/C/man3/getaddrinfo_a.3:126
2953 msgid ""
2954 "The elements of this structure correspond to the arguments of "
2955 "B<getaddrinfo>(3).  Thus, I<ar_name> corresponds to the I<node> argument and "
2956 "I<ar_service> to the I<service> argument, identifying an Internet host and a "
2957 "service.  The I<ar_request> element corresponds to the I<hints> argument, "
2958 "specifying the criteria for selecting the returned socket address "
2959 "structures.  Finally, I<ar_result> corresponds to the I<res> argument; you "
2960 "do not need to initialize this element, it will be automatically set when "
2961 "the request is resolved.  The I<addrinfo> structure referenced by the last "
2962 "two elements is described in B<getaddrinfo>(3)."
2963 msgstr ""
2964
2965 #. type: Plain text
2966 #: build/C/man3/getaddrinfo_a.3:142
2967 msgid ""
2968 "When I<mode> is specified as B<GAI_NOWAIT>, notifications about resolved "
2969 "requests can be obtained by employing the I<sigevent> structure pointed to "
2970 "by the I<sevp> argument.  For the definition and general details of this "
2971 "structure, see B<sigevent>(7).  The I<sevp-E<gt>sigev_notify> field can have "
2972 "the following values:"
2973 msgstr ""
2974
2975 #. type: TP
2976 #: build/C/man3/getaddrinfo_a.3:142
2977 #, no-wrap
2978 msgid "B<SIGEV_NONE>"
2979 msgstr ""
2980
2981 #. type: Plain text
2982 #: build/C/man3/getaddrinfo_a.3:145
2983 msgid "Don't provide any notification."
2984 msgstr ""
2985
2986 #. type: TP
2987 #: build/C/man3/getaddrinfo_a.3:145
2988 #, no-wrap
2989 msgid "B<SIGEV_SIGNAL>"
2990 msgstr ""
2991
2992 #.  si_pid and si_uid are also set, to the values of the calling process,
2993 #.  which doesn't provide useful information, so we'll skip mentioning it.
2994 #. type: Plain text
2995 #: build/C/man3/getaddrinfo_a.3:161
2996 msgid ""
2997 "When a look-up completes, generate the signal I<sigev_signo> for the "
2998 "process.  See B<sigevent>(7)  for general details.  The I<si_code> field of "
2999 "the I<siginfo_t> structure will be set to B<SI_ASYNCNL>."
3000 msgstr ""
3001
3002 #. type: TP
3003 #: build/C/man3/getaddrinfo_a.3:161
3004 #, no-wrap
3005 msgid "B<SIGEV_THREAD>"
3006 msgstr ""
3007
3008 #. type: Plain text
3009 #: build/C/man3/getaddrinfo_a.3:169
3010 msgid ""
3011 "When a look-up completes, invoke I<sigev_notify_function> as if it were the "
3012 "start function of a new thread.  See B<sigevent>(7)  for details."
3013 msgstr ""
3014
3015 #. type: Plain text
3016 #: build/C/man3/getaddrinfo_a.3:178
3017 msgid ""
3018 "For B<SIGEV_SIGNAL> and B<SIGEV_THREAD>, it may be useful to point "
3019 "I<sevp-E<gt>sigev_value.sival_ptr> to I<list>."
3020 msgstr ""
3021
3022 #. type: Plain text
3023 #: build/C/man3/getaddrinfo_a.3:189
3024 msgid ""
3025 "The B<gai_suspend>()  function suspends execution of the calling thread, "
3026 "waiting for the completion of one or more requests in the array I<list>.  "
3027 "The I<nitems> argument specifies the size of the array I<list>.  The call "
3028 "blocks until one of the following occurs:"
3029 msgstr ""
3030
3031 #. type: Plain text
3032 #: build/C/man3/getaddrinfo_a.3:193
3033 msgid "One or more of the operations in I<list> completes."
3034 msgstr ""
3035
3036 #. type: Plain text
3037 #: build/C/man3/getaddrinfo_a.3:195
3038 msgid "The call is interrupted by a signal that is caught."
3039 msgstr ""
3040
3041 #. type: Plain text
3042 #: build/C/man3/getaddrinfo_a.3:208
3043 msgid ""
3044 "The time interval specified in I<timeout> elapses.  This argument specifies "
3045 "a timeout in seconds plus nanoseconds (see B<nanosleep>(2)  for details of "
3046 "the I<timespec> structure).  If I<timeout> is NULL, then the call blocks "
3047 "indefinitely (until one of the events above occurs)."
3048 msgstr ""
3049
3050 #. type: Plain text
3051 #: build/C/man3/getaddrinfo_a.3:213
3052 msgid ""
3053 "No explicit indication of which request was completed is given; you must "
3054 "determine which request(s) have completed by iterating with B<gai_error>()  "
3055 "over the list of requests."
3056 msgstr ""
3057
3058 #. type: Plain text
3059 #: build/C/man3/getaddrinfo_a.3:223
3060 msgid ""
3061 "The B<gai_error>()  function returns the status of the request I<req>: "
3062 "either B<EAI_INPROGRESS> if the request was not completed yet, 0 if it was "
3063 "handled successfully, or an error code if the request could not be resolved."
3064 msgstr ""
3065
3066 #. type: Plain text
3067 #: build/C/man3/getaddrinfo_a.3:240
3068 msgid ""
3069 "The B<gai_cancel>()  function cancels the request I<req>.  If the request "
3070 "has been canceled successfully, the error status of the request will be set "
3071 "to B<EAI_CANCELLED> and normal asynchronous notification will be performed.  "
3072 "The request cannot be canceled if it is currently being processed; in that "
3073 "case, it will be handled as if B<gai_cancel>()  has never been called.  If "
3074 "I<req> is NULL, an attempt is made to cancel all outstanding requests that "
3075 "the process has made."
3076 msgstr ""
3077
3078 #. type: Plain text
3079 #: build/C/man3/getaddrinfo_a.3:245
3080 msgid ""
3081 "The B<getaddrinfo_a>()  function returns 0 if all of the requests have been "
3082 "enqueued successfully, or one of the following nonzero error codes:"
3083 msgstr ""
3084
3085 #. type: Plain text
3086 #: build/C/man3/getaddrinfo_a.3:250
3087 msgid ""
3088 "The resources necessary to enqueue the look-up requests were not available.  "
3089 "The application may check the error status of each request to determine "
3090 "which ones failed."
3091 msgstr ""
3092
3093 #. type: Plain text
3094 #: build/C/man3/getaddrinfo_a.3:257
3095 msgid "I<mode> is invalid."
3096 msgstr ""
3097
3098 #. type: Plain text
3099 #: build/C/man3/getaddrinfo_a.3:262
3100 msgid ""
3101 "The B<gai_suspend>()  function returns 0 if at least one of the listed "
3102 "requests has been completed.  Otherwise, it returns one of the following "
3103 "nonzero error codes:"
3104 msgstr ""
3105
3106 #. type: Plain text
3107 #: build/C/man3/getaddrinfo_a.3:265
3108 msgid "The given timeout expired before any of the requests could be completed."
3109 msgstr ""
3110
3111 #. type: TP
3112 #: build/C/man3/getaddrinfo_a.3:265 build/C/man3/getaddrinfo_a.3:295
3113 #, no-wrap
3114 msgid "B<EAI_ALLDONE>"
3115 msgstr ""
3116
3117 #. type: Plain text
3118 #: build/C/man3/getaddrinfo_a.3:268
3119 msgid "There were no actual requests given to the function."
3120 msgstr ""
3121
3122 #. type: TP
3123 #: build/C/man3/getaddrinfo_a.3:268
3124 #, no-wrap
3125 msgid "B<EAI_INTR>"
3126 msgstr ""
3127
3128 #. type: Plain text
3129 #: build/C/man3/getaddrinfo_a.3:273
3130 msgid ""
3131 "A signal has interrupted the function.  Note that this interruption might "
3132 "have been caused by signal notification of some completed look-up request."
3133 msgstr ""
3134
3135 #. type: Plain text
3136 #: build/C/man3/getaddrinfo_a.3:285
3137 msgid ""
3138 "The B<gai_error>()  function can return B<EAI_INPROGRESS> for an unfinished "
3139 "look-up request, 0 for a successfully completed look-up (as described "
3140 "above), one of the error codes that could be returned by B<getaddrinfo>(3), "
3141 "or the error code B<EAI_CANCELLED> if the request has been canceled "
3142 "explicitly before it could be finished."
3143 msgstr ""
3144
3145 #. type: Plain text
3146 #: build/C/man3/getaddrinfo_a.3:289
3147 msgid "The B<gai_cancel>()  function can return one of these values:"
3148 msgstr ""
3149
3150 #. type: TP
3151 #: build/C/man3/getaddrinfo_a.3:289
3152 #, no-wrap
3153 msgid "B<EAI_CANCELLED>"
3154 msgstr ""
3155
3156 #. type: Plain text
3157 #: build/C/man3/getaddrinfo_a.3:292
3158 msgid "The request has been canceled successfully."
3159 msgstr ""
3160
3161 #. type: TP
3162 #: build/C/man3/getaddrinfo_a.3:292
3163 #, no-wrap
3164 msgid "B<EAI_NOTCANCELLED>"
3165 msgstr ""
3166
3167 #. type: Plain text
3168 #: build/C/man3/getaddrinfo_a.3:295
3169 msgid "The request has not been canceled."
3170 msgstr ""
3171
3172 #. type: Plain text
3173 #: build/C/man3/getaddrinfo_a.3:298
3174 msgid "The request has already completed."
3175 msgstr ""
3176
3177 #. type: Plain text
3178 #: build/C/man3/getaddrinfo_a.3:303 build/C/man3/getnameinfo.3:194
3179 msgid ""
3180 "The B<gai_strerror>(3)  function translates these error codes to a human "
3181 "readable string, suitable for error reporting."
3182 msgstr ""
3183
3184 #. type: Plain text
3185 #: build/C/man3/getaddrinfo_a.3:306
3186 msgid ""
3187 "These functions are GNU extensions; they first appeared in glibc in version "
3188 "2.2.3."
3189 msgstr ""
3190
3191 #. type: Plain text
3192 #: build/C/man3/getaddrinfo_a.3:312
3193 msgid ""
3194 "The interface of B<getaddrinfo_a>()  was modeled after the B<lio_listio>(3)  "
3195 "interface."
3196 msgstr ""
3197
3198 #. type: Plain text
3199 #: build/C/man3/getaddrinfo_a.3:316
3200 msgid ""
3201 "Two examples are provided: a simple example that resolves several requests "
3202 "in parallel synchronously, and a complex example showing some of the "
3203 "asynchronous capabilities."
3204 msgstr ""
3205
3206 #. type: SS
3207 #: build/C/man3/getaddrinfo_a.3:316
3208 #, no-wrap
3209 msgid "Synchronous Example"
3210 msgstr ""
3211
3212 #. type: Plain text
3213 #: build/C/man3/getaddrinfo_a.3:321
3214 msgid ""
3215 "The program below simply resolves several hostnames in parallel, giving a "
3216 "speed-up compared to resolving the hostnames sequentially using "
3217 "B<getaddrinfo>(3).  The program might be used like this:"
3218 msgstr ""
3219
3220 #. type: Plain text
3221 #: build/C/man3/getaddrinfo_a.3:328
3222 #, no-wrap
3223 msgid ""
3224 "$ B<./a.out ftp.us.kernel.org enoent.linuxfoundation.org gnu.cz>\n"
3225 "ftp.us.kernel.org: 128.30.2.36\n"
3226 "enoent.linuxfoundation.org: Name or service not known\n"
3227 "gnu.cz: 87.236.197.13\n"
3228 msgstr ""
3229
3230 #. type: Plain text
3231 #: build/C/man3/getaddrinfo_a.3:332
3232 msgid "Here is the program source code"
3233 msgstr ""
3234
3235 #. type: Plain text
3236 #: build/C/man3/getaddrinfo_a.3:339 build/C/man3/getaddrinfo_a.3:430
3237 #, no-wrap
3238 msgid ""
3239 "#define _GNU_SOURCE\n"
3240 "#include E<lt>netdb.hE<gt>\n"
3241 "#include E<lt>stdio.hE<gt>\n"
3242 "#include E<lt>stdlib.hE<gt>\n"
3243 "#include E<lt>string.hE<gt>\n"
3244 msgstr ""
3245
3246 #. type: Plain text
3247 #: build/C/man3/getaddrinfo_a.3:347
3248 #, no-wrap
3249 msgid ""
3250 "int\n"
3251 "main(int argc, char *argv[])\n"
3252 "{\n"
3253 "    int i, ret;\n"
3254 "    struct gaicb *reqs[argc - 1];\n"
3255 "    char host[NI_MAXHOST];\n"
3256 "    struct addrinfo *res;\n"
3257 msgstr ""
3258
3259 #. type: Plain text
3260 #: build/C/man3/getaddrinfo_a.3:352
3261 #, no-wrap
3262 msgid ""
3263 "    if (argc E<lt> 2) {\n"
3264 "        fprintf(stderr, \"Usage: %s HOST...\\en\", argv[0]);\n"
3265 "        exit(EXIT_FAILURE);\n"
3266 "    }\n"
3267 msgstr ""
3268
3269 #. type: Plain text
3270 #: build/C/man3/getaddrinfo_a.3:362
3271 #, no-wrap
3272 msgid ""
3273 "    for (i = 0; i E<lt> argc - 1; i++) {\n"
3274 "        reqs[i] = malloc(sizeof(*reqs[0]));\n"
3275 "        if (reqs[i] == NULL) {\n"
3276 "            perror(\"malloc\");\n"
3277 "            exit(EXIT_FAILURE);\n"
3278 "        }\n"
3279 "        memset(reqs[i], 0, sizeof(*reqs[0]));\n"
3280 "        reqs[i]-E<gt>ar_name = argv[i + 1];\n"
3281 "    }\n"
3282 msgstr ""
3283
3284 #. type: Plain text
3285 #: build/C/man3/getaddrinfo_a.3:369
3286 #, no-wrap
3287 msgid ""
3288 "    ret = getaddrinfo_a(GAI_WAIT, reqs, argc - 1, NULL);\n"
3289 "    if (ret != 0) {\n"
3290 "        fprintf(stderr, \"getaddrinfo_a() failed: %s\\en\",\n"
3291 "                gai_strerror(ret));\n"
3292 "        exit(EXIT_FAILURE);\n"
3293 "    }\n"
3294 msgstr ""
3295
3296 #. type: Plain text
3297 #: build/C/man3/getaddrinfo_a.3:375
3298 #, no-wrap
3299 msgid ""
3300 "    for (i = 0; i E<lt> argc - 1; i++) {\n"
3301 "        printf(\"%s: \", reqs[i]-E<gt>ar_name);\n"
3302 "        ret = gai_error(reqs[i]);\n"
3303 "        if (ret == 0) {\n"
3304 "            res = reqs[i]-E<gt>ar_result;\n"
3305 msgstr ""
3306
3307 #. type: Plain text
3308 #: build/C/man3/getaddrinfo_a.3:385
3309 #, no-wrap
3310 msgid ""
3311 "            ret = getnameinfo(res-E<gt>ai_addr, res-E<gt>ai_addrlen,\n"
3312 "                    host, sizeof(host),\n"
3313 "                    NULL, 0, NI_NUMERICHOST);\n"
3314 "            if (ret != 0) {\n"
3315 "                fprintf(stderr, \"getnameinfo() failed: %s\\en\",\n"
3316 "                        gai_strerror(ret));\n"
3317 "                exit(EXIT_FAILURE);\n"
3318 "            }\n"
3319 "            puts(host);\n"
3320 msgstr ""
3321
3322 #. type: Plain text
3323 #: build/C/man3/getaddrinfo_a.3:392
3324 #, no-wrap
3325 msgid ""
3326 "        } else {\n"
3327 "            puts(gai_strerror(ret));\n"
3328 "        }\n"
3329 "    }\n"
3330 "    exit(EXIT_SUCCESS);\n"
3331 "}\n"
3332 msgstr ""
3333
3334 #. type: SS
3335 #: build/C/man3/getaddrinfo_a.3:394
3336 #, no-wrap
3337 msgid "Asynchronous Example"
3338 msgstr ""
3339
3340 #. type: Plain text
3341 #: build/C/man3/getaddrinfo_a.3:399
3342 msgid ""
3343 "This example shows a simple interactive B<getaddrinfo_a>()  front-end.  The "
3344 "notification facility is not demonstrated."
3345 msgstr ""
3346
3347 #. type: Plain text
3348 #: build/C/man3/getaddrinfo_a.3:401
3349 msgid "An example session might look like this:"
3350 msgstr ""
3351
3352 #. type: Plain text
3353 #: build/C/man3/getaddrinfo_a.3:418
3354 #, no-wrap
3355 msgid ""
3356 "$ B<./a.out>\n"
3357 "E<gt> a ftp.us.kernel.org enoent.linuxfoundation.org gnu.cz\n"
3358 "E<gt> c 2\n"
3359 "[2] gnu.cz: Request not canceled\n"
3360 "E<gt> w 0 1\n"
3361 "[00] ftp.us.kernel.org: Finished\n"
3362 "E<gt> l\n"
3363 "[00] ftp.us.kernel.org: 216.165.129.139\n"
3364 "[01] enoent.linuxfoundation.org: Processing request in progress\n"
3365 "[02] gnu.cz: 87.236.197.13\n"
3366 "E<gt> l\n"
3367 "[00] ftp.us.kernel.org: 216.165.129.139\n"
3368 "[01] enoent.linuxfoundation.org: Name or service not known\n"
3369 "[02] gnu.cz: 87.236.197.13\n"
3370 msgstr ""
3371
3372 #. type: Plain text
3373 #: build/C/man3/getaddrinfo_a.3:422
3374 msgid "The program source goes as follows:"
3375 msgstr ""
3376
3377 #. type: Plain text
3378 #: build/C/man3/getaddrinfo_a.3:433
3379 #, no-wrap
3380 msgid ""
3381 "static struct gaicb **reqs = NULL;\n"
3382 "static int nreqs = 0;\n"
3383 msgstr ""
3384
3385 #. type: Plain text
3386 #: build/C/man3/getaddrinfo_a.3:438
3387 #, no-wrap
3388 msgid ""
3389 "static char *\n"
3390 "getcmd(void)\n"
3391 "{\n"
3392 "    static char buf[256];\n"
3393 msgstr ""
3394
3395 #. type: Plain text
3396 #: build/C/man3/getaddrinfo_a.3:442
3397 #, no-wrap
3398 msgid ""
3399 "    fputs(\"E<gt> \", stdout); fflush(stdout);\n"
3400 "    if (fgets(buf, sizeof(buf), stdin) == NULL)\n"
3401 "        return NULL;\n"
3402 msgstr ""
3403
3404 #. type: Plain text
3405 #: build/C/man3/getaddrinfo_a.3:445
3406 #, no-wrap
3407 msgid ""
3408 "    if (buf[strlen(buf) - 1] == \\(aq\\en\\(aq)\n"
3409 "        buf[strlen(buf) - 1] = 0;\n"
3410 msgstr ""
3411
3412 #. type: Plain text
3413 #: build/C/man3/getaddrinfo_a.3:448
3414 #, no-wrap
3415 msgid ""
3416 "    return buf;\n"
3417 "}\n"
3418 msgstr ""
3419
3420 #. type: Plain text
3421 #: build/C/man3/getaddrinfo_a.3:456
3422 #, no-wrap
3423 msgid ""
3424 "/* Add requests for specified hostnames */\n"
3425 "static void\n"
3426 "add_requests(void)\n"
3427 "{\n"
3428 "    int nreqs_base = nreqs;\n"
3429 "    char *host;\n"
3430 "    int ret;\n"
3431 msgstr ""
3432
3433 #. type: Plain text
3434 #: build/C/man3/getaddrinfo_a.3:460
3435 #, no-wrap
3436 msgid ""
3437 "    while ((host = strtok(NULL, \" \"))) {\n"
3438 "        nreqs++;\n"
3439 "        reqs = realloc(reqs, nreqs * sizeof(reqs[0]));\n"
3440 msgstr ""
3441
3442 #. type: Plain text
3443 #: build/C/man3/getaddrinfo_a.3:464
3444 #, no-wrap
3445 msgid ""
3446 "        reqs[nreqs - 1] = calloc(1, sizeof(*reqs[0]));\n"
3447 "        reqs[nreqs - 1]-E<gt>ar_name = strdup(host);\n"
3448 "    }\n"
3449 msgstr ""
3450
3451 #. type: Plain text
3452 #: build/C/man3/getaddrinfo_a.3:466
3453 #, no-wrap
3454 msgid "    /* Queue nreqs_base..nreqs requests. */\n"
3455 msgstr ""
3456
3457 #. type: Plain text
3458 #: build/C/man3/getaddrinfo_a.3:475
3459 #, no-wrap
3460 msgid ""
3461 "    ret = getaddrinfo_a(GAI_NOWAIT, &reqs[nreqs_base],\n"
3462 "                        nreqs - nreqs_base, NULL);\n"
3463 "    if (ret) {\n"
3464 "        fprintf(stderr, \"getaddrinfo_a() failed: %s\\en\",\n"
3465 "                gai_strerror(ret));\n"
3466 "        exit(EXIT_FAILURE);\n"
3467 "    }\n"
3468 "}\n"
3469 msgstr ""
3470
3471 #. type: Plain text
3472 #: build/C/man3/getaddrinfo_a.3:484
3473 #, no-wrap
3474 msgid ""
3475 "/* Wait until at least one of specified requests completes */\n"
3476 "static void\n"
3477 "wait_requests(void)\n"
3478 "{\n"
3479 "    char *id;\n"
3480 "    int i, ret, n;\n"
3481 "    struct gaicb const **wait_reqs = calloc(nreqs, sizeof(*wait_reqs));\n"
3482 "                /* NULL elements are ignored by gai_suspend(). */\n"
3483 msgstr ""
3484
3485 #. type: Plain text
3486 #: build/C/man3/getaddrinfo_a.3:487 build/C/man3/getaddrinfo_a.3:524
3487 #, no-wrap
3488 msgid ""
3489 "    while ((id = strtok(NULL, \" \")) != NULL) {\n"
3490 "        n = atoi(id);\n"
3491 msgstr ""
3492
3493 #. type: Plain text
3494 #: build/C/man3/getaddrinfo_a.3:492 build/C/man3/getaddrinfo_a.3:529
3495 #, no-wrap
3496 msgid ""
3497 "        if (n E<gt>= nreqs) {\n"
3498 "            printf(\"Bad request number: %s\\en\", id);\n"
3499 "            return;\n"
3500 "        }\n"
3501 msgstr ""
3502
3503 #. type: Plain text
3504 #: build/C/man3/getaddrinfo_a.3:495
3505 #, no-wrap
3506 msgid ""
3507 "        wait_reqs[n] = reqs[n];\n"
3508 "    }\n"
3509 msgstr ""
3510
3511 #. type: Plain text
3512 #: build/C/man3/getaddrinfo_a.3:501
3513 #, no-wrap
3514 msgid ""
3515 "    ret = gai_suspend(wait_reqs, nreqs, NULL);\n"
3516 "    if (ret) {\n"
3517 "        printf(\"gai_suspend(): %s\\en\", gai_strerror(ret));\n"
3518 "        return;\n"
3519 "    }\n"
3520 msgstr ""
3521
3522 #. type: Plain text
3523 #: build/C/man3/getaddrinfo_a.3:505
3524 #, no-wrap
3525 msgid ""
3526 "    for (i = 0; i E<lt> nreqs; i++) {\n"
3527 "        if (wait_reqs[i] == NULL)\n"
3528 "            continue;\n"
3529 msgstr ""
3530
3531 #. type: Plain text
3532 #: build/C/man3/getaddrinfo_a.3:509
3533 #, no-wrap
3534 msgid ""
3535 "        ret = gai_error(reqs[i]);\n"
3536 "        if (ret == EAI_INPROGRESS)\n"
3537 "            continue;\n"
3538 msgstr ""
3539
3540 #. type: Plain text
3541 #: build/C/man3/getaddrinfo_a.3:514
3542 #, no-wrap
3543 msgid ""
3544 "        printf(\"[%02d] %s: %s\\en\", i, reqs[i]-E<gt>ar_name,\n"
3545 "               ret == 0 ? \"Finished\" : gai_strerror(ret));\n"
3546 "    }\n"
3547 "}\n"
3548 msgstr ""
3549
3550 #. type: Plain text
3551 #: build/C/man3/getaddrinfo_a.3:521
3552 #, no-wrap
3553 msgid ""
3554 "/* Cancel specified requests */\n"
3555 "static void\n"
3556 "cancel_requests(void)\n"
3557 "{\n"
3558 "    char *id;\n"
3559 "    int ret, n;\n"
3560 msgstr ""
3561
3562 #. type: Plain text
3563 #: build/C/man3/getaddrinfo_a.3:535
3564 #, no-wrap
3565 msgid ""
3566 "        ret = gai_cancel(reqs[n]);\n"
3567 "        printf(\"[%s] %s: %s\\en\", id, reqs[atoi(id)]-E<gt>ar_name,\n"
3568 "               gai_strerror(ret));\n"
3569 "    }\n"
3570 "}\n"
3571 msgstr ""
3572
3573 #. type: Plain text
3574 #: build/C/man3/getaddrinfo_a.3:543
3575 #, no-wrap
3576 msgid ""
3577 "/* List all requests */\n"
3578 "static void\n"
3579 "list_requests(void)\n"
3580 "{\n"
3581 "    int i, ret;\n"
3582 "    char host[NI_MAXHOST];\n"
3583 "    struct addrinfo *res;\n"
3584 msgstr ""
3585
3586 #. type: Plain text
3587 #: build/C/man3/getaddrinfo_a.3:547
3588 #, no-wrap
3589 msgid ""
3590 "    for (i = 0; i E<lt> nreqs; i++) {\n"
3591 "        printf(\"[%02d] %s: \", i, reqs[i]-E<gt>ar_name);\n"
3592 "        ret = gai_error(reqs[i]);\n"
3593 msgstr ""
3594
3595 #. type: Plain text
3596 #: build/C/man3/getaddrinfo_a.3:550
3597 #, no-wrap
3598 msgid ""
3599 "        if (!ret) {\n"
3600 "            res = reqs[i]-E<gt>ar_result;\n"
3601 msgstr ""
3602
3603 #. type: Plain text
3604 #: build/C/man3/getaddrinfo_a.3:565
3605 #, no-wrap
3606 msgid ""
3607 "            ret = getnameinfo(res-E<gt>ai_addr, res-E<gt>ai_addrlen,\n"
3608 "                              host, sizeof(host),\n"
3609 "                              NULL, 0, NI_NUMERICHOST);\n"
3610 "            if (ret) {\n"
3611 "                fprintf(stderr, \"getnameinfo() failed: %s\\en\",\n"
3612 "                        gai_strerror(ret));\n"
3613 "                exit(EXIT_FAILURE);\n"
3614 "            }\n"
3615 "            puts(host);\n"
3616 "        } else {\n"
3617 "            puts(gai_strerror(ret));\n"
3618 "        }\n"
3619 "    }\n"
3620 "}\n"
3621 msgstr ""
3622
3623 #. type: Plain text
3624 #: build/C/man3/getaddrinfo_a.3:571
3625 #, no-wrap
3626 msgid ""
3627 "int\n"
3628 "main(int argc, char *argv[])\n"
3629 "{\n"
3630 "    char *cmdline;\n"
3631 "    char *cmd;\n"
3632 msgstr ""
3633
3634 #. type: Plain text
3635 #: build/C/man3/getaddrinfo_a.3:574
3636 #, no-wrap
3637 msgid ""
3638 "    while ((cmdline = getcmd()) != NULL) {\n"
3639 "        cmd = strtok(cmdline, \" \");\n"
3640 msgstr ""
3641
3642 #. type: Plain text
3643 #: build/C/man3/getaddrinfo_a.3:599
3644 #, no-wrap
3645 msgid ""
3646 "        if (cmd == NULL) {\n"
3647 "            list_requests();\n"
3648 "        } else {\n"
3649 "            switch (cmd[0]) {\n"
3650 "            case \\(aqa\\(aq:\n"
3651 "                add_requests();\n"
3652 "                break;\n"
3653 "            case \\(aqw\\(aq:\n"
3654 "                wait_requests();\n"
3655 "                break;\n"
3656 "            case \\(aqc\\(aq:\n"
3657 "                cancel_requests();\n"
3658 "                break;\n"
3659 "            case \\(aql\\(aq:\n"
3660 "                list_requests();\n"
3661 "                break;\n"
3662 "            default:\n"
3663 "                fprintf(stderr, \"Bad command: %c\\en\", cmd[0]);\n"
3664 "                break;\n"
3665 "            }\n"
3666 "        }\n"
3667 "    }\n"
3668 "    exit(EXIT_SUCCESS);\n"
3669 "}\n"
3670 msgstr ""
3671
3672 #. type: Plain text
3673 #: build/C/man3/getaddrinfo_a.3:607
3674 msgid ""
3675 "B<getaddrinfo>(3), B<inet>(3), B<lio_listio>(3), B<hostname>(7), B<ip>(7), "
3676 "B<sigevent>(7)"
3677 msgstr ""
3678
3679 #. type: TH
3680 #: build/C/man1/getent.1:23
3681 #, no-wrap
3682 msgid "GETENT"
3683 msgstr ""
3684
3685 #. type: TH
3686 #: build/C/man1/getent.1:23
3687 #, no-wrap
3688 msgid "2011-10-31"
3689 msgstr ""
3690
3691 #. type: TH
3692 #: build/C/man1/getent.1:23
3693 #, no-wrap
3694 msgid "User Commands"
3695 msgstr ""
3696
3697 #. type: Plain text
3698 #: build/C/man1/getent.1:26
3699 msgid "getent - get entries from Name Service Switch libraries"
3700 msgstr ""
3701
3702 #. type: Plain text
3703 #: build/C/man1/getent.1:29
3704 msgid "B<getent> I<database> [I<key> ...]"
3705 msgstr ""
3706
3707 #. type: Plain text
3708 #: build/C/man1/getent.1:44
3709 msgid ""
3710 "The B<getent> command displays entries from databases supported by the Name "
3711 "Service Switch libraries, which are configured in I</etc/nsswitch.conf>.  If "
3712 "one or more I<key> arguments are provided, then only the entries that match "
3713 "the supplied keys will be displayed.  Otherwise, if no I<key> is provided, "
3714 "all entries will be displayed (unless the database does not support "
3715 "enumeration)."
3716 msgstr ""
3717
3718 #. type: Plain text
3719 #: build/C/man1/getent.1:48
3720 msgid ""
3721 "The I<database> may be any of those supported by the GNU C Library, listed "
3722 "below:"
3723 msgstr ""
3724
3725 #. type: TP
3726 #: build/C/man1/getent.1:49
3727 #, no-wrap
3728 msgid "B<ahosts>"
3729 msgstr ""
3730
3731 #. type: Plain text
3732 #: build/C/man1/getent.1:70
3733 msgid ""
3734 "When no I<key> is provided, use B<sethostent>(3), B<gethostent>(3), and "
3735 "B<endhostent>(3)  to enumerate the hosts database.  This is identical to "
3736 "using B<hosts>.  When one or more I<key> arguments are provided, pass each "
3737 "I<key> in succession to B<getaddrinfo>(3)  with the address family "
3738 "B<AF_UNSPEC>, enumerating each socket address structure returned."
3739 msgstr ""
3740
3741 #. type: TP
3742 #: build/C/man1/getent.1:70
3743 #, no-wrap
3744 msgid "B<ahostsv4>"
3745 msgstr ""
3746
3747 #. type: Plain text
3748 #: build/C/man1/getent.1:76
3749 msgid "Same as B<ahosts>, but use the address family B<AF_INET>."
3750 msgstr ""
3751
3752 #. type: TP
3753 #: build/C/man1/getent.1:76
3754 #, no-wrap
3755 msgid "B<ahostsv6>"
3756 msgstr ""
3757
3758 #. type: Plain text
3759 #: build/C/man1/getent.1:87
3760 msgid ""
3761 "Same as B<ahosts>, but use the address family B<AF_INET6>.  The call to "
3762 "B<getaddrinfo>(3)  in this case includes the B<AI_V4MAPPED> flag."
3763 msgstr ""
3764
3765 #. type: TP
3766 #: build/C/man1/getent.1:87 build/C/man5/nsswitch.conf.5:44
3767 #, no-wrap
3768 msgid "B<aliases>"
3769 msgstr ""
3770
3771 #. type: Plain text
3772 #: build/C/man1/getent.1:104
3773 msgid ""
3774 "When no I<key> is provided, use B<setaliasent>(3), B<getaliasent>(3), and "
3775 "B<endaliasent>(3)  to enumerate the aliases database.  When one or more "
3776 "I<key> arguments are provided, pass each I<key> in succession to "
3777 "B<getaliasbyname>(3)  and display the result."
3778 msgstr ""
3779
3780 #. type: TP
3781 #: build/C/man1/getent.1:104 build/C/man5/nsswitch.conf.5:49
3782 #, no-wrap
3783 msgid "B<ethers>"
3784 msgstr ""
3785
3786 #. type: Plain text
3787 #: build/C/man1/getent.1:120
3788 msgid ""
3789 "When one or more I<key> arguments are provided, pass each I<key> in "
3790 "succession to B<ether_aton>(3)  and B<ether_hostton>(3)  until a result is "
3791 "obtained, and display the result.  Enumeration is not supported on "
3792 "B<ethers>, so a I<key> must be provided."
3793 msgstr ""
3794
3795 #. type: TP
3796 #: build/C/man1/getent.1:120 build/C/man5/nsswitch.conf.5:52
3797 #, no-wrap
3798 msgid "B<group>"
3799 msgstr ""
3800
3801 #. type: Plain text
3802 #: build/C/man1/getent.1:141
3803 msgid ""
3804 "When no I<key> is provided, use B<setgrent>(3), B<getgrent>(3), and "
3805 "B<endgrent>(3)  to enumerate the group database.  When one or more I<key> "
3806 "arguments are provided, pass each numeric I<key> to B<getgrgid>(3)  and each "
3807 "nonnumeric I<key> to B<getgrnam>(3)  and display the result."
3808 msgstr ""
3809
3810 #. type: TP
3811 #: build/C/man1/getent.1:141
3812 #, no-wrap
3813 msgid "B<gshadow>"
3814 msgstr ""
3815
3816 #. type: Plain text
3817 #: build/C/man1/getent.1:158
3818 msgid ""
3819 "When no I<key> is provided, use B<setsgent>(3), B<getsgent>(3), and "
3820 "B<endsgent>(3)  to enumerate the gshadow database.  When one or more I<key> "
3821 "arguments are provided, pass each I<key> in succession to B<getsgnam>(3)  "
3822 "and display the result."
3823 msgstr ""
3824
3825 #. type: TP
3826 #: build/C/man1/getent.1:158 build/C/man5/nsswitch.conf.5:57
3827 #, no-wrap
3828 msgid "B<hosts>"
3829 msgstr ""
3830
3831 #. type: Plain text
3832 #: build/C/man1/getent.1:181
3833 msgid ""
3834 "When no I<key> is provided, use B<sethostent>(3), B<gethostent>(3), and "
3835 "B<endhostent>(3)  to enumerate the hosts database.  When one or more I<key> "
3836 "arguments are provided, pass each I<key> to B<gethostbyaddr>(3)  or "
3837 "B<gethostbyname2>(3), depending on whether a call to B<inet_pton>(3)  "
3838 "indicates that the I<key> is an IPv6 or IPv4 address or not, and display the "
3839 "result."
3840 msgstr ""
3841
3842 #. type: TP
3843 #: build/C/man1/getent.1:181
3844 #, no-wrap
3845 msgid "B<initgroups>"
3846 msgstr ""
3847
3848 #. type: Plain text
3849 #: build/C/man1/getent.1:195
3850 msgid ""
3851 "When one or more I<key> arguments are provided, pass each I<key> in "
3852 "succession to B<getgrouplist>(3)  and display the result.  Enumeration is "
3853 "not supported on B<initgroups>, so a I<key> must be provided."
3854 msgstr ""
3855
3856 #. type: TP
3857 #: build/C/man1/getent.1:195 build/C/man5/nsswitch.conf.5:62
3858 #, no-wrap
3859 msgid "B<netgroup>"
3860 msgstr ""
3861
3862 #. type: Plain text
3863 #: build/C/man1/getent.1:221
3864 msgid ""
3865 "When one I<key> is provided, pass the I<key> to B<setnetgrent>(3)  and, "
3866 "using B<getnetgrent>(3)  display the resulting string triple (I<hostname>, "
3867 "I<username>, I<domainname>).  Alternatively, three I<keys> may be provided, "
3868 "which are interpreted as the I<hostname>, I<username> and I<domainname> to "
3869 "match to a netgroup name via B<innetgr>(3).  Enumeration is not supported on "
3870 "B<initgroups>, so either one or three I<keys> must be provided."
3871 msgstr ""
3872
3873 #. type: TP
3874 #: build/C/man1/getent.1:221 build/C/man5/nsswitch.conf.5:66
3875 #, no-wrap
3876 msgid "B<networks>"
3877 msgstr ""
3878
3879 #. type: Plain text
3880 #: build/C/man1/getent.1:242
3881 msgid ""
3882 "When no I<key> is provided, use B<setnetent>(3), B<getnetent>(3), and "
3883 "B<endnetent>(3)  to enumerate the networks database.  When one or more "
3884 "I<key> arguments are provided, pass each numeric I<key> to "
3885 "B<getnetbyaddr>(3)  and each nonnumeric I<key> to B<getnetbyname>(3)  and "
3886 "display the result."
3887 msgstr ""
3888
3889 #. type: TP
3890 #: build/C/man1/getent.1:242 build/C/man5/nsswitch.conf.5:71
3891 #, no-wrap
3892 msgid "B<passwd>"
3893 msgstr ""
3894
3895 #. type: Plain text
3896 #: build/C/man1/getent.1:263
3897 msgid ""
3898 "When no I<key> is provided, use B<setpwent>(3), B<getpwent>(3), and "
3899 "B<endpwent>(3)  to enumerate the passwd database.  When one or more I<key> "
3900 "arguments are provided, pass each numeric I<key> to B<getpwuid>(3)  and each "
3901 "nonnumeric I<key> to B<getpwnam>(3)  and display the result."
3902 msgstr ""
3903
3904 #. type: TP
3905 #: build/C/man1/getent.1:263 build/C/man5/nsswitch.conf.5:76
3906 #, no-wrap
3907 msgid "B<protocols>"
3908 msgstr ""
3909
3910 #. type: Plain text
3911 #: build/C/man1/getent.1:284
3912 msgid ""
3913 "When no I<key> is provided, use B<setprotoent>(3), B<getprotoent>(3), and "
3914 "B<endprotoent>(3)  to enumerate the protocols database.  When one or more "
3915 "I<key> arguments are provided, pass each numeric I<key> to "
3916 "B<getprotobynumber>(3)  and each nonnumeric I<key> to B<getprotobyname>(3)  "
3917 "and display the result."
3918 msgstr ""
3919
3920 #. type: TP
3921 #: build/C/man1/getent.1:284 build/C/man5/nsswitch.conf.5:84
3922 #, no-wrap
3923 msgid "B<rpc>"
3924 msgstr ""
3925
3926 #. type: Plain text
3927 #: build/C/man1/getent.1:305
3928 msgid ""
3929 "When no I<key> is provided, use B<setrpcent>(3), B<getrpcent>(3), and "
3930 "B<endrpcent>(3)  to enumerate the rpc database.  When one or more I<key> "
3931 "arguments are provided, pass each numeric I<key> to B<getrpcbynumber>(3)  "
3932 "and each nonnumeric I<key> to B<getrpcbyname>(3)  and display the result."
3933 msgstr ""
3934
3935 #. type: TP
3936 #: build/C/man1/getent.1:305 build/C/man5/nsswitch.conf.5:89
3937 #, no-wrap
3938 msgid "B<services>"
3939 msgstr ""
3940
3941 #. type: Plain text
3942 #: build/C/man1/getent.1:326
3943 msgid ""
3944 "When no I<key> is provided, use B<setservent>(3), B<getservent>(3), and "
3945 "B<endservent>(3)  to enumerate the services database.  When one or more "
3946 "I<key> arguments are provided, pass each numeric I<key> to "
3947 "B<getservbynumber>(3)  and each nonnumeric I<key> to B<getservbyname>(3)  "
3948 "and display the result."
3949 msgstr ""
3950
3951 #. type: TP
3952 #: build/C/man1/getent.1:326 build/C/man5/nsswitch.conf.5:94
3953 #, no-wrap
3954 msgid "B<shadow>"
3955 msgstr ""
3956
3957 #. type: Plain text
3958 #: build/C/man1/getent.1:343
3959 msgid ""
3960 "When no I<key> is provided, use B<setspent>(3), B<getspent>(3), and "
3961 "B<endspent>(3)  to enumerate the shadow database.  When one or more I<key> "
3962 "arguments are provided, pass each I<key> in succession to B<getspnam>(3)  "
3963 "and display the result."
3964 msgstr ""
3965
3966 #. type: SH
3967 #: build/C/man1/getent.1:344
3968 #, no-wrap
3969 msgid "EXIT STATUS"
3970 msgstr ""
3971
3972 #. type: Plain text
3973 #: build/C/man1/getent.1:347
3974 msgid "One of the following exit values can be returned by B<getent>:"
3975 msgstr ""
3976
3977 #. type: TP
3978 #: build/C/man1/getent.1:348
3979 #, no-wrap
3980 msgid "B<0>"
3981 msgstr ""
3982
3983 #. type: Plain text
3984 #: build/C/man1/getent.1:351
3985 msgid "Command completed successfully."
3986 msgstr ""
3987
3988 #. type: TP
3989 #: build/C/man1/getent.1:351
3990 #, no-wrap
3991 msgid "B<1>"
3992 msgstr ""
3993
3994 #. type: Plain text
3995 #: build/C/man1/getent.1:356
3996 msgid "Missing arguments, or I<database> unknown."
3997 msgstr ""
3998
3999 #. type: TP
4000 #: build/C/man1/getent.1:356
4001 #, no-wrap
4002 msgid "B<2>"
4003 msgstr ""
4004
4005 #. type: Plain text
4006 #: build/C/man1/getent.1:362
4007 msgid "One or more supplied I<key> could not be found in the I<database>."
4008 msgstr ""
4009
4010 #. type: TP
4011 #: build/C/man1/getent.1:362
4012 #, no-wrap
4013 msgid "B<3>"
4014 msgstr ""
4015
4016 #. type: Plain text
4017 #: build/C/man1/getent.1:366
4018 msgid "Enumeration not supported on this I<database>."
4019 msgstr ""
4020
4021 #. type: Plain text
4022 #: build/C/man1/getent.1:369
4023 msgid "B<nsswitch.conf>(5)"
4024 msgstr ""
4025
4026 #. type: TH
4027 #: build/C/man3/gethostbyname.3:36
4028 #, no-wrap
4029 msgid "GETHOSTBYNAME"
4030 msgstr ""
4031
4032 #. type: TH
4033 #: build/C/man3/gethostbyname.3:36
4034 #, no-wrap
4035 msgid "2010-10-04"
4036 msgstr ""
4037
4038 #. type: Plain text
4039 #: build/C/man3/gethostbyname.3:44
4040 msgid ""
4041 "gethostbyname, gethostbyaddr, sethostent, gethostent, endhostent, h_errno, "
4042 "herror, hstrerror, gethostbyaddr_r, gethostbyname2, gethostbyname2_r, "
4043 "gethostbyname_r, gethostent_r - get network host entry"
4044 msgstr ""
4045
4046 #. type: Plain text
4047 #: build/C/man3/gethostbyname.3:48
4048 #, no-wrap
4049 msgid ""
4050 "B<#include E<lt>netdb.hE<gt>>\n"
4051 "B<extern int h_errno;>\n"
4052 msgstr ""
4053
4054 #. type: Plain text
4055 #: build/C/man3/gethostbyname.3:50
4056 #, no-wrap
4057 msgid "B<struct hostent *gethostbyname(const char *>I<name>B<);>\n"
4058 msgstr ""
4059
4060 #. type: Plain text
4061 #: build/C/man3/gethostbyname.3:54
4062 #, no-wrap
4063 msgid ""
4064 "B<#include E<lt>sys/socket.hE<gt>>       /* for AF_INET */\n"
4065 "B<struct hostent *gethostbyaddr(const void *>I<addr>B<,>\n"
4066 "B<                              socklen_t >I<len>B<, int >I<type>B<);>\n"
4067 msgstr ""
4068
4069 #. type: Plain text
4070 #: build/C/man3/gethostbyname.3:56
4071 #, no-wrap
4072 msgid "B<void sethostent(int >I<stayopen>B<);>\n"
4073 msgstr ""
4074
4075 #. type: Plain text
4076 #: build/C/man3/gethostbyname.3:58
4077 #, no-wrap
4078 msgid "B<void endhostent(void);>\n"
4079 msgstr ""
4080
4081 #. type: Plain text
4082 #: build/C/man3/gethostbyname.3:60
4083 #, no-wrap
4084 msgid "B<void herror(const char *>I<s>B<);>\n"
4085 msgstr ""
4086
4087 #. type: Plain text
4088 #: build/C/man3/gethostbyname.3:62
4089 #, no-wrap
4090 msgid "B<const char *hstrerror(int >I<err>B<);>\n"
4091 msgstr ""
4092
4093 #. type: Plain text
4094 #: build/C/man3/gethostbyname.3:64
4095 #, no-wrap
4096 msgid "/* System V/POSIX extension */\n"
4097 msgstr ""
4098
4099 #. type: Plain text
4100 #: build/C/man3/gethostbyname.3:66
4101 #, no-wrap
4102 msgid "B<struct hostent *gethostent(void);>\n"
4103 msgstr ""
4104
4105 #. type: Plain text
4106 #: build/C/man3/gethostbyname.3:70
4107 #, no-wrap
4108 msgid "B<struct hostent *gethostbyname2(const char *>I<name>B<, int >I<af>B<);>\n"
4109 msgstr ""
4110
4111 #. type: Plain text
4112 #: build/C/man3/gethostbyname.3:74
4113 #, no-wrap
4114 msgid ""
4115 "B<int gethostent_r(>\n"
4116 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4117 ">I<buflen>B<,>\n"
4118 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4119 msgstr ""
4120
4121 #. type: Plain text
4122 #: build/C/man3/gethostbyname.3:78
4123 #, no-wrap
4124 msgid ""
4125 "B<int gethostbyaddr_r(const void *>I<addr>B<, socklen_t >I<len>B<, int "
4126 ">I<type>B<,>\n"
4127 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4128 ">I<buflen>B<,>\n"
4129 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4130 msgstr ""
4131
4132 #. type: Plain text
4133 #: build/C/man3/gethostbyname.3:82
4134 #, no-wrap
4135 msgid ""
4136 "B<int gethostbyname_r(const char *>I<name>B<,>\n"
4137 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4138 ">I<buflen>B<,>\n"
4139 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4140 msgstr ""
4141
4142 #. type: Plain text
4143 #: build/C/man3/gethostbyname.3:86
4144 #, no-wrap
4145 msgid ""
4146 "B<int gethostbyname2_r(const char *>I<name>B<, int >I<af,>\n"
4147 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4148 ">I<buflen>B<,>\n"
4149 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4150 msgstr ""
4151
4152 #. type: Plain text
4153 #: build/C/man3/gethostbyname.3:100
4154 msgid ""
4155 "B<gethostbyname2>(), B<gethostent_r>(), B<gethostbyaddr_r>(), "
4156 "B<gethostbyname_r>(), B<gethostbyname2_r>():"
4157 msgstr ""
4158
4159 #. type: Plain text
4160 #: 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
4161 msgid "_BSD_SOURCE || _SVID_SOURCE"
4162 msgstr ""
4163
4164 #. type: Plain text
4165 #: build/C/man3/gethostbyname.3:106
4166 msgid "B<herror>(), B<hstrerror>():"
4167 msgstr ""
4168
4169 #. type: TP
4170 #: build/C/man3/gethostbyname.3:107
4171 #, no-wrap
4172 msgid "Since glibc 2.8:"
4173 msgstr ""
4174
4175 #. type: Plain text
4176 #: build/C/man3/gethostbyname.3:110
4177 msgid "_BSD_SOURCE || _SVID_SOURCE || _GNU_SOURCE"
4178 msgstr ""
4179
4180 #. type: TP
4181 #: build/C/man3/gethostbyname.3:110
4182 #, no-wrap
4183 msgid "Before glibc 2.8:"
4184 msgstr ""
4185
4186 #. type: Plain text
4187 #: build/C/man3/gethostbyname.3:113
4188 msgid "none"
4189 msgstr ""
4190
4191 #. type: Plain text
4192 #: build/C/man3/gethostbyname.3:127
4193 msgid ""
4194 "The B<gethostbyname*>()  and B<gethostbyaddr*>()  functions are obsolete.  "
4195 "Applications should use B<getaddrinfo>(3)  and B<getnameinfo>(3)  instead."
4196 msgstr ""
4197
4198 #. type: Plain text
4199 #: build/C/man3/gethostbyname.3:168
4200 msgid ""
4201 "The B<gethostbyname>()  function returns a structure of type I<hostent> for "
4202 "the given host I<name>.  Here I<name> is either a hostname, or an IPv4 "
4203 "address in standard dot notation (as for B<inet_addr>(3)), or an IPv6 "
4204 "address in colon (and possibly dot) notation.  (See RFC\\ 1884 for the "
4205 "description of IPv6 addresses.)  If I<name> is an IPv4 or IPv6 address, no "
4206 "lookup is performed and B<gethostbyname>()  simply copies I<name> into the "
4207 "I<h_name> field and its I<struct in_addr> equivalent into the "
4208 "I<h_addr_list[0]> field of the returned I<hostent> structure.  If I<name> "
4209 "doesn't end in a dot and the environment variable B<HOSTALIASES> is set, the "
4210 "alias file pointed to by B<HOSTALIASES> will first be searched for I<name> "
4211 "(see B<hostname>(7)  for the file format).  The current domain and its "
4212 "parents are searched unless I<name> ends in a dot."
4213 msgstr ""
4214
4215 #. type: Plain text
4216 #: build/C/man3/gethostbyname.3:184
4217 msgid ""
4218 "The B<gethostbyaddr>()  function returns a structure of type I<hostent> for "
4219 "the given host address I<addr> of length I<len> and address type I<type>.  "
4220 "Valid address types are B<AF_INET> and B<AF_INET6>.  The host address "
4221 "argument is a pointer to a struct of a type depending on the address type, "
4222 "for example a I<struct in_addr *> (probably obtained via a call to "
4223 "B<inet_addr>(3))  for address type B<AF_INET>."
4224 msgstr ""
4225
4226 #. type: Plain text
4227 #: build/C/man3/gethostbyname.3:191
4228 msgid ""
4229 "The B<sethostent>()  function specifies, if I<stayopen> is true (1), that a "
4230 "connected TCP socket should be used for the name server queries and that the "
4231 "connection should remain open during successive queries.  Otherwise, name "
4232 "server queries will use UDP datagrams."
4233 msgstr ""
4234
4235 #. type: Plain text
4236 #: build/C/man3/gethostbyname.3:196
4237 msgid ""
4238 "The B<endhostent>()  function ends the use of a TCP connection for name "
4239 "server queries."
4240 msgstr ""
4241
4242 #. type: Plain text
4243 #: build/C/man3/gethostbyname.3:201
4244 msgid ""
4245 "The (obsolete)  B<herror>()  function prints the error message associated "
4246 "with the current value of I<h_errno> on I<stderr>."
4247 msgstr ""
4248
4249 #. type: Plain text
4250 #: build/C/man3/gethostbyname.3:206
4251 msgid ""
4252 "The (obsolete)  B<hstrerror>()  function takes an error number (typically "
4253 "I<h_errno>) and returns the corresponding message string."
4254 msgstr ""
4255
4256 #.  (See
4257 #.  .BR resolv+ (8)).
4258 #. type: Plain text
4259 #: build/C/man3/gethostbyname.3:223
4260 msgid ""
4261 "The domain name queries carried out by B<gethostbyname>()  and "
4262 "B<gethostbyaddr>()  use a combination of any or all of the name server "
4263 "B<named>(8), a broken out line from I</etc/hosts>, and the Network "
4264 "Information Service (NIS or YP), depending upon the contents of the I<order> "
4265 "line in I</etc/host.conf>.  The default action is to query B<named>(8), "
4266 "followed by I</etc/hosts>."
4267 msgstr ""
4268
4269 #. type: Plain text
4270 #: build/C/man3/gethostbyname.3:225
4271 msgid "The I<hostent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
4272 msgstr ""
4273
4274 #. type: Plain text
4275 #: build/C/man3/gethostbyname.3:237
4276 #, no-wrap
4277 msgid ""
4278 "struct hostent {\n"
4279 "    char  *h_name;            /* official name of host */\n"
4280 "    char **h_aliases;         /* alias list */\n"
4281 "    int    h_addrtype;        /* host address type */\n"
4282 "    int    h_length;          /* length of address */\n"
4283 "    char **h_addr_list;       /* list of addresses */\n"
4284 "}\n"
4285 "#define h_addr h_addr_list[0] /* for backward compatibility */\n"
4286 msgstr ""
4287
4288 #. type: Plain text
4289 #: build/C/man3/gethostbyname.3:241
4290 msgid "The members of the I<hostent> structure are:"
4291 msgstr ""
4292
4293 #. type: TP
4294 #: build/C/man3/gethostbyname.3:241 build/C/man3/getipnodebyname.3:208
4295 #, no-wrap
4296 msgid "I<h_name>"
4297 msgstr ""
4298
4299 #. type: Plain text
4300 #: build/C/man3/gethostbyname.3:244
4301 msgid "The official name of the host."
4302 msgstr ""
4303
4304 #. type: TP
4305 #: build/C/man3/gethostbyname.3:244 build/C/man3/getipnodebyname.3:211
4306 #, no-wrap
4307 msgid "I<h_aliases>"
4308 msgstr ""
4309
4310 #. type: Plain text
4311 #: build/C/man3/gethostbyname.3:247
4312 msgid "An array of alternative names for the host, terminated by a NULL pointer."
4313 msgstr ""
4314
4315 #. type: TP
4316 #: build/C/man3/gethostbyname.3:247 build/C/man3/getipnodebyname.3:215
4317 #, no-wrap
4318 msgid "I<h_addrtype>"
4319 msgstr ""
4320
4321 #. type: Plain text
4322 #: build/C/man3/gethostbyname.3:254
4323 msgid "The type of address; always B<AF_INET> or B<AF_INET6> at present."
4324 msgstr ""
4325
4326 #. type: TP
4327 #: build/C/man3/gethostbyname.3:254 build/C/man3/getipnodebyname.3:237
4328 #, no-wrap
4329 msgid "I<h_length>"
4330 msgstr ""
4331
4332 #. type: Plain text
4333 #: build/C/man3/gethostbyname.3:257
4334 msgid "The length of the address in bytes."
4335 msgstr ""
4336
4337 #. type: TP
4338 #: build/C/man3/gethostbyname.3:257 build/C/man3/getipnodebyname.3:251
4339 #, no-wrap
4340 msgid "I<h_addr_list>"
4341 msgstr ""
4342
4343 #. type: Plain text
4344 #: build/C/man3/gethostbyname.3:261
4345 msgid ""
4346 "An array of pointers to network addresses for the host (in network byte "
4347 "order), terminated by a NULL pointer."
4348 msgstr ""
4349
4350 #. type: TP
4351 #: build/C/man3/gethostbyname.3:261
4352 #, no-wrap
4353 msgid "I<h_addr>"
4354 msgstr ""
4355
4356 #. type: Plain text
4357 #: build/C/man3/gethostbyname.3:264
4358 msgid "The first address in I<h_addr_list> for backward compatibility."
4359 msgstr ""
4360
4361 #. type: Plain text
4362 #: build/C/man3/gethostbyname.3:276
4363 msgid ""
4364 "The B<gethostbyname>()  and B<gethostbyaddr>()  functions return the "
4365 "I<hostent> structure or a NULL pointer if an error occurs.  On error, the "
4366 "I<h_errno> variable holds an error number.  When non-NULL, the return value "
4367 "may point at static data, see the notes below."
4368 msgstr ""
4369
4370 #. type: Plain text
4371 #: build/C/man3/gethostbyname.3:278
4372 msgid "The variable I<h_errno> can have the following values:"
4373 msgstr ""
4374
4375 #. type: TP
4376 #: build/C/man3/gethostbyname.3:278 build/C/man3/getipnodebyname.3:188
4377 #, no-wrap
4378 msgid "B<HOST_NOT_FOUND>"
4379 msgstr ""
4380
4381 #. type: Plain text
4382 #: build/C/man3/gethostbyname.3:281
4383 msgid "The specified host is unknown."
4384 msgstr ""
4385
4386 #. type: TP
4387 #: build/C/man3/gethostbyname.3:281
4388 #, no-wrap
4389 msgid "B<NO_ADDRESS> or B<NO_DATA>"
4390 msgstr ""
4391
4392 #. type: Plain text
4393 #: build/C/man3/gethostbyname.3:284
4394 msgid "The requested name is valid but does not have an IP address."
4395 msgstr ""
4396
4397 #. type: TP
4398 #: build/C/man3/gethostbyname.3:284 build/C/man3/getipnodebyname.3:197
4399 #, no-wrap
4400 msgid "B<NO_RECOVERY>"
4401 msgstr ""
4402
4403 #. type: Plain text
4404 #: build/C/man3/gethostbyname.3:287
4405 msgid "A nonrecoverable name server error occurred."
4406 msgstr ""
4407
4408 #. type: TP
4409 #: build/C/man3/gethostbyname.3:287 build/C/man3/getipnodebyname.3:200
4410 #, no-wrap
4411 msgid "B<TRY_AGAIN>"
4412 msgstr ""
4413
4414 #. type: Plain text
4415 #: build/C/man3/gethostbyname.3:291
4416 msgid ""
4417 "A temporary error occurred on an authoritative name server.  Try again "
4418 "later."
4419 msgstr ""
4420
4421 #. type: TP
4422 #: build/C/man3/gethostbyname.3:292 build/C/man5/host.conf.5:181
4423 #, no-wrap
4424 msgid "I</etc/host.conf>"
4425 msgstr ""
4426
4427 #. type: Plain text
4428 #: build/C/man3/gethostbyname.3:295
4429 msgid "resolver configuration file"
4430 msgstr ""
4431
4432 #. type: Plain text
4433 #: build/C/man3/gethostbyname.3:295 build/C/man5/host.conf.5:187 build/C/man5/hosts.5:88
4434 #, no-wrap
4435 msgid "I</etc/hosts>"
4436 msgstr ""
4437
4438 #. type: Plain text
4439 #: build/C/man3/gethostbyname.3:298
4440 msgid "host database file"
4441 msgstr ""
4442
4443 #. type: Plain text
4444 #: build/C/man3/gethostbyname.3:298 build/C/man5/nsswitch.conf.5:294 build/C/man3/setnetgrent.3:87
4445 #, no-wrap
4446 msgid "I</etc/nsswitch.conf>"
4447 msgstr ""
4448
4449 #. type: Plain text
4450 #: build/C/man3/gethostbyname.3:301
4451 msgid "name service switch configuration"
4452 msgstr ""
4453
4454 #. type: Plain text
4455 #: build/C/man3/gethostbyname.3:325
4456 msgid ""
4457 "POSIX.1-2001 specifies B<gethostbyname>(), B<gethostbyaddr>(), "
4458 "B<sethostent>(), B<endhostent>(), B<gethostent>(), and I<h_errno>; "
4459 "B<gethostbyname>(), B<gethostbyaddr>(), and I<h_errno> are marked "
4460 "obsolescent in that standard.  POSIX.1-2008 removes the specifications of "
4461 "B<gethostbyname>(), B<gethostbyaddr>(), and I<h_errno>, recommending the use "
4462 "of B<getaddrinfo>(3)  and B<getnameinfo>(3)  instead."
4463 msgstr ""
4464
4465 #. type: Plain text
4466 #: build/C/man3/gethostbyname.3:335
4467 msgid ""
4468 "The functions B<gethostbyname>()  and B<gethostbyaddr>()  may return "
4469 "pointers to static data, which may be overwritten by later calls.  Copying "
4470 "the I<struct hostent> does not suffice, since it contains pointers; a deep "
4471 "copy is required."
4472 msgstr ""
4473
4474 #. type: Plain text
4475 #: build/C/man3/gethostbyname.3:359
4476 msgid ""
4477 "In the original BSD implementation the I<len> argument of B<gethostbyname>()  "
4478 "was an I<int>.  The SUSv2 standard is buggy and declares the I<len> argument "
4479 "of B<gethostbyaddr>()  to be of type I<size_t>.  (That is wrong, because it "
4480 "has to be I<int>, and I<size_t> is not.  POSIX.1-2001 makes it I<socklen_t>, "
4481 "which is OK.)  See also B<accept>(2)."
4482 msgstr ""
4483
4484 #. type: Plain text
4485 #: build/C/man3/gethostbyname.3:365
4486 msgid ""
4487 "The BSD prototype for B<gethostbyaddr>()  uses I<const char *> for the first "
4488 "argument."
4489 msgstr ""
4490
4491 #. type: SS
4492 #: build/C/man3/gethostbyname.3:365
4493 #, no-wrap
4494 msgid "System V/POSIX Extension"
4495 msgstr ""
4496
4497 #.  e.g., Linux, FreeBSD, UnixWare, HP-UX
4498 #.  e.g., FreeBSD, AIX
4499 #. type: Plain text
4500 #: build/C/man3/gethostbyname.3:382
4501 msgid ""
4502 "POSIX requires the B<gethostent>()  call, that should return the next entry "
4503 "in the host data base.  When using DNS/BIND this does not make much sense, "
4504 "but it may be reasonable if the host data base is a file that can be read "
4505 "line by line.  On many systems a routine of this name reads from the file "
4506 "I</etc/hosts>.  It may be available only when the library was built without "
4507 "DNS support.  The glibc version will ignore ipv6 entries.  This function is "
4508 "not reentrant, and glibc adds a reentrant version B<gethostent_r>()."
4509 msgstr ""
4510
4511 #. type: SS
4512 #: build/C/man3/gethostbyname.3:382
4513 #, no-wrap
4514 msgid "GNU Extensions"
4515 msgstr ""
4516
4517 #. type: Plain text
4518 #: build/C/man3/gethostbyname.3:388
4519 msgid ""
4520 "Glibc2 also has a B<gethostbyname2>()  that works like B<gethostbyname>(), "
4521 "but permits to specify the address family to which the address must belong."
4522 msgstr ""
4523
4524 #. type: Plain text
4525 #: build/C/man3/gethostbyname.3:422
4526 msgid ""
4527 "Glibc2 also has reentrant versions B<gethostent_r>(), B<gethostbyaddr_r>(), "
4528 "B<gethostbyname_r>()  and B<gethostbyname2_r>().  The caller supplies a "
4529 "I<hostent> structure I<ret> which will be filled in on success, and a "
4530 "temporary work buffer I<buf> of size I<buflen>.  After the call, I<result> "
4531 "will point to the result on success.  In case of an error or if no entry is "
4532 "found I<result> will be NULL.  The functions return 0 on success and a "
4533 "nonzero error number on failure.  In addition to the errors returned by the "
4534 "nonreentrant versions of these functions, if I<buf> is too small, the "
4535 "functions will return B<ERANGE>, and the call should be retried with a "
4536 "larger buffer.  The global variable I<h_errno> is not modified, but the "
4537 "address of a variable in which to store error numbers is passed in "
4538 "I<h_errnop>."
4539 msgstr ""
4540
4541 #.  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482973
4542 #. type: Plain text
4543 #: build/C/man3/gethostbyname.3:427
4544 msgid ""
4545 "B<gethostbyname>()  does not recognize components of a dotted IPv4 address "
4546 "string that are expressed in hexadecimal."
4547 msgstr ""
4548
4549 #.  .BR getipnodebyaddr (3),
4550 #.  .BR getipnodebyname (3),
4551 #.  .BR resolv+ (8)
4552 #. type: Plain text
4553 #: build/C/man3/gethostbyname.3:441
4554 msgid ""
4555 "B<getaddrinfo>(3), B<getnameinfo>(3), B<inet>(3), B<inet_ntop>(3), "
4556 "B<inet_pton>(3), B<resolver>(3), B<hosts>(5), B<nsswitch.conf>(5), "
4557 "B<hostname>(7), B<named>(8)"
4558 msgstr ""
4559
4560 #. type: TH
4561 #: build/C/man3/getipnodebyname.3:24
4562 #, no-wrap
4563 msgid "GETIPNODEBYNAME"
4564 msgstr ""
4565
4566 #. type: TH
4567 #: build/C/man3/getipnodebyname.3:24
4568 #, no-wrap
4569 msgid "2010-09-04"
4570 msgstr ""
4571
4572 #. type: Plain text
4573 #: build/C/man3/getipnodebyname.3:28
4574 msgid ""
4575 "getipnodebyname, getipnodebyaddr, freehostent - get network hostnames and "
4576 "addresses"
4577 msgstr ""
4578
4579 #. type: Plain text
4580 #: build/C/man3/getipnodebyname.3:36
4581 #, no-wrap
4582 msgid ""
4583 "B<struct hostent *getipnodebyname(const char *>I<name>B<, int >I<af>B<,>\n"
4584 "B<                                int >I<flags>B<, int *>I<error_num>B<);>\n"
4585 msgstr ""
4586
4587 #. type: Plain text
4588 #: build/C/man3/getipnodebyname.3:39
4589 #, no-wrap
4590 msgid ""
4591 "B<struct hostent *getipnodebyaddr(const void *>I<addr>B<, size_t "
4592 ">I<len>B<,>\n"
4593 "B<                                int >I<af>B<, int *>I<error_num>B<);>\n"
4594 msgstr ""
4595
4596 #. type: Plain text
4597 #: build/C/man3/getipnodebyname.3:41
4598 #, no-wrap
4599 msgid "B<void freehostent(struct hostent *>I<ip>B<);>\n"
4600 msgstr ""
4601
4602 #. type: Plain text
4603 #: build/C/man3/getipnodebyname.3:49
4604 msgid ""
4605 "These functions are deprecated (and unavailable in glibc).  Use "
4606 "B<getaddrinfo>(3)  and B<getnameinfo>(3)  instead."
4607 msgstr ""
4608
4609 #. type: Plain text
4610 #: build/C/man3/getipnodebyname.3:57
4611 msgid ""
4612 "The B<getipnodebyname>()  and B<getipnodebyaddr>()  functions return the "
4613 "names and addresses of a network host.  These functions return a pointer to "
4614 "the following structure:"
4615 msgstr ""
4616
4617 #. type: Plain text
4618 #: build/C/man3/getipnodebyname.3:67
4619 #, no-wrap
4620 msgid ""
4621 "struct hostent {\n"
4622 "    char  *h_name;\n"
4623 "    char **h_aliases;\n"
4624 "    int    h_addrtype;\n"
4625 "    int    h_length;\n"
4626 "    char **h_addr_list;\n"
4627 "};\n"
4628 msgstr ""
4629
4630 #. type: Plain text
4631 #: build/C/man3/getipnodebyname.3:80
4632 msgid ""
4633 "These functions replace the B<gethostbyname>(3)  and B<gethostbyaddr>(3)  "
4634 "functions, which could only access the IPv4 network address family.  The "
4635 "B<getipnodebyname>()  and B<getipnodebyaddr>()  functions can access "
4636 "multiple network address families."
4637 msgstr ""
4638
4639 #. type: Plain text
4640 #: build/C/man3/getipnodebyname.3:91
4641 msgid ""
4642 "Unlike the B<gethostby> functions, these functions return pointers to "
4643 "dynamically allocated memory.  The B<freehostent>()  function is used to "
4644 "release the dynamically allocated memory after the caller no longer needs "
4645 "the I<hostent> structure."
4646 msgstr ""
4647
4648 #. type: SS
4649 #: build/C/man3/getipnodebyname.3:91
4650 #, no-wrap
4651 msgid "getipnodebyname() arguments"
4652 msgstr ""
4653
4654 #. type: Plain text
4655 #: build/C/man3/getipnodebyname.3:102
4656 msgid ""
4657 "The B<getipnodebyname>()  function looks up network addresses for the host "
4658 "specified by the I<name> argument.  The I<af> argument specifies one of the "
4659 "following values:"
4660 msgstr ""
4661
4662 #. type: TP
4663 #: 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
4664 #, no-wrap
4665 msgid "B<AF_INET>"
4666 msgstr ""
4667
4668 #. type: Plain text
4669 #: build/C/man3/getipnodebyname.3:108
4670 msgid ""
4671 "The I<name> argument points to a dotted-quad IPv4 address or a name of an "
4672 "IPv4 network host."
4673 msgstr ""
4674
4675 #. type: TP
4676 #: 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
4677 #, no-wrap
4678 msgid "B<AF_INET6>"
4679 msgstr ""
4680
4681 #. type: Plain text
4682 #: build/C/man3/getipnodebyname.3:114
4683 msgid ""
4684 "The I<name> argument points to a hexadecimal IPv6 address or a name of an "
4685 "IPv6 network host."
4686 msgstr ""
4687
4688 #. type: Plain text
4689 #: build/C/man3/getipnodebyname.3:123
4690 msgid ""
4691 "The I<flags> argument specifies additional options.  More than one option "
4692 "can be specified by bitwise OR-ing them together.  I<flags> should be set to "
4693 "0 if no options are desired."
4694 msgstr ""
4695
4696 #. type: TP
4697 #: build/C/man3/getipnodebyname.3:123
4698 #, no-wrap
4699 msgid "B<AI_V4MAPPED>"
4700 msgstr ""
4701
4702 #. type: Plain text
4703 #: build/C/man3/getipnodebyname.3:130
4704 msgid ""
4705 "This flag is used with B<AF_INET6> to request a query for IPv4 addresses "
4706 "instead of IPv6 addresses; the IPv4 addresses will be mapped to IPv6 "
4707 "addresses."
4708 msgstr ""
4709
4710 #. type: TP
4711 #: build/C/man3/getipnodebyname.3:130
4712 #, no-wrap
4713 msgid "B<AI_ALL>"
4714 msgstr ""
4715
4716 #. type: Plain text
4717 #: build/C/man3/getipnodebyname.3:136
4718 msgid ""
4719 "This flag is used with B<AI_V4MAPPED> to request a query for both IPv4 and "
4720 "IPv6 addresses.  Any IPv4 address found will be mapped to an IPv6 address."
4721 msgstr ""
4722
4723 #. type: TP
4724 #: build/C/man3/getipnodebyname.3:136
4725 #, no-wrap
4726 msgid "B<AI_ADDRCONFIG>"
4727 msgstr ""
4728
4729 #. type: Plain text
4730 #: build/C/man3/getipnodebyname.3:148
4731 msgid ""
4732 "This flag is used with B<AF_INET6> to further request that queries for IPv6 "
4733 "addresses should not be made unless the system has at least one IPv6 address "
4734 "assigned to a network interface, and that queries for IPv4 addresses should "
4735 "not be made unless the system has at least one IPv4 address assigned to a "
4736 "network interface.  This flag may be used by itself or with the "
4737 "B<AI_V4MAPPED> flag."
4738 msgstr ""
4739
4740 #. type: TP
4741 #: build/C/man3/getipnodebyname.3:148
4742 #, no-wrap
4743 msgid "B<AI_DEFAULT>"
4744 msgstr ""
4745
4746 #. type: Plain text
4747 #: build/C/man3/getipnodebyname.3:152
4748 msgid "This flag is equivalent to B<(AI_ADDRCONFIG | AI_V4MAPPED)>."
4749 msgstr ""
4750
4751 #. type: SS
4752 #: build/C/man3/getipnodebyname.3:152
4753 #, no-wrap
4754 msgid "getipnodebyaddr() arguments"
4755 msgstr ""
4756
4757 #. type: Plain text
4758 #: build/C/man3/getipnodebyname.3:164
4759 msgid ""
4760 "The B<getipnodebyaddr>()  function looks up the name of the host whose "
4761 "network address is specified by the I<addr> argument.  The I<af> argument "
4762 "specifies one of the following values:"
4763 msgstr ""
4764
4765 #. type: Plain text
4766 #: build/C/man3/getipnodebyname.3:174
4767 msgid ""
4768 "The I<addr> argument points to a I<struct in_addr> and I<len> must be set to "
4769 "I<sizeof(struct in_addr)>."
4770 msgstr ""
4771
4772 #. type: Plain text
4773 #: build/C/man3/getipnodebyname.3:184
4774 msgid ""
4775 "The I<addr> argument points to a I<struct in6_addr> and I<len> must be set "
4776 "to I<sizeof(struct in6_addr)>."
4777 msgstr ""
4778
4779 #. type: Plain text
4780 #: build/C/man3/getipnodebyname.3:188
4781 msgid ""
4782 "A NULL pointer is returned if an error occurred, and I<error_num> will "
4783 "contain an error code from the following list:"
4784 msgstr ""
4785
4786 #. type: Plain text
4787 #: build/C/man3/getipnodebyname.3:191
4788 msgid "The hostname or network address was not found."
4789 msgstr ""
4790
4791 #. type: TP
4792 #: build/C/man3/getipnodebyname.3:191
4793 #, no-wrap
4794 msgid "B<NO_ADDRESS>"
4795 msgstr ""
4796
4797 #. type: Plain text
4798 #: build/C/man3/getipnodebyname.3:197
4799 msgid ""
4800 "The domain name server recognized the network address or name, but no answer "
4801 "was returned.  This can happen if the network host has only IPv4 addresses "
4802 "and a request has been made for IPv6 information only, or vice versa."
4803 msgstr ""
4804
4805 #. type: Plain text
4806 #: build/C/man3/getipnodebyname.3:200
4807 msgid "The domain name server returned a permanent failure response."
4808 msgstr ""
4809
4810 #. type: Plain text
4811 #: build/C/man3/getipnodebyname.3:204
4812 msgid ""
4813 "The domain name server returned a temporary failure response.  You might "
4814 "have better luck next time."
4815 msgstr ""
4816
4817 #. type: Plain text
4818 #: build/C/man3/getipnodebyname.3:208
4819 msgid ""
4820 "A successful query returns a pointer to a I<hostent> structure that contains "
4821 "the following fields:"
4822 msgstr ""
4823
4824 #. type: Plain text
4825 #: build/C/man3/getipnodebyname.3:211
4826 msgid "This is the official name of this network host."
4827 msgstr ""
4828
4829 #. type: Plain text
4830 #: build/C/man3/getipnodebyname.3:215
4831 msgid ""
4832 "This is an array of pointers to unofficial aliases for the same host.  The "
4833 "array is terminated by a NULL pointer."
4834 msgstr ""
4835
4836 #. type: Plain text
4837 #: build/C/man3/getipnodebyname.3:237
4838 msgid ""
4839 "This is a copy of the I<af> argument to B<getipnodebyname>()  or "
4840 "B<getipnodebyaddr>().  I<h_addrtype> will always be B<AF_INET> if the I<af> "
4841 "argument was B<AF_INET>.  I<h_addrtype> will always be B<AF_INET6> if the "
4842 "I<af> argument was B<AF_INET6>."
4843 msgstr ""
4844
4845 #. type: Plain text
4846 #: build/C/man3/getipnodebyname.3:251
4847 msgid ""
4848 "This field will be set to I<sizeof(struct in_addr)> if I<h_addrtype> is "
4849 "B<AF_INET>, and to I<sizeof(struct in6_addr)> if I<h_addrtype> is "
4850 "B<AF_INET6>."
4851 msgstr ""
4852
4853 #. type: Plain text
4854 #: build/C/man3/getipnodebyname.3:256
4855 msgid ""
4856 "This is an array of one or more pointers to network address structures for "
4857 "the network host.  The array is terminated by a NULL pointer."
4858 msgstr ""
4859
4860 #.  Not in POSIX.1-2001.
4861 #. type: Plain text
4862 #: build/C/man3/getipnodebyname.3:259
4863 msgid "RFC\\ 2553."
4864 msgstr ""
4865
4866 #. type: Plain text
4867 #: build/C/man3/getipnodebyname.3:264
4868 msgid ""
4869 "These functions were present in glibc 2.1.91-95, but were removed again.  "
4870 "Several UNIX-like systems support them, but all call them deprecated."
4871 msgstr ""
4872
4873 #. type: Plain text
4874 #: build/C/man3/getipnodebyname.3:269
4875 msgid "B<getaddrinfo>(3), B<getnameinfo>(3), B<inet_ntop>(3), B<inet_pton>(3)"
4876 msgstr ""
4877
4878 #. type: TH
4879 #: build/C/man3/getnameinfo.3:7
4880 #, no-wrap
4881 msgid "GETNAMEINFO"
4882 msgstr ""
4883
4884 #. type: TH
4885 #: build/C/man3/getnameinfo.3:7
4886 #, no-wrap
4887 msgid "2009-12-03"
4888 msgstr ""
4889
4890 #. type: Plain text
4891 #: build/C/man3/getnameinfo.3:10
4892 msgid "getnameinfo - address-to-name translation in protocol-independent manner"
4893 msgstr ""
4894
4895 #. type: Plain text
4896 #: build/C/man3/getnameinfo.3:14
4897 #, no-wrap
4898 msgid ""
4899 "B<#include E<lt>sys/socket.hE<gt>>\n"
4900 "B<#include E<lt>netdb.hE<gt>>\n"
4901 msgstr ""
4902
4903 #. type: Plain text
4904 #: build/C/man3/getnameinfo.3:18
4905 #, no-wrap
4906 msgid ""
4907 "B<int getnameinfo(const struct sockaddr *>I<sa>B<, socklen_t >I<salen>B<,>\n"
4908 "B<                char *>I<host>B<, size_t >I<hostlen>B<,>\n"
4909 "B<                char *>I<serv>B<, size_t >I<servlen>B<, int "
4910 ">I<flags>B<);>\n"
4911 msgstr ""
4912
4913 #. type: Plain text
4914 #: build/C/man3/getnameinfo.3:28
4915 msgid ""
4916 "B<getnameinfo>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4917 "_POSIX_SOURCE"
4918 msgstr ""
4919
4920 #. type: Plain text
4921 #: build/C/man3/getnameinfo.3:44
4922 msgid ""
4923 "The B<getnameinfo>()  function is the inverse of B<getaddrinfo>(3): it "
4924 "converts a socket address to a corresponding host and service, in a "
4925 "protocol-independent manner.  It combines the functionality of "
4926 "B<gethostbyaddr>(3)  and B<getservbyport>(3), but unlike those functions, "
4927 "B<getaddrinfo>(3)  is reentrant and allows programs to eliminate "
4928 "IPv4-versus-IPv6 dependencies."
4929 msgstr ""
4930
4931 #. type: Plain text
4932 #: build/C/man3/getnameinfo.3:67
4933 msgid ""
4934 "The I<sa> argument is a pointer to a generic socket address structure (of "
4935 "type I<sockaddr_in> or I<sockaddr_in6>)  of size I<salen> that holds the "
4936 "input IP address and port number.  The arguments I<host> and I<serv> are "
4937 "pointers to caller-allocated buffers (of size I<hostlen> and I<servlen> "
4938 "respectively) into which B<getnameinfo>()  places null-terminated strings "
4939 "containing the host and service names respectively."
4940 msgstr ""
4941
4942 #. type: Plain text
4943 #: build/C/man3/getnameinfo.3:80
4944 msgid ""
4945 "The caller can specify that no hostname (or no service name)  is required by "
4946 "providing a NULL I<host> (or I<serv>)  argument or a zero I<hostlen> (or "
4947 "I<servlen>)  argument.  However, at least one of hostname or service name "
4948 "must be requested."
4949 msgstr ""
4950
4951 #. type: Plain text
4952 #: build/C/man3/getnameinfo.3:86
4953 msgid "The I<flags> argument modifies the behavior of B<getnameinfo>()  as follows:"
4954 msgstr ""
4955
4956 #. type: TP
4957 #: build/C/man3/getnameinfo.3:86
4958 #, no-wrap
4959 msgid "B<NI_NAMEREQD>"
4960 msgstr ""
4961
4962 #. type: Plain text
4963 #: build/C/man3/getnameinfo.3:89
4964 msgid "If set, then an error is returned if the hostname cannot be determined."
4965 msgstr ""
4966
4967 #. type: TP
4968 #: build/C/man3/getnameinfo.3:89
4969 #, no-wrap
4970 msgid "B<NI_DGRAM>"
4971 msgstr ""
4972
4973 #. type: Plain text
4974 #: build/C/man3/getnameinfo.3:95
4975 msgid ""
4976 "If set, then the service is datagram (UDP) based rather than stream (TCP) "
4977 "based.  This is required for the few ports (512-514)  that have different "
4978 "services for UDP and TCP."
4979 msgstr ""
4980
4981 #. type: TP
4982 #: build/C/man3/getnameinfo.3:95
4983 #, no-wrap
4984 msgid "B<NI_NOFQDN>"
4985 msgstr ""
4986
4987 #. type: Plain text
4988 #: build/C/man3/getnameinfo.3:99
4989 msgid ""
4990 "If set, return only the hostname part of the fully qualified domain name for "
4991 "local hosts."
4992 msgstr ""
4993
4994 #. type: TP
4995 #: build/C/man3/getnameinfo.3:99
4996 #, no-wrap
4997 msgid "B<NI_NUMERICHOST>"
4998 msgstr ""
4999
5000 #.  For example, by calling
5001 #.  .BR inet_ntop ()
5002 #.  instead of
5003 #.  .BR gethostbyaddr ().
5004 #.  POSIX.1-2003 has NI_NUMERICSCOPE, but glibc doesn't have it.
5005 #. type: Plain text
5006 #: build/C/man3/getnameinfo.3:109
5007 msgid ""
5008 "If set, then the numeric form of the hostname is returned.  (When not set, "
5009 "this will still happen in case the node's name cannot be determined.)"
5010 msgstr ""
5011
5012 #. type: TP
5013 #: build/C/man3/getnameinfo.3:109
5014 #, no-wrap
5015 msgid "B<NI_NUMERICSERV>"
5016 msgstr ""
5017
5018 #. type: Plain text
5019 #: build/C/man3/getnameinfo.3:114
5020 msgid ""
5021 "If set, then the numeric form of the service address is returned.  (When not "
5022 "set, this will still happen in case the service's name cannot be "
5023 "determined.)"
5024 msgstr ""
5025
5026 #. type: Plain text
5027 #: build/C/man3/getnameinfo.3:123
5028 msgid ""
5029 "Starting with glibc 2.3.4, B<getnameinfo>()  has been extended to "
5030 "selectively allow hostnames to be transparently converted to and from the "
5031 "Internationalized Domain Name (IDN) format (see RFC 3490, "
5032 "I<Internationalizing Domain Names in Applications (IDNA)>).  Three new flags "
5033 "are defined:"
5034 msgstr ""
5035
5036 #. type: TP
5037 #: build/C/man3/getnameinfo.3:123
5038 #, no-wrap
5039 msgid "B<NI_IDN>"
5040 msgstr ""
5041
5042 #. type: Plain text
5043 #: build/C/man3/getnameinfo.3:129
5044 msgid ""
5045 "If this flag is used, then the name found in the lookup process is converted "
5046 "from IDN format to the locale's encoding if necessary.  ASCII-only names are "
5047 "not affected by the conversion, which makes this flag usable in existing "
5048 "programs and environments."
5049 msgstr ""
5050
5051 #. type: TP
5052 #: build/C/man3/getnameinfo.3:129
5053 #, no-wrap
5054 msgid "B<NI_IDN_ALLOW_UNASSIGNED>, B<NI_IDN_USE_STD3_ASCII_RULES>"
5055 msgstr ""
5056
5057 #.  FIXME glibc defines the following additional errors, some which
5058 #.  can probably be returned by getnameinfo(); they need to
5059 #.  be documented.
5060 #.  #ifdef __USE_GNU
5061 #.  #define EAI_INPROGRESS  -100  /* Processing request in progress.  */
5062 #.  #define EAI_CANCELED    -101  /* Request canceled.  */
5063 #.  #define EAI_NOTCANCELED -102  /* Request not canceled.  */
5064 #.  #define EAI_ALLDONE     -103  /* All requests done.  */
5065 #.  #define EAI_INTR        -104  /* Interrupted by a signal.  */
5066 #.  #define EAI_IDN_ENCODE  -105  /* IDN encoding failed.  */
5067 #.  #endif
5068 #. type: Plain text
5069 #: build/C/man3/getnameinfo.3:152
5070 msgid ""
5071 "On success 0 is returned, and node and service names, if requested, are "
5072 "filled with null-terminated strings, possibly truncated to fit the specified "
5073 "buffer lengths.  On error one of the following nonzero error codes is "
5074 "returned:"
5075 msgstr ""
5076
5077 #. type: Plain text
5078 #: build/C/man3/getnameinfo.3:156
5079 msgid "The name could not be resolved at this time.  Try again later."
5080 msgstr ""
5081
5082 #. type: Plain text
5083 #: build/C/man3/getnameinfo.3:161
5084 msgid "The I<flags> argument has an invalid value."
5085 msgstr ""
5086
5087 #. type: Plain text
5088 #: build/C/man3/getnameinfo.3:164
5089 msgid "A nonrecoverable error occurred."
5090 msgstr ""
5091
5092 #. type: Plain text
5093 #: build/C/man3/getnameinfo.3:168
5094 msgid ""
5095 "The address family was not recognized, or the address length was invalid for "
5096 "the specified family."
5097 msgstr ""
5098
5099 #. type: Plain text
5100 #: build/C/man3/getnameinfo.3:177
5101 msgid ""
5102 "The name does not resolve for the supplied arguments.  B<NI_NAMEREQD> is set "
5103 "and the host's name cannot be located, or neither hostname nor service name "
5104 "were requested."
5105 msgstr ""
5106
5107 #. type: TP
5108 #: build/C/man3/getnameinfo.3:177
5109 #, no-wrap
5110 msgid "B<EAI_OVERFLOW>"
5111 msgstr ""
5112
5113 #. type: Plain text
5114 #: build/C/man3/getnameinfo.3:184
5115 msgid "The buffer pointed to by I<host> or I<serv> was too small."
5116 msgstr ""
5117
5118 #. type: Plain text
5119 #: build/C/man3/getnameinfo.3:189
5120 msgid "A system error occurred.  The error code can be found in I<errno>."
5121 msgstr ""
5122
5123 #. type: Plain text
5124 #: build/C/man3/getnameinfo.3:196
5125 msgid "/etc/hosts"
5126 msgstr ""
5127
5128 #. type: Plain text
5129 #: build/C/man3/getnameinfo.3:198
5130 msgid "/etc/nsswitch.conf"
5131 msgstr ""
5132
5133 #. type: Plain text
5134 #: build/C/man3/getnameinfo.3:200
5135 msgid "/etc/resolv.conf"
5136 msgstr ""
5137
5138 #. type: Plain text
5139 #: build/C/man3/getnameinfo.3:203
5140 msgid "B<getnameinfo>()  is provided in glibc since version 2.1."
5141 msgstr ""
5142
5143 #. type: Plain text
5144 #: build/C/man3/getnameinfo.3:205
5145 msgid "RFC\\ 2553, POSIX.1-2001."
5146 msgstr ""
5147
5148 #. type: Plain text
5149 #: build/C/man3/getnameinfo.3:210
5150 msgid ""
5151 "In order to assist the programmer in choosing reasonable sizes for the "
5152 "supplied buffers, I<E<lt>netdb.hE<gt>> defines the constants"
5153 msgstr ""
5154
5155 #. type: Plain text
5156 #: build/C/man3/getnameinfo.3:215
5157 #, no-wrap
5158 msgid ""
5159 "#define NI_MAXHOST      1025\n"
5160 "#define NI_MAXSERV      32\n"
5161 msgstr ""
5162
5163 #. type: Plain text
5164 #: build/C/man3/getnameinfo.3:225
5165 msgid ""
5166 "Since glibc 2.8, these definitions are exposed only if one of the feature "
5167 "test macros B<_BSD_SOURCE>, B<_SVID_SOURCE>, or B<_GNU_SOURCE> is defined."
5168 msgstr ""
5169
5170 #. type: Plain text
5171 #: build/C/man3/getnameinfo.3:233
5172 msgid ""
5173 "The former is the constant B<MAXDNAME> in recent versions of BIND's "
5174 "I<E<lt>arpa/nameser.hE<gt>> header file.  The latter is a guess based on the "
5175 "services listed in the current Assigned Numbers RFC."
5176 msgstr ""
5177
5178 #. type: Plain text
5179 #: build/C/man3/getnameinfo.3:238
5180 msgid ""
5181 "The following code tries to get the numeric hostname and service name, for a "
5182 "given socket address.  Note that there is no hardcoded reference to a "
5183 "particular address family."
5184 msgstr ""
5185
5186 #. type: Plain text
5187 #: build/C/man3/getnameinfo.3:244
5188 #, no-wrap
5189 msgid ""
5190 "struct sockaddr *sa;    /* input */\n"
5191 "socklen_t len;         /* input */\n"
5192 "char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV];\n"
5193 msgstr ""
5194
5195 #. type: Plain text
5196 #: build/C/man3/getnameinfo.3:248
5197 #, no-wrap
5198 msgid ""
5199 "if (getnameinfo(sa, len, hbuf, sizeof(hbuf), sbuf,\n"
5200 "            sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV) == 0)\n"
5201 "    printf(\"host=%s, serv=%s\\en\", hbuf, sbuf);\n"
5202 msgstr ""
5203
5204 #. type: Plain text
5205 #: build/C/man3/getnameinfo.3:253
5206 msgid ""
5207 "The following version checks if the socket address has a reverse address "
5208 "mapping."
5209 msgstr ""
5210
5211 #. type: Plain text
5212 #: build/C/man3/getnameinfo.3:259
5213 #, no-wrap
5214 msgid ""
5215 "struct sockaddr *sa;    /* input */\n"
5216 "socklen_t len;         /* input */\n"
5217 "char hbuf[NI_MAXHOST];\n"
5218 msgstr ""
5219
5220 #. type: Plain text
5221 #: build/C/man3/getnameinfo.3:265
5222 #, no-wrap
5223 msgid ""
5224 "if (getnameinfo(sa, len, hbuf, sizeof(hbuf),\n"
5225 "            NULL, 0, NI_NAMEREQD))\n"
5226 "    printf(\"could not resolve hostname\");\n"
5227 "else\n"
5228 "    printf(\"host=%s\\en\", hbuf);\n"
5229 msgstr ""
5230
5231 #. type: Plain text
5232 #: build/C/man3/getnameinfo.3:272
5233 msgid ""
5234 "An example program using B<getnameinfo>()  can be found in "
5235 "B<getaddrinfo>(3)."
5236 msgstr ""
5237
5238 #. type: Plain text
5239 #: build/C/man3/getnameinfo.3:287
5240 msgid ""
5241 "B<accept>(2), B<getpeername>(2), B<getsockname>(2), B<recvfrom>(2), "
5242 "B<socket>(2), B<getaddrinfo>(3), B<gethostbyaddr>(3), B<getservbyname>(3), "
5243 "B<getservbyport>(3), B<inet_ntop>(3), B<hosts>(5), B<services>(5), "
5244 "B<hostname>(7), B<named>(8)"
5245 msgstr ""
5246
5247 #. type: Plain text
5248 #: build/C/man3/getnameinfo.3:291
5249 msgid ""
5250 "R. Gilligan, S. Thomson, J. Bound and W. Stevens, I<Basic Socket Interface "
5251 "Extensions for IPv6>, RFC\\ 2553, March 1999."
5252 msgstr ""
5253
5254 #. type: Plain text
5255 #: build/C/man3/getnameinfo.3:296
5256 msgid ""
5257 "Tatsuya Jinmei and Atsushi Onoe, I<An Extension of Format for IPv6 Scoped "
5258 "Addresses>, internet draft, work in progress.  "
5259 "ftp://ftp.ietf.org/internet-drafts/draft-ietf-ipngwg-scopedaddr-format-02.txt"
5260 msgstr ""
5261
5262 #. type: Plain text
5263 #: build/C/man3/getnameinfo.3:302
5264 msgid ""
5265 "Craig Metz, I<Protocol Independence Using the Sockets API>, Proceedings of "
5266 "the freenix track: 2000 USENIX annual technical conference, June 2000.  "
5267 "http://www.usenix.org/publications/library/proceedings/usenix2000/freenix/metzprotocol.html"
5268 msgstr ""
5269
5270 #. type: TH
5271 #: build/C/man3/getnetent.3:28
5272 #, no-wrap
5273 msgid "GETNETENT"
5274 msgstr ""
5275
5276 #. type: TH
5277 #: build/C/man3/getnetent.3:28 build/C/man3/getprotoent.3:28 build/C/man3/getservent.3:32
5278 #, no-wrap
5279 msgid "2008-08-19"
5280 msgstr ""
5281
5282 #. type: Plain text
5283 #: build/C/man3/getnetent.3:32
5284 msgid ""
5285 "getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent - get network "
5286 "entry"
5287 msgstr ""
5288
5289 #. type: Plain text
5290 #: 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
5291 #, no-wrap
5292 msgid "B<#include E<lt>netdb.hE<gt>>\n"
5293 msgstr ""
5294
5295 #. type: Plain text
5296 #: build/C/man3/getnetent.3:37
5297 #, no-wrap
5298 msgid "B<struct netent *getnetent(void);>\n"
5299 msgstr ""
5300
5301 #. type: Plain text
5302 #: build/C/man3/getnetent.3:39
5303 #, no-wrap
5304 msgid "B<struct netent *getnetbyname(const char *>I<name>B<);>\n"
5305 msgstr ""
5306
5307 #. type: Plain text
5308 #: build/C/man3/getnetent.3:41
5309 #, no-wrap
5310 msgid "B<struct netent *getnetbyaddr(uint32_t >I<net>B<, int >I<type>B<);>\n"
5311 msgstr ""
5312
5313 #. type: Plain text
5314 #: build/C/man3/getnetent.3:43
5315 #, no-wrap
5316 msgid "B<void setnetent(int >I<stayopen>B<);>\n"
5317 msgstr ""
5318
5319 #. type: Plain text
5320 #: build/C/man3/getnetent.3:45
5321 #, no-wrap
5322 msgid "B<void endnetent(void);>\n"
5323 msgstr ""
5324
5325 #. type: Plain text
5326 #: build/C/man3/getnetent.3:53
5327 msgid ""
5328 "The B<getnetent>()  function reads the next entry from the networks database "
5329 "and returns a I<netent> structure containing the broken-out fields from the "
5330 "entry.  A connection is opened to the database if necessary."
5331 msgstr ""
5332
5333 #. type: Plain text
5334 #: build/C/man3/getnetent.3:59
5335 msgid ""
5336 "The B<getnetbyname>()  function returns a I<netent> structure for the entry "
5337 "from the database that matches the network I<name>."
5338 msgstr ""
5339
5340 #. type: Plain text
5341 #: build/C/man3/getnetent.3:69
5342 msgid ""
5343 "The B<getnetbyaddr>()  function returns a I<netent> structure for the entry "
5344 "from the database that matches the network number I<net> of type I<type>.  "
5345 "The I<net> argument must be in host byte order."
5346 msgstr ""
5347
5348 #. type: Plain text
5349 #: build/C/man3/getnetent.3:79
5350 msgid ""
5351 "The B<setnetent>()  function opens a connection to the database, and sets "
5352 "the next entry to the first entry.  If I<stayopen> is nonzero, then the "
5353 "connection to the database will not be closed between calls to one of the "
5354 "B<getnet*>()  functions."
5355 msgstr ""
5356
5357 #. type: Plain text
5358 #: build/C/man3/getnetent.3:83
5359 msgid "The B<endnetent>()  function closes the connection to the database."
5360 msgstr ""
5361
5362 #. type: Plain text
5363 #: build/C/man3/getnetent.3:85
5364 msgid "The I<netent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
5365 msgstr ""
5366
5367 #. type: Plain text
5368 #: build/C/man3/getnetent.3:94
5369 #, no-wrap
5370 msgid ""
5371 "struct netent {\n"
5372 "    char      *n_name;     /* official network name */\n"
5373 "    char     **n_aliases;  /* alias list */\n"
5374 "    int        n_addrtype; /* net address type */\n"
5375 "    uint32_t   n_net;      /* network number */\n"
5376 "}\n"
5377 msgstr ""
5378
5379 #. type: Plain text
5380 #: build/C/man3/getnetent.3:98
5381 msgid "The members of the I<netent> structure are:"
5382 msgstr ""
5383
5384 #. type: TP
5385 #: build/C/man3/getnetent.3:98
5386 #, no-wrap
5387 msgid "I<n_name>"
5388 msgstr ""
5389
5390 #. type: Plain text
5391 #: build/C/man3/getnetent.3:101
5392 msgid "The official name of the network."
5393 msgstr ""
5394
5395 #. type: TP
5396 #: build/C/man3/getnetent.3:101
5397 #, no-wrap
5398 msgid "I<n_aliases>"
5399 msgstr ""
5400
5401 #. type: Plain text
5402 #: build/C/man3/getnetent.3:104
5403 msgid "A NULL-terminated list of alternative names for the network."
5404 msgstr ""
5405
5406 #. type: TP
5407 #: build/C/man3/getnetent.3:104
5408 #, no-wrap
5409 msgid "I<n_addrtype>"
5410 msgstr ""
5411
5412 #. type: Plain text
5413 #: build/C/man3/getnetent.3:108
5414 msgid "The type of the network number; always B<AF_INET>."
5415 msgstr ""
5416
5417 #. type: TP
5418 #: build/C/man3/getnetent.3:108
5419 #, no-wrap
5420 msgid "I<n_net>"
5421 msgstr ""
5422
5423 #. type: Plain text
5424 #: build/C/man3/getnetent.3:111
5425 msgid "The network number in host byte order."
5426 msgstr ""
5427
5428 #. type: Plain text
5429 #: build/C/man3/getnetent.3:120
5430 msgid ""
5431 "The B<getnetent>(), B<getnetbyname>()  and B<getnetbyaddr>()  functions "
5432 "return a pointer to a statically allocated I<netent> structure, or a NULL "
5433 "pointer if an error occurs or the end of the file is reached."
5434 msgstr ""
5435
5436 #. type: TP
5437 #: build/C/man3/getnetent.3:121 build/C/man5/networks.5:70
5438 #, no-wrap
5439 msgid "I</etc/networks>"
5440 msgstr ""
5441
5442 #. type: Plain text
5443 #: build/C/man3/getnetent.3:124
5444 msgid "networks database file"
5445 msgstr ""
5446
5447 #. type: Plain text
5448 #: build/C/man3/getnetent.3:126 build/C/man3/getprotoent.3:122 build/C/man3/getservent.3:131
5449 msgid "4.3BSD, POSIX.1-2001."
5450 msgstr ""
5451
5452 #. type: Plain text
5453 #: build/C/man3/getnetent.3:133
5454 msgid ""
5455 "In glibc versions before 2.2, the I<net> argument of B<getnetbyaddr>()  was "
5456 "of type I<long>."
5457 msgstr ""
5458
5459 #.  .BR networks (5)
5460 #. type: Plain text
5461 #: build/C/man3/getnetent.3:138
5462 msgid "B<getnetent_r>(3), B<getprotoent>(3), B<getservent>(3)"
5463 msgstr ""
5464
5465 #. type: Plain text
5466 #: build/C/man3/getnetent.3:140
5467 msgid "RFC\\ 1101"
5468 msgstr ""
5469
5470 #. type: TH
5471 #: build/C/man3/getnetent_r.3:24
5472 #, no-wrap
5473 msgid "GETNETENT_R"
5474 msgstr ""
5475
5476 #. type: Plain text
5477 #: build/C/man3/getnetent_r.3:28
5478 msgid "getnetent_r, getnetbyname_r, getnetbyaddr_r - get network entry (reentrant)"
5479 msgstr ""
5480
5481 #. type: Plain text
5482 #: build/C/man3/getnetent_r.3:35
5483 #, no-wrap
5484 msgid ""
5485 "B<int getnetent_r(struct netent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5486 "B<                size_t >I<buflen>B<, struct netent **>I<result>B<,>\n"
5487 "B<                int *>I<h_errnop>B<);>\n"
5488 msgstr ""
5489
5490 #. type: Plain text
5491 #: build/C/man3/getnetent_r.3:40
5492 #, no-wrap
5493 msgid ""
5494 "B<int getnetbyname_r(const char *>I<name>B<,>\n"
5495 "B<                struct netent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5496 "B<                size_t >I<buflen>B<, struct netent **>I<result>B<,>\n"
5497 "B<                int *>I<h_errnop>B<);>\n"
5498 msgstr ""
5499
5500 #. type: Plain text
5501 #: build/C/man3/getnetent_r.3:45
5502 #, no-wrap
5503 msgid ""
5504 "B<int getnetbyaddr_r(uint32_t >I<net>B<, int >I<type>B<,>\n"
5505 "B<                struct netent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5506 "B<                size_t >I<buflen>B<, struct netent **>I<result>B<,>\n"
5507 "B<                int *>I<h_errnop>B<);>\n"
5508 msgstr ""
5509
5510 #. type: Plain text
5511 #: build/C/man3/getnetent_r.3:56
5512 msgid "B<getnetent_r>(), B<getnetbyname_r>(), B<getnetbyaddr_r>():"
5513 msgstr ""
5514
5515 #. type: Plain text
5516 #: build/C/man3/getnetent_r.3:77
5517 msgid ""
5518 "The B<getnetent_r>(), B<getnetbyname_r>(), and B<getnetbyaddr_r>()  "
5519 "functions are the reentrant equivalents of, respectively, B<getnetent>(3), "
5520 "B<getnetbyname>(3), and B<getnetbynumber>(3).  They differ in the way that "
5521 "the I<netent> structure is returned, and in the function calling signature "
5522 "and return value.  This manual page describes just the differences from the "
5523 "nonreentrant functions."
5524 msgstr ""
5525
5526 #. type: Plain text
5527 #: build/C/man3/getnetent_r.3:83
5528 msgid ""
5529 "Instead of returning a pointer to a statically allocated I<netent> structure "
5530 "as the function result, these functions copy the structure into the location "
5531 "pointed to by I<result_buf>."
5532 msgstr ""
5533
5534 #.  I can find no information on the required/recommended buffer size;
5535 #.  the nonreentrant functions use a 1024 byte buffer -- mtk.
5536 #. type: Plain text
5537 #: build/C/man3/getnetent_r.3:100
5538 msgid ""
5539 "The I<buf> array is used to store the string fields pointed to by the "
5540 "returned I<netent> structure.  (The nonreentrant functions allocate these "
5541 "strings in static storage.)  The size of this array is specified in "
5542 "I<buflen>.  If I<buf> is too small, the call fails with the error B<ERANGE>, "
5543 "and the caller must try again with a larger buffer.  (A buffer of length "
5544 "1024 bytes should be sufficient for most applications.)"
5545 msgstr ""
5546
5547 #. type: Plain text
5548 #: build/C/man3/getnetent_r.3:108
5549 msgid ""
5550 "If the function call successfully obtains a network record, then I<*result> "
5551 "is set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
5552 msgstr ""
5553
5554 #.  getnetent.3 doesn't document any use of h_errno, but nevertheless
5555 #.  the nonreentrant functions no seem to set h_errno.
5556 #. type: Plain text
5557 #: build/C/man3/getnetent_r.3:116
5558 msgid ""
5559 "The buffer pointed to by I<h_errnop> is used to return the value that would "
5560 "be stored in the global variable I<h_errno> by the nonreentrant versions of "
5561 "these functions."
5562 msgstr ""
5563
5564 #. type: Plain text
5565 #: build/C/man3/getnetent_r.3:119 build/C/man3/getprotoent_r.3:109
5566 msgid ""
5567 "On success, these functions return 0.  On error, they return one of the "
5568 "positive error numbers listed in ERRORS."
5569 msgstr ""
5570
5571 #. type: Plain text
5572 #: build/C/man3/getnetent_r.3:127
5573 msgid ""
5574 "On error, record not found (B<getnetbyname_r>(), B<getnetbyaddr_r>()), or "
5575 "end of input (B<getnetent_r>())  I<result> is set to NULL."
5576 msgstr ""
5577
5578 #. type: Plain text
5579 #: build/C/man3/getnetent_r.3:132
5580 msgid "(B<getnetent_r>())  No more records in database."
5581 msgstr ""
5582
5583 #. type: TP
5584 #: build/C/man3/getnetent_r.3:132 build/C/man3/getprotoent_r.3:122 build/C/man3/getservent_r.3:121
5585 #, no-wrap
5586 msgid "B<ERANGE>"
5587 msgstr ""
5588
5589 #. type: Plain text
5590 #: build/C/man3/getnetent_r.3:139 build/C/man3/getprotoent_r.3:129 build/C/man3/getservent_r.3:128
5591 msgid ""
5592 "I<buf> is too small.  Try again with a larger buffer (and increased "
5593 "I<buflen>)."
5594 msgstr ""
5595
5596 #. type: Plain text
5597 #: build/C/man3/getnetent_r.3:143 build/C/man3/getprotoent_r.3:133 build/C/man3/getservent_r.3:132
5598 msgid ""
5599 "These functions are GNU extensions.  Functions with similar names exist on "
5600 "some other systems, though typically with different calling signatures."
5601 msgstr ""
5602
5603 #. type: Plain text
5604 #: build/C/man3/getnetent_r.3:146
5605 msgid "B<getnetent>(3), B<networks>(5)"
5606 msgstr ""
5607
5608 #. type: TH
5609 #: build/C/man2/getpeername.2:40
5610 #, no-wrap
5611 msgid "GETPEERNAME"
5612 msgstr ""
5613
5614 #. type: TH
5615 #: build/C/man2/getpeername.2:40 build/C/man2/shutdown.2:38 build/C/man7/udplite.7:25
5616 #, no-wrap
5617 msgid "2008-12-03"
5618 msgstr ""
5619
5620 #. type: Plain text
5621 #: build/C/man2/getpeername.2:43
5622 msgid "getpeername - get name of connected peer socket"
5623 msgstr ""
5624
5625 #. type: Plain text
5626 #: build/C/man2/getpeername.2:48
5627 msgid ""
5628 "B<int getpeername(int >I<sockfd>B<, struct sockaddr *>I<addr>B<, socklen_t "
5629 "*>I<addrlen>B<);>"
5630 msgstr ""
5631
5632 #. type: Plain text
5633 #: build/C/man2/getpeername.2:61
5634 msgid ""
5635 "B<getpeername>()  returns the address of the peer connected to the socket "
5636 "I<sockfd>, in the buffer pointed to by I<addr>.  The I<addrlen> argument "
5637 "should be initialized to indicate the amount of space pointed to by "
5638 "I<addr>.  On return it contains the actual size of the name returned (in "
5639 "bytes).  The name is truncated if the buffer provided is too small."
5640 msgstr ""
5641
5642 #. type: Plain text
5643 #: build/C/man2/getpeername.2:66
5644 msgid ""
5645 "The returned address is truncated if the buffer provided is too small; in "
5646 "this case, I<addrlen> will return a value greater than was supplied to the "
5647 "call."
5648 msgstr ""
5649
5650 #. type: Plain text
5651 #: build/C/man2/getpeername.2:71 build/C/man2/shutdown.2:72
5652 msgid ""
5653 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
5654 "appropriately."
5655 msgstr ""
5656
5657 #. type: TP
5658 #: build/C/man2/getpeername.2:72 build/C/man2/shutdown.2:73
5659 #, no-wrap
5660 msgid "B<EBADF>"
5661 msgstr ""
5662
5663 #. type: Plain text
5664 #: build/C/man2/getpeername.2:77
5665 msgid "The argument I<sockfd> is not a valid descriptor."
5666 msgstr ""
5667
5668 #. type: TP
5669 #: build/C/man2/getpeername.2:77 build/C/man7/packet.7:245 build/C/man7/raw.7:145 build/C/man7/unix.7:332
5670 #, no-wrap
5671 msgid "B<EFAULT>"
5672 msgstr ""
5673
5674 #. type: Plain text
5675 #: build/C/man2/getpeername.2:83
5676 msgid ""
5677 "The I<addr> argument points to memory not in a valid part of the process "
5678 "address space."
5679 msgstr ""
5680
5681 #. type: Plain text
5682 #: build/C/man2/getpeername.2:87
5683 msgid "I<addrlen> is invalid (e.g., is negative)."
5684 msgstr ""
5685
5686 #. type: TP
5687 #: build/C/man2/getpeername.2:87 build/C/man7/packet.7:257
5688 #, no-wrap
5689 msgid "B<ENOBUFS>"
5690 msgstr ""
5691
5692 #. type: Plain text
5693 #: build/C/man2/getpeername.2:91
5694 msgid ""
5695 "Insufficient resources were available in the system to perform the "
5696 "operation."
5697 msgstr ""
5698
5699 #. type: Plain text
5700 #: build/C/man2/getpeername.2:94
5701 msgid "The socket is not connected."
5702 msgstr ""
5703
5704 #. type: TP
5705 #: build/C/man2/getpeername.2:94 build/C/man2/shutdown.2:80
5706 #, no-wrap
5707 msgid "B<ENOTSOCK>"
5708 msgstr ""
5709
5710 #. type: Plain text
5711 #: build/C/man2/getpeername.2:99
5712 msgid "The argument I<sockfd> is a file, not a socket."
5713 msgstr ""
5714
5715 #. type: Plain text
5716 #: build/C/man2/getpeername.2:103
5717 msgid ""
5718 "SVr4, 4.4BSD (the B<getpeername>()  function call first appeared in 4.2BSD), "
5719 "POSIX.1-2001."
5720 msgstr ""
5721
5722 #. type: Plain text
5723 #: build/C/man2/getpeername.2:114
5724 msgid ""
5725 "The third argument of B<getpeername>()  is in reality an I<int *> (and this "
5726 "is what 4.x BSD and libc4 and libc5 have).  Some POSIX confusion resulted in "
5727 "the present I<socklen_t>, also used by glibc.  See also B<accept>(2)."
5728 msgstr ""
5729
5730 #. type: Plain text
5731 #: build/C/man2/getpeername.2:121
5732 msgid ""
5733 "B<accept>(2), B<bind>(2), B<getsockname>(2), B<ip>(7), B<socket>(7), "
5734 "B<unix>(7)"
5735 msgstr ""
5736
5737 #. type: TH
5738 #: build/C/man3/getprotoent.3:28
5739 #, no-wrap
5740 msgid "GETPROTOENT"
5741 msgstr ""
5742
5743 #. type: Plain text
5744 #: build/C/man3/getprotoent.3:32
5745 msgid ""
5746 "getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent - "
5747 "get protocol entry"
5748 msgstr ""
5749
5750 #. type: Plain text
5751 #: build/C/man3/getprotoent.3:37
5752 #, no-wrap
5753 msgid "B<struct protoent *getprotoent(void);>\n"
5754 msgstr ""
5755
5756 #. type: Plain text
5757 #: build/C/man3/getprotoent.3:39
5758 #, no-wrap
5759 msgid "B<struct protoent *getprotobyname(const char *>I<name>B<);>\n"
5760 msgstr ""
5761
5762 #. type: Plain text
5763 #: build/C/man3/getprotoent.3:41
5764 #, no-wrap
5765 msgid "B<struct protoent *getprotobynumber(int >I<proto>B<);>\n"
5766 msgstr ""
5767
5768 #. type: Plain text
5769 #: build/C/man3/getprotoent.3:43
5770 #, no-wrap
5771 msgid "B<void setprotoent(int >I<stayopen>B<);>\n"
5772 msgstr ""
5773
5774 #. type: Plain text
5775 #: build/C/man3/getprotoent.3:45
5776 #, no-wrap
5777 msgid "B<void endprotoent(void);>\n"
5778 msgstr ""
5779
5780 #. type: Plain text
5781 #: build/C/man3/getprotoent.3:54
5782 msgid ""
5783 "The B<getprotoent>()  function reads the next entry from the protocols "
5784 "database (see B<protocols>(5))  and returns a I<protoent> structure "
5785 "containing the broken-out fields from the entry.  A connection is opened to "
5786 "the database if necessary."
5787 msgstr ""
5788
5789 #. type: Plain text
5790 #: build/C/man3/getprotoent.3:61
5791 msgid ""
5792 "The B<getprotobyname>()  function returns a I<protoent> structure for the "
5793 "entry from the database that matches the protocol name I<name>.  A "
5794 "connection is opened to the database if necessary."
5795 msgstr ""
5796
5797 #. type: Plain text
5798 #: build/C/man3/getprotoent.3:68
5799 msgid ""
5800 "The B<getprotobynumber>()  function returns a I<protoent> structure for the "
5801 "entry from the database that matches the protocol number I<number>.  A "
5802 "connection is opened to the database if necessary."
5803 msgstr ""
5804
5805 #. type: Plain text
5806 #: build/C/man3/getprotoent.3:78
5807 msgid ""
5808 "The B<setprotoent>()  function opens a connection to the database, and sets "
5809 "the next entry to the first entry.  If I<stayopen> is nonzero, then the "
5810 "connection to the database will not be closed between calls to one of the "
5811 "B<getproto*>()  functions."
5812 msgstr ""
5813
5814 #. type: Plain text
5815 #: build/C/man3/getprotoent.3:82
5816 msgid "The B<endprotoent>()  function closes the connection to the database."
5817 msgstr ""
5818
5819 #. type: Plain text
5820 #: build/C/man3/getprotoent.3:84
5821 msgid "The I<protoent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
5822 msgstr ""
5823
5824 #. type: Plain text
5825 #: build/C/man3/getprotoent.3:92
5826 #, no-wrap
5827 msgid ""
5828 "struct protoent {\n"
5829 "    char  *p_name;       /* official protocol name */\n"
5830 "    char **p_aliases;    /* alias list */\n"
5831 "    int    p_proto;      /* protocol number */\n"
5832 "}\n"
5833 msgstr ""
5834
5835 #. type: Plain text
5836 #: build/C/man3/getprotoent.3:96
5837 msgid "The members of the I<protoent> structure are:"
5838 msgstr ""
5839
5840 #. type: TP
5841 #: build/C/man3/getprotoent.3:96
5842 #, no-wrap
5843 msgid "I<p_name>"
5844 msgstr ""
5845
5846 #. type: Plain text
5847 #: build/C/man3/getprotoent.3:99
5848 msgid "The official name of the protocol."
5849 msgstr ""
5850
5851 #. type: TP
5852 #: build/C/man3/getprotoent.3:99
5853 #, no-wrap
5854 msgid "I<p_aliases>"
5855 msgstr ""
5856
5857 #. type: Plain text
5858 #: build/C/man3/getprotoent.3:102
5859 msgid "A NULL-terminated list of alternative names for the protocol."
5860 msgstr ""
5861
5862 #. type: TP
5863 #: build/C/man3/getprotoent.3:102
5864 #, no-wrap
5865 msgid "I<p_proto>"
5866 msgstr ""
5867
5868 #. type: Plain text
5869 #: build/C/man3/getprotoent.3:105
5870 msgid "The protocol number."
5871 msgstr ""
5872
5873 #. type: Plain text
5874 #: build/C/man3/getprotoent.3:114
5875 msgid ""
5876 "The B<getprotoent>(), B<getprotobyname>()  and B<getprotobynumber>()  "
5877 "functions return a pointer to a statically allocated I<protoent> structure, "
5878 "or a NULL pointer if an error occurs or the end of the file is reached."
5879 msgstr ""
5880
5881 #. type: TP
5882 #: build/C/man3/getprotoent.3:116 build/C/man5/protocols.5:77
5883 #, no-wrap
5884 msgid "I</etc/protocols>"
5885 msgstr ""
5886
5887 #. type: Plain text
5888 #: build/C/man3/getprotoent.3:119
5889 msgid "protocol database file"
5890 msgstr ""
5891
5892 #. type: Plain text
5893 #: build/C/man3/getprotoent.3:127
5894 msgid "B<getnetent>(3), B<getprotoent_r>(3), B<getservent>(3), B<protocols>(5)"
5895 msgstr ""
5896
5897 #. type: TH
5898 #: build/C/man3/getprotoent_r.3:24
5899 #, no-wrap
5900 msgid "GETPROTOENT_R"
5901 msgstr ""
5902
5903 #. type: Plain text
5904 #: build/C/man3/getprotoent_r.3:28
5905 msgid ""
5906 "getprotoent_r, getprotobyname_r, getprotobynumber_r - get protocol entry "
5907 "(reentrant)"
5908 msgstr ""
5909
5910 #. type: Plain text
5911 #: build/C/man3/getprotoent_r.3:34
5912 #, no-wrap
5913 msgid ""
5914 "B<int getprotoent_r(struct protoent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5915 "B<                size_t >I<buflen>B<, struct protoent **>I<result>B<);>\n"
5916 msgstr ""
5917
5918 #. type: Plain text
5919 #: build/C/man3/getprotoent_r.3:38
5920 #, no-wrap
5921 msgid ""
5922 "B<int getprotobyname_r(const char *>I<name>B<,>\n"
5923 "B<                struct protoent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5924 "B<                size_t >I<buflen>B<, struct protoent **>I<result>B<);>\n"
5925 msgstr ""
5926
5927 #. type: Plain text
5928 #: build/C/man3/getprotoent_r.3:42
5929 #, no-wrap
5930 msgid ""
5931 "B<int getprotobynumber_r(int >I<proto>B<,>\n"
5932 "B<                struct protoent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5933 "B<                size_t >I<buflen>B<, struct protoent **>I<result>B<);>\n"
5934 msgstr ""
5935
5936 #. type: Plain text
5937 #: build/C/man3/getprotoent_r.3:53
5938 msgid "B<getprotoent_r>(), B<getprotobyname_r>(), B<getprotobynumber_r>():"
5939 msgstr ""
5940
5941 #. type: Plain text
5942 #: build/C/man3/getprotoent_r.3:74
5943 msgid ""
5944 "The B<getprotoent_r>(), B<getprotobyname_r>(), and B<getprotobynumber_r>()  "
5945 "functions are the reentrant equivalents of, respectively, B<getprotoent>(3), "
5946 "B<getprotobyname>(3), and B<getprotobynumber>(3).  They differ in the way "
5947 "that the I<protoent> structure is returned, and in the function calling "
5948 "signature and return value.  This manual page describes just the differences "
5949 "from the nonreentrant functions."
5950 msgstr ""
5951
5952 #. type: Plain text
5953 #: build/C/man3/getprotoent_r.3:80
5954 msgid ""
5955 "Instead of returning a pointer to a statically allocated I<protoent> "
5956 "structure as the function result, these functions copy the structure into "
5957 "the location pointed to by I<result_buf>."
5958 msgstr ""
5959
5960 #.  I can find no information on the required/recommended buffer size;
5961 #.  the nonreentrant functions use a 1024 byte buffer.
5962 #.  The 1024 byte value is also what the Solaris man page suggests. -- mtk
5963 #. type: Plain text
5964 #: build/C/man3/getprotoent_r.3:98
5965 msgid ""
5966 "The I<buf> array is used to store the string fields pointed to by the "
5967 "returned I<protoent> structure.  (The nonreentrant functions allocate these "
5968 "strings in static storage.)  The size of this array is specified in "
5969 "I<buflen>.  If I<buf> is too small, the call fails with the error B<ERANGE>, "
5970 "and the caller must try again with a larger buffer.  (A buffer of length "
5971 "1024 bytes should be sufficient for most applications.)"
5972 msgstr ""
5973
5974 #. type: Plain text
5975 #: build/C/man3/getprotoent_r.3:106
5976 msgid ""
5977 "If the function call successfully obtains a protocol record, then I<*result> "
5978 "is set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
5979 msgstr ""
5980
5981 #. type: Plain text
5982 #: build/C/man3/getprotoent_r.3:117
5983 msgid ""
5984 "On error, record not found (B<getprotobyname_r>(), B<getprotobynumber_r>()), "
5985 "or end of input (B<getprotoent_r>())  I<result> is set to NULL."
5986 msgstr ""
5987
5988 #. type: Plain text
5989 #: build/C/man3/getprotoent_r.3:122
5990 msgid "(B<getprotoent_r>())  No more records in database."
5991 msgstr ""
5992
5993 #. type: Plain text
5994 #: build/C/man3/getprotoent_r.3:147
5995 msgid ""
5996 "The program below uses B<getprotobyname_r>()  to retrieve the protocol "
5997 "record for the protocol named in its first command-line argument.  If a "
5998 "second (integer) command-line argument is supplied, it is used as the "
5999 "initial value for I<buflen>; if B<getprotobyname_r>()  fails with the error "
6000 "B<ERANGE>, the program retries with larger buffer sizes.  The following "
6001 "shell session shows a couple of sample runs:"
6002 msgstr ""
6003
6004 #. type: Plain text
6005 #: build/C/man3/getprotoent_r.3:158
6006 #, no-wrap
6007 msgid ""
6008 "$B< ./a.out tcp 1>\n"
6009 "ERANGE! Retrying with larger buffer\n"
6010 "getprotobyname_r() returned: 0 (success)  (buflen=78)\n"
6011 "p_name=tcp; p_proto=6; aliases=TCP\n"
6012 "$B< ./a.out xxx 1>\n"
6013 "ERANGE! Retrying with larger buffer\n"
6014 "getprotobyname_r() returned: 0 (success)  (buflen=100)\n"
6015 "Call failed/record not found\n"
6016 msgstr ""
6017
6018 #. type: Plain text
6019 #: build/C/man3/getprotoent_r.3:170 build/C/man3/getservent_r.3:168
6020 #, no-wrap
6021 msgid ""
6022 "#define _GNU_SOURCE\n"
6023 "#include E<lt>ctype.hE<gt>\n"
6024 "#include E<lt>netdb.hE<gt>\n"
6025 "#include E<lt>stdlib.hE<gt>\n"
6026 "#include E<lt>stdio.hE<gt>\n"
6027 "#include E<lt>errno.hE<gt>\n"
6028 "#include E<lt>string.hE<gt>\n"
6029 msgstr ""
6030
6031 #. type: Plain text
6032 #: build/C/man3/getprotoent_r.3:172 build/C/man3/getservent_r.3:170
6033 #, no-wrap
6034 msgid "#define MAX_BUF 10000\n"
6035 msgstr ""
6036
6037 #. type: Plain text
6038 #: build/C/man3/getprotoent_r.3:181
6039 #, no-wrap
6040 msgid ""
6041 "int\n"
6042 "main(int argc, char *argv[])\n"
6043 "{\n"
6044 "    int buflen, erange_cnt, s;\n"
6045 "    struct protoent result_buf;\n"
6046 "    struct protoent *result;\n"
6047 "    char buf[MAX_BUF];\n"
6048 "    char **p;\n"
6049 msgstr ""
6050
6051 #. type: Plain text
6052 #: build/C/man3/getprotoent_r.3:186
6053 #, no-wrap
6054 msgid ""
6055 "    if (argc E<lt> 2) {\n"
6056 "        printf(\"Usage: %s proto-name [buflen]\\en\", argv[0]);\n"
6057 "        exit(EXIT_FAILURE);\n"
6058 "    }\n"
6059 msgstr ""
6060
6061 #. type: Plain text
6062 #: build/C/man3/getprotoent_r.3:190
6063 #, no-wrap
6064 msgid ""
6065 "    buflen = 1024;\n"
6066 "    if (argc E<gt> 2)\n"
6067 "        buflen = atoi(argv[2]);\n"
6068 msgstr ""
6069
6070 #. type: Plain text
6071 #: build/C/man3/getprotoent_r.3:195 build/C/man3/getservent_r.3:198
6072 #, no-wrap
6073 msgid ""
6074 "    if (buflen E<gt> MAX_BUF) {\n"
6075 "        printf(\"Exceeded buffer limit (%d)\\en\", MAX_BUF);\n"
6076 "        exit(EXIT_FAILURE);\n"
6077 "    }\n"
6078 msgstr ""
6079
6080 #. type: Plain text
6081 #: build/C/man3/getprotoent_r.3:204
6082 #, no-wrap
6083 msgid ""
6084 "    erange_cnt = 0;\n"
6085 "    do {\n"
6086 "        s = getprotobyname_r(argv[1], &result_buf,\n"
6087 "                     buf, buflen, &result);\n"
6088 "        if (s == ERANGE) {\n"
6089 "            if (erange_cnt == 0)\n"
6090 "                printf(\"ERANGE! Retrying with larger buffer\\en\");\n"
6091 "            erange_cnt++;\n"
6092 msgstr ""
6093
6094 #. type: Plain text
6095 #: build/C/man3/getprotoent_r.3:207 build/C/man3/getservent_r.3:210
6096 #, no-wrap
6097 msgid ""
6098 "            /* Increment a byte at a time so we can see exactly\n"
6099 "               what size buffer was required */\n"
6100 msgstr ""
6101
6102 #. type: Plain text
6103 #: build/C/man3/getprotoent_r.3:209 build/C/man3/getservent_r.3:212
6104 #, no-wrap
6105 msgid "            buflen++;\n"
6106 msgstr ""
6107
6108 #. type: Plain text
6109 #: build/C/man3/getprotoent_r.3:216 build/C/man3/getservent_r.3:219
6110 #, no-wrap
6111 msgid ""
6112 "            if (buflen E<gt> MAX_BUF) {\n"
6113 "                printf(\"Exceeded buffer limit (%d)\\en\", MAX_BUF);\n"
6114 "                exit(EXIT_FAILURE);\n"
6115 "            }\n"
6116 "        }\n"
6117 "    } while (s == ERANGE);\n"
6118 msgstr ""
6119
6120 #. type: Plain text
6121 #: build/C/man3/getprotoent_r.3:220
6122 #, no-wrap
6123 msgid ""
6124 "    printf(\"getprotobyname_r() returned: %s  (buflen=%d)\\en\",\n"
6125 "            (s == 0) ? \"0 (success)\" : (s == ENOENT) ? \"ENOENT\" :\n"
6126 "            strerror(s), buflen);\n"
6127 msgstr ""
6128
6129 #. type: Plain text
6130 #: build/C/man3/getprotoent_r.3:225 build/C/man3/getservent_r.3:228
6131 #, no-wrap
6132 msgid ""
6133 "    if (s != 0 || result == NULL) {\n"
6134 "        printf(\"Call failed/record not found\\en\");\n"
6135 "        exit(EXIT_FAILURE);\n"
6136 "    }\n"
6137 msgstr ""
6138
6139 #. type: Plain text
6140 #: build/C/man3/getprotoent_r.3:231
6141 #, no-wrap
6142 msgid ""
6143 "    printf(\"p_name=%s; p_proto=%d; aliases=\",\n"
6144 "                result_buf.p_name, result_buf.p_proto);\n"
6145 "    for (p = result_buf.p_aliases; *p != NULL; p++)\n"
6146 "        printf(\"%s \", *p);\n"
6147 "    printf(\"\\en\");\n"
6148 msgstr ""
6149
6150 #. type: Plain text
6151 #: build/C/man3/getprotoent_r.3:238
6152 msgid "B<getprotoent>(3), B<protocols>(5)"
6153 msgstr ""
6154
6155 #. type: TH
6156 #: build/C/man3/getservent.3:32
6157 #, no-wrap
6158 msgid "GETSERVENT"
6159 msgstr ""
6160
6161 #. type: Plain text
6162 #: build/C/man3/getservent.3:36
6163 msgid ""
6164 "getservent, getservbyname, getservbyport, setservent, endservent - get "
6165 "service entry"
6166 msgstr ""
6167
6168 #. type: Plain text
6169 #: build/C/man3/getservent.3:41
6170 #, no-wrap
6171 msgid "B<struct servent *getservent(void);>\n"
6172 msgstr ""
6173
6174 #. type: Plain text
6175 #: build/C/man3/getservent.3:43
6176 #, no-wrap
6177 msgid ""
6178 "B<struct servent *getservbyname(const char *>I<name>B<, const char "
6179 "*>I<proto>B<);>\n"
6180 msgstr ""
6181
6182 #. type: Plain text
6183 #: build/C/man3/getservent.3:45
6184 #, no-wrap
6185 msgid "B<struct servent *getservbyport(int >I<port>B<, const char *>I<proto>B<);>\n"
6186 msgstr ""
6187
6188 #. type: Plain text
6189 #: build/C/man3/getservent.3:47
6190 #, no-wrap
6191 msgid "B<void setservent(int >I<stayopen>B<);>\n"
6192 msgstr ""
6193
6194 #. type: Plain text
6195 #: build/C/man3/getservent.3:49
6196 #, no-wrap
6197 msgid "B<void endservent(void);>\n"
6198 msgstr ""
6199
6200 #. type: Plain text
6201 #: build/C/man3/getservent.3:58
6202 msgid ""
6203 "The B<getservent>()  function reads the next entry from the services "
6204 "database (see B<services>(5))  and returns a I<servent> structure containing "
6205 "the broken-out fields from the entry.  A connection is opened to the "
6206 "database if necessary."
6207 msgstr ""
6208
6209 #. type: Plain text
6210 #: build/C/man3/getservent.3:66
6211 msgid ""
6212 "The B<getservbyname>()  function returns a I<servent> structure for the "
6213 "entry from the database that matches the service I<name> using protocol "
6214 "I<proto>.  If I<proto> is NULL, any protocol will be matched.  A connection "
6215 "is opened to the database if necessary."
6216 msgstr ""
6217
6218 #. type: Plain text
6219 #: build/C/man3/getservent.3:75
6220 msgid ""
6221 "The B<getservbyport>()  function returns a I<servent> structure for the "
6222 "entry from the database that matches the port I<port> (given in network byte "
6223 "order)  using protocol I<proto>.  If I<proto> is NULL, any protocol will be "
6224 "matched.  A connection is opened to the database if necessary."
6225 msgstr ""
6226
6227 #. type: Plain text
6228 #: build/C/man3/getservent.3:85
6229 msgid ""
6230 "The B<setservent>()  function opens a connection to the database, and sets "
6231 "the next entry to the first entry.  If I<stayopen> is nonzero, then the "
6232 "connection to the database will not be closed between calls to one of the "
6233 "B<getserv*>()  functions."
6234 msgstr ""
6235
6236 #. type: Plain text
6237 #: build/C/man3/getservent.3:89
6238 msgid "The B<endservent>()  function closes the connection to the database."
6239 msgstr ""
6240
6241 #. type: Plain text
6242 #: build/C/man3/getservent.3:91
6243 msgid "The I<servent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
6244 msgstr ""
6245
6246 #. type: Plain text
6247 #: build/C/man3/getservent.3:100
6248 #, no-wrap
6249 msgid ""
6250 "struct servent {\n"
6251 "    char  *s_name;       /* official service name */\n"
6252 "    char **s_aliases;    /* alias list */\n"
6253 "    int    s_port;       /* port number */\n"
6254 "    char  *s_proto;      /* protocol to use */\n"
6255 "}\n"
6256 msgstr ""
6257
6258 #. type: Plain text
6259 #: build/C/man3/getservent.3:104
6260 msgid "The members of the I<servent> structure are:"
6261 msgstr ""
6262
6263 #. type: TP
6264 #: build/C/man3/getservent.3:104
6265 #, no-wrap
6266 msgid "I<s_name>"
6267 msgstr ""
6268
6269 #. type: Plain text
6270 #: build/C/man3/getservent.3:107
6271 msgid "The official name of the service."
6272 msgstr ""
6273
6274 #. type: TP
6275 #: build/C/man3/getservent.3:107
6276 #, no-wrap
6277 msgid "I<s_aliases>"
6278 msgstr ""
6279
6280 #. type: Plain text
6281 #: build/C/man3/getservent.3:110
6282 msgid "A NULL-terminated list of alternative names for the service."
6283 msgstr ""
6284
6285 #. type: TP
6286 #: build/C/man3/getservent.3:110
6287 #, no-wrap
6288 msgid "I<s_port>"
6289 msgstr ""
6290
6291 #. type: Plain text
6292 #: build/C/man3/getservent.3:113
6293 msgid "The port number for the service given in network byte order."
6294 msgstr ""
6295
6296 #. type: TP
6297 #: build/C/man3/getservent.3:113
6298 #, no-wrap
6299 msgid "I<s_proto>"
6300 msgstr ""
6301
6302 #. type: Plain text
6303 #: build/C/man3/getservent.3:116
6304 msgid "The name of the protocol to use with this service."
6305 msgstr ""
6306
6307 #. type: Plain text
6308 #: build/C/man3/getservent.3:125
6309 msgid ""
6310 "The B<getservent>(), B<getservbyname>()  and B<getservbyport>()  functions "
6311 "return a pointer to a statically allocated I<servent> structure, or a NULL "
6312 "pointer if an error occurs or the end of the file is reached."
6313 msgstr ""
6314
6315 #. type: TP
6316 #: build/C/man3/getservent.3:126 build/C/man5/services.5:185
6317 #, no-wrap
6318 msgid "I</etc/services>"
6319 msgstr ""
6320
6321 #. type: Plain text
6322 #: build/C/man3/getservent.3:129
6323 msgid "services database file"
6324 msgstr ""
6325
6326 #. type: Plain text
6327 #: build/C/man3/getservent.3:136
6328 msgid "B<getnetent>(3), B<getprotoent>(3), B<getservent_r>(3), B<services>(5)"
6329 msgstr ""
6330
6331 #. type: TH
6332 #: build/C/man3/getservent_r.3:24
6333 #, no-wrap
6334 msgid "GETSERVENT_R"
6335 msgstr ""
6336
6337 #. type: Plain text
6338 #: build/C/man3/getservent_r.3:28
6339 msgid ""
6340 "getservent_r, getservbyname_r, getservbyport_r - get service entry "
6341 "(reentrant)"
6342 msgstr ""
6343
6344 #. type: Plain text
6345 #: build/C/man3/getservent_r.3:34
6346 #, no-wrap
6347 msgid ""
6348 "B<int getservent_r(struct servent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6349 "B<                size_t >I<buflen>B<, struct servent **>I<result>B<);>\n"
6350 msgstr ""
6351
6352 #. type: Plain text
6353 #: build/C/man3/getservent_r.3:38
6354 #, no-wrap
6355 msgid ""
6356 "B<int getservbyname_r(const char *>I<name>B<, const char *>I<proto>B<,>\n"
6357 "B<                struct servent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6358 "B<                size_t >I<buflen>B<, struct servent **>I<result>B<);>\n"
6359 msgstr ""
6360
6361 #. type: Plain text
6362 #: build/C/man3/getservent_r.3:42
6363 #, no-wrap
6364 msgid ""
6365 "B<int getservbyport_r(int >I<port>B<, const char *>I<proto>B<,>\n"
6366 "B<                struct servent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6367 "B<                size_t >I<buflen>B<, struct servent **>I<result>B<);>\n"
6368 msgstr ""
6369
6370 #. type: Plain text
6371 #: build/C/man3/getservent_r.3:53
6372 msgid "B<getservent_r>(), B<getservbyname_r>(), B<getservbyport_r>():"
6373 msgstr ""
6374
6375 #. type: Plain text
6376 #: build/C/man3/getservent_r.3:74
6377 msgid ""
6378 "The B<getservent_r>(), B<getservbyname_r>(), and B<getservbyport_r>()  "
6379 "functions are the reentrant equivalents of, respectively, B<getservent>(3), "
6380 "B<getservbyname>(3), and B<getservbyport>(3).  They differ in the way that "
6381 "the I<servent> structure is returned, and in the function calling signature "
6382 "and return value.  This manual page describes just the differences from the "
6383 "nonreentrant functions."
6384 msgstr ""
6385
6386 #. type: Plain text
6387 #: build/C/man3/getservent_r.3:80
6388 msgid ""
6389 "Instead of returning a pointer to a statically allocated I<servent> "
6390 "structure as the function result, these functions copy the structure into "
6391 "the location pointed to by I<result_buf>."
6392 msgstr ""
6393
6394 #.  I can find no information on the required/recommended buffer size;
6395 #.  the nonreentrant functions use a 1024 byte buffer -- mtk.
6396 #. type: Plain text
6397 #: build/C/man3/getservent_r.3:97
6398 msgid ""
6399 "The I<buf> array is used to store the string fields pointed to by the "
6400 "returned I<servent> structure.  (The nonreentrant functions allocate these "
6401 "strings in static storage.)  The size of this array is specified in "
6402 "I<buflen>.  If I<buf> is too small, the call fails with the error B<ERANGE>, "
6403 "and the caller must try again with a larger buffer.  (A buffer of length "
6404 "1024 bytes should be sufficient for most applications.)"
6405 msgstr ""
6406
6407 #. type: Plain text
6408 #: build/C/man3/getservent_r.3:105
6409 msgid ""
6410 "If the function call successfully obtains a service record, then I<*result> "
6411 "is set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
6412 msgstr ""
6413
6414 #. type: Plain text
6415 #: build/C/man3/getservent_r.3:108
6416 msgid ""
6417 "On success, these functions return 0.  On error, they return one of the "
6418 "positive error numbers listed in errors."
6419 msgstr ""
6420
6421 #. type: Plain text
6422 #: build/C/man3/getservent_r.3:116
6423 msgid ""
6424 "On error, record not found (B<getservbyname_r>(), B<getservbyport_r>()), or "
6425 "end of input (B<getservent_r>())  I<result> is set to NULL."
6426 msgstr ""
6427
6428 #. type: Plain text
6429 #: build/C/man3/getservent_r.3:121
6430 msgid "(B<getservent_r>())  No more records in database."
6431 msgstr ""
6432
6433 #. type: Plain text
6434 #: build/C/man3/getservent_r.3:146
6435 msgid ""
6436 "The program below uses B<getservbyport_r>()  to retrieve the service record "
6437 "for the port and protocol named in its first command-line argument.  If a "
6438 "third (integer) command-line argument is supplied, it is used as the initial "
6439 "value for I<buflen>; if B<getservbyport_r>()  fails with the error "
6440 "B<ERANGE>, the program retries with larger buffer sizes.  The following "
6441 "shell session shows a couple of sample runs:"
6442 msgstr ""
6443
6444 #. type: Plain text
6445 #: build/C/man3/getservent_r.3:156
6446 #, no-wrap
6447 msgid ""
6448 "$B< ./a.out 7 tcp 1>\n"
6449 "ERANGE! Retrying with larger buffer\n"
6450 "getservbyport_r() returned: 0 (success)  (buflen=87)\n"
6451 "s_name=echo; s_proto=tcp; s_port=7; aliases=\n"
6452 "$B< ./a.out 77777 tcp>\n"
6453 "getservbyport_r() returned: 0 (success)  (buflen=1024)\n"
6454 "Call failed/record not found\n"
6455 msgstr ""
6456
6457 #. type: Plain text
6458 #: build/C/man3/getservent_r.3:180
6459 #, no-wrap
6460 msgid ""
6461 "int\n"
6462 "main(int argc, char *argv[])\n"
6463 "{\n"
6464 "    int buflen, erange_cnt, port, s;\n"
6465 "    struct servent result_buf;\n"
6466 "    struct servent *result;\n"
6467 "    char buf[MAX_BUF];\n"
6468 "    char *protop;\n"
6469 "    char **p;\n"
6470 msgstr ""
6471
6472 #. type: Plain text
6473 #: build/C/man3/getservent_r.3:185
6474 #, no-wrap
6475 msgid ""
6476 "    if (argc E<lt> 3) {\n"
6477 "        printf(\"Usage: %s port-num proto-name [buflen]\\en\", argv[0]);\n"
6478 "        exit(EXIT_FAILURE);\n"
6479 "    }\n"
6480 msgstr ""
6481
6482 #. type: Plain text
6483 #: build/C/man3/getservent_r.3:189
6484 #, no-wrap
6485 msgid ""
6486 "    port = htons(atoi(argv[1]));\n"
6487 "    protop = (strcmp(argv[2], \"null\") == 0 ||\n"
6488 "\t      strcmp(argv[2], \"NULL\") == 0) ?  NULL : argv[2];\n"
6489 msgstr ""
6490
6491 #. type: Plain text
6492 #: build/C/man3/getservent_r.3:193
6493 #, no-wrap
6494 msgid ""
6495 "    buflen = 1024;\n"
6496 "    if (argc E<gt> 3)\n"
6497 "        buflen = atoi(argv[3]);\n"
6498 msgstr ""
6499
6500 #. type: Plain text
6501 #: build/C/man3/getservent_r.3:207
6502 #, no-wrap
6503 msgid ""
6504 "    erange_cnt = 0;\n"
6505 "    do {\n"
6506 "        s = getservbyport_r(port, protop, &result_buf,\n"
6507 "                     buf, buflen, &result);\n"
6508 "        if (s == ERANGE) {\n"
6509 "            if (erange_cnt == 0)\n"
6510 "                printf(\"ERANGE! Retrying with larger buffer\\en\");\n"
6511 "            erange_cnt++;\n"
6512 msgstr ""
6513
6514 #. type: Plain text
6515 #: build/C/man3/getservent_r.3:223
6516 #, no-wrap
6517 msgid ""
6518 "    printf(\"getservbyport_r() returned: %s  (buflen=%d)\\en\",\n"
6519 "            (s == 0) ? \"0 (success)\" : (s == ENOENT) ? \"ENOENT\" :\n"
6520 "            strerror(s), buflen);\n"
6521 msgstr ""
6522
6523 #. type: Plain text
6524 #: build/C/man3/getservent_r.3:235
6525 #, no-wrap
6526 msgid ""
6527 "    printf(\"s_name=%s; s_proto=%s; s_port=%d; aliases=\",\n"
6528 "                result_buf.s_name, result_buf.s_proto,\n"
6529 "                ntohs(result_buf.s_port));\n"
6530 "    for (p = result_buf.s_aliases; *p != NULL; p++)\n"
6531 "        printf(\"%s \", *p);\n"
6532 "    printf(\"\\en\");\n"
6533 msgstr ""
6534
6535 #. type: Plain text
6536 #: build/C/man3/getservent_r.3:242
6537 msgid "B<getservent>(3), B<services>(5)"
6538 msgstr ""
6539
6540 #. type: TH
6541 #: build/C/man5/host.conf.5:26
6542 #, no-wrap
6543 msgid "HOST.CONF"
6544 msgstr ""
6545
6546 #. type: TH
6547 #: build/C/man5/host.conf.5:26
6548 #, no-wrap
6549 msgid "2003-08-23"
6550 msgstr ""
6551
6552 #. type: TH
6553 #: build/C/man5/host.conf.5:26 build/C/man5/networks.5:24
6554 #, no-wrap
6555 msgid "Linux System Administration"
6556 msgstr ""
6557
6558 #. type: Plain text
6559 #: build/C/man5/host.conf.5:29
6560 msgid "host.conf - resolver configuration file"
6561 msgstr ""
6562
6563 #. type: Plain text
6564 #: build/C/man5/host.conf.5:38
6565 msgid ""
6566 "The file I</etc/host.conf> contains configuration information specific to "
6567 "the resolver library.  It should contain one configuration keyword per line, "
6568 "followed by appropriate configuration information.  The keywords recognized "
6569 "are I<order>, I<trim>, I<multi>, I<nospoof>, I<spoof>, and I<reorder>.  "
6570 "These keywords are described below."
6571 msgstr ""
6572
6573 #. type: TP
6574 #: build/C/man5/host.conf.5:38
6575 #, no-wrap
6576 msgid "I<order>"
6577 msgstr ""
6578
6579 #. type: Plain text
6580 #: build/C/man5/host.conf.5:44
6581 msgid ""
6582 "This keyword specifies how host lookups are to be performed.  It should be "
6583 "followed by one or more lookup methods, separated by commas.  Valid methods "
6584 "are I<bind>, I<hosts>, and I<nis>."
6585 msgstr ""
6586
6587 #. type: TP
6588 #: build/C/man5/host.conf.5:44
6589 #, no-wrap
6590 msgid "I<trim>"
6591 msgstr ""
6592
6593 #. type: Plain text
6594 #: build/C/man5/host.conf.5:61
6595 msgid ""
6596 "This keyword may be listed more than once.  Each time it should be followed "
6597 "by a list of domains, separated by colons (\\(aq:\\(aq), semicolons "
6598 "(\\(aq;\\(aq) or commas (\\(aq,\\(aq), with the leading dot.  When set, the "
6599 "resolv+ library will automatically trim the given domain name from the end "
6600 "of any hostname resolved via DNS.  This is intended for use with local hosts "
6601 "and domains.  (Related note: trim will not affect hostnames gathered via NIS "
6602 "or the hosts file.  Care should be taken to ensure that the first hostname "
6603 "for each entry in the hosts file is fully qualified or unqualified, as "
6604 "appropriate for the local installation.)"
6605 msgstr ""
6606
6607 #. type: TP
6608 #: build/C/man5/host.conf.5:61
6609 #, no-wrap
6610 msgid "I<multi>"
6611 msgstr ""
6612
6613 #. type: Plain text
6614 #: build/C/man5/host.conf.5:76
6615 msgid ""
6616 "Valid values are I<on> and I<off>.  If set to I<on>, the resolv+ library "
6617 "will return all valid addresses for a host that appears in the I</etc/hosts> "
6618 "file, instead of only the first.  This is I<off> by default, as it may cause "
6619 "a substantial performance loss at sites with large hosts files."
6620 msgstr ""
6621
6622 #. type: TP
6623 #: build/C/man5/host.conf.5:76
6624 #, no-wrap
6625 msgid "I<nospoof>"
6626 msgstr ""
6627
6628 #. type: Plain text
6629 #: build/C/man5/host.conf.5:91
6630 msgid ""
6631 "Valid values are I<on> and I<off>.  If set to I<on>, the resolv+ library "
6632 "will attempt to prevent hostname spoofing to enhance the security of "
6633 "B<rlogin> and B<rsh>.  It works as follows: after performing a host address "
6634 "lookup, resolv+ will perform a hostname lookup for that address.  If the two "
6635 "hostnames do not match, the query will fail.  The default value is I<off>."
6636 msgstr ""
6637
6638 #. type: TP
6639 #: build/C/man5/host.conf.5:91
6640 #, no-wrap
6641 msgid "I<spoofalert>"
6642 msgstr ""
6643
6644 #. type: Plain text
6645 #: build/C/man5/host.conf.5:103
6646 msgid ""
6647 "Valid values are I<on> and I<off>.  If this option is set to I<on> and the "
6648 "I<nospoof> option is also set, resolv+ will log a warning of the error via "
6649 "the syslog facility.  The default value is I<off>."
6650 msgstr ""
6651
6652 #. type: TP
6653 #: build/C/man5/host.conf.5:103
6654 #, no-wrap
6655 msgid "I<spoof>"
6656 msgstr ""
6657
6658 #. type: Plain text
6659 #: build/C/man5/host.conf.5:122
6660 msgid ""
6661 "Valid values are I<off>, I<nowarn> and I<warn>.  If this option is set to "
6662 "I<off>, spoofed addresses are permitted and no warnings will be emitted via "
6663 "the syslog facility.  If this option is set to I<warn>, resolv+ will attempt "
6664 "to prevent hostname spoofing to enhance the security and log a warning of "
6665 "the error via the syslog facility.  If this option is set to I<nowarn>, the "
6666 "resolv+ library will attempt to prevent hostname spoofing to enhance the "
6667 "security but not emit warnings via the syslog facility.  Setting this option "
6668 "to anything else is equal to setting it to I<nowarn>."
6669 msgstr ""
6670
6671 #. type: TP
6672 #: build/C/man5/host.conf.5:122
6673 #, no-wrap
6674 msgid "I<reorder>"
6675 msgstr ""
6676
6677 #. type: Plain text
6678 #: build/C/man5/host.conf.5:135
6679 msgid ""
6680 "Valid values are I<on> and I<off>.  If set to I<on>, resolv+ will attempt to "
6681 "reorder host addresses so that local addresses (i.e., on the same subnet) "
6682 "are listed first when a B<gethostbyname>(3)  is performed.  Reordering is "
6683 "done for all lookup methods.  The default value is I<off>."
6684 msgstr ""
6685
6686 #. type: SH
6687 #: build/C/man5/host.conf.5:135
6688 #, no-wrap
6689 msgid "ENVIRONMENT"
6690 msgstr ""
6691
6692 #. type: Plain text
6693 #: build/C/man5/host.conf.5:139
6694 msgid ""
6695 "There are six environment variables that can be used to allow users to "
6696 "override the behavior which is configured in I</etc/host.conf>."
6697 msgstr ""
6698
6699 #. type: TP
6700 #: build/C/man5/host.conf.5:139
6701 #, no-wrap
6702 msgid "B<RESOLV_HOST_CONF>"
6703 msgstr ""
6704
6705 #. type: Plain text
6706 #: build/C/man5/host.conf.5:143
6707 msgid ""
6708 "If set this variable points to a file that should be read instead of "
6709 "I</etc/host.conf>."
6710 msgstr ""
6711
6712 #. type: TP
6713 #: build/C/man5/host.conf.5:143
6714 #, no-wrap
6715 msgid "B<RESOLV_SERV_ORDER>"
6716 msgstr ""
6717
6718 #. type: Plain text
6719 #: build/C/man5/host.conf.5:148
6720 msgid "Overrides the I<order> command."
6721 msgstr ""
6722
6723 #. type: TP
6724 #: build/C/man5/host.conf.5:148
6725 #, no-wrap
6726 msgid "B<RESOLV_SPOOF_CHECK>"
6727 msgstr ""
6728
6729 #. type: Plain text
6730 #: build/C/man5/host.conf.5:157
6731 msgid ""
6732 "Overrides the I<nospoof>, I<spoofalert> and I<spoof> commands in the same "
6733 "way as the I<spoof> command is parsed.  Valid values are I<off>, I<nowarn> "
6734 "and I<warn>."
6735 msgstr ""
6736
6737 #. type: TP
6738 #: build/C/man5/host.conf.5:157
6739 #, no-wrap
6740 msgid "B<RESOLV_MULTI>"
6741 msgstr ""
6742
6743 #. type: Plain text
6744 #: build/C/man5/host.conf.5:162
6745 msgid "Overrides the I<multi> command."
6746 msgstr ""
6747
6748 #. type: TP
6749 #: build/C/man5/host.conf.5:162
6750 #, no-wrap
6751 msgid "B<RESOLV_REORDER>"
6752 msgstr ""
6753
6754 #. type: Plain text
6755 #: build/C/man5/host.conf.5:167
6756 msgid "Overrides the I<reorder> command."
6757 msgstr ""
6758
6759 #. type: TP
6760 #: build/C/man5/host.conf.5:167
6761 #, no-wrap
6762 msgid "B<RESOLV_ADD_TRIM_DOMAINS>"
6763 msgstr ""
6764
6765 #. type: Plain text
6766 #: build/C/man5/host.conf.5:172
6767 msgid ""
6768 "A list of domains, separated by colons (\\(aq:\\(aq), semicolons "
6769 "(\\(aq;\\(aq) or commas (\\(aq,\\(aq), with the leading dot, which will be "
6770 "added to the list of domains that should be trimmed."
6771 msgstr ""
6772
6773 #. type: TP
6774 #: build/C/man5/host.conf.5:172
6775 #, no-wrap
6776 msgid "B<RESOLV_OVERRIDE_TRIM_DOMAINS>"
6777 msgstr ""
6778
6779 #. type: Plain text
6780 #: build/C/man5/host.conf.5:180
6781 msgid ""
6782 "A list of domains, separated by colons (\\(aq:\\(aq), semicolons "
6783 "(\\(aq;\\(aq) or commas (\\(aq,\\(aq), with the leading dot, which will "
6784 "replace the list of domains that should be trimmed.  Overrides the I<trim> "
6785 "command."
6786 msgstr ""
6787
6788 #. type: Plain text
6789 #: build/C/man5/host.conf.5:184 build/C/man5/host.conf.5:187
6790 msgid "Resolver configuration file"
6791 msgstr ""
6792
6793 #. type: TP
6794 #: build/C/man5/host.conf.5:184
6795 #, no-wrap
6796 msgid "I</etc/resolv.conf>"
6797 msgstr ""
6798
6799 #. type: Plain text
6800 #: build/C/man5/host.conf.5:190
6801 msgid "Local hosts database"
6802 msgstr ""
6803
6804 #. type: Plain text
6805 #: build/C/man5/host.conf.5:199
6806 msgid ""
6807 "The following differences exist compared to the original implementation.  A "
6808 "new command I<spoof> and a new environment variable B<RESOLV_SPOOF_CHECK> "
6809 "can take arguments like I<off>, I<nowarn> and I<warn>.  Line comments can "
6810 "appear anywhere and not only at the beginning of a line."
6811 msgstr ""
6812
6813 #. type: Plain text
6814 #: build/C/man5/host.conf.5:204
6815 msgid "B<gethostbyname>(3), B<hostname>(7), B<named>(8), B<resolv+>(8)"
6816 msgstr ""
6817
6818 #. type: TH
6819 #: build/C/man7/hostname.7:37
6820 #, no-wrap
6821 msgid "HOSTNAME"
6822 msgstr ""
6823
6824 #. type: TH
6825 #: build/C/man7/hostname.7:37
6826 #, no-wrap
6827 msgid "2010-11-07"
6828 msgstr ""
6829
6830 #. type: Plain text
6831 #: build/C/man7/hostname.7:40
6832 msgid "hostname - hostname resolution description"
6833 msgstr ""
6834
6835 #. type: Plain text
6836 #: build/C/man7/hostname.7:44
6837 msgid ""
6838 "Hostnames are domains, where a domain is a hierarchical, dot-separated list "
6839 "of subdomains; for example, the machine monet, in the Berkeley subdomain of "
6840 "the EDU domain would be represented as \"monet.Berkeley.EDU\"."
6841 msgstr ""
6842
6843 #. type: Plain text
6844 #: build/C/man7/hostname.7:53
6845 msgid ""
6846 "Hostnames are often used with network client and server programs, which must "
6847 "generally translate the name to an address for use.  (This task is generally "
6848 "performed by either B<getaddrinfo>(3)  or the obsolete B<gethostbyname>(3).)  "
6849 "Hostnames are resolved by the Internet name resolver in the following "
6850 "fashion."
6851 msgstr ""
6852
6853 #. type: Plain text
6854 #: build/C/man7/hostname.7:66
6855 msgid ""
6856 "If the name consists of a single component, that is, contains no dot, and if "
6857 "the environment variable B<HOSTALIASES> is set to the name of a file, that "
6858 "file is searched for any string matching the input hostname.  The file "
6859 "should consist of lines made up of two white-space separated strings, the "
6860 "first of which is the hostname alias, and the second of which is the "
6861 "complete hostname to be substituted for that alias.  If a case-insensitive "
6862 "match is found between the hostname to be resolved and the first field of a "
6863 "line in the file, the substituted name is looked up with no further "
6864 "processing."
6865 msgstr ""
6866
6867 #. type: Plain text
6868 #: build/C/man7/hostname.7:70
6869 msgid ""
6870 "If the input name ends with a trailing dot, the trailing dot is removed, and "
6871 "the remaining name is looked up with no further processing."
6872 msgstr ""
6873
6874 #. type: Plain text
6875 #: build/C/man7/hostname.7:83
6876 msgid ""
6877 "If the input name does not end with a trailing dot, it is looked up by "
6878 "searching through a list of domains until a match is found.  The default "
6879 "search list includes first the local domain, then its parent domains with at "
6880 "least 2 name components (longest first).  For example, in the domain "
6881 "CS.Berkeley.EDU, the name lithium.CChem will be checked first as "
6882 "lithium.CChem.CS.Berkeley.EDU and then as lithium.CChem.Berkeley.EDU.  "
6883 "Lithium.CChem.EDU will not be tried, as there is only one component "
6884 "remaining from the local domain.  The search path can be changed from the "
6885 "default by a system-wide configuration file (see B<resolver>(5))."
6886 msgstr ""
6887
6888 #.  .SH HISTORY
6889 #.  Hostname appeared in
6890 #.  4.2BSD.
6891 #. type: Plain text
6892 #: build/C/man7/hostname.7:91
6893 msgid "B<gethostbyname>(3), B<resolver>(5), B<mailaddr>(7), B<named>(8)"
6894 msgstr ""
6895
6896 #. type: TH
6897 #: build/C/man5/hosts.5:27
6898 #, no-wrap
6899 msgid "HOSTS"
6900 msgstr ""
6901
6902 #. type: TH
6903 #: build/C/man5/hosts.5:27
6904 #, no-wrap
6905 msgid "2002-06-16"
6906 msgstr ""
6907
6908 #. type: Plain text
6909 #: build/C/man5/hosts.5:30
6910 msgid "hosts - static table lookup for hostnames"
6911 msgstr ""
6912
6913 #. type: Plain text
6914 #: build/C/man5/hosts.5:32
6915 msgid "B</etc/hosts>"
6916 msgstr ""
6917
6918 #. type: Plain text
6919 #: build/C/man5/hosts.5:40
6920 msgid ""
6921 "This manual page describes the format of the I</etc/hosts> file.  This file "
6922 "is a simple text file that associates IP addresses with hostnames, one line "
6923 "per IP address.  For each host a single line should be present with the "
6924 "following information:"
6925 msgstr ""
6926
6927 #. type: Plain text
6928 #: build/C/man5/hosts.5:43
6929 msgid "IP_address canonical_hostname [aliases...]"
6930 msgstr ""
6931
6932 #. type: Plain text
6933 #: build/C/man5/hosts.5:56
6934 msgid ""
6935 "Fields of the entry are separated by any number of blanks and/or tab "
6936 "characters.  Text from a \"#\" character until the end of the line is a "
6937 "comment, and is ignored.  Host names may contain only alphanumeric "
6938 "characters, minus signs (\"-\"), and periods (\".\").  They must begin with "
6939 "an alphabetic character and end with an alphanumeric character.  Optional "
6940 "aliases provide for name changes, alternate spellings, shorter hostnames, or "
6941 "generic hostnames (for example, I<localhost>)."
6942 msgstr ""
6943
6944 #. type: Plain text
6945 #: build/C/man5/hosts.5:64
6946 msgid ""
6947 "The Berkeley Internet Name Domain (BIND) Server implements the Internet name "
6948 "server for UNIX systems.  It augments or replaces the I</etc/hosts> file or "
6949 "hostname lookup, and frees a host from relying on I</etc/hosts> being up to "
6950 "date and complete."
6951 msgstr ""
6952
6953 #. type: Plain text
6954 #: build/C/man5/hosts.5:67
6955 msgid ""
6956 "In modern systems, even though the host table has been superseded by DNS, it "
6957 "is still widely used for:"
6958 msgstr ""
6959
6960 #. type: TP
6961 #: build/C/man5/hosts.5:67
6962 #, no-wrap
6963 msgid "B<bootstrapping>"
6964 msgstr ""
6965
6966 #. type: Plain text
6967 #: build/C/man5/hosts.5:73
6968 msgid ""
6969 "Most systems have a small host table containing the name and address "
6970 "information for important hosts on the local network.  This is useful when "
6971 "DNS is not running, for example during system bootup."
6972 msgstr ""
6973
6974 #. type: TP
6975 #: build/C/man5/hosts.5:73
6976 #, no-wrap
6977 msgid "B<NIS>"
6978 msgstr ""
6979
6980 #. type: Plain text
6981 #: build/C/man5/hosts.5:79
6982 msgid ""
6983 "Sites that use NIS use the host table as input to the NIS host database.  "
6984 "Even though NIS can be used with DNS, most NIS sites still use the host "
6985 "table with an entry for all local hosts as a backup."
6986 msgstr ""
6987
6988 #. type: TP
6989 #: build/C/man5/hosts.5:79
6990 #, no-wrap
6991 msgid "B<isolated nodes>"
6992 msgstr ""
6993
6994 #. type: Plain text
6995 #: build/C/man5/hosts.5:86
6996 msgid ""
6997 "Very small sites that are isolated from the network use the host table "
6998 "instead of DNS.  If the local information rarely changes, and the network is "
6999 "not connected to the Internet, DNS offers little advantage."
7000 msgstr ""
7001
7002 #. type: Plain text
7003 #: build/C/man5/hosts.5:91
7004 msgid ""
7005 "Modifications to this file normally take effect immediately, except in cases "
7006 "where the file is cached by applications."
7007 msgstr ""
7008
7009 #. type: SS
7010 #: build/C/man5/hosts.5:91
7011 #, no-wrap
7012 msgid "Historical Notes"
7013 msgstr ""
7014
7015 #. type: Plain text
7016 #: build/C/man5/hosts.5:94
7017 msgid ""
7018 "RFC\\ 952 gave the original format for the host table, though it has since "
7019 "changed."
7020 msgstr ""
7021
7022 #. type: Plain text
7023 #: build/C/man5/hosts.5:107
7024 msgid ""
7025 "Before the advent of DNS, the host table was the only way of resolving "
7026 "hostnames on the fledgling Internet.  Indeed, this file could be created "
7027 "from the official host data base maintained at the Network Information "
7028 "Control Center (NIC), though local changes were often required to bring it "
7029 "up to date regarding unofficial aliases and/or unknown hosts.  The NIC no "
7030 "longer maintains the hosts.txt files, though looking around at the time of "
7031 "writing (circa 2000), there are historical hosts.txt files on the WWW.  I "
7032 "just found three, from 92, 94, and 95."
7033 msgstr ""
7034
7035 #. type: Plain text
7036 #: build/C/man5/hosts.5:114
7037 #, no-wrap
7038 msgid ""
7039 "127.0.0.1       localhost\n"
7040 "192.168.1.10    foo.mydomain.org       foo\n"
7041 "192.168.1.13    bar.mydomain.org       bar\n"
7042 "146.82.138.7    master.debian.org      master\n"
7043 "209.237.226.90  www.opensource.org\n"
7044 msgstr ""
7045
7046 #.  .SH AUTHOR
7047 #.  This manual page was written by Manoj Srivastava <srivasta@debian.org>,
7048 #.  for the Debian GNU/Linux system.
7049 #. type: Plain text
7050 #: build/C/man5/hosts.5:125
7051 msgid ""
7052 "B<hostname>(1), B<resolver>(3), B<resolver>(5), B<hostname>(7), B<named>(8), "
7053 "Internet RFC\\ 952"
7054 msgstr ""
7055
7056 #. type: TH
7057 #: build/C/man5/hosts.equiv.5:3
7058 #, no-wrap
7059 msgid "HOSTS.EQUIV"
7060 msgstr ""
7061
7062 #. type: TH
7063 #: build/C/man5/hosts.equiv.5:3
7064 #, no-wrap
7065 msgid "2003-08-24"
7066 msgstr ""
7067
7068 #. type: Plain text
7069 #: build/C/man5/hosts.equiv.5:7
7070 msgid ""
7071 "/etc/hosts.equiv - list of hosts and users that are granted \"trusted\" B<r> "
7072 "command access to your system"
7073 msgstr ""
7074
7075 #. type: Plain text
7076 #: build/C/man5/hosts.equiv.5:11
7077 msgid ""
7078 "The B<hosts.equiv> file allows or denies hosts and users to use the "
7079 "B<r>-commands (e.g., B<rlogin>, B<rsh> or B<rcp>) without supplying a "
7080 "password."
7081 msgstr ""
7082
7083 #. type: Plain text
7084 #: build/C/man5/hosts.equiv.5:13
7085 msgid "The file uses the following format:"
7086 msgstr ""
7087
7088 #. type: TP
7089 #: build/C/man5/hosts.equiv.5:13
7090 #, no-wrap
7091 msgid "I<[ + | - ]> I<[hostname]> I<[username]>"
7092 msgstr ""
7093
7094 #. type: Plain text
7095 #: build/C/man5/hosts.equiv.5:27
7096 msgid ""
7097 "The I<hostname> is the name of a host which is logically equivalent to the "
7098 "local host.  Users logged into that host are allowed to access like-named "
7099 "user accounts on the local host without supplying a password.  The "
7100 "I<hostname> may be (optionally) preceded by a plus (+) sign.  If the plus "
7101 "sign is used alone it allows any host to access your system.  You can "
7102 "explicitly deny access to a host by preceding the I<hostname> by a minus (-) "
7103 "sign.  Users from that host must always supply a password.  For security "
7104 "reasons you should always use the FQDN of the hostname and not the short "
7105 "hostname."
7106 msgstr ""
7107
7108 #. type: Plain text
7109 #: build/C/man5/hosts.equiv.5:39
7110 msgid ""
7111 "The I<username> entry grants a specific user access to all user accounts "
7112 "(except root) without supplying a password.  That means the user is NOT "
7113 "restricted to like-named accounts.  The I<username> may be (optionally) "
7114 "preceded by a plus (+) sign.  You can also explicitly deny access to a "
7115 "specific user by preceding the I<username> with a minus (-) sign.  This says "
7116 "that the user is not trusted no matter what other entries for that host "
7117 "exist."
7118 msgstr ""
7119
7120 #. type: Plain text
7121 #: build/C/man5/hosts.equiv.5:41
7122 msgid "Netgroups can be specified by preceding the netgroup by an @ sign."
7123 msgstr ""
7124
7125 #. type: Plain text
7126 #: build/C/man5/hosts.equiv.5:47
7127 msgid ""
7128 "Be extremely careful when using the plus (+) sign.  A simple typographical "
7129 "error could result in a standalone plus sign.  A standalone plus sign is a "
7130 "wildcard character that means \"any host\"!"
7131 msgstr ""
7132
7133 #. type: Plain text
7134 #: build/C/man5/hosts.equiv.5:49
7135 msgid "I</etc/hosts.equiv>"
7136 msgstr ""
7137
7138 #. type: Plain text
7139 #: build/C/man5/hosts.equiv.5:54
7140 msgid ""
7141 "Some systems will only honor the contents of this file when it has owner "
7142 "root and no write permission for anybody else.  Some exceptionally paranoid "
7143 "systems even require that there be no other hard links to the file."
7144 msgstr ""
7145
7146 #. type: Plain text
7147 #: build/C/man5/hosts.equiv.5:62
7148 msgid ""
7149 "Modern systems use the Pluggable Authentication Modules library (PAM).  With "
7150 "PAM a standalone plus sign is only considered a wildcard character which "
7151 "means \"any host\" when the word I<promiscuous> is added to the auth "
7152 "component line in your PAM file for the particular service (e.g., "
7153 "B<rlogin>)."
7154 msgstr ""
7155
7156 #. type: Plain text
7157 #: build/C/man5/hosts.equiv.5:66
7158 msgid "B<rhosts>(5), B<rlogind>(8), B<rshd>(8)"
7159 msgstr ""
7160
7161 #. type: TH
7162 #: build/C/man7/icmp.7:7
7163 #, no-wrap
7164 msgid "ICMP"
7165 msgstr ""
7166
7167 #. type: TH
7168 #: build/C/man7/icmp.7:7
7169 #, no-wrap
7170 msgid "2010-02-25"
7171 msgstr ""
7172
7173 #. type: Plain text
7174 #: build/C/man7/icmp.7:10
7175 msgid "icmp, IPPROTO_ICMP - Linux IPv4 ICMP kernel module."
7176 msgstr ""
7177
7178 #. type: Plain text
7179 #: build/C/man7/icmp.7:18
7180 msgid ""
7181 "This kernel protocol module implements the Internet Control Message Protocol "
7182 "defined in RFC\\ 792.  It is used to signal error conditions and for "
7183 "diagnosis.  The user doesn't interact directly with this module; instead it "
7184 "communicates with the other protocols in the kernel and these pass the ICMP "
7185 "errors to the application layers.  The kernel ICMP module also answers ICMP "
7186 "requests."
7187 msgstr ""
7188
7189 #. type: Plain text
7190 #: build/C/man7/icmp.7:30
7191 msgid ""
7192 "A user protocol may receive ICMP packets for all local sockets by opening a "
7193 "raw socket with the protocol B<IPPROTO_ICMP>.  See B<raw>(7)  for more "
7194 "information.  The types of ICMP packets passed to the socket can be filtered "
7195 "using the B<ICMP_FILTER> socket option.  ICMP packets are always processed "
7196 "by the kernel too, even when passed to a user socket."
7197 msgstr ""
7198
7199 #. type: Plain text
7200 #: build/C/man7/icmp.7:36
7201 msgid ""
7202 "Linux limits the rate of ICMP error packets to each destination.  "
7203 "B<ICMP_REDIRECT> and B<ICMP_DEST_UNREACH> are also limited by the "
7204 "destination route of the incoming packets."
7205 msgstr ""
7206
7207 #.  FIXME better description needed
7208 #. type: Plain text
7209 #: build/C/man7/icmp.7:49
7210 msgid ""
7211 "ICMP supports a set of I</proc> interfaces to configure some global IP "
7212 "parameters.  The parameters can be accessed by reading or writing files in "
7213 "the directory I</proc/sys/net/ipv4/>.  Most of these parameters are rate "
7214 "limitations for specific ICMP types.  Linux 2.2 uses a token bucket filter "
7215 "to limit ICMPs.  The value is the timeout in jiffies until the token bucket "
7216 "filter is cleared after a burst.  A jiffy is a system dependent unit, "
7217 "usually 10ms on i386 and about 1ms on alpha and ia64."
7218 msgstr ""
7219
7220 #. type: TP
7221 #: build/C/man7/icmp.7:49
7222 #, no-wrap
7223 msgid "I<icmp_destunreach_rate> (Linux 2.2 to 2.4.9)"
7224 msgstr ""
7225
7226 #.  Precisely: from 2.1.102
7227 #. type: Plain text
7228 #: build/C/man7/icmp.7:58
7229 msgid ""
7230 "Maximum rate to send ICMP Destination Unreachable packets.  This limits the "
7231 "rate at which packets are sent to any individual route or destination.  The "
7232 "limit does not affect sending of B<ICMP_FRAG_NEEDED> packets needed for path "
7233 "MTU discovery."
7234 msgstr ""
7235
7236 #. type: TP
7237 #: build/C/man7/icmp.7:58
7238 #, no-wrap
7239 msgid "I<icmp_echo_ignore_all> (since Linux 2.2)"
7240 msgstr ""
7241
7242 #.  Precisely: 2.1.68
7243 #. type: Plain text
7244 #: build/C/man7/icmp.7:64
7245 msgid "If this value is nonzero, Linux will ignore all B<ICMP_ECHO> requests."
7246 msgstr ""
7247
7248 #. type: TP
7249 #: build/C/man7/icmp.7:64
7250 #, no-wrap
7251 msgid "I<icmp_echo_ignore_broadcasts> (since Linux 2.2)"
7252 msgstr ""
7253
7254 #.  Precisely: from 2.1.68
7255 #. type: Plain text
7256 #: build/C/man7/icmp.7:70
7257 msgid ""
7258 "If this value is nonzero, Linux will ignore all B<ICMP_ECHO> packets sent to "
7259 "broadcast addresses."
7260 msgstr ""
7261
7262 #. type: TP
7263 #: build/C/man7/icmp.7:70
7264 #, no-wrap
7265 msgid "I<icmp_echoreply_rate> (Linux 2.2 to 2.4.9)"
7266 msgstr ""
7267
7268 #.  Precisely: from 2.1.102
7269 #. type: Plain text
7270 #: build/C/man7/icmp.7:78
7271 msgid ""
7272 "Maximum rate for sending B<ICMP_ECHOREPLY> packets in response to "
7273 "B<ICMP_ECHOREQUEST> packets."
7274 msgstr ""
7275
7276 #. type: TP
7277 #: build/C/man7/icmp.7:78
7278 #, no-wrap
7279 msgid ""
7280 "I<icmp_errors_use_inbound_ifaddr> (Boolean; default: disabled; since Linux "
7281 "2.6.12)"
7282 msgstr ""
7283
7284 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7285 #. type: Plain text
7286 #: build/C/man7/icmp.7:83
7287 msgid ""
7288 "If disabled, ICMP error messages are sent with the primary address of the "
7289 "exiting interface."
7290 msgstr ""
7291
7292 #. type: Plain text
7293 #: build/C/man7/icmp.7:89
7294 msgid ""
7295 "If enabled, the message will be sent with the primary address of the "
7296 "interface that received the packet that caused the ICMP error.  This is the "
7297 "behavior that many network administrators will expect from a router.  And it "
7298 "can make debugging complicated network layouts much easier."
7299 msgstr ""
7300
7301 #. type: Plain text
7302 #: build/C/man7/icmp.7:93
7303 msgid ""
7304 "Note that if no primary address exists for the interface selected, then the "
7305 "primary address of the first non-loopback interface that has one will be "
7306 "used regardless of this setting."
7307 msgstr ""
7308
7309 #. type: TP
7310 #: build/C/man7/icmp.7:93
7311 #, no-wrap
7312 msgid ""
7313 "I<icmp_ignore_bogus_error_responses> (Boolean; default: disabled; since "
7314 "Linux 2.2)"
7315 msgstr ""
7316
7317 #.  precisely: since 2.1.32
7318 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7319 #. type: Plain text
7320 #: build/C/man7/icmp.7:101
7321 msgid ""
7322 "Some routers violate RFC1122 by sending bogus responses to broadcast "
7323 "frames.  Such violations are normally logged via a kernel warning.  If this "
7324 "parameter is enabled, the kernel will not give such warnings, which will "
7325 "avoid log file clutter."
7326 msgstr ""
7327
7328 #. type: TP
7329 #: build/C/man7/icmp.7:101
7330 #, no-wrap
7331 msgid "I<icmp_paramprob_rate> (Linux 2.2 to 2.4.9)"
7332 msgstr ""
7333
7334 #.  Precisely: from 2.1.102
7335 #. type: Plain text
7336 #: build/C/man7/icmp.7:108
7337 msgid ""
7338 "Maximum rate for sending B<ICMP_PARAMETERPROB> packets.  These packets are "
7339 "sent when a packet arrives with an invalid IP header."
7340 msgstr ""
7341
7342 #. type: TP
7343 #: build/C/man7/icmp.7:108
7344 #, no-wrap
7345 msgid "I<icmp_ratelimit> (integer; default: 1000; since Linux 2.4.10)"
7346 msgstr ""
7347
7348 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7349 #. type: Plain text
7350 #: build/C/man7/icmp.7:116
7351 msgid ""
7352 "Limit the maximum rates for sending ICMP packets whose type matches "
7353 "I<icmp_ratemask> (see below) to specific targets.  0 to disable any "
7354 "limiting, otherwise the minimum space between responses in milliseconds."
7355 msgstr ""
7356
7357 #. type: TP
7358 #: build/C/man7/icmp.7:116
7359 #, no-wrap
7360 msgid "I<icmp_ratemask> (integer; default: see below; since Linux 2.4.10)"
7361 msgstr ""
7362
7363 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7364 #. type: Plain text
7365 #: build/C/man7/icmp.7:120
7366 msgid "Mask made of ICMP types for which rates are being limited."
7367 msgstr ""
7368
7369 #. type: Plain text
7370 #: build/C/man7/icmp.7:122
7371 msgid "Significant bits: IHGFEDCBA9876543210"
7372 msgstr ""
7373
7374 #. type: Plain text
7375 #: build/C/man7/icmp.7:124
7376 msgid "Default mask: 0000001100000011000 (0x1818)"
7377 msgstr ""
7378
7379 #. type: Plain text
7380 #: build/C/man7/icmp.7:127
7381 msgid "Bit definitions (see the kernel source file I<include/linux/icmp.h>):"
7382 msgstr ""
7383
7384 #. type: Plain text
7385 #: build/C/man7/icmp.7:143
7386 #, no-wrap
7387 msgid ""
7388 "0 Echo Reply\n"
7389 "3 Destination Unreachable *\n"
7390 "4 Source Quench *\n"
7391 "5 Redirect\n"
7392 "8 Echo Request\n"
7393 "B Time Exceeded *\n"
7394 "C Parameter Problem *\n"
7395 "D Timestamp Request\n"
7396 "E Timestamp Reply\n"
7397 "F Info Request\n"
7398 "G Info Reply\n"
7399 "H Address Mask Request\n"
7400 "I Address Mask Reply\n"
7401 msgstr ""
7402
7403 #. type: Plain text
7404 #: build/C/man7/icmp.7:148
7405 msgid ""
7406 "The bits marked with an asterisk are rate limited by default (see the "
7407 "default mask above)."
7408 msgstr ""
7409
7410 #. type: TP
7411 #: build/C/man7/icmp.7:148
7412 #, no-wrap
7413 msgid "I<icmp_timeexceed_rate> (Linux 2.2 to 2.4.9)"
7414 msgstr ""
7415
7416 #. type: Plain text
7417 #: build/C/man7/icmp.7:155
7418 msgid ""
7419 "Maximum rate for sending B<ICMP_TIME_EXCEEDED> packets.  These packets are "
7420 "sent to prevent loops when a packet has crossed too many hops."
7421 msgstr ""
7422
7423 #. type: Plain text
7424 #: build/C/man7/icmp.7:159
7425 msgid "Support for the B<ICMP_ADDRESS> request was removed in 2.2."
7426 msgstr ""
7427
7428 #. type: Plain text
7429 #: build/C/man7/icmp.7:163
7430 msgid "Support for B<ICMP_SOURCE_QUENCH> was removed in Linux 2.2."
7431 msgstr ""
7432
7433 #.  not really true ATM
7434 #.  .PP
7435 #.  Linux ICMP should be compliant to RFC 1122.
7436 #. type: Plain text
7437 #: build/C/man7/icmp.7:171
7438 msgid ""
7439 "As many other implementations don't support B<IPPROTO_ICMP> raw sockets, "
7440 "this feature should not be relied on in portable programs."
7441 msgstr ""
7442
7443 #. type: Plain text
7444 #: build/C/man7/icmp.7:176
7445 msgid ""
7446 "B<ICMP_REDIRECT> packets are not sent when Linux is not acting as a router.  "
7447 "They are also only accepted from the old gateway defined in the routing "
7448 "table and the redirect routes are expired after some time."
7449 msgstr ""
7450
7451 #. type: Plain text
7452 #: build/C/man7/icmp.7:180
7453 msgid ""
7454 "The 64-bit timestamp returned by B<ICMP_TIMESTAMP> is in milliseconds since "
7455 "the Epoch, 1970-01-01 00:00:00 +0000 (UTC)."
7456 msgstr ""
7457
7458 #. type: Plain text
7459 #: build/C/man7/icmp.7:185
7460 msgid ""
7461 "Linux ICMP internally uses a raw socket to send ICMPs.  This raw socket may "
7462 "appear in B<netstat>(8)  output with a zero inode."
7463 msgstr ""
7464
7465 #. type: Plain text
7466 #: build/C/man7/icmp.7:187
7467 msgid "B<ip>(7)"
7468 msgstr ""
7469
7470 #. type: Plain text
7471 #: build/C/man7/icmp.7:189
7472 msgid "RFC\\ 792 for a description of the ICMP protocol."
7473 msgstr ""
7474
7475 #. type: TH
7476 #: build/C/man3/inet.3:42
7477 #, no-wrap
7478 msgid "INET"
7479 msgstr ""
7480
7481 #. type: TH
7482 #: build/C/man3/inet.3:42
7483 #, no-wrap
7484 msgid "2008-06-19"
7485 msgstr ""
7486
7487 #. type: Plain text
7488 #: build/C/man3/inet.3:46
7489 msgid ""
7490 "inet_aton, inet_addr, inet_network, inet_ntoa, inet_makeaddr, inet_lnaof, "
7491 "inet_netof - Internet address manipulation routines"
7492 msgstr ""
7493
7494 #. type: Plain text
7495 #: build/C/man3/inet.3:51
7496 #, no-wrap
7497 msgid ""
7498 "B<#include E<lt>sys/socket.hE<gt>>\n"
7499 "B<#include E<lt>netinet/in.hE<gt>>\n"
7500 "B<#include E<lt>arpa/inet.hE<gt>>\n"
7501 msgstr ""
7502
7503 #. type: Plain text
7504 #: build/C/man3/inet.3:53
7505 #, no-wrap
7506 msgid "B<int inet_aton(const char *>I<cp>B<, struct in_addr *>I<inp>B<);>\n"
7507 msgstr ""
7508
7509 #. type: Plain text
7510 #: build/C/man3/inet.3:55
7511 #, no-wrap
7512 msgid "B<in_addr_t inet_addr(const char *>I<cp>B<);>\n"
7513 msgstr ""
7514
7515 #. type: Plain text
7516 #: build/C/man3/inet.3:57
7517 #, no-wrap
7518 msgid "B<in_addr_t inet_network(const char *>I<cp>B<);>\n"
7519 msgstr ""
7520
7521 #. type: Plain text
7522 #: build/C/man3/inet.3:59
7523 #, no-wrap
7524 msgid "B<char *inet_ntoa(struct in_addr >I<in>B<);>\n"
7525 msgstr ""
7526
7527 #. type: Plain text
7528 #: build/C/man3/inet.3:61
7529 #, no-wrap
7530 msgid "B<struct in_addr inet_makeaddr(int >I<net>B<, int >I<host>B<);>\n"
7531 msgstr ""
7532
7533 #. type: Plain text
7534 #: build/C/man3/inet.3:63
7535 #, no-wrap
7536 msgid "B<in_addr_t inet_lnaof(struct in_addr >I<in>B<);>\n"
7537 msgstr ""
7538
7539 #. type: Plain text
7540 #: build/C/man3/inet.3:65
7541 #, no-wrap
7542 msgid "B<in_addr_t inet_netof(struct in_addr >I<in>B<);>\n"
7543 msgstr ""
7544
7545 #. type: Plain text
7546 #: build/C/man3/inet.3:75
7547 msgid "B<inet_aton>(), B<inet_ntoa>(): _BSD_SOURCE || _SVID_SOURCE"
7548 msgstr ""
7549
7550 #. type: Plain text
7551 #: build/C/man3/inet.3:85
7552 msgid ""
7553 "B<inet_aton>()  converts the Internet host address I<cp> from the IPv4 "
7554 "numbers-and-dots notation into binary form (in network byte order)  and "
7555 "stores it in the structure that I<inp> points to.  B<inet_aton>()  returns "
7556 "nonzero if the address is valid, zero if not.  The address supplied in I<cp> "
7557 "can have one of the following forms:"
7558 msgstr ""
7559
7560 #. type: TP
7561 #: build/C/man3/inet.3:85
7562 #, no-wrap
7563 msgid "I<a.b.c.d>"
7564 msgstr ""
7565
7566 #. type: Plain text
7567 #: build/C/man3/inet.3:89
7568 msgid ""
7569 "Each of the four numeric parts specifies a byte of the address; the bytes "
7570 "are assigned in left-to-right order to produce the binary address."
7571 msgstr ""
7572
7573 #. type: TP
7574 #: build/C/man3/inet.3:89
7575 #, no-wrap
7576 msgid "I<a.b.c>"
7577 msgstr ""
7578
7579 #. type: Plain text
7580 #: build/C/man3/inet.3:102
7581 msgid ""
7582 "Parts I<a> and I<b> specify the first two bytes of the binary address.  Part "
7583 "I<c> is interpreted as a 16-bit value that defines the rightmost two bytes "
7584 "of the binary address.  This notation is suitable for specifying (outmoded) "
7585 "Class B network addresses."
7586 msgstr ""
7587
7588 #. type: TP
7589 #: build/C/man3/inet.3:102
7590 #, no-wrap
7591 msgid "I<a.b>"
7592 msgstr ""
7593
7594 #. type: Plain text
7595 #: build/C/man3/inet.3:113
7596 msgid ""
7597 "Part I<a> specifies the first byte of the binary address.  Part I<b> is "
7598 "interpreted as a 24-bit value that defines the rightmost three bytes of the "
7599 "binary address.  This notation is suitable for specifying (outmoded) Class C "
7600 "network addresses."
7601 msgstr ""
7602
7603 #. type: TP
7604 #: build/C/man3/inet.3:113
7605 #, no-wrap
7606 msgid "I<a>"
7607 msgstr ""
7608
7609 #. type: Plain text
7610 #: build/C/man3/inet.3:119
7611 msgid ""
7612 "The value I<a> is interpreted as a 32-bit value that is stored directly into "
7613 "the binary address without any byte rearrangement."
7614 msgstr ""
7615
7616 #. type: Plain text
7617 #: build/C/man3/inet.3:132
7618 msgid ""
7619 "In all of the above forms, components of the dotted address can be specified "
7620 "in decimal, octal (with a leading I<0>), or hexadecimal, with a leading "
7621 "I<0X>).  Addresses in any of these forms are collectively termed I<IPV4 "
7622 "numbers-and-dots notation>.  The form that uses exactly four decimal numbers "
7623 "is referred to as I<IPv4 dotted-decimal notation> (or sometimes: I<IPv4 "
7624 "dotted-quad notation>)."
7625 msgstr ""
7626
7627 #. type: Plain text
7628 #: build/C/man3/inet.3:149
7629 msgid ""
7630 "The B<inet_addr>()  function converts the Internet host address I<cp> from "
7631 "IPv4 numbers-and-dots notation into binary data in network byte order.  If "
7632 "the input is invalid, B<INADDR_NONE> (usually -1) is returned.  Use of this "
7633 "function is problematic because -1 is a valid address (255.255.255.255).  "
7634 "Avoid its use in favor of B<inet_aton>(), B<inet_pton>(3), or "
7635 "B<getaddrinfo>(3)  which provide a cleaner way to indicate error return."
7636 msgstr ""
7637
7638 #. type: Plain text
7639 #: build/C/man3/inet.3:159
7640 msgid ""
7641 "The B<inet_network>()  function converts I<cp>, a string in IPv4 "
7642 "numbers-and-dots notation, into a number in host byte order suitable for use "
7643 "as an Internet network address.  On success, the converted address is "
7644 "returned.  If the input is invalid, -1 is returned."
7645 msgstr ""
7646
7647 #. type: Plain text
7648 #: build/C/man3/inet.3:167
7649 msgid ""
7650 "The B<inet_ntoa>()  function converts the Internet host address I<in>, given "
7651 "in network byte order, to a string in IPv4 dotted-decimal notation.  The "
7652 "string is returned in a statically allocated buffer, which subsequent calls "
7653 "will overwrite."
7654 msgstr ""
7655
7656 #. type: Plain text
7657 #: build/C/man3/inet.3:173
7658 msgid ""
7659 "The B<inet_lnaof>()  function returns the local network address part of the "
7660 "Internet address I<in>.  The returned value is in host byte order."
7661 msgstr ""
7662
7663 #. type: Plain text
7664 #: build/C/man3/inet.3:179
7665 msgid ""
7666 "The B<inet_netof>()  function returns the network number part of the "
7667 "Internet address I<in>.  The returned value is in host byte order."
7668 msgstr ""
7669
7670 #. type: Plain text
7671 #: build/C/man3/inet.3:190
7672 msgid ""
7673 "The B<inet_makeaddr>()  function is the converse of B<inet_netof>()  and "
7674 "B<inet_lnaof>().  It returns an Internet host address in network byte order, "
7675 "created by combining the network number I<net> with the local address "
7676 "I<host>, both in host byte order."
7677 msgstr ""
7678
7679 #. type: Plain text
7680 #: build/C/man3/inet.3:200
7681 msgid ""
7682 "The structure I<in_addr> as used in B<inet_ntoa>(), B<inet_makeaddr>(), "
7683 "B<inet_lnaof>()  and B<inet_netof>()  is defined in "
7684 "I<E<lt>netinet/in.hE<gt>> as:"
7685 msgstr ""
7686
7687 #. type: Plain text
7688 #: build/C/man3/inet.3:204
7689 #, no-wrap
7690 msgid "typedef uint32_t in_addr_t;\n"
7691 msgstr ""
7692
7693 #. type: Plain text
7694 #: build/C/man3/inet.3:208
7695 #, no-wrap
7696 msgid ""
7697 "struct in_addr {\n"
7698 "    in_addr_t s_addr;\n"
7699 "};\n"
7700 msgstr ""
7701
7702 #. type: Plain text
7703 #: build/C/man3/inet.3:218
7704 msgid ""
7705 "4.3BSD.  B<inet_addr>()  and B<inet_ntoa>()  are specified in POSIX.1-2001.  "
7706 "B<inet_aton>()  is not specified in POSIX.1-2001, but is available on most "
7707 "systems."
7708 msgstr ""
7709
7710 #. type: Plain text
7711 #: build/C/man3/inet.3:222
7712 msgid ""
7713 "On the i386 the host byte order is Least Significant Byte first (little "
7714 "endian), whereas the network byte order, as used on the Internet, is Most "
7715 "Significant Byte first (big endian)."
7716 msgstr ""
7717
7718 #. type: Plain text
7719 #: build/C/man3/inet.3:231
7720 msgid ""
7721 "B<inet_lnaof>(), B<inet_netof>(), and B<inet_makeaddr>()  are legacy "
7722 "functions that assume they are dealing with I<classful network addresses>.  "
7723 "Classful networking divides IPv4 network addresses into host and network "
7724 "components at byte boundaries, as follows:"
7725 msgstr ""
7726
7727 #. type: TP
7728 #: build/C/man3/inet.3:231
7729 #, no-wrap
7730 msgid "Class A"
7731 msgstr ""
7732
7733 #. type: Plain text
7734 #: build/C/man3/inet.3:237
7735 msgid ""
7736 "This address type is indicated by the value 0 in the most significant bit of "
7737 "the (network byte ordered) address.  The network address is contained in the "
7738 "most significant byte, and the host address occupies the remaining three "
7739 "bytes."
7740 msgstr ""
7741
7742 #. type: TP
7743 #: build/C/man3/inet.3:237
7744 #, no-wrap
7745 msgid "Class B"
7746 msgstr ""
7747
7748 #. type: Plain text
7749 #: build/C/man3/inet.3:243
7750 msgid ""
7751 "This address type is indicated by the binary value 10 in the most "
7752 "significant two bits of the address.  The network address is contained in "
7753 "the two most significant bytes, and the host address occupies the remaining "
7754 "two bytes."
7755 msgstr ""
7756
7757 #. type: TP
7758 #: build/C/man3/inet.3:243
7759 #, no-wrap
7760 msgid "Class C"
7761 msgstr ""
7762
7763 #. type: Plain text
7764 #: build/C/man3/inet.3:249
7765 msgid ""
7766 "This address type is indicated by the binary value 110 in the most "
7767 "significant three bits of the address.  The network address is contained in "
7768 "the three most significant bytes, and the host address occupies the "
7769 "remaining byte."
7770 msgstr ""
7771
7772 #. type: Plain text
7773 #: build/C/man3/inet.3:254
7774 msgid ""
7775 "Classful network addresses are now obsolete, having been superseded by "
7776 "Classless Inter-Domain Routing (CIDR), which divides addresses into network "
7777 "and host components at arbitrary bit (rather than byte) boundaries."
7778 msgstr ""
7779
7780 #. type: Plain text
7781 #: build/C/man3/inet.3:261
7782 msgid ""
7783 "An example of the use of B<inet_aton>()  and B<inet_ntoa>()  is shown "
7784 "below.  Here are some example runs:"
7785 msgstr ""
7786
7787 #. type: Plain text
7788 #: build/C/man3/inet.3:268
7789 #, no-wrap
7790 msgid ""
7791 "$B< ./a.out 226.000.000.037>      # Last byte is in octal\n"
7792 "226.0.0.31\n"
7793 "$B< ./a.out 0x7f.1         >      # First byte is in hex\n"
7794 "127.0.0.1\n"
7795 msgstr ""
7796
7797 #. type: Plain text
7798 #: build/C/man3/inet.3:277
7799 #, no-wrap
7800 msgid ""
7801 "#define _BSD_SOURCE\n"
7802 "#include E<lt>arpa/inet.hE<gt>\n"
7803 "#include E<lt>stdio.hE<gt>\n"
7804 "#include E<lt>stdlib.hE<gt>\n"
7805 msgstr ""
7806
7807 #. type: Plain text
7808 #: build/C/man3/inet.3:282
7809 #, no-wrap
7810 msgid ""
7811 "int\n"
7812 "main(int argc, char *argv[])\n"
7813 "{\n"
7814 "    struct in_addr addr;\n"
7815 msgstr ""
7816
7817 #. type: Plain text
7818 #: build/C/man3/inet.3:287
7819 #, no-wrap
7820 msgid ""
7821 "    if (argc != 2) {\n"
7822 "        fprintf(stderr, \"%s E<lt>dotted-addressE<gt>\\en\", argv[0]);\n"
7823 "        exit(EXIT_FAILURE);\n"
7824 "    }\n"
7825 msgstr ""
7826
7827 #. type: Plain text
7828 #: build/C/man3/inet.3:292
7829 #, no-wrap
7830 msgid ""
7831 "    if (inet_aton(argv[1], &addr) == 0) {\n"
7832 "        perror(\"inet_aton\");\n"
7833 "        exit(EXIT_FAILURE);\n"
7834 "    }\n"
7835 msgstr ""
7836
7837 #. type: Plain text
7838 #: build/C/man3/inet.3:296
7839 #, no-wrap
7840 msgid ""
7841 "    printf(\"%s\\en\", inet_ntoa(addr));\n"
7842 "    exit(EXIT_SUCCESS);\n"
7843 "}\n"
7844 msgstr ""
7845
7846 #. type: Plain text
7847 #: build/C/man3/inet.3:307
7848 msgid ""
7849 "B<byteorder>(3), B<getaddrinfo>(3), B<gethostbyname>(3), B<getnameinfo>(3), "
7850 "B<getnetent>(3), B<inet_ntop>(3), B<inet_pton>(3), B<hosts>(5), "
7851 "B<networks>(5)"
7852 msgstr ""
7853
7854 #. type: TH
7855 #: build/C/man3/inet_ntop.3:24
7856 #, no-wrap
7857 msgid "INET_NTOP"
7858 msgstr ""
7859
7860 #. type: TH
7861 #: build/C/man3/inet_ntop.3:24
7862 #, no-wrap
7863 msgid "2008-11-11"
7864 msgstr ""
7865
7866 #. type: Plain text
7867 #: build/C/man3/inet_ntop.3:27
7868 msgid "inet_ntop - convert IPv4 and IPv6 addresses from binary to text form"
7869 msgstr ""
7870
7871 #. type: Plain text
7872 #: build/C/man3/inet_ntop.3:33
7873 #, no-wrap
7874 msgid ""
7875 "B<const char *inet_ntop(int >I<af>B<, const void *>I<src>B<,>\n"
7876 "B<                      char *>I<dst>B<, socklen_t >I<size>B<);>\n"
7877 msgstr ""
7878
7879 #. type: Plain text
7880 #: build/C/man3/inet_ntop.3:46
7881 msgid ""
7882 "This function converts the network address structure I<src> in the I<af> "
7883 "address family into a character string.  The resulting string is copied to "
7884 "the buffer pointed to by I<dst>, which must be a non-NULL pointer.  The "
7885 "caller specifies the number of bytes available in this buffer in the "
7886 "argument I<size>."
7887 msgstr ""
7888
7889 #. type: Plain text
7890 #: build/C/man3/inet_ntop.3:55
7891 msgid ""
7892 "B<inet_ntop>()  extends the B<inet_ntoa>(3)  function to support multiple "
7893 "address families, B<inet_ntoa>(3)  is now considered to be deprecated in "
7894 "favor of B<inet_ntop>().  The following address families are currently "
7895 "supported:"
7896 msgstr ""
7897
7898 #. type: Plain text
7899 #: build/C/man3/inet_ntop.3:68
7900 msgid ""
7901 "I<src> points to a I<struct in_addr> (in network byte order)  which is "
7902 "converted to an IPv4 network address in the dotted-decimal format, "
7903 "\"I<ddd.ddd.ddd.ddd>\".  The buffer I<dst> must be at least "
7904 "B<INET_ADDRSTRLEN> bytes long."
7905 msgstr ""
7906
7907 #. type: Plain text
7908 #: build/C/man3/inet_ntop.3:81
7909 msgid ""
7910 "I<src> points to a I<struct in6_addr> (in network byte order)  which is "
7911 "converted to a representation of this address in the most appropriate IPv6 "
7912 "network address format for this address.  The buffer I<dst> must be at least "
7913 "B<INET6_ADDRSTRLEN> bytes long."
7914 msgstr ""
7915
7916 #. type: Plain text
7917 #: build/C/man3/inet_ntop.3:89
7918 msgid ""
7919 "On success, B<inet_ntop>()  returns a non-NULL pointer to I<dst>.  NULL is "
7920 "returned if there was an error, with I<errno> set to indicate the error."
7921 msgstr ""
7922
7923 #. type: TP
7924 #: build/C/man3/inet_ntop.3:90
7925 #, no-wrap
7926 msgid "B<EAFNOSUPPORT>"
7927 msgstr ""
7928
7929 #. type: Plain text
7930 #: build/C/man3/inet_ntop.3:94
7931 msgid "I<af> was not a valid address family."
7932 msgstr ""
7933
7934 #. type: TP
7935 #: build/C/man3/inet_ntop.3:94
7936 #, no-wrap
7937 msgid "B<ENOSPC>"
7938 msgstr ""
7939
7940 #. type: Plain text
7941 #: build/C/man3/inet_ntop.3:98
7942 msgid "The converted address string would exceed the size given by I<size>."
7943 msgstr ""
7944
7945 #.  2.1.3: size_t, 2.1.91: socklen_t
7946 #. type: Plain text
7947 #: build/C/man3/inet_ntop.3:110
7948 msgid ""
7949 "POSIX.1-2001.  Note that RFC\\ 2553 defines a prototype where the last "
7950 "argument I<size> is of type I<size_t>.  Many systems follow RFC\\ 2553.  "
7951 "Glibc 2.0 and 2.1 have I<size_t>, but 2.2 and later have I<socklen_t>."
7952 msgstr ""
7953
7954 #. type: Plain text
7955 #: build/C/man3/inet_ntop.3:113
7956 msgid "B<AF_INET6> converts IPv4-mapped IPv6 addresses into an IPv6 format."
7957 msgstr ""
7958
7959 #. type: Plain text
7960 #: build/C/man3/inet_ntop.3:116
7961 msgid "See B<inet_pton>(3)."
7962 msgstr ""
7963
7964 #. type: Plain text
7965 #: build/C/man3/inet_ntop.3:120
7966 msgid "B<getnameinfo>(3), B<inet>(3), B<inet_pton>(3)"
7967 msgstr ""
7968
7969 #. type: TH
7970 #: build/C/man3/inet_pton.3:25
7971 #, no-wrap
7972 msgid "INET_PTON"
7973 msgstr ""
7974
7975 #. type: TH
7976 #: build/C/man3/inet_pton.3:25
7977 #, no-wrap
7978 msgid "2008-06-18"
7979 msgstr ""
7980
7981 #. type: Plain text
7982 #: build/C/man3/inet_pton.3:28
7983 msgid "inet_pton - convert IPv4 and IPv6 addresses from text to binary form"
7984 msgstr ""
7985
7986 #. type: Plain text
7987 #: build/C/man3/inet_pton.3:33
7988 #, no-wrap
7989 msgid "B<int inet_pton(int >I<af>B<, const char *>I<src>B<, void *>I<dst>B<);>\n"
7990 msgstr ""
7991
7992 #. type: Plain text
7993 #: build/C/man3/inet_pton.3:49
7994 msgid ""
7995 "This function converts the character string I<src> into a network address "
7996 "structure in the I<af> address family, then copies the network address "
7997 "structure to I<dst>.  The I<af> argument must be either B<AF_INET> or "
7998 "B<AF_INET6>."
7999 msgstr ""
8000
8001 #. type: Plain text
8002 #: build/C/man3/inet_pton.3:51
8003 msgid "The following address families are currently supported:"
8004 msgstr ""
8005
8006 #. type: Plain text
8007 #: build/C/man3/inet_pton.3:65
8008 msgid ""
8009 "I<src> points to a character string containing an IPv4 network address in "
8010 "dotted-decimal format, \"I<ddd.ddd.ddd.ddd>\", where I<ddd> is a decimal "
8011 "number of up to three digits in the range 0 to 255.  The address is "
8012 "converted to a I<struct in_addr> and copied to I<dst>, which must be "
8013 "I<sizeof(struct in_addr)> (4) bytes (32 bits) long."
8014 msgstr ""
8015
8016 #. type: Plain text
8017 #: build/C/man3/inet_pton.3:77
8018 msgid ""
8019 "I<src> points to a character string containing an IPv6 network address.  The "
8020 "address is converted to a I<struct in6_addr> and copied to I<dst>, which "
8021 "must be I<sizeof(struct in6_addr)> (16) bytes (128 bits) long.  The allowed "
8022 "formats for IPv6 addresses follow these rules:"
8023 msgstr ""
8024
8025 #. type: IP
8026 #: build/C/man3/inet_pton.3:78
8027 #, no-wrap
8028 msgid "1."
8029 msgstr ""
8030
8031 #. type: Plain text
8032 #: build/C/man3/inet_pton.3:85
8033 msgid ""
8034 "The preferred format is I<x:x:x:x:x:x:x:x>.  This form consists of eight "
8035 "hexadecimal numbers, each of which expresses a 16-bit value (i.e., each I<x> "
8036 "can be up to 4 hex digits)."
8037 msgstr ""
8038
8039 #. type: IP
8040 #: build/C/man3/inet_pton.3:85
8041 #, no-wrap
8042 msgid "2."
8043 msgstr ""
8044
8045 #. type: Plain text
8046 #: build/C/man3/inet_pton.3:98
8047 msgid ""
8048 "A series of contiguous zero values in the preferred format can be "
8049 "abbreviated to I<::>.  Only one instance of I<::> can occur in an address.  "
8050 "For example, the loopback address I<0:0:0:0:0:0:0:1> can be abbreviated as "
8051 "I<::1>.  The wildcard address, consisting of all zeros, can be written as "
8052 "I<::>."
8053 msgstr ""
8054
8055 #. type: IP
8056 #: build/C/man3/inet_pton.3:98
8057 #, no-wrap
8058 msgid "3."
8059 msgstr ""
8060
8061 #. type: Plain text
8062 #: build/C/man3/inet_pton.3:111
8063 msgid ""
8064 "An alternate format is useful for expressing IPv4-mapped IPv6 addresses.  "
8065 "This form is written as I<x:x:x:x:x:x:d.d.d.d>, where the six leading I<x>s "
8066 "are hexadecimal values that define the six most-significant 16-bit pieces of "
8067 "the address (i.e., 96 bits), and the I<d>s express a value in dotted-decimal "
8068 "notation that defines the least significant 32 bits of the address.  An "
8069 "example of such an address is I<::FFFF:204.152.189.116>."
8070 msgstr ""
8071
8072 #. type: Plain text
8073 #: build/C/man3/inet_pton.3:114
8074 msgid "See RFC 2373 for further details on the representation of IPv6 addresses."
8075 msgstr ""
8076
8077 #. type: Plain text
8078 #: build/C/man3/inet_pton.3:127
8079 msgid ""
8080 "B<inet_pton>()  returns 1 on success (network address was successfully "
8081 "converted).  0 is returned if I<src> does not contain a character string "
8082 "representing a valid network address in the specified address family.  If "
8083 "I<af> does not contain a valid address family, -1 is returned and I<errno> "
8084 "is set to B<EAFNOSUPPORT>."
8085 msgstr ""
8086
8087 #. type: Plain text
8088 #: build/C/man3/inet_pton.3:148
8089 msgid ""
8090 "Unlike B<inet_aton>(3)  and B<inet_addr>(3), B<inet_pton>()  supports IPv6 "
8091 "addresses.  On the other hand, B<inet_pton>()  only accepts IPv4 addresses "
8092 "in dotted-decimal notation, whereas B<inet_aton>(3)  and B<inet_addr>(3)  "
8093 "allow the more general numbers-and-dots notation (hexadecimal and octal "
8094 "number formats, and formats that don't require all four bytes to be "
8095 "explicitly written).  For an interface that handles both IPv6 addresses, and "
8096 "IPv4 addresses in numbers-and-dots notation, see B<getaddrinfo>(3)."
8097 msgstr ""
8098
8099 #. type: Plain text
8100 #: build/C/man3/inet_pton.3:154
8101 msgid ""
8102 "B<AF_INET6> does not recognize IPv4 addresses.  An explicit IPv4-mapped IPv6 "
8103 "address must be supplied in I<src> instead."
8104 msgstr ""
8105
8106 #. type: Plain text
8107 #: build/C/man3/inet_pton.3:160
8108 msgid ""
8109 "The program below demonstrates the use of B<inet_pton>()  and "
8110 "B<inet_ntop>(3).  Here are some example runs:"
8111 msgstr ""
8112
8113 #. type: Plain text
8114 #: build/C/man3/inet_pton.3:169
8115 #, no-wrap
8116 msgid ""
8117 "$B< ./a.out i6 0:0:0:0:0:0:0:0>\n"
8118 "::\n"
8119 "$B< ./a.out i6 1:0:0:0:0:0:0:8>\n"
8120 "1::8\n"
8121 "$B< ./a.out i6 0:0:0:0:0:FFFF:204.152.189.116>\n"
8122 "::ffff:204.152.189.116\n"
8123 msgstr ""
8124
8125 #. type: Plain text
8126 #: build/C/man3/inet_pton.3:178
8127 #, no-wrap
8128 msgid ""
8129 "#include E<lt>arpa/inet.hE<gt>\n"
8130 "#include E<lt>stdio.hE<gt>\n"
8131 "#include E<lt>stdlib.hE<gt>\n"
8132 "#include E<lt>string.hE<gt>\n"
8133 msgstr ""
8134
8135 #. type: Plain text
8136 #: build/C/man3/inet_pton.3:185
8137 #, no-wrap
8138 msgid ""
8139 "int\n"
8140 "main(int argc, char *argv[])\n"
8141 "{\n"
8142 "    unsigned char buf[sizeof(struct in6_addr)];\n"
8143 "    int domain, s;\n"
8144 "    char str[INET6_ADDRSTRLEN];\n"
8145 msgstr ""
8146
8147 #. type: Plain text
8148 #: build/C/man3/inet_pton.3:190
8149 #, no-wrap
8150 msgid ""
8151 "    if (argc != 3) {\n"
8152 "        fprintf(stderr, \"Usage: %s {i4|i6|E<lt>numE<gt>} string\\en\", "
8153 "argv[0]);\n"
8154 "        exit(EXIT_FAILURE);\n"
8155 "    }\n"
8156 msgstr ""
8157
8158 #. type: Plain text
8159 #: build/C/man3/inet_pton.3:193
8160 #, no-wrap
8161 msgid ""
8162 "    domain = (strcmp(argv[1], \"i4\") == 0) ? AF_INET :\n"
8163 "             (strcmp(argv[1], \"i6\") == 0) ? AF_INET6 : atoi(argv[1]);\n"
8164 msgstr ""
8165
8166 #. type: Plain text
8167 #: build/C/man3/inet_pton.3:202
8168 #, no-wrap
8169 msgid ""
8170 "    s = inet_pton(domain, argv[2], buf);\n"
8171 "    if (s E<lt>= 0) {\n"
8172 "        if (s == 0)\n"
8173 "            fprintf(stderr, \"Not in presentation format\");\n"
8174 "        else\n"
8175 "            perror(\"inet_pton\");\n"
8176 "        exit(EXIT_FAILURE);\n"
8177 "    }\n"
8178 msgstr ""
8179
8180 #. type: Plain text
8181 #: build/C/man3/inet_pton.3:207
8182 #, no-wrap
8183 msgid ""
8184 "    if (inet_ntop(domain, buf, str, INET6_ADDRSTRLEN) == NULL) {\n"
8185 "        perror(\"inet_ntop\");\n"
8186 "        exit(EXIT_FAILURE);\n"
8187 "    }\n"
8188 msgstr ""
8189
8190 #. type: Plain text
8191 #: build/C/man3/inet_pton.3:209
8192 #, no-wrap
8193 msgid "    printf(\"%s\\en\", str);\n"
8194 msgstr ""
8195
8196 #. type: Plain text
8197 #: build/C/man3/inet_pton.3:217
8198 msgid "B<getaddrinfo>(3), B<inet>(3), B<inet_ntop>(3)"
8199 msgstr ""
8200
8201 #. type: TH
8202 #: build/C/man7/ip.7:12
8203 #, no-wrap
8204 msgid "IP"
8205 msgstr ""
8206
8207 #. type: TH
8208 #: build/C/man7/ip.7:12
8209 #, no-wrap
8210 msgid "2011-09-22"
8211 msgstr ""
8212
8213 #. type: Plain text
8214 #: build/C/man7/ip.7:15
8215 msgid "ip - Linux IPv4 protocol implementation"
8216 msgstr ""
8217
8218 #. type: Plain text
8219 #: 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
8220 msgid "B<#include E<lt>netinet/in.hE<gt>>"
8221 msgstr ""
8222
8223 #. type: Plain text
8224 #: build/C/man7/ip.7:23
8225 msgid "B<#include E<lt>netinet/ip.hE<gt> >/* superset of previous */"
8226 msgstr ""
8227
8228 #. type: Plain text
8229 #: build/C/man7/ip.7:25
8230 msgid "I<tcp_socket>B< = socket(AF_INET, SOCK_STREAM, 0);>"
8231 msgstr ""
8232
8233 #. type: Plain text
8234 #: build/C/man7/ip.7:27
8235 msgid "I<udp_socket>B< = socket(AF_INET, SOCK_DGRAM, 0);>"
8236 msgstr ""
8237
8238 #. type: Plain text
8239 #: build/C/man7/ip.7:29
8240 msgid "I<raw_socket>B< = socket(AF_INET, SOCK_RAW, >I<protocol>B<);>"
8241 msgstr ""
8242
8243 #.  FIXME has someone verified that 2.1 is really 1812 compliant?
8244 #. type: Plain text
8245 #: build/C/man7/ip.7:36
8246 msgid ""
8247 "Linux implements the Internet Protocol, version 4, described in RFC\\ 791 "
8248 "and RFC\\ 1122.  B<ip> contains a level 2 multicasting implementation "
8249 "conforming to RFC\\ 1112.  It also contains an IP router including a packet "
8250 "filter."
8251 msgstr ""
8252
8253 #. type: Plain text
8254 #: build/C/man7/ip.7:40
8255 msgid ""
8256 "The programming interface is BSD-sockets compatible.  For more information "
8257 "on sockets, see B<socket>(7)."
8258 msgstr ""
8259
8260 #. type: Plain text
8261 #: build/C/man7/ip.7:71
8262 msgid ""
8263 "An IP socket is created by calling the B<socket>(2)  function as "
8264 "B<socket(AF_INET, >I<socket_type>B<, >I<protocol>B<)>.  Valid socket types "
8265 "are B<SOCK_STREAM> to open a B<tcp>(7)  socket, B<SOCK_DGRAM> to open a "
8266 "B<udp>(7)  socket, or B<SOCK_RAW> to open a B<raw>(7)  socket to access the "
8267 "IP protocol directly.  I<protocol> is the IP protocol in the IP header to be "
8268 "received or sent.  The only valid values for I<protocol> are 0 and "
8269 "B<IPPROTO_TCP> for TCP sockets, and 0 and B<IPPROTO_UDP> for UDP sockets.  "
8270 "For B<SOCK_RAW> you may specify a valid IANA IP protocol defined in RFC\\ "
8271 "1700 assigned numbers."
8272 msgstr ""
8273
8274 #.  FIXME ip current does an autobind in listen, but I'm not sure
8275 #.  if that should be documented.
8276 #. type: Plain text
8277 #: build/C/man7/ip.7:90
8278 msgid ""
8279 "When a process wants to receive new incoming packets or connections, it "
8280 "should bind a socket to a local interface address using B<bind>(2).  Only "
8281 "one IP socket may be bound to any given local (address, port) pair.  When "
8282 "B<INADDR_ANY> is specified in the bind call, the socket will be bound to "
8283 "I<all> local interfaces.  When B<listen>(2)  or B<connect>(2)  are called on "
8284 "an unbound socket, it is automatically bound to a random free port with the "
8285 "local address set to B<INADDR_ANY>."
8286 msgstr ""
8287
8288 #. type: Plain text
8289 #: build/C/man7/ip.7:96
8290 msgid ""
8291 "A TCP local socket address that has been bound is unavailable for some time "
8292 "after closing, unless the B<SO_REUSEADDR> flag has been set.  Care should be "
8293 "taken when using this flag as it makes TCP less reliable."
8294 msgstr ""
8295
8296 #. type: Plain text
8297 #: build/C/man7/ip.7:107
8298 msgid ""
8299 "An IP socket address is defined as a combination of an IP interface address "
8300 "and a 16-bit port number.  The basic IP protocol does not supply port "
8301 "numbers, they are implemented by higher level protocols like B<udp>(7)  and "
8302 "B<tcp>(7).  On raw sockets I<sin_port> is set to the IP protocol."
8303 msgstr ""
8304
8305 #. type: Plain text
8306 #: build/C/man7/ip.7:115
8307 #, no-wrap
8308 msgid ""
8309 "struct sockaddr_in {\n"
8310 "    sa_family_t    sin_family; /* address family: AF_INET */\n"
8311 "    in_port_t      sin_port;   /* port in network byte order */\n"
8312 "    struct in_addr sin_addr;   /* internet address */\n"
8313 "};\n"
8314 msgstr ""
8315
8316 #. type: Plain text
8317 #: build/C/man7/ip.7:120
8318 #, no-wrap
8319 msgid ""
8320 "/* Internet address. */\n"
8321 "struct in_addr {\n"
8322 "    uint32_t       s_addr;     /* address in network byte order */\n"
8323 "};\n"
8324 msgstr ""
8325
8326 #. type: Plain text
8327 #: build/C/man7/ip.7:145
8328 msgid ""
8329 "I<sin_family> is always set to B<AF_INET>.  This is required; in Linux 2.2 "
8330 "most networking functions return B<EINVAL> when this setting is missing.  "
8331 "I<sin_port> contains the port in network byte order.  The port numbers below "
8332 "1024 are called I<privileged ports> (or sometimes: I<reserved ports>).  Only "
8333 "privileged processes (i.e., those having the B<CAP_NET_BIND_SERVICE> "
8334 "capability) may B<bind>(2)  to these sockets.  Note that the raw IPv4 "
8335 "protocol as such has no concept of a port, they are only implemented by "
8336 "higher protocols like B<tcp>(7)  and B<udp>(7)."
8337 msgstr ""
8338
8339 #. type: Plain text
8340 #: build/C/man7/ip.7:164
8341 msgid ""
8342 "I<sin_addr> is the IP host address.  The I<s_addr> member of I<struct "
8343 "in_addr> contains the host interface address in network byte order.  "
8344 "I<in_addr> should be assigned one of the B<INADDR_*> values (e.g., "
8345 "B<INADDR_ANY>)  or set using the B<inet_aton>(3), B<inet_addr>(3), "
8346 "B<inet_makeaddr>(3)  library functions or directly with the name resolver "
8347 "(see B<gethostbyname>(3))."
8348 msgstr ""
8349
8350 #.  Leave a loophole for XTP @)
8351 #. type: Plain text
8352 #: build/C/man7/ip.7:176
8353 msgid ""
8354 "IPv4 addresses are divided into unicast, broadcast and multicast addresses.  "
8355 "Unicast addresses specify a single interface of a host, broadcast addresses "
8356 "specify all hosts on a network and multicast addresses address all hosts in "
8357 "a multicast group.  Datagrams to broadcast addresses can be only sent or "
8358 "received when the B<SO_BROADCAST> socket flag is set.  In the current "
8359 "implementation, connection-oriented sockets are only allowed to use unicast "
8360 "addresses."
8361 msgstr ""
8362
8363 #. type: Plain text
8364 #: build/C/man7/ip.7:184
8365 msgid ""
8366 "Note that the address and the port are always stored in network byte order.  "
8367 "In particular, this means that you need to call B<htons>(3)  on the number "
8368 "that is assigned to a port.  All address/port manipulation functions in the "
8369 "standard library work in network byte order."
8370 msgstr ""
8371
8372 #. type: Plain text
8373 #: build/C/man7/ip.7:197
8374 msgid ""
8375 "There are several special addresses: B<INADDR_LOOPBACK> (127.0.0.1)  always "
8376 "refers to the local host via the loopback device; B<INADDR_ANY> (0.0.0.0)  "
8377 "means any address for binding; B<INADDR_BROADCAST> (255.255.255.255)  means "
8378 "any host and has the same effect on bind as B<INADDR_ANY> for historical "
8379 "reasons."
8380 msgstr ""
8381
8382 #.  or SOL_IP on Linux
8383 #. type: Plain text
8384 #: build/C/man7/ip.7:206
8385 msgid ""
8386 "IP supports some protocol-specific socket options that can be set with "
8387 "B<setsockopt>(2)  and read with B<getsockopt>(2).  The socket option level "
8388 "for IP is B<IPPROTO_IP>.  A boolean integer flag is zero when it is false, "
8389 "otherwise true."
8390 msgstr ""
8391
8392 #. type: TP
8393 #: build/C/man7/ip.7:206
8394 #, no-wrap
8395 msgid "B<IP_ADD_MEMBERSHIP> (since Linux 1.2)"
8396 msgstr ""
8397
8398 #. type: Plain text
8399 #: build/C/man7/ip.7:212
8400 msgid "Join a multicast group.  Argument is an I<ip_mreqn> structure."
8401 msgstr ""
8402
8403 #. type: Plain text
8404 #: build/C/man7/ip.7:222
8405 #, no-wrap
8406 msgid ""
8407 "struct ip_mreqn {\n"
8408 "    struct in_addr imr_multiaddr; /* IP multicast group\n"
8409 "                                     address */\n"
8410 "    struct in_addr imr_address;   /* IP address of local\n"
8411 "                                     interface */\n"
8412 "    int            imr_ifindex;   /* interface index */\n"
8413 "};\n"
8414 msgstr ""
8415
8416 #.  (i.e., within the 224.0.0.0-239.255.255.255 range)
8417 #. type: Plain text
8418 #: build/C/man7/ip.7:243
8419 msgid ""
8420 "I<imr_multiaddr> contains the address of the multicast group the application "
8421 "wants to join or leave.  It must be a valid multicast address (or "
8422 "B<setsockopt>(2)  fails with the error B<EINVAL>).  I<imr_address> is the "
8423 "address of the local interface with which the system should join the "
8424 "multicast group; if it is equal to B<INADDR_ANY> an appropriate interface is "
8425 "chosen by the system.  I<imr_ifindex> is the interface index of the "
8426 "interface that should join/leave the I<imr_multiaddr> group, or 0 to "
8427 "indicate any interface."
8428 msgstr ""
8429
8430 #. type: Plain text
8431 #: build/C/man7/ip.7:258
8432 msgid ""
8433 "The I<ip_mreqn> structure is available only since Linux 2.2.  For "
8434 "compatibility, the old I<ip_mreq> structure (present since Linux 1.2) is "
8435 "still supported; it differs from I<ip_mreqn> only by not including the "
8436 "I<imr_ifindex> field.  Only valid as a B<setsockopt>(2)."
8437 msgstr ""
8438
8439 #. type: TP
8440 #: build/C/man7/ip.7:258
8441 #, no-wrap
8442 msgid "B<IP_DROP_MEMBERSHIP> (since Linux 1.2)"
8443 msgstr ""
8444
8445 #. type: Plain text
8446 #: build/C/man7/ip.7:267
8447 msgid ""
8448 "Leave a multicast group.  Argument is an I<ip_mreqn> or I<ip_mreq> structure "
8449 "similar to B<IP_ADD_MEMBERSHIP>."
8450 msgstr ""
8451
8452 #. type: TP
8453 #: build/C/man7/ip.7:267
8454 #, no-wrap
8455 msgid "B<IP_FREEBIND> (since Linux 2.4)"
8456 msgstr ""
8457
8458 #.  Precisely: 2.4.0-test10
8459 #. type: Plain text
8460 #: build/C/man7/ip.7:280
8461 msgid ""
8462 "If enabled, this boolean option allows binding to an IP address that is "
8463 "nonlocal or does not (yet) exist.  This permits listening on a socket, "
8464 "without requiring the underlying network interface or the specified dynamic "
8465 "IP address to be up at the time that the application is trying to bind to "
8466 "it.  This option is the per-socket equivalent of the I<ip_nonlocal_bind> "
8467 "I</proc> interface described below."
8468 msgstr ""
8469
8470 #. type: TP
8471 #: build/C/man7/ip.7:280
8472 #, no-wrap
8473 msgid "B<IP_HDRINCL> (since Linux 2.0)"
8474 msgstr ""
8475
8476 #
8477 #.  FIXME Document IP_IPSEC_POLICY
8478 #.  Since Linux 2.5.47
8479 #.  Needs CAP_NET_ADMIN
8480 #. type: Plain text
8481 #: build/C/man7/ip.7:300
8482 msgid ""
8483 "If enabled, the user supplies an IP header in front of the user data.  Only "
8484 "valid for B<SOCK_RAW> sockets.  See B<raw>(7)  for more information.  When "
8485 "this flag is enabled the values set by B<IP_OPTIONS>, B<IP_TTL> and "
8486 "B<IP_TOS> are ignored."
8487 msgstr ""
8488
8489 #. type: TP
8490 #: build/C/man7/ip.7:300
8491 #, no-wrap
8492 msgid "B<IP_MTU> (since Linux 2.2)"
8493 msgstr ""
8494
8495 #.  Precisely: 2.1.124
8496 #. type: Plain text
8497 #: build/C/man7/ip.7:308
8498 msgid ""
8499 "Retrieve the current known path MTU of the current socket.  Only valid when "
8500 "the socket has been connected.  Returns an integer.  Only valid as a "
8501 "B<getsockopt>(2)."
8502 msgstr ""
8503
8504 #. type: TP
8505 #: build/C/man7/ip.7:308
8506 #, no-wrap
8507 msgid "B<IP_MTU_DISCOVER> (since Linux 2.2)"
8508 msgstr ""
8509
8510 #.  Precisely: 2.1.124
8511 #. type: Plain text
8512 #: build/C/man7/ip.7:329
8513 msgid ""
8514 "Set or receive the Path MTU Discovery setting for a socket.  When enabled, "
8515 "Linux will perform Path MTU Discovery as defined in RFC\\ 1191 on "
8516 "B<SOCK_STREAM> sockets.  For non-B<SOCK_STREAM> sockets, B<IP_PMTUDISC_DO> "
8517 "forces the don't-fragment flag to be set on all outgoing packets.  It is the "
8518 "user's responsibility to packetize the data in MTU-sized chunks and to do "
8519 "the retransmits if necessary.  The kernel will reject (with B<EMSGSIZE>)  "
8520 "datagrams that are bigger than the known path MTU.  B<IP_PMTUDISC_WANT> will "
8521 "fragment a datagram if needed according to the path MTU, or will set the "
8522 "don't-fragment flag otherwise."
8523 msgstr ""
8524
8525 #. type: Plain text
8526 #: build/C/man7/ip.7:337
8527 msgid ""
8528 "The system-wide default can be toggled between B<IP_PMTUDISC_WANT> and "
8529 "B<IP_PMTUDISC_DONT> by writing (respectively, zero and nonzero values) to "
8530 "the I</proc/sys/net/ipv4/ip_no_pmtu_disc> file."
8531 msgstr ""
8532
8533 #. type: tbl table
8534 #: build/C/man7/ip.7:342
8535 #, no-wrap
8536 msgid "Path MTU discovery value:Meaning\n"
8537 msgstr ""
8538
8539 #. type: tbl table
8540 #: build/C/man7/ip.7:343
8541 #, no-wrap
8542 msgid "IP_PMTUDISC_WANT:Use per-route settings.\n"
8543 msgstr ""
8544
8545 #. type: tbl table
8546 #: build/C/man7/ip.7:344
8547 #, no-wrap
8548 msgid "IP_PMTUDISC_DONT:Never do Path MTU Discovery.\n"
8549 msgstr ""
8550
8551 #. type: tbl table
8552 #: build/C/man7/ip.7:345
8553 #, no-wrap
8554 msgid "IP_PMTUDISC_DO:Always do Path MTU Discovery.\n"
8555 msgstr ""
8556
8557 #. type: tbl table
8558 #: build/C/man7/ip.7:346
8559 #, no-wrap
8560 msgid "IP_PMTUDISC_PROBE:Set DF but ignore Path MTU.\n"
8561 msgstr ""
8562
8563 #. type: Plain text
8564 #: build/C/man7/ip.7:364
8565 msgid ""
8566 "When PMTU discovery is enabled, the kernel automatically keeps track of the "
8567 "path MTU per destination host.  When it is connected to a specific peer with "
8568 "B<connect>(2), the currently known path MTU can be retrieved conveniently "
8569 "using the B<IP_MTU> socket option (e.g., after an B<EMSGSIZE> error "
8570 "occurred).  The path MTU may change over time.  For connectionless sockets "
8571 "with many destinations, the new MTU for a given destination can also be "
8572 "accessed using the error queue (see B<IP_RECVERR>).  A new error will be "
8573 "queued for every incoming MTU update."
8574 msgstr ""
8575
8576 #. type: Plain text
8577 #: build/C/man7/ip.7:369
8578 msgid ""
8579 "While MTU discovery is in progress, initial packets from datagram sockets "
8580 "may be dropped.  Applications using UDP should be aware of this and not take "
8581 "it into account for their packet retransmit strategy."
8582 msgstr ""
8583
8584 #.  FIXME this is an ugly hack
8585 #. type: Plain text
8586 #: build/C/man7/ip.7:374
8587 msgid ""
8588 "To bootstrap the path MTU discovery process on unconnected sockets, it is "
8589 "possible to start with a big datagram size (up to 64K-headers bytes long) "
8590 "and let it shrink by updates of the path MTU."
8591 msgstr ""
8592
8593 #. type: Plain text
8594 #: build/C/man7/ip.7:383
8595 msgid ""
8596 "To get an initial estimate of the path MTU, connect a datagram socket to the "
8597 "destination address using B<connect>(2)  and retrieve the MTU by calling "
8598 "B<getsockopt>(2)  with the B<IP_MTU> option."
8599 msgstr ""
8600
8601 #. type: Plain text
8602 #: build/C/man7/ip.7:395
8603 msgid ""
8604 "It is possible to implement RFC 4821 MTU probing with B<SOCK_DGRAM> or "
8605 "B<SOCK_RAW> sockets by setting a value of B<IP_PMTUDISC_PROBE> (available "
8606 "since Linux 2.6.22).  This is also particularly useful for diagnostic tools "
8607 "such as B<tracepath>(8)  that wish to deliberately send probe packets larger "
8608 "than the observed Path MTU."
8609 msgstr ""
8610
8611 #. type: TP
8612 #: build/C/man7/ip.7:395
8613 #, no-wrap
8614 msgid "B<IP_MULTICAST_IF> (since Linux 1.2)"
8615 msgstr ""
8616
8617 #. type: Plain text
8618 #: build/C/man7/ip.7:404
8619 msgid ""
8620 "Set the local device for a multicast socket.  Argument is an I<ip_mreqn> or "
8621 "I<ip_mreq> structure similar to B<IP_ADD_MEMBERSHIP>."
8622 msgstr ""
8623
8624 #. type: Plain text
8625 #: build/C/man7/ip.7:408
8626 msgid "When an invalid socket option is passed, B<ENOPROTOOPT> is returned."
8627 msgstr ""
8628
8629 #. type: TP
8630 #: build/C/man7/ip.7:408
8631 #, no-wrap
8632 msgid "B<IP_MULTICAST_LOOP> (since Linux 1.2)"
8633 msgstr ""
8634
8635 #. type: Plain text
8636 #: build/C/man7/ip.7:412
8637 msgid ""
8638 "Set or read a boolean integer argument that determines whether sent "
8639 "multicast packets should be looped back to the local sockets."
8640 msgstr ""
8641
8642 #. type: TP
8643 #: build/C/man7/ip.7:412
8644 #, no-wrap
8645 msgid "B<IP_MULTICAST_TTL> (since Linux 1.2)"
8646 msgstr ""
8647
8648 #. type: Plain text
8649 #: build/C/man7/ip.7:420
8650 msgid ""
8651 "Set or read the time-to-live value of outgoing multicast packets for this "
8652 "socket.  It is very important for multicast packets to set the smallest TTL "
8653 "possible.  The default is 1 which means that multicast packets don't leave "
8654 "the local network unless the user program explicitly requests it.  Argument "
8655 "is an integer."
8656 msgstr ""
8657
8658 #. type: TP
8659 #: build/C/man7/ip.7:420
8660 #, no-wrap
8661 msgid "B<IP_NODEFRAG> (since Linux 2.6.36)"
8662 msgstr ""
8663
8664 #. type: Plain text
8665 #: build/C/man7/ip.7:428
8666 msgid ""
8667 "If enabled (argument is nonzero), the reassembly of outgoing packets is "
8668 "disabled in the netfilter layer.  This option is only valid for B<SOCK_RAW> "
8669 "sockets.  The argument is an integer."
8670 msgstr ""
8671
8672 #. type: TP
8673 #: build/C/man7/ip.7:428
8674 #, no-wrap
8675 msgid "B<IP_OPTIONS> (since Linux 2.0)"
8676 msgstr ""
8677
8678 #.  Precisely: 1.3.30
8679 #.  FIXME Document IP_PASSSEC
8680 #.  Boolean
8681 #.  Since Linux 2.6.17
8682 #.  commit 2c7946a7bf45ae86736ab3b43d0085e43947945c
8683 #.  Author: Catherine Zhang <cxzhang@watson.ibm.com>
8684 #. type: Plain text
8685 #: build/C/man7/ip.7:462
8686 msgid ""
8687 "Set or get the IP options to be sent with every packet from this socket.  "
8688 "The arguments are a pointer to a memory buffer containing the options and "
8689 "the option length.  The B<setsockopt>(2)  call sets the IP options "
8690 "associated with a socket.  The maximum option size for IPv4 is 40 bytes.  "
8691 "See RFC\\ 791 for the allowed options.  When the initial connection request "
8692 "packet for a B<SOCK_STREAM> socket contains IP options, the IP options will "
8693 "be set automatically to the options from the initial packet with routing "
8694 "headers reversed.  Incoming packets are not allowed to change options after "
8695 "the connection is established.  The processing of all incoming source "
8696 "routing options is disabled by default and can be enabled by using the "
8697 "I<accept_source_route> I</proc> interface.  Other options like timestamps "
8698 "are still handled.  For datagram sockets, IP options can be only set by the "
8699 "local user.  Calling B<getsockopt>(2)  with B<IP_OPTIONS> puts the current "
8700 "IP options used for sending into the supplied buffer."
8701 msgstr ""
8702
8703 #. type: TP
8704 #: build/C/man7/ip.7:462
8705 #, no-wrap
8706 msgid "B<IP_PKTINFO> (since Linux 2.2)"
8707 msgstr ""
8708
8709 #.  Precisely: 2.1.68
8710 #. type: Plain text
8711 #: build/C/man7/ip.7:479
8712 msgid ""
8713 "Pass an B<IP_PKTINFO> ancillary message that contains a I<pktinfo> structure "
8714 "that supplies some information about the incoming packet.  This only works "
8715 "for datagram oriented sockets.  The argument is a flag that tells the socket "
8716 "whether the B<IP_PKTINFO> message should be passed or not.  The message "
8717 "itself can only be sent/retrieved as control message with a packet using "
8718 "B<recvmsg>(2)  or B<sendmsg>(2)."
8719 msgstr ""
8720
8721 #. type: Plain text
8722 #: build/C/man7/ip.7:488
8723 #, no-wrap
8724 msgid ""
8725 "struct in_pktinfo {\n"
8726 "    unsigned int   ipi_ifindex;  /* Interface index */\n"
8727 "    struct in_addr ipi_spec_dst; /* Local address */\n"
8728 "    struct in_addr ipi_addr;     /* Header Destination\n"
8729 "                                    address */\n"
8730 "};\n"
8731 msgstr ""
8732
8733 #.  FIXME elaborate on that.
8734 #.  This field is grossly misnamed
8735 #. type: Plain text
8736 #: build/C/man7/ip.7:513
8737 msgid ""
8738 "I<ipi_ifindex> is the unique index of the interface the packet was received "
8739 "on.  I<ipi_spec_dst> is the local address of the packet and I<ipi_addr> is "
8740 "the destination address in the packet header.  If B<IP_PKTINFO> is passed to "
8741 "B<sendmsg>(2)  and I<ipi_spec_dst> is not zero, then it is used as the local "
8742 "source address for the routing table lookup and for setting up IP source "
8743 "route options.  When I<ipi_ifindex> is not zero, the primary local address "
8744 "of the interface specified by the index overwrites I<ipi_spec_dst> for the "
8745 "routing table lookup."
8746 msgstr ""
8747
8748 #. type: TP
8749 #: build/C/man7/ip.7:513
8750 #, no-wrap
8751 msgid "B<IP_RECVERR> (since Linux 2.2)"
8752 msgstr ""
8753
8754 #.  Precisely: 2.1.15
8755 #.  or SOL_IP on Linux
8756 #. type: Plain text
8757 #: build/C/man7/ip.7:535
8758 msgid ""
8759 "Enable extended reliable error message passing.  When enabled on a datagram "
8760 "socket, all generated errors will be queued in a per-socket error queue.  "
8761 "When the user receives an error from a socket operation, the errors can be "
8762 "received by calling B<recvmsg>(2)  with the B<MSG_ERRQUEUE> flag set.  The "
8763 "I<sock_extended_err> structure describing the error will be passed in an "
8764 "ancillary message with the type B<IP_RECVERR> and the level B<IPPROTO_IP>.  "
8765 "This is useful for reliable error handling on unconnected sockets.  The "
8766 "received data portion of the error queue contains the error packet."
8767 msgstr ""
8768
8769 #. type: Plain text
8770 #: build/C/man7/ip.7:541
8771 msgid "The B<IP_RECVERR> control message contains a I<sock_extended_err> structure:"
8772 msgstr ""
8773
8774 #. type: Plain text
8775 #: build/C/man7/ip.7:549
8776 #, no-wrap
8777 msgid ""
8778 "#define SO_EE_ORIGIN_NONE    0\n"
8779 "#define SO_EE_ORIGIN_LOCAL   1\n"
8780 "#define SO_EE_ORIGIN_ICMP    2\n"
8781 "#define SO_EE_ORIGIN_ICMP6   3\n"
8782 msgstr ""
8783
8784 #. type: Plain text
8785 #: build/C/man7/ip.7:560
8786 #, no-wrap
8787 msgid ""
8788 "struct sock_extended_err {\n"
8789 "    uint32_t ee_errno;   /* error number */\n"
8790 "    uint8_t  ee_origin;  /* where the error originated */\n"
8791 "    uint8_t  ee_type;    /* type */\n"
8792 "    uint8_t  ee_code;    /* code */\n"
8793 "    uint8_t  ee_pad;\n"
8794 "    uint32_t ee_info;    /* additional information */\n"
8795 "    uint32_t ee_data;    /* other data */\n"
8796 "    /* More data may follow */\n"
8797 "};\n"
8798 msgstr ""
8799
8800 #. type: Plain text
8801 #: build/C/man7/ip.7:562
8802 #, no-wrap
8803 msgid "struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *);\n"
8804 msgstr ""
8805
8806 #. type: Plain text
8807 #: build/C/man7/ip.7:585
8808 msgid ""
8809 "I<ee_errno> contains the I<errno> number of the queued error.  I<ee_origin> "
8810 "is the origin code of where the error originated.  The other fields are "
8811 "protocol-specific.  The macro B<SO_EE_OFFENDER> returns a pointer to the "
8812 "address of the network object where the error originated from given a "
8813 "pointer to the ancillary message.  If this address is not known, the "
8814 "I<sa_family> member of the I<sockaddr> contains B<AF_UNSPEC> and the other "
8815 "fields of the I<sockaddr> are undefined."
8816 msgstr ""
8817
8818 #.  FIXME . Is it a good idea to document that? It is a dubious feature.
8819 #.  On
8820 #.  .B SOCK_STREAM
8821 #.  sockets,
8822 #.  .B IP_RECVERR
8823 #.  has slightly different semantics. Instead of
8824 #.  saving the errors for the next timeout, it passes all incoming
8825 #.  errors immediately to the user.
8826 #.  This might be useful for very short-lived TCP connections which
8827 #.  need fast error handling. Use this option with care:
8828 #.  it makes TCP unreliable
8829 #.  by not allowing it to recover properly from routing
8830 #.  shifts and other normal
8831 #.  conditions and breaks the protocol specification.
8832 #. type: Plain text
8833 #: build/C/man7/ip.7:644
8834 msgid ""
8835 "IP uses the I<sock_extended_err> structure as follows: I<ee_origin> is set "
8836 "to B<SO_EE_ORIGIN_ICMP> for errors received as an ICMP packet, or "
8837 "B<SO_EE_ORIGIN_LOCAL> for locally generated errors.  Unknown values should "
8838 "be ignored.  I<ee_type> and I<ee_code> are set from the type and code fields "
8839 "of the ICMP header.  I<ee_info> contains the discovered MTU for B<EMSGSIZE> "
8840 "errors.  The message also contains the I<sockaddr_in of the node> caused the "
8841 "error, which can be accessed with the B<SO_EE_OFFENDER> macro.  The "
8842 "I<sin_family> field of the B<SO_EE_OFFENDER> address is B<AF_UNSPEC> when "
8843 "the source was unknown.  When the error originated from the network, all IP "
8844 "options (B<IP_OPTIONS>, B<IP_TTL>, etc.) enabled on the socket and contained "
8845 "in the error packet are passed as control messages.  The payload of the "
8846 "packet causing the error is returned as normal payload.  Note that TCP has "
8847 "no error queue; B<MSG_ERRQUEUE> is not permitted on B<SOCK_STREAM> sockets.  "
8848 "B<IP_RECVERR> is valid for TCP, but all errors are returned by socket "
8849 "function return or B<SO_ERROR> only."
8850 msgstr ""
8851
8852 #. type: Plain text
8853 #: build/C/man7/ip.7:649
8854 msgid ""
8855 "For raw sockets, B<IP_RECVERR> enables passing of all received ICMP errors "
8856 "to the application, otherwise errors are only reported on connected sockets"
8857 msgstr ""
8858
8859 #. type: Plain text
8860 #: build/C/man7/ip.7:653
8861 msgid ""
8862 "It sets or retrieves an integer boolean flag.  B<IP_RECVERR> defaults to "
8863 "off."
8864 msgstr ""
8865
8866 #. type: TP
8867 #: build/C/man7/ip.7:653
8868 #, no-wrap
8869 msgid "B<IP_RECVOPTS> (since Linux 2.2)"
8870 msgstr ""
8871
8872 #.  Precisely: 2.1.15
8873 #. type: Plain text
8874 #: build/C/man7/ip.7:664
8875 msgid ""
8876 "Pass all incoming IP options to the user in a B<IP_OPTIONS> control "
8877 "message.  The routing header and other options are already filled in for the "
8878 "local host.  Not supported for B<SOCK_STREAM> sockets."
8879 msgstr ""
8880
8881 #. type: TP
8882 #: build/C/man7/ip.7:664
8883 #, no-wrap
8884 msgid "B<IP_RECVORIGDSTADDR> (since Linux 2.6.29)"
8885 msgstr ""
8886
8887 #.  commit e8b2dfe9b4501ed0047459b2756ba26e5a940a69
8888 #. type: Plain text
8889 #: build/C/man7/ip.7:675
8890 msgid ""
8891 "This boolean option enables the B<IP_ORIGDSTADDR> ancillary message in "
8892 "B<recvmsg>(2), in which the kernel returns the original destination address "
8893 "of the datagram being received.  The ancillary message contains a I<struct "
8894 "sockaddr_in>."
8895 msgstr ""
8896
8897 #. type: TP
8898 #: build/C/man7/ip.7:675
8899 #, no-wrap
8900 msgid "B<IP_RECVTOS> (since Linux 2.2)"
8901 msgstr ""
8902
8903 #.  Precisely: 2.1.68
8904 #. type: Plain text
8905 #: build/C/man7/ip.7:684
8906 msgid ""
8907 "If enabled the B<IP_TOS> ancillary message is passed with incoming packets.  "
8908 "It contains a byte which specifies the Type of Service/Precedence field of "
8909 "the packet header.  Expects a boolean integer flag."
8910 msgstr ""
8911
8912 #. type: TP
8913 #: build/C/man7/ip.7:684
8914 #, no-wrap
8915 msgid "B<IP_RECVTTL> (since Linux 2.2)"
8916 msgstr ""
8917
8918 #.  Precisely: 2.1.68
8919 #. type: Plain text
8920 #: build/C/man7/ip.7:694
8921 msgid ""
8922 "When this flag is set, pass a B<IP_TTL> control message with the time to "
8923 "live field of the received packet as a byte.  Not supported for "
8924 "B<SOCK_STREAM> sockets."
8925 msgstr ""
8926
8927 #. type: TP
8928 #: build/C/man7/ip.7:694
8929 #, no-wrap
8930 msgid "B<IP_RETOPTS> (since Linux 2.2)"
8931 msgstr ""
8932
8933 #.  Precisely: 2.1.15
8934 #. type: Plain text
8935 #: build/C/man7/ip.7:701
8936 msgid ""
8937 "Identical to B<IP_RECVOPTS>, but returns raw unprocessed options with "
8938 "timestamp and route record options not filled in for this hop."
8939 msgstr ""
8940
8941 #. type: TP
8942 #: build/C/man7/ip.7:701
8943 #, no-wrap
8944 msgid "B<IP_ROUTER_ALERT> (since Linux 2.2)"
8945 msgstr ""
8946
8947 #.  Precisely: 2.1.68
8948 #. type: Plain text
8949 #: build/C/man7/ip.7:713
8950 msgid ""
8951 "Pass all to-be forwarded packets with the IP Router Alert option set to this "
8952 "socket.  Only valid for raw sockets.  This is useful, for instance, for "
8953 "user-space RSVP daemons.  The tapped packets are not forwarded by the "
8954 "kernel; it is the user's responsibility to send them out again.  Socket "
8955 "binding is ignored, such packets are only filtered by protocol.  Expects an "
8956 "integer flag."
8957 msgstr ""
8958
8959 #. type: TP
8960 #: build/C/man7/ip.7:713
8961 #, no-wrap
8962 msgid "B<IP_TOS> (since Linux 1.0)"
8963 msgstr ""
8964
8965 #.  FIXME elaborate on this
8966 #.  Needs CAP_NET_ADMIN
8967 #.  Boolean
8968 #.  Since Linux 2.6.27
8969 #.  Author: KOVACS Krisztian <hidden@sch.bme.hu>
8970 #.  http://lwn.net/Articles/252545/
8971 #. type: Plain text
8972 #: build/C/man7/ip.7:747
8973 msgid ""
8974 "Set or receive the Type-Of-Service (TOS) field that is sent with every IP "
8975 "packet originating from this socket.  It is used to prioritize packets on "
8976 "the network.  TOS is a byte.  There are some standard TOS flags defined: "
8977 "B<IPTOS_LOWDELAY> to minimize delays for interactive traffic, "
8978 "B<IPTOS_THROUGHPUT> to optimize throughput, B<IPTOS_RELIABILITY> to optimize "
8979 "for reliability, B<IPTOS_MINCOST> should be used for \"filler data\" where "
8980 "slow transmission doesn't matter.  At most one of these TOS values can be "
8981 "specified.  Other bits are invalid and shall be cleared.  Linux sends "
8982 "B<IPTOS_LOWDELAY> datagrams first by default, but the exact behavior depends "
8983 "on the configured queueing discipline.  Some high priority levels may "
8984 "require superuser privileges (the B<CAP_NET_ADMIN> capability).  The "
8985 "priority can also be set in a protocol independent way by the "
8986 "(B<SOL_SOCKET>, B<SO_PRIORITY>)  socket option (see B<socket>(7))."
8987 msgstr ""
8988
8989 #. type: TP
8990 #: build/C/man7/ip.7:747
8991 #, no-wrap
8992 msgid "B<IP_TRANSPARENT> (since Linux 2.6.24)"
8993 msgstr ""
8994
8995 #.  commit f5715aea4564f233767ea1d944b2637a5fd7cd2e
8996 #.      This patch introduces the IP_TRANSPARENT socket option: enabling that
8997 #.      will make the IPv4 routing omit the non-local source address check on
8998 #.      output. Setting IP_TRANSPARENT requires NET_ADMIN capability.
8999 #.  http://lwn.net/Articles/252545/
9000 #. type: Plain text
9001 #: build/C/man7/ip.7:764
9002 msgid ""
9003 "Setting this boolean option enables transparent proxying on this socket.  "
9004 "This socket option allows the calling application to bind to a nonlocal IP "
9005 "address and operate both as a client and a server with the foreign address "
9006 "as the local endpoint.  NOTE: this requires that routing be set up in a way "
9007 "that packets going to the foreign address are routed through the TProxy "
9008 "box.  Enabling this socket option requires superuser privileges (the "
9009 "B<CAP_NET_ADMIN> capability)."
9010 msgstr ""
9011
9012 #. type: Plain text
9013 #: build/C/man7/ip.7:767
9014 msgid ""
9015 "TProxy redirection with the iptables TPROXY target also requires that this "
9016 "option be set on the redirected socket."
9017 msgstr ""
9018
9019 #. type: TP
9020 #: build/C/man7/ip.7:767
9021 #, no-wrap
9022 msgid "B<IP_TTL> (since Linux 1.0)"
9023 msgstr ""
9024
9025 #.  FIXME Document IP_XFRM_POLICY
9026 #.  Since Linux 2.5.48
9027 #.  Needs CAP_NET_ADMIN
9028 #. type: Plain text
9029 #: build/C/man7/ip.7:774
9030 msgid ""
9031 "Set or retrieve the current time-to-live field that is used in every packet "
9032 "sent from this socket."
9033 msgstr ""
9034
9035 #.  FIXME As at 2.6.12, 14 Jun 2005, the following are undocumented:
9036 #.      ip_queue_maxlen
9037 #.      ip_conntrack_max
9038 #. type: Plain text
9039 #: build/C/man7/ip.7:790
9040 msgid ""
9041 "The IP protocol supports a set of I</proc> interfaces to configure some "
9042 "global parameters.  The parameters can be accessed by reading or writing "
9043 "files in the directory I</proc/sys/net/ipv4/>.  Interfaces described as "
9044 "I<Boolean> take an integer value, with a nonzero value (\"true\") meaning "
9045 "that the corresponding option is enabled, and a zero value (\"false\")  "
9046 "meaning that the option is disabled."
9047 msgstr ""
9048
9049 #. type: TP
9050 #: build/C/man7/ip.7:790
9051 #, no-wrap
9052 msgid "I<ip_always_defrag> (Boolean; since Linux 2.2.13)"
9053 msgstr ""
9054
9055 #. type: Plain text
9056 #: build/C/man7/ip.7:796
9057 msgid ""
9058 "[New with kernel 2.2.13; in earlier kernel versions this feature was "
9059 "controlled at compile time by the B<CONFIG_IP_ALWAYS_DEFRAG> option; this "
9060 "option is not present in 2.4.x and later]"
9061 msgstr ""
9062
9063 #. type: Plain text
9064 #: build/C/man7/ip.7:803
9065 msgid ""
9066 "When this boolean flag is enabled (not equal 0), incoming fragments (parts "
9067 "of IP packets that arose when some host between origin and destination "
9068 "decided that the packets were too large and cut them into pieces) will be "
9069 "reassembled (defragmented) before being processed, even if they are about to "
9070 "be forwarded."
9071 msgstr ""
9072
9073 #. type: Plain text
9074 #: build/C/man7/ip.7:810
9075 msgid ""
9076 "Only enable if running either a firewall that is the sole link to your "
9077 "network or a transparent proxy; never ever use it for a normal router or "
9078 "host.  Otherwise fragmented communication can be disturbed if the fragments "
9079 "travel over different links.  Defragmentation also has a large memory and "
9080 "CPU time cost."
9081 msgstr ""
9082
9083 #. type: Plain text
9084 #: build/C/man7/ip.7:814
9085 msgid ""
9086 "This is automagically turned on when masquerading or transparent proxying "
9087 "are configured."
9088 msgstr ""
9089
9090 #. type: TP
9091 #: build/C/man7/ip.7:814
9092 #, no-wrap
9093 msgid "I<ip_autoconfig> (since Linux 2.2 to 2.6.17)"
9094 msgstr ""
9095
9096 #.  Precisely: since 2.1.68
9097 #.  FIXME document ip_autoconfig
9098 #. type: Plain text
9099 #: build/C/man7/ip.7:820
9100 msgid "Not documented."
9101 msgstr ""
9102
9103 #. type: TP
9104 #: build/C/man7/ip.7:820
9105 #, no-wrap
9106 msgid "I<ip_default_ttl> (integer; default: 64; since Linux 2.2)"
9107 msgstr ""
9108
9109 #.  Precisely: 2.1.15
9110 #. type: Plain text
9111 #: build/C/man7/ip.7:828
9112 msgid ""
9113 "Set the default time-to-live value of outgoing packets.  This can be changed "
9114 "per socket with the B<IP_TTL> option."
9115 msgstr ""
9116
9117 #. type: TP
9118 #: build/C/man7/ip.7:828
9119 #, no-wrap
9120 msgid "I<ip_dynaddr> (Boolean; default: disabled; since Linux 2.0.31)"
9121 msgstr ""
9122
9123 #. type: Plain text
9124 #: build/C/man7/ip.7:835
9125 msgid ""
9126 "Enable dynamic socket address and masquerading entry rewriting on interface "
9127 "address change.  This is useful for dialup interface with changing IP "
9128 "addresses.  0 means no rewriting, 1 turns it on and 2 enables verbose mode."
9129 msgstr ""
9130
9131 #. type: TP
9132 #: build/C/man7/ip.7:835
9133 #, no-wrap
9134 msgid "I<ip_forward> (Boolean; default: disabled; since Linux 1.2)"
9135 msgstr ""
9136
9137 #. type: Plain text
9138 #: build/C/man7/ip.7:840
9139 msgid ""
9140 "Enable IP forwarding with a boolean flag.  IP forwarding can be also set on "
9141 "a per-interface basis."
9142 msgstr ""
9143
9144 #. type: TP
9145 #: build/C/man7/ip.7:840
9146 #, no-wrap
9147 msgid "I<ip_local_port_range> (since Linux 2.2)"
9148 msgstr ""
9149
9150 #.  Precisely: since 2.1.68
9151 #. type: Plain text
9152 #: build/C/man7/ip.7:854
9153 msgid ""
9154 "Contains two integers that define the default local port range allocated to "
9155 "sockets.  Allocation starts with the first number and ends with the second "
9156 "number.  Note that these should not conflict with the ports used by "
9157 "masquerading (although the case is handled).  Also arbitrary choices may "
9158 "cause problems with some firewall packet filters that make assumptions about "
9159 "the local ports in use.  First number should be at least greater than 1024, "
9160 "or better, greater than 4096, to avoid clashes with well known ports and to "
9161 "minimize firewall problems."
9162 msgstr ""
9163
9164 #. type: TP
9165 #: build/C/man7/ip.7:854
9166 #, no-wrap
9167 msgid "I<ip_no_pmtu_disc> (Boolean; default: disabled; since Linux 2.2)"
9168 msgstr ""
9169
9170 #.  Precisely: 2.1.15
9171 #
9172 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
9173 #. type: Plain text
9174 #: build/C/man7/ip.7:866
9175 msgid ""
9176 "If enabled, don't do Path MTU Discovery for TCP sockets by default.  Path "
9177 "MTU discovery may fail if misconfigured firewalls (that drop all ICMP "
9178 "packets) or misconfigured interfaces (e.g., a point-to-point link where the "
9179 "both ends don't agree on the MTU) are on the path.  It is better to fix the "
9180 "broken routers on the path than to turn off Path MTU Discovery globally, "
9181 "because not doing it incurs a high cost to the network."
9182 msgstr ""
9183
9184 #. type: TP
9185 #: build/C/man7/ip.7:866
9186 #, no-wrap
9187 msgid "I<ip_nonlocal_bind> (Boolean; default: disabled; since Linux 2.4)"
9188 msgstr ""
9189
9190 #.  Precisely: patch-2.4.0-test10
9191 #
9192 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
9193 #. type: Plain text
9194 #: build/C/man7/ip.7:875
9195 msgid ""
9196 "If set, allows processes to B<bind>(2)  to nonlocal IP addresses, which can "
9197 "be quite useful, but may break some applications."
9198 msgstr ""
9199
9200 #. type: TP
9201 #: build/C/man7/ip.7:875
9202 #, no-wrap
9203 msgid "I<ip6frag_time> (integer; default: 30)"
9204 msgstr ""
9205
9206 #
9207 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
9208 #. type: Plain text
9209 #: build/C/man7/ip.7:880
9210 msgid "Time in seconds to keep an IPv6 fragment in memory."
9211 msgstr ""
9212
9213 #. type: TP
9214 #: build/C/man7/ip.7:880
9215 #, no-wrap
9216 msgid "I<ip6frag_secret_interval> (integer; default: 600)"
9217 msgstr ""
9218
9219 #. type: Plain text
9220 #: build/C/man7/ip.7:884
9221 msgid ""
9222 "Regeneration interval (in seconds) of the hash secret (or lifetime for the "
9223 "hash secret) for IPv6 fragments."
9224 msgstr ""
9225
9226 #. type: TP
9227 #: build/C/man7/ip.7:884
9228 #, no-wrap
9229 msgid "I<ipfrag_high_thresh> (integer), I<ipfrag_low_thresh> (integer)"
9230 msgstr ""
9231
9232 #. type: Plain text
9233 #: build/C/man7/ip.7:891
9234 msgid ""
9235 "If the amount of queued IP fragments reaches I<ipfrag_high_thresh>, the "
9236 "queue is pruned down to I<ipfrag_low_thresh>.  Contains an integer with the "
9237 "number of bytes."
9238 msgstr ""
9239
9240 #. type: TP
9241 #: build/C/man7/ip.7:891
9242 #, no-wrap
9243 msgid "I<neigh/*>"
9244 msgstr ""
9245
9246 #.  FIXME Document the conf/*/* interfaces
9247 #.  FIXME Document the route/* interfaces
9248 #.  FIXME document them all
9249 #. type: Plain text
9250 #: build/C/man7/ip.7:898
9251 msgid "See B<arp>(7)."
9252 msgstr ""
9253
9254 #.  2006-04-02, mtk
9255 #.  commented out the following because ipchains is obsolete
9256 #.  .PP
9257 #.  The ioctls to configure firewalling are documented in
9258 #.  .BR ipfw (4)
9259 #.  from the
9260 #.  .B ipchains
9261 #.  package.
9262 #. type: Plain text
9263 #: build/C/man7/ip.7:911
9264 msgid "All ioctls described in B<socket>(7)  apply to B<ip>."
9265 msgstr ""
9266
9267 #.  FIXME Add a discussion of multicasting
9268 #. type: Plain text
9269 #: build/C/man7/ip.7:915
9270 msgid ""
9271 "Ioctls to configure generic device parameters are described in "
9272 "B<netdevice>(7)."
9273 msgstr ""
9274
9275 #. type: Plain text
9276 #: build/C/man7/ip.7:935
9277 msgid ""
9278 "The user tried to execute an operation without the necessary permissions.  "
9279 "These include: sending a packet to a broadcast address without having the "
9280 "B<SO_BROADCAST> flag set; sending a packet via a I<prohibit> route; "
9281 "modifying firewall settings without superuser privileges (the "
9282 "B<CAP_NET_ADMIN> capability); binding to a privileged port without superuser "
9283 "privileges (the B<CAP_NET_BIND_SERVICE> capability)."
9284 msgstr ""
9285
9286 #. type: Plain text
9287 #: build/C/man7/ip.7:948
9288 msgid "An connection operation on a nonblocking socket is already in progress."
9289 msgstr ""
9290
9291 #. type: Plain text
9292 #: build/C/man7/ip.7:957
9293 msgid ""
9294 "No valid routing table entry matches the destination address.  This error "
9295 "can be caused by a ICMP message from a remote router or for the local "
9296 "routing table."
9297 msgstr ""
9298
9299 #. type: Plain text
9300 #: build/C/man7/ip.7:963
9301 msgid ""
9302 "Invalid argument passed.  For send operations this can be caused by sending "
9303 "to a I<blackhole> route."
9304 msgstr ""
9305
9306 #. type: Plain text
9307 #: build/C/man7/ip.7:970
9308 msgid "Datagram is bigger than an MTU on the path and it cannot be fragmented."
9309 msgstr ""
9310
9311 #. type: TP
9312 #: build/C/man7/ip.7:970
9313 #, no-wrap
9314 msgid "B<ENOBUFS>, B<ENOMEM>"
9315 msgstr ""
9316
9317 #. type: Plain text
9318 #: build/C/man7/ip.7:975
9319 msgid ""
9320 "Not enough free memory.  This often means that the memory allocation is "
9321 "limited by the socket buffer limits, not by the system memory, but this is "
9322 "not 100% consistent."
9323 msgstr ""
9324
9325 #. type: Plain text
9326 #: build/C/man7/ip.7:993
9327 msgid ""
9328 "User doesn't have permission to set high priority, change configuration, or "
9329 "send signals to the requested process or group."
9330 msgstr ""
9331
9332 #. type: Plain text
9333 #: build/C/man7/ip.7:999
9334 msgid "The socket is not configured or an unknown socket type was requested."
9335 msgstr ""
9336
9337 #. type: Plain text
9338 #: build/C/man7/ip.7:1006
9339 msgid ""
9340 "Other errors may be generated by the overlaying protocols; see B<tcp>(7), "
9341 "B<raw>(7), B<udp>(7)  and B<socket>(7)."
9342 msgstr ""
9343
9344 #.  IP_PASSSEC is Linux-specific
9345 #.  IP_XFRM_POLICY is Linux-specific
9346 #.  IP_IPSEC_POLICY is a nonstandard extension, also present on some BSDs
9347 #. type: Plain text
9348 #: build/C/man7/ip.7:1020
9349 msgid ""
9350 "B<IP_FREEBIND>, B<IP_MTU>, B<IP_MTU_DISCOVER>, B<IP_RECVORIGDSTADDR>, "
9351 "B<IP_PKTINFO>, B<IP_RECVERR>, B<IP_ROUTER_ALERT>, and B<IP_TRANSPARENT> are "
9352 "Linux-specific."
9353 msgstr ""
9354
9355 #. type: Plain text
9356 #: build/C/man7/ip.7:1029
9357 msgid ""
9358 "Be very careful with the B<SO_BROADCAST> option - it is not privileged in "
9359 "Linux.  It is easy to overload the network with careless broadcasts.  For "
9360 "new application protocols it is better to use a multicast group instead of "
9361 "broadcasting.  Broadcasting is discouraged."
9362 msgstr ""
9363
9364 #. type: Plain text
9365 #: build/C/man7/ip.7:1039
9366 msgid ""
9367 "Some other BSD sockets implementations provide B<IP_RCVDSTADDR> and "
9368 "B<IP_RECVIF> socket options to get the destination address and the interface "
9369 "of received datagrams.  Linux has the more general B<IP_PKTINFO> for the "
9370 "same task."
9371 msgstr ""
9372
9373 #. type: Plain text
9374 #: build/C/man7/ip.7:1048
9375 msgid ""
9376 "Some BSD sockets implementations also provide an B<IP_RECVTTL> option, but "
9377 "an ancillary message with type B<IP_RECVTTL> is passed with the incoming "
9378 "packet.  This is different from the B<IP_TTL> option used in Linux."
9379 msgstr ""
9380
9381 #. type: Plain text
9382 #: build/C/man7/ip.7:1054
9383 msgid ""
9384 "Using B<SOL_IP> socket options level isn't portable, BSD-based stacks use "
9385 "B<IPPROTO_IP> level."
9386 msgstr ""
9387
9388 #. type: Plain text
9389 #: build/C/man7/ip.7:1067
9390 msgid ""
9391 "For compatibility with Linux 2.0, the obsolete B<socket(AF_INET, "
9392 "SOCK_PACKET, >I<protocol>B<)> syntax is still supported to open a "
9393 "B<packet>(7)  socket.  This is deprecated and should be replaced by "
9394 "B<socket(AF_PACKET, SOCK_RAW, >I<protocol>B<)> instead.  The main difference "
9395 "is the new I<sockaddr_ll> address structure for generic link layer "
9396 "information instead of the old B<sockaddr_pkt>."
9397 msgstr ""
9398
9399 #. type: Plain text
9400 #: build/C/man7/ip.7:1072
9401 msgid ""
9402 "The ioctls to configure IP-specific interface options and ARP tables are not "
9403 "described."
9404 msgstr ""
9405
9406 #. type: Plain text
9407 #: build/C/man7/ip.7:1076
9408 msgid ""
9409 "Some versions of glibc forget to declare I<in_pktinfo>.  Workaround "
9410 "currently is to copy it into your program from this man page."
9411 msgstr ""
9412
9413 #.  .SH AUTHORS
9414 #.  This man page was written by Andi Kleen.
9415 #. type: Plain text
9416 #: build/C/man7/ip.7:1086
9417 msgid ""
9418 "Receiving the original destination address with B<MSG_ERRQUEUE> in "
9419 "I<msg_name> by B<recvmsg>(2)  does not work in some 2.2 kernels."
9420 msgstr ""
9421
9422 #. type: Plain text
9423 #: build/C/man7/ip.7:1097
9424 msgid ""
9425 "B<recvmsg>(2), B<sendmsg>(2), B<byteorder>(3), B<ipfw>(4), "
9426 "B<capabilities>(7), B<netlink>(7), B<raw>(7), B<socket>(7), B<tcp>(7), "
9427 "B<udp>(7)"
9428 msgstr ""
9429
9430 #. type: Plain text
9431 #: build/C/man7/ip.7:1099
9432 msgid "RFC\\ 791 for the original IP specification."
9433 msgstr ""
9434
9435 #. type: Plain text
9436 #: build/C/man7/ip.7:1101
9437 msgid "RFC\\ 1122 for the IPv4 host requirements."
9438 msgstr ""
9439
9440 #.  FIXME autobind INADDR REUSEADDR
9441 #. type: Plain text
9442 #: build/C/man7/ip.7:1104
9443 msgid "RFC\\ 1812 for the IPv4 router requirements."
9444 msgstr ""
9445
9446 #. type: TH
9447 #: build/C/man7/ipv6.7:7
9448 #, no-wrap
9449 msgid "IPV6"
9450 msgstr ""
9451
9452 #. type: TH
9453 #: build/C/man7/ipv6.7:7
9454 #, no-wrap
9455 msgid "2011-09-08"
9456 msgstr ""
9457
9458 #. type: Plain text
9459 #: build/C/man7/ipv6.7:10
9460 msgid "ipv6, AF_INET6 - Linux IPv6 protocol implementation"
9461 msgstr ""
9462
9463 #. type: Plain text
9464 #: build/C/man7/ipv6.7:16
9465 msgid "I<tcp6_socket>B< = socket(AF_INET6, SOCK_STREAM, 0);>"
9466 msgstr ""
9467
9468 #. type: Plain text
9469 #: build/C/man7/ipv6.7:18
9470 msgid "I<raw6_socket>B< = socket(AF_INET6, SOCK_RAW, >I<protocol>B<);>"
9471 msgstr ""
9472
9473 #. type: Plain text
9474 #: build/C/man7/ipv6.7:20
9475 msgid "I<udp6_socket>B< = socket(AF_INET6, SOCK_DGRAM, >I<protocol>B<);>"
9476 msgstr ""
9477
9478 #. type: Plain text
9479 #: build/C/man7/ipv6.7:27
9480 msgid ""
9481 "Linux 2.2 optionally implements the Internet Protocol, version 6.  This man "
9482 "page contains a description of the IPv6 basic API as implemented by the "
9483 "Linux kernel and glibc 2.1.  The interface is based on the BSD sockets "
9484 "interface; see B<socket>(7)."
9485 msgstr ""
9486
9487 #. type: Plain text
9488 #: build/C/man7/ipv6.7:32
9489 msgid ""
9490 "The IPv6 API aims to be mostly compatible with the IPv4 API (see B<ip>(7)).  "
9491 "Only differences are described in this man page."
9492 msgstr ""
9493
9494 #. type: Plain text
9495 #: build/C/man7/ipv6.7:44
9496 msgid ""
9497 "To bind an B<AF_INET6> socket to any process, the local address should be "
9498 "copied from the I<in6addr_any> variable which has I<in6_addr> type.  In "
9499 "static initializations, B<IN6ADDR_ANY_INIT> may also be used, which expands "
9500 "to a constant expression.  Both of them are in network byte order."
9501 msgstr ""
9502
9503 #. type: Plain text
9504 #: build/C/man7/ipv6.7:51
9505 msgid ""
9506 "The IPv6 loopback address (::1) is available in the global "
9507 "I<in6addr_loopback> variable.  For initializations, B<IN6ADDR_LOOPBACK_INIT> "
9508 "should be used."
9509 msgstr ""
9510
9511 #. type: Plain text
9512 #: build/C/man7/ipv6.7:58
9513 msgid ""
9514 "IPv4 connections can be handled with the v6 API by using the v4-mapped-on-v6 "
9515 "address type; thus a program only needs to support this API type to support "
9516 "both protocols.  This is handled transparently by the address handling "
9517 "functions in the C library."
9518 msgstr ""
9519
9520 #. type: Plain text
9521 #: build/C/man7/ipv6.7:63
9522 msgid ""
9523 "IPv4 and IPv6 share the local port space.  When you get an IPv4 connection "
9524 "or packet to a IPv6 socket, its source address will be mapped to v6 and it "
9525 "will be mapped to v6."
9526 msgstr ""
9527
9528 #. type: Plain text
9529 #: build/C/man7/ipv6.7:73
9530 #, no-wrap
9531 msgid ""
9532 "struct sockaddr_in6 {\n"
9533 "    sa_family_t     sin6_family;   /* AF_INET6 */\n"
9534 "    in_port_t       sin6_port;     /* port number */\n"
9535 "    uint32_t        sin6_flowinfo; /* IPv6 flow information */\n"
9536 "    struct in6_addr sin6_addr;     /* IPv6 address */\n"
9537 "    uint32_t        sin6_scope_id; /* Scope ID (new in 2.4) */\n"
9538 "};\n"
9539 msgstr ""
9540
9541 #. type: Plain text
9542 #: build/C/man7/ipv6.7:77
9543 #, no-wrap
9544 msgid ""
9545 "struct in6_addr {\n"
9546 "    unsigned char   s6_addr[16];   /* IPv6 address */\n"
9547 "};\n"
9548 msgstr ""
9549
9550 #. type: Plain text
9551 #: build/C/man7/ipv6.7:99
9552 msgid ""
9553 "I<sin6_family> is always set to B<AF_INET6>; I<sin6_port> is the protocol "
9554 "port (see I<sin_port> in B<ip>(7)); I<sin6_flowinfo> is the IPv6 flow "
9555 "identifier; I<sin6_addr> is the 128-bit IPv6 address.  I<sin6_scope_id> is "
9556 "an ID depending on the scope of the address.  It is new in Linux 2.4.  Linux "
9557 "only supports it for link scope addresses, in that case I<sin6_scope_id> "
9558 "contains the interface index (see B<netdevice>(7))"
9559 msgstr ""
9560
9561 #. type: Plain text
9562 #: build/C/man7/ipv6.7:105
9563 msgid ""
9564 "IPv6 supports several address types: unicast to address a single host, "
9565 "multicast to address a group of hosts, anycast to address the nearest member "
9566 "of a group of hosts (not implemented in Linux), IPv4-on-IPv6 to address a "
9567 "IPv4 host, and other reserved address types."
9568 msgstr ""
9569
9570 #. type: Plain text
9571 #: build/C/man7/ipv6.7:111
9572 msgid ""
9573 "The address notation for IPv6 is a group of 8 4-digit hexadecimal numbers, "
9574 "separated with a \\(aq:\\(aq.  \\&\"::\" stands for a string of 0 bits.  "
9575 "Special addresses are ::1 for loopback and ::FFFF:E<lt>IPv4 addressE<gt> for "
9576 "IPv4-mapped-on-IPv6."
9577 msgstr ""
9578
9579 #. type: Plain text
9580 #: build/C/man7/ipv6.7:113
9581 msgid "The port space of IPv6 is shared with IPv4."
9582 msgstr ""
9583
9584 #. type: Plain text
9585 #: build/C/man7/ipv6.7:121
9586 msgid ""
9587 "IPv6 supports some protocol-specific socket options that can be set with "
9588 "B<setsockopt>(2)  and read with B<getsockopt>(2).  The socket option level "
9589 "for IPv6 is B<IPPROTO_IPV6>.  A boolean integer flag is zero when it is "
9590 "false, otherwise true."
9591 msgstr ""
9592
9593 #. type: TP
9594 #: build/C/man7/ipv6.7:121
9595 #, no-wrap
9596 msgid "B<IPV6_ADDRFORM>"
9597 msgstr ""
9598
9599 #. type: Plain text
9600 #: build/C/man7/ipv6.7:135
9601 msgid ""
9602 "Turn an B<AF_INET6> socket into a socket of a different address family.  "
9603 "Only B<AF_INET> is currently supported for that.  It is only allowed for "
9604 "IPv6 sockets that are connected and bound to a v4-mapped-on-v6 address.  The "
9605 "argument is a pointer to an integer containing B<AF_INET>.  This is useful "
9606 "to pass v4-mapped sockets as file descriptors to programs that don't know "
9607 "how to deal with the IPv6 API."
9608 msgstr ""
9609
9610 #. type: TP
9611 #: build/C/man7/ipv6.7:135
9612 #, no-wrap
9613 msgid "B<IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP>"
9614 msgstr ""
9615
9616 #.  FIXME IPV6_CHECKSUM is not documented, and probably should be
9617 #.  FIXME IPV6_JOIN_ANYCAST is not documented, and probably should be
9618 #.  FIXME IPV6_LEAVE_ANYCAST is not documented, and probably should be
9619 #.  FIXME IPV6_RECVPKTINFO is not documented, and probably should be
9620 #.  FIXME IPV6_2292PKTINFO is not documented, and probably should be
9621 #.  FIXME there are probably many other IPV6_* socket options that
9622 #.  should be documented
9623 #. type: Plain text
9624 #: build/C/man7/ipv6.7:148
9625 msgid ""
9626 "Control membership in multicast groups.  Argument is a pointer to a I<struct "
9627 "ipv6_mreq> structure."
9628 msgstr ""
9629
9630 #. type: TP
9631 #: build/C/man7/ipv6.7:148
9632 #, no-wrap
9633 msgid "B<IPV6_MTU>"
9634 msgstr ""
9635
9636 #. type: Plain text
9637 #: build/C/man7/ipv6.7:154
9638 msgid ""
9639 "Set the MTU to be used for the socket.  The MTU is limited by the device MTU "
9640 "or the path MTU when path MTU discovery is enabled.  Argument is a pointer "
9641 "to integer."
9642 msgstr ""
9643
9644 #. type: TP
9645 #: build/C/man7/ipv6.7:154
9646 #, no-wrap
9647 msgid "B<IPV6_MTU_DISCOVER>"
9648 msgstr ""
9649
9650 #. type: Plain text
9651 #: build/C/man7/ipv6.7:162
9652 msgid ""
9653 "Control path-MTU discovery on the socket.  See B<IP_MTU_DISCOVER> in "
9654 "B<ip>(7)  for details."
9655 msgstr ""
9656
9657 #. type: TP
9658 #: build/C/man7/ipv6.7:162
9659 #, no-wrap
9660 msgid "B<IPV6_MULTICAST_HOPS>"
9661 msgstr ""
9662
9663 #. type: Plain text
9664 #: build/C/man7/ipv6.7:169
9665 msgid ""
9666 "Set the multicast hop limit for the socket.  Argument is a pointer to an "
9667 "integer.  -1 in the value means use the route default, otherwise it should "
9668 "be between 0 and 255."
9669 msgstr ""
9670
9671 #. type: TP
9672 #: build/C/man7/ipv6.7:169
9673 #, no-wrap
9674 msgid "B<IPV6_MULTICAST_IF>"
9675 msgstr ""
9676
9677 #. type: Plain text
9678 #: build/C/man7/ipv6.7:181
9679 msgid ""
9680 "Set the device for outgoing multicast packets on the socket.  This is only "
9681 "allowed for B<SOCK_DGRAM> and B<SOCK_RAW> socket.  The argument is a pointer "
9682 "to an interface index (see B<netdevice>(7))  in an integer."
9683 msgstr ""
9684
9685 #. type: TP
9686 #: build/C/man7/ipv6.7:181
9687 #, no-wrap
9688 msgid "B<IPV6_MULTICAST_LOOP>"
9689 msgstr ""
9690
9691 #. type: Plain text
9692 #: build/C/man7/ipv6.7:185
9693 msgid ""
9694 "Control whether the socket sees multicast packets that it has send itself.  "
9695 "Argument is a pointer to boolean."
9696 msgstr ""
9697
9698 #. type: TP
9699 #: build/C/man7/ipv6.7:185
9700 #, no-wrap
9701 msgid "B<IPV6_PKTINFO>"
9702 msgstr ""
9703
9704 #. type: Plain text
9705 #: build/C/man7/ipv6.7:196
9706 msgid ""
9707 "Set delivery of the B<IPV6_PKTINFO> control message on incoming datagrams.  "
9708 "Only allowed for B<SOCK_DGRAM> or B<SOCK_RAW> sockets.  Argument is a "
9709 "pointer to a boolean value in an integer."
9710 msgstr ""
9711
9712 #. type: Plain text
9713 #: build/C/man7/ipv6.7:199
9714 msgid ""
9715 "B<IPV6_RTHDR, IPV6_AUTHHDR, IPV6_DSTOPTS, IPV6_HOPOPTS, IPV6_FLOWINFO, "
9716 "IPV6_HOPLIMIT>"
9717 msgstr ""
9718
9719 #. type: Plain text
9720 #: build/C/man7/ipv6.7:224
9721 msgid ""
9722 "Set delivery of control messages for incoming datagrams containing extension "
9723 "headers from the received packet.  B<IPV6_RTHDR> delivers the routing "
9724 "header, B<IPV6_AUTHHDR> delivers the authentication header, B<IPV6_DSTOPTS> "
9725 "delivers the destination options, B<IPV6_HOPOPTS> delivers the hop options, "
9726 "B<IPV6_FLOWINFO> delivers an integer containing the flow ID, "
9727 "B<IPV6_HOPLIMIT> delivers an integer containing the hop count of the "
9728 "packet.  The control messages have the same type as the socket option.  All "
9729 "these header options can also be set for outgoing packets by putting the "
9730 "appropriate control message into the control buffer of B<sendmsg>(2).  Only "
9731 "allowed for B<SOCK_DGRAM> or B<SOCK_RAW> sockets.  Argument is a pointer to "
9732 "a boolean value."
9733 msgstr ""
9734
9735 #. type: TP
9736 #: build/C/man7/ipv6.7:224
9737 #, no-wrap
9738 msgid "B<IPV6_RECVERR>"
9739 msgstr ""
9740
9741 #. type: Plain text
9742 #: build/C/man7/ipv6.7:233
9743 msgid ""
9744 "Control receiving of asynchronous error options.  See B<IP_RECVERR> in "
9745 "B<ip>(7)  for details.  Argument is a pointer to boolean."
9746 msgstr ""
9747
9748 #. type: TP
9749 #: build/C/man7/ipv6.7:233
9750 #, no-wrap
9751 msgid "B<IPV6_ROUTER_ALERT>"
9752 msgstr ""
9753
9754 #. type: Plain text
9755 #: build/C/man7/ipv6.7:246
9756 msgid ""
9757 "Pass forwarded packets containing a router alert hop-by-hop option to this "
9758 "socket.  Only allowed for SOCK_RAW sockets.  The tapped packets are not "
9759 "forwarded by the kernel, it is the user's responsibility to send them out "
9760 "again.  Argument is a pointer to an integer.  A positive integer indicates a "
9761 "router alert option value to intercept.  Packets carrying a router alert "
9762 "option with a value field containing this integer will be delivered to the "
9763 "socket.  A negative integer disables delivery of packets with router alert "
9764 "options to this socket."
9765 msgstr ""
9766
9767 #. type: TP
9768 #: build/C/man7/ipv6.7:246
9769 #, no-wrap
9770 msgid "B<IPV6_UNICAST_HOPS>"
9771 msgstr ""
9772
9773 #. type: Plain text
9774 #: build/C/man7/ipv6.7:252
9775 msgid ""
9776 "Set the unicast hop limit for the socket.  Argument is a pointer to an "
9777 "integer.  -1 in the value means use the route default, otherwise it should "
9778 "be between 0 and 255."
9779 msgstr ""
9780
9781 #. type: TP
9782 #: build/C/man7/ipv6.7:252
9783 #, no-wrap
9784 msgid "B<IPV6_V6ONLY> (since Linux 2.4.21 and 2.6)"
9785 msgstr ""
9786
9787 #.  See RFC 3493
9788 #. type: Plain text
9789 #: build/C/man7/ipv6.7:259
9790 msgid ""
9791 "If this flag is set to true (nonzero), then the socket is restricted to "
9792 "sending and receiving IPv6 packets only.  In this case, an IPv4 and an IPv6 "
9793 "application can bind to a single port at the same time."
9794 msgstr ""
9795
9796 #. type: Plain text
9797 #: build/C/man7/ipv6.7:263
9798 msgid ""
9799 "If this flag is set to false (zero), then the socket can be used to send and "
9800 "receive packets to and from an IPv6 address or an IPv4-mapped IPv6 address."
9801 msgstr ""
9802
9803 #. type: Plain text
9804 #: build/C/man7/ipv6.7:265
9805 msgid "The argument is a pointer to a boolean value in an integer."
9806 msgstr ""
9807
9808 #.  FLOWLABEL_MGR, FLOWINFO_SEND
9809 #. type: Plain text
9810 #: build/C/man7/ipv6.7:270
9811 msgid ""
9812 "The default value for this flag is defined by the contents of the file "
9813 "I</proc/sys/net/ipv6/bindv6only>.  The default value for that file is 0 "
9814 "(false)."
9815 msgstr ""
9816
9817 #. type: Plain text
9818 #: build/C/man7/ipv6.7:275
9819 msgid ""
9820 "The older I<libinet6> libc5 based IPv6 API implementation for Linux is not "
9821 "described here and may vary in details."
9822 msgstr ""
9823
9824 #. type: Plain text
9825 #: build/C/man7/ipv6.7:291
9826 msgid ""
9827 "Linux 2.4 will break binary compatibility for the I<sockaddr_in6> for 64-bit "
9828 "hosts by changing the alignment of I<in6_addr> and adding an additional "
9829 "I<sin6_scope_id> field.  The kernel interfaces stay compatible, but a "
9830 "program including I<sockaddr_in6> or I<in6_addr> into other structures may "
9831 "not be.  This is not a problem for 32-bit hosts like i386."
9832 msgstr ""
9833
9834 #. type: Plain text
9835 #: build/C/man7/ipv6.7:299
9836 msgid ""
9837 "The I<sin6_flowinfo> field is new in Linux 2.4.  It is transparently "
9838 "passed/read by the kernel when the passed address length contains it.  Some "
9839 "programs that pass a longer address buffer and then check the outgoing "
9840 "address length may break."
9841 msgstr ""
9842
9843 #. type: Plain text
9844 #: build/C/man7/ipv6.7:309
9845 msgid ""
9846 "The I<sockaddr_in6> structure is bigger than the generic I<sockaddr>.  "
9847 "Programs that assume that all address types can be stored safely in a "
9848 "I<struct sockaddr> need to be changed to use I<struct sockaddr_storage> for "
9849 "that instead."
9850 msgstr ""
9851
9852 #. type: Plain text
9853 #: build/C/man7/ipv6.7:314
9854 msgid ""
9855 "The IPv6 extended API as in RFC\\ 2292 is currently only partly implemented; "
9856 "although the 2.2 kernel has near complete support for receiving options, the "
9857 "macros for generating IPv6 options are missing in glibc 2.1."
9858 msgstr ""
9859
9860 #. type: Plain text
9861 #: build/C/man7/ipv6.7:316
9862 msgid "IPSec support for EH and AH headers is missing."
9863 msgstr ""
9864
9865 #. type: Plain text
9866 #: build/C/man7/ipv6.7:318
9867 msgid "Flow label management is not complete and not documented here."
9868 msgstr ""
9869
9870 #. type: Plain text
9871 #: build/C/man7/ipv6.7:320
9872 msgid "This man page is not complete."
9873 msgstr ""
9874
9875 #. type: Plain text
9876 #: build/C/man7/ipv6.7:323
9877 msgid "B<cmsg>(3), B<ip>(7)"
9878 msgstr ""
9879
9880 #. type: Plain text
9881 #: build/C/man7/ipv6.7:326
9882 msgid "RFC\\ 2553: IPv6 BASIC API.  Linux tries to be compliant to this."
9883 msgstr ""
9884
9885 #. type: Plain text
9886 #: build/C/man7/ipv6.7:328
9887 msgid "RFC\\ 2460: IPv6 specification."
9888 msgstr ""
9889
9890 #. type: TH
9891 #: build/C/man7/netdevice.7:15
9892 #, no-wrap
9893 msgid "NETDEVICE"
9894 msgstr ""
9895
9896 #. type: TH
9897 #: build/C/man7/netdevice.7:15
9898 #, no-wrap
9899 msgid "2012-04-26"
9900 msgstr ""
9901
9902 #. type: Plain text
9903 #: build/C/man7/netdevice.7:18
9904 msgid "netdevice - Low level access to Linux network devices"
9905 msgstr ""
9906
9907 #. type: Plain text
9908 #: build/C/man7/netdevice.7:20
9909 msgid "B<#include E<lt>sys/ioctl.hE<gt>>"
9910 msgstr ""
9911
9912 #. type: Plain text
9913 #: build/C/man7/netdevice.7:22
9914 msgid "B<#include E<lt>net/if.hE<gt>>"
9915 msgstr ""
9916
9917 #. type: Plain text
9918 #: build/C/man7/netdevice.7:25
9919 msgid ""
9920 "This man page describes the sockets interface which is used to configure "
9921 "network devices."
9922 msgstr ""
9923
9924 #. type: Plain text
9925 #: build/C/man7/netdevice.7:32
9926 msgid ""
9927 "Linux supports some standard ioctls to configure network devices.  They can "
9928 "be used on any socket's file descriptor regardless of the family or type.  "
9929 "They pass an I<ifreq> structure:"
9930 msgstr ""
9931
9932 #. type: Plain text
9933 #: build/C/man7/netdevice.7:53
9934 #, no-wrap
9935 msgid ""
9936 "struct ifreq {\n"
9937 "    char ifr_name[IFNAMSIZ]; /* Interface name */\n"
9938 "    union {\n"
9939 "        struct sockaddr ifr_addr;\n"
9940 "        struct sockaddr ifr_dstaddr;\n"
9941 "        struct sockaddr ifr_broadaddr;\n"
9942 "        struct sockaddr ifr_netmask;\n"
9943 "        struct sockaddr ifr_hwaddr;\n"
9944 "        short           ifr_flags;\n"
9945 "        int             ifr_ifindex;\n"
9946 "        int             ifr_metric;\n"
9947 "        int             ifr_mtu;\n"
9948 "        struct ifmap    ifr_map;\n"
9949 "        char            ifr_slave[IFNAMSIZ];\n"
9950 "        char            ifr_newname[IFNAMSIZ];\n"
9951 "        char           *ifr_data;\n"
9952 "    };\n"
9953 "};\n"
9954 msgstr ""
9955
9956 #. type: Plain text
9957 #: build/C/man7/netdevice.7:61
9958 #, no-wrap
9959 msgid ""
9960 "struct ifconf {\n"
9961 "    int                 ifc_len; /* size of buffer */\n"
9962 "    union {\n"
9963 "        char           *ifc_buf; /* buffer address */\n"
9964 "        struct ifreq   *ifc_req; /* array of structures */\n"
9965 "    };\n"
9966 "};\n"
9967 msgstr ""
9968
9969 #. type: Plain text
9970 #: build/C/man7/netdevice.7:69
9971 msgid ""
9972 "Normally, the user specifies which device to affect by setting I<ifr_name> "
9973 "to the name of the interface.  All other members of the structure may share "
9974 "memory."
9975 msgstr ""
9976
9977 #. type: Plain text
9978 #: build/C/man7/netdevice.7:77
9979 msgid ""
9980 "If an ioctl is marked as privileged then using it requires an effective user "
9981 "ID of 0 or the B<CAP_NET_ADMIN> capability.  If this is not the case "
9982 "B<EPERM> will be returned."
9983 msgstr ""
9984
9985 #. type: TP
9986 #: build/C/man7/netdevice.7:77
9987 #, no-wrap
9988 msgid "B<SIOCGIFNAME>"
9989 msgstr ""
9990
9991 #. type: Plain text
9992 #: build/C/man7/netdevice.7:85
9993 msgid ""
9994 "Given the I<ifr_ifindex>, return the name of the interface in I<ifr_name>.  "
9995 "This is the only ioctl which returns its result in I<ifr_name>."
9996 msgstr ""
9997
9998 #. type: TP
9999 #: build/C/man7/netdevice.7:85
10000 #, no-wrap
10001 msgid "B<SIOCGIFINDEX>"
10002 msgstr ""
10003
10004 #. type: Plain text
10005 #: build/C/man7/netdevice.7:89
10006 msgid "Retrieve the interface index of the interface into I<ifr_ifindex>."
10007 msgstr ""
10008
10009 #. type: TP
10010 #: build/C/man7/netdevice.7:89
10011 #, no-wrap
10012 msgid "B<SIOCGIFFLAGS>, B<SIOCSIFFLAGS>"
10013 msgstr ""
10014
10015 #. type: Plain text
10016 #: build/C/man7/netdevice.7:94
10017 msgid ""
10018 "Get or set the active flag word of the device.  I<ifr_flags> contains a bit "
10019 "mask of the following values:"
10020 msgstr ""
10021
10022 #. type: tbl table
10023 #: build/C/man7/netdevice.7:98
10024 #, no-wrap
10025 msgid "Device flags\n"
10026 msgstr ""
10027
10028 #. type: tbl table
10029 #: build/C/man7/netdevice.7:99
10030 #, no-wrap
10031 msgid "IFF_UP:Interface is running.\n"
10032 msgstr ""
10033
10034 #. type: tbl table
10035 #: build/C/man7/netdevice.7:100
10036 #, no-wrap
10037 msgid "IFF_BROADCAST:Valid broadcast address set.\n"
10038 msgstr ""
10039
10040 #. type: tbl table
10041 #: build/C/man7/netdevice.7:101
10042 #, no-wrap
10043 msgid "IFF_DEBUG:Internal debugging flag.\n"
10044 msgstr ""
10045
10046 #. type: tbl table
10047 #: build/C/man7/netdevice.7:102
10048 #, no-wrap
10049 msgid "IFF_LOOPBACK:Interface is a loopback interface.\n"
10050 msgstr ""
10051
10052 #. type: tbl table
10053 #: build/C/man7/netdevice.7:103
10054 #, no-wrap
10055 msgid "IFF_POINTOPOINT:Interface is a point-to-point link.\n"
10056 msgstr ""
10057
10058 #. type: tbl table
10059 #: build/C/man7/netdevice.7:104
10060 #, no-wrap
10061 msgid "IFF_RUNNING:Resources allocated.\n"
10062 msgstr ""
10063
10064 #. type: tbl table
10065 #: build/C/man7/netdevice.7:105
10066 #, no-wrap
10067 msgid "IFF_NOARP:No arp protocol, L2 destination address not set.\n"
10068 msgstr ""
10069
10070 #. type: tbl table
10071 #: build/C/man7/netdevice.7:106
10072 #, no-wrap
10073 msgid "IFF_PROMISC:Interface is in promiscuous mode.\n"
10074 msgstr ""
10075
10076 #. type: tbl table
10077 #: build/C/man7/netdevice.7:107
10078 #, no-wrap
10079 msgid "IFF_NOTRAILERS:Avoid use of trailers.\n"
10080 msgstr ""
10081
10082 #. type: tbl table
10083 #: build/C/man7/netdevice.7:108
10084 #, no-wrap
10085 msgid "IFF_ALLMULTI:Receive all multicast packets.\n"
10086 msgstr ""
10087
10088 #. type: tbl table
10089 #: build/C/man7/netdevice.7:109
10090 #, no-wrap
10091 msgid "IFF_MASTER:Master of a load balancing bundle.\n"
10092 msgstr ""
10093
10094 #. type: tbl table
10095 #: build/C/man7/netdevice.7:110
10096 #, no-wrap
10097 msgid "IFF_SLAVE:Slave of a load balancing bundle.\n"
10098 msgstr ""
10099
10100 #. type: tbl table
10101 #: build/C/man7/netdevice.7:111
10102 #, no-wrap
10103 msgid "IFF_MULTICAST:Supports multicast\n"
10104 msgstr ""
10105
10106 #. type: tbl table
10107 #: build/C/man7/netdevice.7:112
10108 #, no-wrap
10109 msgid "IFF_PORTSEL:Is able to select media type via ifmap.\n"
10110 msgstr ""
10111
10112 #. type: tbl table
10113 #: build/C/man7/netdevice.7:113
10114 #, no-wrap
10115 msgid "IFF_AUTOMEDIA:Auto media selection active.\n"
10116 msgstr ""
10117
10118 #. type: tbl table
10119 #: build/C/man7/netdevice.7:114
10120 #, no-wrap
10121 msgid "IFF_DYNAMIC:T{\n"
10122 msgstr ""
10123
10124 #. type: tbl table
10125 #: build/C/man7/netdevice.7:115
10126 #, no-wrap
10127 msgid "The addresses are lost when the interface goes down.\n"
10128 msgstr ""
10129
10130 #. type: tbl table
10131 #: build/C/man7/netdevice.7:116
10132 #, no-wrap
10133 msgid "T}\n"
10134 msgstr ""
10135
10136 #. type: tbl table
10137 #: build/C/man7/netdevice.7:117
10138 #, no-wrap
10139 msgid "IFF_LOWER_UP:Driver signals L1 up (since Linux 2.6.17)\n"
10140 msgstr ""
10141
10142 #. type: tbl table
10143 #: build/C/man7/netdevice.7:118
10144 #, no-wrap
10145 msgid "IFF_DORMANT:Driver signals dormant (since Linux 2.6.17)\n"
10146 msgstr ""
10147
10148 #. type: tbl table
10149 #: build/C/man7/netdevice.7:119
10150 #, no-wrap
10151 msgid "IFF_ECHO:Echo sent packets (since Linux 2.6.25)\n"
10152 msgstr ""
10153
10154 #. type: Plain text
10155 #: build/C/man7/netdevice.7:125
10156 msgid ""
10157 "Setting the active flag word is a privileged operation, but any process may "
10158 "read it."
10159 msgstr ""
10160
10161 #. type: TP
10162 #: build/C/man7/netdevice.7:125
10163 #, no-wrap
10164 msgid "B<SIOCGIFPFLAGS>, B<SIOCSIFPFLAGS>"
10165 msgstr ""
10166
10167 #. type: Plain text
10168 #: build/C/man7/netdevice.7:130
10169 msgid ""
10170 "Get or set extended (private) flags for the device.  I<ifr_flags> contains a "
10171 "bit mask of the following values:"
10172 msgstr ""
10173
10174 #. type: tbl table
10175 #: build/C/man7/netdevice.7:134
10176 #, no-wrap
10177 msgid "Private flags\n"
10178 msgstr ""
10179
10180 #. type: tbl table
10181 #: build/C/man7/netdevice.7:135
10182 #, no-wrap
10183 msgid "IFF_802_1Q_VLAN:Interface is 802.1Q VLAN device.\n"
10184 msgstr ""
10185
10186 #. type: tbl table
10187 #: build/C/man7/netdevice.7:136
10188 #, no-wrap
10189 msgid "IFF_EBRIDGE:Interface is Ethernet bridging device.\n"
10190 msgstr ""
10191
10192 #. type: tbl table
10193 #: build/C/man7/netdevice.7:137
10194 #, no-wrap
10195 msgid "IFF_SLAVE_INACTIVE:Interface is inactive bonding slave.\n"
10196 msgstr ""
10197
10198 #. type: tbl table
10199 #: build/C/man7/netdevice.7:138
10200 #, no-wrap
10201 msgid "IFF_MASTER_8023AD:Interface is 802.3ad bonding master.\n"
10202 msgstr ""
10203
10204 #. type: tbl table
10205 #: build/C/man7/netdevice.7:139
10206 #, no-wrap
10207 msgid "IFF_MASTER_ALB:Interface is balanced-alb bonding master.\n"
10208 msgstr ""
10209
10210 #. type: tbl table
10211 #: build/C/man7/netdevice.7:140
10212 #, no-wrap
10213 msgid "IFF_BONDING:Interface is a bonding master or slave.\n"
10214 msgstr ""
10215
10216 #. type: tbl table
10217 #: build/C/man7/netdevice.7:141
10218 #, no-wrap
10219 msgid "IFF_SLAVE_NEEDARP:Interface needs ARPs for validation.\n"
10220 msgstr ""
10221
10222 #. type: tbl table
10223 #: build/C/man7/netdevice.7:142
10224 #, no-wrap
10225 msgid "IFF_ISATAP:Interface is RFC4214 ISATAP interface.\n"
10226 msgstr ""
10227
10228 #. type: Plain text
10229 #: build/C/man7/netdevice.7:146
10230 msgid "Setting the extended (private) interface flags is a privileged operation."
10231 msgstr ""
10232
10233 #. type: TP
10234 #: build/C/man7/netdevice.7:146
10235 #, no-wrap
10236 msgid "B<SIOCGIFADDR>, B<SIOCSIFADDR>"
10237 msgstr ""
10238
10239 #. type: Plain text
10240 #: build/C/man7/netdevice.7:154
10241 msgid ""
10242 "Get or set the address of the device using I<ifr_addr>.  Setting the "
10243 "interface address is a privileged operation.  For compatibility, only "
10244 "B<AF_INET> addresses are accepted or returned."
10245 msgstr ""
10246
10247 #. type: TP
10248 #: build/C/man7/netdevice.7:154
10249 #, no-wrap
10250 msgid "B<SIOCGIFDSTADDR>, B<SIOCSIFDSTADDR>"
10251 msgstr ""
10252
10253 #. type: Plain text
10254 #: build/C/man7/netdevice.7:162
10255 msgid ""
10256 "Get or set the destination address of a point-to-point device using "
10257 "I<ifr_dstaddr>.  For compatibility, only B<AF_INET> addresses are accepted "
10258 "or returned.  Setting the destination address is a privileged operation."
10259 msgstr ""
10260
10261 #. type: TP
10262 #: build/C/man7/netdevice.7:162
10263 #, no-wrap
10264 msgid "B<SIOCGIFBRDADDR>, B<SIOCSIFBRDADDR>"
10265 msgstr ""
10266
10267 #. type: Plain text
10268 #: build/C/man7/netdevice.7:170
10269 msgid ""
10270 "Get or set the broadcast address for a device using I<ifr_brdaddr>.  For "
10271 "compatibility, only B<AF_INET> addresses are accepted or returned.  Setting "
10272 "the broadcast address is a privileged operation."
10273 msgstr ""
10274
10275 #. type: TP
10276 #: build/C/man7/netdevice.7:170
10277 #, no-wrap
10278 msgid "B<SIOCGIFNETMASK>, B<SIOCSIFNETMASK>"
10279 msgstr ""
10280
10281 #. type: Plain text
10282 #: build/C/man7/netdevice.7:178
10283 msgid ""
10284 "Get or set the network mask for a device using I<ifr_netmask>.  For "
10285 "compatibility, only B<AF_INET> addresses are accepted or returned.  Setting "
10286 "the network mask is a privileged operation."
10287 msgstr ""
10288
10289 #. type: TP
10290 #: build/C/man7/netdevice.7:178
10291 #, no-wrap
10292 msgid "B<SIOCGIFMETRIC>, B<SIOCSIFMETRIC>"
10293 msgstr ""
10294
10295 #. type: Plain text
10296 #: build/C/man7/netdevice.7:187
10297 msgid ""
10298 "Get or set the metric of the device using I<ifr_metric>.  This is currently "
10299 "not implemented; it sets I<ifr_metric> to 0 if you attempt to read it and "
10300 "returns B<EOPNOTSUPP> if you attempt to set it."
10301 msgstr ""
10302
10303 #. type: TP
10304 #: build/C/man7/netdevice.7:187
10305 #, no-wrap
10306 msgid "B<SIOCGIFMTU>, B<SIOCSIFMTU>"
10307 msgstr ""
10308
10309 #. type: Plain text
10310 #: build/C/man7/netdevice.7:194
10311 msgid ""
10312 "Get or set the MTU (Maximum Transfer Unit) of a device using I<ifr_mtu>.  "
10313 "Setting the MTU is a privileged operation.  Setting the MTU to too small "
10314 "values may cause kernel crashes."
10315 msgstr ""
10316
10317 #. type: TP
10318 #: build/C/man7/netdevice.7:194
10319 #, no-wrap
10320 msgid "B<SIOCGIFHWADDR>, B<SIOCSIFHWADDR>"
10321 msgstr ""
10322
10323 #. type: Plain text
10324 #: build/C/man7/netdevice.7:205
10325 msgid ""
10326 "Get or set the hardware address of a device using I<ifr_hwaddr>.  The "
10327 "hardware address is specified in a struct I<sockaddr>.  I<sa_family> "
10328 "contains the ARPHRD_* device type, I<sa_data> the L2 hardware address "
10329 "starting from byte 0.  Setting the hardware address is a privileged "
10330 "operation."
10331 msgstr ""
10332
10333 #. type: TP
10334 #: build/C/man7/netdevice.7:205
10335 #, no-wrap
10336 msgid "B<SIOCSIFHWBROADCAST>"
10337 msgstr ""
10338
10339 #. type: Plain text
10340 #: build/C/man7/netdevice.7:210
10341 msgid ""
10342 "Set the hardware broadcast address of a device from I<ifr_hwaddr>.  This is "
10343 "a privileged operation."
10344 msgstr ""
10345
10346 #. type: TP
10347 #: build/C/man7/netdevice.7:210
10348 #, no-wrap
10349 msgid "B<SIOCGIFMAP>, B<SIOCSIFMAP>"
10350 msgstr ""
10351
10352 #. type: Plain text
10353 #: build/C/man7/netdevice.7:215
10354 msgid ""
10355 "Get or set the interface's hardware parameters using I<ifr_map>.  Setting "
10356 "the parameters is a privileged operation."
10357 msgstr ""
10358
10359 #. type: Plain text
10360 #: build/C/man7/netdevice.7:226
10361 #, no-wrap
10362 msgid ""
10363 "struct ifmap {\n"
10364 "    unsigned long   mem_start;\n"
10365 "    unsigned long   mem_end;\n"
10366 "    unsigned short  base_addr;\n"
10367 "    unsigned char   irq;\n"
10368 "    unsigned char   dma;\n"
10369 "    unsigned char   port;\n"
10370 "};\n"
10371 msgstr ""
10372
10373 #. type: Plain text
10374 #: build/C/man7/netdevice.7:231
10375 msgid ""
10376 "The interpretation of the ifmap structure depends on the device driver and "
10377 "the architecture."
10378 msgstr ""
10379
10380 #. type: TP
10381 #: build/C/man7/netdevice.7:231
10382 #, no-wrap
10383 msgid "B<SIOCADDMULTI>, B<SIOCDELMULTI>"
10384 msgstr ""
10385
10386 #. type: Plain text
10387 #: build/C/man7/netdevice.7:240
10388 msgid ""
10389 "Add an address to or delete an address from the device's link layer "
10390 "multicast filters using I<ifr_hwaddr>.  These are privileged operations.  "
10391 "See also B<packet>(7)  for an alternative."
10392 msgstr ""
10393
10394 #. type: TP
10395 #: build/C/man7/netdevice.7:240
10396 #, no-wrap
10397 msgid "B<SIOCGIFTXQLEN>, B<SIOCSIFTXQLEN>"
10398 msgstr ""
10399
10400 #. type: Plain text
10401 #: build/C/man7/netdevice.7:245
10402 msgid ""
10403 "Get or set the transmit queue length of a device using I<ifr_qlen>.  Setting "
10404 "the transmit queue length is a privileged operation."
10405 msgstr ""
10406
10407 #. type: TP
10408 #: build/C/man7/netdevice.7:245
10409 #, no-wrap
10410 msgid "B<SIOCSIFNAME>"
10411 msgstr ""
10412
10413 #. type: Plain text
10414 #: build/C/man7/netdevice.7:254
10415 msgid ""
10416 "Changes the name of the interface specified in I<ifr_name> to "
10417 "I<ifr_newname>.  This is a privileged operation.  It is only allowed when "
10418 "the interface is not up."
10419 msgstr ""
10420
10421 #. type: TP
10422 #: build/C/man7/netdevice.7:254
10423 #, no-wrap
10424 msgid "B<SIOCGIFCONF>"
10425 msgstr ""
10426
10427 #.  Slaving isn't supported in 2.2
10428 #.  .
10429 #.  .TP
10430 #.  .BR SIOCGIFSLAVE ", " SIOCSIFSLAVE
10431 #.  Get or set the slave device using
10432 #.  .IR ifr_slave .
10433 #.  Setting the slave device is a privileged operation.
10434 #.  .PP
10435 #.  FIXME add amateur radio stuff.
10436 #. type: Plain text
10437 #: build/C/man7/netdevice.7:294
10438 msgid ""
10439 "Return a list of interface (transport layer) addresses.  This currently "
10440 "means only addresses of the B<AF_INET> (IPv4) family for compatibility.  The "
10441 "user passes a I<ifconf> structure as argument to the ioctl.  It contains a "
10442 "pointer to an array of I<ifreq> structures in I<ifc_req> and its length in "
10443 "bytes in I<ifc_len>.  The kernel fills the ifreqs with all current L3 "
10444 "interface addresses that are running: I<ifr_name> contains the interface "
10445 "name (eth0:1 etc.), I<ifr_addr> the address.  The kernel returns with the "
10446 "actual length in I<ifc_len>.  If I<ifc_len> is equal to the original length "
10447 "the buffer probably has overflowed and you should retry with a bigger buffer "
10448 "to get all addresses.  When no error occurs the ioctl returns 0; otherwise "
10449 "-1.  Overflow is not an error."
10450 msgstr ""
10451
10452 #. type: Plain text
10453 #: build/C/man7/netdevice.7:300
10454 msgid ""
10455 "Most protocols support their own ioctls to configure protocol-specific "
10456 "interface options.  See the protocol man pages for a description.  For "
10457 "configuring IP addresses see B<ip>(7)."
10458 msgstr ""
10459
10460 #. type: Plain text
10461 #: build/C/man7/netdevice.7:303
10462 msgid ""
10463 "In addition some devices support private ioctls.  These are not described "
10464 "here."
10465 msgstr ""
10466
10467 #. type: Plain text
10468 #: build/C/man7/netdevice.7:311
10469 msgid ""
10470 "Strictly speaking, B<SIOCGIFCONF> and the other ioctls that only accept or "
10471 "return B<AF_INET> socket addresses, are IP specific and belong in B<ip>(7)."
10472 msgstr ""
10473
10474 #. type: Plain text
10475 #: build/C/man7/netdevice.7:316
10476 msgid ""
10477 "The names of interfaces with no addresses or that don't have the "
10478 "B<IFF_RUNNING> flag set can be found via I</proc/net/dev>."
10479 msgstr ""
10480
10481 #. type: Plain text
10482 #: build/C/man7/netdevice.7:321
10483 msgid ""
10484 "Local IPv6 IP addresses can be found via I</proc/net> or via "
10485 "B<rtnetlink>(7)."
10486 msgstr ""
10487
10488 #. type: Plain text
10489 #: build/C/man7/netdevice.7:327
10490 msgid ""
10491 "glibc 2.1 is missing the I<ifr_newname> macro in I<E<lt>net/if.hE<gt>>.  Add "
10492 "the following to your program as a workaround:"
10493 msgstr ""
10494
10495 #. type: Plain text
10496 #: build/C/man7/netdevice.7:333
10497 #, no-wrap
10498 msgid ""
10499 "#ifndef ifr_newname\n"
10500 "#define ifr_newname     ifr_ifru.ifru_slave\n"
10501 "#endif\n"
10502 msgstr ""
10503
10504 #. type: Plain text
10505 #: build/C/man7/netdevice.7:340
10506 msgid "B<proc>(5), B<capabilities>(7), B<ip>(7), B<rtnetlink>(7)"
10507 msgstr ""
10508
10509 #. type: TH
10510 #: build/C/man5/networks.5:24
10511 #, no-wrap
10512 msgid "NETWORKS"
10513 msgstr ""
10514
10515 #. type: TH
10516 #: build/C/man5/networks.5:24
10517 #, no-wrap
10518 msgid "2008-09-04"
10519 msgstr ""
10520
10521 #. type: TH
10522 #: build/C/man5/networks.5:24
10523 #, no-wrap
10524 msgid "GNU/Linux"
10525 msgstr ""
10526
10527 #. type: Plain text
10528 #: build/C/man5/networks.5:27
10529 msgid "networks - network name information"
10530 msgstr ""
10531
10532 #. type: Plain text
10533 #: build/C/man5/networks.5:33
10534 msgid ""
10535 "The file I</etc/networks> is a plain ASCII file that describes known DARPA "
10536 "networks and symbolic names for these networks.  Each line represents a "
10537 "network and has the following structure:"
10538 msgstr ""
10539
10540 #. type: Plain text
10541 #: build/C/man5/networks.5:36
10542 msgid "I<name number aliases ...>"
10543 msgstr ""
10544
10545 #. type: Plain text
10546 #: build/C/man5/networks.5:44
10547 msgid ""
10548 "where the fields are delimited by spaces or tabs.  Empty lines are ignored.  "
10549 "The hash character (B<#>) indicates the start of a comment: this character, "
10550 "and the remaining characters up to the end of the current line, are ignored "
10551 "by library functions that process the file."
10552 msgstr ""
10553
10554 #. type: Plain text
10555 #: build/C/man5/networks.5:46 build/C/man5/protocols.5:58
10556 msgid "The field descriptions are:"
10557 msgstr ""
10558
10559 #. type: TP
10560 #: build/C/man5/networks.5:47
10561 #, no-wrap
10562 msgid "I<name>"
10563 msgstr ""
10564
10565 #. type: Plain text
10566 #: build/C/man5/networks.5:52
10567 msgid ""
10568 "The symbolic name for the network.  Network names can contain any printable "
10569 "characters execept white-space characters or the comment character."
10570 msgstr ""
10571
10572 #. type: TP
10573 #: build/C/man5/networks.5:52 build/C/man5/protocols.5:66
10574 #, no-wrap
10575 msgid "I<number>"
10576 msgstr ""
10577
10578 #. type: Plain text
10579 #: build/C/man5/networks.5:57
10580 msgid ""
10581 "The official number for this network in numbers-and-dots notation (see "
10582 "B<inet>(3)).  The trailing \".0\" (for the host component of the network "
10583 "address) may be omitted."
10584 msgstr ""
10585
10586 #. type: TP
10587 #: build/C/man5/networks.5:57 build/C/man5/protocols.5:70 build/C/man5/services.5:120
10588 #, no-wrap
10589 msgid "I<aliases>"
10590 msgstr ""
10591
10592 #. type: Plain text
10593 #: build/C/man5/networks.5:60
10594 msgid "Optional aliases for the network."
10595 msgstr ""
10596
10597 #. type: Plain text
10598 #: build/C/man5/networks.5:69
10599 msgid ""
10600 "This file is read by the B<route>(8)  and B<netstat>(8)  utilities.  Only "
10601 "Class A, B or C networks are supported, partitioned networks (i.e., "
10602 "network/26 or network/28) are not supported by this facility."
10603 msgstr ""
10604
10605 #. type: Plain text
10606 #: build/C/man5/networks.5:73
10607 msgid "The networks definition file."
10608 msgstr ""
10609
10610 #. type: Plain text
10611 #: build/C/man5/networks.5:79
10612 msgid ""
10613 "B<getnetbyaddr>(3), B<getnetbyname>(3), B<getnetent>(3), B<netstat>(8), "
10614 "B<route>(8)"
10615 msgstr ""
10616
10617 #. type: TH
10618 #: build/C/man8/nscd.8:23
10619 #, no-wrap
10620 msgid "NSCD"
10621 msgstr ""
10622
10623 #. type: TH
10624 #: build/C/man8/nscd.8:23
10625 #, no-wrap
10626 msgid "2008-12-05"
10627 msgstr ""
10628
10629 #. type: Plain text
10630 #: build/C/man8/nscd.8:26
10631 msgid "/usr/sbin/nscd - name service cache daemon"
10632 msgstr ""
10633
10634 #. type: Plain text
10635 #: build/C/man8/nscd.8:34
10636 msgid ""
10637 "Nscd is a daemon that provides a cache for the most common name service "
10638 "requests.  The default configuration file, I</etc/nscd.conf>, determines the "
10639 "behavior of the cache daemon.  See B<nscd.conf>(5)."
10640 msgstr ""
10641
10642 #. type: Plain text
10643 #: build/C/man8/nscd.8:47
10644 msgid ""
10645 "Nscd provides caching for accesses of the B<passwd>(5), B<group>(5), and "
10646 "B<hosts>(5)  databases through standard libc interfaces, such as "
10647 "B<getpwnam>(3), B<getpwuid>(3), B<getgrnam>(3), B<getgrgid>(3), "
10648 "B<gethostbyname>(3), and others."
10649 msgstr ""
10650
10651 #. type: Plain text
10652 #: build/C/man8/nscd.8:56
10653 msgid ""
10654 "There are two caches for each database: a positive one for items found, and "
10655 "a negative one for items not found.  Each cache has a separate TTL "
10656 "(time-to-live)  period for its data.  Note that the shadow file is "
10657 "specifically not cached.  B<getspnam>(3)  calls remain uncached as a result."
10658 msgstr ""
10659
10660 #. type: SH
10661 #: build/C/man8/nscd.8:56
10662 #, no-wrap
10663 msgid "OPTIONS"
10664 msgstr ""
10665
10666 #. type: TP
10667 #: build/C/man8/nscd.8:57
10668 #, no-wrap
10669 msgid "B<--help>"
10670 msgstr ""
10671
10672 #. type: Plain text
10673 #: build/C/man8/nscd.8:60
10674 msgid "will give you a list with all options and what they do."
10675 msgstr ""
10676
10677 #. type: Plain text
10678 #: build/C/man8/nscd.8:83
10679 msgid ""
10680 "The daemon will try to watch for changes in configuration files appropriate "
10681 "for each database (e.g.  I</etc/passwd> for the I<passwd> database or "
10682 "I</etc/hosts> and I</etc/resolv.conf> for the I<hosts> database), and flush "
10683 "the cache when these are changed.  However, this will happen only after a "
10684 "short delay (unless the B<inotify>(7)  mechanism is available and glibc 2.9 "
10685 "or later is available), and this auto-detection does not cover configuration "
10686 "files required by nonstandard NSS modules, if any are specified in "
10687 "I</etc/nsswitch.conf>.  In that case, you need to run the following command "
10688 "after changing the configuration file of the database so that B<nscd> "
10689 "invalidates its cache:"
10690 msgstr ""
10691
10692 #. type: Plain text
10693 #: build/C/man8/nscd.8:85
10694 #, no-wrap
10695 msgid "    $ B<nscd -i> I<E<lt>databaseE<gt>>\n"
10696 msgstr ""
10697
10698 #.  .SH AUTHOR
10699 #.  .B nscd
10700 #.  was written by Thorsten Kukuk and Ulrich Drepper.
10701 #. type: Plain text
10702 #: build/C/man8/nscd.8:91
10703 msgid "B<nscd.conf>(5), B<nsswitch.conf>(5)"
10704 msgstr ""
10705
10706 #. type: TH
10707 #: build/C/man5/nscd.conf.5:20
10708 #, no-wrap
10709 msgid "NSCD.CONF"
10710 msgstr ""
10711
10712 #. type: TH
10713 #: build/C/man5/nscd.conf.5:20
10714 #, no-wrap
10715 msgid "1999-10-01"
10716 msgstr ""
10717
10718 #. type: Plain text
10719 #: build/C/man5/nscd.conf.5:23
10720 msgid "/etc/nscd.conf - name service cache daemon configuration file"
10721 msgstr ""
10722
10723 #. type: Plain text
10724 #: build/C/man5/nscd.conf.5:36
10725 msgid ""
10726 "The file I</etc/nscd.conf> is read from B<nscd>(8)  at startup.  Each line "
10727 "specifies either an attribute and a value, or an attribute, service, and a "
10728 "value.  Fields are separated either by SPACE or TAB characters.  A "
10729 "\\(aq#\\(aq (number sign) indicates the beginning of a comment; following "
10730 "characters, up to the end of the line, are not interpreted by nscd."
10731 msgstr ""
10732
10733 #. type: Plain text
10734 #: build/C/man5/nscd.conf.5:38
10735 msgid "Valid services are I<passwd>, I<group>, or I<hosts>."
10736 msgstr ""
10737
10738 #. type: Plain text
10739 #: build/C/man5/nscd.conf.5:41
10740 msgid "B<logfile> I<debug-file-name>"
10741 msgstr ""
10742
10743 #. type: Plain text
10744 #: build/C/man5/nscd.conf.5:43
10745 msgid "Specifies name of the file to which debug info should be written."
10746 msgstr ""
10747
10748 #. type: Plain text
10749 #: build/C/man5/nscd.conf.5:47
10750 msgid "B<debug-level> I<value>"
10751 msgstr ""
10752
10753 #. type: Plain text
10754 #: build/C/man5/nscd.conf.5:49
10755 msgid "Sets the desired debug level."
10756 msgstr ""
10757
10758 #. type: Plain text
10759 #: build/C/man5/nscd.conf.5:53
10760 msgid "B<threads> I<number>"
10761 msgstr ""
10762
10763 #. type: Plain text
10764 #: build/C/man5/nscd.conf.5:57
10765 msgid ""
10766 "This is the number of threads that are started to wait for requests.  At "
10767 "least five threads will always be created."
10768 msgstr ""
10769
10770 #. type: Plain text
10771 #: build/C/man5/nscd.conf.5:61
10772 msgid "B<server-user> I<user>"
10773 msgstr ""
10774
10775 #. type: Plain text
10776 #: build/C/man5/nscd.conf.5:65
10777 msgid ""
10778 "If this option is set, nscd will run as this user and not as root.  If a "
10779 "separate cache for every user is used (-S parameter), this option is "
10780 "ignored."
10781 msgstr ""
10782
10783 #. type: Plain text
10784 #: build/C/man5/nscd.conf.5:70
10785 msgid "B<enable-cache> I<service> I<E<lt>yes|noE<gt>>"
10786 msgstr ""
10787
10788 #. type: Plain text
10789 #: build/C/man5/nscd.conf.5:74
10790 msgid "Enables or disables the specified I<service> cache."
10791 msgstr ""
10792
10793 #. type: Plain text
10794 #: build/C/man5/nscd.conf.5:79
10795 msgid "B<positive-time-to-live> I<service> I<value>"
10796 msgstr ""
10797
10798 #. type: Plain text
10799 #: build/C/man5/nscd.conf.5:87
10800 msgid ""
10801 "Sets the TTL (time-to-live) for positive entries (successful queries)  in "
10802 "the specified cache for I<service>.  I<Value> is in seconds.  Larger values "
10803 "increase cache hit rates and reduce mean response times, but increase "
10804 "problems with cache coherence."
10805 msgstr ""
10806
10807 #. type: Plain text
10808 #: build/C/man5/nscd.conf.5:92
10809 msgid "B<negative-time-to-live> I<service> I<value>"
10810 msgstr ""
10811
10812 #. type: Plain text
10813 #: build/C/man5/nscd.conf.5:102
10814 msgid ""
10815 "Sets the TTL (time-to-live) for negative entries (unsuccessful queries)  in "
10816 "the specified cache for I<service>.  I<Value> is in seconds.  Can result in "
10817 "significant performance improvements if there are several files owned by "
10818 "UIDs (user IDs) not in system databases (for example untarring the linux "
10819 "kernel sources as root); should be kept small to reduce cache coherency "
10820 "problems."
10821 msgstr ""
10822
10823 #. type: Plain text
10824 #: build/C/man5/nscd.conf.5:107
10825 msgid "B<suggested-size> I<service> I<value>"
10826 msgstr ""
10827
10828 #. type: Plain text
10829 #: build/C/man5/nscd.conf.5:111
10830 msgid ""
10831 "This is the internal hash table size, I<value> should remain a prime number "
10832 "for optimum efficiency."
10833 msgstr ""
10834
10835 #. type: Plain text
10836 #: build/C/man5/nscd.conf.5:116
10837 msgid "B<check-files> I<service> I<E<lt>yes|noE<gt>>"
10838 msgstr ""
10839
10840 #. type: Plain text
10841 #: build/C/man5/nscd.conf.5:125
10842 msgid ""
10843 "Enables or disables checking the file belonging to the specified I<service> "
10844 "for changes.  The files are I</etc/passwd>, I</etc/group>, and "
10845 "I</etc/hosts>."
10846 msgstr ""
10847
10848 #. type: Plain text
10849 #: build/C/man5/nscd.conf.5:129
10850 msgid "B<max-threads> I<threads>"
10851 msgstr ""
10852
10853 #. type: Plain text
10854 #: build/C/man5/nscd.conf.5:131
10855 msgid "Specifies the maximum number of threads to be started."
10856 msgstr ""
10857
10858 #. type: Plain text
10859 #: build/C/man5/nscd.conf.5:135
10860 msgid "B<stat-user> I<username>"
10861 msgstr ""
10862
10863 #. type: Plain text
10864 #: build/C/man5/nscd.conf.5:137
10865 msgid "Specifies the user who is allowed to request statistics."
10866 msgstr ""
10867
10868 #. type: Plain text
10869 #: build/C/man5/nscd.conf.5:142
10870 msgid "B<reload-count> unlimited | I<number>"
10871 msgstr ""
10872
10873 #. type: Plain text
10874 #: build/C/man5/nscd.conf.5:146
10875 msgid ""
10876 "Limit on the number of times a cached entry gets reloaded without being used "
10877 "before it gets removed.  The default is 5."
10878 msgstr ""
10879
10880 #. type: Plain text
10881 #: build/C/man5/nscd.conf.5:150
10882 msgid "B<paranoia> I<E<lt>yes|noE<gt>>"
10883 msgstr ""
10884
10885 #. type: Plain text
10886 #: build/C/man5/nscd.conf.5:152
10887 msgid "Enabling paranoia mode causes nscd to restart itself periodically."
10888 msgstr ""
10889
10890 #. type: Plain text
10891 #: build/C/man5/nscd.conf.5:156
10892 msgid "B<restart-interval> I<time>"
10893 msgstr ""
10894
10895 #. type: Plain text
10896 #: build/C/man5/nscd.conf.5:163
10897 msgid ""
10898 "Sets the restart interval to I<time> seconds if periodic restart is enabled "
10899 "by enabling B<paranoia> mode."
10900 msgstr ""
10901
10902 #. type: Plain text
10903 #: build/C/man5/nscd.conf.5:168
10904 msgid "B<persistent> I<service> I<E<lt>yes|noE<gt>>"
10905 msgstr ""
10906
10907 #. type: Plain text
10908 #: build/C/man5/nscd.conf.5:174
10909 msgid ""
10910 "Keep the content of the cache for I<service> over server restarts; useful "
10911 "when B<paranoia> mode is set."
10912 msgstr ""
10913
10914 #. type: Plain text
10915 #: build/C/man5/nscd.conf.5:179
10916 msgid "B<shared> I<service> I<E<lt>yes|noE<gt>>"
10917 msgstr ""
10918
10919 #. type: Plain text
10920 #: build/C/man5/nscd.conf.5:185
10921 msgid ""
10922 "The memory mapping of the nscd databases for I<service> is shared with the "
10923 "clients so that they can directly search in them instead of having to ask "
10924 "the daemon over the socket each time a lookup is performed."
10925 msgstr ""
10926
10927 #.  .SH AUTHOR
10928 #.  .B nscd
10929 #.  was written by Thorsten Kukuk and Ulrich Drepper.
10930 #. type: Plain text
10931 #: build/C/man5/nscd.conf.5:191
10932 msgid "B<nscd>(8)"
10933 msgstr ""
10934
10935 #. type: TH
10936 #: build/C/man5/nsswitch.conf.5:24
10937 #, no-wrap
10938 msgid "NSSWITCH.CONF"
10939 msgstr ""
10940
10941 #. type: Plain text
10942 #: build/C/man5/nsswitch.conf.5:27
10943 msgid "nsswitch.conf - Name Service Switch configuration file"
10944 msgstr ""
10945
10946 #. type: Plain text
10947 #: build/C/man5/nsswitch.conf.5:36
10948 msgid ""
10949 "The Name Service Switch (NSS) configuration file, I</etc/nsswitch.conf>, is "
10950 "used by the GNU C Library to determine the sources from which to obtain "
10951 "name-service information in a range of categories, and in what order.  (The "
10952 "\" Each category of information is identified by a database name."
10953 msgstr ""
10954
10955 #. type: Plain text
10956 #: build/C/man5/nsswitch.conf.5:42
10957 msgid ""
10958 "The file is plain ASCII text, with columns separated by spaces or tab "
10959 "characters.  The first column specifies the database name.  The remaining "
10960 "columns describe the order of sources to query and a limited set of actions "
10961 "that can be performed by lookup result."
10962 msgstr ""
10963
10964 #. type: Plain text
10965 #: build/C/man5/nsswitch.conf.5:44
10966 msgid "The following databases are understood by the GNU C Library:"
10967 msgstr ""
10968
10969 #. type: Plain text
10970 #: build/C/man5/nsswitch.conf.5:49
10971 msgid "Mail aliases, used by B<getaliasent>(3)  and related functions."
10972 msgstr ""
10973
10974 #. type: Plain text
10975 #: build/C/man5/nsswitch.conf.5:52
10976 msgid "Ethernet numbers."
10977 msgstr ""
10978
10979 #. type: Plain text
10980 #: build/C/man5/nsswitch.conf.5:57
10981 msgid "Groups of users, used by B<getgrent>(3)  and related functions."
10982 msgstr ""
10983
10984 #. type: Plain text
10985 #: build/C/man5/nsswitch.conf.5:62
10986 msgid "Host names and numbers, used by B<gethostbyname>(3)  and related functions."
10987 msgstr ""
10988
10989 #. type: Plain text
10990 #: build/C/man5/nsswitch.conf.5:66
10991 msgid ""
10992 "Network-wide list of hosts and users, used for access rules.  C libraries "
10993 "before glibc 2.1 supported netgroups only over NIS."
10994 msgstr ""
10995
10996 #. type: Plain text
10997 #: build/C/man5/nsswitch.conf.5:71
10998 msgid "Network names and numbers, used by B<getnetent>(3)  and related functions."
10999 msgstr ""
11000
11001 #. type: Plain text
11002 #: build/C/man5/nsswitch.conf.5:76
11003 msgid "User passwords, used by B<getpwent>(3)  and related functions."
11004 msgstr ""
11005
11006 #. type: Plain text
11007 #: build/C/man5/nsswitch.conf.5:81
11008 msgid "Network protocols, used by B<getprotoent>(3)  and related functions."
11009 msgstr ""
11010
11011 #. type: TP
11012 #: build/C/man5/nsswitch.conf.5:81
11013 #, no-wrap
11014 msgid "B<publickey>"
11015 msgstr ""
11016
11017 #. type: Plain text
11018 #: build/C/man5/nsswitch.conf.5:84
11019 msgid "Public and secret keys for Secure_RPC used by NFS and NIS+."
11020 msgstr ""
11021
11022 #. type: Plain text
11023 #: build/C/man5/nsswitch.conf.5:89
11024 msgid ""
11025 "Remote procedure call names and numbers, used by B<getrpcbyname>(3)  and "
11026 "related functions."
11027 msgstr ""
11028
11029 #. type: Plain text
11030 #: build/C/man5/nsswitch.conf.5:94
11031 msgid "Network services, used by B<getservent>(3)  and related functions."
11032 msgstr ""
11033
11034 #. type: Plain text
11035 #: build/C/man5/nsswitch.conf.5:99
11036 msgid "Shadow user passwords, used by B<getspnam>(3)  and related functions."
11037 msgstr ""
11038
11039 #. type: Plain text
11040 #: build/C/man5/nsswitch.conf.5:103
11041 msgid "Here is an example I</etc/nsswitch.conf> file:"
11042 msgstr ""
11043
11044 #. type: TP
11045 #: build/C/man5/nsswitch.conf.5:106
11046 #, no-wrap
11047 msgid "passwd:"
11048 msgstr ""
11049
11050 #. type: Plain text
11051 #: build/C/man5/nsswitch.conf.5:109 build/C/man5/nsswitch.conf.5:112 build/C/man5/nsswitch.conf.5:115
11052 msgid "compat"
11053 msgstr ""
11054
11055 #. type: TP
11056 #: build/C/man5/nsswitch.conf.5:109
11057 #, no-wrap
11058 msgid "group:"
11059 msgstr ""
11060
11061 #. type: TP
11062 #: build/C/man5/nsswitch.conf.5:112
11063 #, no-wrap
11064 msgid "shadow:"
11065 msgstr ""
11066
11067 #. type: TP
11068 #: build/C/man5/nsswitch.conf.5:116
11069 #, no-wrap
11070 msgid "hosts:"
11071 msgstr ""
11072
11073 #. type: Plain text
11074 #: build/C/man5/nsswitch.conf.5:119
11075 msgid "dns [!UNAVAIL=return] files"
11076 msgstr ""
11077
11078 #. type: TP
11079 #: build/C/man5/nsswitch.conf.5:119
11080 #, no-wrap
11081 msgid "networks:"
11082 msgstr ""
11083
11084 #. type: Plain text
11085 #: build/C/man5/nsswitch.conf.5:122 build/C/man5/nsswitch.conf.5:125 build/C/man5/nsswitch.conf.5:128 build/C/man5/nsswitch.conf.5:131 build/C/man5/nsswitch.conf.5:134
11086 msgid "nis [NOTFOUND=return] files"
11087 msgstr ""
11088
11089 #. type: TP
11090 #: build/C/man5/nsswitch.conf.5:122
11091 #, no-wrap
11092 msgid "ethers:"
11093 msgstr ""
11094
11095 #. type: TP
11096 #: build/C/man5/nsswitch.conf.5:125
11097 #, no-wrap
11098 msgid "protocols:"
11099 msgstr ""
11100
11101 #. type: TP
11102 #: build/C/man5/nsswitch.conf.5:128
11103 #, no-wrap
11104 msgid "rpc:"
11105 msgstr ""
11106
11107 #. type: TP
11108 #: build/C/man5/nsswitch.conf.5:131
11109 #, no-wrap
11110 msgid "services:"
11111 msgstr ""
11112
11113 #. type: Plain text
11114 #: build/C/man5/nsswitch.conf.5:139
11115 msgid "The first column is the database name.  The remaining columns specify:"
11116 msgstr ""
11117
11118 #. type: Plain text
11119 #: build/C/man5/nsswitch.conf.5:143
11120 msgid ""
11121 "One or more service specifications e.g., \"files\", \"db\", or \"nis\".  The "
11122 "order of the services on the line determines the order in which those "
11123 "services will be queried, in turn, until a result is found."
11124 msgstr ""
11125
11126 #. type: Plain text
11127 #: build/C/man5/nsswitch.conf.5:146
11128 msgid ""
11129 "Optional actions to perform if a particular result is obtained from the "
11130 "preceding service, e.g., \"[NOTFOUND=return]\"."
11131 msgstr ""
11132
11133 #. type: Plain text
11134 #: build/C/man5/nsswitch.conf.5:173
11135 msgid ""
11136 "The service specifications supported on your system depend on the presence "
11137 "of shared libraries, and are therefore extensible.  Libraries called "
11138 "I</lib/libnss_SERVICE.so.>B<X> will provide the named I<SERVICE>.  On a "
11139 "standard installation, you can use \"files\", \"db\", \"nis\", and "
11140 "\"nisplus\".  For the B<hosts> database, you can additionally specify "
11141 "\"dns\".  For the B<passwd>, B<group>, and B<shadow> databases, you can "
11142 "additionally specify \"compat\" (see B<Compatibility mode> below).  The "
11143 "version number B<X> may be 1 for glibc 2.0, or 2 for glibc 2.1 and later.  "
11144 "On systems with additional libraries installed, you may have access to "
11145 "further services such as \"hesiod\", \"ldap\", \"winbind\" and \"wins\"."
11146 msgstr ""
11147
11148 #. type: Plain text
11149 #: build/C/man5/nsswitch.conf.5:178
11150 msgid ""
11151 "An action may also be specified following a service specification.  The "
11152 "action modifies the behavior following a result obtained from the preceding "
11153 "data source.  Action items take the general form:"
11154 msgstr ""
11155
11156 #. type: Plain text
11157 #: build/C/man5/nsswitch.conf.5:181
11158 msgid "[I<STATUS>=I<ACTION>]"
11159 msgstr ""
11160
11161 #. type: Plain text
11162 #: build/C/man5/nsswitch.conf.5:183
11163 msgid "[!I<STATUS>=I<ACTION>]"
11164 msgstr ""
11165
11166 #. type: Plain text
11167 #: build/C/man5/nsswitch.conf.5:186
11168 msgid "where"
11169 msgstr ""
11170
11171 #. type: Plain text
11172 #: build/C/man5/nsswitch.conf.5:197
11173 msgid "I<STATUS> =E<gt> B<success> | B<notfound> | B<unavail> | B<tryagain>"
11174 msgstr ""
11175
11176 #. type: Plain text
11177 #: build/C/man5/nsswitch.conf.5:203
11178 msgid "I<ACTION> =E<gt> B<return> | B<continue>"
11179 msgstr ""
11180
11181 #. type: Plain text
11182 #: build/C/man5/nsswitch.conf.5:208
11183 msgid ""
11184 "The ! negates the test, matching all possible results except the one "
11185 "specified.  The case of the keywords is not significant."
11186 msgstr ""
11187
11188 #. type: Plain text
11189 #: build/C/man5/nsswitch.conf.5:213
11190 msgid ""
11191 "The I<STATUS> value is matched against the result of the lookup function "
11192 "called by the preceding service specification, and can be one of:"
11193 msgstr ""
11194
11195 #. type: TP
11196 #: build/C/man5/nsswitch.conf.5:214
11197 #, no-wrap
11198 msgid "B<success>"
11199 msgstr ""
11200
11201 #. type: Plain text
11202 #: build/C/man5/nsswitch.conf.5:218
11203 msgid ""
11204 "No error occurred and the requested entry is returned.  The default action "
11205 "for this condition is \"return\"."
11206 msgstr ""
11207
11208 #. type: TP
11209 #: build/C/man5/nsswitch.conf.5:218
11210 #, no-wrap
11211 msgid "B<notfound>"
11212 msgstr ""
11213
11214 #. type: Plain text
11215 #: build/C/man5/nsswitch.conf.5:222
11216 msgid ""
11217 "The lookup succeeded, but the requested entry was not found.  The default "
11218 "action for this condition is \"continue\"."
11219 msgstr ""
11220
11221 #. type: TP
11222 #: build/C/man5/nsswitch.conf.5:222
11223 #, no-wrap
11224 msgid "B<unavail>"
11225 msgstr ""
11226
11227 #. type: Plain text
11228 #: build/C/man5/nsswitch.conf.5:229
11229 msgid ""
11230 "The service is permanently unavailable.  This can mean either that the "
11231 "required file cannot be read, or, for network services, that the server is "
11232 "not available or does not allow queries.  The default action for this "
11233 "condition is \"continue\"."
11234 msgstr ""
11235
11236 #. type: TP
11237 #: build/C/man5/nsswitch.conf.5:229
11238 #, no-wrap
11239 msgid "B<tryagain>"
11240 msgstr ""
11241
11242 #. type: Plain text
11243 #: build/C/man5/nsswitch.conf.5:235
11244 msgid ""
11245 "The service is temporarily unavailable.  This could mean a file is locked or "
11246 "a server currently cannot accept more connections.  The default action for "
11247 "this condition is \"continue\"."
11248 msgstr ""
11249
11250 #. type: Plain text
11251 #: build/C/man5/nsswitch.conf.5:240
11252 msgid "The I<ACTION> value can be one of:"
11253 msgstr ""
11254
11255 #. type: TP
11256 #: build/C/man5/nsswitch.conf.5:241
11257 #, no-wrap
11258 msgid "B<return>"
11259 msgstr ""
11260
11261 #. type: Plain text
11262 #: build/C/man5/nsswitch.conf.5:245
11263 msgid "Return a result now.  Do not call any further lookup functions."
11264 msgstr ""
11265
11266 #. type: TP
11267 #: build/C/man5/nsswitch.conf.5:245
11268 #, no-wrap
11269 msgid "B<continue>"
11270 msgstr ""
11271
11272 #. type: Plain text
11273 #: build/C/man5/nsswitch.conf.5:248
11274 msgid "Call the next lookup function."
11275 msgstr ""
11276
11277 #. type: SS
11278 #: build/C/man5/nsswitch.conf.5:249
11279 #, no-wrap
11280 msgid "Compatibility mode (compat)"
11281 msgstr ""
11282
11283 #. type: Plain text
11284 #: build/C/man5/nsswitch.conf.5:255
11285 msgid ""
11286 "The NSS \"compat\" service is similar to \"files\" except that it "
11287 "additionally permits special entries in I</etc/passwd> for granting users or "
11288 "members of netgroups access to the system.  The following entries are valid "
11289 "in this mode:"
11290 msgstr ""
11291
11292 #. type: TP
11293 #: build/C/man5/nsswitch.conf.5:256
11294 #, no-wrap
11295 msgid "B<+>I<user>"
11296 msgstr ""
11297
11298 #. type: Plain text
11299 #: build/C/man5/nsswitch.conf.5:261
11300 msgid "Include the specified I<user> from the NIS passwd map."
11301 msgstr ""
11302
11303 #. type: TP
11304 #: build/C/man5/nsswitch.conf.5:261
11305 #, no-wrap
11306 msgid "B<+@>I<netgroup>"
11307 msgstr ""
11308
11309 #. type: Plain text
11310 #: build/C/man5/nsswitch.conf.5:265
11311 msgid "Include all users in the given I<netgroup>."
11312 msgstr ""
11313
11314 #. type: TP
11315 #: build/C/man5/nsswitch.conf.5:265
11316 #, no-wrap
11317 msgid "B<->I<user>"
11318 msgstr ""
11319
11320 #. type: Plain text
11321 #: build/C/man5/nsswitch.conf.5:270
11322 msgid "Exclude the specified I<user> from the NIS passwd map."
11323 msgstr ""
11324
11325 #. type: TP
11326 #: build/C/man5/nsswitch.conf.5:270
11327 #, no-wrap
11328 msgid "B<-@>I<netgroup>"
11329 msgstr ""
11330
11331 #. type: Plain text
11332 #: build/C/man5/nsswitch.conf.5:274
11333 msgid "Exclude all users in the given I<netgroup>."
11334 msgstr ""
11335
11336 #. type: TP
11337 #: build/C/man5/nsswitch.conf.5:274
11338 #, no-wrap
11339 msgid "B<+>"
11340 msgstr ""
11341
11342 #. type: Plain text
11343 #: build/C/man5/nsswitch.conf.5:278
11344 msgid ""
11345 "Include every user, except previously excluded ones, from the NIS passwd "
11346 "map."
11347 msgstr ""
11348
11349 #. type: Plain text
11350 #: build/C/man5/nsswitch.conf.5:286
11351 msgid ""
11352 "By default the source is \"nis\", but this may be overridden by specifying "
11353 "\"nisplus\" as the source for the pseudo-databases B<passwd_compat>, "
11354 "B<group_compat>, and B<shadow_compat>."
11355 msgstr ""
11356
11357 #. type: Plain text
11358 #: build/C/man5/nsswitch.conf.5:293
11359 msgid ""
11360 "A service named I<SERVICE> is implemented by a shared object library named "
11361 "I<libnss_SERVICE.so.>B<X> that resides in I</lib>."
11362 msgstr ""
11363
11364 #. type: Plain text
11365 #: build/C/man5/nsswitch.conf.5:298
11366 msgid "NSS configuration file."
11367 msgstr ""
11368
11369 #. type: TP
11370 #: build/C/man5/nsswitch.conf.5:298
11371 #, no-wrap
11372 msgid "I</lib/libnss_compat.so.>B<X>"
11373 msgstr ""
11374
11375 #. type: Plain text
11376 #: build/C/man5/nsswitch.conf.5:301
11377 msgid "implements \"compat\" source."
11378 msgstr ""
11379
11380 #. type: TP
11381 #: build/C/man5/nsswitch.conf.5:301
11382 #, no-wrap
11383 msgid "I</lib/libnss_db.so.>B<X>"
11384 msgstr ""
11385
11386 #. type: Plain text
11387 #: build/C/man5/nsswitch.conf.5:304
11388 msgid "implements \"db\" source."
11389 msgstr ""
11390
11391 #. type: TP
11392 #: build/C/man5/nsswitch.conf.5:304
11393 #, no-wrap
11394 msgid "I</lib/libnss_dns.so.>B<X>"
11395 msgstr ""
11396
11397 #. type: Plain text
11398 #: build/C/man5/nsswitch.conf.5:307
11399 msgid "implements \"dns\" source."
11400 msgstr ""
11401
11402 #. type: TP
11403 #: build/C/man5/nsswitch.conf.5:307
11404 #, no-wrap
11405 msgid "I</lib/libnss_files.so.>B<X>"
11406 msgstr ""
11407
11408 #. type: Plain text
11409 #: build/C/man5/nsswitch.conf.5:310
11410 msgid "implements \"files\" source."
11411 msgstr ""
11412
11413 #. type: TP
11414 #: build/C/man5/nsswitch.conf.5:310
11415 #, no-wrap
11416 msgid "I</lib/libnss_hesiod.so.>B<X>"
11417 msgstr ""
11418
11419 #. type: Plain text
11420 #: build/C/man5/nsswitch.conf.5:313
11421 msgid "implements \"hesiod\" source."
11422 msgstr ""
11423
11424 #. type: TP
11425 #: build/C/man5/nsswitch.conf.5:313
11426 #, no-wrap
11427 msgid "I</lib/libnss_nis.so.>B<X>"
11428 msgstr ""
11429
11430 #. type: Plain text
11431 #: build/C/man5/nsswitch.conf.5:316
11432 msgid "implements \"nis\" source."
11433 msgstr ""
11434
11435 #. type: TP
11436 #: build/C/man5/nsswitch.conf.5:316
11437 #, no-wrap
11438 msgid "I</lib/libnss_nisplus.so.>B<X>"
11439 msgstr ""
11440
11441 #. type: Plain text
11442 #: build/C/man5/nsswitch.conf.5:319
11443 msgid "implements \"nisplus\" source."
11444 msgstr ""
11445
11446 #. type: Plain text
11447 #: build/C/man5/nsswitch.conf.5:327
11448 msgid ""
11449 "Within each process that uses B<nsswitch.conf>, the entire file is read only "
11450 "once.  If the file is later changed, the process will continue using the old "
11451 "configuration."
11452 msgstr ""
11453
11454 #. type: Plain text
11455 #: build/C/man5/nsswitch.conf.5:340
11456 msgid ""
11457 "Traditionally, there was only a single source for service information, often "
11458 "in the form of a single configuration file (e.g., I</etc/passwd>).  However, "
11459 "as other name services, such as the Network Information Service (NIS) and "
11460 "the Domain Name Service (DNS), became popular, a method was needed that "
11461 "would be more flexible than fixed search orders coded into the C library.  "
11462 "The Name Service Switch mechanism, which was based on the mechanism used by "
11463 "Sun Microsystems in the Solaris 2 C library, introduced a cleaner solution "
11464 "to the problem."
11465 msgstr ""
11466
11467 #. type: Plain text
11468 #: build/C/man5/nsswitch.conf.5:343
11469 msgid "B<getent>(1), B<nss>(5)"
11470 msgstr ""
11471
11472 #. type: TH
11473 #: build/C/man7/packet.7:7
11474 #, no-wrap
11475 msgid "PACKET"
11476 msgstr ""
11477
11478 #. type: TH
11479 #: build/C/man7/packet.7:7
11480 #, no-wrap
11481 msgid "2012-03-25"
11482 msgstr ""
11483
11484 #. type: Plain text
11485 #: build/C/man7/packet.7:10
11486 msgid "packet, AF_PACKET - packet interface on device level."
11487 msgstr ""
11488
11489 #. type: Plain text
11490 #: build/C/man7/packet.7:13
11491 #, no-wrap
11492 msgid "B<#include E<lt>sys/socket.hE<gt>>\n"
11493 msgstr ""
11494
11495 #. type: Plain text
11496 #: build/C/man7/packet.7:15
11497 #, no-wrap
11498 msgid "B<#include E<lt>netpacket/packet.hE<gt>>\n"
11499 msgstr ""
11500
11501 #. type: Plain text
11502 #: build/C/man7/packet.7:17
11503 #, no-wrap
11504 msgid "B<#include E<lt>net/ethernet.hE<gt> /* the L2 protocols */>\n"
11505 msgstr ""
11506
11507 #. type: Plain text
11508 #: build/C/man7/packet.7:19
11509 #, no-wrap
11510 msgid ""
11511 "B<packet_socket = socket(AF_PACKET, int >I<socket_type>B<, int "
11512 ">I<protocol>B<);>\n"
11513 msgstr ""
11514
11515 #. type: Plain text
11516 #: build/C/man7/packet.7:25
11517 msgid ""
11518 "Packet sockets are used to receive or send raw packets at the device driver "
11519 "(OSI Layer 2) level.  They allow the user to implement protocol modules in "
11520 "user space on top of the physical layer."
11521 msgstr ""
11522
11523 #. type: Plain text
11524 #: build/C/man7/packet.7:47
11525 msgid ""
11526 "The I<socket_type> is either B<SOCK_RAW> for raw packets including the link "
11527 "level header or B<SOCK_DGRAM> for cooked packets with the link level header "
11528 "removed.  The link level header information is available in a common format "
11529 "in a I<sockaddr_ll>.  I<protocol> is the IEEE 802.3 protocol number in "
11530 "network order.  See the I<E<lt>linux/if_ether.hE<gt>> include file for a "
11531 "list of allowed protocols.  When protocol is set to B<htons(ETH_P_ALL)> then "
11532 "all protocols are received.  All incoming packets of that protocol type will "
11533 "be passed to the packet socket before they are passed to the protocols "
11534 "implemented in the kernel."
11535 msgstr ""
11536
11537 #. type: Plain text
11538 #: build/C/man7/packet.7:51
11539 msgid ""
11540 "Only processes with effective UID 0 or the B<CAP_NET_RAW> capability may "
11541 "open packet sockets."
11542 msgstr ""
11543
11544 #. type: Plain text
11545 #: build/C/man7/packet.7:69
11546 msgid ""
11547 "B<SOCK_RAW> packets are passed to and from the device driver without any "
11548 "changes in the packet data.  When receiving a packet, the address is still "
11549 "parsed and passed in a standard I<sockaddr_ll> address structure.  When "
11550 "transmitting a packet, the user supplied buffer should contain the physical "
11551 "layer header.  That packet is then queued unmodified to the network driver "
11552 "of the interface defined by the destination address.  Some device drivers "
11553 "always add other headers.  B<SOCK_RAW> is similar to but not compatible with "
11554 "the obsolete B<AF_INET/SOCK_PACKET> of Linux 2.0."
11555 msgstr ""
11556
11557 #. type: Plain text
11558 #: build/C/man7/packet.7:79
11559 msgid ""
11560 "B<SOCK_DGRAM> operates on a slightly higher level.  The physical header is "
11561 "removed before the packet is passed to the user.  Packets sent through a "
11562 "B<SOCK_DGRAM> packet socket get a suitable physical layer header based on "
11563 "the information in the I<sockaddr_ll> destination address before they are "
11564 "queued."
11565 msgstr ""
11566
11567 #. type: Plain text
11568 #: build/C/man7/packet.7:92
11569 msgid ""
11570 "By default all packets of the specified protocol type are passed to a packet "
11571 "socket.  To only get packets from a specific interface use B<bind>(2)  "
11572 "specifying an address in a I<struct sockaddr_ll> to bind the packet socket "
11573 "to an interface.  Only the I<sll_protocol> and the I<sll_ifindex> address "
11574 "fields are used for purposes of binding."
11575 msgstr ""
11576
11577 #. type: Plain text
11578 #: build/C/man7/packet.7:96
11579 msgid "The B<connect>(2)  operation is not supported on packet sockets."
11580 msgstr ""
11581
11582 #. type: Plain text
11583 #: build/C/man7/packet.7:105
11584 msgid ""
11585 "When the B<MSG_TRUNC> flag is passed to B<recvmsg>(2), B<recv>(2), "
11586 "B<recvfrom>(2)  the real length of the packet on the wire is always "
11587 "returned, even when it is longer than the buffer."
11588 msgstr ""
11589
11590 #. type: SS
11591 #: build/C/man7/packet.7:105
11592 #, no-wrap
11593 msgid "Address Types"
11594 msgstr ""
11595
11596 #. type: Plain text
11597 #: build/C/man7/packet.7:107
11598 msgid "The sockaddr_ll is a device independent physical layer address."
11599 msgstr ""
11600
11601 #. type: Plain text
11602 #: build/C/man7/packet.7:119
11603 #, no-wrap
11604 msgid ""
11605 "struct sockaddr_ll {\n"
11606 "    unsigned short sll_family;   /* Always AF_PACKET */\n"
11607 "    unsigned short sll_protocol; /* Physical layer protocol */\n"
11608 "    int            sll_ifindex;  /* Interface number */\n"
11609 "    unsigned short sll_hatype;   /* ARP hardware type */\n"
11610 "    unsigned char  sll_pkttype;  /* Packet type */\n"
11611 "    unsigned char  sll_halen;    /* Length of address */\n"
11612 "    unsigned char  sll_addr[8];  /* Physical layer address */\n"
11613 "};\n"
11614 msgstr ""
11615
11616 #. type: Plain text
11617 #: build/C/man7/packet.7:158
11618 msgid ""
11619 "I<sll_protocol> is the standard ethernet protocol type in network order as "
11620 "defined in the I<E<lt>linux/if_ether.hE<gt>> include file.  It defaults to "
11621 "the socket's protocol.  I<sll_ifindex> is the interface index of the "
11622 "interface (see B<netdevice>(7)); 0 matches any interface (only permitted for "
11623 "binding).  I<sll_hatype> is an ARP type as defined in the "
11624 "I<E<lt>linux/if_arp.hE<gt>> include file.  I<sll_pkttype> contains the "
11625 "packet type.  Valid types are B<PACKET_HOST> for a packet addressed to the "
11626 "local host, B<PACKET_BROADCAST> for a physical layer broadcast packet, "
11627 "B<PACKET_MULTICAST> for a packet sent to a physical layer multicast address, "
11628 "B<PACKET_OTHERHOST> for a packet to some other host that has been caught by "
11629 "a device driver in promiscuous mode, and B<PACKET_OUTGOING> for a packet "
11630 "originated from the local host that is looped back to a packet socket.  "
11631 "These types make only sense for receiving.  I<sll_addr> and I<sll_halen> "
11632 "contain the physical layer (e.g., IEEE 802.3) address and its length.  The "
11633 "exact interpretation depends on the device."
11634 msgstr ""
11635
11636 #. type: Plain text
11637 #: build/C/man7/packet.7:174
11638 msgid ""
11639 "When you send packets it is enough to specify I<sll_family>, I<sll_addr>, "
11640 "I<sll_halen>, I<sll_ifindex>.  The other fields should be 0.  I<sll_hatype> "
11641 "and I<sll_pkttype> are set on received packets for your information.  For "
11642 "bind only I<sll_protocol> and I<sll_ifindex> are used."
11643 msgstr ""
11644
11645 #. type: Plain text
11646 #: build/C/man7/packet.7:189
11647 msgid ""
11648 "Packet sockets can be used to configure physical layer multicasting and "
11649 "promiscuous mode.  It works by calling B<setsockopt>(2)  on a packet socket "
11650 "for B<SOL_PACKET> and one of the options B<PACKET_ADD_MEMBERSHIP> to add a "
11651 "binding or B<PACKET_DROP_MEMBERSHIP> to drop it.  They both expect a "
11652 "B<packet_mreq> structure as argument:"
11653 msgstr ""
11654
11655 #. type: Plain text
11656 #: build/C/man7/packet.7:198
11657 #, no-wrap
11658 msgid ""
11659 "struct packet_mreq {\n"
11660 "    int            mr_ifindex;    /* interface index */\n"
11661 "    unsigned short mr_type;       /* action */\n"
11662 "    unsigned short mr_alen;       /* address length */\n"
11663 "    unsigned char  mr_address[8]; /* physical layer address */\n"
11664 "};\n"
11665 msgstr ""
11666
11667 #. type: Plain text
11668 #: build/C/man7/packet.7:219
11669 msgid ""
11670 "B<mr_ifindex> contains the interface index for the interface whose status "
11671 "should be changed.  The B<mr_type> parameter specifies which action to "
11672 "perform.  B<PACKET_MR_PROMISC> enables receiving all packets on a shared "
11673 "medium (often known as \"promiscuous mode\"), B<PACKET_MR_MULTICAST> binds "
11674 "the socket to the physical layer multicast group specified in B<mr_address> "
11675 "and B<mr_alen>, and B<PACKET_MR_ALLMULTI> sets the socket up to receive all "
11676 "multicast packets arriving at the interface."
11677 msgstr ""
11678
11679 #. type: Plain text
11680 #: build/C/man7/packet.7:225
11681 msgid ""
11682 "In addition the traditional ioctls B<SIOCSIFFLAGS>, B<SIOCADDMULTI>, "
11683 "B<SIOCDELMULTI> can be used for the same purpose."
11684 msgstr ""
11685
11686 #.  FIXME Document SIOCGSTAMPNS
11687 #. type: Plain text
11688 #: build/C/man7/packet.7:231
11689 msgid ""
11690 "B<SIOCGSTAMP> can be used to receive the timestamp of the last received "
11691 "packet.  Argument is a I<struct timeval.>"
11692 msgstr ""
11693
11694 #. type: Plain text
11695 #: build/C/man7/packet.7:237
11696 msgid ""
11697 "In addition all standard ioctls defined in B<netdevice>(7)  and B<socket>(7)  "
11698 "are valid on packet sockets."
11699 msgstr ""
11700
11701 #. type: SS
11702 #: build/C/man7/packet.7:237 build/C/man7/raw.7:127 build/C/man7/tcp.7:1080 build/C/man7/udp.7:97
11703 #, no-wrap
11704 msgid "Error Handling"
11705 msgstr ""
11706
11707 #. type: Plain text
11708 #: build/C/man7/packet.7:241
11709 msgid ""
11710 "Packet sockets do no error handling other than errors occurred while passing "
11711 "the packet to the device driver.  They don't have the concept of a pending "
11712 "error."
11713 msgstr ""
11714
11715 #. type: Plain text
11716 #: build/C/man7/packet.7:245
11717 msgid "Unknown multicast group address passed."
11718 msgstr ""
11719
11720 #. type: Plain text
11721 #: build/C/man7/packet.7:248
11722 msgid "User passed invalid memory address."
11723 msgstr ""
11724
11725 #. type: Plain text
11726 #: build/C/man7/packet.7:251 build/C/man7/raw.7:151
11727 msgid "Invalid argument."
11728 msgstr ""
11729
11730 #. type: Plain text
11731 #: build/C/man7/packet.7:254
11732 msgid "Packet is bigger than interface MTU."
11733 msgstr ""
11734
11735 #. type: TP
11736 #: build/C/man7/packet.7:254
11737 #, no-wrap
11738 msgid "B<ENETDOWN>"
11739 msgstr ""
11740
11741 #. type: Plain text
11742 #: build/C/man7/packet.7:257
11743 msgid "Interface is not up."
11744 msgstr ""
11745
11746 #. type: Plain text
11747 #: build/C/man7/packet.7:260
11748 msgid "Not enough memory to allocate the packet."
11749 msgstr ""
11750
11751 #. type: Plain text
11752 #: build/C/man7/packet.7:263
11753 msgid "Unknown device name or interface index specified in interface address."
11754 msgstr ""
11755
11756 #. type: Plain text
11757 #: build/C/man7/packet.7:266
11758 msgid "No packet received."
11759 msgstr ""
11760
11761 #. type: Plain text
11762 #: build/C/man7/packet.7:269
11763 msgid "No interface address passed."
11764 msgstr ""
11765
11766 #. type: TP
11767 #: build/C/man7/packet.7:269
11768 #, no-wrap
11769 msgid "B<ENXIO>"
11770 msgstr ""
11771
11772 #. type: Plain text
11773 #: build/C/man7/packet.7:272
11774 msgid "Interface address contained an invalid interface index."
11775 msgstr ""
11776
11777 #. type: Plain text
11778 #: build/C/man7/packet.7:275
11779 msgid "User has insufficient privileges to carry out this operation."
11780 msgstr ""
11781
11782 #. type: Plain text
11783 #: build/C/man7/packet.7:277
11784 msgid "In addition other errors may be generated by the low-level driver."
11785 msgstr ""
11786
11787 #. type: Plain text
11788 #: build/C/man7/packet.7:282
11789 msgid ""
11790 "B<AF_PACKET> is a new feature in Linux 2.2.  Earlier Linux versions "
11791 "supported only B<SOCK_PACKET>."
11792 msgstr ""
11793
11794 #. type: Plain text
11795 #: build/C/man7/packet.7:287
11796 msgid ""
11797 "The include file I<E<lt>netpacket/packet.hE<gt>> is present since glibc "
11798 "2.1.  Older systems need:"
11799 msgstr ""
11800
11801 #. type: Plain text
11802 #: build/C/man7/packet.7:293
11803 #, no-wrap
11804 msgid ""
11805 "#include E<lt>asm/types.hE<gt>\n"
11806 "#include E<lt>linux/if_packet.hE<gt>\n"
11807 "#include E<lt>linux/if_ether.hE<gt>  /* The L2 protocols */\n"
11808 msgstr ""
11809
11810 #. type: Plain text
11811 #: build/C/man7/packet.7:303
11812 msgid ""
11813 "For portable programs it is suggested to use B<AF_PACKET> via B<pcap>(3); "
11814 "although this only covers a subset of the B<AF_PACKET> features."
11815 msgstr ""
11816
11817 #. type: Plain text
11818 #: build/C/man7/packet.7:324
11819 msgid ""
11820 "The B<SOCK_DGRAM> packet sockets make no attempt to create or parse the IEEE "
11821 "802.2 LLC header for a IEEE 802.3 frame.  When B<ETH_P_802_3> is specified "
11822 "as protocol for sending the kernel creates the 802.3 frame and fills out the "
11823 "length field; the user has to supply the LLC header to get a fully "
11824 "conforming packet.  Incoming 802.3 packets are not multiplexed on the "
11825 "DSAP/SSAP protocol fields; instead they are supplied to the user as protocol "
11826 "B<ETH_P_802_2> with the LLC header prepended.  It is thus not possible to "
11827 "bind to B<ETH_P_802_3>; bind to B<ETH_P_802_2> instead and do the protocol "
11828 "multiplex yourself.  The default for sending is the standard Ethernet DIX "
11829 "encapsulation with the protocol filled in."
11830 msgstr ""
11831
11832 #. type: Plain text
11833 #: build/C/man7/packet.7:326
11834 msgid "Packet sockets are not subject to the input or output firewall chains."
11835 msgstr ""
11836
11837 #. type: Plain text
11838 #: build/C/man7/packet.7:336
11839 msgid ""
11840 "In Linux 2.0, the only way to get a packet socket was by calling "
11841 "B<socket(AF_INET, SOCK_PACKET, >I<protocol>B<)>.  This is still supported "
11842 "but strongly deprecated.  The main difference between the two methods is "
11843 "that B<SOCK_PACKET> uses the old I<struct sockaddr_pkt> to specify an "
11844 "interface, which doesn't provide physical layer independence."
11845 msgstr ""
11846
11847 #. type: Plain text
11848 #: build/C/man7/packet.7:344
11849 #, no-wrap
11850 msgid ""
11851 "struct sockaddr_pkt {\n"
11852 "    unsigned short spkt_family;\n"
11853 "    unsigned char  spkt_device[14];\n"
11854 "    unsigned short spkt_protocol;\n"
11855 "};\n"
11856 msgstr ""
11857
11858 #. type: Plain text
11859 #: build/C/man7/packet.7:356
11860 msgid ""
11861 "I<spkt_family> contains the device type, I<spkt_protocol> is the IEEE 802.3 "
11862 "protocol type as defined in I<E<lt>sys/if_ether.hE<gt>> and I<spkt_device> "
11863 "is the device name as a null-terminated string, for example, eth0."
11864 msgstr ""
11865
11866 #. type: Plain text
11867 #: build/C/man7/packet.7:358
11868 msgid "This structure is obsolete and should not be used in new code."
11869 msgstr ""
11870
11871 #. type: Plain text
11872 #: build/C/man7/packet.7:362
11873 msgid ""
11874 "glibc 2.1 does not have a define for B<SOL_PACKET>.  The suggested "
11875 "workaround is to use:"
11876 msgstr ""
11877
11878 #. type: Plain text
11879 #: build/C/man7/packet.7:368
11880 #, no-wrap
11881 msgid ""
11882 "#ifndef SOL_PACKET\n"
11883 "#define SOL_PACKET 263\n"
11884 "#endif\n"
11885 msgstr ""
11886
11887 #. type: Plain text
11888 #: build/C/man7/packet.7:373
11889 msgid ""
11890 "This is fixed in later glibc versions and also does not occur on libc5 "
11891 "systems."
11892 msgstr ""
11893
11894 #. type: Plain text
11895 #: build/C/man7/packet.7:375
11896 msgid "The IEEE 802.2/803.3 LLC handling could be considered as a bug."
11897 msgstr ""
11898
11899 #. type: Plain text
11900 #: build/C/man7/packet.7:377
11901 msgid "Socket filters are not documented."
11902 msgstr ""
11903
11904 #.  .SH CREDITS
11905 #.  This man page was written by Andi Kleen with help from Matthew Wilcox.
11906 #.  AF_PACKET in Linux 2.2 was implemented
11907 #.  by Alexey Kuznetsov, based on code by Alan Cox and others.
11908 #. type: Plain text
11909 #: build/C/man7/packet.7:389
11910 msgid ""
11911 "The B<MSG_TRUNC> B<recvmsg>(2)  extension is an ugly hack and should be "
11912 "replaced by a control message.  There is currently no way to get the "
11913 "original destination address of packets via B<SOCK_DGRAM>."
11914 msgstr ""
11915
11916 #. type: Plain text
11917 #: build/C/man7/packet.7:396
11918 msgid ""
11919 "B<socket>(2), B<pcap>(3), B<capabilities>(7), B<ip>(7), B<raw>(7), "
11920 "B<socket>(7)"
11921 msgstr ""
11922
11923 #. type: Plain text
11924 #: build/C/man7/packet.7:398
11925 msgid "RFC\\ 894 for the standard IP Ethernet encapsulation."
11926 msgstr ""
11927
11928 #. type: Plain text
11929 #: build/C/man7/packet.7:400
11930 msgid "RFC\\ 1700 for the IEEE 802.3 IP encapsulation."
11931 msgstr ""
11932
11933 #. type: Plain text
11934 #: build/C/man7/packet.7:404
11935 msgid "The I<E<lt>linux/if_ether.hE<gt>> include file for physical layer protocols."
11936 msgstr ""
11937
11938 #. type: TH
11939 #: build/C/man5/protocols.5:28
11940 #, no-wrap
11941 msgid "PROTOCOLS"
11942 msgstr ""
11943
11944 #. type: TH
11945 #: build/C/man5/protocols.5:28
11946 #, no-wrap
11947 msgid "2008-09-23"
11948 msgstr ""
11949
11950 #. type: Plain text
11951 #: build/C/man5/protocols.5:31
11952 msgid "protocols - protocols definition file"
11953 msgstr ""
11954
11955 #. type: Plain text
11956 #: build/C/man5/protocols.5:39
11957 msgid ""
11958 "This file is a plain ASCII file, describing the various DARPA internet "
11959 "protocols that are available from the TCP/IP subsystem.  It should be "
11960 "consulted instead of using the numbers in the ARPA include files, or, even "
11961 "worse, just guessing them.  These numbers will occur in the protocol field "
11962 "of any IP header."
11963 msgstr ""
11964
11965 #.  .. by the DDN Network Information Center.
11966 #. type: Plain text
11967 #: build/C/man5/protocols.5:45
11968 msgid ""
11969 "Keep this file untouched since changes would result in incorrect IP "
11970 "packages.  Protocol numbers and names are specified by the IANA (Internet "
11971 "Assigned Numbers Authority)."
11972 msgstr ""
11973
11974 #. type: Plain text
11975 #: build/C/man5/protocols.5:47
11976 msgid "Each line is of the following format:"
11977 msgstr ""
11978
11979 #. type: Plain text
11980 #: build/C/man5/protocols.5:50
11981 msgid "I<protocol number aliases ...>"
11982 msgstr ""
11983
11984 #. type: Plain text
11985 #: build/C/man5/protocols.5:56
11986 msgid ""
11987 "where the fields are delimited by spaces or tabs.  Empty lines are ignored.  "
11988 "If a line contains a hash mark (#), the hash mark and the part of the line "
11989 "following it are ignored."
11990 msgstr ""
11991
11992 #. type: TP
11993 #: build/C/man5/protocols.5:58 build/C/man5/services.5:109
11994 #, no-wrap
11995 msgid "I<protocol>"
11996 msgstr ""
11997
11998 #. type: Plain text
11999 #: build/C/man5/protocols.5:66
12000 msgid "the native name for the protocol.  For example I<ip>, I<tcp>, or I<udp>."
12001 msgstr ""
12002
12003 #. type: Plain text
12004 #: build/C/man5/protocols.5:70
12005 msgid ""
12006 "the official number for this protocol as it will appear within the IP "
12007 "header."
12008 msgstr ""
12009
12010 #. type: Plain text
12011 #: build/C/man5/protocols.5:73
12012 msgid "optional aliases for the protocol."
12013 msgstr ""
12014
12015 #.  The following is not true as at glibc 2.8 (a line with a comma is
12016 #.  ignored by getservent()); it's not clear if/when it was ever true.
12017 #.    As a backward compatibility feature, the slash (/) between the
12018 #.    .I port
12019 #.    number and
12020 #.    .I protocol
12021 #.    name can in fact be either a slash or a comma (,).
12022 #.    Use of the comma in
12023 #.    modern installations is deprecated.
12024 #. type: Plain text
12025 #: build/C/man5/protocols.5:76 build/C/man5/services.5:165
12026 msgid ""
12027 "This file might be distributed over a network using a network-wide naming "
12028 "service like Yellow Pages/NIS or BIND/Hesiod."
12029 msgstr ""
12030
12031 #. type: Plain text
12032 #: build/C/man5/protocols.5:80
12033 msgid "The protocols definition file."
12034 msgstr ""
12035
12036 #. type: Plain text
12037 #: build/C/man5/protocols.5:82
12038 msgid "B<getprotoent>(3)"
12039 msgstr ""
12040
12041 #. type: Plain text
12042 #: build/C/man5/protocols.5:84
12043 msgid "http://www.iana.org/assignments/protocol-numbers"
12044 msgstr ""
12045
12046 #. type: TH
12047 #: build/C/man7/raw.7:9
12048 #, no-wrap
12049 msgid "RAW"
12050 msgstr ""
12051
12052 #. type: Plain text
12053 #: build/C/man7/raw.7:12
12054 msgid "raw, SOCK_RAW - Linux IPv4 raw sockets"
12055 msgstr ""
12056
12057 #. type: Plain text
12058 #: build/C/man7/raw.7:18
12059 msgid "B<raw_socket = socket(AF_INET, SOCK_RAW, int >I<protocol>B<);>"
12060 msgstr ""
12061
12062 #. type: Plain text
12063 #: build/C/man7/raw.7:22
12064 msgid ""
12065 "Raw sockets allow new IPv4 protocols to be implemented in user space.  A raw "
12066 "socket receives or sends the raw datagram not including link level headers."
12067 msgstr ""
12068
12069 #. type: Plain text
12070 #: build/C/man7/raw.7:28
12071 msgid ""
12072 "The IPv4 layer generates an IP header when sending a packet unless the "
12073 "B<IP_HDRINCL> socket option is enabled on the socket.  When it is enabled, "
12074 "the packet must contain an IP header.  For receiving the IP header is always "
12075 "included in the packet."
12076 msgstr ""
12077
12078 #. type: Plain text
12079 #: build/C/man7/raw.7:32
12080 msgid ""
12081 "Only processes with an effective user ID of 0 or the B<CAP_NET_RAW> "
12082 "capability are allowed to open raw sockets."
12083 msgstr ""
12084
12085 #. type: Plain text
12086 #: build/C/man7/raw.7:39
12087 msgid ""
12088 "All packets or errors matching the I<protocol> number specified for the raw "
12089 "socket are passed to this socket.  For a list of the allowed protocols see "
12090 "RFC\\ 1700 assigned numbers and B<getprotobyname>(3)."
12091 msgstr ""
12092
12093 #. type: Plain text
12094 #: build/C/man7/raw.7:49
12095 msgid ""
12096 "A protocol of B<IPPROTO_RAW> implies enabled B<IP_HDRINCL> and is able to "
12097 "send any IP protocol that is specified in the passed header.  Receiving of "
12098 "all IP protocols via B<IPPROTO_RAW> is not possible using raw sockets."
12099 msgstr ""
12100
12101 #. type: tbl table
12102 #: build/C/man7/raw.7:54
12103 #, no-wrap
12104 msgid "IP Header fields modified on sending by B<IP_HDRINCL>\n"
12105 msgstr ""
12106
12107 #. type: tbl table
12108 #: build/C/man7/raw.7:55
12109 #, no-wrap
12110 msgid "IP Checksum:Always filled in.\n"
12111 msgstr ""
12112
12113 #. type: tbl table
12114 #: build/C/man7/raw.7:56
12115 #, no-wrap
12116 msgid "Source Address:Filled in when zero.\n"
12117 msgstr ""
12118
12119 #. type: tbl table
12120 #: build/C/man7/raw.7:57
12121 #, no-wrap
12122 msgid "Packet Id:Filled in when zero.\n"
12123 msgstr ""
12124
12125 #. type: tbl table
12126 #: build/C/man7/raw.7:58
12127 #, no-wrap
12128 msgid "Total Length:Always filled in.\n"
12129 msgstr ""
12130
12131 #. type: Plain text
12132 #: build/C/man7/raw.7:72
12133 msgid ""
12134 "If B<IP_HDRINCL> is specified and the IP header has a nonzero destination "
12135 "address then the destination address of the socket is used to route the "
12136 "packet.  When B<MSG_DONTROUTE> is specified, the destination address should "
12137 "refer to a local interface, otherwise a routing table lookup is done anyway "
12138 "but gatewayed routes are ignored."
12139 msgstr ""
12140
12141 #. type: Plain text
12142 #: build/C/man7/raw.7:80
12143 msgid ""
12144 "If B<IP_HDRINCL> isn't set, then IP header options can be set on raw sockets "
12145 "with B<setsockopt>(2); see B<ip>(7)  for more information."
12146 msgstr ""
12147
12148 #. type: Plain text
12149 #: build/C/man7/raw.7:85
12150 msgid ""
12151 "In Linux 2.2, all IP header fields and options can be set using IP socket "
12152 "options.  This means raw sockets are usually only needed for new protocols "
12153 "or protocols with no user interface (like ICMP)."
12154 msgstr ""
12155
12156 #. type: Plain text
12157 #: build/C/man7/raw.7:89
12158 msgid ""
12159 "When a packet is received, it is passed to any raw sockets which have been "
12160 "bound to its protocol before it is passed to other protocol handlers (e.g., "
12161 "kernel protocol modules)."
12162 msgstr ""
12163
12164 #. type: Plain text
12165 #: build/C/man7/raw.7:105
12166 msgid ""
12167 "Raw sockets use the standard I<sockaddr_in> address structure defined in "
12168 "B<ip>(7).  The I<sin_port> field could be used to specify the IP protocol "
12169 "number, but it is ignored for sending in Linux 2.2 and should be always set "
12170 "to 0 (see BUGS).  For incoming packets, I<sin_port> is set to the protocol "
12171 "of the packet.  See the I<E<lt>netinet/in.hE<gt>> include file for valid IP "
12172 "protocols."
12173 msgstr ""
12174
12175 #.  Or SOL_RAW on Linux
12176 #. type: Plain text
12177 #: build/C/man7/raw.7:114
12178 msgid ""
12179 "Raw socket options can be set with B<setsockopt>(2)  and read with "
12180 "B<getsockopt>(2)  by passing the B<IPPROTO_RAW> family flag."
12181 msgstr ""
12182
12183 #. type: TP
12184 #: build/C/man7/raw.7:114
12185 #, no-wrap
12186 msgid "B<ICMP_FILTER>"
12187 msgstr ""
12188
12189 #. type: Plain text
12190 #: build/C/man7/raw.7:122
12191 msgid ""
12192 "Enable a special filter for raw sockets bound to the B<IPPROTO_ICMP> "
12193 "protocol.  The value has a bit set for each ICMP message type which should "
12194 "be filtered out.  The default is to filter no ICMP messages."
12195 msgstr ""
12196
12197 #. type: Plain text
12198 #: build/C/man7/raw.7:127
12199 msgid ""
12200 "In addition, all B<ip>(7)  B<IPPROTO_IP> socket options valid for datagram "
12201 "sockets are supported."
12202 msgstr ""
12203
12204 #. type: Plain text
12205 #: build/C/man7/raw.7:140
12206 msgid ""
12207 "Errors originating from the network are only passed to the user when the "
12208 "socket is connected or the B<IP_RECVERR> flag is enabled.  For connected "
12209 "sockets, only B<EMSGSIZE> and B<EPROTO> are passed for compatibility.  With "
12210 "B<IP_RECVERR>, all network errors are saved in the error queue."
12211 msgstr ""
12212
12213 #. type: Plain text
12214 #: build/C/man7/raw.7:145
12215 msgid ""
12216 "User tried to send to a broadcast address without having the broadcast flag "
12217 "set on the socket."
12218 msgstr ""
12219
12220 #. type: Plain text
12221 #: build/C/man7/raw.7:148
12222 msgid "An invalid memory address was supplied."
12223 msgstr ""
12224
12225 #. type: Plain text
12226 #: build/C/man7/raw.7:158
12227 msgid ""
12228 "Packet too big.  Either Path MTU Discovery is enabled (the "
12229 "B<IP_MTU_DISCOVER> socket flag) or the packet size exceeds the maximum "
12230 "allowed IPv4 packet size of 64KB."
12231 msgstr ""
12232
12233 #. type: TP
12234 #: build/C/man7/raw.7:158 build/C/man7/unix.7:360
12235 #, no-wrap
12236 msgid "B<EOPNOTSUPP>"
12237 msgstr ""
12238
12239 #. type: Plain text
12240 #: build/C/man7/raw.7:162
12241 msgid "Invalid flag has been passed to a socket call (like B<MSG_OOB>)."
12242 msgstr ""
12243
12244 #. type: Plain text
12245 #: build/C/man7/raw.7:168
12246 msgid ""
12247 "The user doesn't have permission to open raw sockets.  Only processes with "
12248 "an effective user ID of 0 or the B<CAP_NET_RAW> attribute may do that."
12249 msgstr ""
12250
12251 #. type: TP
12252 #: build/C/man7/raw.7:168
12253 #, no-wrap
12254 msgid "B<EPROTO>"
12255 msgstr ""
12256
12257 #. type: Plain text
12258 #: build/C/man7/raw.7:171
12259 msgid "An ICMP error has arrived reporting a parameter problem."
12260 msgstr ""
12261
12262 #. type: Plain text
12263 #: build/C/man7/raw.7:177
12264 msgid ""
12265 "B<IP_RECVERR> and B<ICMP_FILTER> are new in Linux 2.2.  They are Linux "
12266 "extensions and should not be used in portable programs."
12267 msgstr ""
12268
12269 #. type: Plain text
12270 #: build/C/man7/raw.7:183
12271 msgid ""
12272 "Linux 2.0 enabled some bug-to-bug compatibility with BSD in the raw socket "
12273 "code when the B<SO_BSDCOMPAT> socket option was set \\(em since Linux 2.2, "
12274 "this option no longer has that effect."
12275 msgstr ""
12276
12277 #. type: Plain text
12278 #: build/C/man7/raw.7:201
12279 msgid ""
12280 "By default, raw sockets do path MTU (Maximum Transmission Unit) discovery.  "
12281 "This means the kernel will keep track of the MTU to a specific target IP "
12282 "address and return B<EMSGSIZE> when a raw packet write exceeds it.  When "
12283 "this happens, the application should decrease the packet size.  Path MTU "
12284 "discovery can be also turned off using the B<IP_MTU_DISCOVER> socket option "
12285 "or the I</proc/sys/net/ipv4/ip_no_pmtu_disc> file, see B<ip>(7)  for "
12286 "details.  When turned off, raw sockets will fragment outgoing packets that "
12287 "exceed the interface MTU.  However, disabling it is not recommended for "
12288 "performance and reliability reasons."
12289 msgstr ""
12290
12291 #. type: Plain text
12292 #: build/C/man7/raw.7:210
12293 msgid ""
12294 "A raw socket can be bound to a specific local address using the B<bind>(2)  "
12295 "call.  If it isn't bound, all packets with the specified IP protocol are "
12296 "received.  In addition, a RAW socket can be bound to a specific network "
12297 "device using B<SO_BINDTODEVICE>; see B<socket>(7)."
12298 msgstr ""
12299
12300 #. type: Plain text
12301 #: build/C/man7/raw.7:221
12302 msgid ""
12303 "An B<IPPROTO_RAW> socket is send only.  If you really want to receive all IP "
12304 "packets, use a B<packet>(7)  socket with the B<ETH_P_IP> protocol.  Note "
12305 "that packet sockets don't reassemble IP fragments, unlike raw sockets."
12306 msgstr ""
12307
12308 #. type: Plain text
12309 #: build/C/man7/raw.7:227
12310 msgid ""
12311 "If you want to receive all ICMP packets for a datagram socket, it is often "
12312 "better to use B<IP_RECVERR> on that particular socket; see B<ip>(7)."
12313 msgstr ""
12314
12315 #. type: Plain text
12316 #: build/C/man7/raw.7:234
12317 msgid ""
12318 "Raw sockets may tap all IP protocols in Linux, even protocols like ICMP or "
12319 "TCP which have a protocol module in the kernel.  In this case, the packets "
12320 "are passed to both the kernel module and the raw socket(s).  This should not "
12321 "be relied upon in portable programs, many other BSD socket implementation "
12322 "have limitations here."
12323 msgstr ""
12324
12325 #. type: Plain text
12326 #: build/C/man7/raw.7:239
12327 msgid ""
12328 "Linux never changes headers passed from the user (except for filling in some "
12329 "zeroed fields as described for B<IP_HDRINCL>).  This differs from many other "
12330 "implementations of raw sockets."
12331 msgstr ""
12332
12333 #. type: Plain text
12334 #: build/C/man7/raw.7:242
12335 msgid ""
12336 "RAW sockets are generally rather unportable and should be avoided in "
12337 "programs intended to be portable."
12338 msgstr ""
12339
12340 #. type: Plain text
12341 #: build/C/man7/raw.7:248
12342 msgid ""
12343 "Sending on raw sockets should take the IP protocol from I<sin_port>; this "
12344 "ability was lost in Linux 2.2.  The workaround is to use B<IP_HDRINCL>."
12345 msgstr ""
12346
12347 #. type: Plain text
12348 #: build/C/man7/raw.7:250
12349 msgid "Transparent proxy extensions are not described."
12350 msgstr ""
12351
12352 #. type: Plain text
12353 #: build/C/man7/raw.7:255
12354 msgid ""
12355 "When the B<IP_HDRINCL> option is set, datagrams will not be fragmented and "
12356 "are limited to the interface MTU."
12357 msgstr ""
12358
12359 #.  .SH AUTHORS
12360 #.  This man page was written by Andi Kleen.
12361 #. type: Plain text
12362 #: build/C/man7/raw.7:265
12363 msgid ""
12364 "Setting the IP protocol for sending in I<sin_port> got lost in Linux 2.2.  "
12365 "The protocol that the socket was bound to or that was specified in the "
12366 "initial B<socket>(2)  call is always used."
12367 msgstr ""
12368
12369 #. type: Plain text
12370 #: build/C/man7/raw.7:271
12371 msgid "B<recvmsg>(2), B<sendmsg>(2), B<capabilities>(7), B<ip>(7), B<socket>(7)"
12372 msgstr ""
12373
12374 #. type: Plain text
12375 #: build/C/man7/raw.7:274
12376 msgid "B<RFC\\ 1191> for path MTU discovery."
12377 msgstr ""
12378
12379 #. type: Plain text
12380 #: build/C/man7/raw.7:279
12381 msgid ""
12382 "B<RFC\\ 791> and the I<E<lt>linux/ip.hE<gt>> include file for the IP "
12383 "protocol."
12384 msgstr ""
12385
12386 #. type: TH
12387 #: build/C/man3/rcmd.3:41
12388 #, no-wrap
12389 msgid "RCMD"
12390 msgstr ""
12391
12392 #. type: TH
12393 #: 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/man7/tcp.7:16
12394 #, no-wrap
12395 msgid "2012-04-23"
12396 msgstr ""
12397
12398 #. type: Plain text
12399 #: build/C/man3/rcmd.3:46
12400 msgid ""
12401 "rcmd, rresvport, iruserok, ruserok, rcmd_af, rresvport_af, iruserok_af, "
12402 "ruserok_af - routines for returning a stream to a remote command"
12403 msgstr ""
12404
12405 #. type: Plain text
12406 #: build/C/man3/rcmd.3:49
12407 #, no-wrap
12408 msgid ""
12409 "B<#include E<lt>netdb.hE<gt> \\ \\ >/* Or E<lt>unistd.hE<gt> on some systems "
12410 "*/\n"
12411 msgstr ""
12412
12413 #. type: Plain text
12414 #: build/C/man3/rcmd.3:52
12415 #, no-wrap
12416 msgid ""
12417 "B<int rcmd(char **>I<ahost>B<, int >I<inport>B<, const char *>I<locuser>B<, "
12418 ">\n"
12419 "B<         const char *>I<remuser>B<, const char *>I<cmd>B<, int "
12420 "*>I<fd2p>B<);>\n"
12421 msgstr ""
12422
12423 #. type: Plain text
12424 #: build/C/man3/rcmd.3:54
12425 #, no-wrap
12426 msgid "B<int rresvport(int *>I<port>B<);>\n"
12427 msgstr ""
12428
12429 #. type: Plain text
12430 #: build/C/man3/rcmd.3:57
12431 #, no-wrap
12432 msgid ""
12433 "B<int iruserok(uint32_t >I<raddr>B<, int >I<superuser>B<, >\n"
12434 "B<             const char *>I<ruser>B<, const char *>I<luser>B<);>\n"
12435 msgstr ""
12436
12437 #. type: Plain text
12438 #: build/C/man3/rcmd.3:60
12439 #, no-wrap
12440 msgid ""
12441 "B<int ruserok(const char *>I<rhost>B<, int >I<superuser>B<, >\n"
12442 "B<            const char *>I<ruser>B<, const char *>I<luser>B<);>\n"
12443 msgstr ""
12444
12445 #. type: Plain text
12446 #: build/C/man3/rcmd.3:64
12447 #, no-wrap
12448 msgid ""
12449 "B<int rcmd_af(char **>I<ahost>B<, int >I<inport>B<, const char "
12450 "*>I<locuser>B<, >\n"
12451 "B<            const char *>I<remuser>B<, const char *>I<cmd>B<, int "
12452 "*>I<fd2p>B<,>\n"
12453 "B<            sa_family_t >I<af>B<);>\n"
12454 msgstr ""
12455
12456 #. type: Plain text
12457 #: build/C/man3/rcmd.3:66
12458 #, no-wrap
12459 msgid "B<int rresvport_af(int *>I<port>B<, sa_family_t >I<af>B<);>\n"
12460 msgstr ""
12461
12462 #. type: Plain text
12463 #: build/C/man3/rcmd.3:70
12464 #, no-wrap
12465 msgid ""
12466 "B<int iruserok_af(uint32_t >I<raddr>B<, int >I<superuser>B<, >\n"
12467 "B<                const char *>I<ruser>B<, const char *>I<luser>B<, "
12468 "sa_family_t >I<af>B<);>\n"
12469 msgstr ""
12470
12471 #. type: Plain text
12472 #: build/C/man3/rcmd.3:74
12473 #, no-wrap
12474 msgid ""
12475 "B<int ruserok_af(const char *>I<rhost>B<, int >I<superuser>B<, >\n"
12476 "B<               const char *>I<ruser>B<, const char *>I<luser>B<, "
12477 "sa_family_t >I<af>B<);>\n"
12478 msgstr ""
12479
12480 #. type: Plain text
12481 #: build/C/man3/rcmd.3:90
12482 msgid ""
12483 "B<rcmd>(), B<rcmd_af>(), B<rresvport>(), B<rresvport_af>(), B<iruserok>(), "
12484 "B<iruserok_af>(), B<ruserok>(), B<ruserok_af>(): _BSD_SOURCE"
12485 msgstr ""
12486
12487 #. type: Plain text
12488 #: build/C/man3/rcmd.3:111
12489 msgid ""
12490 "The B<rcmd>()  function is used by the superuser to execute a command on a "
12491 "remote machine using an authentication scheme based on privileged port "
12492 "numbers.  The B<rresvport>()  function returns a descriptor to a socket with "
12493 "an address in the privileged port space.  The B<iruserok>()  and "
12494 "B<ruserok>()  functions are used by servers to authenticate clients "
12495 "requesting service with B<rcmd>().  All four functions are used by the "
12496 "B<rshd>(8)  server (among others)."
12497 msgstr ""
12498
12499 #. type: SS
12500 #: build/C/man3/rcmd.3:111
12501 #, no-wrap
12502 msgid "rcmd()"
12503 msgstr ""
12504
12505 #. type: Plain text
12506 #: build/C/man3/rcmd.3:127
12507 msgid ""
12508 "The B<rcmd>()  function looks up the host I<*ahost> using "
12509 "B<gethostbyname>(3), returning -1 if the host does not exist.  Otherwise "
12510 "I<*ahost> is set to the standard name of the host and a connection is "
12511 "established to a server residing at the well-known Internet port I<inport>."
12512 msgstr ""
12513
12514 #. type: Plain text
12515 #: build/C/man3/rcmd.3:156
12516 msgid ""
12517 "If the connection succeeds, a socket in the Internet domain of type "
12518 "B<SOCK_STREAM> is returned to the caller, and given to the remote command as "
12519 "I<stdin> and I<stdout>.  If I<fd2p> is nonzero, then an auxiliary channel to "
12520 "a control process will be set up, and a descriptor for it will be placed in "
12521 "I<*fd2p>.  The control process will return diagnostic output from the "
12522 "command (unit 2) on this channel, and will also accept bytes on this channel "
12523 "as being UNIX signal numbers, to be forwarded to the process group of the "
12524 "command.  If I<fd2p> is 0, then the I<stderr> (unit 2 of the remote command) "
12525 "will be made the same as the I<stdout> and no provision is made for sending "
12526 "arbitrary signals to the remote process, although you may be able to get its "
12527 "attention by using out-of-band data."
12528 msgstr ""
12529
12530 #. type: Plain text
12531 #: build/C/man3/rcmd.3:159
12532 msgid "The protocol is described in detail in B<rshd>(8)."
12533 msgstr ""
12534
12535 #. type: SS
12536 #: build/C/man3/rcmd.3:159
12537 #, no-wrap
12538 msgid "rresvport()"
12539 msgstr ""
12540
12541 #. type: Plain text
12542 #: build/C/man3/rcmd.3:181
12543 msgid ""
12544 "The B<rresvport>()  function is used to obtain a socket with a privileged "
12545 "port bound to it.  This socket is suitable for use by B<rcmd>()  and several "
12546 "other functions.  Privileged ports are those in the range 0 to 1023.  Only a "
12547 "privileged process (B<CAP_NET_BIND_SERVICE>)  is allowed to bind to a "
12548 "privileged port.  In the glibc implementation, this function restricts its "
12549 "search to the ports from 512 to 1023.  The I<port> argument is value-result: "
12550 "the value it supplies to the call is used as the starting point for a "
12551 "circular search of the port range; on (successful) return, it contains the "
12552 "port number that was bound to."
12553 msgstr ""
12554
12555 #. type: SS
12556 #: build/C/man3/rcmd.3:181
12557 #, no-wrap
12558 msgid "iruserok() and ruserok()"
12559 msgstr ""
12560
12561 #. type: Plain text
12562 #: build/C/man3/rcmd.3:199
12563 msgid ""
12564 "The B<iruserok>()  and B<ruserok>()  functions take a remote host's IP "
12565 "address or name, respectively, two usernames and a flag indicating whether "
12566 "the local user's name is that of the superuser.  Then, if the user is I<not> "
12567 "the superuser, it checks the I</etc/hosts.equiv> file.  If that lookup is "
12568 "not done, or is unsuccessful, the I<.rhosts> in the local user's home "
12569 "directory is checked to see if the request for service is allowed."
12570 msgstr ""
12571
12572 #. type: Plain text
12573 #: build/C/man3/rcmd.3:215
12574 msgid ""
12575 "If this file does not exist, is not a regular file, is owned by anyone other "
12576 "than the user or the superuser, or is writable by anyone other than the "
12577 "owner, the check automatically fails.  Zero is returned if the machine name "
12578 "is listed in the I<hosts.equiv> file, or the host and remote username are "
12579 "found in the I<.rhosts> file; otherwise B<iruserok>()  and B<ruserok>()  "
12580 "return -1.  If the local domain (as obtained from B<gethostname>(2))  is the "
12581 "same as the remote domain, only the machine name need be specified."
12582 msgstr ""
12583
12584 #. type: Plain text
12585 #: build/C/man3/rcmd.3:221
12586 msgid ""
12587 "If the IP address of the remote host is known, B<iruserok>()  should be used "
12588 "in preference to B<ruserok>(), as it does not require trusting the DNS "
12589 "server for the remote host's domain."
12590 msgstr ""
12591
12592 #. type: SS
12593 #: build/C/man3/rcmd.3:221
12594 #, no-wrap
12595 msgid "*_af() variants"
12596 msgstr ""
12597
12598 #. type: Plain text
12599 #: build/C/man3/rcmd.3:237
12600 msgid ""
12601 "All of the functions described above work with IPv4 (B<AF_INET>)  sockets.  "
12602 "The \"_af\" variants take an extra argument that allows the socket address "
12603 "family to be specified.  For these functions, the I<af> argument can be "
12604 "specified as B<AF_INET> or B<AF_INET6>.  In addition, B<rcmd_af>()  supports "
12605 "the use of B<AF_UNSPEC>."
12606 msgstr ""
12607
12608 #. type: Plain text
12609 #: build/C/man3/rcmd.3:243
12610 msgid ""
12611 "The B<rcmd>()  function returns a valid socket descriptor on success.  It "
12612 "returns -1 on error and prints a diagnostic message on the standard error."
12613 msgstr ""
12614
12615 #. type: Plain text
12616 #: build/C/man3/rcmd.3:254
12617 msgid ""
12618 "The B<rresvport>()  function returns a valid, bound socket descriptor on "
12619 "success.  It returns -1 on error with the global value I<errno> set "
12620 "according to the reason for failure.  The error code B<EAGAIN> is overloaded "
12621 "to mean \"All network ports in use.\""
12622 msgstr ""
12623
12624 #. type: Plain text
12625 #: build/C/man3/rcmd.3:260
12626 msgid ""
12627 "For information on the return from B<ruserok>()  and B<iruserok>(), see "
12628 "above."
12629 msgstr ""
12630
12631 #. type: Plain text
12632 #: build/C/man3/rcmd.3:268
12633 msgid ""
12634 "The functions B<iruserok_af>(), B<rcmd_af>(), B<rresvport_af>(), and "
12635 "B<ruserok_af>()  functions are provide in glibc since version 2.2."
12636 msgstr ""
12637
12638 #. type: Plain text
12639 #: build/C/man3/rcmd.3:276
12640 msgid ""
12641 "Not in POSIX.1-2001.  Present on the BSDs, Solaris, and many other systems.  "
12642 "These functions appeared in 4.2BSD.  The \"_af\" variants are more recent "
12643 "additions, and are not present on as wide a range of systems."
12644 msgstr ""
12645
12646 #.  Bug filed 25 Nov 2007:
12647 #.  http://sources.redhat.com/bugzilla/show_bug.cgi?id=5399
12648 #. type: Plain text
12649 #: build/C/man3/rcmd.3:283
12650 msgid ""
12651 "B<iruserok>()  and B<iruserok_af>()  are declared in glibc headers only "
12652 "since version 2.12."
12653 msgstr ""
12654
12655 #. type: Plain text
12656 #: build/C/man3/rcmd.3:291
12657 msgid ""
12658 "B<rlogin>(1), B<rsh>(1), B<intro>(2), B<rexec>(3), B<rexecd>(8), "
12659 "B<rlogind>(8), B<rshd>(8)"
12660 msgstr ""
12661
12662 #. type: TH
12663 #: build/C/man5/resolv.conf.5:21
12664 #, no-wrap
12665 msgid "RESOLV.CONF"
12666 msgstr ""
12667
12668 #. type: Plain text
12669 #: build/C/man5/resolv.conf.5:25
12670 msgid "resolv.conf - resolver configuration file"
12671 msgstr ""
12672
12673 #. type: Plain text
12674 #: build/C/man5/resolv.conf.5:27
12675 msgid "B</etc/resolv.conf>"
12676 msgstr ""
12677
12678 #. type: Plain text
12679 #: build/C/man5/resolv.conf.5:36
12680 msgid ""
12681 "The I<resolver> is a set of routines in the C library that provide access to "
12682 "the Internet Domain Name System (DNS).  The resolver configuration file "
12683 "contains information that is read by the resolver routines the first time "
12684 "they are invoked by a process.  The file is designed to be human readable "
12685 "and contains a list of keywords with values that provide various types of "
12686 "resolver information."
12687 msgstr ""
12688
12689 #. type: Plain text
12690 #: build/C/man5/resolv.conf.5:41
12691 msgid ""
12692 "On a normally configured system this file should not be necessary.  The only "
12693 "name server to be queried will be on the local machine; the domain name is "
12694 "determined from the hostname and the domain search path is constructed from "
12695 "the domain name."
12696 msgstr ""
12697
12698 #. type: Plain text
12699 #: build/C/man5/resolv.conf.5:43
12700 msgid "The different configuration options are:"
12701 msgstr ""
12702
12703 #. type: TP
12704 #: build/C/man5/resolv.conf.5:43
12705 #, no-wrap
12706 msgid "B<nameserver> Name server IP address"
12707 msgstr ""
12708
12709 #. type: Plain text
12710 #: build/C/man5/resolv.conf.5:59
12711 msgid ""
12712 "Internet address (in dot notation) of a name server that the resolver should "
12713 "query.  Up to B<MAXNS> (currently 3, see I<E<lt>resolv.hE<gt>>) name servers "
12714 "may be listed, one per keyword.  If there are multiple servers, the resolver "
12715 "library queries them in the order listed.  If no B<nameserver> entries are "
12716 "present, the default is to use the name server on the local machine.  (The "
12717 "algorithm used is to try a name server, and if the query times out, try the "
12718 "next, until out of name servers, then repeat trying all the name servers "
12719 "until a maximum number of retries are made.)"
12720 msgstr ""
12721
12722 #. type: TP
12723 #: build/C/man5/resolv.conf.5:59
12724 #, no-wrap
12725 msgid "B<domain> Local domain name."
12726 msgstr ""
12727
12728 #. type: Plain text
12729 #: build/C/man5/resolv.conf.5:69
12730 msgid ""
12731 "Most queries for names within this domain can use short names relative to "
12732 "the local domain.  If no B<domain> entry is present, the domain is "
12733 "determined from the local hostname returned by B<gethostname>(2); the domain "
12734 "part is taken to be everything after the first \\(aq.\\(aq.  Finally, if the "
12735 "hostname does not contain a domain part, the root domain is assumed."
12736 msgstr ""
12737
12738 #. type: TP
12739 #: build/C/man5/resolv.conf.5:69
12740 #, no-wrap
12741 msgid "B<search> Search list for host-name lookup."
12742 msgstr ""
12743
12744 #.  When having a resolv.conv with a line
12745 #.   search subdomain.domain.tld domain.tld
12746 #.  and doing a hostlookup, for example by
12747 #.   ping host.anothersubdomain
12748 #.  it sends dns-requests for
12749 #.   host.anothersubdomain.
12750 #.   host.anothersubdomain.subdomain.domain.tld.
12751 #.   host.anothersubdomain.domain.tld.
12752 #.  thus not only causing unnecessary traffic for the root-dns-servers
12753 #.  but broadcasting information to the outside and making man-in-the-middle
12754 #.  attacks possible.
12755 #. type: Plain text
12756 #: build/C/man5/resolv.conf.5:99
12757 msgid ""
12758 "The search list is normally determined from the local domain name; by "
12759 "default, it contains only the local domain name.  This may be changed by "
12760 "listing the desired domain search path following the I<search> keyword with "
12761 "spaces or tabs separating the names.  Resolver queries having fewer than "
12762 "I<ndots> dots (default is 1) in them will be attempted using each component "
12763 "of the search path in turn until a match is found.  For environments with "
12764 "multiple subdomains please read B<options ndots:>I<n> below to avoid "
12765 "man-in-the-middle attacks and unnecessary traffic for the root-dns-servers.  "
12766 "Note that this process may be slow and will generate a lot of network "
12767 "traffic if the servers for the listed domains are not local, and that "
12768 "queries will time out if no server is available for one of the domains."
12769 msgstr ""
12770
12771 #. type: Plain text
12772 #: build/C/man5/resolv.conf.5:102
12773 msgid ""
12774 "The search list is currently limited to six domains with a total of 256 "
12775 "characters."
12776 msgstr ""
12777
12778 #. type: TP
12779 #: build/C/man5/resolv.conf.5:102
12780 #, no-wrap
12781 msgid "B<sortlist>"
12782 msgstr ""
12783
12784 #. type: Plain text
12785 #: build/C/man5/resolv.conf.5:115
12786 msgid ""
12787 "This option allows addresses returned by B<gethostbyname>(3)  to be sorted.  "
12788 "A sortlist is specified by IP-address-netmask pairs.  The netmask is "
12789 "optional and defaults to the natural netmask of the net.  The IP address and "
12790 "optional network pairs are separated by slashes.  Up to 10 pairs may be "
12791 "specified.  Here is an example:"
12792 msgstr ""
12793
12794 #. type: Plain text
12795 #: build/C/man5/resolv.conf.5:118
12796 msgid "sortlist 130.155.160.0/255.255.240.0 130.155.0.0"
12797 msgstr ""
12798
12799 #. type: TP
12800 #: build/C/man5/resolv.conf.5:120
12801 #, no-wrap
12802 msgid "B<options>"
12803 msgstr ""
12804
12805 #. type: Plain text
12806 #: build/C/man5/resolv.conf.5:124
12807 msgid ""
12808 "Options allows certain internal resolver variables to be modified.  The "
12809 "syntax is"
12810 msgstr ""
12811
12812 #. type: Plain text
12813 #: build/C/man5/resolv.conf.5:127
12814 msgid "B<options> I<option> I<...>"
12815 msgstr ""
12816
12817 #. type: Plain text
12818 #: build/C/man5/resolv.conf.5:129
12819 msgid "where I<option> is one of the following:"
12820 msgstr ""
12821
12822 #. type: TP
12823 #: build/C/man5/resolv.conf.5:129
12824 #, no-wrap
12825 msgid "B<debug>"
12826 msgstr ""
12827
12828 #.  Since glibc 2.2?
12829 #. type: Plain text
12830 #: build/C/man5/resolv.conf.5:136
12831 msgid "sets B<RES_DEBUG> in I<_res.options>."
12832 msgstr ""
12833
12834 #. type: TP
12835 #: build/C/man5/resolv.conf.5:136
12836 #, no-wrap
12837 msgid "B<ndots:>I<n>"
12838 msgstr ""
12839
12840 #.  Since glibc 2.2
12841 #. type: Plain text
12842 #: build/C/man5/resolv.conf.5:150
12843 msgid ""
12844 "sets a threshold for the number of dots which must appear in a name given to "
12845 "B<res_query>(3)  (see B<resolver>(3))  before an I<initial absolute query> "
12846 "will be made.  The default for I<n> is 1, meaning that if there are any dots "
12847 "in a name, the name will be tried first as an absolute name before any "
12848 "I<search list> elements are appended to it.  The value for this option is "
12849 "silently capped to 15."
12850 msgstr ""
12851
12852 #. type: TP
12853 #: build/C/man5/resolv.conf.5:150
12854 #, no-wrap
12855 msgid "B<timeout:>I<n>"
12856 msgstr ""
12857
12858 #.  Since glibc 2.2
12859 #. type: Plain text
12860 #: build/C/man5/resolv.conf.5:161
12861 msgid ""
12862 "sets the amount of time the resolver will wait for a response from a remote "
12863 "name server before retrying the query via a different name server.  Measured "
12864 "in seconds, the default is B<RES_TIMEOUT> (currently 5, see "
12865 "I<E<lt>resolv.hE<gt>>).  The value for this option is silently capped to 30."
12866 msgstr ""
12867
12868 #. type: TP
12869 #: build/C/man5/resolv.conf.5:161
12870 #, no-wrap
12871 msgid "B<attempts:>I<n>"
12872 msgstr ""
12873
12874 #. type: Plain text
12875 #: build/C/man5/resolv.conf.5:170
12876 msgid ""
12877 "sets the number of times the resolver will send a query to its name servers "
12878 "before giving up and returning an error to the calling application.  The "
12879 "default is B<RES_DFLRETRY> (currently 2, see I<E<lt>resolv.hE<gt>>).  The "
12880 "value for this option is silently capped to 5."
12881 msgstr ""
12882
12883 #. type: TP
12884 #: build/C/man5/resolv.conf.5:170
12885 #, no-wrap
12886 msgid "B<rotate>"
12887 msgstr ""
12888
12889 #.  Since glibc 2.2
12890 #. type: Plain text
12891 #: build/C/man5/resolv.conf.5:180
12892 msgid ""
12893 "sets B<RES_ROTATE> in I<_res.options>, which causes round robin selection of "
12894 "nameservers from among those listed.  This has the effect of spreading the "
12895 "query load among all listed servers, rather than having all clients try the "
12896 "first listed server first every time."
12897 msgstr ""
12898
12899 #. type: TP
12900 #: build/C/man5/resolv.conf.5:180
12901 #, no-wrap
12902 msgid "B<no-check-names>"
12903 msgstr ""
12904
12905 #.  since glibc 2.2
12906 #. type: Plain text
12907 #: build/C/man5/resolv.conf.5:190
12908 msgid ""
12909 "sets B<RES_NOCHECKNAME> in I<_res.options>, which disables the modern BIND "
12910 "checking of incoming hostnames and mail names for invalid characters such as "
12911 "underscore (_), non-ASCII, or control characters."
12912 msgstr ""
12913
12914 #. type: TP
12915 #: build/C/man5/resolv.conf.5:190
12916 #, no-wrap
12917 msgid "B<inet6>"
12918 msgstr ""
12919
12920 #.  Since glibc 2.2
12921 #. type: Plain text
12922 #: build/C/man5/resolv.conf.5:201
12923 msgid ""
12924 "sets B<RES_USE_INET6> in I<_res.options>.  This has the effect of trying a "
12925 "AAAA query before an A query inside the B<gethostbyname>(3)  function, and "
12926 "of mapping IPv4 responses in IPv6 \"tunneled form\" if no AAAA records are "
12927 "found but an A record set exists."
12928 msgstr ""
12929
12930 #. type: TP
12931 #: build/C/man5/resolv.conf.5:201
12932 #, no-wrap
12933 msgid "B<ip6-bytestring> (since glibc 2.3.4)"
12934 msgstr ""
12935
12936 #. type: Plain text
12937 #: build/C/man5/resolv.conf.5:210
12938 msgid ""
12939 "sets B<RES_USE_BSTRING> in I<_res.options>.  This causes reverse IPv6 "
12940 "lookups to be made using the bit-label format described in RFC\\ 2673; if "
12941 "this option is not set, then nibble format is used."
12942 msgstr ""
12943
12944 #. type: TP
12945 #: build/C/man5/resolv.conf.5:210
12946 #, no-wrap
12947 msgid "B<ip6-dotint>/B<no-ip6-dotint> (since glibc 2.3.4)"
12948 msgstr ""
12949
12950 #. type: Plain text
12951 #: build/C/man5/resolv.conf.5:227
12952 msgid ""
12953 "Clear/set B<RES_NOIP6DOTINT> in I<_res.options>.  When this option is clear "
12954 "(B<ip6-dotint>), reverse IPv6 lookups are made in the (deprecated)  "
12955 "I<ip6.int> zone; when this option is set (B<no-ip6-dotint>), reverse IPv6 "
12956 "lookups are made in the I<ip6.arpa> zone by default.  This option is set by "
12957 "default."
12958 msgstr ""
12959
12960 #. type: TP
12961 #: build/C/man5/resolv.conf.5:227
12962 #, no-wrap
12963 msgid "B<edns0> (since glibc 2.6)"
12964 msgstr ""
12965
12966 #. type: Plain text
12967 #: build/C/man5/resolv.conf.5:234
12968 msgid ""
12969 "sets B<RES_USE_EDNSO> in I<_res.options>.  This enables support for the DNS "
12970 "extensions described in RFC\\ 2671."
12971 msgstr ""
12972
12973 #. type: TP
12974 #: build/C/man5/resolv.conf.5:234
12975 #, no-wrap
12976 msgid "B<single-request> (since glibc 2.10)"
12977 msgstr ""
12978
12979 #. type: Plain text
12980 #: build/C/man5/resolv.conf.5:247
12981 msgid ""
12982 "sets B<RES_SNGLKUP> in I<_res.options>.  By default, glibc performs IPv4 and "
12983 "IPv6 lookups in parallel since version 2.9.  Some appliance DNS servers "
12984 "cannot handle these queries properly and make the requests time out.  This "
12985 "option disables the behavior and makes glibc perform the IPv6 and IPv4 "
12986 "requests sequentially (at the cost of some slowdown of the resolving "
12987 "process)."
12988 msgstr ""
12989
12990 #. type: Plain text
12991 #: build/C/man5/resolv.conf.5:252
12992 msgid ""
12993 "The I<domain> and I<search> keywords are mutually exclusive.  If more than "
12994 "one instance of these keywords is present, the last instance wins."
12995 msgstr ""
12996
12997 #. type: Plain text
12998 #: build/C/man5/resolv.conf.5:257
12999 msgid ""
13000 "The I<search> keyword of a system's I<resolv.conf> file can be overridden on "
13001 "a per-process basis by setting the environment variable B<LOCALDOMAIN> to a "
13002 "space-separated list of search domains."
13003 msgstr ""
13004
13005 #. type: Plain text
13006 #: build/C/man5/resolv.conf.5:263
13007 msgid ""
13008 "The I<options> keyword of a system's I<resolv.conf> file can be amended on a "
13009 "per-process basis by setting the environment variable B<RES_OPTIONS> to a "
13010 "space-separated list of resolver options as explained above under "
13011 "B<options>."
13012 msgstr ""
13013
13014 #. type: Plain text
13015 #: build/C/man5/resolv.conf.5:267
13016 msgid ""
13017 "The keyword and value must appear on a single line, and the keyword (e.g., "
13018 "B<nameserver>) must start the line.  The value follows the keyword, "
13019 "separated by white space."
13020 msgstr ""
13021
13022 #. type: Plain text
13023 #: build/C/man5/resolv.conf.5:270
13024 msgid ""
13025 "Lines that contain a semicolon (;) or hash character (#)  in the first "
13026 "column are treated as comments."
13027 msgstr ""
13028
13029 #. type: Plain text
13030 #: build/C/man5/resolv.conf.5:273
13031 msgid "I</etc/resolv.conf>, I<E<lt>resolv.hE<gt>>"
13032 msgstr ""
13033
13034 #. type: Plain text
13035 #: build/C/man5/resolv.conf.5:278
13036 msgid "B<gethostbyname>(3), B<resolver>(3), B<hostname>(7), B<named>(8)"
13037 msgstr ""
13038
13039 #. type: Plain text
13040 #: build/C/man5/resolv.conf.5:280
13041 msgid "Name Server Operations Guide for BIND"
13042 msgstr ""
13043
13044 #. type: TH
13045 #: build/C/man3/resolver.3:30
13046 #, no-wrap
13047 msgid "RESOLVER"
13048 msgstr ""
13049
13050 #. type: Plain text
13051 #: build/C/man3/resolver.3:34
13052 msgid ""
13053 "res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, "
13054 "dn_comp, dn_expand - resolver routines"
13055 msgstr ""
13056
13057 #. type: Plain text
13058 #: build/C/man3/resolver.3:40
13059 #, no-wrap
13060 msgid ""
13061 "B<#include E<lt>netinet/in.hE<gt>>\n"
13062 "B<#include E<lt>arpa/nameser.hE<gt>>\n"
13063 "B<#include E<lt>resolv.hE<gt>>\n"
13064 "B<extern struct state _res;>\n"
13065 msgstr ""
13066
13067 #. type: Plain text
13068 #: build/C/man3/resolver.3:42
13069 #, no-wrap
13070 msgid "B<int res_init(void);>\n"
13071 msgstr ""
13072
13073 #. type: Plain text
13074 #: build/C/man3/resolver.3:44
13075 #, no-wrap
13076 msgid "B<int res_query(const char *>I<dname>B<, int >I<class>B<, int >I<type>B<,>\n"
13077 msgstr ""
13078
13079 #. type: Plain text
13080 #: build/C/man3/resolver.3:46 build/C/man3/resolver.3:51
13081 #, no-wrap
13082 msgid "B<unsigned char *>I<answer>B<, int >I<anslen>B<);>\n"
13083 msgstr ""
13084
13085 #. type: Plain text
13086 #: build/C/man3/resolver.3:49
13087 #, no-wrap
13088 msgid ""
13089 "B<int res_search(const char *>I<dname>B<, int >I<class>B<, int "
13090 ">I<type>B<,>\n"
13091 msgstr ""
13092
13093 #. type: Plain text
13094 #: build/C/man3/resolver.3:54
13095 #, no-wrap
13096 msgid "B<int res_querydomain(const char *>I<name>B<, const char *>I<domain>B<,>\n"
13097 msgstr ""
13098
13099 #. type: Plain text
13100 #: build/C/man3/resolver.3:57
13101 #, no-wrap
13102 msgid ""
13103 "B<int >I<class>B<, int >I<type>B<, unsigned char *>I<answer>B<,>\n"
13104 "B<int >I<anslen>B<);>\n"
13105 msgstr ""
13106
13107 #. type: Plain text
13108 #: build/C/man3/resolver.3:60
13109 #, no-wrap
13110 msgid "B<int res_mkquery(int >I<op>B<, const char *>I<dname>B<, int >I<class>B<,>\n"
13111 msgstr ""
13112
13113 #. type: Plain text
13114 #: build/C/man3/resolver.3:63
13115 #, no-wrap
13116 msgid ""
13117 "B<int >I<type>B<, char *>I<data>B<, int >I<datalen>B<, struct rrec "
13118 "*>I<newrr>B<,>\n"
13119 "B<char *>I<buf>B<, int >I<buflen>B<);>\n"
13120 msgstr ""
13121
13122 #. type: Plain text
13123 #: build/C/man3/resolver.3:66
13124 #, no-wrap
13125 msgid ""
13126 "B<int res_send(const char *>I<msg>B<, int >I<msglen>B<, char "
13127 "*>I<answer>B<,>\n"
13128 msgstr ""
13129
13130 #. type: Plain text
13131 #: build/C/man3/resolver.3:68
13132 #, no-wrap
13133 msgid "B<int >I<anslen>B<);>\n"
13134 msgstr ""
13135
13136 #. type: Plain text
13137 #: build/C/man3/resolver.3:71
13138 #, no-wrap
13139 msgid "B<int dn_comp(unsigned char *>I<exp_dn>B<, unsigned char *>I<comp_dn>B<,>\n"
13140 msgstr ""
13141
13142 #. type: Plain text
13143 #: build/C/man3/resolver.3:73
13144 #, no-wrap
13145 msgid ""
13146 "B<int >I<length>B<, unsigned char **>I<dnptrs>B<, unsigned char "
13147 "**>I<lastdnptr>B<);>\n"
13148 msgstr ""
13149
13150 #. type: Plain text
13151 #: build/C/man3/resolver.3:76
13152 #, no-wrap
13153 msgid "B<int dn_expand(unsigned char *>I<msg>B<, unsigned char *>I<eomorig>B<,>\n"
13154 msgstr ""
13155
13156 #. type: Plain text
13157 #: build/C/man3/resolver.3:79
13158 #, no-wrap
13159 msgid ""
13160 "B<unsigned char *>I<comp_dn>B<, char *>I<exp_dn>B<,>\n"
13161 "B<int >I<length>B<);>\n"
13162 msgstr ""
13163
13164 #. type: Plain text
13165 #: build/C/man3/resolver.3:83
13166 msgid "Link with I<-lresolv>."
13167 msgstr ""
13168
13169 #. type: Plain text
13170 #: build/C/man3/resolver.3:86
13171 msgid ""
13172 "These functions make queries to and interpret the responses from Internet "
13173 "domain name servers."
13174 msgstr ""
13175
13176 #. type: Plain text
13177 #: build/C/man3/resolver.3:99
13178 msgid ""
13179 "The B<res_init>()  function reads the configuration files (see "
13180 "resolv.conf(5)) to get the default domain name, search order and name server "
13181 "address(es).  If no server is given, the local host is tried.  If no domain "
13182 "is given, that associated with the local host is used.  It can be overridden "
13183 "with the environment variable B<LOCALDOMAIN>.  B<res_init>()  is normally "
13184 "executed by the first call to one of the other functions."
13185 msgstr ""
13186
13187 #. type: Plain text
13188 #: build/C/man3/resolver.3:107
13189 msgid ""
13190 "The B<res_query>()  function queries the name server for the fully qualified "
13191 "domain name I<name> of specified I<type> and I<class>.  The reply is left in "
13192 "the buffer I<answer> of length I<anslen> supplied by the caller."
13193 msgstr ""
13194
13195 #. type: Plain text
13196 #: build/C/man3/resolver.3:120
13197 msgid ""
13198 "The B<res_search>()  function makes a query and waits for the response like "
13199 "B<res_query>(), but in addition implements the default and search rules "
13200 "controlled by B<RES_DEFNAMES> and B<RES_DNSRCH> (see description of I<_res> "
13201 "options below)."
13202 msgstr ""
13203
13204 #. type: Plain text
13205 #: build/C/man3/resolver.3:126
13206 msgid ""
13207 "The B<res_querydomain>()  function makes a query using B<res_query>()  on "
13208 "the concatenation of I<name> and I<domain>."
13209 msgstr ""
13210
13211 #. type: Plain text
13212 #: build/C/man3/resolver.3:129
13213 msgid "The following functions are lower-level routines used by B<res_query>()."
13214 msgstr ""
13215
13216 #. type: Plain text
13217 #: build/C/man3/resolver.3:140
13218 msgid ""
13219 "The B<res_mkquery>()  function constructs a query message in I<buf> of "
13220 "length I<buflen> for the domain name I<dname>.  The query type I<op> is "
13221 "usually B<QUERY>, but can be any of the types defined in "
13222 "I<E<lt>arpa/nameser.hE<gt>>.  I<newrr> is currently unused."
13223 msgstr ""
13224
13225 #. type: Plain text
13226 #: build/C/man3/resolver.3:150
13227 msgid ""
13228 "The B<res_send>()  function sends a preformatted query given in I<msg> of "
13229 "length I<msglen> and returns the answer in I<answer> which is of length "
13230 "I<anslen>.  It will call B<res_init>(), if it has not already been called."
13231 msgstr ""
13232
13233 #. type: Plain text
13234 #: build/C/man3/resolver.3:163
13235 msgid ""
13236 "The B<dn_comp>()  function compresses the domain name I<exp_dn> and stores "
13237 "it in the buffer I<comp_dn> of length I<length>.  The compression uses an "
13238 "array of pointers I<dnptrs> to previously compressed names in the current "
13239 "message.  The first pointer points to the beginning of the message and the "
13240 "list ends with NULL.  The limit of the array is specified by I<lastdnptr>.  "
13241 "If I<dnptr> is NULL, domain names are not compressed.  If I<lastdnptr> is "
13242 "NULL, the list of labels is not updated."
13243 msgstr ""
13244
13245 #. type: Plain text
13246 #: build/C/man3/resolver.3:172
13247 msgid ""
13248 "The B<dn_expand>()  function expands the compressed domain name I<comp_dn> "
13249 "to a full domain name, which is placed in the buffer I<exp_dn> of size "
13250 "I<length>.  The compressed name is contained in a query or reply message, "
13251 "and I<msg> points to the beginning of the message."
13252 msgstr ""
13253
13254 #. type: Plain text
13255 #: build/C/man3/resolver.3:180
13256 msgid ""
13257 "The resolver routines use global configuration and state information "
13258 "contained in the structure I<_res>, which is defined in "
13259 "I<E<lt>resolv.hE<gt>>.  The only field that is normally manipulated by the "
13260 "user is I<_res.options>.  This field can contain the bitwise \"OR\" of the "
13261 "following options:"
13262 msgstr ""
13263
13264 #. type: TP
13265 #: build/C/man3/resolver.3:180
13266 #, no-wrap
13267 msgid "B<RES_INIT>"
13268 msgstr ""
13269
13270 #. type: Plain text
13271 #: build/C/man3/resolver.3:185
13272 msgid "True if B<res_init>()  has been called."
13273 msgstr ""
13274
13275 #. type: TP
13276 #: build/C/man3/resolver.3:185
13277 #, no-wrap
13278 msgid "B<RES_DEBUG>"
13279 msgstr ""
13280
13281 #. type: Plain text
13282 #: build/C/man3/resolver.3:188
13283 msgid "Print debugging messages."
13284 msgstr ""
13285
13286 #. type: TP
13287 #: build/C/man3/resolver.3:188
13288 #, no-wrap
13289 msgid "B<RES_AAONLY>"
13290 msgstr ""
13291
13292 #. type: Plain text
13293 #: build/C/man3/resolver.3:195
13294 msgid ""
13295 "Accept authoritative answers only.  B<res_send>()  continues until it finds "
13296 "an authoritative answer or returns an error.  [Not currently implemented]."
13297 msgstr ""
13298
13299 #. type: TP
13300 #: build/C/man3/resolver.3:195
13301 #, no-wrap
13302 msgid "B<RES_USEVC>"
13303 msgstr ""
13304
13305 #. type: Plain text
13306 #: build/C/man3/resolver.3:198
13307 msgid "Use TCP connections for queries rather than UDP datagrams."
13308 msgstr ""
13309
13310 #. type: TP
13311 #: build/C/man3/resolver.3:198
13312 #, no-wrap
13313 msgid "B<RES_PRIMARY>"
13314 msgstr ""
13315
13316 #. type: Plain text
13317 #: build/C/man3/resolver.3:201
13318 msgid "Query primary domain name server only."
13319 msgstr ""
13320
13321 #. type: TP
13322 #: build/C/man3/resolver.3:201
13323 #, no-wrap
13324 msgid "B<RES_IGNTC>"
13325 msgstr ""
13326
13327 #. type: Plain text
13328 #: build/C/man3/resolver.3:206
13329 msgid ""
13330 "Ignore truncation errors.  Don't retry with TCP.  [Not currently "
13331 "implemented]."
13332 msgstr ""
13333
13334 #. type: TP
13335 #: build/C/man3/resolver.3:206
13336 #, no-wrap
13337 msgid "B<RES_RECURSE>"
13338 msgstr ""
13339
13340 #. type: Plain text
13341 #: build/C/man3/resolver.3:213
13342 msgid ""
13343 "Set the recursion desired bit in queries.  Recursion is carried out by the "
13344 "domain name server, not by B<res_send>().  [Enabled by default]."
13345 msgstr ""
13346
13347 #. type: TP
13348 #: build/C/man3/resolver.3:213
13349 #, no-wrap
13350 msgid "B<RES_DEFNAMES>"
13351 msgstr ""
13352
13353 #. type: Plain text
13354 #: build/C/man3/resolver.3:220
13355 msgid ""
13356 "If set, B<res_search>()  will append the default domain name to single "
13357 "component names, i.e., those that do not contain a dot.  [Enabled by "
13358 "default]."
13359 msgstr ""
13360
13361 #. type: TP
13362 #: build/C/man3/resolver.3:220
13363 #, no-wrap
13364 msgid "B<RES_STAYOPEN>"
13365 msgstr ""
13366
13367 #. type: Plain text
13368 #: build/C/man3/resolver.3:225
13369 msgid "Used with B<RES_USEVC> to keep the TCP connection open between queries."
13370 msgstr ""
13371
13372 #. type: TP
13373 #: build/C/man3/resolver.3:225
13374 #, no-wrap
13375 msgid "B<RES_DNSRCH>"
13376 msgstr ""
13377
13378 #. type: Plain text
13379 #: build/C/man3/resolver.3:234
13380 msgid ""
13381 "If set, B<res_search>()  will search for hostnames in the current domain and "
13382 "in parent domains.  This option is used by B<gethostbyname>(3).  [Enabled by "
13383 "default]."
13384 msgstr ""
13385
13386 #. type: Plain text
13387 #: build/C/man3/resolver.3:237
13388 msgid ""
13389 "This list is not complete. You can find some other flags described in "
13390 "B<resolv.conf>(5)."
13391 msgstr ""
13392
13393 #. type: Plain text
13394 #: build/C/man3/resolver.3:242
13395 msgid "The B<res_init>()  function returns 0 on success, or -1 if an error occurs."
13396 msgstr ""
13397
13398 #. type: Plain text
13399 #: build/C/man3/resolver.3:252
13400 msgid ""
13401 "The B<res_query>(), B<res_search>(), B<res_querydomain>(), B<res_mkquery>()  "
13402 "and B<res_send>()  functions return the length of the response, or -1 if an "
13403 "error occurs."
13404 msgstr ""
13405
13406 #. type: Plain text
13407 #: build/C/man3/resolver.3:259
13408 msgid ""
13409 "The B<dn_comp>()  and B<dn_expand>()  functions return the length of the "
13410 "compressed name, or -1 if an error occurs."
13411 msgstr ""
13412
13413 #. type: Plain text
13414 #: build/C/man3/resolver.3:263
13415 #, no-wrap
13416 msgid ""
13417 "/etc/resolv.conf          resolver configuration file\n"
13418 "/etc/host.conf            resolver configuration file\n"
13419 msgstr ""
13420
13421 #. type: Plain text
13422 #: build/C/man3/resolver.3:266
13423 msgid "4.3BSD."
13424 msgstr ""
13425
13426 #. type: Plain text
13427 #: build/C/man3/resolver.3:272
13428 msgid ""
13429 "B<gethostbyname>(3), B<resolv.conf>(5), B<resolver>(5), B<hostname>(7), "
13430 "B<named>(8)"
13431 msgstr ""
13432
13433 #. type: TH
13434 #: build/C/man3/rexec.3:39
13435 #, no-wrap
13436 msgid "REXEC"
13437 msgstr ""
13438
13439 #. type: Plain text
13440 #: build/C/man3/rexec.3:42
13441 msgid "rexec, rfexec_af - return stream to a remote command"
13442 msgstr ""
13443
13444 #. type: Plain text
13445 #: build/C/man3/rexec.3:46
13446 #, no-wrap
13447 msgid ""
13448 "B<#define _BSD_SOURCE>             /* See feature_test_macros(7) */\n"
13449 "B<#include E<lt>netdb.hE<gt>>\n"
13450 msgstr ""
13451
13452 #. type: Plain text
13453 #: build/C/man3/rexec.3:49
13454 #, no-wrap
13455 msgid ""
13456 "B<int rexec(char **>I<ahost>B<, int >I<inport>B<, char *>I<user>B<, >\n"
13457 "B<          char *>I<passwd>B<, char *>I<cmd>B<, int *>I<fd2p>B<);>\n"
13458 msgstr ""
13459
13460 #. type: Plain text
13461 #: build/C/man3/rexec.3:53
13462 #, no-wrap
13463 msgid ""
13464 "B<int rexec_af(char **>I<ahost>B<, int >I<inport>B<, char *>I<user>B<, >\n"
13465 "B<             char *>I<passwd>B<, char *>I<cmd>B<, int *>I<fd2p>B<,>\n"
13466 "B<             sa_family_t >I<af>B<);>\n"
13467 msgstr ""
13468
13469 #. type: Plain text
13470 #: build/C/man3/rexec.3:57
13471 msgid "This interface is obsoleted by B<rcmd>(3)."
13472 msgstr ""
13473
13474 #. type: Plain text
13475 #: build/C/man3/rexec.3:76
13476 msgid ""
13477 "The B<rexec>()  function looks up the host I<*ahost> using "
13478 "B<gethostbyname>(3), returning -1 if the host does not exist.  Otherwise "
13479 "I<*ahost> is set to the standard name of the host.  If a username and "
13480 "password are both specified, then these are used to authenticate to the "
13481 "foreign host; otherwise the environment and then the user's I<.netrc> file "
13482 "in his home directory are searched for appropriate information.  If all this "
13483 "fails, the user is prompted for the information."
13484 msgstr ""
13485
13486 #. type: Plain text
13487 #: build/C/man3/rexec.3:87
13488 msgid ""
13489 "The port I<inport> specifies which well-known DARPA Internet port to use for "
13490 "the connection; the call I<getservbyname(\"exec\", \"tcp\")> (see "
13491 "B<getservent>(3))  will return a pointer to a structure that contains the "
13492 "necessary port.  The protocol for connection is described in detail in "
13493 "B<rexecd>(8)."
13494 msgstr ""
13495
13496 #. type: Plain text
13497 #: build/C/man3/rexec.3:120
13498 msgid ""
13499 "If the connection succeeds, a socket in the Internet domain of type "
13500 "B<SOCK_STREAM> is returned to the caller, and given to the remote command as "
13501 "I<stdin> and I<stdout>.  If I<fd2p> is nonzero, then an auxiliary channel to "
13502 "a control process will be setup, and a descriptor for it will be placed in "
13503 "I<*fd2p>.  The control process will return diagnostic output from the "
13504 "command (unit 2) on this channel, and will also accept bytes on this channel "
13505 "as being UNIX signal numbers, to be forwarded to the process group of the "
13506 "command.  The diagnostic information returned does not include remote "
13507 "authorization failure, as the secondary connection is set up after "
13508 "authorization has been verified.  If I<fd2p> is 0, then the I<stderr> (unit "
13509 "2 of the remote command) will be made the same as the I<stdout> and no "
13510 "provision is made for sending arbitrary signals to the remote process, "
13511 "although you may be able to get its attention by using out-of-band data."
13512 msgstr ""
13513
13514 #. type: SS
13515 #: build/C/man3/rexec.3:120
13516 #, no-wrap
13517 msgid "rexec_af()"
13518 msgstr ""
13519
13520 #. type: Plain text
13521 #: build/C/man3/rexec.3:136
13522 msgid ""
13523 "The B<rexec>()  function works over IPv4 (B<AF_INET>).  By contrast, the "
13524 "B<rexec_af>()  function provides an extra argument, I<af>, that allows the "
13525 "caller to select the protocol.  This argument can be specified as "
13526 "B<AF_INET>, B<AF_INET6>, or B<AF_UNSPEC> (to allow the implementation to "
13527 "select the protocol)."
13528 msgstr ""
13529
13530 #. type: Plain text
13531 #: build/C/man3/rexec.3:140
13532 msgid "The B<rexec_af>()  function was added to glibc in version 2.2."
13533 msgstr ""
13534
13535 #. type: Plain text
13536 #: build/C/man3/rexec.3:149
13537 msgid ""
13538 "These functions are not in POSIX.1-2001.  The B<rexec>()  function first "
13539 "appeared in 4.2BSD, and is present on the BSDs, Solaris, and many other "
13540 "systems.  The B<rexec_af>()  function is more recent, nad less widespread."
13541 msgstr ""
13542
13543 #. type: Plain text
13544 #: build/C/man3/rexec.3:153
13545 msgid "The B<rexec>()  function sends the unencrypted password across the network."
13546 msgstr ""
13547
13548 #. type: Plain text
13549 #: build/C/man3/rexec.3:158
13550 msgid ""
13551 "The underlying service is considered a big security hole and therefore not "
13552 "enabled on many sites; see B<rexecd>(8)  for explanations."
13553 msgstr ""
13554
13555 #. type: Plain text
13556 #: build/C/man3/rexec.3:161
13557 msgid "B<rcmd>(3), B<rexecd>(8)"
13558 msgstr ""
13559
13560 #. type: TH
13561 #: build/C/man5/services.5:34
13562 #, no-wrap
13563 msgid "SERVICES"
13564 msgstr ""
13565
13566 #. type: TH
13567 #: build/C/man5/services.5:34
13568 #, no-wrap
13569 msgid "2010-05-22"
13570 msgstr ""
13571
13572 #. type: Plain text
13573 #: build/C/man5/services.5:37
13574 msgid "services - Internet network services list"
13575 msgstr ""
13576
13577 #. type: Plain text
13578 #: build/C/man5/services.5:52
13579 msgid ""
13580 "B<services> is a plain ASCII file providing a mapping between human-friendly "
13581 "textual names for internet services, and their underlying assigned port "
13582 "numbers and protocol types.  Every networking program should look into this "
13583 "file to get the port number (and protocol) for its service.  The C library "
13584 "routines B<getservent>(3), B<getservbyname>(3), B<getservbyport>(3), "
13585 "B<setservent>(3), and B<endservent>(3)  support querying this file from "
13586 "programs."
13587 msgstr ""
13588
13589 #. type: Plain text
13590 #: build/C/man5/services.5:58
13591 msgid ""
13592 "Port numbers are assigned by the IANA (Internet Assigned Numbers Authority), "
13593 "and their current policy is to assign both TCP and UDP protocols when "
13594 "assigning a port number.  Therefore, most entries will have two entries, "
13595 "even for TCP-only services."
13596 msgstr ""
13597
13598 #. type: Plain text
13599 #: build/C/man5/services.5:70
13600 msgid ""
13601 "Port numbers below 1024 (so-called \"low numbered\" ports) can only be bound "
13602 "to by root (see B<bind>(2), B<tcp>(7), and B<udp>(7)).  This is so clients "
13603 "connecting to low numbered ports can trust that the service running on the "
13604 "port is the standard implementation, and not a rogue service run by a user "
13605 "of the machine.  Well-known port numbers specified by the IANA are normally "
13606 "located in this root-only space."
13607 msgstr ""
13608
13609 #. type: Plain text
13610 #: build/C/man5/services.5:85
13611 msgid ""
13612 "The presence of an entry for a service in the B<services> file does not "
13613 "necessarily mean that the service is currently running on the machine.  See "
13614 "B<inetd.conf>(5)  for the configuration of Internet services offered.  Note "
13615 "that not all networking services are started by B<inetd>(8), and so won't "
13616 "appear in B<inetd.conf>(5).  In particular, news (NNTP) and mail (SMTP) "
13617 "servers are often initialized from the system boot scripts."
13618 msgstr ""
13619
13620 #. type: Plain text
13621 #: build/C/man5/services.5:94
13622 msgid ""
13623 "The location of the B<services> file is defined by B<_PATH_SERVICES> in "
13624 "I<E<lt>netdb.hE<gt>>.  This is usually set to I</etc/services>."
13625 msgstr ""
13626
13627 #. type: Plain text
13628 #: build/C/man5/services.5:96
13629 msgid "Each line describes one service, and is of the form:"
13630 msgstr ""
13631
13632 #. type: Plain text
13633 #: build/C/man5/services.5:98
13634 msgid "I<service-name\\ \\ \\ port>B</>I<protocol\\ \\ \\ >[I<aliases ...>]"
13635 msgstr ""
13636
13637 #. type: TP
13638 #: build/C/man5/services.5:98
13639 #, no-wrap
13640 msgid "where:"
13641 msgstr ""
13642
13643 #. type: TP
13644 #: build/C/man5/services.5:100
13645 #, no-wrap
13646 msgid "I<service-name>"
13647 msgstr ""
13648
13649 #. type: Plain text
13650 #: build/C/man5/services.5:106
13651 msgid ""
13652 "is the friendly name the service is known by and looked up under.  It is "
13653 "case sensitive.  Often, the client program is named after the "
13654 "I<service-name>."
13655 msgstr ""
13656
13657 #. type: TP
13658 #: build/C/man5/services.5:106
13659 #, no-wrap
13660 msgid "I<port>"
13661 msgstr ""
13662
13663 #. type: Plain text
13664 #: build/C/man5/services.5:109
13665 msgid "is the port number (in decimal) to use for this service."
13666 msgstr ""
13667
13668 #. type: Plain text
13669 #: build/C/man5/services.5:120
13670 msgid ""
13671 "is the type of protocol to be used.  This field should match an entry in the "
13672 "B<protocols>(5)  file.  Typical values include B<tcp> and B<udp>."
13673 msgstr ""
13674
13675 #. type: Plain text
13676 #: build/C/man5/services.5:126
13677 msgid ""
13678 "is an optional space or tab separated list of other names for this service.  "
13679 "Again, the names are case sensitive."
13680 msgstr ""
13681
13682 #. type: Plain text
13683 #: build/C/man5/services.5:128
13684 msgid "Either spaces or tabs may be used to separate the fields."
13685 msgstr ""
13686
13687 #. type: Plain text
13688 #: build/C/man5/services.5:132
13689 msgid ""
13690 "Comments are started by the hash sign (#) and continue until the end of the "
13691 "line.  Blank lines are skipped."
13692 msgstr ""
13693
13694 #. type: Plain text
13695 #: build/C/man5/services.5:143
13696 msgid ""
13697 "The I<service-name> should begin in the first column of the file, since "
13698 "leading spaces are not stripped.  I<service-names> can be any printable "
13699 "characters excluding space and tab.  However, a conservative choice of "
13700 "characters should be used to minimize compatibility problems.  E.g., a-z, "
13701 "0-9, and hyphen (-) would seem a sensible choice."
13702 msgstr ""
13703
13704 #. type: Plain text
13705 #: build/C/man5/services.5:152
13706 msgid ""
13707 "Lines not matching this format should not be present in the file.  "
13708 "(Currently, they are silently skipped by B<getservent>(3), "
13709 "B<getservbyname>(3), and B<getservbyport>(3).  However, this behavior should "
13710 "not be relied on.)"
13711 msgstr ""
13712
13713 #. type: Plain text
13714 #: build/C/man5/services.5:169
13715 msgid "A sample B<services> file might look like this:"
13716 msgstr ""
13717
13718 #. type: ta
13719 #: build/C/man5/services.5:172
13720 #, no-wrap
13721 msgid "3i"
13722 msgstr ""
13723
13724 #. type: Plain text
13725 #: build/C/man5/services.5:182
13726 #, no-wrap
13727 msgid ""
13728 "netstat         15/tcp\n"
13729 "qotd            17/tcp          quote\n"
13730 "msp             18/tcp          # message send protocol\n"
13731 "msp             18/udp          # message send protocol\n"
13732 "chargen         19/tcp          ttytst source\n"
13733 "chargen         19/udp          ttytst source\n"
13734 "ftp             21/tcp\n"
13735 "# 22 - unassigned\n"
13736 "telnet          23/tcp\n"
13737 msgstr ""
13738
13739 #. type: Plain text
13740 #: build/C/man5/services.5:188
13741 msgid "The Internet network services list"
13742 msgstr ""
13743
13744 #. type: TP
13745 #: build/C/man5/services.5:188
13746 #, no-wrap
13747 msgid "I<E<lt>netdb.hE<gt>>"
13748 msgstr ""
13749
13750 #.  .SH BUGS
13751 #.  It's not clear when/if the following was ever true;
13752 #.  it isn't true for glibc 2.8:
13753 #.     There is a maximum of 35 aliases, due to the way the
13754 #.     .BR getservent (3)
13755 #.     code is written.
13756 #
13757 #.  It's not clear when/if the following was ever true;
13758 #.  it isn't true for glibc 2.8:
13759 #.     Lines longer than
13760 #.     .B BUFSIZ
13761 #.     (currently 1024) characters will be ignored by
13762 #.     .BR getservent (3),
13763 #.     .BR getservbyname (3),
13764 #.     and
13765 #.     .BR getservbyport (3).
13766 #.     However, this will also cause the next line to be mis-parsed.
13767 #. type: Plain text
13768 #: build/C/man5/services.5:209
13769 msgid "Definition of B<_PATH_SERVICES>"
13770 msgstr ""
13771
13772 #. type: Plain text
13773 #: build/C/man5/services.5:219
13774 msgid ""
13775 "B<listen>(2), B<endservent>(3), B<getservbyname>(3), B<getservbyport>(3), "
13776 "B<getservent>(3), B<setservent>(3), B<inetd.conf>(5), B<protocols>(5), "
13777 "B<inetd>(8)"
13778 msgstr ""
13779
13780 #. type: Plain text
13781 #: build/C/man5/services.5:221
13782 msgid "Assigned Numbers RFC, most recently RFC\\ 1700, (AKA STD0002)"
13783 msgstr ""
13784
13785 #. type: TH
13786 #: build/C/man3/setnetgrent.3:5
13787 #, no-wrap
13788 msgid "SETNETGRENT"
13789 msgstr ""
13790
13791 #. type: TH
13792 #: build/C/man3/setnetgrent.3:5
13793 #, no-wrap
13794 msgid "2007-07-26"
13795 msgstr ""
13796
13797 #. type: Plain text
13798 #: build/C/man3/setnetgrent.3:9
13799 msgid ""
13800 "setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr - handle "
13801 "network group entries"
13802 msgstr ""
13803
13804 #. type: Plain text
13805 #: build/C/man3/setnetgrent.3:14
13806 #, no-wrap
13807 msgid "B<int setnetgrent(const char *>I<netgroup>B<);>\n"
13808 msgstr ""
13809
13810 #. type: Plain text
13811 #: build/C/man3/setnetgrent.3:16
13812 #, no-wrap
13813 msgid "B<void endnetgrent(void);>\n"
13814 msgstr ""
13815
13816 #. type: Plain text
13817 #: build/C/man3/setnetgrent.3:18
13818 #, no-wrap
13819 msgid ""
13820 "B<int getnetgrent(char **>I<host>B<, char **>I<user>B<, char "
13821 "**>I<domain>B<);>\n"
13822 msgstr ""
13823
13824 #. type: Plain text
13825 #: build/C/man3/setnetgrent.3:21
13826 #, no-wrap
13827 msgid ""
13828 "B<int getnetgrent_r(char **>I<host>B<, char **>I<user>B<,>\n"
13829 "B<                  char **>I<domain>B<, char *>I<buf>B<, int "
13830 ">I<buflen>B<);>\n"
13831 msgstr ""
13832
13833 #. type: Plain text
13834 #: build/C/man3/setnetgrent.3:24
13835 #, no-wrap
13836 msgid ""
13837 "B<int innetgr(const char *>I<netgroup>B<, const char *>I<host>B<,>\n"
13838 "B<            const char *>I<user>B<, const char *>I<domain>B<);>\n"
13839 msgstr ""
13840
13841 #. type: Plain text
13842 #: build/C/man3/setnetgrent.3:38
13843 msgid ""
13844 "B<setnetgrent>(), B<endnetgrent>(), B<getnetgrent>(), B<getnetgrent_r>(), "
13845 "B<innetgr>(): _BSD_SOURCE || _SVID_SOURCE"
13846 msgstr ""
13847
13848 #. type: Plain text
13849 #: build/C/man3/setnetgrent.3:52
13850 msgid ""
13851 "The I<netgroup> is a SunOS invention.  A netgroup database is a list of "
13852 "string triples (I<hostname>, I<username>, I<domainname>)  or other netgroup "
13853 "names.  Any of the elements in a triple can be empty, which means that "
13854 "anything matches.  The functions described here allow access to the netgroup "
13855 "databases.  The file I</etc/nsswitch.conf> defines what database is "
13856 "searched."
13857 msgstr ""
13858
13859 #. type: Plain text
13860 #: build/C/man3/setnetgrent.3:72
13861 msgid ""
13862 "The B<setnetgrent>()  call defines the netgroup that will be searched by "
13863 "subsequent B<getnetgrent>()  calls.  The B<getnetgrent>()  function "
13864 "retrieves the next netgroup entry, and returns pointers in I<host>, I<user>, "
13865 "I<domain>.  A NULL pointer means that the corresponding entry matches any "
13866 "string.  The pointers are valid only as long as there is no call to other "
13867 "netgroup-related functions.  To avoid this problem you can use the GNU "
13868 "function B<getnetgrent_r>()  that stores the strings in the supplied "
13869 "buffer.  To free all allocated buffers use B<endnetgrent>()."
13870 msgstr ""
13871
13872 #. type: Plain text
13873 #: build/C/man3/setnetgrent.3:81
13874 msgid ""
13875 "In most cases you only want to check if the triplet (I<hostname>, "
13876 "I<username>, I<domainname>)  is a member of a netgroup.  The function "
13877 "B<innetgr>()  can be used for this without calling the above three "
13878 "functions.  Again, a NULL pointer is a wildcard and matches any string.  The "
13879 "function is thread-safe."
13880 msgstr ""
13881
13882 #. type: Plain text
13883 #: build/C/man3/setnetgrent.3:83
13884 msgid "These functions return 1 on success and 0 for failure."
13885 msgstr ""
13886
13887 #. type: Plain text
13888 #: build/C/man3/setnetgrent.3:85
13889 msgid "I</etc/netgroup>"
13890 msgstr ""
13891
13892 #.  getnetgrent_r() is on Solaris 8 and AIX 5.1, but not the BSDs.
13893 #. type: Plain text
13894 #: build/C/man3/setnetgrent.3:98
13895 msgid ""
13896 "These functions are not in POSIX.1-2001, but B<setnetgrent>(), "
13897 "B<endnetgrent>(), B<getnetgrent>(), and B<innetgr>()  are available on most "
13898 "UNIX systems.  B<getnetgrent_r>()  is not widely available on other systems."
13899 msgstr ""
13900
13901 #. type: Plain text
13902 #: build/C/man3/setnetgrent.3:102
13903 msgid "In the BSD implementation, B<setnetgrent>()  returns void."
13904 msgstr ""
13905
13906 #. type: Plain text
13907 #: build/C/man3/setnetgrent.3:106
13908 msgid "B<sethostent>(3), B<setprotoent>(3), B<setservent>(3)"
13909 msgstr ""
13910
13911 #. type: TH
13912 #: build/C/man2/shutdown.2:38
13913 #, no-wrap
13914 msgid "SHUTDOWN"
13915 msgstr ""
13916
13917 #. type: Plain text
13918 #: build/C/man2/shutdown.2:41
13919 msgid "shutdown - shut down part of a full-duplex connection"
13920 msgstr ""
13921
13922 #. type: Plain text
13923 #: build/C/man2/shutdown.2:45
13924 msgid "B<int shutdown(int >I<sockfd>B<, int >I<how>B<);>"
13925 msgstr ""
13926
13927 #. type: Plain text
13928 #: build/C/man2/shutdown.2:67
13929 msgid ""
13930 "The B<shutdown>()  call causes all or part of a full-duplex connection on "
13931 "the socket associated with I<sockfd> to be shut down.  If I<how> is "
13932 "B<SHUT_RD>, further receptions will be disallowed.  If I<how> is B<SHUT_WR>, "
13933 "further transmissions will be disallowed.  If I<how> is B<SHUT_RDWR>, "
13934 "further receptions and transmissions will be disallowed."
13935 msgstr ""
13936
13937 #. type: Plain text
13938 #: build/C/man2/shutdown.2:77
13939 msgid "I<sockfd> is not a valid descriptor."
13940 msgstr ""
13941
13942 #. type: Plain text
13943 #: build/C/man2/shutdown.2:80
13944 msgid "The specified socket is not connected."
13945 msgstr ""
13946
13947 #. type: Plain text
13948 #: build/C/man2/shutdown.2:84
13949 msgid "I<sockfd> is a file, not a socket."
13950 msgstr ""
13951
13952 #. type: Plain text
13953 #: build/C/man2/shutdown.2:88
13954 msgid ""
13955 "POSIX.1-2001, 4.4BSD (the B<shutdown>()  function call first appeared in "
13956 "4.2BSD)."
13957 msgstr ""
13958
13959 #. type: Plain text
13960 #: build/C/man2/shutdown.2:97
13961 msgid ""
13962 "The constants B<SHUT_RD>, B<SHUT_WR>, B<SHUT_RDWR> have the value 0, 1, 2, "
13963 "respectively, and are defined in I<E<lt>sys/socket.hE<gt>> since "
13964 "glibc-2.1.91."
13965 msgstr ""
13966
13967 #. type: Plain text
13968 #: build/C/man2/shutdown.2:101
13969 msgid "B<connect>(2), B<socket>(2), B<socket>(7)"
13970 msgstr ""
13971
13972 #. type: TH
13973 #: build/C/man7/tcp.7:16
13974 #, no-wrap
13975 msgid "TCP"
13976 msgstr ""
13977
13978 #. type: Plain text
13979 #: build/C/man7/tcp.7:19
13980 msgid "tcp - TCP protocol"
13981 msgstr ""
13982
13983 #. type: Plain text
13984 #: build/C/man7/tcp.7:25
13985 msgid "B<#include E<lt>netinet/tcp.hE<gt>>"
13986 msgstr ""
13987
13988 #. type: Plain text
13989 #: build/C/man7/tcp.7:27
13990 msgid "B<tcp_socket = socket(AF_INET, SOCK_STREAM, 0);>"
13991 msgstr ""
13992
13993 #. type: Plain text
13994 #: build/C/man7/tcp.7:40
13995 msgid ""
13996 "This is an implementation of the TCP protocol defined in RFC\\ 793, RFC\\ "
13997 "1122 and RFC\\ 2001 with the NewReno and SACK extensions.  It provides a "
13998 "reliable, stream-oriented, full-duplex connection between two sockets on top "
13999 "of B<ip>(7), for both v4 and v6 versions.  TCP guarantees that the data "
14000 "arrives in order and retransmits lost packets.  It generates and checks a "
14001 "per-packet checksum to catch transmission errors.  TCP does not preserve "
14002 "record boundaries."
14003 msgstr ""
14004
14005 #. type: Plain text
14006 #: build/C/man7/tcp.7:59
14007 msgid ""
14008 "A newly created TCP socket has no remote or local address and is not fully "
14009 "specified.  To create an outgoing TCP connection use B<connect>(2)  to "
14010 "establish a connection to another TCP socket.  To receive new incoming "
14011 "connections, first B<bind>(2)  the socket to a local address and port and "
14012 "then call B<listen>(2)  to put the socket into the listening state.  After "
14013 "that a new socket for each incoming connection can be accepted using "
14014 "B<accept>(2).  A socket which has had B<accept>(2)  or B<connect>(2)  "
14015 "successfully called on it is fully specified and may transmit data.  Data "
14016 "cannot be transmitted on listening or not yet connected sockets."
14017 msgstr ""
14018
14019 #. type: Plain text
14020 #: build/C/man7/tcp.7:79
14021 msgid ""
14022 "Linux supports RFC\\ 1323 TCP high performance extensions.  These include "
14023 "Protection Against Wrapped Sequence Numbers (PAWS), Window Scaling and "
14024 "Timestamps.  Window scaling allows the use of large (E<gt> 64K) TCP windows "
14025 "in order to support links with high latency or bandwidth.  To make use of "
14026 "them, the send and receive buffer sizes must be increased.  They can be set "
14027 "globally with the I</proc/sys/net/ipv4/tcp_wmem> and "
14028 "I</proc/sys/net/ipv4/tcp_rmem> files, or on individual sockets by using the "
14029 "B<SO_SNDBUF> and B<SO_RCVBUF> socket options with the B<setsockopt>(2)  "
14030 "call."
14031 msgstr ""
14032
14033 #. type: Plain text
14034 #: build/C/man7/tcp.7:110
14035 msgid ""
14036 "The maximum sizes for socket buffers declared via the B<SO_SNDBUF> and "
14037 "B<SO_RCVBUF> mechanisms are limited by the values in the "
14038 "I</proc/sys/net/core/rmem_max> and I</proc/sys/net/core/wmem_max> files.  "
14039 "Note that TCP actually allocates twice the size of the buffer requested in "
14040 "the B<setsockopt>(2)  call, and so a succeeding B<getsockopt>(2)  call will "
14041 "not return the same size of buffer as requested in the B<setsockopt>(2)  "
14042 "call.  TCP uses the extra space for administrative purposes and internal "
14043 "kernel structures, and the I</proc> file values reflect the larger sizes "
14044 "compared to the actual TCP windows.  On individual connections, the socket "
14045 "buffer size must be set prior to the B<listen>(2)  or B<connect>(2)  calls "
14046 "in order to have it take effect.  See B<socket>(7)  for more information."
14047 msgstr ""
14048
14049 #. type: Plain text
14050 #: build/C/man7/tcp.7:142
14051 msgid ""
14052 "TCP supports urgent data.  Urgent data is used to signal the receiver that "
14053 "some important message is part of the data stream and that it should be "
14054 "processed as soon as possible.  To send urgent data specify the B<MSG_OOB> "
14055 "option to B<send>(2).  When urgent data is received, the kernel sends a "
14056 "B<SIGURG> signal to the process or process group that has been set as the "
14057 "socket \"owner\" using the B<SIOCSPGRP> or B<FIOSETOWN> ioctls (or the "
14058 "POSIX.1-2001-specified B<fcntl>(2)  B<F_SETOWN> operation).  When the "
14059 "B<SO_OOBINLINE> socket option is enabled, urgent data is put into the normal "
14060 "data stream (a program can test for its location using the B<SIOCATMARK> "
14061 "ioctl described below), otherwise it can be only received when the "
14062 "B<MSG_OOB> flag is set for B<recv>(2)  or B<recvmsg>(2)."
14063 msgstr ""
14064
14065 #. type: Plain text
14066 #: build/C/man7/tcp.7:150
14067 msgid ""
14068 "Linux 2.4 introduced a number of changes for improved throughput and "
14069 "scaling, as well as enhanced functionality.  Some of these features include "
14070 "support for zero-copy B<sendfile>(2), Explicit Congestion Notification, new "
14071 "management of TIME_WAIT sockets, keep-alive socket options and support for "
14072 "Duplicate SACK extensions."
14073 msgstr ""
14074
14075 #. type: SS
14076 #: build/C/man7/tcp.7:150
14077 #, no-wrap
14078 msgid "Address Formats"
14079 msgstr ""
14080
14081 #. type: Plain text
14082 #: build/C/man7/tcp.7:159
14083 msgid ""
14084 "TCP is built on top of IP (see B<ip>(7)).  The address formats defined by "
14085 "B<ip>(7)  apply to TCP.  TCP only supports point-to-point communication; "
14086 "broadcasting and multicasting are not supported."
14087 msgstr ""
14088
14089 #. type: Plain text
14090 #: build/C/man7/tcp.7:171
14091 msgid ""
14092 "System-wide TCP parameter settings can be accessed by files in the directory "
14093 "I</proc/sys/net/ipv4/>.  In addition, most IP I</proc> interfaces also apply "
14094 "to TCP; see B<ip>(7).  Variables described as I<Boolean> take an integer "
14095 "value, with a nonzero value (\"true\") meaning that the corresponding option "
14096 "is enabled, and a zero value (\"false\")  meaning that the option is "
14097 "disabled."
14098 msgstr ""
14099
14100 #. type: TP
14101 #: build/C/man7/tcp.7:171
14102 #, no-wrap
14103 msgid "I<tcp_abc> (Integer; default: 0; since Linux 2.6.15)"
14104 msgstr ""
14105
14106 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14107 #. type: Plain text
14108 #: build/C/man7/tcp.7:179
14109 msgid ""
14110 "Control the Appropriate Byte Count (ABC), defined in RFC 3465.  ABC is a way "
14111 "of increasing the congestion window (I<cwnd>)  more slowly in response to "
14112 "partial acknowledgments.  Possible values are:"
14113 msgstr ""
14114
14115 #. type: IP
14116 #: build/C/man7/tcp.7:180 build/C/man7/tcp.7:349 build/C/man7/tcp.7:370 build/C/man7/tcp.7:514
14117 #, no-wrap
14118 msgid "0"
14119 msgstr ""
14120
14121 #. type: Plain text
14122 #: build/C/man7/tcp.7:184
14123 msgid "increase I<cwnd> once per acknowledgment (no ABC)"
14124 msgstr ""
14125
14126 #. type: IP
14127 #: build/C/man7/tcp.7:184 build/C/man7/tcp.7:351 build/C/man7/tcp.7:377 build/C/man7/tcp.7:516
14128 #, no-wrap
14129 msgid "1"
14130 msgstr ""
14131
14132 #. type: Plain text
14133 #: build/C/man7/tcp.7:188
14134 msgid "increase I<cwnd> once per acknowledgment of full sized segment"
14135 msgstr ""
14136
14137 #. type: IP
14138 #: build/C/man7/tcp.7:188 build/C/man7/tcp.7:353 build/C/man7/tcp.7:384 build/C/man7/tcp.7:518
14139 #, no-wrap
14140 msgid "2"
14141 msgstr ""
14142
14143 #. type: Plain text
14144 #: build/C/man7/tcp.7:193
14145 msgid ""
14146 "allow increase I<cwnd> by two if acknowledgment is of two segments to "
14147 "compensate for delayed acknowledgments."
14148 msgstr ""
14149
14150 #. type: TP
14151 #: build/C/man7/tcp.7:194
14152 #, no-wrap
14153 msgid "I<tcp_abort_on_overflow> (Boolean; default: disabled; since Linux 2.4)"
14154 msgstr ""
14155
14156 #.  Since 2.3.41
14157 #. type: Plain text
14158 #: build/C/man7/tcp.7:206
14159 msgid ""
14160 "Enable resetting connections if the listening service is too slow and unable "
14161 "to keep up and accept them.  It means that if overflow occurred due to a "
14162 "burst, the connection will recover.  Enable this option I<only> if you are "
14163 "really sure that the listening daemon cannot be tuned to accept connections "
14164 "faster.  Enabling this option can harm the clients of your server."
14165 msgstr ""
14166
14167 #. type: TP
14168 #: build/C/man7/tcp.7:206
14169 #, no-wrap
14170 msgid "I<tcp_adv_win_scale> (integer; default: 2; since Linux 2.4)"
14171 msgstr ""
14172
14173 #.  Since 2.4.0-test7
14174 #. type: Plain text
14175 #: build/C/man7/tcp.7:218
14176 msgid ""
14177 "Count buffering overhead as I<bytes/2^tcp_adv_win_scale>, if "
14178 "I<tcp_adv_win_scale> is greater than 0; or "
14179 "I<bytes-bytes/2^(-tcp_adv_win_scale)>, if I<tcp_adv_win_scale> is less than "
14180 "or equal to zero."
14181 msgstr ""
14182
14183 #. type: Plain text
14184 #: build/C/man7/tcp.7:231
14185 msgid ""
14186 "The socket receive buffer space is shared between the application and "
14187 "kernel.  TCP maintains part of the buffer as the TCP window, this is the "
14188 "size of the receive window advertised to the other end.  The rest of the "
14189 "space is used as the \"application\" buffer, used to isolate the network "
14190 "from scheduling and application latencies.  The I<tcp_adv_win_scale> default "
14191 "value of 2 implies that the space used for the application buffer is one "
14192 "fourth that of the total."
14193 msgstr ""
14194
14195 #. type: TP
14196 #: build/C/man7/tcp.7:231
14197 #, no-wrap
14198 msgid ""
14199 "I<tcp_allowed_congestion_control> (String; default: see text; since Linux "
14200 "2.4.20)"
14201 msgstr ""
14202
14203 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14204 #.  FIXME How are the items in this delimited? Null bytes, spaces, commas?
14205 #. type: Plain text
14206 #: build/C/man7/tcp.7:243
14207 msgid ""
14208 "Show/set the congestion control algorithm choices available to unprivileged "
14209 "processes (see the description of the B<TCP_CONGESTION> socket option).  The "
14210 "list is a subset of those listed in I<tcp_available_congestion_control>.  "
14211 "The default value for this list is \"reno\" plus the default setting of "
14212 "I<tcp_congestion_control>."
14213 msgstr ""
14214
14215 #. type: TP
14216 #: build/C/man7/tcp.7:243
14217 #, no-wrap
14218 msgid "I<tcp_available_congestion_control> (String; read-only; since Linux 2.4.20)"
14219 msgstr ""
14220
14221 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14222 #.  FIXME How are the items in this delimited? Null bytes, spaces, commas?
14223 #. type: Plain text
14224 #: build/C/man7/tcp.7:253
14225 msgid ""
14226 "Show a list of the congestion-control algorithms that are registered.  This "
14227 "list is a limiting set for the list in I<tcp_allowed_congestion_control>.  "
14228 "More congestion-control algorithms may be available as modules, but not "
14229 "loaded."
14230 msgstr ""
14231
14232 #. type: TP
14233 #: build/C/man7/tcp.7:253
14234 #, no-wrap
14235 msgid "I<tcp_app_win> (integer; default: 31; since Linux 2.4)"
14236 msgstr ""
14237
14238 #.  Since 2.4.0-test7
14239 #. type: Plain text
14240 #: build/C/man7/tcp.7:258
14241 msgid ""
14242 "This variable defines how many bytes of the TCP window are reserved for "
14243 "buffering overhead."
14244 msgstr ""
14245
14246 #
14247 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14248 #. type: Plain text
14249 #: build/C/man7/tcp.7:264
14250 msgid ""
14251 "A maximum of (I<window/2^tcp_app_win>, mss) bytes in the window are reserved "
14252 "for the application buffer.  A value of 0 implies that no amount is "
14253 "reserved."
14254 msgstr ""
14255
14256 #. type: TP
14257 #: build/C/man7/tcp.7:264
14258 #, no-wrap
14259 msgid "I<tcp_base_mss> (Integer; default: 512; since Linux 2.6.17)"
14260 msgstr ""
14261
14262 #
14263 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14264 #. type: Plain text
14265 #: build/C/man7/tcp.7:273
14266 msgid ""
14267 "The initial value of I<search_low> to be used by the packetization layer "
14268 "Path MTU discovery (MTU probing).  If MTU probing is enabled, this is the "
14269 "initial MSS used by the connection."
14270 msgstr ""
14271
14272 #. type: TP
14273 #: build/C/man7/tcp.7:273
14274 #, no-wrap
14275 msgid "I<tcp_bic> (Boolean; default: disabled; Linux 2.4.27/2.6.6 to 2.6.13)"
14276 msgstr ""
14277
14278 #
14279 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14280 #. type: Plain text
14281 #: build/C/man7/tcp.7:287
14282 msgid ""
14283 "Enable BIC TCP congestion control algorithm.  BIC-TCP is a sender-side only "
14284 "change that ensures a linear RTT fairness under large windows while offering "
14285 "both scalability and bounded TCP-friendliness.  The protocol combines two "
14286 "schemes called additive increase and binary search increase.  When the "
14287 "congestion window is large, additive increase with a large increment ensures "
14288 "linear RTT fairness as well as good scalability.  Under small congestion "
14289 "windows, binary search increase provides TCP friendliness."
14290 msgstr ""
14291
14292 #. type: TP
14293 #: build/C/man7/tcp.7:287
14294 #, no-wrap
14295 msgid "I<tcp_bic_low_window> (integer; default: 14; Linux 2.4.27/2.6.6 to 2.6.13)"
14296 msgstr ""
14297
14298 #
14299 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14300 #. type: Plain text
14301 #: build/C/man7/tcp.7:294
14302 msgid ""
14303 "Set the threshold window (in packets) where BIC TCP starts to adjust the "
14304 "congestion window.  Below this threshold BIC TCP behaves the same as the "
14305 "default TCP Reno."
14306 msgstr ""
14307
14308 #. type: TP
14309 #: build/C/man7/tcp.7:294
14310 #, no-wrap
14311 msgid ""
14312 "I<tcp_bic_fast_convergence> (Boolean; default: enabled; Linux 2.4.27/2.6.6 "
14313 "to 2.6.13)"
14314 msgstr ""
14315
14316 #. type: Plain text
14317 #: build/C/man7/tcp.7:298
14318 msgid ""
14319 "Force BIC TCP to more quickly respond to changes in congestion window.  "
14320 "Allows two flows sharing the same connection to converge more rapidly."
14321 msgstr ""
14322
14323 #. type: TP
14324 #: build/C/man7/tcp.7:298
14325 #, no-wrap
14326 msgid "I<tcp_congestion_control> (String; default: see text; since Linux 2.4.13)"
14327 msgstr ""
14328
14329 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14330 #. type: Plain text
14331 #: build/C/man7/tcp.7:305
14332 msgid ""
14333 "Set the default congestion-control algorithm to be used for new "
14334 "connections.  The algorithm \"reno\" is always available, but additional "
14335 "choices may be available depending on kernel configuration.  The default "
14336 "value for this file is set as part of kernel configuration."
14337 msgstr ""
14338
14339 #. type: TP
14340 #: build/C/man7/tcp.7:305
14341 #, no-wrap
14342 msgid "I<tcp_dma_copybreak> (integer; default: 4096; since Linux 2.6.24)"
14343 msgstr ""
14344
14345 #. type: Plain text
14346 #: build/C/man7/tcp.7:312
14347 msgid ""
14348 "Lower limit, in bytes, of the size of socket reads that will be offloaded to "
14349 "a DMA copy engine, if one is present in the system and the kernel was "
14350 "configured with the B<CONFIG_NET_DMA> option."
14351 msgstr ""
14352
14353 #. type: TP
14354 #: build/C/man7/tcp.7:312
14355 #, no-wrap
14356 msgid "I<tcp_dsack> (Boolean; default: enabled; since Linux 2.4)"
14357 msgstr ""
14358
14359 #.  Since 2.4.0-test7
14360 #. type: Plain text
14361 #: build/C/man7/tcp.7:316
14362 msgid "Enable RFC\\ 2883 TCP Duplicate SACK support."
14363 msgstr ""
14364
14365 #. type: TP
14366 #: build/C/man7/tcp.7:316
14367 #, no-wrap
14368 msgid "I<tcp_ecn> (Boolean; default: disabled; since Linux 2.4)"
14369 msgstr ""
14370
14371 #.  Since 2.4.0-test7
14372 #. type: Plain text
14373 #: build/C/man7/tcp.7:323
14374 msgid ""
14375 "Enable RFC\\ 2884 Explicit Congestion Notification.  When enabled, "
14376 "connectivity to some destinations could be affected due to older, "
14377 "misbehaving routers along the path causing connections to be dropped."
14378 msgstr ""
14379
14380 #. type: TP
14381 #: build/C/man7/tcp.7:323
14382 #, no-wrap
14383 msgid "I<tcp_fack> (Boolean; default: enabled; since Linux 2.2)"
14384 msgstr ""
14385
14386 #.  Since 2.1.92
14387 #. type: Plain text
14388 #: build/C/man7/tcp.7:327
14389 msgid "Enable TCP Forward Acknowledgement support."
14390 msgstr ""
14391
14392 #. type: TP
14393 #: build/C/man7/tcp.7:327
14394 #, no-wrap
14395 msgid "I<tcp_fin_timeout> (integer; default: 60; since Linux 2.2)"
14396 msgstr ""
14397
14398 #.  Since 2.1.53
14399 #
14400 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14401 #. type: Plain text
14402 #: build/C/man7/tcp.7:337
14403 msgid ""
14404 "This specifies how many seconds to wait for a final FIN packet before the "
14405 "socket is forcibly closed.  This is strictly a violation of the TCP "
14406 "specification, but required to prevent denial-of-service attacks.  In Linux "
14407 "2.2, the default value was 180."
14408 msgstr ""
14409
14410 #. type: TP
14411 #: build/C/man7/tcp.7:337
14412 #, no-wrap
14413 msgid "I<tcp_frto> (integer; default: 0; since Linux 2.4.21/2.6)"
14414 msgstr ""
14415
14416 #.  Since 2.4.21/2.5.43
14417 #. type: Plain text
14418 #: build/C/man7/tcp.7:346
14419 msgid ""
14420 "Enable F-RTO, an enhanced recovery algorithm for TCP retransmission timeouts "
14421 "(RTOs).  It is particularly beneficial in wireless environments where packet "
14422 "loss is typically due to random radio interference rather than intermediate "
14423 "router congestion.  See RFC 4138 for more details."
14424 msgstr ""
14425
14426 #. type: Plain text
14427 #: build/C/man7/tcp.7:348
14428 msgid "This file can have one of the following values:"
14429 msgstr ""
14430
14431 #. type: Plain text
14432 #: build/C/man7/tcp.7:351
14433 msgid "Disabled."
14434 msgstr ""
14435
14436 #. type: Plain text
14437 #: build/C/man7/tcp.7:353
14438 msgid "The basic version F-RTO algorithm is enabled."
14439 msgstr ""
14440
14441 #. type: Plain text
14442 #: build/C/man7/tcp.7:358
14443 msgid ""
14444 "Enable SACK-enhanced F-RTO if flow uses SACK.  The basic version can be used "
14445 "also when SACK is in use though in that case scenario(s) exists where F-RTO "
14446 "interacts badly with the packet counting of the SACK-enabled TCP flow."
14447 msgstr ""
14448
14449 #. type: Plain text
14450 #: build/C/man7/tcp.7:362
14451 msgid ""
14452 "Before Linux 2.6.22, this parameter was a Boolean value, supporting just "
14453 "values 0 and 1 above."
14454 msgstr ""
14455
14456 #. type: TP
14457 #: build/C/man7/tcp.7:362
14458 #, no-wrap
14459 msgid "I<tcp_frto_response> (integer; default: 0; since Linux 2.6.22)"
14460 msgstr ""
14461
14462 #. type: Plain text
14463 #: build/C/man7/tcp.7:369
14464 msgid ""
14465 "When F-RTO has detected that a TCP retransmission timeout was spurious (i.e, "
14466 "the timeout would have been avoided had TCP set a longer retransmission "
14467 "timeout), TCP has several options concerning what to do next.  Possible "
14468 "values are:"
14469 msgstr ""
14470
14471 #. type: Plain text
14472 #: build/C/man7/tcp.7:377
14473 msgid ""
14474 "Rate halving based; a smooth and conservative response, results in halved "
14475 "congestion window (I<cwnd>)  and slow-start threshold (I<ssthresh>)  after "
14476 "one RTT."
14477 msgstr ""
14478
14479 #. type: Plain text
14480 #: build/C/man7/tcp.7:384
14481 msgid ""
14482 "Very conservative response; not recommended because even though being valid, "
14483 "it interacts poorly with the rest of Linux TCP; halves I<cwnd> and "
14484 "I<ssthresh> immediately."
14485 msgstr ""
14486
14487 #. type: Plain text
14488 #: build/C/man7/tcp.7:393
14489 msgid ""
14490 "Aggressive response; undoes congestion-control measures that are now known "
14491 "to be unnecessary (ignoring the possibility of a lost retransmission that "
14492 "would require TCP to be more cautious); I<cwnd> and I<ssthresh> are restored "
14493 "to the values prior to timeout."
14494 msgstr ""
14495
14496 #. type: TP
14497 #: build/C/man7/tcp.7:394
14498 #, no-wrap
14499 msgid "I<tcp_keepalive_intvl> (integer; default: 75; since Linux 2.4)"
14500 msgstr ""
14501
14502 #.  Since 2.3.18
14503 #. type: Plain text
14504 #: build/C/man7/tcp.7:398
14505 msgid "The number of seconds between TCP keep-alive probes."
14506 msgstr ""
14507
14508 #. type: TP
14509 #: build/C/man7/tcp.7:398
14510 #, no-wrap
14511 msgid "I<tcp_keepalive_probes> (integer; default: 9; since Linux 2.2)"
14512 msgstr ""
14513
14514 #.  Since 2.1.43
14515 #. type: Plain text
14516 #: build/C/man7/tcp.7:404
14517 msgid ""
14518 "The maximum number of TCP keep-alive probes to send before giving up and "
14519 "killing the connection if no response is obtained from the other end."
14520 msgstr ""
14521
14522 #. type: TP
14523 #: build/C/man7/tcp.7:404
14524 #, no-wrap
14525 msgid "I<tcp_keepalive_time> (integer; default: 7200; since Linux 2.2)"
14526 msgstr ""
14527
14528 #.  Since 2.1.43
14529 #. type: Plain text
14530 #: build/C/man7/tcp.7:416
14531 msgid ""
14532 "The number of seconds a connection needs to be idle before TCP begins "
14533 "sending out keep-alive probes.  Keep-alives are only sent when the "
14534 "B<SO_KEEPALIVE> socket option is enabled.  The default value is 7200 seconds "
14535 "(2 hours).  An idle connection is terminated after approximately an "
14536 "additional 11 minutes (9 probes an interval of 75 seconds apart) when "
14537 "keep-alive is enabled."
14538 msgstr ""
14539
14540 #
14541 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14542 #. type: Plain text
14543 #: build/C/man7/tcp.7:421
14544 msgid ""
14545 "Note that underlying connection tracking mechanisms and application timeouts "
14546 "may be much shorter."
14547 msgstr ""
14548
14549 #. type: TP
14550 #: build/C/man7/tcp.7:421
14551 #, no-wrap
14552 msgid "I<tcp_low_latency> (Boolean; default: disabled; since Linux 2.4.21/2.6)"
14553 msgstr ""
14554
14555 #.  Since 2.4.21/2.5.60
14556 #. type: Plain text
14557 #: build/C/man7/tcp.7:429
14558 msgid ""
14559 "If enabled, the TCP stack makes decisions that prefer lower latency as "
14560 "opposed to higher throughput.  It this option is disabled, then higher "
14561 "throughput is preferred.  An example of an application where this default "
14562 "should be changed would be a Beowulf compute cluster."
14563 msgstr ""
14564
14565 #. type: TP
14566 #: build/C/man7/tcp.7:429
14567 #, no-wrap
14568 msgid "I<tcp_max_orphans> (integer; default: see below; since Linux 2.4)"
14569 msgstr ""
14570
14571 #.  Since 2.3.41
14572 #. type: Plain text
14573 #: build/C/man7/tcp.7:443
14574 msgid ""
14575 "The maximum number of orphaned (not attached to any user file handle) TCP "
14576 "sockets allowed in the system.  When this number is exceeded, the orphaned "
14577 "connection is reset and a warning is printed.  This limit exists only to "
14578 "prevent simple denial-of-service attacks.  Lowering this limit is not "
14579 "recommended.  Network conditions might require you to increase the number of "
14580 "orphans allowed, but note that each orphan can eat up to ~64K of unswappable "
14581 "memory.  The default initial value is set equal to the kernel parameter "
14582 "NR_FILE.  This initial default is adjusted depending on the memory in the "
14583 "system."
14584 msgstr ""
14585
14586 #. type: TP
14587 #: build/C/man7/tcp.7:443
14588 #, no-wrap
14589 msgid "I<tcp_max_syn_backlog> (integer; default: see below; since Linux 2.2)"
14590 msgstr ""
14591
14592 #.  Since 2.1.53
14593 #. type: Plain text
14594 #: build/C/man7/tcp.7:460
14595 msgid ""
14596 "The maximum number of queued connection requests which have still not "
14597 "received an acknowledgement from the connecting client.  If this number is "
14598 "exceeded, the kernel will begin dropping requests.  The default value of 256 "
14599 "is increased to 1024 when the memory present in the system is adequate or "
14600 "greater (E<gt>= 128Mb), and reduced to 128 for those systems with very low "
14601 "memory (E<lt>= 32Mb).  It is recommended that if this needs to be increased "
14602 "above 1024, TCP_SYNQ_HSIZE in I<include/net/tcp.h> be modified to keep "
14603 "TCP_SYNQ_HSIZE*16E<lt>=tcp_max_syn_backlog, and the kernel be recompiled."
14604 msgstr ""
14605
14606 #. type: TP
14607 #: build/C/man7/tcp.7:460
14608 #, no-wrap
14609 msgid "I<tcp_max_tw_buckets> (integer; default: see below; since Linux 2.4)"
14610 msgstr ""
14611
14612 #.  Since 2.3.41
14613 #. type: Plain text
14614 #: build/C/man7/tcp.7:470
14615 msgid ""
14616 "The maximum number of sockets in TIME_WAIT state allowed in the system.  "
14617 "This limit exists only to prevent simple denial-of-service attacks.  The "
14618 "default value of NR_FILE*2 is adjusted depending on the memory in the "
14619 "system.  If this number is exceeded, the socket is closed and a warning is "
14620 "printed."
14621 msgstr ""
14622
14623 #. type: TP
14624 #: build/C/man7/tcp.7:470
14625 #, no-wrap
14626 msgid "I<tcp_moderate_rcvbuf> (Boolean; default: enabled; since Linux 2.4.17/2.6.7)"
14627 msgstr ""
14628
14629 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14630 #. type: Plain text
14631 #: build/C/man7/tcp.7:477
14632 msgid ""
14633 "If enabled, TCP performs receive buffer auto-tuning, attempting to "
14634 "automatically size the buffer (no greater than I<tcp_rmem[2]>)  to match the "
14635 "size required by the path for full throughput."
14636 msgstr ""
14637
14638 #. type: TP
14639 #: build/C/man7/tcp.7:477
14640 #, no-wrap
14641 msgid "I<tcp_mem> (since Linux 2.4)"
14642 msgstr ""
14643
14644 #.  Since 2.4.0-test7
14645 #. type: Plain text
14646 #: build/C/man7/tcp.7:489
14647 msgid ""
14648 "This is a vector of 3 integers: [low, pressure, high].  These bounds, "
14649 "measured in units of the system page size, are used by TCP to track its "
14650 "memory usage.  The defaults are calculated at boot time from the amount of "
14651 "available memory.  (TCP can only use I<low memory> for this, which is "
14652 "limited to around 900 megabytes on 32-bit systems.  64-bit systems do not "
14653 "suffer this limitation.)"
14654 msgstr ""
14655
14656 #. type: TP
14657 #: build/C/man7/tcp.7:490
14658 #, no-wrap
14659 msgid "I<low>"
14660 msgstr ""
14661
14662 #. type: Plain text
14663 #: build/C/man7/tcp.7:494
14664 msgid ""
14665 "TCP doesn't regulate its memory allocation when the number of pages it has "
14666 "allocated globally is below this number."
14667 msgstr ""
14668
14669 #. type: TP
14670 #: build/C/man7/tcp.7:494 build/C/man7/udp.7:145
14671 #, no-wrap
14672 msgid "I<pressure>"
14673 msgstr ""
14674
14675 #. type: Plain text
14676 #: build/C/man7/tcp.7:503
14677 msgid ""
14678 "When the amount of memory allocated by TCP exceeds this number of pages, TCP "
14679 "moderates its memory consumption.  This memory pressure state is exited once "
14680 "the number of pages allocated falls below the I<low> mark."
14681 msgstr ""
14682
14683 #. type: TP
14684 #: build/C/man7/tcp.7:503
14685 #, no-wrap
14686 msgid "I<high>"
14687 msgstr ""
14688
14689 #. type: Plain text
14690 #: build/C/man7/tcp.7:507
14691 msgid ""
14692 "The maximum number of pages, globally, that TCP will allocate.  This value "
14693 "overrides any other limits imposed by the kernel."
14694 msgstr ""
14695
14696 #. type: TP
14697 #: build/C/man7/tcp.7:508
14698 #, no-wrap
14699 msgid "I<tcp_mtu_probing> (integer; default: 0; since Linux 2.6.17)"
14700 msgstr ""
14701
14702 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14703 #. type: Plain text
14704 #: build/C/man7/tcp.7:513
14705 msgid ""
14706 "This parameter controls TCP Packetization-Layer Path MTU Discovery.  The "
14707 "following values may be assigned to the file:"
14708 msgstr ""
14709
14710 #. type: Plain text
14711 #: build/C/man7/tcp.7:516
14712 msgid "Disabled"
14713 msgstr ""
14714
14715 #. type: Plain text
14716 #: build/C/man7/tcp.7:518
14717 msgid "Disabled by default, enabled when an ICMP black hole detected"
14718 msgstr ""
14719
14720 #. type: Plain text
14721 #: build/C/man7/tcp.7:521
14722 msgid "Always enabled, use initial MSS of I<tcp_base_mss>."
14723 msgstr ""
14724
14725 #. type: TP
14726 #: build/C/man7/tcp.7:522
14727 #, no-wrap
14728 msgid "I<tcp_no_metrics_save> (Boolean; default: disabled; since Linux 2.6.6)"
14729 msgstr ""
14730
14731 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14732 #. type: Plain text
14733 #: build/C/man7/tcp.7:533
14734 msgid ""
14735 "By default, TCP saves various connection metrics in the route cache when the "
14736 "connection closes, so that connections established in the near future can "
14737 "use these to set initial conditions.  Usually, this increases overall "
14738 "performance, but it may sometimes cause performance degradation.  If "
14739 "I<tcp_no_metrics_save> is enabled, TCP will not cache metrics on closing "
14740 "connections."
14741 msgstr ""
14742
14743 #. type: TP
14744 #: build/C/man7/tcp.7:533
14745 #, no-wrap
14746 msgid "I<tcp_orphan_retries> (integer; default: 8; since Linux 2.4)"
14747 msgstr ""
14748
14749 #.  Since 2.3.41
14750 #. type: Plain text
14751 #: build/C/man7/tcp.7:538
14752 msgid ""
14753 "The maximum number of attempts made to probe the other end of a connection "
14754 "which has been closed by our end."
14755 msgstr ""
14756
14757 #. type: TP
14758 #: build/C/man7/tcp.7:538
14759 #, no-wrap
14760 msgid "I<tcp_reordering> (integer; default: 3; since Linux 2.4)"
14761 msgstr ""
14762
14763 #.  Since 2.4.0-test7
14764 #. type: Plain text
14765 #: build/C/man7/tcp.7:547
14766 msgid ""
14767 "The maximum a packet can be reordered in a TCP packet stream without TCP "
14768 "assuming packet loss and going into slow start.  It is not advisable to "
14769 "change this number.  This is a packet reordering detection metric designed "
14770 "to minimize unnecessary back off and retransmits provoked by reordering of "
14771 "packets on a connection."
14772 msgstr ""
14773
14774 #. type: TP
14775 #: build/C/man7/tcp.7:547
14776 #, no-wrap
14777 msgid "I<tcp_retrans_collapse> (Boolean; default: enabled; since Linux 2.2)"
14778 msgstr ""
14779
14780 #.  Since 2.1.96
14781 #. type: Plain text
14782 #: build/C/man7/tcp.7:551
14783 msgid "Try to send full-sized packets during retransmit."
14784 msgstr ""
14785
14786 #. type: TP
14787 #: build/C/man7/tcp.7:551
14788 #, no-wrap
14789 msgid "I<tcp_retries1> (integer; default: 3; since Linux 2.2)"
14790 msgstr ""
14791
14792 #.  Since 2.1.43
14793 #. type: Plain text
14794 #: build/C/man7/tcp.7:561
14795 msgid ""
14796 "The number of times TCP will attempt to retransmit a packet on an "
14797 "established connection normally, without the extra effort of getting the "
14798 "network layers involved.  Once we exceed this number of retransmits, we "
14799 "first have the network layer update the route if possible before each new "
14800 "retransmit.  The default is the RFC specified minimum of 3."
14801 msgstr ""
14802
14803 #. type: TP
14804 #: build/C/man7/tcp.7:561
14805 #, no-wrap
14806 msgid "I<tcp_retries2> (integer; default: 15; since Linux 2.2)"
14807 msgstr ""
14808
14809 #.  Since 2.1.43
14810 #. type: Plain text
14811 #: build/C/man7/tcp.7:571
14812 msgid ""
14813 "The maximum number of times a TCP packet is retransmitted in established "
14814 "state before giving up.  The default value is 15, which corresponds to a "
14815 "duration of approximately between 13 to 30 minutes, depending on the "
14816 "retransmission timeout.  The RFC\\ 1122 specified minimum limit of 100 "
14817 "seconds is typically deemed too short."
14818 msgstr ""
14819
14820 #. type: TP
14821 #: build/C/man7/tcp.7:571
14822 #, no-wrap
14823 msgid "I<tcp_rfc1337> (Boolean; default: disabled; since Linux 2.2)"
14824 msgstr ""
14825
14826 #.  Since 2.1.90
14827 #. type: Plain text
14828 #: build/C/man7/tcp.7:579
14829 msgid ""
14830 "Enable TCP behavior conformant with RFC\\ 1337.  When disabled, if a RST is "
14831 "received in TIME_WAIT state, we close the socket immediately without waiting "
14832 "for the end of the TIME_WAIT period."
14833 msgstr ""
14834
14835 #. type: TP
14836 #: build/C/man7/tcp.7:579
14837 #, no-wrap
14838 msgid "I<tcp_rmem> (since Linux 2.4)"
14839 msgstr ""
14840
14841 #.  Since 2.4.0-test7
14842 #. type: Plain text
14843 #: build/C/man7/tcp.7:587
14844 msgid ""
14845 "This is a vector of 3 integers: [min, default, max].  These parameters are "
14846 "used by TCP to regulate receive buffer sizes.  TCP dynamically adjusts the "
14847 "size of the receive buffer from the defaults listed below, in the range of "
14848 "these values, depending on memory available in the system."
14849 msgstr ""
14850
14851 #. type: TP
14852 #: build/C/man7/tcp.7:588 build/C/man7/tcp.7:764 build/C/man7/udp.7:139
14853 #, no-wrap
14854 msgid "I<min>"
14855 msgstr ""
14856
14857 #. type: Plain text
14858 #: build/C/man7/tcp.7:603
14859 msgid ""
14860 "minimum size of the receive buffer used by each TCP socket.  The default "
14861 "value is the system page size.  (On Linux 2.4, the default value is 4K, "
14862 "lowered to B<PAGE_SIZE> bytes in low-memory systems.)  This value is used to "
14863 "ensure that in memory pressure mode, allocations below this size will still "
14864 "succeed.  This is not used to bound the size of the receive buffer declared "
14865 "using B<SO_RCVBUF> on a socket."
14866 msgstr ""
14867
14868 #. type: TP
14869 #: build/C/man7/tcp.7:603 build/C/man7/tcp.7:774
14870 #, no-wrap
14871 msgid "I<default>"
14872 msgstr ""
14873
14874 #. type: Plain text
14875 #: build/C/man7/tcp.7:617
14876 msgid ""
14877 "the default size of the receive buffer for a TCP socket.  This value "
14878 "overwrites the initial default buffer size from the generic global "
14879 "I<net.core.rmem_default> defined for all protocols.  The default value is "
14880 "87380 bytes.  (On Linux 2.4, this will be lowered to 43689 in low-memory "
14881 "systems.)  If larger receive buffer sizes are desired, this value should be "
14882 "increased (to affect all sockets).  To employ large TCP windows, the "
14883 "I<net.ipv4.tcp_window_scaling> must be enabled (default)."
14884 msgstr ""
14885
14886 #. type: TP
14887 #: build/C/man7/tcp.7:617 build/C/man7/tcp.7:788 build/C/man7/udp.7:151
14888 #, no-wrap
14889 msgid "I<max>"
14890 msgstr ""
14891
14892 #. type: Plain text
14893 #: build/C/man7/tcp.7:626
14894 msgid ""
14895 "the maximum size of the receive buffer used by each TCP socket.  This value "
14896 "does not override the global I<net.core.rmem_max>.  This is not used to "
14897 "limit the size of the receive buffer declared using B<SO_RCVBUF> on a "
14898 "socket.  The default value is calculated using the formula"
14899 msgstr ""
14900
14901 #. type: Plain text
14902 #: build/C/man7/tcp.7:628
14903 #, no-wrap
14904 msgid "    max(87380, min(4MB, I<tcp_mem>[1]*PAGE_SIZE/128))\n"
14905 msgstr ""
14906
14907 #. type: Plain text
14908 #: build/C/man7/tcp.7:631
14909 msgid ""
14910 "(On Linux 2.4, the default is 87380*2 bytes, lowered to 87380 in low-memory "
14911 "systems)."
14912 msgstr ""
14913
14914 #. type: TP
14915 #: build/C/man7/tcp.7:632
14916 #, no-wrap
14917 msgid "I<tcp_sack> (Boolean; default: enabled; since Linux 2.2)"
14918 msgstr ""
14919
14920 #.  Since 2.1.36
14921 #. type: Plain text
14922 #: build/C/man7/tcp.7:636
14923 msgid "Enable RFC\\ 2018 TCP Selective Acknowledgements."
14924 msgstr ""
14925
14926 #. type: TP
14927 #: build/C/man7/tcp.7:636
14928 #, no-wrap
14929 msgid "I<tcp_slow_start_after_idle> (Boolean; default: enabled; since Linux 2.6.18)"
14930 msgstr ""
14931
14932 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14933 #. type: Plain text
14934 #: build/C/man7/tcp.7:644
14935 msgid ""
14936 "If enabled, provide RFC 2861 behavior and time out the congestion window "
14937 "after an idle period.  An idle period is defined as the current RTO "
14938 "(retransmission timeout).  If disabled, the congestion window will not be "
14939 "timed out after an idle period."
14940 msgstr ""
14941
14942 #. type: TP
14943 #: build/C/man7/tcp.7:644
14944 #, no-wrap
14945 msgid "I<tcp_stdurg> (Boolean; default: disabled; since Linux 2.2)"
14946 msgstr ""
14947
14948 #.  Since 2.1.44
14949 #.  RFC 793 was ambiguous in its specification of the meaning of the
14950 #.  urgent pointer.  RFC 1122 (and RFC 961) fixed on a particular
14951 #.  resolution of this ambiguity (unfortunately the "wrong" one).
14952 #. type: Plain text
14953 #: build/C/man7/tcp.7:658
14954 msgid ""
14955 "If this option is enabled, then use the RFC\\ 1122 interpretation of the TCP "
14956 "urgent-pointer field.  According to this interpretation, the urgent pointer "
14957 "points to the last byte of urgent data.  If this option is disabled, then "
14958 "use the BSD-compatible interpretation of the urgent pointer: the urgent "
14959 "pointer points to the first byte after the urgent data.  Enabling this "
14960 "option may lead to interoperability problems."
14961 msgstr ""
14962
14963 #. type: TP
14964 #: build/C/man7/tcp.7:658
14965 #, no-wrap
14966 msgid "I<tcp_syn_retries> (integer; default: 5; since Linux 2.2)"
14967 msgstr ""
14968
14969 #.  Since 2.1.38
14970 #. type: Plain text
14971 #: build/C/man7/tcp.7:665
14972 msgid ""
14973 "The maximum number of times initial SYNs for an active TCP connection "
14974 "attempt will be retransmitted.  This value should not be higher than 255.  "
14975 "The default value is 5, which corresponds to approximately 180 seconds."
14976 msgstr ""
14977
14978 #. type: TP
14979 #: build/C/man7/tcp.7:665
14980 #, no-wrap
14981 msgid "I<tcp_synack_retries> (integer; default: 5; since Linux 2.2)"
14982 msgstr ""
14983
14984 #.  Since 2.1.38
14985 #. type: Plain text
14986 #: build/C/man7/tcp.7:671
14987 msgid ""
14988 "The maximum number of times a SYN/ACK segment for a passive TCP connection "
14989 "will be retransmitted.  This number should not be higher than 255."
14990 msgstr ""
14991
14992 #. type: TP
14993 #: build/C/man7/tcp.7:671
14994 #, no-wrap
14995 msgid "I<tcp_syncookies> (Boolean; since Linux 2.2)"
14996 msgstr ""
14997
14998 #.  Since 2.1.43
14999 #. type: Plain text
15000 #: build/C/man7/tcp.7:691
15001 msgid ""
15002 "Enable TCP syncookies.  The kernel must be compiled with "
15003 "B<CONFIG_SYN_COOKIES>.  Send out syncookies when the syn backlog queue of a "
15004 "socket overflows.  The syncookies feature attempts to protect a socket from "
15005 "a SYN flood attack.  This should be used as a last resort, if at all.  This "
15006 "is a violation of the TCP protocol, and conflicts with other areas of TCP "
15007 "such as TCP extensions.  It can cause problems for clients and relays.  It "
15008 "is not recommended as a tuning mechanism for heavily loaded servers to help "
15009 "with overloaded or misconfigured conditions.  For recommended alternatives "
15010 "see I<tcp_max_syn_backlog>, I<tcp_synack_retries>, and "
15011 "I<tcp_abort_on_overflow>."
15012 msgstr ""
15013
15014 #. type: TP
15015 #: build/C/man7/tcp.7:691
15016 #, no-wrap
15017 msgid "I<tcp_timestamps> (Boolean; default: enabled; since Linux 2.2)"
15018 msgstr ""
15019
15020 #.  Since 2.1.36
15021 #. type: Plain text
15022 #: build/C/man7/tcp.7:695
15023 msgid "Enable RFC\\ 1323 TCP timestamps."
15024 msgstr ""
15025
15026 #. type: TP
15027 #: build/C/man7/tcp.7:695
15028 #, no-wrap
15029 msgid "I<tcp_tso_win_divisor> (integer; default: 3; since Linux 2.6.9)"
15030 msgstr ""
15031
15032 #. type: Plain text
15033 #: build/C/man7/tcp.7:701
15034 msgid ""
15035 "This parameter controls what percentage of the congestion window can be "
15036 "consumed by a single TCP Segmentation Offload (TSO) frame.  The setting of "
15037 "this parameter is a tradeoff between burstiness and building larger TSO "
15038 "frames."
15039 msgstr ""
15040
15041 #. type: TP
15042 #: build/C/man7/tcp.7:701
15043 #, no-wrap
15044 msgid "I<tcp_tw_recycle> (Boolean; default: disabled; since Linux 2.4)"
15045 msgstr ""
15046
15047 #.  Since 2.3.15
15048 #
15049 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15050 #. type: Plain text
15051 #: build/C/man7/tcp.7:710
15052 msgid ""
15053 "Enable fast recycling of TIME_WAIT sockets.  Enabling this option is not "
15054 "recommended since this causes problems when working with NAT (Network "
15055 "Address Translation)."
15056 msgstr ""
15057
15058 #. type: TP
15059 #: build/C/man7/tcp.7:710
15060 #, no-wrap
15061 msgid "I<tcp_tw_reuse> (Boolean; default: disabled; since Linux 2.4.19/2.6)"
15062 msgstr ""
15063
15064 #.  Since 2.4.19/2.5.43
15065 #
15066 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15067 #. type: Plain text
15068 #: build/C/man7/tcp.7:718
15069 msgid ""
15070 "Allow to reuse TIME_WAIT sockets for new connections when it is safe from "
15071 "protocol viewpoint.  It should not be changed without advice/request of "
15072 "technical experts."
15073 msgstr ""
15074
15075 #. type: TP
15076 #: build/C/man7/tcp.7:718
15077 #, no-wrap
15078 msgid "I<tcp_vegas_cong_avoid> (Boolean; default: disabled; Linux 2.2 to 2.6.13)"
15079 msgstr ""
15080
15081 #.  Since 2.1.8; removed in 2.6.13
15082 #
15083 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
15084 #. type: Plain text
15085 #: build/C/man7/tcp.7:729
15086 msgid ""
15087 "Enable TCP Vegas congestion avoidance algorithm.  TCP Vegas is a sender-side "
15088 "only change to TCP that anticipates the onset of congestion by estimating "
15089 "the bandwidth.  TCP Vegas adjusts the sending rate by modifying the "
15090 "congestion window.  TCP Vegas should provide less packet loss, but it is not "
15091 "as aggressive as TCP Reno."
15092 msgstr ""
15093
15094 #. type: TP
15095 #: build/C/man7/tcp.7:729
15096 #, no-wrap
15097 msgid "I<tcp_westwood> (Boolean; default: disabled; Linux 2.4.26/2.6.3 to 2.6.13)"
15098 msgstr ""
15099
15100 #. type: Plain text
15101 #: build/C/man7/tcp.7:741
15102 msgid ""
15103 "Enable TCP Westwood+ congestion control algorithm.  TCP Westwood+ is a "
15104 "sender-side only modification of the TCP Reno protocol stack that optimizes "
15105 "the performance of TCP congestion control.  It is based on end-to-end "
15106 "bandwidth estimation to set congestion window and slow start threshold after "
15107 "a congestion episode.  Using this estimation, TCP Westwood+ adaptively sets "
15108 "a slow start threshold and a congestion window which takes into account the "
15109 "bandwidth used at the time congestion is experienced.  TCP Westwood+ "
15110 "significantly increases fairness with respect to TCP Reno in wired networks "
15111 "and throughput over wireless links."
15112 msgstr ""
15113
15114 #. type: TP
15115 #: build/C/man7/tcp.7:741
15116 #, no-wrap
15117 msgid "I<tcp_window_scaling> (Boolean; default: enabled; since Linux 2.2)"
15118 msgstr ""
15119
15120 #.  Since 2.1.36
15121 #. type: Plain text
15122 #: build/C/man7/tcp.7:755
15123 msgid ""
15124 "Enable RFC\\ 1323 TCP window scaling.  This feature allows the use of a "
15125 "large window (E<gt> 64K) on a TCP connection, should the other end support "
15126 "it.  Normally, the 16 bit window length field in the TCP header limits the "
15127 "window size to less than 64K bytes.  If larger windows are desired, "
15128 "applications can increase the size of their socket buffers and the window "
15129 "scaling option will be employed.  If I<tcp_window_scaling> is disabled, TCP "
15130 "will not negotiate the use of window scaling with the other end during "
15131 "connection setup."
15132 msgstr ""
15133
15134 #. type: TP
15135 #: build/C/man7/tcp.7:755
15136 #, no-wrap
15137 msgid "I<tcp_wmem> (since Linux 2.4)"
15138 msgstr ""
15139
15140 #.  Since 2.4.0-test7
15141 #. type: Plain text
15142 #: build/C/man7/tcp.7:763
15143 msgid ""
15144 "This is a vector of 3 integers: [min, default, max].  These parameters are "
15145 "used by TCP to regulate send buffer sizes.  TCP dynamically adjusts the size "
15146 "of the send buffer from the default values listed below, in the range of "
15147 "these values, depending on memory available."
15148 msgstr ""
15149
15150 #. type: Plain text
15151 #: build/C/man7/tcp.7:774
15152 msgid ""
15153 "Minimum size of the send buffer used by each TCP socket.  The default value "
15154 "is the system page size.  (On Linux 2.4, the default value is 4K bytes.)  "
15155 "This value is used to ensure that in memory pressure mode, allocations below "
15156 "this size will still succeed.  This is not used to bound the size of the "
15157 "send buffer declared using B<SO_SNDBUF> on a socket."
15158 msgstr ""
15159
15160 #.  True in Linux 2.4 and 2.6
15161 #. type: Plain text
15162 #: build/C/man7/tcp.7:788
15163 msgid ""
15164 "The default size of the send buffer for a TCP socket.  This value overwrites "
15165 "the initial default buffer size from the generic global "
15166 "I</proc/sys/net/core/wmem_default> defined for all protocols.  The default "
15167 "value is 16K bytes.  If larger send buffer sizes are desired, this value "
15168 "should be increased (to affect all sockets).  To employ large TCP windows, "
15169 "the I</proc/sys/net/ipv4/tcp_window_scaling> must be set to a nonzero value "
15170 "(default)."
15171 msgstr ""
15172
15173 #. type: Plain text
15174 #: build/C/man7/tcp.7:797
15175 msgid ""
15176 "The maximum size of the send buffer used by each TCP socket.  This value "
15177 "does not override the value in I</proc/sys/net/core/wmem_max>.  This is not "
15178 "used to limit the size of the send buffer declared using B<SO_SNDBUF> on a "
15179 "socket.  The default value is calculated using the formula"
15180 msgstr ""
15181
15182 #. type: Plain text
15183 #: build/C/man7/tcp.7:799
15184 #, no-wrap
15185 msgid "    max(65536, min(4MB, I<tcp_mem>[1]*PAGE_SIZE/128))\n"
15186 msgstr ""
15187
15188 #. type: Plain text
15189 #: build/C/man7/tcp.7:802
15190 msgid ""
15191 "(On Linux 2.4, the default value is 128K bytes, lowered 64K depending on "
15192 "low-memory systems.)"
15193 msgstr ""
15194
15195 #. type: TP
15196 #: build/C/man7/tcp.7:803
15197 #, no-wrap
15198 msgid ""
15199 "I<tcp_workaround_signed_windows> (Boolean; default: disabled; since Linux "
15200 "2.6.26)"
15201 msgstr ""
15202
15203 #. type: Plain text
15204 #: build/C/man7/tcp.7:809
15205 msgid ""
15206 "If enabled, assume that no receipt of a window-scaling option means that the "
15207 "remote TCP is broken and treats the window as a signed quantity.  If "
15208 "disabled, assume that the remote TCP is not broken even if we do not receive "
15209 "a window scaling option from it."
15210 msgstr ""
15211
15212 #.  or SOL_TCP on Linux
15213 #.  FIXME Document TCP_CONGESTION (new in 2.6.13)
15214 #. type: Plain text
15215 #: build/C/man7/tcp.7:824
15216 msgid ""
15217 "To set or get a TCP socket option, call B<getsockopt>(2)  to read or "
15218 "B<setsockopt>(2)  to write the option with the option level argument set to "
15219 "B<IPPROTO_TCP>.  In addition, most B<IPPROTO_IP> socket options are valid on "
15220 "TCP sockets.  For more information see B<ip>(7)."
15221 msgstr ""
15222
15223 #. type: TP
15224 #: build/C/man7/tcp.7:824
15225 #, no-wrap
15226 msgid "B<TCP_CORK> (since Linux 2.2)"
15227 msgstr ""
15228
15229 #.  precisely: since 2.1.127
15230 #. type: Plain text
15231 #: build/C/man7/tcp.7:840
15232 msgid ""
15233 "If set, don't send out partial frames.  All queued partial frames are sent "
15234 "when the option is cleared again.  This is useful for prepending headers "
15235 "before calling B<sendfile>(2), or for throughput optimization.  As currently "
15236 "implemented, there is a 200 millisecond ceiling on the time for which output "
15237 "is corked by B<TCP_CORK>.  If this ceiling is reached, then queued data is "
15238 "automatically transmitted.  This option can be combined with B<TCP_NODELAY> "
15239 "only since Linux 2.5.71.  This option should not be used in code intended to "
15240 "be portable."
15241 msgstr ""
15242
15243 #. type: TP
15244 #: build/C/man7/tcp.7:840
15245 #, no-wrap
15246 msgid "B<TCP_DEFER_ACCEPT> (since Linux 2.4)"
15247 msgstr ""
15248
15249 #.  Precisely: since 2.3.38
15250 #. type: Plain text
15251 #: build/C/man7/tcp.7:848
15252 msgid ""
15253 "Allow a listener to be awakened only when data arrives on the socket.  Takes "
15254 "an integer value (seconds), this can bound the maximum number of attempts "
15255 "TCP will make to complete the connection.  This option should not be used in "
15256 "code intended to be portable."
15257 msgstr ""
15258
15259 #. type: TP
15260 #: build/C/man7/tcp.7:848
15261 #, no-wrap
15262 msgid "B<TCP_INFO> (since Linux 2.4)"
15263 msgstr ""
15264
15265 #. type: Plain text
15266 #: build/C/man7/tcp.7:854
15267 msgid ""
15268 "Used to collect information about this socket.  The kernel returns a "
15269 "I<struct tcp_info> as defined in the file I</usr/include/linux/tcp.h>.  This "
15270 "option should not be used in code intended to be portable."
15271 msgstr ""
15272
15273 #. type: TP
15274 #: build/C/man7/tcp.7:854
15275 #, no-wrap
15276 msgid "B<TCP_KEEPCNT> (since Linux 2.4)"
15277 msgstr ""
15278
15279 #.  Precisely: since 2.3.18
15280 #. type: Plain text
15281 #: build/C/man7/tcp.7:861
15282 msgid ""
15283 "The maximum number of keepalive probes TCP should send before dropping the "
15284 "connection.  This option should not be used in code intended to be portable."
15285 msgstr ""
15286
15287 #. type: TP
15288 #: build/C/man7/tcp.7:861
15289 #, no-wrap
15290 msgid "B<TCP_KEEPIDLE> (since Linux 2.4)"
15291 msgstr ""
15292
15293 #.  Precisely: since 2.3.18
15294 #. type: Plain text
15295 #: build/C/man7/tcp.7:870
15296 msgid ""
15297 "The time (in seconds) the connection needs to remain idle before TCP starts "
15298 "sending keepalive probes, if the socket option B<SO_KEEPALIVE> has been set "
15299 "on this socket.  This option should not be used in code intended to be "
15300 "portable."
15301 msgstr ""
15302
15303 #. type: TP
15304 #: build/C/man7/tcp.7:870
15305 #, no-wrap
15306 msgid "B<TCP_KEEPINTVL> (since Linux 2.4)"
15307 msgstr ""
15308
15309 #.  Precisely: since 2.3.18
15310 #. type: Plain text
15311 #: build/C/man7/tcp.7:875
15312 msgid ""
15313 "The time (in seconds) between individual keepalive probes.  This option "
15314 "should not be used in code intended to be portable."
15315 msgstr ""
15316
15317 #. type: TP
15318 #: build/C/man7/tcp.7:875
15319 #, no-wrap
15320 msgid "B<TCP_LINGER2> (since Linux 2.4)"
15321 msgstr ""
15322
15323 #.  Precisely: since 2.3.41
15324 #. type: Plain text
15325 #: build/C/man7/tcp.7:887
15326 msgid ""
15327 "The lifetime of orphaned FIN_WAIT2 state sockets.  This option can be used "
15328 "to override the system-wide setting in the file "
15329 "I</proc/sys/net/ipv4/tcp_fin_timeout> for this socket.  This is not to be "
15330 "confused with the B<socket>(7)  level option B<SO_LINGER>.  This option "
15331 "should not be used in code intended to be portable."
15332 msgstr ""
15333
15334 #. type: TP
15335 #: build/C/man7/tcp.7:887
15336 #, no-wrap
15337 msgid "B<TCP_MAXSEG>"
15338 msgstr ""
15339
15340 #.  Present in Linux 1.0
15341 #.  FIXME
15342 #.  Document TCP_MD5SIG, added in Linux 2.6.20,
15343 #.  Needs CONFIG_TCP_MD5SIG
15344 #.  From net/inet/Kconfig
15345 #.  bool "TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL)"
15346 #.  RFC2385 specifies a method of giving MD5 protection to TCP sessions.
15347 #.  Its main (only?) use is to protect BGP sessions between core routers
15348 #.  on the Internet.
15349 #
15350 #.  There is a TCP_MD5SIG option documented in FreeBSD's tcp(4),
15351 #.  but probably many details are different on Linux
15352 #.  Authors were yoshfuji@linux-ipv6.org and Dave Muller
15353 #.  http://thread.gmane.org/gmane.linux.network/47490
15354 #.  http://www.daemon-systems.org/man/tcp.4.html
15355 #.  http://article.gmane.org/gmane.os.netbsd.devel.network/3767/match=tcp_md5sig+freebsd
15356 #. type: Plain text
15357 #: build/C/man7/tcp.7:912
15358 msgid ""
15359 "The maximum segment size for outgoing TCP packets.  In Linux 2.2 and "
15360 "earlier, and in Linux 2.6.28 and later, if this option is set before "
15361 "connection establishment, it also changes the MSS value announced to the "
15362 "other end in the initial packet.  Values greater than the (eventual) "
15363 "interface MTU have no effect.  TCP will also impose its minimum and maximum "
15364 "bounds over the value provided."
15365 msgstr ""
15366
15367 #. type: TP
15368 #: build/C/man7/tcp.7:912
15369 #, no-wrap
15370 msgid "B<TCP_NODELAY>"
15371 msgstr ""
15372
15373 #.  Present in Linux 1.0
15374 #. type: Plain text
15375 #: build/C/man7/tcp.7:929
15376 msgid ""
15377 "If set, disable the Nagle algorithm.  This means that segments are always "
15378 "sent as soon as possible, even if there is only a small amount of data.  "
15379 "When not set, data is buffered until there is a sufficient amount to send "
15380 "out, thereby avoiding the frequent sending of small packets, which results "
15381 "in poor utilization of the network.  This option is overridden by "
15382 "B<TCP_CORK>; however, setting this option forces an explicit flush of "
15383 "pending output, even if B<TCP_CORK> is currently set."
15384 msgstr ""
15385
15386 #. type: TP
15387 #: build/C/man7/tcp.7:929
15388 #, no-wrap
15389 msgid "B<TCP_QUICKACK> (since Linux 2.4.4)"
15390 msgstr ""
15391
15392 #.  FIXME Document TCP_USER_TIMEOUT (new in 2.6.37)
15393 #.  See commit dca43c75e7e545694a9dd6288553f55c53e2a3a3
15394 #. type: Plain text
15395 #: build/C/man7/tcp.7:946
15396 msgid ""
15397 "Enable quickack mode if set or disable quickack mode if cleared.  In "
15398 "quickack mode, acks are sent immediately, rather than delayed if needed in "
15399 "accordance to normal TCP operation.  This flag is not permanent, it only "
15400 "enables a switch to or from quickack mode.  Subsequent operation of the TCP "
15401 "protocol will once again enter/leave quickack mode depending on internal "
15402 "protocol processing and factors such as delayed ack timeouts occurring and "
15403 "data transfer.  This option should not be used in code intended to be "
15404 "portable."
15405 msgstr ""
15406
15407 #. type: TP
15408 #: build/C/man7/tcp.7:946
15409 #, no-wrap
15410 msgid "B<TCP_SYNCNT> (since Linux 2.4)"
15411 msgstr ""
15412
15413 #.  Precisely: since 2.3.18
15414 #. type: Plain text
15415 #: build/C/man7/tcp.7:953
15416 msgid ""
15417 "Set the number of SYN retransmits that TCP should send before aborting the "
15418 "attempt to connect.  It cannot exceed 255.  This option should not be used "
15419 "in code intended to be portable."
15420 msgstr ""
15421
15422 #. type: TP
15423 #: build/C/man7/tcp.7:953
15424 #, no-wrap
15425 msgid "B<TCP_WINDOW_CLAMP> (since Linux 2.4)"
15426 msgstr ""
15427
15428 #.  Precisely: since 2.3.41
15429 #. type: Plain text
15430 #: build/C/man7/tcp.7:960
15431 msgid ""
15432 "Bound the size of the advertised window to this value.  The kernel imposes a "
15433 "minimum size of SOCK_MIN_RCVBUF/2.  This option should not be used in code "
15434 "intended to be portable."
15435 msgstr ""
15436
15437 #. type: SS
15438 #: build/C/man7/tcp.7:960 build/C/man7/unix.7:173
15439 #, no-wrap
15440 msgid "Sockets API"
15441 msgstr ""
15442
15443 #. type: Plain text
15444 #: build/C/man7/tcp.7:969
15445 msgid ""
15446 "TCP provides limited support for out-of-band data, in the form of (a single "
15447 "byte of) urgent data.  In Linux this means if the other end sends newer "
15448 "out-of-band data the older urgent data is inserted as normal data into the "
15449 "stream (even when B<SO_OOBINLINE> is not set).  This differs from BSD-based "
15450 "stacks."
15451 msgstr ""
15452
15453 #. type: Plain text
15454 #: build/C/man7/tcp.7:976
15455 msgid ""
15456 "Linux uses the BSD compatible interpretation of the urgent pointer field by "
15457 "default.  This violates RFC\\ 1122, but is required for interoperability "
15458 "with other stacks.  It can be changed via I</proc/sys/net/ipv4/tcp_stdurg>."
15459 msgstr ""
15460
15461 #. type: Plain text
15462 #: build/C/man7/tcp.7:981
15463 msgid ""
15464 "It is possible to peek at out-of-band data using the I<recv>(2)  B<MSG_PEEK> "
15465 "flag."
15466 msgstr ""
15467
15468 #. type: Plain text
15469 #: build/C/man7/tcp.7:997
15470 msgid ""
15471 "Since version 2.4, Linux supports the use of B<MSG_TRUNC> in the I<flags> "
15472 "argument of B<recv>(2)  (and B<recvmsg>(2)).  This flag causes the received "
15473 "bytes of data to be discarded, rather than passed back in a caller-supplied "
15474 "buffer.  Since Linux 2.4.4, B<MSG_PEEK> also has this effect when used in "
15475 "conjunction with B<MSG_OOB> to receive out-of-band data."
15476 msgstr ""
15477
15478 #. type: Plain text
15479 #: build/C/man7/tcp.7:1003 build/C/man7/unix.7:286
15480 msgid ""
15481 "The following B<ioctl>(2)  calls return information in I<value>.  The "
15482 "correct syntax is:"
15483 msgstr ""
15484
15485 #. type: Plain text
15486 #: build/C/man7/tcp.7:1008
15487 #, no-wrap
15488 msgid ""
15489 "B<int>I< value>B<;>\n"
15490 "I<error>B< = ioctl(>I<tcp_socket>B<, >I<ioctl_type>B<, &>I<value>B<);>\n"
15491 msgstr ""
15492
15493 #. type: Plain text
15494 #: build/C/man7/tcp.7:1013
15495 msgid "I<ioctl_type> is one of the following:"
15496 msgstr ""
15497
15498 #. type: TP
15499 #: build/C/man7/tcp.7:1013 build/C/man7/unix.7:296
15500 #, no-wrap
15501 msgid "B<SIOCINQ>"
15502 msgstr ""
15503
15504 #.  FIXME http://sources.redhat.com/bugzilla/show_bug.cgi?id=12002,
15505 #.  filed 2010-09-10, may cause SIOCINQ to be defined in glibc headers
15506 #.  SIOCOUTQ also has an effect for UNIX domain sockets, but not
15507 #.  quite what userland might expect. It seems to return the number
15508 #.  of bytes allocated for buffers containing pending output.
15509 #.  That number is normally larger than the number of bytes of pending
15510 #.  output. Since this info is, from userland's point of view, imprecise,
15511 #.  and it may well change, probably best not to document this now.
15512 #. type: Plain text
15513 #: build/C/man7/tcp.7:1029 build/C/man7/unix.7:318
15514 msgid ""
15515 "Returns the amount of queued unread data in the receive buffer.  The socket "
15516 "must not be in LISTEN state, otherwise an error (B<EINVAL>)  is returned.  "
15517 "B<SIOCINQ> is defined in I<E<lt>linux/sockios.hE<gt>>.  Alternatively, you "
15518 "can use the synonymous B<FIONREAD>, defined in I<E<lt>sys/ioctl.hE<gt>>."
15519 msgstr ""
15520
15521 #. type: TP
15522 #: build/C/man7/tcp.7:1029
15523 #, no-wrap
15524 msgid "B<SIOCATMARK>"
15525 msgstr ""
15526
15527 #. type: Plain text
15528 #: build/C/man7/tcp.7:1034
15529 msgid ""
15530 "Returns true (i.e., I<value> is nonzero) if the inbound data stream is at "
15531 "the urgent mark."
15532 msgstr ""
15533
15534 #. type: Plain text
15535 #: build/C/man7/tcp.7:1050
15536 msgid ""
15537 "If the B<SO_OOBINLINE> socket option is set, and B<SIOCATMARK> returns true, "
15538 "then the next read from the socket will return the urgent data.  If the "
15539 "B<SO_OOBINLINE> socket option is not set, and B<SIOCATMARK> returns true, "
15540 "then the next read from the socket will return the bytes following the "
15541 "urgent data (to actually read the urgent data requires the B<recv(MSG_OOB)> "
15542 "flag)."
15543 msgstr ""
15544
15545 #. type: Plain text
15546 #: build/C/man7/tcp.7:1064
15547 msgid ""
15548 "Note that a read never reads across the urgent mark.  If an application is "
15549 "informed of the presence of urgent data via B<select>(2)  (using the "
15550 "I<exceptfds> argument) or through delivery of a B<SIGURG> signal, then it "
15551 "can advance up to the mark using a loop which repeatedly tests B<SIOCATMARK> "
15552 "and performs a read (requesting any number of bytes) as long as "
15553 "B<SIOCATMARK> returns false."
15554 msgstr ""
15555
15556 #. type: TP
15557 #: build/C/man7/tcp.7:1064
15558 #, no-wrap
15559 msgid "B<SIOCOUTQ>"
15560 msgstr ""
15561
15562 #.  FIXME http://sources.redhat.com/bugzilla/show_bug.cgi?id=12002,
15563 #.  filed 2010-09-10, may cause SIOCOUTQ to be defined in glibc headers
15564 #. type: Plain text
15565 #: build/C/man7/tcp.7:1080
15566 msgid ""
15567 "Returns the amount of unsent data in the socket send queue.  The socket must "
15568 "not be in LISTEN state, otherwise an error (B<EINVAL>)  is returned.  "
15569 "B<SIOCOUTQ> is defined in I<E<lt>linux/sockios.hE<gt>>.  Alternatively, you "
15570 "can use the synonymous B<TIOCOUTQ>, defined in I<E<lt>sys/ioctl.hE<gt>>."
15571 msgstr ""
15572
15573 #. type: Plain text
15574 #: build/C/man7/tcp.7:1085
15575 msgid ""
15576 "When a network error occurs, TCP tries to resend the packet.  If it doesn't "
15577 "succeed after some time, either B<ETIMEDOUT> or the last received error on "
15578 "this connection is reported."
15579 msgstr ""
15580
15581 #. type: Plain text
15582 #: build/C/man7/tcp.7:1096
15583 msgid ""
15584 "Some applications require a quicker error notification.  This can be enabled "
15585 "with the B<IPPROTO_IP> level B<IP_RECVERR> socket option.  When this option "
15586 "is enabled, all incoming errors are immediately passed to the user program.  "
15587 "Use this option with care \\(em it makes TCP less tolerant to routing "
15588 "changes and other normal network conditions."
15589 msgstr ""
15590
15591 #. type: TP
15592 #: build/C/man7/tcp.7:1097
15593 #, no-wrap
15594 msgid "B<EAFNOTSUPPORT>"
15595 msgstr ""
15596
15597 #. type: Plain text
15598 #: build/C/man7/tcp.7:1103
15599 msgid "Passed socket address type in I<sin_family> was not B<AF_INET>."
15600 msgstr ""
15601
15602 #. type: Plain text
15603 #: build/C/man7/tcp.7:1107
15604 msgid ""
15605 "The other end closed the socket unexpectedly or a read is executed on a shut "
15606 "down socket."
15607 msgstr ""
15608
15609 #. type: TP
15610 #: build/C/man7/tcp.7:1107
15611 #, no-wrap
15612 msgid "B<ETIMEDOUT>"
15613 msgstr ""
15614
15615 #. type: Plain text
15616 #: build/C/man7/tcp.7:1110
15617 msgid "The other end didn't acknowledge retransmitted data after some time."
15618 msgstr ""
15619
15620 #. type: Plain text
15621 #: build/C/man7/tcp.7:1114
15622 msgid ""
15623 "Any errors defined for B<ip>(7)  or the generic socket layer may also be "
15624 "returned for TCP."
15625 msgstr ""
15626
15627 #. type: Plain text
15628 #: build/C/man7/tcp.7:1121
15629 msgid ""
15630 "Support for Explicit Congestion Notification, zero-copy B<sendfile>(2), "
15631 "reordering support and some SACK extensions (DSACK) were introduced in 2.4.  "
15632 "Support for forward acknowledgement (FACK), TIME_WAIT recycling, and "
15633 "per-connection keepalive socket options were introduced in 2.3."
15634 msgstr ""
15635
15636 #. type: Plain text
15637 #: build/C/man7/tcp.7:1123
15638 msgid "Not all errors are documented."
15639 msgstr ""
15640
15641 #.  Only a single Linux kernel version is described
15642 #.  Info for 2.2 was lost. Should be added again,
15643 #.  or put into a separate page.
15644 #.  .SH AUTHORS
15645 #.  This man page was originally written by Andi Kleen.
15646 #.  It was updated for 2.4 by Nivedita Singhvi with input from
15647 #.  Alexey Kuznetsov's Documentation/networking/ip-sysctl.txt
15648 #.  document.
15649 #. type: Plain text
15650 #: build/C/man7/tcp.7:1133
15651 msgid "IPv6 is not described."
15652 msgstr ""
15653
15654 #. type: Plain text
15655 #: build/C/man7/tcp.7:1145
15656 msgid ""
15657 "B<accept>(2), B<bind>(2), B<connect>(2), B<getsockopt>(2), B<listen>(2), "
15658 "B<recvmsg>(2), B<sendfile>(2), B<sendmsg>(2), B<socket>(2), B<ip>(7), "
15659 "B<socket>(7)"
15660 msgstr ""
15661
15662 #. type: Plain text
15663 #: build/C/man7/tcp.7:1147
15664 msgid "RFC\\ 793 for the TCP specification."
15665 msgstr ""
15666
15667 #. type: Plain text
15668 #: build/C/man7/tcp.7:1149
15669 msgid ""
15670 "RFC\\ 1122 for the TCP requirements and a description of the Nagle "
15671 "algorithm."
15672 msgstr ""
15673
15674 #. type: Plain text
15675 #: build/C/man7/tcp.7:1151
15676 msgid "RFC\\ 1323 for TCP timestamp and window scaling options."
15677 msgstr ""
15678
15679 #. type: Plain text
15680 #: build/C/man7/tcp.7:1153
15681 msgid "RFC\\ 1337 for a description of TIME_WAIT assassination hazards."
15682 msgstr ""
15683
15684 #. type: Plain text
15685 #: build/C/man7/tcp.7:1155
15686 msgid "RFC\\ 3168 for a description of Explicit Congestion Notification."
15687 msgstr ""
15688
15689 #. type: Plain text
15690 #: build/C/man7/tcp.7:1157
15691 msgid "RFC\\ 2581 for TCP congestion control algorithms."
15692 msgstr ""
15693
15694 #. type: Plain text
15695 #: build/C/man7/tcp.7:1159
15696 msgid "RFC\\ 2018 and RFC\\ 2883 for SACK and extensions to SACK."
15697 msgstr ""
15698
15699 #. type: TH
15700 #: build/C/man7/udp.7:8
15701 #, no-wrap
15702 msgid "UDP"
15703 msgstr ""
15704
15705 #. type: TH
15706 #: build/C/man7/udp.7:8
15707 #, no-wrap
15708 msgid "2010-06-13"
15709 msgstr ""
15710
15711 #. type: Plain text
15712 #: build/C/man7/udp.7:11
15713 msgid "udp - User Datagram Protocol for IPv4"
15714 msgstr ""
15715
15716 #. type: Plain text
15717 #: build/C/man7/udp.7:17
15718 msgid "B<udp_socket = socket(AF_INET, SOCK_DGRAM, 0);>"
15719 msgstr ""
15720
15721 #. type: Plain text
15722 #: build/C/man7/udp.7:23
15723 msgid ""
15724 "This is an implementation of the User Datagram Protocol described in RFC\\ "
15725 "768.  It implements a connectionless, unreliable datagram packet service.  "
15726 "Packets may be reordered or duplicated before they arrive.  UDP generates "
15727 "and checks checksums to catch transmission errors."
15728 msgstr ""
15729
15730 #. type: Plain text
15731 #: build/C/man7/udp.7:52
15732 msgid ""
15733 "When a UDP socket is created, its local and remote addresses are "
15734 "unspecified.  Datagrams can be sent immediately using B<sendto>(2)  or "
15735 "B<sendmsg>(2)  with a valid destination address as an argument.  When "
15736 "B<connect>(2)  is called on the socket, the default destination address is "
15737 "set and datagrams can now be sent using B<send>(2)  or B<write>(2)  without "
15738 "specifying a destination address.  It is still possible to send to other "
15739 "destinations by passing an address to B<sendto>(2)  or B<sendmsg>(2).  In "
15740 "order to receive packets, the socket can be bound to a local address first "
15741 "by using B<bind>(2).  Otherwise the socket layer will automatically assign a "
15742 "free local port out of the range defined by "
15743 "I</proc/sys/net/ipv4/ip_local_port_range> and bind the socket to "
15744 "B<INADDR_ANY>."
15745 msgstr ""
15746
15747 #. type: Plain text
15748 #: build/C/man7/udp.7:60
15749 msgid ""
15750 "All receive operations return only one packet.  When the packet is smaller "
15751 "than the passed buffer, only that much data is returned; when it is bigger, "
15752 "the packet is truncated and the B<MSG_TRUNC> flag is set.  B<MSG_WAITALL> is "
15753 "not supported."
15754 msgstr ""
15755
15756 #. type: Plain text
15757 #: build/C/man7/udp.7:69
15758 msgid ""
15759 "IP options may be sent or received using the socket options described in "
15760 "B<ip>(7).  They are only processed by the kernel when the appropriate "
15761 "I</proc> parameter is enabled (but still passed to the user even when it is "
15762 "turned off).  See B<ip>(7)."
15763 msgstr ""
15764
15765 #. type: Plain text
15766 #: build/C/man7/udp.7:74
15767 msgid ""
15768 "When the B<MSG_DONTROUTE> flag is set on sending, the destination address "
15769 "must refer to a local interface address and the packet is only sent to that "
15770 "interface."
15771 msgstr ""
15772
15773 #. type: Plain text
15774 #: build/C/man7/udp.7:92
15775 msgid ""
15776 "By default, Linux UDP does path MTU (Maximum Transmission Unit) discovery.  "
15777 "This means the kernel will keep track of the MTU to a specific target IP "
15778 "address and return B<EMSGSIZE> when a UDP packet write exceeds it.  When "
15779 "this happens, the application should decrease the packet size.  Path MTU "
15780 "discovery can be also turned off using the B<IP_MTU_DISCOVER> socket option "
15781 "or the I</proc/sys/net/ipv4/ip_no_pmtu_disc> file; see B<ip>(7)  for "
15782 "details.  When turned off, UDP will fragment outgoing UDP packets that "
15783 "exceed the interface MTU.  However, disabling it is not recommended for "
15784 "performance and reliability reasons."
15785 msgstr ""
15786
15787 #. type: Plain text
15788 #: build/C/man7/udp.7:97
15789 msgid "UDP uses the IPv4 I<sockaddr_in> address format described in B<ip>(7)."
15790 msgstr ""
15791
15792 #. type: Plain text
15793 #: build/C/man7/udp.7:108
15794 msgid ""
15795 "All fatal errors will be passed to the user as an error return even when the "
15796 "socket is not connected.  This includes asynchronous errors received from "
15797 "the network.  You may get an error for an earlier packet that was sent on "
15798 "the same socket.  This behavior differs from many other BSD socket "
15799 "implementations which don't pass any errors unless the socket is connected.  "
15800 "Linux's behavior is mandated by B<RFC\\ 1122>."
15801 msgstr ""
15802
15803 #. type: Plain text
15804 #: build/C/man7/udp.7:122
15805 msgid ""
15806 "For compatibility with legacy code, in Linux 2.0 and 2.2 it was possible to "
15807 "set the B<SO_BSDCOMPAT> B<SOL_SOCKET> option to receive remote errors only "
15808 "when the socket has been connected (except for B<EPROTO> and B<EMSGSIZE>).  "
15809 "Locally generated errors are always passed.  Support for this socket option "
15810 "was removed in later kernels; see B<socket>(7)  for further information."
15811 msgstr ""
15812
15813 #. type: Plain text
15814 #: build/C/man7/udp.7:131
15815 msgid ""
15816 "When the B<IP_RECVERR> option is enabled, all errors are stored in the "
15817 "socket error queue, and can be received by B<recvmsg>(2)  with the "
15818 "B<MSG_ERRQUEUE> flag set."
15819 msgstr ""
15820
15821 #. type: Plain text
15822 #: build/C/man7/udp.7:134
15823 msgid ""
15824 "System-wide UDP parameter settings can be accessed by files in the directory "
15825 "I</proc/sys/net/ipv4/>."
15826 msgstr ""
15827
15828 #. type: TP
15829 #: build/C/man7/udp.7:134
15830 #, no-wrap
15831 msgid "I<udp_mem> (since Linux 2.6.25)"
15832 msgstr ""
15833
15834 #. type: Plain text
15835 #: build/C/man7/udp.7:138
15836 msgid ""
15837 "This is a vector of three integers governing the number of pages allowed for "
15838 "queueing by all UDP sockets."
15839 msgstr ""
15840
15841 #. type: Plain text
15842 #: build/C/man7/udp.7:145
15843 msgid ""
15844 "Below this number of pages, UDP is not bothered about its memory appetite.  "
15845 "When the amount of memory allocated by UDP exceeds this number, UDP starts "
15846 "to moderate memory usage."
15847 msgstr ""
15848
15849 #. type: Plain text
15850 #: build/C/man7/udp.7:151
15851 msgid ""
15852 "This value was introduced to follow the format of I<tcp_mem> (see "
15853 "B<tcp>(7))."
15854 msgstr ""
15855
15856 #. type: Plain text
15857 #: build/C/man7/udp.7:154
15858 msgid "Number of pages allowed for queueing by all UDP sockets."
15859 msgstr ""
15860
15861 #. type: Plain text
15862 #: build/C/man7/udp.7:158
15863 msgid ""
15864 "Defaults values for these three items are calculated at boot time from the "
15865 "amount of available memory."
15866 msgstr ""
15867
15868 #. type: TP
15869 #: build/C/man7/udp.7:158
15870 #, no-wrap
15871 msgid "I<udp_rmem_min> (integer; default value: PAGE_SIZE; since Linux 2.6.25)"
15872 msgstr ""
15873
15874 #. type: Plain text
15875 #: build/C/man7/udp.7:165
15876 msgid ""
15877 "Minimal size, in bytes, of receive buffers used by UDP sockets in "
15878 "moderation.  Each UDP socket is able to use the size for receiving data, "
15879 "even if total pages of UDP sockets exceed I<udp_mem> pressure."
15880 msgstr ""
15881
15882 #. type: TP
15883 #: build/C/man7/udp.7:165
15884 #, no-wrap
15885 msgid "I<udp_wmem_min> (integer; default value: PAGE_SIZE; since Linux 2.6.25)"
15886 msgstr ""
15887
15888 #. type: Plain text
15889 #: build/C/man7/udp.7:172
15890 msgid ""
15891 "Minimal size, in bytes, of send buffer used by UDP sockets in moderation.  "
15892 "Each UDP socket is able to use the size for sending data, even if total "
15893 "pages of UDP sockets exceed I<udp_mem> pressure."
15894 msgstr ""
15895
15896 #. type: Plain text
15897 #: build/C/man7/udp.7:179
15898 msgid ""
15899 "To set or get a UDP socket option, call B<getsockopt>(2)  to read or "
15900 "B<setsockopt>(2)  to write the option with the option level argument set to "
15901 "B<IPPROTO_UDP>."
15902 msgstr ""
15903
15904 #. type: TP
15905 #: build/C/man7/udp.7:179
15906 #, no-wrap
15907 msgid "B<UDP_CORK> (since Linux 2.5.44)"
15908 msgstr ""
15909
15910 #.  FIXME document UDP_ENCAP (new in kernel 2.5.67)
15911 #.  From include/linux/udp.h:
15912 #.  /* UDP encapsulation types */
15913 #.  #define UDP_ENCAP_ESPINUDP_NON_IKE      1 /* draft-ietf-ipsec-nat-t-ike-00/01 */
15914 #.  #define UDP_ENCAP_ESPINUDP      2 /* draft-ietf-ipsec-udp-encaps-06 */
15915 #.  #define UDP_ENCAP_L2TPINUDP     3 /* rfc2661 */
15916 #. type: Plain text
15917 #: build/C/man7/udp.7:192
15918 msgid ""
15919 "If this option is enabled, then all data output on this socket is "
15920 "accumulated into a single datagram that is transmitted when the option is "
15921 "disabled.  This option should not be used in code intended to be portable."
15922 msgstr ""
15923
15924 #. type: Plain text
15925 #: build/C/man7/udp.7:196
15926 msgid "These ioctls can be accessed using B<ioctl>(2).  The correct syntax is:"
15927 msgstr ""
15928
15929 #. type: Plain text
15930 #: build/C/man7/udp.7:201
15931 #, no-wrap
15932 msgid ""
15933 "B<int>I< value>B<;>\n"
15934 "I<error>B< = ioctl(>I<udp_socket>B<, >I<ioctl_type>B<, &>I<value>B<);>\n"
15935 msgstr ""
15936
15937 #. type: TP
15938 #: build/C/man7/udp.7:203
15939 #, no-wrap
15940 msgid "B<FIONREAD> (B<SIOCINQ>)"
15941 msgstr ""
15942
15943 #.  See http://www.securiteam.com/unixfocus/5KP0I15IKO.html
15944 #.  "GNUnet DoS (UDP Socket Unreachable)", 14 May 2006
15945 #. type: Plain text
15946 #: build/C/man7/udp.7:221
15947 msgid ""
15948 "Gets a pointer to an integer as argument.  Returns the size of the next "
15949 "pending datagram in the integer in bytes, or 0 when no datagram is pending.  "
15950 "B<Warning:> Using B<FIONREAD>, it is impossible to distinguish the case "
15951 "where no datagram is pending from the case where the next pending datagram "
15952 "contains zero bytes of data.  It is safer to use B<select>(2), B<poll>(2), "
15953 "or B<epoll>(7)  to distinguish these cases."
15954 msgstr ""
15955
15956 #. type: TP
15957 #: build/C/man7/udp.7:221
15958 #, no-wrap
15959 msgid "B<TIOCOUTQ> (B<SIOCOUTQ>)"
15960 msgstr ""
15961
15962 #. type: Plain text
15963 #: build/C/man7/udp.7:225
15964 msgid ""
15965 "Returns the number of data bytes in the local send queue.  Only supported "
15966 "with Linux 2.4 and above."
15967 msgstr ""
15968
15969 #. type: Plain text
15970 #: build/C/man7/udp.7:231
15971 msgid ""
15972 "In addition all ioctls documented in B<ip>(7)  and B<socket>(7)  are "
15973 "supported."
15974 msgstr ""
15975
15976 #. type: Plain text
15977 #: build/C/man7/udp.7:237
15978 msgid ""
15979 "All errors documented for B<socket>(7)  or B<ip>(7)  may be returned by a "
15980 "send or receive on a UDP socket."
15981 msgstr ""
15982
15983 #. type: TP
15984 #: build/C/man7/udp.7:237 build/C/man7/unix.7:323
15985 #, no-wrap
15986 msgid "B<ECONNREFUSED>"
15987 msgstr ""
15988
15989 #. type: Plain text
15990 #: build/C/man7/udp.7:241
15991 msgid ""
15992 "No receiver was associated with the destination address.  This might be "
15993 "caused by a previous packet sent over the socket."
15994 msgstr ""
15995
15996 #.  .SH CREDITS
15997 #.  This man page was written by Andi Kleen.
15998 #. type: Plain text
15999 #: build/C/man7/udp.7:246
16000 msgid "B<IP_RECVERR> is a new feature in Linux 2.2."
16001 msgstr ""
16002
16003 #. type: Plain text
16004 #: build/C/man7/udp.7:251
16005 msgid "B<ip>(7), B<raw>(7), B<socket>(7), B<udplite>(7)"
16006 msgstr ""
16007
16008 #. type: Plain text
16009 #: build/C/man7/udp.7:253
16010 msgid "RFC\\ 768 for the User Datagram Protocol."
16011 msgstr ""
16012
16013 #. type: Plain text
16014 #: build/C/man7/udp.7:255
16015 msgid "RFC\\ 1122 for the host requirements."
16016 msgstr ""
16017
16018 #. type: Plain text
16019 #: build/C/man7/udp.7:257
16020 msgid "RFC\\ 1191 for a description of path MTU discovery."
16021 msgstr ""
16022
16023 #. type: TH
16024 #: build/C/man7/udplite.7:25
16025 #, no-wrap
16026 msgid "UDPLITE"
16027 msgstr ""
16028
16029 #. type: Plain text
16030 #: build/C/man7/udplite.7:28
16031 msgid "udplite - Lightweight User Datagram Protocol"
16032 msgstr ""
16033
16034 #. type: Plain text
16035 #: build/C/man7/udplite.7:36
16036 msgid "B<sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDPLITE);>"
16037 msgstr ""
16038
16039 #. type: Plain text
16040 #: build/C/man7/udplite.7:39
16041 msgid ""
16042 "This is an implementation of the Lightweight User Datagram Protocol "
16043 "(UDP-Lite), as described in RFC\\ 3828."
16044 msgstr ""
16045
16046 #. type: Plain text
16047 #: build/C/man7/udplite.7:45
16048 msgid ""
16049 "UDP-Lite is an extension of UDP (RFC\\ 768) to support variable-length "
16050 "checksums.  This has advantages for some types of multimedia transport that "
16051 "may be able to make use of slightly damaged datagrams, rather than having "
16052 "them discarded by lower-layer protocols."
16053 msgstr ""
16054
16055 #. type: Plain text
16056 #: build/C/man7/udplite.7:51
16057 msgid ""
16058 "The variable-length checksum coverage is set via a B<setsockopt>(2)  "
16059 "option.  If this option is not set, the only difference to UDP is in using a "
16060 "different IP protocol identifier (IANA number 136)."
16061 msgstr ""
16062
16063 #. type: Plain text
16064 #: build/C/man7/udplite.7:56
16065 msgid ""
16066 "The UDP-Lite implementation is a full extension of B<udp>(7), i.e., it "
16067 "shares the same API and API behaviour, and in addition offers two socket "
16068 "options to control the checksum coverage."
16069 msgstr ""
16070
16071 #. type: Plain text
16072 #: build/C/man7/udplite.7:65
16073 msgid ""
16074 "UDP-Litev4 uses the I<sockaddr_in> address format described in B<ip>(7).  "
16075 "UDP-Litev6 uses the I<sockaddr_in6> address format described in B<ipv6>(7)."
16076 msgstr ""
16077
16078 #. type: Plain text
16079 #: build/C/man7/udplite.7:78
16080 msgid ""
16081 "To set or get a UDP-Lite socket option, call B<getsockopt>(2)  to read or "
16082 "B<setsockopt>(2)  to write the option with the option level argument set to "
16083 "B<IPPROTO_UDPLITE>.  In addition, all B<IPPROTO_UDP> socket options are "
16084 "valid on a UDP-Lite socket.  See B<udp>(7)  for more information."
16085 msgstr ""
16086
16087 #. type: Plain text
16088 #: build/C/man7/udplite.7:80
16089 msgid "The following two options are specific to UDP-Lite."
16090 msgstr ""
16091
16092 #. type: TP
16093 #: build/C/man7/udplite.7:80
16094 #, no-wrap
16095 msgid "B<UDPLITE_SEND_CSCOV>"
16096 msgstr ""
16097
16098 #. type: Plain text
16099 #: build/C/man7/udplite.7:85
16100 msgid ""
16101 "This option sets the sender checksum coverage and takes an I<int> as "
16102 "argument, with a checksum coverage value in the range 0..2^16-1."
16103 msgstr ""
16104
16105 #. type: Plain text
16106 #: build/C/man7/udplite.7:89
16107 msgid ""
16108 "A value of 0 means that the entire datagram is always covered.  Values from "
16109 "1-7 are illegal (RFC\\ 3828, 3.1) and are rounded up to the minimum coverage "
16110 "of 8."
16111 msgstr ""
16112
16113 #. type: Plain text
16114 #: build/C/man7/udplite.7:95
16115 msgid ""
16116 "With regard to IPv6 jumbograms (RFC\\ 2675), the UDP-Litev6 checksum "
16117 "coverage is limited to the first 2^16-1 octets, as per RFC\\ 3828, 3.5.  "
16118 "Higher values are therefore silently truncated to 2^16-1.  If in doubt, the "
16119 "current coverage value can always be queried using B<getsockopt>(2)."
16120 msgstr ""
16121
16122 #. type: TP
16123 #: build/C/man7/udplite.7:95
16124 #, no-wrap
16125 msgid "B<UDPLITE_RECV_CSCOV>"
16126 msgstr ""
16127
16128 #. type: Plain text
16129 #: build/C/man7/udplite.7:106
16130 msgid ""
16131 "This is the receiver-side analogue and uses the same argument format and "
16132 "value range as B<UDPLITE_SEND_CSCOV>.  This option is not required to enable "
16133 "traffic with partial checksum coverage.  Its function is that of a traffic "
16134 "filter: when enabled, it instructs the kernel to drop all packets which have "
16135 "a coverage I<less> than the specified coverage value."
16136 msgstr ""
16137
16138 #.  SO_NO_CHECK exists and is supported by UDPv4, but is
16139 #.  commented out in socket(7), hence also commented out here
16140 #. .PP
16141 #. Since UDP-Lite mandates checksums, checksumming can not be disabled
16142 #. via the
16143 #. .B SO_NO_CHECK
16144 #. option from
16145 #. .BR socket (7).
16146 #. type: Plain text
16147 #: build/C/man7/udplite.7:119
16148 msgid ""
16149 "When the value of B<UDPLITE_RECV_CSCOV> exceeds the actual packet coverage, "
16150 "incoming packets are silently dropped, but may generate a warning message in "
16151 "the system log."
16152 msgstr ""
16153
16154 #. type: Plain text
16155 #: build/C/man7/udplite.7:124
16156 msgid ""
16157 "All errors documented for B<udp>(7)  may be returned.  UDP-Lite does not add "
16158 "further errors."
16159 msgstr ""
16160
16161 #.  FIXME . remove this section once glibc supports UDP-Lite
16162 #. type: Plain text
16163 #: build/C/man7/udplite.7:127
16164 msgid "Where glibc support is missing, the following definitions are needed:"
16165 msgstr ""
16166
16167 #.  The following two are defined in the kernel in linux/net/udplite.h
16168 #. type: Plain text
16169 #: build/C/man7/udplite.7:134
16170 #, no-wrap
16171 msgid ""
16172 "#define IPPROTO_UDPLITE     136\n"
16173 "#define UDPLITE_SEND_CSCOV  10\n"
16174 "#define UDPLITE_RECV_CSCOV  11\n"
16175 msgstr ""
16176
16177 #. type: Plain text
16178 #: build/C/man7/udplite.7:139
16179 msgid "I</proc/net/snmp> - basic UDP-Litev4 statistics counters."
16180 msgstr ""
16181
16182 #. type: Plain text
16183 #: build/C/man7/udplite.7:142
16184 msgid "I</proc/net/snmp6> - basic UDP-Litev6 statistics counters."
16185 msgstr ""
16186
16187 #. type: Plain text
16188 #: build/C/man7/udplite.7:144
16189 msgid "UDP-Litev4/v6 first appeared in Linux 2.6.20."
16190 msgstr ""
16191
16192 #. type: Plain text
16193 #: build/C/man7/udplite.7:149
16194 msgid "B<ip>(7), B<ipv6>(7), B<socket>(7), B<udp>(7)"
16195 msgstr ""
16196
16197 #. type: Plain text
16198 #: build/C/man7/udplite.7:151
16199 msgid "RFC\\ 3828 for the Lightweight User Datagram Protocol (UDP-Lite)"
16200 msgstr ""
16201
16202 #. type: Plain text
16203 #: build/C/man7/udplite.7:153
16204 msgid "I<Documentation/networking/udplite.txt>"
16205 msgstr ""
16206
16207 #. type: TH
16208 #: build/C/man7/unix.7:15
16209 #, no-wrap
16210 msgid "UNIX"
16211 msgstr ""
16212
16213 #. type: TH
16214 #: build/C/man7/unix.7:15
16215 #, no-wrap
16216 msgid "2102-04-16"
16217 msgstr ""
16218
16219 #. type: Plain text
16220 #: build/C/man7/unix.7:19
16221 msgid "unix, AF_UNIX, AF_LOCAL - 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: TH
16694 #: build/C/man7/x25.7:7
16695 #, no-wrap
16696 msgid "2008-08-08"
16697 msgstr ""
16698
16699 #. type: Plain text
16700 #: build/C/man7/x25.7:10
16701 msgid "x25, AF_X25 - ITU-T X.25 / ISO-8208 protocol interface."
16702 msgstr ""
16703
16704 #. type: Plain text
16705 #: build/C/man7/x25.7:14
16706 msgid "B<#include E<lt>linux/x25.hE<gt>>"
16707 msgstr ""
16708
16709 #. type: Plain text
16710 #: build/C/man7/x25.7:16
16711 msgid "B<x25_socket = socket(AF_X25, SOCK_SEQPACKET, 0);>"
16712 msgstr ""
16713
16714 #. type: Plain text
16715 #: build/C/man7/x25.7:25
16716 msgid ""
16717 "X25 sockets provide an interface to the X.25 packet layer protocol.  This "
16718 "allows applications to communicate over a public X.25 data network as "
16719 "standardized by International Telecommunication Union's recommendation X.25 "
16720 "(X.25 DTE-DCE mode).  X25 sockets can also be used for communication without "
16721 "an intermediate X.25 network (X.25 DTE-DTE mode) as described in ISO-8208."
16722 msgstr ""
16723
16724 #. type: Plain text
16725 #: build/C/man7/x25.7:42
16726 msgid ""
16727 "Message boundaries are preserved \\(em a B<read>(2)  from a socket will "
16728 "retrieve the same chunk of data as output with the corresponding B<write>(2)  "
16729 "to the peer socket.  When necessary, the kernel takes care of segmenting and "
16730 "reassembling long messages by means of the X.25 M-bit.  There is no "
16731 "hard-coded upper limit for the message size.  However, reassembling of a "
16732 "long message might fail if there is a temporary lack of system resources or "
16733 "when other constraints (such as socket memory or buffer size limits) become "
16734 "effective.  If that occurs, the X.25 connection will be reset."
16735 msgstr ""
16736
16737 #. type: SS
16738 #: build/C/man7/x25.7:42
16739 #, no-wrap
16740 msgid "Socket Addresses"
16741 msgstr ""
16742
16743 #. type: Plain text
16744 #: build/C/man7/x25.7:49
16745 msgid ""
16746 "The B<AF_X25> socket address family uses the I<struct sockaddr_x25> for "
16747 "representing network addresses as defined in ITU-T recommendation X.121."
16748 msgstr ""
16749
16750 #. type: Plain text
16751 #: build/C/man7/x25.7:56
16752 #, no-wrap
16753 msgid ""
16754 "struct sockaddr_x25 {\n"
16755 "    sa_family_t sx25_family;    /* must be AF_X25 */\n"
16756 "    x25_address sx25_addr;      /* X.121 Address */\n"
16757 "};\n"
16758 msgstr ""
16759
16760 #. type: Plain text
16761 #: build/C/man7/x25.7:67
16762 msgid ""
16763 "I<sx25_addr> contains a char array I<x25_addr[]> to be interpreted as a "
16764 "null-terminated string.  I<sx25_addr.x25_addr[]> consists of up to 15 (not "
16765 "counting the terminating 0) ASCII characters forming the X.121 address.  "
16766 "Only the decimal digit characters from \\(aq0\\(aq to \\(aq9\\(aq are "
16767 "allowed."
16768 msgstr ""
16769
16770 #. type: Plain text
16771 #: build/C/man7/x25.7:76
16772 msgid ""
16773 "The following X.25-specific socket options can be set by using "
16774 "B<setsockopt>(2)  and read with B<getsockopt>(2)  with the I<level> argument "
16775 "set to B<SOL_X25>."
16776 msgstr ""
16777
16778 #. type: TP
16779 #: build/C/man7/x25.7:76
16780 #, no-wrap
16781 msgid "B<X25_QBITINCL>"
16782 msgstr ""
16783
16784 #. type: Plain text
16785 #: build/C/man7/x25.7:95
16786 msgid ""
16787 "Controls whether the X.25 Q-bit (Qualified Data Bit) is accessible by the "
16788 "user.  It expects an integer argument.  If set to 0 (default), the Q-bit is "
16789 "never set for outgoing packets and the Q-bit of incoming packets is "
16790 "ignored.  If set to 1, an additional first byte is prepended to each message "
16791 "read from or written to the socket.  For data read from the socket, a 0 "
16792 "first byte indicates that the Q-bits of the corresponding incoming data "
16793 "packets were not set.  A first byte with value 1 indicates that the Q-bit of "
16794 "the corresponding incoming data packets was set.  If the first byte of the "
16795 "data written to the socket is 1 the Q-bit of the corresponding outgoing data "
16796 "packets will be set.  If the first byte is 0 the Q-bit will not be set."
16797 msgstr ""
16798
16799 #. type: Plain text
16800 #: build/C/man7/x25.7:97
16801 msgid "The AF_X25 protocol family is a new feature of Linux 2.2."
16802 msgstr ""
16803
16804 #. type: Plain text
16805 #: build/C/man7/x25.7:100
16806 msgid "Plenty, as the X.25 PLP implementation is B<CONFIG_EXPERIMENTAL>."
16807 msgstr ""
16808
16809 #. type: Plain text
16810 #: build/C/man7/x25.7:102
16811 msgid "This man page is incomplete."
16812 msgstr ""
16813
16814 #. type: Plain text
16815 #: build/C/man7/x25.7:109
16816 msgid ""
16817 "There is no dedicated application programmer's header file yet; you need to "
16818 "include the kernel header file I<E<lt>linux/x25.hE<gt>>.  "
16819 "B<CONFIG_EXPERIMENTAL> might also imply that future versions of the "
16820 "interface are not binary compatible."
16821 msgstr ""
16822
16823 #. type: Plain text
16824 #: build/C/man7/x25.7:113
16825 msgid ""
16826 "X.25 N-Reset events are not propagated to the user process yet.  Thus, if a "
16827 "reset occurred, data might be lost without notice."
16828 msgstr ""
16829
16830 #. type: Plain text
16831 #: build/C/man7/x25.7:116
16832 msgid "B<socket>(2), B<socket>(7)"
16833 msgstr ""
16834
16835 #. type: Plain text
16836 #: build/C/man7/x25.7:120
16837 msgid ""
16838 "Jonathan Simon Naylor: \\(lqThe Re-Analysis and Re-Implementation of "
16839 "X.25.\\(rq The URL is"
16840 msgstr ""
16841
16842 #. type: Plain text
16843 #: build/C/man7/x25.7:122
16844 msgid "I<ftp://ftp.pspt.fi/pub/ham/linux/ax25/x25doc.tgz>"
16845 msgstr ""