OSDN Git Service

(split) LDP: Update POT and ja.po to LDP v3.37.
[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-03-22 04:26+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:12 build/C/man5/nsswitch.conf.5:27 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:12 build/C/man8/nscd.8:23 build/C/man5/nscd.conf.5:20 build/C/man5/nsswitch.conf.5:27 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:13 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:28 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:28 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:19 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:30 build/C/man7/packet.7:20 build/C/man5/protocols.5:31 build/C/man7/raw.7:18 build/C/man3/rcmd.3:70 build/C/man5/resolv.conf.5:27 build/C/man3/resolver.3:83 build/C/man3/rexec.3:50 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:66 build/C/man7/packet.7:225 build/C/man7/tcp.7:996 build/C/man7/udp.7:192 build/C/man7/unix.7:277
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/man7/tcp.7:1113 build/C/man7/udp.7:241 build/C/man7/udplite.7:142 build/C/man7/unix.7:394 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:262 build/C/man7/packet.7:358 build/C/man7/raw.7:248 build/C/man3/rcmd.3:211 build/C/man3/rexec.3:123 build/C/man7/tcp.7:1120 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:366 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:276 build/C/man5/networks.5:73 build/C/man8/nscd.8:85 build/C/man5/nscd.conf.5:186 build/C/man7/packet.7:389 build/C/man5/protocols.5:80 build/C/man7/raw.7:265 build/C/man3/rcmd.3:216 build/C/man5/resolv.conf.5:260 build/C/man3/resolver.3:263 build/C/man3/rexec.3:132 build/C/man5/services.5:209 build/C/man3/setnetgrent.3:102 build/C/man2/shutdown.2:97 build/C/man7/tcp.7:1132 build/C/man7/udp.7:246 build/C/man7/udplite.7:144 build/C/man7/unix.7:438 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:368 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:281 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:286 build/C/man7/packet.7:404 build/C/man5/protocols.5:84 build/C/man7/raw.7:279 build/C/man3/rcmd.3:224 build/C/man5/resolv.conf.5:267 build/C/man3/resolver.3:269 build/C/man3/rexec.3:135 build/C/man5/services.5:221 build/C/man3/setnetgrent.3:106 build/C/man2/shutdown.2:101 build/C/man7/tcp.7:1158 build/C/man7/udp.7:257 build/C/man7/udplite.7:153 build/C/man7/unix.7:447 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:375 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:288 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:293 build/C/man7/packet.7:411 build/C/man5/protocols.5:91 build/C/man7/raw.7:286 build/C/man3/rcmd.3:231 build/C/man5/resolv.conf.5:274 build/C/man3/resolver.3:276 build/C/man3/rexec.3:142 build/C/man5/services.5:228 build/C/man3/setnetgrent.3:113 build/C/man2/shutdown.2:108 build/C/man7/tcp.7:1165 build/C/man7/udp.7:264 build/C/man7/udplite.7:160 build/C/man7/unix.7:454 build/C/man7/x25.7:130
586 msgid ""
587 "This page is part of release 3.37 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:15 build/C/man7/packet.7:10 build/C/man7/raw.7:12 build/C/man3/rcmd.3:45 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:205 build/C/man3/resolver.3:261 build/C/man3/rexec.3:116 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:247 build/C/man8/nscd.8:60 build/C/man5/nsswitch.conf.5:277 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:400
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:430
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:1095 build/C/man7/udp.7:231 build/C/man7/udplite.7:119 build/C/man7/unix.7:315
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:316
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:332
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:341
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:346
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:354
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:361
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:1102 build/C/man7/unix.7:365
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:387
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 build/C/man3/rexec.3:39 build/C/man7/tcp.7:16
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/man3/getaddrinfo_a.3:27
1836 #, no-wrap
1837 msgid "2010-09-27"
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:64 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 "    size_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/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:188 build/C/man3/resolver.3:234 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:354
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:246 build/C/man5/protocols.5:76 build/C/man5/resolv.conf.5:257 build/C/man3/resolver.3:256 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: Plain text
2835 #: build/C/man3/getaddrinfo_a.3:31
2836 msgid ""
2837 "getaddrinfo_a, gai_suspend, gai_error, gai_cancel - asynchronous network "
2838 "address and service translation"
2839 msgstr ""
2840
2841 #. type: Plain text
2842 #: build/C/man3/getaddrinfo_a.3:35
2843 #, no-wrap
2844 msgid ""
2845 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
2846 "B<#include E<lt>netdb.hE<gt>>\n"
2847 msgstr ""
2848
2849 #. type: Plain text
2850 #: build/C/man3/getaddrinfo_a.3:38
2851 #, no-wrap
2852 msgid ""
2853 "B<int getaddrinfo_a(int >I<mode>B<, struct gaicb *>I<list[]>B<,>\n"
2854 "B<                int >I<nitems>B<, struct sigevent *>I<sevp>B<);>\n"
2855 msgstr ""
2856
2857 #. type: Plain text
2858 #: build/C/man3/getaddrinfo_a.3:41
2859 #, no-wrap
2860 msgid ""
2861 "B<int gai_suspend(struct gaicb *>I<list[]>B<, int >I<nitems>B<,>\n"
2862 "B<                struct timespec *>I<timeout>B<);>\n"
2863 msgstr ""
2864
2865 #. type: Plain text
2866 #: build/C/man3/getaddrinfo_a.3:43
2867 #, no-wrap
2868 msgid "B<int gai_error(struct gaicb *>I<req>B<);>\n"
2869 msgstr ""
2870
2871 #. type: Plain text
2872 #: build/C/man3/getaddrinfo_a.3:45
2873 #, no-wrap
2874 msgid "B<int gai_cancel(struct gaicb *>I<req>B<);>\n"
2875 msgstr ""
2876
2877 #. type: Plain text
2878 #: build/C/man3/getaddrinfo_a.3:47
2879 #, no-wrap
2880 msgid "Link with I<-lanl>.\n"
2881 msgstr ""
2882
2883 #. type: Plain text
2884 #: build/C/man3/getaddrinfo_a.3:55
2885 msgid ""
2886 "The B<getaddrinfo_a>()  function performs the same task as "
2887 "B<getaddrinfo>(3), but allows multiple name look-ups to be performed "
2888 "asynchronously, with optional notification on completion of look-up "
2889 "operations."
2890 msgstr ""
2891
2892 #. type: Plain text
2893 #: build/C/man3/getaddrinfo_a.3:59
2894 msgid "The I<mode> argument has one of the following values:"
2895 msgstr ""
2896
2897 #. type: TP
2898 #: build/C/man3/getaddrinfo_a.3:59
2899 #, no-wrap
2900 msgid "B<GAI_WAIT>"
2901 msgstr ""
2902
2903 #. type: Plain text
2904 #: build/C/man3/getaddrinfo_a.3:63
2905 msgid ""
2906 "Perform the look-ups synchronously.  The call blocks until the look-ups have "
2907 "completed."
2908 msgstr ""
2909
2910 #. type: TP
2911 #: build/C/man3/getaddrinfo_a.3:63
2912 #, no-wrap
2913 msgid "B<GAI_NOWAIT>"
2914 msgstr ""
2915
2916 #. type: Plain text
2917 #: build/C/man3/getaddrinfo_a.3:71
2918 msgid ""
2919 "Perform the look-ups asynchronously.  The call returns immediately, and the "
2920 "requests are resolved in the background.  See the discussion of the I<sevp> "
2921 "argument below."
2922 msgstr ""
2923
2924 #. type: Plain text
2925 #: build/C/man3/getaddrinfo_a.3:86
2926 msgid ""
2927 "The array I<list> specifies the look-up requests to process.  The I<nitems> "
2928 "argument specifies the number of elements in I<list>.  The requested look-up "
2929 "operations are started in parallel.  NULL elements in I<list> are ignored.  "
2930 "Each request is described by a I<gaicb> structure, defined as follows:"
2931 msgstr ""
2932
2933 #. type: Plain text
2934 #: build/C/man3/getaddrinfo_a.3:95
2935 #, no-wrap
2936 msgid ""
2937 "struct gaicb {\n"
2938 "    const char            *ar_name;\n"
2939 "    const char            *ar_service;\n"
2940 "    const struct addrinfo *ar_request;\n"
2941 "    struct addrinfo       *ar_result;\n"
2942 "};\n"
2943 msgstr ""
2944
2945 #. type: Plain text
2946 #: build/C/man3/getaddrinfo_a.3:126
2947 msgid ""
2948 "The elements of this structure correspond to the arguments of "
2949 "B<getaddrinfo>(3).  Thus, I<ar_name> corresponds to the I<node> argument and "
2950 "I<ar_service> to the I<service> argument, identifying an Internet host and a "
2951 "service.  The I<ar_request> element corresponds to the I<hints> argument, "
2952 "specifying the criteria for selecting the returned socket address "
2953 "structures.  Finally, I<ar_result> corresponds to the I<res> argument; you "
2954 "do not need to initialize this element, it will be automatically set when "
2955 "the request is resolved.  The I<addrinfo> structure referenced by the last "
2956 "two elements is described in B<getaddrinfo>(3)."
2957 msgstr ""
2958
2959 #. type: Plain text
2960 #: build/C/man3/getaddrinfo_a.3:142
2961 msgid ""
2962 "When I<mode> is specified as B<GAI_NOWAIT>, notifications about resolved "
2963 "requests can be obtained by employing the I<sigevent> structure pointed to "
2964 "by the I<sevp> argument.  For the definition and general details of this "
2965 "structure, see B<sigevent>(7).  The I<sevp-E<gt>sigev_notify> field can have "
2966 "the following values:"
2967 msgstr ""
2968
2969 #. type: TP
2970 #: build/C/man3/getaddrinfo_a.3:142
2971 #, no-wrap
2972 msgid "B<SIGEV_NONE>"
2973 msgstr ""
2974
2975 #. type: Plain text
2976 #: build/C/man3/getaddrinfo_a.3:145
2977 msgid "Don't provide any notification."
2978 msgstr ""
2979
2980 #. type: TP
2981 #: build/C/man3/getaddrinfo_a.3:145
2982 #, no-wrap
2983 msgid "B<SIGEV_SIGNAL>"
2984 msgstr ""
2985
2986 #.  si_pid and si_uid are also set, to the values of the calling process,
2987 #.  which doesn't provide useful information, so we'll skip mentioning it.
2988 #. type: Plain text
2989 #: build/C/man3/getaddrinfo_a.3:161
2990 msgid ""
2991 "When a look-up completes, generate the signal I<sigev_signo> for the "
2992 "process.  See B<sigevent>(7)  for general details.  The I<si_code> field of "
2993 "the I<siginfo_t> structure will be set to B<SI_ASYNCNL>."
2994 msgstr ""
2995
2996 #. type: TP
2997 #: build/C/man3/getaddrinfo_a.3:161
2998 #, no-wrap
2999 msgid "B<SIGEV_THREAD>"
3000 msgstr ""
3001
3002 #. type: Plain text
3003 #: build/C/man3/getaddrinfo_a.3:169
3004 msgid ""
3005 "When a look-up completes, invoke I<sigev_notify_function> as if it were the "
3006 "start function of a new thread.  See B<sigevent>(7)  for details."
3007 msgstr ""
3008
3009 #. type: Plain text
3010 #: build/C/man3/getaddrinfo_a.3:178
3011 msgid ""
3012 "For B<SIGEV_SIGNAL> and B<SIGEV_THREAD>, it may be useful to point "
3013 "I<sevp-E<gt>sigev_value.sival_ptr> to I<list>."
3014 msgstr ""
3015
3016 #. type: Plain text
3017 #: build/C/man3/getaddrinfo_a.3:189
3018 msgid ""
3019 "The B<gai_suspend>()  function suspends execution of the calling thread, "
3020 "waiting for the completion of one or more requests in the array I<list>.  "
3021 "The I<nitems> argument specifies the size of the array I<list>.  The call "
3022 "blocks until one of the following occurs:"
3023 msgstr ""
3024
3025 #. type: Plain text
3026 #: build/C/man3/getaddrinfo_a.3:193
3027 msgid "One or more of the operations in I<list> completes."
3028 msgstr ""
3029
3030 #. type: Plain text
3031 #: build/C/man3/getaddrinfo_a.3:195
3032 msgid "The call is interrupted by a signal that is caught."
3033 msgstr ""
3034
3035 #. type: Plain text
3036 #: build/C/man3/getaddrinfo_a.3:208
3037 msgid ""
3038 "The time interval specified in I<timeout> elapses.  This argument specifies "
3039 "a timeout in seconds plus nanoseconds (see B<nanosleep>(2)  for details of "
3040 "the I<timespec> structure).  If I<timeout> is NULL, then the call blocks "
3041 "indefinitely (until one of the events above occurs)."
3042 msgstr ""
3043
3044 #. type: Plain text
3045 #: build/C/man3/getaddrinfo_a.3:213
3046 msgid ""
3047 "No explicit indication of which request was completed is given; you must "
3048 "determine which request(s) have completed by iterating with B<gai_error>()  "
3049 "over the list of requests."
3050 msgstr ""
3051
3052 #. type: Plain text
3053 #: build/C/man3/getaddrinfo_a.3:223
3054 msgid ""
3055 "The B<gai_error>()  function returns the status of the request I<req>: "
3056 "either B<EAI_INPROGRESS> if the request was not completed yet, 0 if it was "
3057 "handled successfully, or an error code if the request could not be resolved."
3058 msgstr ""
3059
3060 #. type: Plain text
3061 #: build/C/man3/getaddrinfo_a.3:240
3062 msgid ""
3063 "The B<gai_cancel>()  function cancels the request I<req>.  If the request "
3064 "has been canceled successfully, the error status of the request will be set "
3065 "to B<EAI_CANCELLED> and normal asynchronous notification will be performed.  "
3066 "The request cannot be canceled if it is currently being processed; in that "
3067 "case, it will be handled as if B<gai_cancel>()  has never been called.  If "
3068 "I<req> is NULL, an attempt is made to cancel all outstanding requests that "
3069 "the process has made."
3070 msgstr ""
3071
3072 #. type: Plain text
3073 #: build/C/man3/getaddrinfo_a.3:245
3074 msgid ""
3075 "The B<getaddrinfo_a>()  function returns 0 if all of the requests have been "
3076 "enqueued successfully, or one of the following nonzero error codes:"
3077 msgstr ""
3078
3079 #. type: Plain text
3080 #: build/C/man3/getaddrinfo_a.3:250
3081 msgid ""
3082 "The resources necessary to enqueue the look-up requests were not available.  "
3083 "The application may check the error status of each request to determine "
3084 "which ones failed."
3085 msgstr ""
3086
3087 #. type: Plain text
3088 #: build/C/man3/getaddrinfo_a.3:257
3089 msgid "I<mode> is invalid."
3090 msgstr ""
3091
3092 #. type: Plain text
3093 #: build/C/man3/getaddrinfo_a.3:262
3094 msgid ""
3095 "The B<gai_suspend>()  function returns 0 if at least one of the listed "
3096 "requests has been completed.  Otherwise, it returns one of the following "
3097 "nonzero error codes:"
3098 msgstr ""
3099
3100 #. type: Plain text
3101 #: build/C/man3/getaddrinfo_a.3:265
3102 msgid "The given timeout expired before any of the requests could be completed."
3103 msgstr ""
3104
3105 #. type: TP
3106 #: build/C/man3/getaddrinfo_a.3:265 build/C/man3/getaddrinfo_a.3:295
3107 #, no-wrap
3108 msgid "B<EAI_ALLDONE>"
3109 msgstr ""
3110
3111 #. type: Plain text
3112 #: build/C/man3/getaddrinfo_a.3:268
3113 msgid "There were no actual requests given to the function."
3114 msgstr ""
3115
3116 #. type: TP
3117 #: build/C/man3/getaddrinfo_a.3:268
3118 #, no-wrap
3119 msgid "B<EAI_INTR>"
3120 msgstr ""
3121
3122 #. type: Plain text
3123 #: build/C/man3/getaddrinfo_a.3:273
3124 msgid ""
3125 "A signal has interrupted the function.  Note that this interruption might "
3126 "have been caused by signal notification of some completed look-up request."
3127 msgstr ""
3128
3129 #. type: Plain text
3130 #: build/C/man3/getaddrinfo_a.3:285
3131 msgid ""
3132 "The B<gai_error>()  function can return B<EAI_INPROGRESS> for an unfinished "
3133 "look-up request, 0 for a successfully completed look-up (as described "
3134 "above), one of the error codes that could be returned by B<getaddrinfo>(3), "
3135 "or the error code B<EAI_CANCELLED> if the request has been canceled "
3136 "explicitly before it could be finished."
3137 msgstr ""
3138
3139 #. type: Plain text
3140 #: build/C/man3/getaddrinfo_a.3:289
3141 msgid "The B<gai_cancel>()  function can return one of these values:"
3142 msgstr ""
3143
3144 #. type: TP
3145 #: build/C/man3/getaddrinfo_a.3:289
3146 #, no-wrap
3147 msgid "B<EAI_CANCELLED>"
3148 msgstr ""
3149
3150 #. type: Plain text
3151 #: build/C/man3/getaddrinfo_a.3:292
3152 msgid "The request has been canceled successfully."
3153 msgstr ""
3154
3155 #. type: TP
3156 #: build/C/man3/getaddrinfo_a.3:292
3157 #, no-wrap
3158 msgid "B<EAI_NOTCANCELLED>"
3159 msgstr ""
3160
3161 #. type: Plain text
3162 #: build/C/man3/getaddrinfo_a.3:295
3163 msgid "The request has not been canceled."
3164 msgstr ""
3165
3166 #. type: Plain text
3167 #: build/C/man3/getaddrinfo_a.3:298
3168 msgid "The request has already completed."
3169 msgstr ""
3170
3171 #. type: Plain text
3172 #: build/C/man3/getaddrinfo_a.3:303 build/C/man3/getnameinfo.3:194
3173 msgid ""
3174 "The B<gai_strerror>(3)  function translates these error codes to a human "
3175 "readable string, suitable for error reporting."
3176 msgstr ""
3177
3178 #. type: Plain text
3179 #: build/C/man3/getaddrinfo_a.3:306
3180 msgid ""
3181 "These functions are GNU extensions; they first appeared in glibc in version "
3182 "2.2.3."
3183 msgstr ""
3184
3185 #. type: Plain text
3186 #: build/C/man3/getaddrinfo_a.3:312
3187 msgid ""
3188 "The interface of B<getaddrinfo_a>()  was modeled after the B<lio_listio>(3)  "
3189 "interface."
3190 msgstr ""
3191
3192 #. type: Plain text
3193 #: build/C/man3/getaddrinfo_a.3:316
3194 msgid ""
3195 "Two examples are provided: a simple example that resolves several requests "
3196 "in parallel synchronously, and a complex example showing some of the "
3197 "asynchronous capabilities."
3198 msgstr ""
3199
3200 #. type: SS
3201 #: build/C/man3/getaddrinfo_a.3:316
3202 #, no-wrap
3203 msgid "Synchronous Example"
3204 msgstr ""
3205
3206 #. type: Plain text
3207 #: build/C/man3/getaddrinfo_a.3:321
3208 msgid ""
3209 "The program below simply resolves several hostnames in parallel, giving a "
3210 "speed-up compared to resolving the hostnames sequentially using "
3211 "B<getaddrinfo>(3).  The program might be used like this:"
3212 msgstr ""
3213
3214 #. type: Plain text
3215 #: build/C/man3/getaddrinfo_a.3:328
3216 #, no-wrap
3217 msgid ""
3218 "$ B<./a.out ftp.us.kernel.org enoent.linuxfoundation.org gnu.cz>\n"
3219 "ftp.us.kernel.org: 128.30.2.36\n"
3220 "enoent.linuxfoundation.org: Name or service not known\n"
3221 "gnu.cz: 87.236.197.13\n"
3222 msgstr ""
3223
3224 #. type: Plain text
3225 #: build/C/man3/getaddrinfo_a.3:332
3226 msgid "Here is the program source code"
3227 msgstr ""
3228
3229 #. type: Plain text
3230 #: build/C/man3/getaddrinfo_a.3:339 build/C/man3/getaddrinfo_a.3:430
3231 #, no-wrap
3232 msgid ""
3233 "#define _GNU_SOURCE\n"
3234 "#include E<lt>netdb.hE<gt>\n"
3235 "#include E<lt>stdio.hE<gt>\n"
3236 "#include E<lt>stdlib.hE<gt>\n"
3237 "#include E<lt>string.hE<gt>\n"
3238 msgstr ""
3239
3240 #. type: Plain text
3241 #: build/C/man3/getaddrinfo_a.3:347
3242 #, no-wrap
3243 msgid ""
3244 "int\n"
3245 "main(int argc, char *argv[])\n"
3246 "{\n"
3247 "    int i, ret;\n"
3248 "    struct gaicb *reqs[argc - 1];\n"
3249 "    char host[NI_MAXHOST];\n"
3250 "    struct addrinfo *res;\n"
3251 msgstr ""
3252
3253 #. type: Plain text
3254 #: build/C/man3/getaddrinfo_a.3:352
3255 #, no-wrap
3256 msgid ""
3257 "    if (argc E<lt> 2) {\n"
3258 "        fprintf(stderr, \"Usage: %s HOST...\\en\", argv[0]);\n"
3259 "        exit(EXIT_FAILURE);\n"
3260 "    }\n"
3261 msgstr ""
3262
3263 #. type: Plain text
3264 #: build/C/man3/getaddrinfo_a.3:362
3265 #, no-wrap
3266 msgid ""
3267 "    for (i = 0; i E<lt> argc - 1; i++) {\n"
3268 "        reqs[i] = malloc(sizeof(*reqs[0]));\n"
3269 "        if (reqs[i] == NULL) {\n"
3270 "            perror(\"malloc\");\n"
3271 "            exit(EXIT_FAILURE);\n"
3272 "        }\n"
3273 "        memset(reqs[i], 0, sizeof(*reqs[0]));\n"
3274 "        reqs[i]-E<gt>ar_name = argv[i + 1];\n"
3275 "    }\n"
3276 msgstr ""
3277
3278 #. type: Plain text
3279 #: build/C/man3/getaddrinfo_a.3:369
3280 #, no-wrap
3281 msgid ""
3282 "    ret = getaddrinfo_a(GAI_WAIT, reqs, argc - 1, NULL);\n"
3283 "    if (ret != 0) {\n"
3284 "        fprintf(stderr, \"getaddrinfo_a() failed: %s\\en\",\n"
3285 "                gai_strerror(ret));\n"
3286 "        exit(EXIT_FAILURE);\n"
3287 "    }\n"
3288 msgstr ""
3289
3290 #. type: Plain text
3291 #: build/C/man3/getaddrinfo_a.3:375
3292 #, no-wrap
3293 msgid ""
3294 "    for (i = 0; i E<lt> argc - 1; i++) {\n"
3295 "        printf(\"%s: \", reqs[i]-E<gt>ar_name);\n"
3296 "        ret = gai_error(reqs[i]);\n"
3297 "        if (ret == 0) {\n"
3298 "            res = reqs[i]-E<gt>ar_result;\n"
3299 msgstr ""
3300
3301 #. type: Plain text
3302 #: build/C/man3/getaddrinfo_a.3:385
3303 #, no-wrap
3304 msgid ""
3305 "            ret = getnameinfo(res-E<gt>ai_addr, res-E<gt>ai_addrlen,\n"
3306 "                    host, sizeof(host),\n"
3307 "                    NULL, 0, NI_NUMERICHOST);\n"
3308 "            if (ret != 0) {\n"
3309 "                fprintf(stderr, \"getnameinfo() failed: %s\\en\",\n"
3310 "                        gai_strerror(ret));\n"
3311 "                exit(EXIT_FAILURE);\n"
3312 "            }\n"
3313 "            puts(host);\n"
3314 msgstr ""
3315
3316 #. type: Plain text
3317 #: build/C/man3/getaddrinfo_a.3:392
3318 #, no-wrap
3319 msgid ""
3320 "        } else {\n"
3321 "            puts(gai_strerror(ret));\n"
3322 "        }\n"
3323 "    }\n"
3324 "    exit(EXIT_SUCCESS);\n"
3325 "}\n"
3326 msgstr ""
3327
3328 #. type: SS
3329 #: build/C/man3/getaddrinfo_a.3:394
3330 #, no-wrap
3331 msgid "Asynchronous Example"
3332 msgstr ""
3333
3334 #. type: Plain text
3335 #: build/C/man3/getaddrinfo_a.3:399
3336 msgid ""
3337 "This example shows a simple interactive B<getaddrinfo_a>()  front-end.  The "
3338 "notification facility is not demonstrated."
3339 msgstr ""
3340
3341 #. type: Plain text
3342 #: build/C/man3/getaddrinfo_a.3:401
3343 msgid "An example session might look like like this:"
3344 msgstr ""
3345
3346 #. type: Plain text
3347 #: build/C/man3/getaddrinfo_a.3:418
3348 #, no-wrap
3349 msgid ""
3350 "$ B<./a.out>\n"
3351 "E<gt> a ftp.us.kernel.org enoent.linuxfoundation.org gnu.cz\n"
3352 "E<gt> c 2\n"
3353 "[2] gnu.cz: Request not canceled\n"
3354 "E<gt> w 0 1\n"
3355 "[00] ftp.us.kernel.org: Finished\n"
3356 "E<gt> l\n"
3357 "[00] ftp.us.kernel.org: 216.165.129.139\n"
3358 "[01] enoent.linuxfoundation.org: Processing request in progress\n"
3359 "[02] gnu.cz: 87.236.197.13\n"
3360 "E<gt> l\n"
3361 "[00] ftp.us.kernel.org: 216.165.129.139\n"
3362 "[01] enoent.linuxfoundation.org: Name or service not known\n"
3363 "[02] gnu.cz: 87.236.197.13\n"
3364 msgstr ""
3365
3366 #. type: Plain text
3367 #: build/C/man3/getaddrinfo_a.3:422
3368 msgid "The program source goes as follows:"
3369 msgstr ""
3370
3371 #. type: Plain text
3372 #: build/C/man3/getaddrinfo_a.3:433
3373 #, no-wrap
3374 msgid ""
3375 "static struct gaicb **reqs = NULL;\n"
3376 "static int nreqs = 0;\n"
3377 msgstr ""
3378
3379 #. type: Plain text
3380 #: build/C/man3/getaddrinfo_a.3:438
3381 #, no-wrap
3382 msgid ""
3383 "static char *\n"
3384 "getcmd(void)\n"
3385 "{\n"
3386 "    static char buf[256];\n"
3387 msgstr ""
3388
3389 #. type: Plain text
3390 #: build/C/man3/getaddrinfo_a.3:442
3391 #, no-wrap
3392 msgid ""
3393 "    fputs(\"E<gt> \", stdout); fflush(stdout);\n"
3394 "    if (fgets(buf, sizeof(buf), stdin) == NULL)\n"
3395 "        return NULL;\n"
3396 msgstr ""
3397
3398 #. type: Plain text
3399 #: build/C/man3/getaddrinfo_a.3:445
3400 #, no-wrap
3401 msgid ""
3402 "    if (buf[strlen(buf) - 1] == \\(aq\\en\\(aq)\n"
3403 "        buf[strlen(buf) - 1] = 0;\n"
3404 msgstr ""
3405
3406 #. type: Plain text
3407 #: build/C/man3/getaddrinfo_a.3:448
3408 #, no-wrap
3409 msgid ""
3410 "    return buf;\n"
3411 "}\n"
3412 msgstr ""
3413
3414 #. type: Plain text
3415 #: build/C/man3/getaddrinfo_a.3:456
3416 #, no-wrap
3417 msgid ""
3418 "/* Add requests for specified hostnames */\n"
3419 "static void\n"
3420 "add_requests(void)\n"
3421 "{\n"
3422 "    int nreqs_base = nreqs;\n"
3423 "    char *host;\n"
3424 "    int ret;\n"
3425 msgstr ""
3426
3427 #. type: Plain text
3428 #: build/C/man3/getaddrinfo_a.3:460
3429 #, no-wrap
3430 msgid ""
3431 "    while ((host = strtok(NULL, \" \"))) {\n"
3432 "        nreqs++;\n"
3433 "        reqs = realloc(reqs, nreqs * sizeof(reqs[0]));\n"
3434 msgstr ""
3435
3436 #. type: Plain text
3437 #: build/C/man3/getaddrinfo_a.3:464
3438 #, no-wrap
3439 msgid ""
3440 "        reqs[nreqs - 1] = calloc(1, sizeof(*reqs[0]));\n"
3441 "        reqs[nreqs - 1]-E<gt>ar_name = strdup(host);\n"
3442 "    }\n"
3443 msgstr ""
3444
3445 #. type: Plain text
3446 #: build/C/man3/getaddrinfo_a.3:466
3447 #, no-wrap
3448 msgid "    /* Queue nreqs_base..nreqs requests. */\n"
3449 msgstr ""
3450
3451 #. type: Plain text
3452 #: build/C/man3/getaddrinfo_a.3:475
3453 #, no-wrap
3454 msgid ""
3455 "    ret = getaddrinfo_a(GAI_NOWAIT, &reqs[nreqs_base],\n"
3456 "                        nreqs - nreqs_base, NULL);\n"
3457 "    if (ret) {\n"
3458 "        fprintf(stderr, \"getaddrinfo_a() failed: %s\\en\",\n"
3459 "                gai_strerror(ret));\n"
3460 "        exit(EXIT_FAILURE);\n"
3461 "    }\n"
3462 "}\n"
3463 msgstr ""
3464
3465 #. type: Plain text
3466 #: build/C/man3/getaddrinfo_a.3:484
3467 #, no-wrap
3468 msgid ""
3469 "/* Wait until at least one of specified requests completes */\n"
3470 "static void\n"
3471 "wait_requests(void)\n"
3472 "{\n"
3473 "    char *id;\n"
3474 "    int i, ret, n;\n"
3475 "    struct gaicb const **wait_reqs = calloc(nreqs, sizeof(*wait_reqs));\n"
3476 "                /* NULL elements are ignored by gai_suspend(). */\n"
3477 msgstr ""
3478
3479 #. type: Plain text
3480 #: build/C/man3/getaddrinfo_a.3:487 build/C/man3/getaddrinfo_a.3:524
3481 #, no-wrap
3482 msgid ""
3483 "    while ((id = strtok(NULL, \" \")) != NULL) {\n"
3484 "        n = atoi(id);\n"
3485 msgstr ""
3486
3487 #. type: Plain text
3488 #: build/C/man3/getaddrinfo_a.3:492 build/C/man3/getaddrinfo_a.3:529
3489 #, no-wrap
3490 msgid ""
3491 "        if (n E<gt>= nreqs) {\n"
3492 "            printf(\"Bad request number: %s\\en\", id);\n"
3493 "            return;\n"
3494 "        }\n"
3495 msgstr ""
3496
3497 #. type: Plain text
3498 #: build/C/man3/getaddrinfo_a.3:495
3499 #, no-wrap
3500 msgid ""
3501 "        wait_reqs[n] = reqs[n];\n"
3502 "    }\n"
3503 msgstr ""
3504
3505 #. type: Plain text
3506 #: build/C/man3/getaddrinfo_a.3:501
3507 #, no-wrap
3508 msgid ""
3509 "    ret = gai_suspend(wait_reqs, nreqs, NULL);\n"
3510 "    if (ret) {\n"
3511 "        printf(\"gai_suspend(): %s\\en\", gai_strerror(ret));\n"
3512 "        return;\n"
3513 "    }\n"
3514 msgstr ""
3515
3516 #. type: Plain text
3517 #: build/C/man3/getaddrinfo_a.3:505
3518 #, no-wrap
3519 msgid ""
3520 "    for (i = 0; i E<lt> nreqs; i++) {\n"
3521 "        if (wait_reqs[i] == NULL)\n"
3522 "            continue;\n"
3523 msgstr ""
3524
3525 #. type: Plain text
3526 #: build/C/man3/getaddrinfo_a.3:509
3527 #, no-wrap
3528 msgid ""
3529 "        ret = gai_error(reqs[i]);\n"
3530 "        if (ret == EAI_INPROGRESS)\n"
3531 "            continue;\n"
3532 msgstr ""
3533
3534 #. type: Plain text
3535 #: build/C/man3/getaddrinfo_a.3:514
3536 #, no-wrap
3537 msgid ""
3538 "        printf(\"[%02d] %s: %s\\en\", i, reqs[i]-E<gt>ar_name,\n"
3539 "               ret == 0 ? \"Finished\" : gai_strerror(ret));\n"
3540 "    }\n"
3541 "}\n"
3542 msgstr ""
3543
3544 #. type: Plain text
3545 #: build/C/man3/getaddrinfo_a.3:521
3546 #, no-wrap
3547 msgid ""
3548 "/* Cancel specified requests */\n"
3549 "static void\n"
3550 "cancel_requests(void)\n"
3551 "{\n"
3552 "    char *id;\n"
3553 "    int ret, n;\n"
3554 msgstr ""
3555
3556 #. type: Plain text
3557 #: build/C/man3/getaddrinfo_a.3:535
3558 #, no-wrap
3559 msgid ""
3560 "        ret = gai_cancel(reqs[n]);\n"
3561 "        printf(\"[%s] %s: %s\\en\", id, reqs[atoi(id)]-E<gt>ar_name,\n"
3562 "               gai_strerror(ret));\n"
3563 "    }\n"
3564 "}\n"
3565 msgstr ""
3566
3567 #. type: Plain text
3568 #: build/C/man3/getaddrinfo_a.3:543
3569 #, no-wrap
3570 msgid ""
3571 "/* List all requests */\n"
3572 "static void\n"
3573 "list_requests(void)\n"
3574 "{\n"
3575 "    int i, ret;\n"
3576 "    char host[NI_MAXHOST];\n"
3577 "    struct addrinfo *res;\n"
3578 msgstr ""
3579
3580 #. type: Plain text
3581 #: build/C/man3/getaddrinfo_a.3:547
3582 #, no-wrap
3583 msgid ""
3584 "    for (i = 0; i E<lt> nreqs; i++) {\n"
3585 "        printf(\"[%02d] %s: \", i, reqs[i]-E<gt>ar_name);\n"
3586 "        ret = gai_error(reqs[i]);\n"
3587 msgstr ""
3588
3589 #. type: Plain text
3590 #: build/C/man3/getaddrinfo_a.3:550
3591 #, no-wrap
3592 msgid ""
3593 "        if (!ret) {\n"
3594 "            res = reqs[i]-E<gt>ar_result;\n"
3595 msgstr ""
3596
3597 #. type: Plain text
3598 #: build/C/man3/getaddrinfo_a.3:565
3599 #, no-wrap
3600 msgid ""
3601 "            ret = getnameinfo(res-E<gt>ai_addr, res-E<gt>ai_addrlen,\n"
3602 "                              host, sizeof(host),\n"
3603 "                              NULL, 0, NI_NUMERICHOST);\n"
3604 "            if (ret) {\n"
3605 "                fprintf(stderr, \"getnameinfo() failed: %s\\en\",\n"
3606 "                        gai_strerror(ret));\n"
3607 "                exit(EXIT_FAILURE);\n"
3608 "            }\n"
3609 "            puts(host);\n"
3610 "        } else {\n"
3611 "            puts(gai_strerror(ret));\n"
3612 "        }\n"
3613 "    }\n"
3614 "}\n"
3615 msgstr ""
3616
3617 #. type: Plain text
3618 #: build/C/man3/getaddrinfo_a.3:571
3619 #, no-wrap
3620 msgid ""
3621 "int\n"
3622 "main(int argc, char *argv[])\n"
3623 "{\n"
3624 "    char *cmdline;\n"
3625 "    char *cmd;\n"
3626 msgstr ""
3627
3628 #. type: Plain text
3629 #: build/C/man3/getaddrinfo_a.3:574
3630 #, no-wrap
3631 msgid ""
3632 "    while ((cmdline = getcmd()) != NULL) {\n"
3633 "        cmd = strtok(cmdline, \" \");\n"
3634 msgstr ""
3635
3636 #. type: Plain text
3637 #: build/C/man3/getaddrinfo_a.3:599
3638 #, no-wrap
3639 msgid ""
3640 "        if (cmd == NULL) {\n"
3641 "            list_requests();\n"
3642 "        } else {\n"
3643 "            switch (cmd[0]) {\n"
3644 "            case \\(aqa\\(aq:\n"
3645 "                add_requests();\n"
3646 "                break;\n"
3647 "            case \\(aqw\\(aq:\n"
3648 "                wait_requests();\n"
3649 "                break;\n"
3650 "            case \\(aqc\\(aq:\n"
3651 "                cancel_requests();\n"
3652 "                break;\n"
3653 "            case \\(aql\\(aq:\n"
3654 "                list_requests();\n"
3655 "                break;\n"
3656 "            default:\n"
3657 "                fprintf(stderr, \"Bad command: %c\\en\", cmd[0]);\n"
3658 "                break;\n"
3659 "            }\n"
3660 "        }\n"
3661 "    }\n"
3662 "    exit(EXIT_SUCCESS);\n"
3663 "}\n"
3664 msgstr ""
3665
3666 #. type: Plain text
3667 #: build/C/man3/getaddrinfo_a.3:607
3668 msgid ""
3669 "B<getaddrinfo>(3), B<inet>(3), B<lio_listio>(3), B<hostname>(7), B<ip>(7), "
3670 "B<sigevent>(7)"
3671 msgstr ""
3672
3673 #. type: TH
3674 #: build/C/man1/getent.1:23
3675 #, no-wrap
3676 msgid "GETENT"
3677 msgstr ""
3678
3679 #. type: TH
3680 #: build/C/man1/getent.1:23
3681 #, no-wrap
3682 msgid "2011-10-31"
3683 msgstr ""
3684
3685 #. type: TH
3686 #: build/C/man1/getent.1:23
3687 #, no-wrap
3688 msgid "User Commands"
3689 msgstr ""
3690
3691 #. type: Plain text
3692 #: build/C/man1/getent.1:26
3693 msgid "getent - get entries from Name Service Switch libraries"
3694 msgstr ""
3695
3696 #. type: Plain text
3697 #: build/C/man1/getent.1:28
3698 msgid "B<getent >I<database>B< [ >I<key>B< ... ]>"
3699 msgstr ""
3700
3701 #. type: Plain text
3702 #: build/C/man1/getent.1:43
3703 msgid ""
3704 "The I<getent> command displays entries from databases supported by the Name "
3705 "Service Switch libraries, which are configured in I</etc/nsswitch.conf>.  If "
3706 "one or more I<key> arguments are provided, then only the entries that match "
3707 "the supplied keys will be displayed.  Otherwise, if no I<key> is provided, "
3708 "all entries will be displayed (unless the database does not support "
3709 "enumeration)."
3710 msgstr ""
3711
3712 #. type: Plain text
3713 #: build/C/man1/getent.1:47
3714 msgid ""
3715 "The I<database> may be any of those supported by the GNU C Library, listed "
3716 "below:"
3717 msgstr ""
3718
3719 #. type: TP
3720 #: build/C/man1/getent.1:48
3721 #, no-wrap
3722 msgid "B<ahosts>"
3723 msgstr ""
3724
3725 #. type: Plain text
3726 #: build/C/man1/getent.1:69
3727 msgid ""
3728 "When no I<key> is provided, use B<sethostent>(3), B<gethostent>(3), and "
3729 "B<endhostent>(3)  to enumerate the hosts database.  This is identical to "
3730 "using B<hosts>.  When one or more I<key> arguments are provided, pass each "
3731 "I<key> in succession to B<getaddrinfo>(3)  with the address family "
3732 "B<AF_UNSPEC>, enumerating each socket address structure returned."
3733 msgstr ""
3734
3735 #. type: TP
3736 #: build/C/man1/getent.1:69
3737 #, no-wrap
3738 msgid "B<ahostsv4>"
3739 msgstr ""
3740
3741 #. type: Plain text
3742 #: build/C/man1/getent.1:75
3743 msgid "Same as B<ahosts>, but use the address family B<AF_INET>."
3744 msgstr ""
3745
3746 #. type: TP
3747 #: build/C/man1/getent.1:75
3748 #, no-wrap
3749 msgid "B<ahostsv6>"
3750 msgstr ""
3751
3752 #. type: Plain text
3753 #: build/C/man1/getent.1:86
3754 msgid ""
3755 "Same as B<ahosts>, but use the address family B<AF_INET6>.  The call to "
3756 "B<getaddrinfo>(3)  in this case includes the B<AI_V4MAPPED> flag."
3757 msgstr ""
3758
3759 #. type: TP
3760 #: build/C/man1/getent.1:86 build/C/man5/nsswitch.conf.5:51
3761 #, no-wrap
3762 msgid "B<aliases>"
3763 msgstr ""
3764
3765 #. type: Plain text
3766 #: build/C/man1/getent.1:103
3767 msgid ""
3768 "When no I<key> is provided, use B<setaliasent>(3), B<getaliasent>(3), and "
3769 "B<endaliasent>(3)  to enumerate the aliases database.  When one or more "
3770 "I<key> arguments are provided, pass each I<key> in succession to "
3771 "B<getaliasbyname>(3)  and display the result."
3772 msgstr ""
3773
3774 #. type: TP
3775 #: build/C/man1/getent.1:103 build/C/man5/nsswitch.conf.5:56
3776 #, no-wrap
3777 msgid "B<ethers>"
3778 msgstr ""
3779
3780 #. type: Plain text
3781 #: build/C/man1/getent.1:119
3782 msgid ""
3783 "When one or more I<key> arguments are provided, pass each I<key> in "
3784 "succession to B<ether_aton>(3)  and B<ether_hostton>(3)  until a result is "
3785 "obtained, and display the result.  Enumeration is not supported on "
3786 "B<ethers>, so a I<key> must be provided."
3787 msgstr ""
3788
3789 #. type: TP
3790 #: build/C/man1/getent.1:119 build/C/man5/nsswitch.conf.5:59
3791 #, no-wrap
3792 msgid "B<group>"
3793 msgstr ""
3794
3795 #. type: Plain text
3796 #: build/C/man1/getent.1:140
3797 msgid ""
3798 "When no I<key> is provided, use B<setgrent>(3), B<getgrent>(3), and "
3799 "B<endgrent>(3)  to enumerate the group database.  When one or more I<key> "
3800 "arguments are provided, pass each numeric I<key> to B<getgrgid>(3)  and each "
3801 "nonnumeric I<key> to B<getgrnam>(3)  and display the result."
3802 msgstr ""
3803
3804 #. type: TP
3805 #: build/C/man1/getent.1:140
3806 #, no-wrap
3807 msgid "B<gshadow>"
3808 msgstr ""
3809
3810 #. type: Plain text
3811 #: build/C/man1/getent.1:157
3812 msgid ""
3813 "When no I<key> is provided, use B<setsgent>(3), B<getsgent>(3), and "
3814 "B<endsgent>(3)  to enumerate the gshadow database.  When one or more I<key> "
3815 "arguments are provided, pass each I<key> in succession to B<getsgnam>(3)  "
3816 "and display the result."
3817 msgstr ""
3818
3819 #. type: TP
3820 #: build/C/man1/getent.1:157 build/C/man5/nsswitch.conf.5:64
3821 #, no-wrap
3822 msgid "B<hosts>"
3823 msgstr ""
3824
3825 #. type: Plain text
3826 #: build/C/man1/getent.1:180
3827 msgid ""
3828 "When no I<key> is provided, use B<sethostent>(3), B<gethostent>(3), and "
3829 "B<endhostent>(3)  to enumerate the hosts database.  When one or more I<key> "
3830 "arguments are provided, pass each I<key> to B<gethostbyaddr>(3)  or "
3831 "B<gethostbyname2>(3), depending on whether a call to B<inet_pton>(3)  "
3832 "indicates that the I<key> is an IPv6 or IPv4 address or not, and display the "
3833 "result."
3834 msgstr ""
3835
3836 #. type: TP
3837 #: build/C/man1/getent.1:180
3838 #, no-wrap
3839 msgid "B<initgroups>"
3840 msgstr ""
3841
3842 #. type: Plain text
3843 #: build/C/man1/getent.1:194
3844 msgid ""
3845 "When one or more I<key> arguments are provided, pass each I<key> in "
3846 "succession to B<getgrouplist>(3)  and display the result.  Enumeration is "
3847 "not supported on B<initgroups>, so a I<key> must be provided."
3848 msgstr ""
3849
3850 #. type: TP
3851 #: build/C/man1/getent.1:194 build/C/man5/nsswitch.conf.5:69
3852 #, no-wrap
3853 msgid "B<netgroup>"
3854 msgstr ""
3855
3856 #. type: Plain text
3857 #: build/C/man1/getent.1:220
3858 msgid ""
3859 "When one I<key> is provided, pass the I<key> to B<setnetgrent>(3)  and, "
3860 "using B<getnetgrent>(3)  display the resulting string triple (I<hostname>, "
3861 "I<username>, I<domainname>).  Alternatively, three I<keys> may be provided, "
3862 "which are interpreted as the I<hostname>, I<username> and I<domainname> to "
3863 "match to a netgroup name via B<innetgr>(3).  Enumeration is not supported on "
3864 "B<initgroups>, so either one or three I<keys> must be provided."
3865 msgstr ""
3866
3867 #. type: TP
3868 #: build/C/man1/getent.1:220 build/C/man5/nsswitch.conf.5:73
3869 #, no-wrap
3870 msgid "B<networks>"
3871 msgstr ""
3872
3873 #. type: Plain text
3874 #: build/C/man1/getent.1:241
3875 msgid ""
3876 "When no I<key> is provided, use B<setnetent>(3), B<getnetent>(3), and "
3877 "B<endnetent>(3)  to enumerate the networks database.  When one or more "
3878 "I<key> arguments are provided, pass each numeric I<key> to "
3879 "B<getnetbyaddr>(3)  and each nonnumeric I<key> to B<getnetbyname>(3)  and "
3880 "display the result."
3881 msgstr ""
3882
3883 #. type: TP
3884 #: build/C/man1/getent.1:241 build/C/man5/nsswitch.conf.5:78
3885 #, no-wrap
3886 msgid "B<passwd>"
3887 msgstr ""
3888
3889 #. type: Plain text
3890 #: build/C/man1/getent.1:262
3891 msgid ""
3892 "When no I<key> is provided, use B<setpwent>(3), B<getpwent>(3), and "
3893 "B<endpwent>(3)  to enumerate the passwd database.  When one or more I<key> "
3894 "arguments are provided, pass each numeric I<key> to B<getpwuid>(3)  and each "
3895 "nonnumeric I<key> to B<getpwnam>(3)  and display the result."
3896 msgstr ""
3897
3898 #. type: TP
3899 #: build/C/man1/getent.1:262 build/C/man5/nsswitch.conf.5:83
3900 #, no-wrap
3901 msgid "B<protocols>"
3902 msgstr ""
3903
3904 #. type: Plain text
3905 #: build/C/man1/getent.1:283
3906 msgid ""
3907 "When no I<key> is provided, use B<setprotoent>(3), B<getprotoent>(3), and "
3908 "B<endprotoent>(3)  to enumerate the protocols database.  When one or more "
3909 "I<key> arguments are provided, pass each numeric I<key> to "
3910 "B<getprotobynumber>(3)  and each nonnumeric I<key> to B<getprotobyname>(3)  "
3911 "and display the result."
3912 msgstr ""
3913
3914 #. type: TP
3915 #: build/C/man1/getent.1:283 build/C/man5/nsswitch.conf.5:91
3916 #, no-wrap
3917 msgid "B<rpc>"
3918 msgstr ""
3919
3920 #. type: Plain text
3921 #: build/C/man1/getent.1:304
3922 msgid ""
3923 "When no I<key> is provided, use B<setrpcent>(3), B<getrpcent>(3), and "
3924 "B<endrpcent>(3)  to enumerate the rpc database.  When one or more I<key> "
3925 "arguments are provided, pass each numeric I<key> to B<getrpcbynumber>(3)  "
3926 "and each nonnumeric I<key> to B<getrpcbyname>(3)  and display the result."
3927 msgstr ""
3928
3929 #. type: TP
3930 #: build/C/man1/getent.1:304 build/C/man5/nsswitch.conf.5:96
3931 #, no-wrap
3932 msgid "B<services>"
3933 msgstr ""
3934
3935 #. type: Plain text
3936 #: build/C/man1/getent.1:325
3937 msgid ""
3938 "When no I<key> is provided, use B<setservent>(3), B<getservent>(3), and "
3939 "B<endservent>(3)  to enumerate the services database.  When one or more "
3940 "I<key> arguments are provided, pass each numeric I<key> to "
3941 "B<getservbynumber>(3)  and each nonnumeric I<key> to B<getservbyname>(3)  "
3942 "and display the result."
3943 msgstr ""
3944
3945 #. type: TP
3946 #: build/C/man1/getent.1:325 build/C/man5/nsswitch.conf.5:101
3947 #, no-wrap
3948 msgid "B<shadow>"
3949 msgstr ""
3950
3951 #. type: Plain text
3952 #: build/C/man1/getent.1:342
3953 msgid ""
3954 "When no I<key> is provided, use B<setspent>(3), B<getspent>(3), and "
3955 "B<endspent>(3)  to enumerate the shadow database.  When one or more I<key> "
3956 "arguments are provided, pass each I<key> in succession to B<getspnam>(3)  "
3957 "and display the result."
3958 msgstr ""
3959
3960 #. type: SH
3961 #: build/C/man1/getent.1:343
3962 #, no-wrap
3963 msgid "EXIT STATUS"
3964 msgstr ""
3965
3966 #. type: Plain text
3967 #: build/C/man1/getent.1:346
3968 msgid "One of the following exit values can be returned by B<getent>:"
3969 msgstr ""
3970
3971 #. type: TP
3972 #: build/C/man1/getent.1:347
3973 #, no-wrap
3974 msgid "B<0>"
3975 msgstr ""
3976
3977 #. type: Plain text
3978 #: build/C/man1/getent.1:350
3979 msgid "Command completed successfully."
3980 msgstr ""
3981
3982 #. type: TP
3983 #: build/C/man1/getent.1:350
3984 #, no-wrap
3985 msgid "B<1>"
3986 msgstr ""
3987
3988 #. type: Plain text
3989 #: build/C/man1/getent.1:355
3990 msgid "Missing arguments, or I<database> unknown."
3991 msgstr ""
3992
3993 #. type: TP
3994 #: build/C/man1/getent.1:355
3995 #, no-wrap
3996 msgid "B<2>"
3997 msgstr ""
3998
3999 #. type: Plain text
4000 #: build/C/man1/getent.1:361
4001 msgid "One or more supplied I<key> could not be found in the I<database>."
4002 msgstr ""
4003
4004 #. type: TP
4005 #: build/C/man1/getent.1:361
4006 #, no-wrap
4007 msgid "B<3>"
4008 msgstr ""
4009
4010 #. type: Plain text
4011 #: build/C/man1/getent.1:365
4012 msgid "Enumeration not supported on this I<database>."
4013 msgstr ""
4014
4015 #. type: Plain text
4016 #: build/C/man1/getent.1:368
4017 msgid "B<nsswitch.conf>(5)"
4018 msgstr ""
4019
4020 #. type: TH
4021 #: build/C/man3/gethostbyname.3:36
4022 #, no-wrap
4023 msgid "GETHOSTBYNAME"
4024 msgstr ""
4025
4026 #. type: TH
4027 #: build/C/man3/gethostbyname.3:36
4028 #, no-wrap
4029 msgid "2010-10-04"
4030 msgstr ""
4031
4032 #. type: Plain text
4033 #: build/C/man3/gethostbyname.3:44
4034 msgid ""
4035 "gethostbyname, gethostbyaddr, sethostent, gethostent, endhostent, h_errno, "
4036 "herror, hstrerror, gethostbyaddr_r, gethostbyname2, gethostbyname2_r, "
4037 "gethostbyname_r, gethostent_r - get network host entry"
4038 msgstr ""
4039
4040 #. type: Plain text
4041 #: build/C/man3/gethostbyname.3:48
4042 #, no-wrap
4043 msgid ""
4044 "B<#include E<lt>netdb.hE<gt>>\n"
4045 "B<extern int h_errno;>\n"
4046 msgstr ""
4047
4048 #. type: Plain text
4049 #: build/C/man3/gethostbyname.3:50
4050 #, no-wrap
4051 msgid "B<struct hostent *gethostbyname(const char *>I<name>B<);>\n"
4052 msgstr ""
4053
4054 #. type: Plain text
4055 #: build/C/man3/gethostbyname.3:54
4056 #, no-wrap
4057 msgid ""
4058 "B<#include E<lt>sys/socket.hE<gt>>       /* for AF_INET */\n"
4059 "B<struct hostent *gethostbyaddr(const void *>I<addr>B<,>\n"
4060 "B<                              socklen_t >I<len>B<, int >I<type>B<);>\n"
4061 msgstr ""
4062
4063 #. type: Plain text
4064 #: build/C/man3/gethostbyname.3:56
4065 #, no-wrap
4066 msgid "B<void sethostent(int >I<stayopen>B<);>\n"
4067 msgstr ""
4068
4069 #. type: Plain text
4070 #: build/C/man3/gethostbyname.3:58
4071 #, no-wrap
4072 msgid "B<void endhostent(void);>\n"
4073 msgstr ""
4074
4075 #. type: Plain text
4076 #: build/C/man3/gethostbyname.3:60
4077 #, no-wrap
4078 msgid "B<void herror(const char *>I<s>B<);>\n"
4079 msgstr ""
4080
4081 #. type: Plain text
4082 #: build/C/man3/gethostbyname.3:62
4083 #, no-wrap
4084 msgid "B<const char *hstrerror(int >I<err>B<);>\n"
4085 msgstr ""
4086
4087 #. type: Plain text
4088 #: build/C/man3/gethostbyname.3:64
4089 #, no-wrap
4090 msgid "/* System V/POSIX extension */\n"
4091 msgstr ""
4092
4093 #. type: Plain text
4094 #: build/C/man3/gethostbyname.3:66
4095 #, no-wrap
4096 msgid "B<struct hostent *gethostent(void);>\n"
4097 msgstr ""
4098
4099 #. type: Plain text
4100 #: build/C/man3/gethostbyname.3:70
4101 #, no-wrap
4102 msgid "B<struct hostent *gethostbyname2(const char *>I<name>B<, int >I<af>B<);>\n"
4103 msgstr ""
4104
4105 #. type: Plain text
4106 #: build/C/man3/gethostbyname.3:74
4107 #, no-wrap
4108 msgid ""
4109 "B<int gethostent_r(>\n"
4110 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4111 ">I<buflen>B<,>\n"
4112 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4113 msgstr ""
4114
4115 #. type: Plain text
4116 #: build/C/man3/gethostbyname.3:78
4117 #, no-wrap
4118 msgid ""
4119 "B<int gethostbyaddr_r(const void *>I<addr>B<, socklen_t >I<len>B<, int "
4120 ">I<type>B<,>\n"
4121 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4122 ">I<buflen>B<,>\n"
4123 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4124 msgstr ""
4125
4126 #. type: Plain text
4127 #: build/C/man3/gethostbyname.3:82
4128 #, no-wrap
4129 msgid ""
4130 "B<int gethostbyname_r(const char *>I<name>B<,>\n"
4131 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4132 ">I<buflen>B<,>\n"
4133 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4134 msgstr ""
4135
4136 #. type: Plain text
4137 #: build/C/man3/gethostbyname.3:86
4138 #, no-wrap
4139 msgid ""
4140 "B<int gethostbyname2_r(const char *>I<name>B<, int >I<af,>\n"
4141 "B<        struct hostent *>I<ret>B<, char *>I<buf>B<, size_t "
4142 ">I<buflen>B<,>\n"
4143 "B<        struct hostent **>I<result>B<, int *>I<h_errnop>B<);>\n"
4144 msgstr ""
4145
4146 #. type: Plain text
4147 #: build/C/man3/gethostbyname.3:100
4148 msgid ""
4149 "B<gethostbyname2>(), B<gethostent_r>(), B<gethostbyaddr_r>(), "
4150 "B<gethostbyname_r>(), B<gethostbyname2_r>():"
4151 msgstr ""
4152
4153 #. type: Plain text
4154 #: 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
4155 msgid "_BSD_SOURCE || _SVID_SOURCE"
4156 msgstr ""
4157
4158 #. type: Plain text
4159 #: build/C/man3/gethostbyname.3:106
4160 msgid "B<herror>(), B<hstrerror>():"
4161 msgstr ""
4162
4163 #. type: TP
4164 #: build/C/man3/gethostbyname.3:107
4165 #, no-wrap
4166 msgid "Since glibc 2.8:"
4167 msgstr ""
4168
4169 #. type: Plain text
4170 #: build/C/man3/gethostbyname.3:110
4171 msgid "_BSD_SOURCE || _SVID_SOURCE || _GNU_SOURCE"
4172 msgstr ""
4173
4174 #. type: TP
4175 #: build/C/man3/gethostbyname.3:110
4176 #, no-wrap
4177 msgid "Before glibc 2.8:"
4178 msgstr ""
4179
4180 #. type: Plain text
4181 #: build/C/man3/gethostbyname.3:113
4182 msgid "none"
4183 msgstr ""
4184
4185 #. type: Plain text
4186 #: build/C/man3/gethostbyname.3:127
4187 msgid ""
4188 "The B<gethostbyname*>()  and B<gethostbyaddr*>()  functions are obsolete.  "
4189 "Applications should use B<getaddrinfo>(3)  and B<getnameinfo>(3)  instead."
4190 msgstr ""
4191
4192 #. type: Plain text
4193 #: build/C/man3/gethostbyname.3:168
4194 msgid ""
4195 "The B<gethostbyname>()  function returns a structure of type I<hostent> for "
4196 "the given host I<name>.  Here I<name> is either a hostname, or an IPv4 "
4197 "address in standard dot notation (as for B<inet_addr>(3)), or an IPv6 "
4198 "address in colon (and possibly dot) notation.  (See RFC\\ 1884 for the "
4199 "description of IPv6 addresses.)  If I<name> is an IPv4 or IPv6 address, no "
4200 "lookup is performed and B<gethostbyname>()  simply copies I<name> into the "
4201 "I<h_name> field and its I<struct in_addr> equivalent into the "
4202 "I<h_addr_list[0]> field of the returned I<hostent> structure.  If I<name> "
4203 "doesn't end in a dot and the environment variable B<HOSTALIASES> is set, the "
4204 "alias file pointed to by B<HOSTALIASES> will first be searched for I<name> "
4205 "(see B<hostname>(7)  for the file format).  The current domain and its "
4206 "parents are searched unless I<name> ends in a dot."
4207 msgstr ""
4208
4209 #. type: Plain text
4210 #: build/C/man3/gethostbyname.3:184
4211 msgid ""
4212 "The B<gethostbyaddr>()  function returns a structure of type I<hostent> for "
4213 "the given host address I<addr> of length I<len> and address type I<type>.  "
4214 "Valid address types are B<AF_INET> and B<AF_INET6>.  The host address "
4215 "argument is a pointer to a struct of a type depending on the address type, "
4216 "for example a I<struct in_addr *> (probably obtained via a call to "
4217 "B<inet_addr>(3))  for address type B<AF_INET>."
4218 msgstr ""
4219
4220 #. type: Plain text
4221 #: build/C/man3/gethostbyname.3:191
4222 msgid ""
4223 "The B<sethostent>()  function specifies, if I<stayopen> is true (1), that a "
4224 "connected TCP socket should be used for the name server queries and that the "
4225 "connection should remain open during successive queries.  Otherwise, name "
4226 "server queries will use UDP datagrams."
4227 msgstr ""
4228
4229 #. type: Plain text
4230 #: build/C/man3/gethostbyname.3:196
4231 msgid ""
4232 "The B<endhostent>()  function ends the use of a TCP connection for name "
4233 "server queries."
4234 msgstr ""
4235
4236 #. type: Plain text
4237 #: build/C/man3/gethostbyname.3:201
4238 msgid ""
4239 "The (obsolete)  B<herror>()  function prints the error message associated "
4240 "with the current value of I<h_errno> on I<stderr>."
4241 msgstr ""
4242
4243 #. type: Plain text
4244 #: build/C/man3/gethostbyname.3:206
4245 msgid ""
4246 "The (obsolete)  B<hstrerror>()  function takes an error number (typically "
4247 "I<h_errno>) and returns the corresponding message string."
4248 msgstr ""
4249
4250 #.  (See
4251 #.  .BR resolv+ (8)).
4252 #. type: Plain text
4253 #: build/C/man3/gethostbyname.3:223
4254 msgid ""
4255 "The domain name queries carried out by B<gethostbyname>()  and "
4256 "B<gethostbyaddr>()  use a combination of any or all of the name server "
4257 "B<named>(8), a broken out line from I</etc/hosts>, and the Network "
4258 "Information Service (NIS or YP), depending upon the contents of the I<order> "
4259 "line in I</etc/host.conf>.  The default action is to query B<named>(8), "
4260 "followed by I</etc/hosts>."
4261 msgstr ""
4262
4263 #. type: Plain text
4264 #: build/C/man3/gethostbyname.3:225
4265 msgid "The I<hostent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
4266 msgstr ""
4267
4268 #. type: Plain text
4269 #: build/C/man3/gethostbyname.3:237
4270 #, no-wrap
4271 msgid ""
4272 "struct hostent {\n"
4273 "    char  *h_name;            /* official name of host */\n"
4274 "    char **h_aliases;         /* alias list */\n"
4275 "    int    h_addrtype;        /* host address type */\n"
4276 "    int    h_length;          /* length of address */\n"
4277 "    char **h_addr_list;       /* list of addresses */\n"
4278 "}\n"
4279 "#define h_addr h_addr_list[0] /* for backward compatibility */\n"
4280 msgstr ""
4281
4282 #. type: Plain text
4283 #: build/C/man3/gethostbyname.3:241
4284 msgid "The members of the I<hostent> structure are:"
4285 msgstr ""
4286
4287 #. type: TP
4288 #: build/C/man3/gethostbyname.3:241 build/C/man3/getipnodebyname.3:208
4289 #, no-wrap
4290 msgid "I<h_name>"
4291 msgstr ""
4292
4293 #. type: Plain text
4294 #: build/C/man3/gethostbyname.3:244
4295 msgid "The official name of the host."
4296 msgstr ""
4297
4298 #. type: TP
4299 #: build/C/man3/gethostbyname.3:244 build/C/man3/getipnodebyname.3:211
4300 #, no-wrap
4301 msgid "I<h_aliases>"
4302 msgstr ""
4303
4304 #. type: Plain text
4305 #: build/C/man3/gethostbyname.3:247
4306 msgid "An array of alternative names for the host, terminated by a NULL pointer."
4307 msgstr ""
4308
4309 #. type: TP
4310 #: build/C/man3/gethostbyname.3:247 build/C/man3/getipnodebyname.3:215
4311 #, no-wrap
4312 msgid "I<h_addrtype>"
4313 msgstr ""
4314
4315 #. type: Plain text
4316 #: build/C/man3/gethostbyname.3:254
4317 msgid "The type of address; always B<AF_INET> or B<AF_INET6> at present."
4318 msgstr ""
4319
4320 #. type: TP
4321 #: build/C/man3/gethostbyname.3:254 build/C/man3/getipnodebyname.3:237
4322 #, no-wrap
4323 msgid "I<h_length>"
4324 msgstr ""
4325
4326 #. type: Plain text
4327 #: build/C/man3/gethostbyname.3:257
4328 msgid "The length of the address in bytes."
4329 msgstr ""
4330
4331 #. type: TP
4332 #: build/C/man3/gethostbyname.3:257 build/C/man3/getipnodebyname.3:251
4333 #, no-wrap
4334 msgid "I<h_addr_list>"
4335 msgstr ""
4336
4337 #. type: Plain text
4338 #: build/C/man3/gethostbyname.3:261
4339 msgid ""
4340 "An array of pointers to network addresses for the host (in network byte "
4341 "order), terminated by a NULL pointer."
4342 msgstr ""
4343
4344 #. type: TP
4345 #: build/C/man3/gethostbyname.3:261
4346 #, no-wrap
4347 msgid "I<h_addr>"
4348 msgstr ""
4349
4350 #. type: Plain text
4351 #: build/C/man3/gethostbyname.3:264
4352 msgid "The first address in I<h_addr_list> for backward compatibility."
4353 msgstr ""
4354
4355 #. type: Plain text
4356 #: build/C/man3/gethostbyname.3:276
4357 msgid ""
4358 "The B<gethostbyname>()  and B<gethostbyaddr>()  functions return the "
4359 "I<hostent> structure or a NULL pointer if an error occurs.  On error, the "
4360 "I<h_errno> variable holds an error number.  When non-NULL, the return value "
4361 "may point at static data, see the notes below."
4362 msgstr ""
4363
4364 #. type: Plain text
4365 #: build/C/man3/gethostbyname.3:278
4366 msgid "The variable I<h_errno> can have the following values:"
4367 msgstr ""
4368
4369 #. type: TP
4370 #: build/C/man3/gethostbyname.3:278 build/C/man3/getipnodebyname.3:188
4371 #, no-wrap
4372 msgid "B<HOST_NOT_FOUND>"
4373 msgstr ""
4374
4375 #. type: Plain text
4376 #: build/C/man3/gethostbyname.3:281
4377 msgid "The specified host is unknown."
4378 msgstr ""
4379
4380 #. type: TP
4381 #: build/C/man3/gethostbyname.3:281
4382 #, no-wrap
4383 msgid "B<NO_ADDRESS> or B<NO_DATA>"
4384 msgstr ""
4385
4386 #. type: Plain text
4387 #: build/C/man3/gethostbyname.3:284
4388 msgid "The requested name is valid but does not have an IP address."
4389 msgstr ""
4390
4391 #. type: TP
4392 #: build/C/man3/gethostbyname.3:284 build/C/man3/getipnodebyname.3:197
4393 #, no-wrap
4394 msgid "B<NO_RECOVERY>"
4395 msgstr ""
4396
4397 #. type: Plain text
4398 #: build/C/man3/gethostbyname.3:287
4399 msgid "A nonrecoverable name server error occurred."
4400 msgstr ""
4401
4402 #. type: TP
4403 #: build/C/man3/gethostbyname.3:287 build/C/man3/getipnodebyname.3:200
4404 #, no-wrap
4405 msgid "B<TRY_AGAIN>"
4406 msgstr ""
4407
4408 #. type: Plain text
4409 #: build/C/man3/gethostbyname.3:291
4410 msgid ""
4411 "A temporary error occurred on an authoritative name server.  Try again "
4412 "later."
4413 msgstr ""
4414
4415 #. type: TP
4416 #: build/C/man3/gethostbyname.3:292 build/C/man5/host.conf.5:181
4417 #, no-wrap
4418 msgid "I</etc/host.conf>"
4419 msgstr ""
4420
4421 #. type: Plain text
4422 #: build/C/man3/gethostbyname.3:295
4423 msgid "resolver configuration file"
4424 msgstr ""
4425
4426 #. type: Plain text
4427 #: build/C/man3/gethostbyname.3:295 build/C/man5/host.conf.5:187 build/C/man5/hosts.5:88
4428 #, no-wrap
4429 msgid "I</etc/hosts>"
4430 msgstr ""
4431
4432 #. type: Plain text
4433 #: build/C/man3/gethostbyname.3:298
4434 msgid "host database file"
4435 msgstr ""
4436
4437 #. type: Plain text
4438 #: build/C/man3/gethostbyname.3:298 build/C/man5/nsswitch.conf.5:251 build/C/man3/setnetgrent.3:87
4439 #, no-wrap
4440 msgid "I</etc/nsswitch.conf>"
4441 msgstr ""
4442
4443 #. type: Plain text
4444 #: build/C/man3/gethostbyname.3:301
4445 msgid "name service switch configuration"
4446 msgstr ""
4447
4448 #. type: Plain text
4449 #: build/C/man3/gethostbyname.3:325
4450 msgid ""
4451 "POSIX.1-2001 specifies B<gethostbyname>(), B<gethostbyaddr>(), "
4452 "B<sethostent>(), B<endhostent>(), B<gethostent>(), and I<h_errno>; "
4453 "B<gethostbyname>(), B<gethostbyaddr>(), and I<h_errno> are marked "
4454 "obsolescent in that standard.  POSIX.1-2008 removes the specifications of "
4455 "B<gethostbyname>(), B<gethostbyaddr>(), and I<h_errno>, recommending the use "
4456 "of B<getaddrinfo>(3)  and B<getnameinfo>(3)  instead."
4457 msgstr ""
4458
4459 #. type: Plain text
4460 #: build/C/man3/gethostbyname.3:335
4461 msgid ""
4462 "The functions B<gethostbyname>()  and B<gethostbyaddr>()  may return "
4463 "pointers to static data, which may be overwritten by later calls.  Copying "
4464 "the I<struct hostent> does not suffice, since it contains pointers; a deep "
4465 "copy is required."
4466 msgstr ""
4467
4468 #. type: Plain text
4469 #: build/C/man3/gethostbyname.3:359
4470 msgid ""
4471 "In the original BSD implementation the I<len> argument of B<gethostbyname>()  "
4472 "was an I<int>.  The SUSv2 standard is buggy and declares the I<len> argument "
4473 "of B<gethostbyaddr>()  to be of type I<size_t>.  (That is wrong, because it "
4474 "has to be I<int>, and I<size_t> is not.  POSIX.1-2001 makes it I<socklen_t>, "
4475 "which is OK.)  See also B<accept>(2)."
4476 msgstr ""
4477
4478 #. type: Plain text
4479 #: build/C/man3/gethostbyname.3:365
4480 msgid ""
4481 "The BSD prototype for B<gethostbyaddr>()  uses I<const char *> for the first "
4482 "argument."
4483 msgstr ""
4484
4485 #. type: SS
4486 #: build/C/man3/gethostbyname.3:365
4487 #, no-wrap
4488 msgid "System V/POSIX Extension"
4489 msgstr ""
4490
4491 #.  e.g., Linux, FreeBSD, UnixWare, HP-UX
4492 #.  e.g., FreeBSD, AIX
4493 #. type: Plain text
4494 #: build/C/man3/gethostbyname.3:382
4495 msgid ""
4496 "POSIX requires the B<gethostent>()  call, that should return the next entry "
4497 "in the host data base.  When using DNS/BIND this does not make much sense, "
4498 "but it may be reasonable if the host data base is a file that can be read "
4499 "line by line.  On many systems a routine of this name reads from the file "
4500 "I</etc/hosts>.  It may be available only when the library was built without "
4501 "DNS support.  The glibc version will ignore ipv6 entries.  This function is "
4502 "not reentrant, and glibc adds a reentrant version B<gethostent_r>()."
4503 msgstr ""
4504
4505 #. type: SS
4506 #: build/C/man3/gethostbyname.3:382
4507 #, no-wrap
4508 msgid "GNU Extensions"
4509 msgstr ""
4510
4511 #. type: Plain text
4512 #: build/C/man3/gethostbyname.3:388
4513 msgid ""
4514 "Glibc2 also has a B<gethostbyname2>()  that works like B<gethostbyname>(), "
4515 "but permits to specify the address family to which the address must belong."
4516 msgstr ""
4517
4518 #. type: Plain text
4519 #: build/C/man3/gethostbyname.3:422
4520 msgid ""
4521 "Glibc2 also has reentrant versions B<gethostent_r>(), B<gethostbyaddr_r>(), "
4522 "B<gethostbyname_r>()  and B<gethostbyname2_r>().  The caller supplies a "
4523 "I<hostent> structure I<ret> which will be filled in on success, and a "
4524 "temporary work buffer I<buf> of size I<buflen>.  After the call, I<result> "
4525 "will point to the result on success.  In case of an error or if no entry is "
4526 "found I<result> will be NULL.  The functions return 0 on success and a "
4527 "nonzero error number on failure.  In addition to the errors returned by the "
4528 "nonreentrant versions of these functions, if I<buf> is too small, the "
4529 "functions will return B<ERANGE>, and the call should be retried with a "
4530 "larger buffer.  The global variable I<h_errno> is not modified, but the "
4531 "address of a variable in which to store error numbers is passed in "
4532 "I<h_errnop>."
4533 msgstr ""
4534
4535 #.  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482973
4536 #. type: Plain text
4537 #: build/C/man3/gethostbyname.3:427
4538 msgid ""
4539 "B<gethostbyname>()  does not recognize components of a dotted IPv4 address "
4540 "string that are expressed in hexadecimal."
4541 msgstr ""
4542
4543 #.  .BR getipnodebyaddr (3),
4544 #.  .BR getipnodebyname (3),
4545 #.  .BR resolv+ (8)
4546 #. type: Plain text
4547 #: build/C/man3/gethostbyname.3:441
4548 msgid ""
4549 "B<getaddrinfo>(3), B<getnameinfo>(3), B<inet>(3), B<inet_ntop>(3), "
4550 "B<inet_pton>(3), B<resolver>(3), B<hosts>(5), B<nsswitch.conf>(5), "
4551 "B<hostname>(7), B<named>(8)"
4552 msgstr ""
4553
4554 #. type: TH
4555 #: build/C/man3/getipnodebyname.3:24
4556 #, no-wrap
4557 msgid "GETIPNODEBYNAME"
4558 msgstr ""
4559
4560 #. type: TH
4561 #: build/C/man3/getipnodebyname.3:24
4562 #, no-wrap
4563 msgid "2010-09-04"
4564 msgstr ""
4565
4566 #. type: Plain text
4567 #: build/C/man3/getipnodebyname.3:28
4568 msgid ""
4569 "getipnodebyname, getipnodebyaddr, freehostent - get network hostnames and "
4570 "addresses"
4571 msgstr ""
4572
4573 #. type: Plain text
4574 #: build/C/man3/getipnodebyname.3:36
4575 #, no-wrap
4576 msgid ""
4577 "B<struct hostent *getipnodebyname(const char *>I<name>B<, int >I<af>B<,>\n"
4578 "B<                                int >I<flags>B<, int *>I<error_num>B<);>\n"
4579 msgstr ""
4580
4581 #. type: Plain text
4582 #: build/C/man3/getipnodebyname.3:39
4583 #, no-wrap
4584 msgid ""
4585 "B<struct hostent *getipnodebyaddr(const void *>I<addr>B<, size_t "
4586 ">I<len>B<,>\n"
4587 "B<                                int >I<af>B<, int *>I<error_num>B<);>\n"
4588 msgstr ""
4589
4590 #. type: Plain text
4591 #: build/C/man3/getipnodebyname.3:41
4592 #, no-wrap
4593 msgid "B<void freehostent(struct hostent *>I<ip>B<);>\n"
4594 msgstr ""
4595
4596 #. type: Plain text
4597 #: build/C/man3/getipnodebyname.3:49
4598 msgid ""
4599 "These functions are deprecated (and unavailable in glibc).  Use "
4600 "B<getaddrinfo>(3)  and B<getnameinfo>(3)  instead."
4601 msgstr ""
4602
4603 #. type: Plain text
4604 #: build/C/man3/getipnodebyname.3:57
4605 msgid ""
4606 "The B<getipnodebyname>()  and B<getipnodebyaddr>()  functions return the "
4607 "names and addresses of a network host.  These functions return a pointer to "
4608 "the following structure:"
4609 msgstr ""
4610
4611 #. type: Plain text
4612 #: build/C/man3/getipnodebyname.3:67
4613 #, no-wrap
4614 msgid ""
4615 "struct hostent {\n"
4616 "    char  *h_name;\n"
4617 "    char **h_aliases;\n"
4618 "    int    h_addrtype;\n"
4619 "    int    h_length;\n"
4620 "    char **h_addr_list;\n"
4621 "};\n"
4622 msgstr ""
4623
4624 #. type: Plain text
4625 #: build/C/man3/getipnodebyname.3:80
4626 msgid ""
4627 "These functions replace the B<gethostbyname>(3)  and B<gethostbyaddr>(3)  "
4628 "functions, which could only access the IPv4 network address family.  The "
4629 "B<getipnodebyname>()  and B<getipnodebyaddr>()  functions can access "
4630 "multiple network address families."
4631 msgstr ""
4632
4633 #. type: Plain text
4634 #: build/C/man3/getipnodebyname.3:91
4635 msgid ""
4636 "Unlike the B<gethostby> functions, these functions return pointers to "
4637 "dynamically allocated memory.  The B<freehostent>()  function is used to "
4638 "release the dynamically allocated memory after the caller no longer needs "
4639 "the I<hostent> structure."
4640 msgstr ""
4641
4642 #. type: SS
4643 #: build/C/man3/getipnodebyname.3:91
4644 #, no-wrap
4645 msgid "getipnodebyname() arguments"
4646 msgstr ""
4647
4648 #. type: Plain text
4649 #: build/C/man3/getipnodebyname.3:102
4650 msgid ""
4651 "The B<getipnodebyname>()  function looks up network addresses for the host "
4652 "specified by the I<name> argument.  The I<af> argument specifies one of the "
4653 "following values:"
4654 msgstr ""
4655
4656 #. type: TP
4657 #: 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
4658 #, no-wrap
4659 msgid "B<AF_INET>"
4660 msgstr ""
4661
4662 #. type: Plain text
4663 #: build/C/man3/getipnodebyname.3:108
4664 msgid ""
4665 "The I<name> argument points to a dotted-quad IPv4 address or a name of an "
4666 "IPv4 network host."
4667 msgstr ""
4668
4669 #. type: TP
4670 #: 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
4671 #, no-wrap
4672 msgid "B<AF_INET6>"
4673 msgstr ""
4674
4675 #. type: Plain text
4676 #: build/C/man3/getipnodebyname.3:114
4677 msgid ""
4678 "The I<name> argument points to a hexadecimal IPv6 address or a name of an "
4679 "IPv6 network host."
4680 msgstr ""
4681
4682 #. type: Plain text
4683 #: build/C/man3/getipnodebyname.3:123
4684 msgid ""
4685 "The I<flags> argument specifies additional options.  More than one option "
4686 "can be specified by bitwise OR-ing them together.  I<flags> should be set to "
4687 "0 if no options are desired."
4688 msgstr ""
4689
4690 #. type: TP
4691 #: build/C/man3/getipnodebyname.3:123
4692 #, no-wrap
4693 msgid "B<AI_V4MAPPED>"
4694 msgstr ""
4695
4696 #. type: Plain text
4697 #: build/C/man3/getipnodebyname.3:130
4698 msgid ""
4699 "This flag is used with B<AF_INET6> to request a query for IPv4 addresses "
4700 "instead of IPv6 addresses; the IPv4 addresses will be mapped to IPv6 "
4701 "addresses."
4702 msgstr ""
4703
4704 #. type: TP
4705 #: build/C/man3/getipnodebyname.3:130
4706 #, no-wrap
4707 msgid "B<AI_ALL>"
4708 msgstr ""
4709
4710 #. type: Plain text
4711 #: build/C/man3/getipnodebyname.3:136
4712 msgid ""
4713 "This flag is used with B<AI_V4MAPPED> to request a query for both IPv4 and "
4714 "IPv6 addresses.  Any IPv4 address found will be mapped to an IPv6 address."
4715 msgstr ""
4716
4717 #. type: TP
4718 #: build/C/man3/getipnodebyname.3:136
4719 #, no-wrap
4720 msgid "B<AI_ADDRCONFIG>"
4721 msgstr ""
4722
4723 #. type: Plain text
4724 #: build/C/man3/getipnodebyname.3:148
4725 msgid ""
4726 "This flag is used with B<AF_INET6> to further request that queries for IPv6 "
4727 "addresses should not be made unless the system has at least one IPv6 address "
4728 "assigned to a network interface, and that queries for IPv4 addresses should "
4729 "not be made unless the system has at least one IPv4 address assigned to a "
4730 "network interface.  This flag may be used by itself or with the "
4731 "B<AI_V4MAPPED> flag."
4732 msgstr ""
4733
4734 #. type: TP
4735 #: build/C/man3/getipnodebyname.3:148
4736 #, no-wrap
4737 msgid "B<AI_DEFAULT>"
4738 msgstr ""
4739
4740 #. type: Plain text
4741 #: build/C/man3/getipnodebyname.3:152
4742 msgid "This flag is equivalent to B<(AI_ADDRCONFIG | AI_V4MAPPED)>."
4743 msgstr ""
4744
4745 #. type: SS
4746 #: build/C/man3/getipnodebyname.3:152
4747 #, no-wrap
4748 msgid "getipnodebyaddr() arguments"
4749 msgstr ""
4750
4751 #. type: Plain text
4752 #: build/C/man3/getipnodebyname.3:164
4753 msgid ""
4754 "The B<getipnodebyaddr>()  function looks up the name of the host whose "
4755 "network address is specified by the I<addr> argument.  The I<af> argument "
4756 "specifies one of the following values:"
4757 msgstr ""
4758
4759 #. type: Plain text
4760 #: build/C/man3/getipnodebyname.3:174
4761 msgid ""
4762 "The I<addr> argument points to a I<struct in_addr> and I<len> must be set to "
4763 "I<sizeof(struct in_addr)>."
4764 msgstr ""
4765
4766 #. type: Plain text
4767 #: build/C/man3/getipnodebyname.3:184
4768 msgid ""
4769 "The I<addr> argument points to a I<struct in6_addr> and I<len> must be set "
4770 "to I<sizeof(struct in6_addr)>."
4771 msgstr ""
4772
4773 #. type: Plain text
4774 #: build/C/man3/getipnodebyname.3:188
4775 msgid ""
4776 "A NULL pointer is returned if an error occurred, and I<error_num> will "
4777 "contain an error code from the following list:"
4778 msgstr ""
4779
4780 #. type: Plain text
4781 #: build/C/man3/getipnodebyname.3:191
4782 msgid "The hostname or network address was not found."
4783 msgstr ""
4784
4785 #. type: TP
4786 #: build/C/man3/getipnodebyname.3:191
4787 #, no-wrap
4788 msgid "B<NO_ADDRESS>"
4789 msgstr ""
4790
4791 #. type: Plain text
4792 #: build/C/man3/getipnodebyname.3:197
4793 msgid ""
4794 "The domain name server recognized the network address or name, but no answer "
4795 "was returned.  This can happen if the network host has only IPv4 addresses "
4796 "and a request has been made for IPv6 information only, or vice versa."
4797 msgstr ""
4798
4799 #. type: Plain text
4800 #: build/C/man3/getipnodebyname.3:200
4801 msgid "The domain name server returned a permanent failure response."
4802 msgstr ""
4803
4804 #. type: Plain text
4805 #: build/C/man3/getipnodebyname.3:204
4806 msgid ""
4807 "The domain name server returned a temporary failure response.  You might "
4808 "have better luck next time."
4809 msgstr ""
4810
4811 #. type: Plain text
4812 #: build/C/man3/getipnodebyname.3:208
4813 msgid ""
4814 "A successful query returns a pointer to a I<hostent> structure that contains "
4815 "the following fields:"
4816 msgstr ""
4817
4818 #. type: Plain text
4819 #: build/C/man3/getipnodebyname.3:211
4820 msgid "This is the official name of this network host."
4821 msgstr ""
4822
4823 #. type: Plain text
4824 #: build/C/man3/getipnodebyname.3:215
4825 msgid ""
4826 "This is an array of pointers to unofficial aliases for the same host.  The "
4827 "array is terminated by a NULL pointer."
4828 msgstr ""
4829
4830 #. type: Plain text
4831 #: build/C/man3/getipnodebyname.3:237
4832 msgid ""
4833 "This is a copy of the I<af> argument to B<getipnodebyname>()  or "
4834 "B<getipnodebyaddr>().  I<h_addrtype> will always be B<AF_INET> if the I<af> "
4835 "argument was B<AF_INET>.  I<h_addrtype> will always be B<AF_INET6> if the "
4836 "I<af> argument was B<AF_INET6>."
4837 msgstr ""
4838
4839 #. type: Plain text
4840 #: build/C/man3/getipnodebyname.3:251
4841 msgid ""
4842 "This field will be set to I<sizeof(struct in_addr)> if I<h_addrtype> is "
4843 "B<AF_INET>, and to I<sizeof(struct in6_addr)> if I<h_addrtype> is "
4844 "B<AF_INET6>."
4845 msgstr ""
4846
4847 #. type: Plain text
4848 #: build/C/man3/getipnodebyname.3:256
4849 msgid ""
4850 "This is an array of one or more pointers to network address structures for "
4851 "the network host.  The array is terminated by a NULL pointer."
4852 msgstr ""
4853
4854 #.  Not in POSIX.1-2001.
4855 #. type: Plain text
4856 #: build/C/man3/getipnodebyname.3:259
4857 msgid "RFC\\ 2553."
4858 msgstr ""
4859
4860 #. type: Plain text
4861 #: build/C/man3/getipnodebyname.3:264
4862 msgid ""
4863 "These functions were present in glibc 2.1.91-95, but were removed again.  "
4864 "Several UNIX-like systems support them, but all call them deprecated."
4865 msgstr ""
4866
4867 #. type: Plain text
4868 #: build/C/man3/getipnodebyname.3:269
4869 msgid "B<getaddrinfo>(3), B<getnameinfo>(3), B<inet_ntop>(3), B<inet_pton>(3)"
4870 msgstr ""
4871
4872 #. type: TH
4873 #: build/C/man3/getnameinfo.3:7
4874 #, no-wrap
4875 msgid "GETNAMEINFO"
4876 msgstr ""
4877
4878 #. type: TH
4879 #: build/C/man3/getnameinfo.3:7
4880 #, no-wrap
4881 msgid "2009-12-03"
4882 msgstr ""
4883
4884 #. type: Plain text
4885 #: build/C/man3/getnameinfo.3:10
4886 msgid "getnameinfo - address-to-name translation in protocol-independent manner"
4887 msgstr ""
4888
4889 #. type: Plain text
4890 #: build/C/man3/getnameinfo.3:14
4891 #, no-wrap
4892 msgid ""
4893 "B<#include E<lt>sys/socket.hE<gt>>\n"
4894 "B<#include E<lt>netdb.hE<gt>>\n"
4895 msgstr ""
4896
4897 #. type: Plain text
4898 #: build/C/man3/getnameinfo.3:18
4899 #, no-wrap
4900 msgid ""
4901 "B<int getnameinfo(const struct sockaddr *>I<sa>B<, socklen_t >I<salen>B<,>\n"
4902 "B<                char *>I<host>B<, size_t >I<hostlen>B<,>\n"
4903 "B<                char *>I<serv>B<, size_t >I<servlen>B<, int "
4904 ">I<flags>B<);>\n"
4905 msgstr ""
4906
4907 #. type: Plain text
4908 #: build/C/man3/getnameinfo.3:28
4909 msgid ""
4910 "B<getnameinfo>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4911 "_POSIX_SOURCE"
4912 msgstr ""
4913
4914 #. type: Plain text
4915 #: build/C/man3/getnameinfo.3:44
4916 msgid ""
4917 "The B<getnameinfo>()  function is the inverse of B<getaddrinfo>(3): it "
4918 "converts a socket address to a corresponding host and service, in a "
4919 "protocol-independent manner.  It combines the functionality of "
4920 "B<gethostbyaddr>(3)  and B<getservbyport>(3), but unlike those functions, "
4921 "B<getaddrinfo>(3)  is reentrant and allows programs to eliminate "
4922 "IPv4-versus-IPv6 dependencies."
4923 msgstr ""
4924
4925 #. type: Plain text
4926 #: build/C/man3/getnameinfo.3:67
4927 msgid ""
4928 "The I<sa> argument is a pointer to a generic socket address structure (of "
4929 "type I<sockaddr_in> or I<sockaddr_in6>)  of size I<salen> that holds the "
4930 "input IP address and port number.  The arguments I<host> and I<serv> are "
4931 "pointers to caller-allocated buffers (of size I<hostlen> and I<servlen> "
4932 "respectively) into which B<getnameinfo>()  places null-terminated strings "
4933 "containing the host and service names respectively."
4934 msgstr ""
4935
4936 #. type: Plain text
4937 #: build/C/man3/getnameinfo.3:80
4938 msgid ""
4939 "The caller can specify that no hostname (or no service name)  is required by "
4940 "providing a NULL I<host> (or I<serv>)  argument or a zero I<hostlen> (or "
4941 "I<servlen>)  argument.  However, at least one of hostname or service name "
4942 "must be requested."
4943 msgstr ""
4944
4945 #. type: Plain text
4946 #: build/C/man3/getnameinfo.3:86
4947 msgid "The I<flags> argument modifies the behavior of B<getnameinfo>()  as follows:"
4948 msgstr ""
4949
4950 #. type: TP
4951 #: build/C/man3/getnameinfo.3:86
4952 #, no-wrap
4953 msgid "B<NI_NAMEREQD>"
4954 msgstr ""
4955
4956 #. type: Plain text
4957 #: build/C/man3/getnameinfo.3:89
4958 msgid "If set, then an error is returned if the hostname cannot be determined."
4959 msgstr ""
4960
4961 #. type: TP
4962 #: build/C/man3/getnameinfo.3:89
4963 #, no-wrap
4964 msgid "B<NI_DGRAM>"
4965 msgstr ""
4966
4967 #. type: Plain text
4968 #: build/C/man3/getnameinfo.3:95
4969 msgid ""
4970 "If set, then the service is datagram (UDP) based rather than stream (TCP) "
4971 "based.  This is required for the few ports (512-514)  that have different "
4972 "services for UDP and TCP."
4973 msgstr ""
4974
4975 #. type: TP
4976 #: build/C/man3/getnameinfo.3:95
4977 #, no-wrap
4978 msgid "B<NI_NOFQDN>"
4979 msgstr ""
4980
4981 #. type: Plain text
4982 #: build/C/man3/getnameinfo.3:99
4983 msgid ""
4984 "If set, return only the hostname part of the fully qualified domain name for "
4985 "local hosts."
4986 msgstr ""
4987
4988 #. type: TP
4989 #: build/C/man3/getnameinfo.3:99
4990 #, no-wrap
4991 msgid "B<NI_NUMERICHOST>"
4992 msgstr ""
4993
4994 #.  For example, by calling
4995 #.  .BR inet_ntop ()
4996 #.  instead of
4997 #.  .BR gethostbyaddr ().
4998 #.  POSIX.1-2003 has NI_NUMERICSCOPE, but glibc doesn't have it.
4999 #. type: Plain text
5000 #: build/C/man3/getnameinfo.3:109
5001 msgid ""
5002 "If set, then the numeric form of the hostname is returned.  (When not set, "
5003 "this will still happen in case the node's name cannot be determined.)"
5004 msgstr ""
5005
5006 #. type: TP
5007 #: build/C/man3/getnameinfo.3:109
5008 #, no-wrap
5009 msgid "B<NI_NUMERICSERV>"
5010 msgstr ""
5011
5012 #. type: Plain text
5013 #: build/C/man3/getnameinfo.3:114
5014 msgid ""
5015 "If set, then the numeric form of the service address is returned.  (When not "
5016 "set, this will still happen in case the service's name cannot be "
5017 "determined.)"
5018 msgstr ""
5019
5020 #. type: Plain text
5021 #: build/C/man3/getnameinfo.3:123
5022 msgid ""
5023 "Starting with glibc 2.3.4, B<getnameinfo>()  has been extended to "
5024 "selectively allow hostnames to be transparently converted to and from the "
5025 "Internationalized Domain Name (IDN) format (see RFC 3490, "
5026 "I<Internationalizing Domain Names in Applications (IDNA)>).  Three new flags "
5027 "are defined:"
5028 msgstr ""
5029
5030 #. type: TP
5031 #: build/C/man3/getnameinfo.3:123
5032 #, no-wrap
5033 msgid "B<NI_IDN>"
5034 msgstr ""
5035
5036 #. type: Plain text
5037 #: build/C/man3/getnameinfo.3:129
5038 msgid ""
5039 "If this flag is used, then the name found in the lookup process is converted "
5040 "from IDN format to the locale's encoding if necessary.  ASCII-only names are "
5041 "not affected by the conversion, which makes this flag usable in existing "
5042 "programs and environments."
5043 msgstr ""
5044
5045 #. type: TP
5046 #: build/C/man3/getnameinfo.3:129
5047 #, no-wrap
5048 msgid "B<NI_IDN_ALLOW_UNASSIGNED>, B<NI_IDN_USE_STD3_ASCII_RULES>"
5049 msgstr ""
5050
5051 #.  FIXME glibc defines the following additional errors, some which
5052 #.  can probably be returned by getnameinfo(); they need to
5053 #.  be documented.
5054 #.  #ifdef __USE_GNU
5055 #.  #define EAI_INPROGRESS  -100  /* Processing request in progress.  */
5056 #.  #define EAI_CANCELED    -101  /* Request canceled.  */
5057 #.  #define EAI_NOTCANCELED -102  /* Request not canceled.  */
5058 #.  #define EAI_ALLDONE     -103  /* All requests done.  */
5059 #.  #define EAI_INTR        -104  /* Interrupted by a signal.  */
5060 #.  #define EAI_IDN_ENCODE  -105  /* IDN encoding failed.  */
5061 #.  #endif
5062 #. type: Plain text
5063 #: build/C/man3/getnameinfo.3:152
5064 msgid ""
5065 "On success 0 is returned, and node and service names, if requested, are "
5066 "filled with null-terminated strings, possibly truncated to fit the specified "
5067 "buffer lengths.  On error one of the following nonzero error codes is "
5068 "returned:"
5069 msgstr ""
5070
5071 #. type: Plain text
5072 #: build/C/man3/getnameinfo.3:156
5073 msgid "The name could not be resolved at this time.  Try again later."
5074 msgstr ""
5075
5076 #. type: Plain text
5077 #: build/C/man3/getnameinfo.3:161
5078 msgid "The I<flags> argument has an invalid value."
5079 msgstr ""
5080
5081 #. type: Plain text
5082 #: build/C/man3/getnameinfo.3:164
5083 msgid "A nonrecoverable error occurred."
5084 msgstr ""
5085
5086 #. type: Plain text
5087 #: build/C/man3/getnameinfo.3:168
5088 msgid ""
5089 "The address family was not recognized, or the address length was invalid for "
5090 "the specified family."
5091 msgstr ""
5092
5093 #. type: Plain text
5094 #: build/C/man3/getnameinfo.3:177
5095 msgid ""
5096 "The name does not resolve for the supplied arguments.  B<NI_NAMEREQD> is set "
5097 "and the host's name cannot be located, or neither hostname nor service name "
5098 "were requested."
5099 msgstr ""
5100
5101 #. type: TP
5102 #: build/C/man3/getnameinfo.3:177
5103 #, no-wrap
5104 msgid "B<EAI_OVERFLOW>"
5105 msgstr ""
5106
5107 #. type: Plain text
5108 #: build/C/man3/getnameinfo.3:184
5109 msgid "The buffer pointed to by I<host> or I<serv> was too small."
5110 msgstr ""
5111
5112 #. type: Plain text
5113 #: build/C/man3/getnameinfo.3:189
5114 msgid "A system error occurred.  The error code can be found in I<errno>."
5115 msgstr ""
5116
5117 #. type: Plain text
5118 #: build/C/man3/getnameinfo.3:196
5119 msgid "/etc/hosts"
5120 msgstr ""
5121
5122 #. type: Plain text
5123 #: build/C/man3/getnameinfo.3:198
5124 msgid "/etc/nsswitch.conf"
5125 msgstr ""
5126
5127 #. type: Plain text
5128 #: build/C/man3/getnameinfo.3:200
5129 msgid "/etc/resolv.conf"
5130 msgstr ""
5131
5132 #. type: Plain text
5133 #: build/C/man3/getnameinfo.3:203
5134 msgid "B<getnameinfo>()  is provided in glibc since version 2.1."
5135 msgstr ""
5136
5137 #. type: Plain text
5138 #: build/C/man3/getnameinfo.3:205
5139 msgid "RFC\\ 2553, POSIX.1-2001."
5140 msgstr ""
5141
5142 #. type: Plain text
5143 #: build/C/man3/getnameinfo.3:210
5144 msgid ""
5145 "In order to assist the programmer in choosing reasonable sizes for the "
5146 "supplied buffers, I<E<lt>netdb.hE<gt>> defines the constants"
5147 msgstr ""
5148
5149 #. type: Plain text
5150 #: build/C/man3/getnameinfo.3:215
5151 #, no-wrap
5152 msgid ""
5153 "#define NI_MAXHOST      1025\n"
5154 "#define NI_MAXSERV      32\n"
5155 msgstr ""
5156
5157 #. type: Plain text
5158 #: build/C/man3/getnameinfo.3:225
5159 msgid ""
5160 "Since glibc 2.8, these definitions are exposed only if one of the feature "
5161 "test macros B<_BSD_SOURCE>, B<_SVID_SOURCE>, or B<_GNU_SOURCE> is defined."
5162 msgstr ""
5163
5164 #. type: Plain text
5165 #: build/C/man3/getnameinfo.3:233
5166 msgid ""
5167 "The former is the constant B<MAXDNAME> in recent versions of BIND's "
5168 "I<E<lt>arpa/nameser.hE<gt>> header file.  The latter is a guess based on the "
5169 "services listed in the current Assigned Numbers RFC."
5170 msgstr ""
5171
5172 #. type: Plain text
5173 #: build/C/man3/getnameinfo.3:238
5174 msgid ""
5175 "The following code tries to get the numeric hostname and service name, for a "
5176 "given socket address.  Note that there is no hardcoded reference to a "
5177 "particular address family."
5178 msgstr ""
5179
5180 #. type: Plain text
5181 #: build/C/man3/getnameinfo.3:244
5182 #, no-wrap
5183 msgid ""
5184 "struct sockaddr *sa;    /* input */\n"
5185 "socklen_t len;         /* input */\n"
5186 "char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV];\n"
5187 msgstr ""
5188
5189 #. type: Plain text
5190 #: build/C/man3/getnameinfo.3:248
5191 #, no-wrap
5192 msgid ""
5193 "if (getnameinfo(sa, len, hbuf, sizeof(hbuf), sbuf,\n"
5194 "            sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV) == 0)\n"
5195 "    printf(\"host=%s, serv=%s\\en\", hbuf, sbuf);\n"
5196 msgstr ""
5197
5198 #. type: Plain text
5199 #: build/C/man3/getnameinfo.3:253
5200 msgid ""
5201 "The following version checks if the socket address has a reverse address "
5202 "mapping."
5203 msgstr ""
5204
5205 #. type: Plain text
5206 #: build/C/man3/getnameinfo.3:259
5207 #, no-wrap
5208 msgid ""
5209 "struct sockaddr *sa;    /* input */\n"
5210 "socklen_t len;         /* input */\n"
5211 "char hbuf[NI_MAXHOST];\n"
5212 msgstr ""
5213
5214 #. type: Plain text
5215 #: build/C/man3/getnameinfo.3:265
5216 #, no-wrap
5217 msgid ""
5218 "if (getnameinfo(sa, len, hbuf, sizeof(hbuf),\n"
5219 "            NULL, 0, NI_NAMEREQD))\n"
5220 "    printf(\"could not resolve hostname\");\n"
5221 "else\n"
5222 "    printf(\"host=%s\\en\", hbuf);\n"
5223 msgstr ""
5224
5225 #. type: Plain text
5226 #: build/C/man3/getnameinfo.3:272
5227 msgid ""
5228 "An example program using B<getnameinfo>()  can be found in "
5229 "B<getaddrinfo>(3)."
5230 msgstr ""
5231
5232 #. type: Plain text
5233 #: build/C/man3/getnameinfo.3:287
5234 msgid ""
5235 "B<accept>(2), B<getpeername>(2), B<getsockname>(2), B<recvfrom>(2), "
5236 "B<socket>(2), B<getaddrinfo>(3), B<gethostbyaddr>(3), B<getservbyname>(3), "
5237 "B<getservbyport>(3), B<inet_ntop>(3), B<hosts>(5), B<services>(5), "
5238 "B<hostname>(7), B<named>(8)"
5239 msgstr ""
5240
5241 #. type: Plain text
5242 #: build/C/man3/getnameinfo.3:291
5243 msgid ""
5244 "R. Gilligan, S. Thomson, J. Bound and W. Stevens, I<Basic Socket Interface "
5245 "Extensions for IPv6>, RFC\\ 2553, March 1999."
5246 msgstr ""
5247
5248 #. type: Plain text
5249 #: build/C/man3/getnameinfo.3:296
5250 msgid ""
5251 "Tatsuya Jinmei and Atsushi Onoe, I<An Extension of Format for IPv6 Scoped "
5252 "Addresses>, internet draft, work in progress.  "
5253 "ftp://ftp.ietf.org/internet-drafts/draft-ietf-ipngwg-scopedaddr-format-02.txt"
5254 msgstr ""
5255
5256 #. type: Plain text
5257 #: build/C/man3/getnameinfo.3:302
5258 msgid ""
5259 "Craig Metz, I<Protocol Independence Using the Sockets API>, Proceedings of "
5260 "the freenix track: 2000 USENIX annual technical conference, June 2000.  "
5261 "http://www.usenix.org/publications/library/proceedings/usenix2000/freenix/metzprotocol.html"
5262 msgstr ""
5263
5264 #. type: TH
5265 #: build/C/man3/getnetent.3:28
5266 #, no-wrap
5267 msgid "GETNETENT"
5268 msgstr ""
5269
5270 #. type: TH
5271 #: build/C/man3/getnetent.3:28 build/C/man3/getprotoent.3:28 build/C/man3/getservent.3:32
5272 #, no-wrap
5273 msgid "2008-08-19"
5274 msgstr ""
5275
5276 #. type: Plain text
5277 #: build/C/man3/getnetent.3:32
5278 msgid ""
5279 "getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent - get network "
5280 "entry"
5281 msgstr ""
5282
5283 #. type: Plain text
5284 #: 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
5285 #, no-wrap
5286 msgid "B<#include E<lt>netdb.hE<gt>>\n"
5287 msgstr ""
5288
5289 #. type: Plain text
5290 #: build/C/man3/getnetent.3:37
5291 #, no-wrap
5292 msgid "B<struct netent *getnetent(void);>\n"
5293 msgstr ""
5294
5295 #. type: Plain text
5296 #: build/C/man3/getnetent.3:39
5297 #, no-wrap
5298 msgid "B<struct netent *getnetbyname(const char *>I<name>B<);>\n"
5299 msgstr ""
5300
5301 #. type: Plain text
5302 #: build/C/man3/getnetent.3:41
5303 #, no-wrap
5304 msgid "B<struct netent *getnetbyaddr(uint32_t >I<net>B<, int >I<type>B<);>\n"
5305 msgstr ""
5306
5307 #. type: Plain text
5308 #: build/C/man3/getnetent.3:43
5309 #, no-wrap
5310 msgid "B<void setnetent(int >I<stayopen>B<);>\n"
5311 msgstr ""
5312
5313 #. type: Plain text
5314 #: build/C/man3/getnetent.3:45
5315 #, no-wrap
5316 msgid "B<void endnetent(void);>\n"
5317 msgstr ""
5318
5319 #. type: Plain text
5320 #: build/C/man3/getnetent.3:53
5321 msgid ""
5322 "The B<getnetent>()  function reads the next entry from the networks database "
5323 "and returns a I<netent> structure containing the broken-out fields from the "
5324 "entry.  A connection is opened to the database if necessary."
5325 msgstr ""
5326
5327 #. type: Plain text
5328 #: build/C/man3/getnetent.3:59
5329 msgid ""
5330 "The B<getnetbyname>()  function returns a I<netent> structure for the entry "
5331 "from the database that matches the network I<name>."
5332 msgstr ""
5333
5334 #. type: Plain text
5335 #: build/C/man3/getnetent.3:69
5336 msgid ""
5337 "The B<getnetbyaddr>()  function returns a I<netent> structure for the entry "
5338 "from the database that matches the network number I<net> of type I<type>.  "
5339 "The I<net> argument must be in host byte order."
5340 msgstr ""
5341
5342 #. type: Plain text
5343 #: build/C/man3/getnetent.3:79
5344 msgid ""
5345 "The B<setnetent>()  function opens a connection to the database, and sets "
5346 "the next entry to the first entry.  If I<stayopen> is nonzero, then the "
5347 "connection to the database will not be closed between calls to one of the "
5348 "B<getnet*>()  functions."
5349 msgstr ""
5350
5351 #. type: Plain text
5352 #: build/C/man3/getnetent.3:83
5353 msgid "The B<endnetent>()  function closes the connection to the database."
5354 msgstr ""
5355
5356 #. type: Plain text
5357 #: build/C/man3/getnetent.3:85
5358 msgid "The I<netent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
5359 msgstr ""
5360
5361 #. type: Plain text
5362 #: build/C/man3/getnetent.3:94
5363 #, no-wrap
5364 msgid ""
5365 "struct netent {\n"
5366 "    char      *n_name;     /* official network name */\n"
5367 "    char     **n_aliases;  /* alias list */\n"
5368 "    int        n_addrtype; /* net address type */\n"
5369 "    uint32_t   n_net;      /* network number */\n"
5370 "}\n"
5371 msgstr ""
5372
5373 #. type: Plain text
5374 #: build/C/man3/getnetent.3:98
5375 msgid "The members of the I<netent> structure are:"
5376 msgstr ""
5377
5378 #. type: TP
5379 #: build/C/man3/getnetent.3:98
5380 #, no-wrap
5381 msgid "I<n_name>"
5382 msgstr ""
5383
5384 #. type: Plain text
5385 #: build/C/man3/getnetent.3:101
5386 msgid "The official name of the network."
5387 msgstr ""
5388
5389 #. type: TP
5390 #: build/C/man3/getnetent.3:101
5391 #, no-wrap
5392 msgid "I<n_aliases>"
5393 msgstr ""
5394
5395 #. type: Plain text
5396 #: build/C/man3/getnetent.3:104
5397 msgid "A NULL-terminated list of alternative names for the network."
5398 msgstr ""
5399
5400 #. type: TP
5401 #: build/C/man3/getnetent.3:104
5402 #, no-wrap
5403 msgid "I<n_addrtype>"
5404 msgstr ""
5405
5406 #. type: Plain text
5407 #: build/C/man3/getnetent.3:108
5408 msgid "The type of the network number; always B<AF_INET>."
5409 msgstr ""
5410
5411 #. type: TP
5412 #: build/C/man3/getnetent.3:108
5413 #, no-wrap
5414 msgid "I<n_net>"
5415 msgstr ""
5416
5417 #. type: Plain text
5418 #: build/C/man3/getnetent.3:111
5419 msgid "The network number in host byte order."
5420 msgstr ""
5421
5422 #. type: Plain text
5423 #: build/C/man3/getnetent.3:120
5424 msgid ""
5425 "The B<getnetent>(), B<getnetbyname>()  and B<getnetbyaddr>()  functions "
5426 "return a pointer to a statically allocated I<netent> structure, or a NULL "
5427 "pointer if an error occurs or the end of the file is reached."
5428 msgstr ""
5429
5430 #. type: TP
5431 #: build/C/man3/getnetent.3:121 build/C/man5/networks.5:70
5432 #, no-wrap
5433 msgid "I</etc/networks>"
5434 msgstr ""
5435
5436 #. type: Plain text
5437 #: build/C/man3/getnetent.3:124
5438 msgid "networks database file"
5439 msgstr ""
5440
5441 #. type: Plain text
5442 #: build/C/man3/getnetent.3:126 build/C/man3/getprotoent.3:122 build/C/man3/getservent.3:131
5443 msgid "4.3BSD, POSIX.1-2001."
5444 msgstr ""
5445
5446 #. type: Plain text
5447 #: build/C/man3/getnetent.3:133
5448 msgid ""
5449 "In glibc versions before 2.2, the I<net> argument of B<getnetbyaddr>()  was "
5450 "of type I<long>."
5451 msgstr ""
5452
5453 #.  .BR networks (5)
5454 #. type: Plain text
5455 #: build/C/man3/getnetent.3:138
5456 msgid "B<getnetent_r>(3), B<getprotoent>(3), B<getservent>(3)"
5457 msgstr ""
5458
5459 #. type: Plain text
5460 #: build/C/man3/getnetent.3:140
5461 msgid "RFC\\ 1101"
5462 msgstr ""
5463
5464 #. type: TH
5465 #: build/C/man3/getnetent_r.3:24
5466 #, no-wrap
5467 msgid "GETNETENT_R"
5468 msgstr ""
5469
5470 #. type: Plain text
5471 #: build/C/man3/getnetent_r.3:28
5472 msgid "getnetent_r, getnetbyname_r, getnetbyaddr_r - get network entry (reentrant)"
5473 msgstr ""
5474
5475 #. type: Plain text
5476 #: build/C/man3/getnetent_r.3:35
5477 #, no-wrap
5478 msgid ""
5479 "B<int getnetent_r(struct netent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5480 "B<                size_t >I<buflen>B<, struct netent **>I<result>B<,>\n"
5481 "B<                int *>I<h_errnop>B<);>\n"
5482 msgstr ""
5483
5484 #. type: Plain text
5485 #: build/C/man3/getnetent_r.3:40
5486 #, no-wrap
5487 msgid ""
5488 "B<int getnetbyname_r(const char *>I<name>B<,>\n"
5489 "B<                struct netent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5490 "B<                size_t >I<buflen>B<, struct netent **>I<result>B<,>\n"
5491 "B<                int *>I<h_errnop>B<);>\n"
5492 msgstr ""
5493
5494 #. type: Plain text
5495 #: build/C/man3/getnetent_r.3:45
5496 #, no-wrap
5497 msgid ""
5498 "B<int getnetbyaddr_r(uint32_t >I<net>B<, int >I<type>B<,>\n"
5499 "B<                struct netent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5500 "B<                size_t >I<buflen>B<, struct netent **>I<result>B<,>\n"
5501 "B<                int *>I<h_errnop>B<);>\n"
5502 msgstr ""
5503
5504 #. type: Plain text
5505 #: build/C/man3/getnetent_r.3:56
5506 msgid "B<getnetent_r>(), B<getnetbyname_r>(), B<getnetbyaddr_r>():"
5507 msgstr ""
5508
5509 #. type: Plain text
5510 #: build/C/man3/getnetent_r.3:77
5511 msgid ""
5512 "The B<getnetent_r>(), B<getnetbyname_r>(), and B<getnetbyaddr_r>()  "
5513 "functions are the reentrant equivalents of, respectively, B<getnetent>(3), "
5514 "B<getnetbyname>(3), and B<getnetbynumber>(3).  They differ in the way that "
5515 "the I<netent> structure is returned, and in the function calling signature "
5516 "and return value.  This manual page describes just the differences from the "
5517 "nonreentrant functions."
5518 msgstr ""
5519
5520 #. type: Plain text
5521 #: build/C/man3/getnetent_r.3:83
5522 msgid ""
5523 "Instead of returning a pointer to a statically allocated I<netent> structure "
5524 "as the function result, these functions copy the structure into the location "
5525 "pointed to by I<result_buf>."
5526 msgstr ""
5527
5528 #.  I can find no information on the required/recommended buffer size;
5529 #.  the nonreentrant functions use a 1024 byte buffer -- mtk.
5530 #. type: Plain text
5531 #: build/C/man3/getnetent_r.3:100
5532 msgid ""
5533 "The I<buf> array is used to store the string fields pointed to by the "
5534 "returned I<netent> structure.  (The nonreentrant functions allocate these "
5535 "strings in static storage.)  The size of this array is specified in "
5536 "I<buflen>.  If I<buf> is too small, the call fails with the error B<ERANGE>, "
5537 "and the caller must try again with a larger buffer.  (A buffer of length "
5538 "1024 bytes should be sufficient for most applications.)"
5539 msgstr ""
5540
5541 #. type: Plain text
5542 #: build/C/man3/getnetent_r.3:108
5543 msgid ""
5544 "If the function call successfully obtains a network record, then I<*result> "
5545 "is set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
5546 msgstr ""
5547
5548 #.  getnetent.3 doesn't document any use of h_errno, but nevertheless
5549 #.  the nonreentrant functions no seem to set h_errno.
5550 #. type: Plain text
5551 #: build/C/man3/getnetent_r.3:116
5552 msgid ""
5553 "The buffer pointed to by I<h_errnop> is used to return the value that would "
5554 "be stored in the global variable I<h_errno> by the nonreentrant versions of "
5555 "these functions."
5556 msgstr ""
5557
5558 #. type: Plain text
5559 #: build/C/man3/getnetent_r.3:119 build/C/man3/getprotoent_r.3:109
5560 msgid ""
5561 "On success, these functions return 0.  On error, they return one of the "
5562 "positive error numbers listed in ERRORS."
5563 msgstr ""
5564
5565 #. type: Plain text
5566 #: build/C/man3/getnetent_r.3:127
5567 msgid ""
5568 "On error, record not found (B<getnetbyname_r>(), B<getnetbyaddr_r>()), or "
5569 "end of input (B<getnetent_r>())  I<result> is set to NULL."
5570 msgstr ""
5571
5572 #. type: Plain text
5573 #: build/C/man3/getnetent_r.3:132
5574 msgid "(B<getnetent_r>())  No more records in database."
5575 msgstr ""
5576
5577 #. type: TP
5578 #: build/C/man3/getnetent_r.3:132 build/C/man3/getprotoent_r.3:122 build/C/man3/getservent_r.3:121
5579 #, no-wrap
5580 msgid "B<ERANGE>"
5581 msgstr ""
5582
5583 #. type: Plain text
5584 #: build/C/man3/getnetent_r.3:139 build/C/man3/getprotoent_r.3:129 build/C/man3/getservent_r.3:128
5585 msgid ""
5586 "I<buf> is too small.  Try again with a larger buffer (and increased "
5587 "I<buflen>)."
5588 msgstr ""
5589
5590 #. type: Plain text
5591 #: build/C/man3/getnetent_r.3:143 build/C/man3/getprotoent_r.3:133 build/C/man3/getservent_r.3:132
5592 msgid ""
5593 "These functions are GNU extensions.  Functions with similar names exist on "
5594 "some other systems, though typically with different calling signatures."
5595 msgstr ""
5596
5597 #. type: Plain text
5598 #: build/C/man3/getnetent_r.3:146
5599 msgid "B<getnetent>(3), B<networks>(5)"
5600 msgstr ""
5601
5602 #. type: TH
5603 #: build/C/man2/getpeername.2:40
5604 #, no-wrap
5605 msgid "GETPEERNAME"
5606 msgstr ""
5607
5608 #. type: TH
5609 #: build/C/man2/getpeername.2:40 build/C/man2/shutdown.2:38 build/C/man7/udplite.7:25
5610 #, no-wrap
5611 msgid "2008-12-03"
5612 msgstr ""
5613
5614 #. type: Plain text
5615 #: build/C/man2/getpeername.2:43
5616 msgid "getpeername - get name of connected peer socket"
5617 msgstr ""
5618
5619 #. type: Plain text
5620 #: build/C/man2/getpeername.2:48
5621 msgid ""
5622 "B<int getpeername(int >I<sockfd>B<, struct sockaddr *>I<addr>B<, socklen_t "
5623 "*>I<addrlen>B<);>"
5624 msgstr ""
5625
5626 #. type: Plain text
5627 #: build/C/man2/getpeername.2:61
5628 msgid ""
5629 "B<getpeername>()  returns the address of the peer connected to the socket "
5630 "I<sockfd>, in the buffer pointed to by I<addr>.  The I<addrlen> argument "
5631 "should be initialized to indicate the amount of space pointed to by "
5632 "I<addr>.  On return it contains the actual size of the name returned (in "
5633 "bytes).  The name is truncated if the buffer provided is too small."
5634 msgstr ""
5635
5636 #. type: Plain text
5637 #: build/C/man2/getpeername.2:66
5638 msgid ""
5639 "The returned address is truncated if the buffer provided is too small; in "
5640 "this case, I<addrlen> will return a value greater than was supplied to the "
5641 "call."
5642 msgstr ""
5643
5644 #. type: Plain text
5645 #: build/C/man2/getpeername.2:71 build/C/man2/shutdown.2:72
5646 msgid ""
5647 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
5648 "appropriately."
5649 msgstr ""
5650
5651 #. type: TP
5652 #: build/C/man2/getpeername.2:72 build/C/man2/shutdown.2:73
5653 #, no-wrap
5654 msgid "B<EBADF>"
5655 msgstr ""
5656
5657 #. type: Plain text
5658 #: build/C/man2/getpeername.2:77
5659 msgid "The argument I<sockfd> is not a valid descriptor."
5660 msgstr ""
5661
5662 #. type: TP
5663 #: build/C/man2/getpeername.2:77 build/C/man7/packet.7:245 build/C/man7/raw.7:145 build/C/man7/unix.7:329
5664 #, no-wrap
5665 msgid "B<EFAULT>"
5666 msgstr ""
5667
5668 #. type: Plain text
5669 #: build/C/man2/getpeername.2:83
5670 msgid ""
5671 "The I<addr> argument points to memory not in a valid part of the process "
5672 "address space."
5673 msgstr ""
5674
5675 #. type: Plain text
5676 #: build/C/man2/getpeername.2:87
5677 msgid "I<addrlen> is invalid (e.g., is negative)."
5678 msgstr ""
5679
5680 #. type: TP
5681 #: build/C/man2/getpeername.2:87 build/C/man7/packet.7:257
5682 #, no-wrap
5683 msgid "B<ENOBUFS>"
5684 msgstr ""
5685
5686 #. type: Plain text
5687 #: build/C/man2/getpeername.2:91
5688 msgid ""
5689 "Insufficient resources were available in the system to perform the "
5690 "operation."
5691 msgstr ""
5692
5693 #. type: Plain text
5694 #: build/C/man2/getpeername.2:94
5695 msgid "The socket is not connected."
5696 msgstr ""
5697
5698 #. type: TP
5699 #: build/C/man2/getpeername.2:94 build/C/man2/shutdown.2:80
5700 #, no-wrap
5701 msgid "B<ENOTSOCK>"
5702 msgstr ""
5703
5704 #. type: Plain text
5705 #: build/C/man2/getpeername.2:99
5706 msgid "The argument I<sockfd> is a file, not a socket."
5707 msgstr ""
5708
5709 #. type: Plain text
5710 #: build/C/man2/getpeername.2:103
5711 msgid ""
5712 "SVr4, 4.4BSD (the B<getpeername>()  function call first appeared in 4.2BSD), "
5713 "POSIX.1-2001."
5714 msgstr ""
5715
5716 #. type: Plain text
5717 #: build/C/man2/getpeername.2:114
5718 msgid ""
5719 "The third argument of B<getpeername>()  is in reality an I<int *> (and this "
5720 "is what 4.x BSD and libc4 and libc5 have).  Some POSIX confusion resulted in "
5721 "the present I<socklen_t>, also used by glibc.  See also B<accept>(2)."
5722 msgstr ""
5723
5724 #. type: Plain text
5725 #: build/C/man2/getpeername.2:121
5726 msgid ""
5727 "B<accept>(2), B<bind>(2), B<getsockname>(2), B<ip>(7), B<socket>(7), "
5728 "B<unix>(7)"
5729 msgstr ""
5730
5731 #. type: TH
5732 #: build/C/man3/getprotoent.3:28
5733 #, no-wrap
5734 msgid "GETPROTOENT"
5735 msgstr ""
5736
5737 #. type: Plain text
5738 #: build/C/man3/getprotoent.3:32
5739 msgid ""
5740 "getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent - "
5741 "get protocol entry"
5742 msgstr ""
5743
5744 #. type: Plain text
5745 #: build/C/man3/getprotoent.3:37
5746 #, no-wrap
5747 msgid "B<struct protoent *getprotoent(void);>\n"
5748 msgstr ""
5749
5750 #. type: Plain text
5751 #: build/C/man3/getprotoent.3:39
5752 #, no-wrap
5753 msgid "B<struct protoent *getprotobyname(const char *>I<name>B<);>\n"
5754 msgstr ""
5755
5756 #. type: Plain text
5757 #: build/C/man3/getprotoent.3:41
5758 #, no-wrap
5759 msgid "B<struct protoent *getprotobynumber(int >I<proto>B<);>\n"
5760 msgstr ""
5761
5762 #. type: Plain text
5763 #: build/C/man3/getprotoent.3:43
5764 #, no-wrap
5765 msgid "B<void setprotoent(int >I<stayopen>B<);>\n"
5766 msgstr ""
5767
5768 #. type: Plain text
5769 #: build/C/man3/getprotoent.3:45
5770 #, no-wrap
5771 msgid "B<void endprotoent(void);>\n"
5772 msgstr ""
5773
5774 #. type: Plain text
5775 #: build/C/man3/getprotoent.3:54
5776 msgid ""
5777 "The B<getprotoent>()  function reads the next entry from the protocols "
5778 "database (see B<protocols>(5))  and returns a I<protoent> structure "
5779 "containing the broken-out fields from the entry.  A connection is opened to "
5780 "the database if necessary."
5781 msgstr ""
5782
5783 #. type: Plain text
5784 #: build/C/man3/getprotoent.3:61
5785 msgid ""
5786 "The B<getprotobyname>()  function returns a I<protoent> structure for the "
5787 "entry from the database that matches the protocol name I<name>.  A "
5788 "connection is opened to the database if necessary."
5789 msgstr ""
5790
5791 #. type: Plain text
5792 #: build/C/man3/getprotoent.3:68
5793 msgid ""
5794 "The B<getprotobynumber>()  function returns a I<protoent> structure for the "
5795 "entry from the database that matches the protocol number I<number>.  A "
5796 "connection is opened to the database if necessary."
5797 msgstr ""
5798
5799 #. type: Plain text
5800 #: build/C/man3/getprotoent.3:78
5801 msgid ""
5802 "The B<setprotoent>()  function opens a connection to the database, and sets "
5803 "the next entry to the first entry.  If I<stayopen> is nonzero, then the "
5804 "connection to the database will not be closed between calls to one of the "
5805 "B<getproto*>()  functions."
5806 msgstr ""
5807
5808 #. type: Plain text
5809 #: build/C/man3/getprotoent.3:82
5810 msgid "The B<endprotoent>()  function closes the connection to the database."
5811 msgstr ""
5812
5813 #. type: Plain text
5814 #: build/C/man3/getprotoent.3:84
5815 msgid "The I<protoent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
5816 msgstr ""
5817
5818 #. type: Plain text
5819 #: build/C/man3/getprotoent.3:92
5820 #, no-wrap
5821 msgid ""
5822 "struct protoent {\n"
5823 "    char  *p_name;       /* official protocol name */\n"
5824 "    char **p_aliases;    /* alias list */\n"
5825 "    int    p_proto;      /* protocol number */\n"
5826 "}\n"
5827 msgstr ""
5828
5829 #. type: Plain text
5830 #: build/C/man3/getprotoent.3:96
5831 msgid "The members of the I<protoent> structure are:"
5832 msgstr ""
5833
5834 #. type: TP
5835 #: build/C/man3/getprotoent.3:96
5836 #, no-wrap
5837 msgid "I<p_name>"
5838 msgstr ""
5839
5840 #. type: Plain text
5841 #: build/C/man3/getprotoent.3:99
5842 msgid "The official name of the protocol."
5843 msgstr ""
5844
5845 #. type: TP
5846 #: build/C/man3/getprotoent.3:99
5847 #, no-wrap
5848 msgid "I<p_aliases>"
5849 msgstr ""
5850
5851 #. type: Plain text
5852 #: build/C/man3/getprotoent.3:102
5853 msgid "A NULL-terminated list of alternative names for the protocol."
5854 msgstr ""
5855
5856 #. type: TP
5857 #: build/C/man3/getprotoent.3:102
5858 #, no-wrap
5859 msgid "I<p_proto>"
5860 msgstr ""
5861
5862 #. type: Plain text
5863 #: build/C/man3/getprotoent.3:105
5864 msgid "The protocol number."
5865 msgstr ""
5866
5867 #. type: Plain text
5868 #: build/C/man3/getprotoent.3:114
5869 msgid ""
5870 "The B<getprotoent>(), B<getprotobyname>()  and B<getprotobynumber>()  "
5871 "functions return a pointer to a statically allocated I<protoent> structure, "
5872 "or a NULL pointer if an error occurs or the end of the file is reached."
5873 msgstr ""
5874
5875 #. type: TP
5876 #: build/C/man3/getprotoent.3:116 build/C/man5/protocols.5:77
5877 #, no-wrap
5878 msgid "I</etc/protocols>"
5879 msgstr ""
5880
5881 #. type: Plain text
5882 #: build/C/man3/getprotoent.3:119
5883 msgid "protocol database file"
5884 msgstr ""
5885
5886 #. type: Plain text
5887 #: build/C/man3/getprotoent.3:127
5888 msgid "B<getnetent>(3), B<getprotoent_r>(3), B<getservent>(3), B<protocols>(5)"
5889 msgstr ""
5890
5891 #. type: TH
5892 #: build/C/man3/getprotoent_r.3:24
5893 #, no-wrap
5894 msgid "GETPROTOENT_R"
5895 msgstr ""
5896
5897 #. type: Plain text
5898 #: build/C/man3/getprotoent_r.3:28
5899 msgid ""
5900 "getprotoent_r, getprotobyname_r, getprotobynumber_r - get protocol entry "
5901 "(reentrant)"
5902 msgstr ""
5903
5904 #. type: Plain text
5905 #: build/C/man3/getprotoent_r.3:34
5906 #, no-wrap
5907 msgid ""
5908 "B<int getprotoent_r(struct protoent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5909 "B<                size_t >I<buflen>B<, struct protoent **>I<result>B<);>\n"
5910 msgstr ""
5911
5912 #. type: Plain text
5913 #: build/C/man3/getprotoent_r.3:38
5914 #, no-wrap
5915 msgid ""
5916 "B<int getprotobyname_r(const char *>I<name>B<,>\n"
5917 "B<                struct protoent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5918 "B<                size_t >I<buflen>B<, struct protoent **>I<result>B<);>\n"
5919 msgstr ""
5920
5921 #. type: Plain text
5922 #: build/C/man3/getprotoent_r.3:42
5923 #, no-wrap
5924 msgid ""
5925 "B<int getprotobynumber_r(int >I<proto>B<,>\n"
5926 "B<                struct protoent *>I<result_buf>B<, char *>I<buf>B<,>\n"
5927 "B<                size_t >I<buflen>B<, struct protoent **>I<result>B<);>\n"
5928 msgstr ""
5929
5930 #. type: Plain text
5931 #: build/C/man3/getprotoent_r.3:53
5932 msgid "B<getprotoent_r>(), B<getprotobyname_r>(), B<getprotobynumber_r>():"
5933 msgstr ""
5934
5935 #. type: Plain text
5936 #: build/C/man3/getprotoent_r.3:74
5937 msgid ""
5938 "The B<getprotoent_r>(), B<getprotobyname_r>(), and B<getprotobynumber_r>()  "
5939 "functions are the reentrant equivalents of, respectively, B<getprotoent>(3), "
5940 "B<getprotobyname>(3), and B<getprotobynumber>(3).  They differ in the way "
5941 "that the I<protoent> structure is returned, and in the function calling "
5942 "signature and return value.  This manual page describes just the differences "
5943 "from the nonreentrant functions."
5944 msgstr ""
5945
5946 #. type: Plain text
5947 #: build/C/man3/getprotoent_r.3:80
5948 msgid ""
5949 "Instead of returning a pointer to a statically allocated I<protoent> "
5950 "structure as the function result, these functions copy the structure into "
5951 "the location pointed to by I<result_buf>."
5952 msgstr ""
5953
5954 #.  I can find no information on the required/recommended buffer size;
5955 #.  the nonreentrant functions use a 1024 byte buffer.
5956 #.  The 1024 byte value is also what the Solaris man page suggests. -- mtk
5957 #. type: Plain text
5958 #: build/C/man3/getprotoent_r.3:98
5959 msgid ""
5960 "The I<buf> array is used to store the string fields pointed to by the "
5961 "returned I<protoent> structure.  (The nonreentrant functions allocate these "
5962 "strings in static storage.)  The size of this array is specified in "
5963 "I<buflen>.  If I<buf> is too small, the call fails with the error B<ERANGE>, "
5964 "and the caller must try again with a larger buffer.  (A buffer of length "
5965 "1024 bytes should be sufficient for most applications.)"
5966 msgstr ""
5967
5968 #. type: Plain text
5969 #: build/C/man3/getprotoent_r.3:106
5970 msgid ""
5971 "If the function call successfully obtains a protocol record, then I<*result> "
5972 "is set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
5973 msgstr ""
5974
5975 #. type: Plain text
5976 #: build/C/man3/getprotoent_r.3:117
5977 msgid ""
5978 "On error, record not found (B<getprotobyname_r>(), B<getprotobynumber_r>()), "
5979 "or end of input (B<getprotoent_r>())  I<result> is set to NULL."
5980 msgstr ""
5981
5982 #. type: Plain text
5983 #: build/C/man3/getprotoent_r.3:122
5984 msgid "(B<getprotoent_r>())  No more records in database."
5985 msgstr ""
5986
5987 #. type: Plain text
5988 #: build/C/man3/getprotoent_r.3:147
5989 msgid ""
5990 "The program below uses B<getprotobyname_r>()  to retrieve the protocol "
5991 "record for the protocol named in its first command-line argument.  If a "
5992 "second (integer) command-line argument is supplied, it is used as the "
5993 "initial value for I<buflen>; if B<getprotobyname_r>()  fails with the error "
5994 "B<ERANGE>, the program retries with larger buffer sizes.  The following "
5995 "shell session shows a couple of sample runs:"
5996 msgstr ""
5997
5998 #. type: Plain text
5999 #: build/C/man3/getprotoent_r.3:158
6000 #, no-wrap
6001 msgid ""
6002 "$B< ./a.out tcp 1>\n"
6003 "ERANGE! Retrying with larger buffer\n"
6004 "getprotobyname_r() returned: 0 (success)  (buflen=78)\n"
6005 "p_name=tcp; p_proto=6; aliases=TCP\n"
6006 "$B< ./a.out xxx 1>\n"
6007 "ERANGE! Retrying with larger buffer\n"
6008 "getprotobyname_r() returned: 0 (success)  (buflen=100)\n"
6009 "Call failed/record not found\n"
6010 msgstr ""
6011
6012 #. type: Plain text
6013 #: build/C/man3/getprotoent_r.3:170 build/C/man3/getservent_r.3:168
6014 #, no-wrap
6015 msgid ""
6016 "#define _GNU_SOURCE\n"
6017 "#include E<lt>ctype.hE<gt>\n"
6018 "#include E<lt>netdb.hE<gt>\n"
6019 "#include E<lt>stdlib.hE<gt>\n"
6020 "#include E<lt>stdio.hE<gt>\n"
6021 "#include E<lt>errno.hE<gt>\n"
6022 "#include E<lt>string.hE<gt>\n"
6023 msgstr ""
6024
6025 #. type: Plain text
6026 #: build/C/man3/getprotoent_r.3:172 build/C/man3/getservent_r.3:170
6027 #, no-wrap
6028 msgid "#define MAX_BUF 10000\n"
6029 msgstr ""
6030
6031 #. type: Plain text
6032 #: build/C/man3/getprotoent_r.3:181
6033 #, no-wrap
6034 msgid ""
6035 "int\n"
6036 "main(int argc, char *argv[])\n"
6037 "{\n"
6038 "    int buflen, erange_cnt, s;\n"
6039 "    struct protoent result_buf;\n"
6040 "    struct protoent *result;\n"
6041 "    char buf[MAX_BUF];\n"
6042 "    char **p;\n"
6043 msgstr ""
6044
6045 #. type: Plain text
6046 #: build/C/man3/getprotoent_r.3:186
6047 #, no-wrap
6048 msgid ""
6049 "    if (argc E<lt> 2) {\n"
6050 "        printf(\"Usage: %s proto-name [buflen]\\en\", argv[0]);\n"
6051 "        exit(EXIT_FAILURE);\n"
6052 "    }\n"
6053 msgstr ""
6054
6055 #. type: Plain text
6056 #: build/C/man3/getprotoent_r.3:190
6057 #, no-wrap
6058 msgid ""
6059 "    buflen = 1024;\n"
6060 "    if (argc E<gt> 2)\n"
6061 "        buflen = atoi(argv[2]);\n"
6062 msgstr ""
6063
6064 #. type: Plain text
6065 #: build/C/man3/getprotoent_r.3:195 build/C/man3/getservent_r.3:198
6066 #, no-wrap
6067 msgid ""
6068 "    if (buflen E<gt> MAX_BUF) {\n"
6069 "        printf(\"Exceeded buffer limit (%d)\\en\", MAX_BUF);\n"
6070 "        exit(EXIT_FAILURE);\n"
6071 "    }\n"
6072 msgstr ""
6073
6074 #. type: Plain text
6075 #: build/C/man3/getprotoent_r.3:204
6076 #, no-wrap
6077 msgid ""
6078 "    erange_cnt = 0;\n"
6079 "    do {\n"
6080 "        s = getprotobyname_r(argv[1], &result_buf,\n"
6081 "                     buf, buflen, &result);\n"
6082 "        if (s == ERANGE) {\n"
6083 "            if (erange_cnt == 0)\n"
6084 "                printf(\"ERANGE! Retrying with larger buffer\\en\");\n"
6085 "            erange_cnt++;\n"
6086 msgstr ""
6087
6088 #. type: Plain text
6089 #: build/C/man3/getprotoent_r.3:207 build/C/man3/getservent_r.3:210
6090 #, no-wrap
6091 msgid ""
6092 "            /* Increment a byte at a time so we can see exactly\n"
6093 "               what size buffer was required */\n"
6094 msgstr ""
6095
6096 #. type: Plain text
6097 #: build/C/man3/getprotoent_r.3:209 build/C/man3/getservent_r.3:212
6098 #, no-wrap
6099 msgid "            buflen++;\n"
6100 msgstr ""
6101
6102 #. type: Plain text
6103 #: build/C/man3/getprotoent_r.3:216 build/C/man3/getservent_r.3:219
6104 #, no-wrap
6105 msgid ""
6106 "            if (buflen E<gt> MAX_BUF) {\n"
6107 "                printf(\"Exceeded buffer limit (%d)\\en\", MAX_BUF);\n"
6108 "                exit(EXIT_FAILURE);\n"
6109 "            }\n"
6110 "        }\n"
6111 "    } while (s == ERANGE);\n"
6112 msgstr ""
6113
6114 #. type: Plain text
6115 #: build/C/man3/getprotoent_r.3:220
6116 #, no-wrap
6117 msgid ""
6118 "    printf(\"getprotobyname_r() returned: %s  (buflen=%d)\\en\",\n"
6119 "            (s == 0) ? \"0 (success)\" : (s == ENOENT) ? \"ENOENT\" :\n"
6120 "            strerror(s), buflen);\n"
6121 msgstr ""
6122
6123 #. type: Plain text
6124 #: build/C/man3/getprotoent_r.3:225 build/C/man3/getservent_r.3:228
6125 #, no-wrap
6126 msgid ""
6127 "    if (s != 0 || result == NULL) {\n"
6128 "        printf(\"Call failed/record not found\\en\");\n"
6129 "        exit(EXIT_FAILURE);\n"
6130 "    }\n"
6131 msgstr ""
6132
6133 #. type: Plain text
6134 #: build/C/man3/getprotoent_r.3:231
6135 #, no-wrap
6136 msgid ""
6137 "    printf(\"p_name=%s; p_proto=%d; aliases=\",\n"
6138 "                result_buf.p_name, result_buf.p_proto);\n"
6139 "    for (p = result_buf.p_aliases; *p != NULL; p++)\n"
6140 "        printf(\"%s \", *p);\n"
6141 "    printf(\"\\en\");\n"
6142 msgstr ""
6143
6144 #. type: Plain text
6145 #: build/C/man3/getprotoent_r.3:238
6146 msgid "B<getprotoent>(3), B<protocols>(5)"
6147 msgstr ""
6148
6149 #. type: TH
6150 #: build/C/man3/getservent.3:32
6151 #, no-wrap
6152 msgid "GETSERVENT"
6153 msgstr ""
6154
6155 #. type: Plain text
6156 #: build/C/man3/getservent.3:36
6157 msgid ""
6158 "getservent, getservbyname, getservbyport, setservent, endservent - get "
6159 "service entry"
6160 msgstr ""
6161
6162 #. type: Plain text
6163 #: build/C/man3/getservent.3:41
6164 #, no-wrap
6165 msgid "B<struct servent *getservent(void);>\n"
6166 msgstr ""
6167
6168 #. type: Plain text
6169 #: build/C/man3/getservent.3:43
6170 #, no-wrap
6171 msgid ""
6172 "B<struct servent *getservbyname(const char *>I<name>B<, const char "
6173 "*>I<proto>B<);>\n"
6174 msgstr ""
6175
6176 #. type: Plain text
6177 #: build/C/man3/getservent.3:45
6178 #, no-wrap
6179 msgid "B<struct servent *getservbyport(int >I<port>B<, const char *>I<proto>B<);>\n"
6180 msgstr ""
6181
6182 #. type: Plain text
6183 #: build/C/man3/getservent.3:47
6184 #, no-wrap
6185 msgid "B<void setservent(int >I<stayopen>B<);>\n"
6186 msgstr ""
6187
6188 #. type: Plain text
6189 #: build/C/man3/getservent.3:49
6190 #, no-wrap
6191 msgid "B<void endservent(void);>\n"
6192 msgstr ""
6193
6194 #. type: Plain text
6195 #: build/C/man3/getservent.3:58
6196 msgid ""
6197 "The B<getservent>()  function reads the next entry from the services "
6198 "database (see B<services>(5))  and returns a I<servent> structure containing "
6199 "the broken-out fields from the entry.  A connection is opened to the "
6200 "database if necessary."
6201 msgstr ""
6202
6203 #. type: Plain text
6204 #: build/C/man3/getservent.3:66
6205 msgid ""
6206 "The B<getservbyname>()  function returns a I<servent> structure for the "
6207 "entry from the database that matches the service I<name> using protocol "
6208 "I<proto>.  If I<proto> is NULL, any protocol will be matched.  A connection "
6209 "is opened to the database if necessary."
6210 msgstr ""
6211
6212 #. type: Plain text
6213 #: build/C/man3/getservent.3:75
6214 msgid ""
6215 "The B<getservbyport>()  function returns a I<servent> structure for the "
6216 "entry from the database that matches the port I<port> (given in network byte "
6217 "order)  using protocol I<proto>.  If I<proto> is NULL, any protocol will be "
6218 "matched.  A connection is opened to the database if necessary."
6219 msgstr ""
6220
6221 #. type: Plain text
6222 #: build/C/man3/getservent.3:85
6223 msgid ""
6224 "The B<setservent>()  function opens a connection to the database, and sets "
6225 "the next entry to the first entry.  If I<stayopen> is nonzero, then the "
6226 "connection to the database will not be closed between calls to one of the "
6227 "B<getserv*>()  functions."
6228 msgstr ""
6229
6230 #. type: Plain text
6231 #: build/C/man3/getservent.3:89
6232 msgid "The B<endservent>()  function closes the connection to the database."
6233 msgstr ""
6234
6235 #. type: Plain text
6236 #: build/C/man3/getservent.3:91
6237 msgid "The I<servent> structure is defined in I<E<lt>netdb.hE<gt>> as follows:"
6238 msgstr ""
6239
6240 #. type: Plain text
6241 #: build/C/man3/getservent.3:100
6242 #, no-wrap
6243 msgid ""
6244 "struct servent {\n"
6245 "    char  *s_name;       /* official service name */\n"
6246 "    char **s_aliases;    /* alias list */\n"
6247 "    int    s_port;       /* port number */\n"
6248 "    char  *s_proto;      /* protocol to use */\n"
6249 "}\n"
6250 msgstr ""
6251
6252 #. type: Plain text
6253 #: build/C/man3/getservent.3:104
6254 msgid "The members of the I<servent> structure are:"
6255 msgstr ""
6256
6257 #. type: TP
6258 #: build/C/man3/getservent.3:104
6259 #, no-wrap
6260 msgid "I<s_name>"
6261 msgstr ""
6262
6263 #. type: Plain text
6264 #: build/C/man3/getservent.3:107
6265 msgid "The official name of the service."
6266 msgstr ""
6267
6268 #. type: TP
6269 #: build/C/man3/getservent.3:107
6270 #, no-wrap
6271 msgid "I<s_aliases>"
6272 msgstr ""
6273
6274 #. type: Plain text
6275 #: build/C/man3/getservent.3:110
6276 msgid "A NULL-terminated list of alternative names for the service."
6277 msgstr ""
6278
6279 #. type: TP
6280 #: build/C/man3/getservent.3:110
6281 #, no-wrap
6282 msgid "I<s_port>"
6283 msgstr ""
6284
6285 #. type: Plain text
6286 #: build/C/man3/getservent.3:113
6287 msgid "The port number for the service given in network byte order."
6288 msgstr ""
6289
6290 #. type: TP
6291 #: build/C/man3/getservent.3:113
6292 #, no-wrap
6293 msgid "I<s_proto>"
6294 msgstr ""
6295
6296 #. type: Plain text
6297 #: build/C/man3/getservent.3:116
6298 msgid "The name of the protocol to use with this service."
6299 msgstr ""
6300
6301 #. type: Plain text
6302 #: build/C/man3/getservent.3:125
6303 msgid ""
6304 "The B<getservent>(), B<getservbyname>()  and B<getservbyport>()  functions "
6305 "return a pointer to a statically allocated I<servent> structure, or a NULL "
6306 "pointer if an error occurs or the end of the file is reached."
6307 msgstr ""
6308
6309 #. type: TP
6310 #: build/C/man3/getservent.3:126 build/C/man5/services.5:185
6311 #, no-wrap
6312 msgid "I</etc/services>"
6313 msgstr ""
6314
6315 #. type: Plain text
6316 #: build/C/man3/getservent.3:129
6317 msgid "services database file"
6318 msgstr ""
6319
6320 #. type: Plain text
6321 #: build/C/man3/getservent.3:136
6322 msgid "B<getnetent>(3), B<getprotoent>(3), B<getservent_r>(3), B<services>(5)"
6323 msgstr ""
6324
6325 #. type: TH
6326 #: build/C/man3/getservent_r.3:24
6327 #, no-wrap
6328 msgid "GETSERVENT_R"
6329 msgstr ""
6330
6331 #. type: Plain text
6332 #: build/C/man3/getservent_r.3:28
6333 msgid ""
6334 "getservent_r, getservbyname_r, getservbyport_r - get service entry "
6335 "(reentrant)"
6336 msgstr ""
6337
6338 #. type: Plain text
6339 #: build/C/man3/getservent_r.3:34
6340 #, no-wrap
6341 msgid ""
6342 "B<int getservent_r(struct servent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6343 "B<                size_t >I<buflen>B<, struct servent **>I<result>B<);>\n"
6344 msgstr ""
6345
6346 #. type: Plain text
6347 #: build/C/man3/getservent_r.3:38
6348 #, no-wrap
6349 msgid ""
6350 "B<int getservbyname_r(const char *>I<name>B<, const char *>I<proto>B<,>\n"
6351 "B<                struct servent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6352 "B<                size_t >I<buflen>B<, struct servent **>I<result>B<);>\n"
6353 msgstr ""
6354
6355 #. type: Plain text
6356 #: build/C/man3/getservent_r.3:42
6357 #, no-wrap
6358 msgid ""
6359 "B<int getservbyport_r(int >I<port>B<, const char *>I<proto>B<,>\n"
6360 "B<                struct servent *>I<result_buf>B<, char *>I<buf>B<,>\n"
6361 "B<                size_t >I<buflen>B<, struct servent **>I<result>B<);>\n"
6362 msgstr ""
6363
6364 #. type: Plain text
6365 #: build/C/man3/getservent_r.3:53
6366 msgid "B<getservent_r>(), B<getservbyname_r>(), B<getservbyport_r>():"
6367 msgstr ""
6368
6369 #. type: Plain text
6370 #: build/C/man3/getservent_r.3:74
6371 msgid ""
6372 "The B<getservent_r>(), B<getservbyname_r>(), and B<getservbyport_r>()  "
6373 "functions are the reentrant equivalents of, respectively, B<getservent>(3), "
6374 "B<getservbyname>(3), and B<getservbyport>(3).  They differ in the way that "
6375 "the I<servent> structure is returned, and in the function calling signature "
6376 "and return value.  This manual page describes just the differences from the "
6377 "nonreentrant functions."
6378 msgstr ""
6379
6380 #. type: Plain text
6381 #: build/C/man3/getservent_r.3:80
6382 msgid ""
6383 "Instead of returning a pointer to a statically allocated I<servent> "
6384 "structure as the function result, these functions copy the structure into "
6385 "the location pointed to by I<result_buf>."
6386 msgstr ""
6387
6388 #.  I can find no information on the required/recommended buffer size;
6389 #.  the nonreentrant functions use a 1024 byte buffer -- mtk.
6390 #. type: Plain text
6391 #: build/C/man3/getservent_r.3:97
6392 msgid ""
6393 "The I<buf> array is used to store the string fields pointed to by the "
6394 "returned I<servent> structure.  (The nonreentrant functions allocate these "
6395 "strings in static storage.)  The size of this array is specified in "
6396 "I<buflen>.  If I<buf> is too small, the call fails with the error B<ERANGE>, "
6397 "and the caller must try again with a larger buffer.  (A buffer of length "
6398 "1024 bytes should be sufficient for most applications.)"
6399 msgstr ""
6400
6401 #. type: Plain text
6402 #: build/C/man3/getservent_r.3:105
6403 msgid ""
6404 "If the function call successfully obtains a service record, then I<*result> "
6405 "is set pointing to I<result_buf>; otherwise, I<*result> is set to NULL."
6406 msgstr ""
6407
6408 #. type: Plain text
6409 #: build/C/man3/getservent_r.3:108
6410 msgid ""
6411 "On success, these functions return 0.  On error, they return one of the "
6412 "positive error numbers listed in errors."
6413 msgstr ""
6414
6415 #. type: Plain text
6416 #: build/C/man3/getservent_r.3:116
6417 msgid ""
6418 "On error, record not found (B<getservbyname_r>(), B<getservbyport_r>()), or "
6419 "end of input (B<getservent_r>())  I<result> is set to NULL."
6420 msgstr ""
6421
6422 #. type: Plain text
6423 #: build/C/man3/getservent_r.3:121
6424 msgid "(B<getservent_r>())  No more records in database."
6425 msgstr ""
6426
6427 #. type: Plain text
6428 #: build/C/man3/getservent_r.3:146
6429 msgid ""
6430 "The program below uses B<getservbyport_r>()  to retrieve the service record "
6431 "for the port and protocol named in its first command-line argument.  If a "
6432 "third (integer) command-line argument is supplied, it is used as the initial "
6433 "value for I<buflen>; if B<getservbyport_r>()  fails with the error "
6434 "B<ERANGE>, the program retries with larger buffer sizes.  The following "
6435 "shell session shows a couple of sample runs:"
6436 msgstr ""
6437
6438 #. type: Plain text
6439 #: build/C/man3/getservent_r.3:156
6440 #, no-wrap
6441 msgid ""
6442 "$B< ./a.out 7 tcp 1>\n"
6443 "ERANGE! Retrying with larger buffer\n"
6444 "getservbyport_r() returned: 0 (success)  (buflen=87)\n"
6445 "s_name=echo; s_proto=tcp; s_port=7; aliases=\n"
6446 "$B< ./a.out 77777 tcp>\n"
6447 "getservbyport_r() returned: 0 (success)  (buflen=1024)\n"
6448 "Call failed/record not found\n"
6449 msgstr ""
6450
6451 #. type: Plain text
6452 #: build/C/man3/getservent_r.3:180
6453 #, no-wrap
6454 msgid ""
6455 "int\n"
6456 "main(int argc, char *argv[])\n"
6457 "{\n"
6458 "    int buflen, erange_cnt, port, s;\n"
6459 "    struct servent result_buf;\n"
6460 "    struct servent *result;\n"
6461 "    char buf[MAX_BUF];\n"
6462 "    char *protop;\n"
6463 "    char **p;\n"
6464 msgstr ""
6465
6466 #. type: Plain text
6467 #: build/C/man3/getservent_r.3:185
6468 #, no-wrap
6469 msgid ""
6470 "    if (argc E<lt> 3) {\n"
6471 "        printf(\"Usage: %s port-num proto-name [buflen]\\en\", argv[0]);\n"
6472 "        exit(EXIT_FAILURE);\n"
6473 "    }\n"
6474 msgstr ""
6475
6476 #. type: Plain text
6477 #: build/C/man3/getservent_r.3:189
6478 #, no-wrap
6479 msgid ""
6480 "    port = htons(atoi(argv[1]));\n"
6481 "    protop = (strcmp(argv[2], \"null\") == 0 ||\n"
6482 "\t      strcmp(argv[2], \"NULL\") == 0) ?  NULL : argv[2];\n"
6483 msgstr ""
6484
6485 #. type: Plain text
6486 #: build/C/man3/getservent_r.3:193
6487 #, no-wrap
6488 msgid ""
6489 "    buflen = 1024;\n"
6490 "    if (argc E<gt> 3)\n"
6491 "        buflen = atoi(argv[3]);\n"
6492 msgstr ""
6493
6494 #. type: Plain text
6495 #: build/C/man3/getservent_r.3:207
6496 #, no-wrap
6497 msgid ""
6498 "    erange_cnt = 0;\n"
6499 "    do {\n"
6500 "        s = getservbyport_r(port, protop, &result_buf,\n"
6501 "                     buf, buflen, &result);\n"
6502 "        if (s == ERANGE) {\n"
6503 "            if (erange_cnt == 0)\n"
6504 "                printf(\"ERANGE! Retrying with larger buffer\\en\");\n"
6505 "            erange_cnt++;\n"
6506 msgstr ""
6507
6508 #. type: Plain text
6509 #: build/C/man3/getservent_r.3:223
6510 #, no-wrap
6511 msgid ""
6512 "    printf(\"getservbyport_r() returned: %s  (buflen=%d)\\en\",\n"
6513 "            (s == 0) ? \"0 (success)\" : (s == ENOENT) ? \"ENOENT\" :\n"
6514 "            strerror(s), buflen);\n"
6515 msgstr ""
6516
6517 #. type: Plain text
6518 #: build/C/man3/getservent_r.3:235
6519 #, no-wrap
6520 msgid ""
6521 "    printf(\"s_name=%s; s_proto=%s; s_port=%d; aliases=\",\n"
6522 "                result_buf.s_name, result_buf.s_proto,\n"
6523 "                ntohs(result_buf.s_port));\n"
6524 "    for (p = result_buf.s_aliases; *p != NULL; p++)\n"
6525 "        printf(\"%s \", *p);\n"
6526 "    printf(\"\\en\");\n"
6527 msgstr ""
6528
6529 #. type: Plain text
6530 #: build/C/man3/getservent_r.3:242
6531 msgid "B<getservent>(3), B<services>(5)"
6532 msgstr ""
6533
6534 #. type: TH
6535 #: build/C/man5/host.conf.5:26
6536 #, no-wrap
6537 msgid "HOST.CONF"
6538 msgstr ""
6539
6540 #. type: TH
6541 #: build/C/man5/host.conf.5:26
6542 #, no-wrap
6543 msgid "2003-08-23"
6544 msgstr ""
6545
6546 #. type: TH
6547 #: build/C/man5/host.conf.5:26 build/C/man5/networks.5:24
6548 #, no-wrap
6549 msgid "Linux System Administration"
6550 msgstr ""
6551
6552 #. type: Plain text
6553 #: build/C/man5/host.conf.5:29
6554 msgid "host.conf - resolver configuration file"
6555 msgstr ""
6556
6557 #. type: Plain text
6558 #: build/C/man5/host.conf.5:38
6559 msgid ""
6560 "The file I</etc/host.conf> contains configuration information specific to "
6561 "the resolver library.  It should contain one configuration keyword per line, "
6562 "followed by appropriate configuration information.  The keywords recognized "
6563 "are I<order>, I<trim>, I<multi>, I<nospoof>, I<spoof>, and I<reorder>.  "
6564 "These keywords are described below."
6565 msgstr ""
6566
6567 #. type: TP
6568 #: build/C/man5/host.conf.5:38
6569 #, no-wrap
6570 msgid "I<order>"
6571 msgstr ""
6572
6573 #. type: Plain text
6574 #: build/C/man5/host.conf.5:44
6575 msgid ""
6576 "This keyword specifies how host lookups are to be performed.  It should be "
6577 "followed by one or more lookup methods, separated by commas.  Valid methods "
6578 "are I<bind>, I<hosts>, and I<nis>."
6579 msgstr ""
6580
6581 #. type: TP
6582 #: build/C/man5/host.conf.5:44
6583 #, no-wrap
6584 msgid "I<trim>"
6585 msgstr ""
6586
6587 #. type: Plain text
6588 #: build/C/man5/host.conf.5:61
6589 msgid ""
6590 "This keyword may be listed more than once.  Each time it should be followed "
6591 "by a list of domains, separated by colons (\\(aq:\\(aq), semicolons "
6592 "(\\(aq;\\(aq) or commas (\\(aq,\\(aq), with the leading dot.  When set, the "
6593 "resolv+ library will automatically trim the given domain name from the end "
6594 "of any hostname resolved via DNS.  This is intended for use with local hosts "
6595 "and domains.  (Related note: trim will not affect hostnames gathered via NIS "
6596 "or the hosts file.  Care should be taken to ensure that the first hostname "
6597 "for each entry in the hosts file is fully qualified or unqualified, as "
6598 "appropriate for the local installation.)"
6599 msgstr ""
6600
6601 #. type: TP
6602 #: build/C/man5/host.conf.5:61
6603 #, no-wrap
6604 msgid "I<multi>"
6605 msgstr ""
6606
6607 #. type: Plain text
6608 #: build/C/man5/host.conf.5:76
6609 msgid ""
6610 "Valid values are I<on> and I<off>.  If set to I<on>, the resolv+ library "
6611 "will return all valid addresses for a host that appears in the I</etc/hosts> "
6612 "file, instead of only the first.  This is I<off> by default, as it may cause "
6613 "a substantial performance loss at sites with large hosts files."
6614 msgstr ""
6615
6616 #. type: TP
6617 #: build/C/man5/host.conf.5:76
6618 #, no-wrap
6619 msgid "I<nospoof>"
6620 msgstr ""
6621
6622 #. type: Plain text
6623 #: build/C/man5/host.conf.5:91
6624 msgid ""
6625 "Valid values are I<on> and I<off>.  If set to I<on>, the resolv+ library "
6626 "will attempt to prevent hostname spoofing to enhance the security of "
6627 "B<rlogin> and B<rsh>.  It works as follows: after performing a host address "
6628 "lookup, resolv+ will perform a hostname lookup for that address.  If the two "
6629 "hostnames do not match, the query will fail.  The default value is I<off>."
6630 msgstr ""
6631
6632 #. type: TP
6633 #: build/C/man5/host.conf.5:91
6634 #, no-wrap
6635 msgid "I<spoofalert>"
6636 msgstr ""
6637
6638 #. type: Plain text
6639 #: build/C/man5/host.conf.5:103
6640 msgid ""
6641 "Valid values are I<on> and I<off>.  If this option is set to I<on> and the "
6642 "I<nospoof> option is also set, resolv+ will log a warning of the error via "
6643 "the syslog facility.  The default value is I<off>."
6644 msgstr ""
6645
6646 #. type: TP
6647 #: build/C/man5/host.conf.5:103
6648 #, no-wrap
6649 msgid "I<spoof>"
6650 msgstr ""
6651
6652 #. type: Plain text
6653 #: build/C/man5/host.conf.5:122
6654 msgid ""
6655 "Valid values are I<off>, I<nowarn> and I<warn>.  If this option is set to "
6656 "I<off>, spoofed addresses are permitted and no warnings will be emitted via "
6657 "the syslog facility.  If this option is set to I<warn>, resolv+ will attempt "
6658 "to prevent hostname spoofing to enhance the security and log a warning of "
6659 "the error via the syslog facility.  If this option is set to I<nowarn>, the "
6660 "resolv+ library will attempt to prevent hostname spoofing to enhance the "
6661 "security but not emit warnings via the syslog facility.  Setting this option "
6662 "to anything else is equal to setting it to I<nowarn>."
6663 msgstr ""
6664
6665 #. type: TP
6666 #: build/C/man5/host.conf.5:122
6667 #, no-wrap
6668 msgid "I<reorder>"
6669 msgstr ""
6670
6671 #. type: Plain text
6672 #: build/C/man5/host.conf.5:135
6673 msgid ""
6674 "Valid values are I<on> and I<off>.  If set to I<on>, resolv+ will attempt to "
6675 "reorder host addresses so that local addresses (i.e., on the same subnet) "
6676 "are listed first when a B<gethostbyname>(3)  is performed.  Reordering is "
6677 "done for all lookup methods.  The default value is I<off>."
6678 msgstr ""
6679
6680 #. type: SH
6681 #: build/C/man5/host.conf.5:135
6682 #, no-wrap
6683 msgid "ENVIRONMENT"
6684 msgstr ""
6685
6686 #. type: Plain text
6687 #: build/C/man5/host.conf.5:139
6688 msgid ""
6689 "There are six environment variables that can be used to allow users to "
6690 "override the behavior which is configured in I</etc/host.conf>."
6691 msgstr ""
6692
6693 #. type: TP
6694 #: build/C/man5/host.conf.5:139
6695 #, no-wrap
6696 msgid "B<RESOLV_HOST_CONF>"
6697 msgstr ""
6698
6699 #. type: Plain text
6700 #: build/C/man5/host.conf.5:143
6701 msgid ""
6702 "If set this variable points to a file that should be read instead of "
6703 "I</etc/host.conf>."
6704 msgstr ""
6705
6706 #. type: TP
6707 #: build/C/man5/host.conf.5:143
6708 #, no-wrap
6709 msgid "B<RESOLV_SERV_ORDER>"
6710 msgstr ""
6711
6712 #. type: Plain text
6713 #: build/C/man5/host.conf.5:148
6714 msgid "Overrides the I<order> command."
6715 msgstr ""
6716
6717 #. type: TP
6718 #: build/C/man5/host.conf.5:148
6719 #, no-wrap
6720 msgid "B<RESOLV_SPOOF_CHECK>"
6721 msgstr ""
6722
6723 #. type: Plain text
6724 #: build/C/man5/host.conf.5:157
6725 msgid ""
6726 "Overrides the I<nospoof>, I<spoofalert> and I<spoof> commands in the same "
6727 "way as the I<spoof> command is parsed.  Valid values are I<off>, I<nowarn> "
6728 "and I<warn>."
6729 msgstr ""
6730
6731 #. type: TP
6732 #: build/C/man5/host.conf.5:157
6733 #, no-wrap
6734 msgid "B<RESOLV_MULTI>"
6735 msgstr ""
6736
6737 #. type: Plain text
6738 #: build/C/man5/host.conf.5:162
6739 msgid "Overrides the I<multi> command."
6740 msgstr ""
6741
6742 #. type: TP
6743 #: build/C/man5/host.conf.5:162
6744 #, no-wrap
6745 msgid "B<RESOLV_REORDER>"
6746 msgstr ""
6747
6748 #. type: Plain text
6749 #: build/C/man5/host.conf.5:167
6750 msgid "Overrides the I<reorder> command."
6751 msgstr ""
6752
6753 #. type: TP
6754 #: build/C/man5/host.conf.5:167
6755 #, no-wrap
6756 msgid "B<RESOLV_ADD_TRIM_DOMAINS>"
6757 msgstr ""
6758
6759 #. type: Plain text
6760 #: build/C/man5/host.conf.5:172
6761 msgid ""
6762 "A list of domains, separated by colons (\\(aq:\\(aq), semicolons "
6763 "(\\(aq;\\(aq) or commas (\\(aq,\\(aq), with the leading dot, which will be "
6764 "added to the list of domains that should be trimmed."
6765 msgstr ""
6766
6767 #. type: TP
6768 #: build/C/man5/host.conf.5:172
6769 #, no-wrap
6770 msgid "B<RESOLV_OVERRIDE_TRIM_DOMAINS>"
6771 msgstr ""
6772
6773 #. type: Plain text
6774 #: build/C/man5/host.conf.5:180
6775 msgid ""
6776 "A list of domains, separated by colons (\\(aq:\\(aq), semicolons "
6777 "(\\(aq;\\(aq) or commas (\\(aq,\\(aq), with the leading dot, which will "
6778 "replace the list of domains that should be trimmed.  Overrides the I<trim> "
6779 "command."
6780 msgstr ""
6781
6782 #. type: Plain text
6783 #: build/C/man5/host.conf.5:184 build/C/man5/host.conf.5:187
6784 msgid "Resolver configuration file"
6785 msgstr ""
6786
6787 #. type: TP
6788 #: build/C/man5/host.conf.5:184
6789 #, no-wrap
6790 msgid "I</etc/resolv.conf>"
6791 msgstr ""
6792
6793 #. type: Plain text
6794 #: build/C/man5/host.conf.5:190
6795 msgid "Local hosts database"
6796 msgstr ""
6797
6798 #. type: Plain text
6799 #: build/C/man5/host.conf.5:199
6800 msgid ""
6801 "The following differences exist compared to the original implementation.  A "
6802 "new command I<spoof> and a new environment variable B<RESOLV_SPOOF_CHECK> "
6803 "can take arguments like I<off>, I<nowarn> and I<warn>.  Line comments can "
6804 "appear anywhere and not only at the beginning of a line."
6805 msgstr ""
6806
6807 #. type: Plain text
6808 #: build/C/man5/host.conf.5:204
6809 msgid "B<gethostbyname>(3), B<hostname>(7), B<named>(8), B<resolv+>(8)"
6810 msgstr ""
6811
6812 #. type: TH
6813 #: build/C/man7/hostname.7:37
6814 #, no-wrap
6815 msgid "HOSTNAME"
6816 msgstr ""
6817
6818 #. type: TH
6819 #: build/C/man7/hostname.7:37
6820 #, no-wrap
6821 msgid "2010-11-07"
6822 msgstr ""
6823
6824 #. type: Plain text
6825 #: build/C/man7/hostname.7:40
6826 msgid "hostname - hostname resolution description"
6827 msgstr ""
6828
6829 #. type: Plain text
6830 #: build/C/man7/hostname.7:44
6831 msgid ""
6832 "Hostnames are domains, where a domain is a hierarchical, dot-separated list "
6833 "of subdomains; for example, the machine monet, in the Berkeley subdomain of "
6834 "the EDU domain would be represented as \"monet.Berkeley.EDU\"."
6835 msgstr ""
6836
6837 #. type: Plain text
6838 #: build/C/man7/hostname.7:53
6839 msgid ""
6840 "Hostnames are often used with network client and server programs, which must "
6841 "generally translate the name to an address for use.  (This task is generally "
6842 "performed by either B<getaddrinfo>(3)  or the obsolete B<gethostbyname>(3).)  "
6843 "Hostnames are resolved by the Internet name resolver in the following "
6844 "fashion."
6845 msgstr ""
6846
6847 #. type: Plain text
6848 #: build/C/man7/hostname.7:66
6849 msgid ""
6850 "If the name consists of a single component, that is, contains no dot, and if "
6851 "the environment variable B<HOSTALIASES> is set to the name of a file, that "
6852 "file is searched for any string matching the input hostname.  The file "
6853 "should consist of lines made up of two white-space separated strings, the "
6854 "first of which is the hostname alias, and the second of which is the "
6855 "complete hostname to be substituted for that alias.  If a case-insensitive "
6856 "match is found between the hostname to be resolved and the first field of a "
6857 "line in the file, the substituted name is looked up with no further "
6858 "processing."
6859 msgstr ""
6860
6861 #. type: Plain text
6862 #: build/C/man7/hostname.7:70
6863 msgid ""
6864 "If the input name ends with a trailing dot, the trailing dot is removed, and "
6865 "the remaining name is looked up with no further processing."
6866 msgstr ""
6867
6868 #. type: Plain text
6869 #: build/C/man7/hostname.7:83
6870 msgid ""
6871 "If the input name does not end with a trailing dot, it is looked up by "
6872 "searching through a list of domains until a match is found.  The default "
6873 "search list includes first the local domain, then its parent domains with at "
6874 "least 2 name components (longest first).  For example, in the domain "
6875 "CS.Berkeley.EDU, the name lithium.CChem will be checked first as "
6876 "lithium.CChem.CS.Berkeley.EDU and then as lithium.CChem.Berkeley.EDU.  "
6877 "Lithium.CChem.EDU will not be tried, as there is only one component "
6878 "remaining from the local domain.  The search path can be changed from the "
6879 "default by a system-wide configuration file (see B<resolver>(5))."
6880 msgstr ""
6881
6882 #.  .SH HISTORY
6883 #.  Hostname appeared in
6884 #.  4.2BSD.
6885 #. type: Plain text
6886 #: build/C/man7/hostname.7:91
6887 msgid "B<gethostbyname>(3), B<resolver>(5), B<mailaddr>(7), B<named>(8)"
6888 msgstr ""
6889
6890 #. type: TH
6891 #: build/C/man5/hosts.5:27
6892 #, no-wrap
6893 msgid "HOSTS"
6894 msgstr ""
6895
6896 #. type: TH
6897 #: build/C/man5/hosts.5:27
6898 #, no-wrap
6899 msgid "2002-06-16"
6900 msgstr ""
6901
6902 #. type: Plain text
6903 #: build/C/man5/hosts.5:30
6904 msgid "hosts - static table lookup for hostnames"
6905 msgstr ""
6906
6907 #. type: Plain text
6908 #: build/C/man5/hosts.5:32
6909 msgid "B</etc/hosts>"
6910 msgstr ""
6911
6912 #. type: Plain text
6913 #: build/C/man5/hosts.5:40
6914 msgid ""
6915 "This manual page describes the format of the I</etc/hosts> file.  This file "
6916 "is a simple text file that associates IP addresses with hostnames, one line "
6917 "per IP address.  For each host a single line should be present with the "
6918 "following information:"
6919 msgstr ""
6920
6921 #. type: Plain text
6922 #: build/C/man5/hosts.5:43
6923 msgid "IP_address canonical_hostname [aliases...]"
6924 msgstr ""
6925
6926 #. type: Plain text
6927 #: build/C/man5/hosts.5:56
6928 msgid ""
6929 "Fields of the entry are separated by any number of blanks and/or tab "
6930 "characters.  Text from a \"#\" character until the end of the line is a "
6931 "comment, and is ignored.  Host names may contain only alphanumeric "
6932 "characters, minus signs (\"-\"), and periods (\".\").  They must begin with "
6933 "an alphabetic character and end with an alphanumeric character.  Optional "
6934 "aliases provide for name changes, alternate spellings, shorter hostnames, or "
6935 "generic hostnames (for example, I<localhost>)."
6936 msgstr ""
6937
6938 #. type: Plain text
6939 #: build/C/man5/hosts.5:64
6940 msgid ""
6941 "The Berkeley Internet Name Domain (BIND) Server implements the Internet name "
6942 "server for UNIX systems.  It augments or replaces the I</etc/hosts> file or "
6943 "hostname lookup, and frees a host from relying on I</etc/hosts> being up to "
6944 "date and complete."
6945 msgstr ""
6946
6947 #. type: Plain text
6948 #: build/C/man5/hosts.5:67
6949 msgid ""
6950 "In modern systems, even though the host table has been superseded by DNS, it "
6951 "is still widely used for:"
6952 msgstr ""
6953
6954 #. type: TP
6955 #: build/C/man5/hosts.5:67
6956 #, no-wrap
6957 msgid "B<bootstrapping>"
6958 msgstr ""
6959
6960 #. type: Plain text
6961 #: build/C/man5/hosts.5:73
6962 msgid ""
6963 "Most systems have a small host table containing the name and address "
6964 "information for important hosts on the local network.  This is useful when "
6965 "DNS is not running, for example during system bootup."
6966 msgstr ""
6967
6968 #. type: TP
6969 #: build/C/man5/hosts.5:73
6970 #, no-wrap
6971 msgid "B<NIS>"
6972 msgstr ""
6973
6974 #. type: Plain text
6975 #: build/C/man5/hosts.5:79
6976 msgid ""
6977 "Sites that use NIS use the host table as input to the NIS host database.  "
6978 "Even though NIS can be used with DNS, most NIS sites still use the host "
6979 "table with an entry for all local hosts as a backup."
6980 msgstr ""
6981
6982 #. type: TP
6983 #: build/C/man5/hosts.5:79
6984 #, no-wrap
6985 msgid "B<isolated nodes>"
6986 msgstr ""
6987
6988 #. type: Plain text
6989 #: build/C/man5/hosts.5:86
6990 msgid ""
6991 "Very small sites that are isolated from the network use the host table "
6992 "instead of DNS.  If the local information rarely changes, and the network is "
6993 "not connected to the Internet, DNS offers little advantage."
6994 msgstr ""
6995
6996 #. type: Plain text
6997 #: build/C/man5/hosts.5:91
6998 msgid ""
6999 "Modifications to this file normally take effect immediately, except in cases "
7000 "where the file is cached by applications."
7001 msgstr ""
7002
7003 #. type: SS
7004 #: build/C/man5/hosts.5:91
7005 #, no-wrap
7006 msgid "Historical Notes"
7007 msgstr ""
7008
7009 #. type: Plain text
7010 #: build/C/man5/hosts.5:94
7011 msgid ""
7012 "RFC\\ 952 gave the original format for the host table, though it has since "
7013 "changed."
7014 msgstr ""
7015
7016 #. type: Plain text
7017 #: build/C/man5/hosts.5:107
7018 msgid ""
7019 "Before the advent of DNS, the host table was the only way of resolving "
7020 "hostnames on the fledgling Internet.  Indeed, this file could be created "
7021 "from the official host data base maintained at the Network Information "
7022 "Control Center (NIC), though local changes were often required to bring it "
7023 "up to date regarding unofficial aliases and/or unknown hosts.  The NIC no "
7024 "longer maintains the hosts.txt files, though looking around at the time of "
7025 "writing (circa 2000), there are historical hosts.txt files on the WWW.  I "
7026 "just found three, from 92, 94, and 95."
7027 msgstr ""
7028
7029 #. type: Plain text
7030 #: build/C/man5/hosts.5:114
7031 #, no-wrap
7032 msgid ""
7033 "127.0.0.1       localhost\n"
7034 "192.168.1.10    foo.mydomain.org       foo\n"
7035 "192.168.1.13    bar.mydomain.org       bar\n"
7036 "146.82.138.7    master.debian.org      master\n"
7037 "209.237.226.90  www.opensource.org\n"
7038 msgstr ""
7039
7040 #.  .SH AUTHOR
7041 #.  This manual page was written by Manoj Srivastava <srivasta@debian.org>,
7042 #.  for the Debian GNU/Linux system.
7043 #. type: Plain text
7044 #: build/C/man5/hosts.5:125
7045 msgid ""
7046 "B<hostname>(1), B<resolver>(3), B<resolver>(5), B<hostname>(7), B<named>(8), "
7047 "Internet RFC\\ 952"
7048 msgstr ""
7049
7050 #. type: TH
7051 #: build/C/man5/hosts.equiv.5:3
7052 #, no-wrap
7053 msgid "HOSTS.EQUIV"
7054 msgstr ""
7055
7056 #. type: TH
7057 #: build/C/man5/hosts.equiv.5:3
7058 #, no-wrap
7059 msgid "2003-08-24"
7060 msgstr ""
7061
7062 #. type: Plain text
7063 #: build/C/man5/hosts.equiv.5:7
7064 msgid ""
7065 "/etc/hosts.equiv - list of hosts and users that are granted \"trusted\" B<r> "
7066 "command access to your system"
7067 msgstr ""
7068
7069 #. type: Plain text
7070 #: build/C/man5/hosts.equiv.5:11
7071 msgid ""
7072 "The B<hosts.equiv> file allows or denies hosts and users to use the "
7073 "B<r>-commands (e.g., B<rlogin>, B<rsh> or B<rcp>) without supplying a "
7074 "password."
7075 msgstr ""
7076
7077 #. type: Plain text
7078 #: build/C/man5/hosts.equiv.5:13
7079 msgid "The file uses the following format:"
7080 msgstr ""
7081
7082 #. type: TP
7083 #: build/C/man5/hosts.equiv.5:13
7084 #, no-wrap
7085 msgid "I<[ + | - ]> I<[hostname]> I<[username]>"
7086 msgstr ""
7087
7088 #. type: Plain text
7089 #: build/C/man5/hosts.equiv.5:27
7090 msgid ""
7091 "The I<hostname> is the name of a host which is logically equivalent to the "
7092 "local host.  Users logged into that host are allowed to access like-named "
7093 "user accounts on the local host without supplying a password.  The "
7094 "I<hostname> may be (optionally) preceded by a plus (+) sign.  If the plus "
7095 "sign is used alone it allows any host to access your system.  You can "
7096 "explicitly deny access to a host by preceding the I<hostname> by a minus (-) "
7097 "sign.  Users from that host must always supply a password.  For security "
7098 "reasons you should always use the FQDN of the hostname and not the short "
7099 "hostname."
7100 msgstr ""
7101
7102 #. type: Plain text
7103 #: build/C/man5/hosts.equiv.5:39
7104 msgid ""
7105 "The I<username> entry grants a specific user access to all user accounts "
7106 "(except root) without supplying a password.  That means the user is NOT "
7107 "restricted to like-named accounts.  The I<username> may be (optionally) "
7108 "preceded by a plus (+) sign.  You can also explicitly deny access to a "
7109 "specific user by preceding the I<username> with a minus (-) sign.  This says "
7110 "that the user is not trusted no matter what other entries for that host "
7111 "exist."
7112 msgstr ""
7113
7114 #. type: Plain text
7115 #: build/C/man5/hosts.equiv.5:41
7116 msgid "Netgroups can be specified by preceding the netgroup by an @ sign."
7117 msgstr ""
7118
7119 #. type: Plain text
7120 #: build/C/man5/hosts.equiv.5:47
7121 msgid ""
7122 "Be extremely careful when using the plus (+) sign.  A simple typographical "
7123 "error could result in a standalone plus sign.  A standalone plus sign is a "
7124 "wildcard character that means \"any host\"!"
7125 msgstr ""
7126
7127 #. type: Plain text
7128 #: build/C/man5/hosts.equiv.5:49
7129 msgid "I</etc/hosts.equiv>"
7130 msgstr ""
7131
7132 #. type: Plain text
7133 #: build/C/man5/hosts.equiv.5:54
7134 msgid ""
7135 "Some systems will only honor the contents of this file when it has owner "
7136 "root and no write permission for anybody else.  Some exceptionally paranoid "
7137 "systems even require that there be no other hard links to the file."
7138 msgstr ""
7139
7140 #. type: Plain text
7141 #: build/C/man5/hosts.equiv.5:62
7142 msgid ""
7143 "Modern systems use the Pluggable Authentication Modules library (PAM).  With "
7144 "PAM a standalone plus sign is only considered a wildcard character which "
7145 "means \"any host\" when the word I<promiscuous> is added to the auth "
7146 "component line in your PAM file for the particular service (e.g., "
7147 "B<rlogin>)."
7148 msgstr ""
7149
7150 #. type: Plain text
7151 #: build/C/man5/hosts.equiv.5:66
7152 msgid "B<rhosts>(5), B<rlogind>(8), B<rshd>(8)"
7153 msgstr ""
7154
7155 #. type: TH
7156 #: build/C/man7/icmp.7:7
7157 #, no-wrap
7158 msgid "ICMP"
7159 msgstr ""
7160
7161 #. type: TH
7162 #: build/C/man7/icmp.7:7
7163 #, no-wrap
7164 msgid "2010-02-25"
7165 msgstr ""
7166
7167 #. type: Plain text
7168 #: build/C/man7/icmp.7:10
7169 msgid "icmp, IPPROTO_ICMP - Linux IPv4 ICMP kernel module."
7170 msgstr ""
7171
7172 #. type: Plain text
7173 #: build/C/man7/icmp.7:18
7174 msgid ""
7175 "This kernel protocol module implements the Internet Control Message Protocol "
7176 "defined in RFC\\ 792.  It is used to signal error conditions and for "
7177 "diagnosis.  The user doesn't interact directly with this module; instead it "
7178 "communicates with the other protocols in the kernel and these pass the ICMP "
7179 "errors to the application layers.  The kernel ICMP module also answers ICMP "
7180 "requests."
7181 msgstr ""
7182
7183 #. type: Plain text
7184 #: build/C/man7/icmp.7:30
7185 msgid ""
7186 "A user protocol may receive ICMP packets for all local sockets by opening a "
7187 "raw socket with the protocol B<IPPROTO_ICMP>.  See B<raw>(7)  for more "
7188 "information.  The types of ICMP packets passed to the socket can be filtered "
7189 "using the B<ICMP_FILTER> socket option.  ICMP packets are always processed "
7190 "by the kernel too, even when passed to a user socket."
7191 msgstr ""
7192
7193 #. type: Plain text
7194 #: build/C/man7/icmp.7:36
7195 msgid ""
7196 "Linux limits the rate of ICMP error packets to each destination.  "
7197 "B<ICMP_REDIRECT> and B<ICMP_DEST_UNREACH> are also limited by the "
7198 "destination route of the incoming packets."
7199 msgstr ""
7200
7201 #.  FIXME better description needed
7202 #. type: Plain text
7203 #: build/C/man7/icmp.7:49
7204 msgid ""
7205 "ICMP supports a set of I</proc> interfaces to configure some global IP "
7206 "parameters.  The parameters can be accessed by reading or writing files in "
7207 "the directory I</proc/sys/net/ipv4/>.  Most of these parameters are rate "
7208 "limitations for specific ICMP types.  Linux 2.2 uses a token bucket filter "
7209 "to limit ICMPs.  The value is the timeout in jiffies until the token bucket "
7210 "filter is cleared after a burst.  A jiffy is a system dependent unit, "
7211 "usually 10ms on i386 and about 1ms on alpha and ia64."
7212 msgstr ""
7213
7214 #. type: TP
7215 #: build/C/man7/icmp.7:49
7216 #, no-wrap
7217 msgid "I<icmp_destunreach_rate> (Linux 2.2 to 2.4.9)"
7218 msgstr ""
7219
7220 #.  Precisely: from 2.1.102
7221 #. type: Plain text
7222 #: build/C/man7/icmp.7:58
7223 msgid ""
7224 "Maximum rate to send ICMP Destination Unreachable packets.  This limits the "
7225 "rate at which packets are sent to any individual route or destination.  The "
7226 "limit does not affect sending of B<ICMP_FRAG_NEEDED> packets needed for path "
7227 "MTU discovery."
7228 msgstr ""
7229
7230 #. type: TP
7231 #: build/C/man7/icmp.7:58
7232 #, no-wrap
7233 msgid "I<icmp_echo_ignore_all> (since Linux 2.2)"
7234 msgstr ""
7235
7236 #.  Precisely: 2.1.68
7237 #. type: Plain text
7238 #: build/C/man7/icmp.7:64
7239 msgid "If this value is nonzero, Linux will ignore all B<ICMP_ECHO> requests."
7240 msgstr ""
7241
7242 #. type: TP
7243 #: build/C/man7/icmp.7:64
7244 #, no-wrap
7245 msgid "I<icmp_echo_ignore_broadcasts> (since Linux 2.2)"
7246 msgstr ""
7247
7248 #.  Precisely: from 2.1.68
7249 #. type: Plain text
7250 #: build/C/man7/icmp.7:70
7251 msgid ""
7252 "If this value is nonzero, Linux will ignore all B<ICMP_ECHO> packets sent to "
7253 "broadcast addresses."
7254 msgstr ""
7255
7256 #. type: TP
7257 #: build/C/man7/icmp.7:70
7258 #, no-wrap
7259 msgid "I<icmp_echoreply_rate> (Linux 2.2 to 2.4.9)"
7260 msgstr ""
7261
7262 #.  Precisely: from 2.1.102
7263 #. type: Plain text
7264 #: build/C/man7/icmp.7:78
7265 msgid ""
7266 "Maximum rate for sending B<ICMP_ECHOREPLY> packets in response to "
7267 "B<ICMP_ECHOREQUEST> packets."
7268 msgstr ""
7269
7270 #. type: TP
7271 #: build/C/man7/icmp.7:78
7272 #, no-wrap
7273 msgid ""
7274 "I<icmp_errors_use_inbound_ifaddr> (Boolean; default: disabled; since Linux "
7275 "2.6.12)"
7276 msgstr ""
7277
7278 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7279 #. type: Plain text
7280 #: build/C/man7/icmp.7:83
7281 msgid ""
7282 "If disabled, ICMP error messages are sent with the primary address of the "
7283 "exiting interface."
7284 msgstr ""
7285
7286 #. type: Plain text
7287 #: build/C/man7/icmp.7:89
7288 msgid ""
7289 "If enabled, the message will be sent with the primary address of the "
7290 "interface that received the packet that caused the ICMP error.  This is the "
7291 "behavior that many network administrators will expect from a router.  And it "
7292 "can make debugging complicated network layouts much easier."
7293 msgstr ""
7294
7295 #. type: Plain text
7296 #: build/C/man7/icmp.7:93
7297 msgid ""
7298 "Note that if no primary address exists for the interface selected, then the "
7299 "primary address of the first non-loopback interface that has one will be "
7300 "used regardless of this setting."
7301 msgstr ""
7302
7303 #. type: TP
7304 #: build/C/man7/icmp.7:93
7305 #, no-wrap
7306 msgid ""
7307 "I<icmp_ignore_bogus_error_responses> (Boolean; default: disabled; since "
7308 "Linux 2.2)"
7309 msgstr ""
7310
7311 #.  precisely: since 2.1.32
7312 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7313 #. type: Plain text
7314 #: build/C/man7/icmp.7:101
7315 msgid ""
7316 "Some routers violate RFC1122 by sending bogus responses to broadcast "
7317 "frames.  Such violations are normally logged via a kernel warning.  If this "
7318 "parameter is enabled, the kernel will not give such warnings, which will "
7319 "avoid log file clutter."
7320 msgstr ""
7321
7322 #. type: TP
7323 #: build/C/man7/icmp.7:101
7324 #, no-wrap
7325 msgid "I<icmp_paramprob_rate> (Linux 2.2 to 2.4.9)"
7326 msgstr ""
7327
7328 #.  Precisely: from 2.1.102
7329 #. type: Plain text
7330 #: build/C/man7/icmp.7:108
7331 msgid ""
7332 "Maximum rate for sending B<ICMP_PARAMETERPROB> packets.  These packets are "
7333 "sent when a packet arrives with an invalid IP header."
7334 msgstr ""
7335
7336 #. type: TP
7337 #: build/C/man7/icmp.7:108
7338 #, no-wrap
7339 msgid "I<icmp_ratelimit> (integer; default: 1000; since Linux 2.4.10)"
7340 msgstr ""
7341
7342 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7343 #. type: Plain text
7344 #: build/C/man7/icmp.7:116
7345 msgid ""
7346 "Limit the maximum rates for sending ICMP packets whose type matches "
7347 "I<icmp_ratemask> (see below) to specific targets.  0 to disable any "
7348 "limiting, otherwise the minimum space between responses in milliseconds."
7349 msgstr ""
7350
7351 #. type: TP
7352 #: build/C/man7/icmp.7:116
7353 #, no-wrap
7354 msgid "I<icmp_ratemask> (integer; default: see below; since Linux 2.4.10)"
7355 msgstr ""
7356
7357 #.  The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
7358 #. type: Plain text
7359 #: build/C/man7/icmp.7:120
7360 msgid "Mask made of ICMP types for which rates are being limited."
7361 msgstr ""
7362
7363 #. type: Plain text
7364 #: build/C/man7/icmp.7:122
7365 msgid "Significant bits: IHGFEDCBA9876543210"
7366 msgstr ""
7367
7368 #. type: Plain text
7369 #: build/C/man7/icmp.7:124
7370 msgid "Default mask: 0000001100000011000 (0x1818)"
7371 msgstr ""
7372
7373 #. type: Plain text
7374 #: build/C/man7/icmp.7:127
7375 msgid "Bit definitions (see the kernel source file I<include/linux/icmp.h>):"
7376 msgstr ""
7377
7378 #. type: Plain text
7379 #: build/C/man7/icmp.7:143
7380 #, no-wrap
7381 msgid ""
7382 "0 Echo Reply\n"
7383 "3 Destination Unreachable *\n"
7384 "4 Source Quench *\n"
7385 "5 Redirect\n"
7386 "8 Echo Request\n"
7387 "B Time Exceeded *\n"
7388 "C Parameter Problem *\n"
7389 "D Timestamp Request\n"
7390 "E Timestamp Reply\n"
7391 "F Info Request\n"
7392 "G Info Reply\n"
7393 "H Address Mask Request\n"
7394 "I Address Mask Reply\n"
7395 msgstr ""
7396
7397 #. type: Plain text
7398 #: build/C/man7/icmp.7:148
7399 msgid ""
7400 "The bits marked with an asterisk are rate limited by default (see the "
7401 "default mask above)."
7402 msgstr ""
7403
7404 #. type: TP
7405 #: build/C/man7/icmp.7:148
7406 #, no-wrap
7407 msgid "I<icmp_timeexceed_rate> (Linux 2.2 to 2.4.9)"
7408 msgstr ""
7409
7410 #. type: Plain text
7411 #: build/C/man7/icmp.7:155
7412 msgid ""
7413 "Maximum rate for sending B<ICMP_TIME_EXCEEDED> packets.  These packets are "
7414 "sent to prevent loops when a packet has crossed too many hops."
7415 msgstr ""
7416
7417 #. type: Plain text
7418 #: build/C/man7/icmp.7:159
7419 msgid "Support for the B<ICMP_ADDRESS> request was removed in 2.2."
7420 msgstr ""
7421
7422 #. type: Plain text
7423 #: build/C/man7/icmp.7:163
7424 msgid "Support for B<ICMP_SOURCE_QUENCH> was removed in Linux 2.2."
7425 msgstr ""
7426
7427 #.  not really true ATM
7428 #.  .PP
7429 #.  Linux ICMP should be compliant to RFC 1122.
7430 #. type: Plain text
7431 #: build/C/man7/icmp.7:171
7432 msgid ""
7433 "As many other implementations don't support B<IPPROTO_ICMP> raw sockets, "
7434 "this feature should not be relied on in portable programs."
7435 msgstr ""
7436
7437 #. type: Plain text
7438 #: build/C/man7/icmp.7:176
7439 msgid ""
7440 "B<ICMP_REDIRECT> packets are not sent when Linux is not acting as a router.  "
7441 "They are also only accepted from the old gateway defined in the routing "
7442 "table and the redirect routes are expired after some time."
7443 msgstr ""
7444
7445 #. type: Plain text
7446 #: build/C/man7/icmp.7:180
7447 msgid ""
7448 "The 64-bit timestamp returned by B<ICMP_TIMESTAMP> is in milliseconds since "
7449 "the Epoch, 1970-01-01 00:00:00 +0000 (UTC)."
7450 msgstr ""
7451
7452 #. type: Plain text
7453 #: build/C/man7/icmp.7:185
7454 msgid ""
7455 "Linux ICMP internally uses a raw socket to send ICMPs.  This raw socket may "
7456 "appear in B<netstat>(8)  output with a zero inode."
7457 msgstr ""
7458
7459 #. type: Plain text
7460 #: build/C/man7/icmp.7:187
7461 msgid "B<ip>(7)"
7462 msgstr ""
7463
7464 #. type: Plain text
7465 #: build/C/man7/icmp.7:189
7466 msgid "RFC\\ 792 for a description of the ICMP protocol."
7467 msgstr ""
7468
7469 #. type: TH
7470 #: build/C/man3/inet.3:42
7471 #, no-wrap
7472 msgid "INET"
7473 msgstr ""
7474
7475 #. type: TH
7476 #: build/C/man3/inet.3:42
7477 #, no-wrap
7478 msgid "2008-06-19"
7479 msgstr ""
7480
7481 #. type: Plain text
7482 #: build/C/man3/inet.3:46
7483 msgid ""
7484 "inet_aton, inet_addr, inet_network, inet_ntoa, inet_makeaddr, inet_lnaof, "
7485 "inet_netof - Internet address manipulation routines"
7486 msgstr ""
7487
7488 #. type: Plain text
7489 #: build/C/man3/inet.3:51
7490 #, no-wrap
7491 msgid ""
7492 "B<#include E<lt>sys/socket.hE<gt>>\n"
7493 "B<#include E<lt>netinet/in.hE<gt>>\n"
7494 "B<#include E<lt>arpa/inet.hE<gt>>\n"
7495 msgstr ""
7496
7497 #. type: Plain text
7498 #: build/C/man3/inet.3:53
7499 #, no-wrap
7500 msgid "B<int inet_aton(const char *>I<cp>B<, struct in_addr *>I<inp>B<);>\n"
7501 msgstr ""
7502
7503 #. type: Plain text
7504 #: build/C/man3/inet.3:55
7505 #, no-wrap
7506 msgid "B<in_addr_t inet_addr(const char *>I<cp>B<);>\n"
7507 msgstr ""
7508
7509 #. type: Plain text
7510 #: build/C/man3/inet.3:57
7511 #, no-wrap
7512 msgid "B<in_addr_t inet_network(const char *>I<cp>B<);>\n"
7513 msgstr ""
7514
7515 #. type: Plain text
7516 #: build/C/man3/inet.3:59
7517 #, no-wrap
7518 msgid "B<char *inet_ntoa(struct in_addr >I<in>B<);>\n"
7519 msgstr ""
7520
7521 #. type: Plain text
7522 #: build/C/man3/inet.3:61
7523 #, no-wrap
7524 msgid "B<struct in_addr inet_makeaddr(int >I<net>B<, int >I<host>B<);>\n"
7525 msgstr ""
7526
7527 #. type: Plain text
7528 #: build/C/man3/inet.3:63
7529 #, no-wrap
7530 msgid "B<in_addr_t inet_lnaof(struct in_addr >I<in>B<);>\n"
7531 msgstr ""
7532
7533 #. type: Plain text
7534 #: build/C/man3/inet.3:65
7535 #, no-wrap
7536 msgid "B<in_addr_t inet_netof(struct in_addr >I<in>B<);>\n"
7537 msgstr ""
7538
7539 #. type: Plain text
7540 #: build/C/man3/inet.3:75
7541 msgid "B<inet_aton>(), B<inet_ntoa>(): _BSD_SOURCE || _SVID_SOURCE"
7542 msgstr ""
7543
7544 #. type: Plain text
7545 #: build/C/man3/inet.3:85
7546 msgid ""
7547 "B<inet_aton>()  converts the Internet host address I<cp> from the IPv4 "
7548 "numbers-and-dots notation into binary form (in network byte order)  and "
7549 "stores it in the structure that I<inp> points to.  B<inet_aton>()  returns "
7550 "nonzero if the address is valid, zero if not.  The address supplied in I<cp> "
7551 "can have one of the following forms:"
7552 msgstr ""
7553
7554 #. type: TP
7555 #: build/C/man3/inet.3:85
7556 #, no-wrap
7557 msgid "I<a.b.c.d>"
7558 msgstr ""
7559
7560 #. type: Plain text
7561 #: build/C/man3/inet.3:89
7562 msgid ""
7563 "Each of the four numeric parts specifies a byte of the address; the bytes "
7564 "are assigned in left-to-right order to produce the binary address."
7565 msgstr ""
7566
7567 #. type: TP
7568 #: build/C/man3/inet.3:89
7569 #, no-wrap
7570 msgid "I<a.b.c>"
7571 msgstr ""
7572
7573 #. type: Plain text
7574 #: build/C/man3/inet.3:102
7575 msgid ""
7576 "Parts I<a> and I<b> specify the first two bytes of the binary address.  Part "
7577 "I<c> is interpreted as a 16-bit value that defines the rightmost two bytes "
7578 "of the binary address.  This notation is suitable for specifying (outmoded) "
7579 "Class B network addresses."
7580 msgstr ""
7581
7582 #. type: TP
7583 #: build/C/man3/inet.3:102
7584 #, no-wrap
7585 msgid "I<a.b>"
7586 msgstr ""
7587
7588 #. type: Plain text
7589 #: build/C/man3/inet.3:113
7590 msgid ""
7591 "Part I<a> specifies the first byte of the binary address.  Part I<b> is "
7592 "interpreted as a 24-bit value that defines the rightmost three bytes of the "
7593 "binary address.  This notation is suitable for specifying (outmoded) Class C "
7594 "network addresses."
7595 msgstr ""
7596
7597 #. type: TP
7598 #: build/C/man3/inet.3:113
7599 #, no-wrap
7600 msgid "I<a>"
7601 msgstr ""
7602
7603 #. type: Plain text
7604 #: build/C/man3/inet.3:119
7605 msgid ""
7606 "The value I<a> is interpreted as a 32-bit value that is stored directly into "
7607 "the binary address without any byte rearrangement."
7608 msgstr ""
7609
7610 #. type: Plain text
7611 #: build/C/man3/inet.3:132
7612 msgid ""
7613 "In all of the above forms, components of the dotted address can be specified "
7614 "in decimal, octal (with a leading I<0>), or hexadecimal, with a leading "
7615 "I<0X>).  Addresses in any of these forms are collectively termed I<IPV4 "
7616 "numbers-and-dots notation>.  The form that uses exactly four decimal numbers "
7617 "is referred to as I<IPv4 dotted-decimal notation> (or sometimes: I<IPv4 "
7618 "dotted-quad notation>)."
7619 msgstr ""
7620
7621 #. type: Plain text
7622 #: build/C/man3/inet.3:149
7623 msgid ""
7624 "The B<inet_addr>()  function converts the Internet host address I<cp> from "
7625 "IPv4 numbers-and-dots notation into binary data in network byte order.  If "
7626 "the input is invalid, B<INADDR_NONE> (usually -1) is returned.  Use of this "
7627 "function is problematic because -1 is a valid address (255.255.255.255).  "
7628 "Avoid its use in favor of B<inet_aton>(), B<inet_pton>(3), or "
7629 "B<getaddrinfo>(3)  which provide a cleaner way to indicate error return."
7630 msgstr ""
7631
7632 #. type: Plain text
7633 #: build/C/man3/inet.3:159
7634 msgid ""
7635 "The B<inet_network>()  function converts I<cp>, a string in IPv4 "
7636 "numbers-and-dots notation, into a number in host byte order suitable for use "
7637 "as an Internet network address.  On success, the converted address is "
7638 "returned.  If the input is invalid, -1 is returned."
7639 msgstr ""
7640
7641 #. type: Plain text
7642 #: build/C/man3/inet.3:167
7643 msgid ""
7644 "The B<inet_ntoa>()  function converts the Internet host address I<in>, given "
7645 "in network byte order, to a string in IPv4 dotted-decimal notation.  The "
7646 "string is returned in a statically allocated buffer, which subsequent calls "
7647 "will overwrite."
7648 msgstr ""
7649
7650 #. type: Plain text
7651 #: build/C/man3/inet.3:173
7652 msgid ""
7653 "The B<inet_lnaof>()  function returns the local network address part of the "
7654 "Internet address I<in>.  The returned value is in host byte order."
7655 msgstr ""
7656
7657 #. type: Plain text
7658 #: build/C/man3/inet.3:179
7659 msgid ""
7660 "The B<inet_netof>()  function returns the network number part of the "
7661 "Internet address I<in>.  The returned value is in host byte order."
7662 msgstr ""
7663
7664 #. type: Plain text
7665 #: build/C/man3/inet.3:190
7666 msgid ""
7667 "The B<inet_makeaddr>()  function is the converse of B<inet_netof>()  and "
7668 "B<inet_lnaof>().  It returns an Internet host address in network byte order, "
7669 "created by combining the network number I<net> with the local address "
7670 "I<host>, both in host byte order."
7671 msgstr ""
7672
7673 #. type: Plain text
7674 #: build/C/man3/inet.3:200
7675 msgid ""
7676 "The structure I<in_addr> as used in B<inet_ntoa>(), B<inet_makeaddr>(), "
7677 "B<inet_lnaof>()  and B<inet_netof>()  is defined in "
7678 "I<E<lt>netinet/in.hE<gt>> as:"
7679 msgstr ""
7680
7681 #. type: Plain text
7682 #: build/C/man3/inet.3:204
7683 #, no-wrap
7684 msgid "typedef uint32_t in_addr_t;\n"
7685 msgstr ""
7686
7687 #. type: Plain text
7688 #: build/C/man3/inet.3:208
7689 #, no-wrap
7690 msgid ""
7691 "struct in_addr {\n"
7692 "    in_addr_t s_addr;\n"
7693 "};\n"
7694 msgstr ""
7695
7696 #. type: Plain text
7697 #: build/C/man3/inet.3:218
7698 msgid ""
7699 "4.3BSD.  B<inet_addr>()  and B<inet_ntoa>()  are specified in POSIX.1-2001.  "
7700 "B<inet_aton>()  is not specified in POSIX.1-2001, but is available on most "
7701 "systems."
7702 msgstr ""
7703
7704 #. type: Plain text
7705 #: build/C/man3/inet.3:222
7706 msgid ""
7707 "On the i386 the host byte order is Least Significant Byte first (little "
7708 "endian), whereas the network byte order, as used on the Internet, is Most "
7709 "Significant Byte first (big endian)."
7710 msgstr ""
7711
7712 #. type: Plain text
7713 #: build/C/man3/inet.3:231
7714 msgid ""
7715 "B<inet_lnaof>(), B<inet_netof>(), and B<inet_makeaddr>()  are legacy "
7716 "functions that assume they are dealing with I<classful network addresses>.  "
7717 "Classful networking divides IPv4 network addresses into host and network "
7718 "components at byte boundaries, as follows:"
7719 msgstr ""
7720
7721 #. type: TP
7722 #: build/C/man3/inet.3:231
7723 #, no-wrap
7724 msgid "Class A"
7725 msgstr ""
7726
7727 #. type: Plain text
7728 #: build/C/man3/inet.3:237
7729 msgid ""
7730 "This address type is indicated by the value 0 in the most significant bit of "
7731 "the (network byte ordered) address.  The network address is contained in the "
7732 "most significant byte, and the host address occupies the remaining three "
7733 "bytes."
7734 msgstr ""
7735
7736 #. type: TP
7737 #: build/C/man3/inet.3:237
7738 #, no-wrap
7739 msgid "Class B"
7740 msgstr ""
7741
7742 #. type: Plain text
7743 #: build/C/man3/inet.3:243
7744 msgid ""
7745 "This address type is indicated by the binary value 10 in the most "
7746 "significant two bits of the address.  The network address is contained in "
7747 "the two most significant bytes, and the host address occupies the remaining "
7748 "two bytes."
7749 msgstr ""
7750
7751 #. type: TP
7752 #: build/C/man3/inet.3:243
7753 #, no-wrap
7754 msgid "Class C"
7755 msgstr ""
7756
7757 #. type: Plain text
7758 #: build/C/man3/inet.3:249
7759 msgid ""
7760 "This address type is indicated by the binary value 110 in the most "
7761 "significant three bits of the address.  The network address is contained in "
7762 "the three most significant bytes, and the host address occupies the "
7763 "remaining byte."
7764 msgstr ""
7765
7766 #. type: Plain text
7767 #: build/C/man3/inet.3:254
7768 msgid ""
7769 "Classful network addresses are now obsolete, having been superseded by "
7770 "Classless Inter-Domain Routing (CIDR), which divides addresses into network "
7771 "and host components at arbitrary bit (rather than byte) boundaries."
7772 msgstr ""
7773
7774 #. type: Plain text
7775 #: build/C/man3/inet.3:261
7776 msgid ""
7777 "An example of the use of B<inet_aton>()  and B<inet_ntoa>()  is shown "
7778 "below.  Here are some example runs:"
7779 msgstr ""
7780
7781 #. type: Plain text
7782 #: build/C/man3/inet.3:268
7783 #, no-wrap
7784 msgid ""
7785 "$B< ./a.out 226.000.000.037>      # Last byte is in octal\n"
7786 "226.0.0.31\n"
7787 "$B< ./a.out 0x7f.1         >      # First byte is in hex\n"
7788 "127.0.0.1\n"
7789 msgstr ""
7790
7791 #. type: Plain text
7792 #: build/C/man3/inet.3:277
7793 #, no-wrap
7794 msgid ""
7795 "#define _BSD_SOURCE\n"
7796 "#include E<lt>arpa/inet.hE<gt>\n"
7797 "#include E<lt>stdio.hE<gt>\n"
7798 "#include E<lt>stdlib.hE<gt>\n"
7799 msgstr ""
7800
7801 #. type: Plain text
7802 #: build/C/man3/inet.3:282
7803 #, no-wrap
7804 msgid ""
7805 "int\n"
7806 "main(int argc, char *argv[])\n"
7807 "{\n"
7808 "    struct in_addr addr;\n"
7809 msgstr ""
7810
7811 #. type: Plain text
7812 #: build/C/man3/inet.3:287
7813 #, no-wrap
7814 msgid ""
7815 "    if (argc != 2) {\n"
7816 "        fprintf(stderr, \"%s E<lt>dotted-addressE<gt>\\en\", argv[0]);\n"
7817 "        exit(EXIT_FAILURE);\n"
7818 "    }\n"
7819 msgstr ""
7820
7821 #. type: Plain text
7822 #: build/C/man3/inet.3:292
7823 #, no-wrap
7824 msgid ""
7825 "    if (inet_aton(argv[1], &addr) == 0) {\n"
7826 "        perror(\"inet_aton\");\n"
7827 "        exit(EXIT_FAILURE);\n"
7828 "    }\n"
7829 msgstr ""
7830
7831 #. type: Plain text
7832 #: build/C/man3/inet.3:296
7833 #, no-wrap
7834 msgid ""
7835 "    printf(\"%s\\en\", inet_ntoa(addr));\n"
7836 "    exit(EXIT_SUCCESS);\n"
7837 "}\n"
7838 msgstr ""
7839
7840 #. type: Plain text
7841 #: build/C/man3/inet.3:307
7842 msgid ""
7843 "B<byteorder>(3), B<getaddrinfo>(3), B<gethostbyname>(3), B<getnameinfo>(3), "
7844 "B<getnetent>(3), B<inet_ntop>(3), B<inet_pton>(3), B<hosts>(5), "
7845 "B<networks>(5)"
7846 msgstr ""
7847
7848 #. type: TH
7849 #: build/C/man3/inet_ntop.3:24
7850 #, no-wrap
7851 msgid "INET_NTOP"
7852 msgstr ""
7853
7854 #. type: TH
7855 #: build/C/man3/inet_ntop.3:24
7856 #, no-wrap
7857 msgid "2008-11-11"
7858 msgstr ""
7859
7860 #. type: Plain text
7861 #: build/C/man3/inet_ntop.3:27
7862 msgid "inet_ntop - convert IPv4 and IPv6 addresses from binary to text form"
7863 msgstr ""
7864
7865 #. type: Plain text
7866 #: build/C/man3/inet_ntop.3:33
7867 #, no-wrap
7868 msgid ""
7869 "B<const char *inet_ntop(int >I<af>B<, const void *>I<src>B<,>\n"
7870 "B<                      char *>I<dst>B<, socklen_t >I<size>B<);>\n"
7871 msgstr ""
7872
7873 #. type: Plain text
7874 #: build/C/man3/inet_ntop.3:46
7875 msgid ""
7876 "This function converts the network address structure I<src> in the I<af> "
7877 "address family into a character string.  The resulting string is copied to "
7878 "the buffer pointed to by I<dst>, which must be a non-NULL pointer.  The "
7879 "caller specifies the number of bytes available in this buffer in the "
7880 "argument I<size>."
7881 msgstr ""
7882
7883 #. type: Plain text
7884 #: build/C/man3/inet_ntop.3:55
7885 msgid ""
7886 "B<inet_ntop>()  extends the B<inet_ntoa>(3)  function to support multiple "
7887 "address families, B<inet_ntoa>(3)  is now considered to be deprecated in "
7888 "favor of B<inet_ntop>().  The following address families are currently "
7889 "supported:"
7890 msgstr ""
7891
7892 #. type: Plain text
7893 #: build/C/man3/inet_ntop.3:68
7894 msgid ""
7895 "I<src> points to a I<struct in_addr> (in network byte order)  which is "
7896 "converted to an IPv4 network address in the dotted-decimal format, "
7897 "\"I<ddd.ddd.ddd.ddd>\".  The buffer I<dst> must be at least "
7898 "B<INET_ADDRSTRLEN> bytes long."
7899 msgstr ""
7900
7901 #. type: Plain text
7902 #: build/C/man3/inet_ntop.3:81
7903 msgid ""
7904 "I<src> points to a I<struct in6_addr> (in network byte order)  which is "
7905 "converted to a representation of this address in the most appropriate IPv6 "
7906 "network address format for this address.  The buffer I<dst> must be at least "
7907 "B<INET6_ADDRSTRLEN> bytes long."
7908 msgstr ""
7909
7910 #. type: Plain text
7911 #: build/C/man3/inet_ntop.3:89
7912 msgid ""
7913 "On success, B<inet_ntop>()  returns a non-NULL pointer to I<dst>.  NULL is "
7914 "returned if there was an error, with I<errno> set to indicate the error."
7915 msgstr ""
7916
7917 #. type: TP
7918 #: build/C/man3/inet_ntop.3:90
7919 #, no-wrap
7920 msgid "B<EAFNOSUPPORT>"
7921 msgstr ""
7922
7923 #. type: Plain text
7924 #: build/C/man3/inet_ntop.3:94
7925 msgid "I<af> was not a valid address family."
7926 msgstr ""
7927
7928 #. type: TP
7929 #: build/C/man3/inet_ntop.3:94
7930 #, no-wrap
7931 msgid "B<ENOSPC>"
7932 msgstr ""
7933
7934 #. type: Plain text
7935 #: build/C/man3/inet_ntop.3:98
7936 msgid "The converted address string would exceed the size given by I<size>."
7937 msgstr ""
7938
7939 #.  2.1.3: size_t, 2.1.91: socklen_t
7940 #. type: Plain text
7941 #: build/C/man3/inet_ntop.3:110
7942 msgid ""
7943 "POSIX.1-2001.  Note that RFC\\ 2553 defines a prototype where the last "
7944 "argument I<size> is of type I<size_t>.  Many systems follow RFC\\ 2553.  "
7945 "Glibc 2.0 and 2.1 have I<size_t>, but 2.2 and later have I<socklen_t>."
7946 msgstr ""
7947
7948 #. type: Plain text
7949 #: build/C/man3/inet_ntop.3:113
7950 msgid "B<AF_INET6> converts IPv4-mapped IPv6 addresses into an IPv6 format."
7951 msgstr ""
7952
7953 #. type: Plain text
7954 #: build/C/man3/inet_ntop.3:116
7955 msgid "See B<inet_pton>(3)."
7956 msgstr ""
7957
7958 #. type: Plain text
7959 #: build/C/man3/inet_ntop.3:120
7960 msgid "B<getnameinfo>(3), B<inet>(3), B<inet_pton>(3)"
7961 msgstr ""
7962
7963 #. type: TH
7964 #: build/C/man3/inet_pton.3:25
7965 #, no-wrap
7966 msgid "INET_PTON"
7967 msgstr ""
7968
7969 #. type: TH
7970 #: build/C/man3/inet_pton.3:25
7971 #, no-wrap
7972 msgid "2008-06-18"
7973 msgstr ""
7974
7975 #. type: Plain text
7976 #: build/C/man3/inet_pton.3:28
7977 msgid "inet_pton - convert IPv4 and IPv6 addresses from text to binary form"
7978 msgstr ""
7979
7980 #. type: Plain text
7981 #: build/C/man3/inet_pton.3:33
7982 #, no-wrap
7983 msgid "B<int inet_pton(int >I<af>B<, const char *>I<src>B<, void *>I<dst>B<);>\n"
7984 msgstr ""
7985
7986 #. type: Plain text
7987 #: build/C/man3/inet_pton.3:49
7988 msgid ""
7989 "This function converts the character string I<src> into a network address "
7990 "structure in the I<af> address family, then copies the network address "
7991 "structure to I<dst>.  The I<af> argument must be either B<AF_INET> or "
7992 "B<AF_INET6>."
7993 msgstr ""
7994
7995 #. type: Plain text
7996 #: build/C/man3/inet_pton.3:51
7997 msgid "The following address families are currently supported:"
7998 msgstr ""
7999
8000 #. type: Plain text
8001 #: build/C/man3/inet_pton.3:65
8002 msgid ""
8003 "I<src> points to a character string containing an IPv4 network address in "
8004 "dotted-decimal format, \"I<ddd.ddd.ddd.ddd>\", where I<ddd> is a decimal "
8005 "number of up to three digits in the range 0 to 255.  The address is "
8006 "converted to a I<struct in_addr> and copied to I<dst>, which must be "
8007 "I<sizeof(struct in_addr)> (4) bytes (32 bits) long."
8008 msgstr ""
8009
8010 #. type: Plain text
8011 #: build/C/man3/inet_pton.3:77
8012 msgid ""
8013 "I<src> points to a character string containing an IPv6 network address.  The "
8014 "address is converted to a I<struct in6_addr> and copied to I<dst>, which "
8015 "must be I<sizeof(struct in6_addr)> (16) bytes (128 bits) long.  The allowed "
8016 "formats for IPv6 addresses follow these rules:"
8017 msgstr ""
8018
8019 #. type: IP
8020 #: build/C/man3/inet_pton.3:78
8021 #, no-wrap
8022 msgid "1."
8023 msgstr ""
8024
8025 #. type: Plain text
8026 #: build/C/man3/inet_pton.3:85
8027 msgid ""
8028 "The preferred format is I<x:x:x:x:x:x:x:x>.  This form consists of eight "
8029 "hexadecimal numbers, each of which expresses a 16-bit value (i.e., each I<x> "
8030 "can be up to 4 hex digits)."
8031 msgstr ""
8032
8033 #. type: IP
8034 #: build/C/man3/inet_pton.3:85
8035 #, no-wrap
8036 msgid "2."
8037 msgstr ""
8038
8039 #. type: Plain text
8040 #: build/C/man3/inet_pton.3:98
8041 msgid ""
8042 "A series of contiguous zero values in the preferred format can be "
8043 "abbreviated to I<::>.  Only one instance of I<::> can occur in an address.  "
8044 "For example, the loopback address I<0:0:0:0:0:0:0:1> can be abbreviated as "
8045 "I<::1>.  The wildcard address, consisting of all zeros, can be written as "
8046 "I<::>."
8047 msgstr ""
8048
8049 #. type: IP
8050 #: build/C/man3/inet_pton.3:98
8051 #, no-wrap
8052 msgid "3."
8053 msgstr ""
8054
8055 #. type: Plain text
8056 #: build/C/man3/inet_pton.3:111
8057 msgid ""
8058 "An alternate format is useful for expressing IPv4-mapped IPv6 addresses.  "
8059 "This form is written as I<x:x:x:x:x:x:d.d.d.d>, where the six leading I<x>s "
8060 "are hexadecimal values that define the six most-significant 16-bit pieces of "
8061 "the address (i.e., 96 bits), and the I<d>s express a value in dotted-decimal "
8062 "notation that defines the least significant 32 bits of the address.  An "
8063 "example of such an address is I<::FFFF:204.152.189.116>."
8064 msgstr ""
8065
8066 #. type: Plain text
8067 #: build/C/man3/inet_pton.3:114
8068 msgid "See RFC 2373 for further details on the representation of IPv6 addresses."
8069 msgstr ""
8070
8071 #. type: Plain text
8072 #: build/C/man3/inet_pton.3:127
8073 msgid ""
8074 "B<inet_pton>()  returns 1 on success (network address was successfully "
8075 "converted).  0 is returned if I<src> does not contain a character string "
8076 "representing a valid network address in the specified address family.  If "
8077 "I<af> does not contain a valid address family, -1 is returned and I<errno> "
8078 "is set to B<EAFNOSUPPORT>."
8079 msgstr ""
8080
8081 #. type: Plain text
8082 #: build/C/man3/inet_pton.3:148
8083 msgid ""
8084 "Unlike B<inet_aton>(3)  and B<inet_addr>(3), B<inet_pton>()  supports IPv6 "
8085 "addresses.  On the other hand, B<inet_pton>()  only accepts IPv4 addresses "
8086 "in dotted-decimal notation, whereas B<inet_aton>(3)  and B<inet_addr>(3)  "
8087 "allow the more general numbers-and-dots notation (hexadecimal and octal "
8088 "number formats, and formats that don't require all four bytes to be "
8089 "explicitly written).  For an interface that handles both IPv6 addresses, and "
8090 "IPv4 addresses in numbers-and-dots notation, see B<getaddrinfo>(3)."
8091 msgstr ""
8092
8093 #. type: Plain text
8094 #: build/C/man3/inet_pton.3:154
8095 msgid ""
8096 "B<AF_INET6> does not recognize IPv4 addresses.  An explicit IPv4-mapped IPv6 "
8097 "address must be supplied in I<src> instead."
8098 msgstr ""
8099
8100 #. type: Plain text
8101 #: build/C/man3/inet_pton.3:160
8102 msgid ""
8103 "The program below demonstrates the use of B<inet_pton>()  and "
8104 "B<inet_ntop>(3).  Here are some example runs:"
8105 msgstr ""
8106
8107 #. type: Plain text
8108 #: build/C/man3/inet_pton.3:169
8109 #, no-wrap
8110 msgid ""
8111 "$B< ./a.out i6 0:0:0:0:0:0:0:0>\n"
8112 "::\n"
8113 "$B< ./a.out i6 1:0:0:0:0:0:0:8>\n"
8114 "1::8\n"
8115 "$B< ./a.out i6 0:0:0:0:0:FFFF:204.152.189.116>\n"
8116 "::ffff:204.152.189.116\n"
8117 msgstr ""
8118
8119 #. type: Plain text
8120 #: build/C/man3/inet_pton.3:178
8121 #, no-wrap
8122 msgid ""
8123 "#include E<lt>arpa/inet.hE<gt>\n"
8124 "#include E<lt>stdio.hE<gt>\n"
8125 "#include E<lt>stdlib.hE<gt>\n"
8126 "#include E<lt>string.hE<gt>\n"
8127 msgstr ""
8128
8129 #. type: Plain text
8130 #: build/C/man3/inet_pton.3:185
8131 #, no-wrap
8132 msgid ""
8133 "int\n"
8134 "main(int argc, char *argv[])\n"
8135 "{\n"
8136 "    unsigned char buf[sizeof(struct in6_addr)];\n"
8137 "    int domain, s;\n"
8138 "    char str[INET6_ADDRSTRLEN];\n"
8139 msgstr ""
8140
8141 #. type: Plain text
8142 #: build/C/man3/inet_pton.3:190
8143 #, no-wrap
8144 msgid ""
8145 "    if (argc != 3) {\n"
8146 "        fprintf(stderr, \"Usage: %s {i4|i6|E<lt>numE<gt>} string\\en\", "
8147 "argv[0]);\n"
8148 "        exit(EXIT_FAILURE);\n"
8149 "    }\n"
8150 msgstr ""
8151
8152 #. type: Plain text
8153 #: build/C/man3/inet_pton.3:193
8154 #, no-wrap
8155 msgid ""
8156 "    domain = (strcmp(argv[1], \"i4\") == 0) ? AF_INET :\n"
8157 "             (strcmp(argv[1], \"i6\") == 0) ? AF_INET6 : atoi(argv[1]);\n"
8158 msgstr ""
8159
8160 #. type: Plain text
8161 #: build/C/man3/inet_pton.3:202
8162 #, no-wrap
8163 msgid ""
8164 "    s = inet_pton(domain, argv[2], buf);\n"
8165 "    if (s E<lt>= 0) {\n"
8166 "        if (s == 0)\n"
8167 "            fprintf(stderr, \"Not in presentation format\");\n"
8168 "        else\n"
8169 "            perror(\"inet_pton\");\n"
8170 "        exit(EXIT_FAILURE);\n"
8171 "    }\n"
8172 msgstr ""
8173
8174 #. type: Plain text
8175 #: build/C/man3/inet_pton.3:207
8176 #, no-wrap
8177 msgid ""
8178 "    if (inet_ntop(domain, buf, str, INET6_ADDRSTRLEN) == NULL) {\n"
8179 "        perror(\"inet_ntop\");\n"
8180 "        exit(EXIT_FAILURE);\n"
8181 "    }\n"
8182 msgstr ""
8183
8184 #. type: Plain text
8185 #: build/C/man3/inet_pton.3:209
8186 #, no-wrap
8187 msgid "    printf(\"%s\\en\", str);\n"
8188 msgstr ""
8189
8190 #. type: Plain text
8191 #: build/C/man3/inet_pton.3:217
8192 msgid "B<getaddrinfo>(3), B<inet>(3), B<inet_ntop>(3)"
8193 msgstr ""
8194
8195 #. type: TH
8196 #: build/C/man7/ip.7:12
8197 #, no-wrap
8198 msgid "IP"
8199 msgstr ""
8200
8201 #. type: TH
8202 #: build/C/man7/ip.7:12
8203 #, no-wrap
8204 msgid "2011-09-22"
8205 msgstr ""
8206
8207 #. type: Plain text
8208 #: build/C/man7/ip.7:15
8209 msgid "ip - Linux IPv4 protocol implementation"
8210 msgstr ""
8211
8212 #. type: Plain text
8213 #: 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
8214 msgid "B<#include E<lt>netinet/in.hE<gt>>"
8215 msgstr ""
8216
8217 #. type: Plain text
8218 #: build/C/man7/ip.7:23
8219 msgid "B<#include E<lt>netinet/ip.hE<gt> >/* superset of previous */"
8220 msgstr ""
8221
8222 #. type: Plain text
8223 #: build/C/man7/ip.7:25
8224 msgid "I<tcp_socket>B< = socket(AF_INET, SOCK_STREAM, 0);>"
8225 msgstr ""
8226
8227 #. type: Plain text
8228 #: build/C/man7/ip.7:27
8229 msgid "I<udp_socket>B< = socket(AF_INET, SOCK_DGRAM, 0);>"
8230 msgstr ""
8231
8232 #. type: Plain text
8233 #: build/C/man7/ip.7:29
8234 msgid "I<raw_socket>B< = socket(AF_INET, SOCK_RAW, >I<protocol>B<);>"
8235 msgstr ""
8236
8237 #.  FIXME has someone verified that 2.1 is really 1812 compliant?
8238 #. type: Plain text
8239 #: build/C/man7/ip.7:36
8240 msgid ""
8241 "Linux implements the Internet Protocol, version 4, described in RFC\\ 791 "
8242 "and RFC\\ 1122.  B<ip> contains a level 2 multicasting implementation "
8243 "conforming to RFC\\ 1112.  It also contains an IP router including a packet "
8244 "filter."
8245 msgstr ""
8246
8247 #. type: Plain text
8248 #: build/C/man7/ip.7:40
8249 msgid ""
8250 "The programming interface is BSD-sockets compatible.  For more information "
8251 "on sockets, see B<socket>(7)."
8252 msgstr ""
8253
8254 #. type: Plain text
8255 #: build/C/man7/ip.7:71
8256 msgid ""
8257 "An IP socket is created by calling the B<socket>(2)  function as "
8258 "B<socket(AF_INET, >I<socket_type>B<, >I<protocol>B<)>.  Valid socket types "
8259 "are B<SOCK_STREAM> to open a B<tcp>(7)  socket, B<SOCK_DGRAM> to open a "
8260 "B<udp>(7)  socket, or B<SOCK_RAW> to open a B<raw>(7)  socket to access the "
8261 "IP protocol directly.  I<protocol> is the IP protocol in the IP header to be "
8262 "received or sent.  The only valid values for I<protocol> are 0 and "
8263 "B<IPPROTO_TCP> for TCP sockets, and 0 and B<IPPROTO_UDP> for UDP sockets.  "
8264 "For B<SOCK_RAW> you may specify a valid IANA IP protocol defined in RFC\\ "
8265 "1700 assigned numbers."
8266 msgstr ""
8267
8268 #.  FIXME ip current does an autobind in listen, but I'm not sure
8269 #.  if that should be documented.
8270 #. type: Plain text
8271 #: build/C/man7/ip.7:90
8272 msgid ""
8273 "When a process wants to receive new incoming packets or connections, it "
8274 "should bind a socket to a local interface address using B<bind>(2).  Only "
8275 "one IP socket may be bound to any given local (address, port) pair.  When "
8276 "B<INADDR_ANY> is specified in the bind call, the socket will be bound to "
8277 "I<all> local interfaces.  When B<listen>(2)  or B<connect>(2)  are called on "
8278 "an unbound socket, it is automatically bound to a random free port with the "
8279 "local address set to B<INADDR_ANY>."
8280 msgstr ""
8281
8282 #. type: Plain text
8283 #: build/C/man7/ip.7:96
8284 msgid ""
8285 "A TCP local socket address that has been bound is unavailable for some time "
8286 "after closing, unless the B<SO_REUSEADDR> flag has been set.  Care should be "
8287 "taken when using this flag as it makes TCP less reliable."
8288 msgstr ""
8289
8290 #. type: Plain text
8291 #: build/C/man7/ip.7:107
8292 msgid ""
8293 "An IP socket address is defined as a combination of an IP interface address "
8294 "and a 16-bit port number.  The basic IP protocol does not supply port "
8295 "numbers, they are implemented by higher level protocols like B<udp>(7)  and "
8296 "B<tcp>(7).  On raw sockets I<sin_port> is set to the IP protocol."
8297 msgstr ""
8298
8299 #. type: Plain text
8300 #: build/C/man7/ip.7:115
8301 #, no-wrap
8302 msgid ""
8303 "struct sockaddr_in {\n"
8304 "    sa_family_t    sin_family; /* address family: AF_INET */\n"
8305 "    in_port_t      sin_port;   /* port in network byte order */\n"
8306 "    struct in_addr sin_addr;   /* internet address */\n"
8307 "};\n"
8308 msgstr ""
8309
8310 #. type: Plain text
8311 #: build/C/man7/ip.7:120
8312 #, no-wrap
8313 msgid ""
8314 "/* Internet address. */\n"
8315 "struct in_addr {\n"
8316 "    uint32_t       s_addr;     /* address in network byte order */\n"
8317 "};\n"
8318 msgstr ""
8319
8320 #. type: Plain text
8321 #: build/C/man7/ip.7:145
8322 msgid ""
8323 "I<sin_family> is always set to B<AF_INET>.  This is required; in Linux 2.2 "
8324 "most networking functions return B<EINVAL> when this setting is missing.  "
8325 "I<sin_port> contains the port in network byte order.  The port numbers below "
8326 "1024 are called I<privileged ports> (or sometimes: I<reserved ports>).  Only "
8327 "privileged processes (i.e., those having the B<CAP_NET_BIND_SERVICE> "
8328 "capability) may B<bind>(2)  to these sockets.  Note that the raw IPv4 "
8329 "protocol as such has no concept of a port, they are only implemented by "
8330 "higher protocols like B<tcp>(7)  and B<udp>(7)."
8331 msgstr ""
8332
8333 #. type: Plain text
8334 #: build/C/man7/ip.7:164
8335 msgid ""
8336 "I<sin_addr> is the IP host address.  The I<s_addr> member of I<struct "
8337 "in_addr> contains the host interface address in network byte order.  "
8338 "I<in_addr> should be assigned one of the B<INADDR_*> values (e.g., "
8339 "B<INADDR_ANY>)  or set using the B<inet_aton>(3), B<inet_addr>(3), "
8340 "B<inet_makeaddr>(3)  library functions or directly with the name resolver "
8341 "(see B<gethostbyname>(3))."
8342 msgstr ""
8343
8344 #.  Leave a loophole for XTP @)
8345 #. type: Plain text
8346 #: build/C/man7/ip.7:176
8347 msgid ""
8348 "IPv4 addresses are divided into unicast, broadcast and multicast addresses.  "
8349 "Unicast addresses specify a single interface of a host, broadcast addresses "
8350 "specify all hosts on a network and multicast addresses address all hosts in "
8351 "a multicast group.  Datagrams to broadcast addresses can be only sent or "
8352 "received when the B<SO_BROADCAST> socket flag is set.  In the current "
8353 "implementation, connection-oriented sockets are only allowed to use unicast "
8354 "addresses."
8355 msgstr ""
8356
8357 #. type: Plain text
8358 #: build/C/man7/ip.7:184
8359 msgid ""
8360 "Note that the address and the port are always stored in network byte order.  "
8361 "In particular, this means that you need to call B<htons>(3)  on the number "
8362 "that is assigned to a port.  All address/port manipulation functions in the "
8363 "standard library work in network byte order."
8364 msgstr ""
8365
8366 #. type: Plain text
8367 #: build/C/man7/ip.7:197
8368 msgid ""
8369 "There are several special addresses: B<INADDR_LOOPBACK> (127.0.0.1)  always "
8370 "refers to the local host via the loopback device; B<INADDR_ANY> (0.0.0.0)  "
8371 "means any address for binding; B<INADDR_BROADCAST> (255.255.255.255)  means "
8372 "any host and has the same effect on bind as B<INADDR_ANY> for historical "
8373 "reasons."
8374 msgstr ""
8375
8376 #.  or SOL_IP on Linux
8377 #. type: Plain text
8378 #: build/C/man7/ip.7:206
8379 msgid ""
8380 "IP supports some protocol-specific socket options that can be set with "
8381 "B<setsockopt>(2)  and read with B<getsockopt>(2).  The socket option level "
8382 "for IP is B<IPPROTO_IP>.  A boolean integer flag is zero when it is false, "
8383 "otherwise true."
8384 msgstr ""
8385
8386 #. type: TP
8387 #: build/C/man7/ip.7:206
8388 #, no-wrap
8389 msgid "B<IP_ADD_MEMBERSHIP> (since Linux 1.2)"
8390 msgstr ""
8391
8392 #. type: Plain text
8393 #: build/C/man7/ip.7:212
8394 msgid "Join a multicast group.  Argument is an I<ip_mreqn> structure."
8395 msgstr ""
8396
8397 #. type: Plain text
8398 #: build/C/man7/ip.7:222
8399 #, no-wrap
8400 msgid ""
8401 "struct ip_mreqn {\n"
8402 "    struct in_addr imr_multiaddr; /* IP multicast group\n"
8403 "                                     address */\n"
8404 "    struct in_addr imr_address;   /* IP address of local\n"
8405 "                                     interface */\n"
8406 "    int            imr_ifindex;   /* interface index */\n"
8407 "};\n"
8408 msgstr ""
8409
8410 #.  (i.e., within the 224.0.0.0-239.255.255.255 range)
8411 #. type: Plain text
8412 #: build/C/man7/ip.7:243
8413 msgid ""
8414 "I<imr_multiaddr> contains the address of the multicast group the application "
8415 "wants to join or leave.  It must be a valid multicast address (or "
8416 "B<setsockopt>(2)  fails with the error B<EINVAL>).  I<imr_address> is the "
8417 "address of the local interface with which the system should join the "
8418 "multicast group; if it is equal to B<INADDR_ANY> an appropriate interface is "
8419 "chosen by the system.  I<imr_ifindex> is the interface index of the "
8420 "interface that should join/leave the I<imr_multiaddr> group, or 0 to "
8421 "indicate any interface."
8422 msgstr ""
8423
8424 #. type: Plain text
8425 #: build/C/man7/ip.7:258
8426 msgid ""
8427 "The I<ip_mreqn> structure is available only since Linux 2.2.  For "
8428 "compatibility, the old I<ip_mreq> structure (present since Linux 1.2) is "
8429 "still supported; it differs from I<ip_mreqn> only by not including the "
8430 "I<imr_ifindex> field.  Only valid as a B<setsockopt>(2)."
8431 msgstr ""
8432
8433 #. type: TP
8434 #: build/C/man7/ip.7:258
8435 #, no-wrap
8436 msgid "B<IP_DROP_MEMBERSHIP> (since Linux 1.2)"
8437 msgstr ""
8438
8439 #. type: Plain text
8440 #: build/C/man7/ip.7:267
8441 msgid ""
8442 "Leave a multicast group.  Argument is an I<ip_mreqn> or I<ip_mreq> structure "
8443 "similar to B<IP_ADD_MEMBERSHIP>."
8444 msgstr ""
8445
8446 #. type: TP
8447 #: build/C/man7/ip.7:267
8448 #, no-wrap
8449 msgid "B<IP_FREEBIND> (since Linux 2.4)"
8450 msgstr ""
8451
8452 #.  Precisely: 2.4.0-test10
8453 #. type: Plain text
8454 #: build/C/man7/ip.7:280
8455 msgid ""
8456 "If enabled, this boolean option allows binding to an IP address that is "
8457 "nonlocal or does not (yet) exist.  This permits listening on a socket, "
8458 "without requiring the underlying network interface or the specified dynamic "
8459 "IP address to be up at the time that the application is trying to bind to "
8460 "it.  This option is the per-socket equivalent of the I<ip_nonlocal_bind> "
8461 "I</proc> interface described below."
8462 msgstr ""
8463
8464 #. type: TP
8465 #: build/C/man7/ip.7:280
8466 #, no-wrap
8467 msgid "B<IP_HDRINCL> (since Linux 2.0)"
8468 msgstr ""
8469
8470 #
8471 #.  FIXME Document IP_IPSEC_POLICY
8472 #.  Since Linux 2.5.47
8473 #.  Needs CAP_NET_ADMIN
8474 #. type: Plain text
8475 #: build/C/man7/ip.7:300
8476 msgid ""
8477 "If enabled, the user supplies an IP header in front of the user data.  Only "
8478 "valid for B<SOCK_RAW> sockets.  See B<raw>(7)  for more information.  When "
8479 "this flag is enabled the values set by B<IP_OPTIONS>, B<IP_TTL> and "
8480 "B<IP_TOS> are ignored."
8481 msgstr ""
8482
8483 #. type: TP
8484 #: build/C/man7/ip.7:300
8485 #, no-wrap
8486 msgid "B<IP_MTU> (since Linux 2.2)"
8487 msgstr ""
8488
8489 #.  Precisely: 2.1.124
8490 #. type: Plain text
8491 #: build/C/man7/ip.7:308
8492 msgid ""
8493 "Retrieve the current known path MTU of the current socket.  Only valid when "
8494 "the socket has been connected.  Returns an integer.  Only valid as a "
8495 "B<getsockopt>(2)."
8496 msgstr ""
8497
8498 #. type: TP
8499 #: build/C/man7/ip.7:308
8500 #, no-wrap
8501 msgid "B<IP_MTU_DISCOVER> (since Linux 2.2)"
8502 msgstr ""
8503
8504 #.  Precisely: 2.1.124
8505 #. type: Plain text
8506 #: build/C/man7/ip.7:329
8507 msgid ""
8508 "Set or receive the Path MTU Discovery setting for a socket.  When enabled, "
8509 "Linux will perform Path MTU Discovery as defined in RFC\\ 1191 on "
8510 "B<SOCK_STREAM> sockets.  For non-B<SOCK_STREAM> sockets, B<IP_PMTUDISC_DO> "
8511 "forces the don't-fragment flag to be set on all outgoing packets.  It is the "
8512 "user's responsibility to packetize the data in MTU-sized chunks and to do "
8513 "the retransmits if necessary.  The kernel will reject (with B<EMSGSIZE>)  "
8514 "datagrams that are bigger than the known path MTU.  B<IP_PMTUDISC_WANT> will "
8515 "fragment a datagram if needed according to the path MTU, or will set the "
8516 "don't-fragment flag otherwise."
8517 msgstr ""
8518
8519 #. type: Plain text
8520 #: build/C/man7/ip.7:337
8521 msgid ""
8522 "The system-wide default can be toggled between B<IP_PMTUDISC_WANT> and "
8523 "B<IP_PMTUDISC_DONT> by writing (respectively, zero and nonzero values) to "
8524 "the I</proc/sys/net/ipv4/ip_no_pmtu_disc> file."
8525 msgstr ""
8526
8527 #. type: tbl table
8528 #: build/C/man7/ip.7:342
8529 #, no-wrap
8530 msgid "Path MTU discovery value:Meaning\n"
8531 msgstr ""
8532
8533 #. type: tbl table
8534 #: build/C/man7/ip.7:343
8535 #, no-wrap
8536 msgid "IP_PMTUDISC_WANT:Use per-route settings.\n"
8537 msgstr ""
8538
8539 #. type: tbl table
8540 #: build/C/man7/ip.7:344
8541 #, no-wrap
8542 msgid "IP_PMTUDISC_DONT:Never do Path MTU Discovery.\n"
8543 msgstr ""
8544
8545 #. type: tbl table
8546 #: build/C/man7/ip.7:345
8547 #, no-wrap
8548 msgid "IP_PMTUDISC_DO:Always do Path MTU Discovery.\n"
8549 msgstr ""
8550
8551 #. type: tbl table
8552 #: build/C/man7/ip.7:346
8553 #, no-wrap
8554 msgid "IP_PMTUDISC_PROBE:Set DF but ignore Path MTU.\n"
8555 msgstr ""
8556
8557 #. type: Plain text
8558 #: build/C/man7/ip.7:364
8559 msgid ""
8560 "When PMTU discovery is enabled, the kernel automatically keeps track of the "
8561 "path MTU per destination host.  When it is connected to a specific peer with "
8562 "B<connect>(2), the currently known path MTU can be retrieved conveniently "
8563 "using the B<IP_MTU> socket option (e.g., after an B<EMSGSIZE> error "
8564 "occurred).  The path MTU may change over time.  For connectionless sockets "
8565 "with many destinations, the new MTU for a given destination can also be "
8566 "accessed using the error queue (see B<IP_RECVERR>).  A new error will be "
8567 "queued for every incoming MTU update."
8568 msgstr ""
8569
8570 #. type: Plain text
8571 #: build/C/man7/ip.7:369
8572 msgid ""
8573 "While MTU discovery is in progress, initial packets from datagram sockets "
8574 "may be dropped.  Applications using UDP should be aware of this and not take "
8575 "it into account for their packet retransmit strategy."
8576 msgstr ""
8577
8578 #.  FIXME this is an ugly hack
8579 #. type: Plain text
8580 #: build/C/man7/ip.7:374
8581 msgid ""
8582 "To bootstrap the path MTU discovery process on unconnected sockets, it is "
8583 "possible to start with a big datagram size (up to 64K-headers bytes long) "
8584 "and let it shrink by updates of the path MTU."
8585 msgstr ""
8586
8587 #. type: Plain text
8588 #: build/C/man7/ip.7:383
8589 msgid ""
8590 "To get an initial estimate of the path MTU, connect a datagram socket to the "
8591 "destination address using B<connect>(2)  and retrieve the MTU by calling "
8592 "B<getsockopt>(2)  with the B<IP_MTU> option."
8593 msgstr ""
8594
8595 #. type: Plain text
8596 #: build/C/man7/ip.7:395
8597 msgid ""
8598 "It is possible to implement RFC 4821 MTU probing with B<SOCK_DGRAM> or "
8599 "B<SOCK_RAW> sockets by setting a value of B<IP_PMTUDISC_PROBE> (available "
8600 "since Linux 2.6.22).  This is also particularly useful for diagnostic tools "
8601 "such as B<tracepath>(8)  that wish to deliberately send probe packets larger "
8602 "than the observed Path MTU."
8603 msgstr ""
8604
8605 #. type: TP
8606 #: build/C/man7/ip.7:395
8607 #, no-wrap
8608 msgid "B<IP_MULTICAST_IF> (since Linux 1.2)"
8609 msgstr ""
8610
8611 #. type: Plain text
8612 #: build/C/man7/ip.7:404
8613 msgid ""
8614 "Set the local device for a multicast socket.  Argument is an I<ip_mreqn> or "
8615 "I<ip_mreq> structure similar to B<IP_ADD_MEMBERSHIP>."
8616 msgstr ""
8617
8618 #. type: Plain text
8619 #: build/C/man7/ip.7:408
8620 msgid "When an invalid socket option is passed, B<ENOPROTOOPT> is returned."
8621 msgstr ""
8622
8623 #. type: TP
8624 #: build/C/man7/ip.7:408
8625 #, no-wrap
8626 msgid "B<IP_MULTICAST_LOOP> (since Linux 1.2)"
8627 msgstr ""
8628
8629 #. type: Plain text
8630 #: build/C/man7/ip.7:412
8631 msgid ""
8632 "Set or read a boolean integer argument that determines whether sent "
8633 "multicast packets should be looped back to the local sockets."
8634 msgstr ""
8635
8636 #. type: TP
8637 #: build/C/man7/ip.7:412
8638 #, no-wrap
8639 msgid "B<IP_MULTICAST_TTL> (since Linux 1.2)"
8640 msgstr ""
8641
8642 #. type: Plain text
8643 #: build/C/man7/ip.7:420
8644 msgid ""
8645 "Set or read the time-to-live value of outgoing multicast packets for this "
8646 "socket.  It is very important for multicast packets to set the smallest TTL "
8647 "possible.  The default is 1 which means that multicast packets don't leave "
8648 "the local network unless the user program explicitly requests it.  Argument "
8649 "is an integer."
8650 msgstr ""
8651
8652 #. type: TP
8653 #: build/C/man7/ip.7:420
8654 #, no-wrap
8655 msgid "B<IP_NODEFRAG> (since Linux 2.6.36)"
8656 msgstr ""
8657
8658 #. type: Plain text
8659 #: build/C/man7/ip.7:428
8660 msgid ""
8661 "If enabled (argument is nonzero), the reassembly of outgoing packets is "
8662 "disabled in the netfilter layer.  This option is only valid for B<SOCK_RAW> "
8663 "sockets.  The argument is an integer."
8664 msgstr ""
8665
8666 #. type: TP
8667 #: build/C/man7/ip.7:428
8668 #, no-wrap
8669 msgid "B<IP_OPTIONS> (since Linux 2.0)"
8670 msgstr ""
8671
8672 #.  Precisely: 1.3.30
8673 #.  FIXME Document IP_PASSSEC
8674 #.  Boolean
8675 #.  Since Linux 2.6.17
8676 #.  commit 2c7946a7bf45ae86736ab3b43d0085e43947945c
8677 #.  Author: Catherine Zhang <cxzhang@watson.ibm.com>
8678 #. type: Plain text
8679 #: build/C/man7/ip.7:462
8680 msgid ""
8681 "Set or get the IP options to be sent with every packet from this socket.  "
8682 "The arguments are a pointer to a memory buffer containing the options and "
8683 "the option length.  The B<setsockopt>(2)  call sets the IP options "
8684 "associated with a socket.  The maximum option size for IPv4 is 40 bytes.  "
8685 "See RFC\\ 791 for the allowed options.  When the initial connection request "
8686 "packet for a B<SOCK_STREAM> socket contains IP options, the IP options will "
8687 "be set automatically to the options from the initial packet with routing "
8688 "headers reversed.  Incoming packets are not allowed to change options after "
8689 "the connection is established.  The processing of all incoming source "
8690 "routing options is disabled by default and can be enabled by using the "
8691 "I<accept_source_route> I</proc> interface.  Other options like timestamps "
8692 "are still handled.  For datagram sockets, IP options can be only set by the "
8693 "local user.  Calling B<getsockopt>(2)  with B<IP_OPTIONS> puts the current "
8694 "IP options used for sending into the supplied buffer."
8695 msgstr ""
8696
8697 #. type: TP
8698 #: build/C/man7/ip.7:462
8699 #, no-wrap
8700 msgid "B<IP_PKTINFO> (since Linux 2.2)"
8701 msgstr ""
8702
8703 #.  Precisely: 2.1.68
8704 #. type: Plain text
8705 #: build/C/man7/ip.7:479
8706 msgid ""
8707 "Pass an B<IP_PKTINFO> ancillary message that contains a I<pktinfo> structure "
8708 "that supplies some information about the incoming packet.  This only works "
8709 "for datagram oriented sockets.  The argument is a flag that tells the socket "
8710 "whether the B<IP_PKTINFO> message should be passed or not.  The message "
8711 "itself can only be sent/retrieved as control message with a packet using "
8712 "B<recvmsg>(2)  or B<sendmsg>(2)."
8713 msgstr ""
8714
8715 #. type: Plain text
8716 #: build/C/man7/ip.7:488
8717 #, no-wrap
8718 msgid ""
8719 "struct in_pktinfo {\n"
8720 "    unsigned int   ipi_ifindex;  /* Interface index */\n"
8721 "    struct in_addr ipi_spec_dst; /* Local address */\n"
8722 "    struct in_addr ipi_addr;     /* Header Destination\n"
8723 "                                    address */\n"
8724 "};\n"
8725 msgstr ""
8726
8727 #.  FIXME elaborate on that.
8728 #.  This field is grossly misnamed
8729 #. type: Plain text
8730 #: build/C/man7/ip.7:513
8731 msgid ""
8732 "I<ipi_ifindex> is the unique index of the interface the packet was received "
8733 "on.  I<ipi_spec_dst> is the local address of the packet and I<ipi_addr> is "
8734 "the destination address in the packet header.  If B<IP_PKTINFO> is passed to "
8735 "B<sendmsg>(2)  and I<ipi_spec_dst> is not zero, then it is used as the local "
8736 "source address for the routing table lookup and for setting up IP source "
8737 "route options.  When I<ipi_ifindex> is not zero, the primary local address "
8738 "of the interface specified by the index overwrites I<ipi_spec_dst> for the "
8739 "routing table lookup."
8740 msgstr ""
8741
8742 #. type: TP
8743 #: build/C/man7/ip.7:513
8744 #, no-wrap
8745 msgid "B<IP_RECVERR> (since Linux 2.2)"
8746 msgstr ""
8747
8748 #.  Precisely: 2.1.15
8749 #.  or SOL_IP on Linux
8750 #. type: Plain text
8751 #: build/C/man7/ip.7:535
8752 msgid ""
8753 "Enable extended reliable error message passing.  When enabled on a datagram "
8754 "socket, all generated errors will be queued in a per-socket error queue.  "
8755 "When the user receives an error from a socket operation, the errors can be "
8756 "received by calling B<recvmsg>(2)  with the B<MSG_ERRQUEUE> flag set.  The "
8757 "I<sock_extended_err> structure describing the error will be passed in an "
8758 "ancillary message with the type B<IP_RECVERR> and the level B<IPPROTO_IP>.  "
8759 "This is useful for reliable error handling on unconnected sockets.  The "
8760 "received data portion of the error queue contains the error packet."
8761 msgstr ""
8762
8763 #. type: Plain text
8764 #: build/C/man7/ip.7:541
8765 msgid "The B<IP_RECVERR> control message contains a I<sock_extended_err> structure:"
8766 msgstr ""
8767
8768 #. type: Plain text
8769 #: build/C/man7/ip.7:549
8770 #, no-wrap
8771 msgid ""
8772 "#define SO_EE_ORIGIN_NONE    0\n"
8773 "#define SO_EE_ORIGIN_LOCAL   1\n"
8774 "#define SO_EE_ORIGIN_ICMP    2\n"
8775 "#define SO_EE_ORIGIN_ICMP6   3\n"
8776 msgstr ""
8777
8778 #. type: Plain text
8779 #: build/C/man7/ip.7:560
8780 #, no-wrap
8781 msgid ""
8782 "struct sock_extended_err {\n"
8783 "    uint32_t ee_errno;   /* error number */\n"
8784 "    uint8_t  ee_origin;  /* where the error originated */\n"
8785 "    uint8_t  ee_type;    /* type */\n"
8786 "    uint8_t  ee_code;    /* code */\n"
8787 "    uint8_t  ee_pad;\n"
8788 "    uint32_t ee_info;    /* additional information */\n"
8789 "    uint32_t ee_data;    /* other data */\n"
8790 "    /* More data may follow */\n"
8791 "};\n"
8792 msgstr ""
8793
8794 #. type: Plain text
8795 #: build/C/man7/ip.7:562
8796 #, no-wrap
8797 msgid "struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *);\n"
8798 msgstr ""
8799
8800 #. type: Plain text
8801 #: build/C/man7/ip.7:585
8802 msgid ""
8803 "I<ee_errno> contains the I<errno> number of the queued error.  I<ee_origin> "
8804 "is the origin code of where the error originated.  The other fields are "
8805 "protocol-specific.  The macro B<SO_EE_OFFENDER> returns a pointer to the "
8806 "address of the network object where the error originated from given a "
8807 "pointer to the ancillary message.  If this address is not known, the "
8808 "I<sa_family> member of the I<sockaddr> contains B<AF_UNSPEC> and the other "
8809 "fields of the I<sockaddr> are undefined."
8810 msgstr ""
8811
8812 #.  FIXME . Is it a good idea to document that? It is a dubious feature.
8813 #.  On
8814 #.  .B SOCK_STREAM
8815 #.  sockets,
8816 #.  .B IP_RECVERR
8817 #.  has slightly different semantics. Instead of
8818 #.  saving the errors for the next timeout, it passes all incoming
8819 #.  errors immediately to the user.
8820 #.  This might be useful for very short-lived TCP connections which
8821 #.  need fast error handling. Use this option with care:
8822 #.  it makes TCP unreliable
8823 #.  by not allowing it to recover properly from routing
8824 #.  shifts and other normal
8825 #.  conditions and breaks the protocol specification.
8826 #. type: Plain text
8827 #: build/C/man7/ip.7:644
8828 msgid ""
8829 "IP uses the I<sock_extended_err> structure as follows: I<ee_origin> is set "
8830 "to B<SO_EE_ORIGIN_ICMP> for errors received as an ICMP packet, or "
8831 "B<SO_EE_ORIGIN_LOCAL> for locally generated errors.  Unknown values should "
8832 "be ignored.  I<ee_type> and I<ee_code> are set from the type and code fields "
8833 "of the ICMP header.  I<ee_info> contains the discovered MTU for B<EMSGSIZE> "
8834 "errors.  The message also contains the I<sockaddr_in of the node> caused the "
8835 "error, which can be accessed with the B<SO_EE_OFFENDER> macro.  The "
8836 "I<sin_family> field of the B<SO_EE_OFFENDER> address is B<AF_UNSPEC> when "
8837 "the source was unknown.  When the error originated from the network, all IP "
8838 "options (B<IP_OPTIONS>, B<IP_TTL>, etc.) enabled on the socket and contained "
8839 "in the error packet are passed as control messages.  The payload of the "
8840 "packet causing the error is returned as normal payload.  Note that TCP has "
8841 "no error queue; B<MSG_ERRQUEUE> is not permitted on B<SOCK_STREAM> sockets.  "
8842 "B<IP_RECVERR> is valid for TCP, but all errors are returned by socket "
8843 "function return or B<SO_ERROR> only."
8844 msgstr ""
8845
8846 #. type: Plain text
8847 #: build/C/man7/ip.7:649
8848 msgid ""
8849 "For raw sockets, B<IP_RECVERR> enables passing of all received ICMP errors "
8850 "to the application, otherwise errors are only reported on connected sockets"
8851 msgstr ""
8852
8853 #. type: Plain text
8854 #: build/C/man7/ip.7:653
8855 msgid ""
8856 "It sets or retrieves an integer boolean flag.  B<IP_RECVERR> defaults to "
8857 "off."
8858 msgstr ""
8859
8860 #. type: TP
8861 #: build/C/man7/ip.7:653
8862 #, no-wrap
8863 msgid "B<IP_RECVOPTS> (since Linux 2.2)"
8864 msgstr ""
8865
8866 #.  Precisely: 2.1.15
8867 #. type: Plain text
8868 #: build/C/man7/ip.7:664
8869 msgid ""
8870 "Pass all incoming IP options to the user in a B<IP_OPTIONS> control "
8871 "message.  The routing header and other options are already filled in for the "
8872 "local host.  Not supported for B<SOCK_STREAM> sockets."
8873 msgstr ""
8874
8875 #. type: TP
8876 #: build/C/man7/ip.7:664
8877 #, no-wrap
8878 msgid "B<IP_RECVORIGDSTADDR> (since Linux 2.6.29)"
8879 msgstr ""
8880
8881 #.  commit e8b2dfe9b4501ed0047459b2756ba26e5a940a69
8882 #. type: Plain text
8883 #: build/C/man7/ip.7:675
8884 msgid ""
8885 "This boolean option enables the B<IP_ORIGDSTADDR> ancillary message in "
8886 "B<recvmsg>(2), in which the kernel returns the original destination address "
8887 "of the datagram being received.  The ancillary message contains a I<struct "
8888 "sockaddr_in>."
8889 msgstr ""
8890
8891 #. type: TP
8892 #: build/C/man7/ip.7:675
8893 #, no-wrap
8894 msgid "B<IP_RECVTOS> (since Linux 2.2)"
8895 msgstr ""
8896
8897 #.  Precisely: 2.1.68
8898 #. type: Plain text
8899 #: build/C/man7/ip.7:684
8900 msgid ""
8901 "If enabled the B<IP_TOS> ancillary message is passed with incoming packets.  "
8902 "It contains a byte which specifies the Type of Service/Precedence field of "
8903 "the packet header.  Expects a boolean integer flag."
8904 msgstr ""
8905
8906 #. type: TP
8907 #: build/C/man7/ip.7:684
8908 #, no-wrap
8909 msgid "B<IP_RECVTTL> (since Linux 2.2)"
8910 msgstr ""
8911
8912 #.  Precisely: 2.1.68
8913 #. type: Plain text
8914 #: build/C/man7/ip.7:694
8915 msgid ""
8916 "When this flag is set, pass a B<IP_TTL> control message with the time to "
8917 "live field of the received packet as a byte.  Not supported for "
8918 "B<SOCK_STREAM> sockets."
8919 msgstr ""
8920
8921 #. type: TP
8922 #: build/C/man7/ip.7:694
8923 #, no-wrap
8924 msgid "B<IP_RETOPTS> (since Linux 2.2)"
8925 msgstr ""
8926
8927 #.  Precisely: 2.1.15
8928 #. type: Plain text
8929 #: build/C/man7/ip.7:701
8930 msgid ""
8931 "Identical to B<IP_RECVOPTS>, but returns raw unprocessed options with "
8932 "timestamp and route record options not filled in for this hop."
8933 msgstr ""
8934
8935 #. type: TP
8936 #: build/C/man7/ip.7:701
8937 #, no-wrap
8938 msgid "B<IP_ROUTER_ALERT> (since Linux 2.2)"
8939 msgstr ""
8940
8941 #.  Precisely: 2.1.68
8942 #. type: Plain text
8943 #: build/C/man7/ip.7:713
8944 msgid ""
8945 "Pass all to-be forwarded packets with the IP Router Alert option set to this "
8946 "socket.  Only valid for raw sockets.  This is useful, for instance, for "
8947 "user-space RSVP daemons.  The tapped packets are not forwarded by the "
8948 "kernel; it is the user's responsibility to send them out again.  Socket "
8949 "binding is ignored, such packets are only filtered by protocol.  Expects an "
8950 "integer flag."
8951 msgstr ""
8952
8953 #. type: TP
8954 #: build/C/man7/ip.7:713
8955 #, no-wrap
8956 msgid "B<IP_TOS> (since Linux 1.0)"
8957 msgstr ""
8958
8959 #.  FIXME elaborate on this
8960 #.  Needs CAP_NET_ADMIN
8961 #.  Boolean
8962 #.  Since Linux 2.6.27
8963 #.  Author: KOVACS Krisztian <hidden@sch.bme.hu>
8964 #.  http://lwn.net/Articles/252545/
8965 #. type: Plain text
8966 #: build/C/man7/ip.7:747
8967 msgid ""
8968 "Set or receive the Type-Of-Service (TOS) field that is sent with every IP "
8969 "packet originating from this socket.  It is used to prioritize packets on "
8970 "the network.  TOS is a byte.  There are some standard TOS flags defined: "
8971 "B<IPTOS_LOWDELAY> to minimize delays for interactive traffic, "
8972 "B<IPTOS_THROUGHPUT> to optimize throughput, B<IPTOS_RELIABILITY> to optimize "
8973 "for reliability, B<IPTOS_MINCOST> should be used for \"filler data\" where "
8974 "slow transmission doesn't matter.  At most one of these TOS values can be "
8975 "specified.  Other bits are invalid and shall be cleared.  Linux sends "
8976 "B<IPTOS_LOWDELAY> datagrams first by default, but the exact behavior depends "
8977 "on the configured queueing discipline.  Some high priority levels may "
8978 "require superuser privileges (the B<CAP_NET_ADMIN> capability).  The "
8979 "priority can also be set in a protocol independent way by the "
8980 "(B<SOL_SOCKET>, B<SO_PRIORITY>)  socket option (see B<socket>(7))."
8981 msgstr ""
8982
8983 #. type: TP
8984 #: build/C/man7/ip.7:747
8985 #, no-wrap
8986 msgid "B<IP_TRANSPARENT> (since Linux 2.6.24)"
8987 msgstr ""
8988
8989 #.  commit f5715aea4564f233767ea1d944b2637a5fd7cd2e
8990 #.      This patch introduces the IP_TRANSPARENT socket option: enabling that
8991 #.      will make the IPv4 routing omit the non-local source address check on
8992 #.      output. Setting IP_TRANSPARENT requires NET_ADMIN capability.
8993 #.  http://lwn.net/Articles/252545/
8994 #. type: Plain text
8995 #: build/C/man7/ip.7:764
8996 msgid ""
8997 "Setting this boolean option enables transparent proxying on this socket.  "
8998 "This socket option allows the calling application to bind to a nonlocal IP "
8999 "address and operate both as a client and a server with the foreign address "
9000 "as the local endpoint.  NOTE: this requires that routing be set up in a way "
9001 "that packets going to the foreign address are routed through the TProxy "
9002 "box.  Enabling this socket option requires superuser privileges (the "
9003 "B<CAP_NET_ADMIN> capability)."
9004 msgstr ""
9005
9006 #. type: Plain text
9007 #: build/C/man7/ip.7:767
9008 msgid ""
9009 "TProxy redirection with the iptables TPROXY target also requires that this "
9010 "option be set on the redirected socket."
9011 msgstr ""
9012
9013 #. type: TP
9014 #: build/C/man7/ip.7:767
9015 #, no-wrap
9016 msgid "B<IP_TTL> (since Linux 1.0)"
9017 msgstr ""
9018
9019 #.  FIXME Document IP_XFRM_POLICY
9020 #.  Since Linux 2.5.48
9021 #.  Needs CAP_NET_ADMIN
9022 #. type: Plain text
9023 #: build/C/man7/ip.7:774
9024 msgid ""
9025 "Set or retrieve the current time-to-live field that is used in every packet "
9026 "sent from this socket."
9027 msgstr ""
9028
9029 #.  FIXME As at 2.6.12, 14 Jun 2005, the following are undocumented:
9030 #.      ip_queue_maxlen
9031 #.      ip_conntrack_max
9032 #. type: Plain text
9033 #: build/C/man7/ip.7:790
9034 msgid ""
9035 "The IP protocol supports a set of I</proc> interfaces to configure some "
9036 "global parameters.  The parameters can be accessed by reading or writing "
9037 "files in the directory I</proc/sys/net/ipv4/>.  Interfaces described as "
9038 "I<Boolean> take an integer value, with a nonzero value (\"true\") meaning "
9039 "that the corresponding option is enabled, and a zero value (\"false\")  "
9040 "meaning that the option is disabled."
9041 msgstr ""
9042
9043 #. type: TP
9044 #: build/C/man7/ip.7:790
9045 #, no-wrap
9046 msgid "I<ip_always_defrag> (Boolean; since Linux 2.2.13)"
9047 msgstr ""
9048
9049 #. type: Plain text
9050 #: build/C/man7/ip.7:796
9051 msgid ""
9052 "[New with kernel 2.2.13; in earlier kernel versions this feature was "
9053 "controlled at compile time by the B<CONFIG_IP_ALWAYS_DEFRAG> option; this "
9054 "option is not present in 2.4.x and later]"
9055 msgstr ""
9056
9057 #. type: Plain text
9058 #: build/C/man7/ip.7:803
9059 msgid ""
9060 "When this boolean flag is enabled (not equal 0), incoming fragments (parts "
9061 "of IP packets that arose when some host between origin and destination "
9062 "decided that the packets were too large and cut them into pieces) will be "
9063 "reassembled (defragmented) before being processed, even if they are about to "
9064 "be forwarded."
9065 msgstr ""
9066
9067 #. type: Plain text
9068 #: build/C/man7/ip.7:810
9069 msgid ""
9070 "Only enable if running either a firewall that is the sole link to your "
9071 "network or a transparent proxy; never ever use it for a normal router or "
9072 "host.  Otherwise fragmented communication can be disturbed if the fragments "
9073 "travel over different links.  Defragmentation also has a large memory and "
9074 "CPU time cost."
9075 msgstr ""
9076
9077 #. type: Plain text
9078 #: build/C/man7/ip.7:814
9079 msgid ""
9080 "This is automagically turned on when masquerading or transparent proxying "
9081 "are configured."
9082 msgstr ""
9083
9084 #. type: TP
9085 #: build/C/man7/ip.7:814
9086 #, no-wrap
9087 msgid "I<ip_autoconfig> (since Linux 2.2 to 2.6.17)"
9088 msgstr ""
9089
9090 #.  Precisely: since 2.1.68
9091 #.  FIXME document ip_autoconfig
9092 #. type: Plain text
9093 #: build/C/man7/ip.7:820
9094 msgid "Not documented."
9095 msgstr ""
9096
9097 #. type: TP
9098 #: build/C/man7/ip.7:820
9099 #, no-wrap
9100 msgid "I<ip_default_ttl> (integer; default: 64; since Linux 2.2)"
9101 msgstr ""
9102
9103 #.  Precisely: 2.1.15
9104 #. type: Plain text
9105 #: build/C/man7/ip.7:828
9106 msgid ""
9107 "Set the default time-to-live value of outgoing packets.  This can be changed "
9108 "per socket with the B<IP_TTL> option."
9109 msgstr ""
9110
9111 #. type: TP
9112 #: build/C/man7/ip.7:828
9113 #, no-wrap
9114 msgid "I<ip_dynaddr> (Boolean; default: disabled; since Linux 2.0.31)"
9115 msgstr ""
9116
9117 #. type: Plain text
9118 #: build/C/man7/ip.7:835
9119 msgid ""
9120 "Enable dynamic socket address and masquerading entry rewriting on interface "
9121 "address change.  This is useful for dialup interface with changing IP "
9122 "addresses.  0 means no rewriting, 1 turns it on and 2 enables verbose mode."
9123 msgstr ""
9124
9125 #. type: TP
9126 #: build/C/man7/ip.7:835
9127 #, no-wrap
9128 msgid "I<ip_forward> (Boolean; default: disabled; since Linux 1.2)"
9129 msgstr ""
9130
9131 #. type: Plain text
9132 #: build/C/man7/ip.7:840
9133 msgid ""
9134 "Enable IP forwarding with a boolean flag.  IP forwarding can be also set on "
9135 "a per-interface basis."
9136 msgstr ""
9137
9138 #. type: TP
9139 #: build/C/man7/ip.7:840
9140 #, no-wrap
9141 msgid "I<ip_local_port_range> (since Linux 2.2)"
9142 msgstr ""
9143
9144 #.  Precisely: since 2.1.68
9145 #. type: Plain text
9146 #: build/C/man7/ip.7:854
9147 msgid ""
9148 "Contains two integers that define the default local port range allocated to "
9149 "sockets.  Allocation starts with the first number and ends with the second "
9150 "number.  Note that these should not conflict with the ports used by "
9151 "masquerading (although the case is handled).  Also arbitrary choices may "
9152 "cause problems with some firewall packet filters that make assumptions about "
9153 "the local ports in use.  First number should be at least greater than 1024, "
9154 "or better, greater than 4096, to avoid clashes with well known ports and to "
9155 "minimize firewall problems."
9156 msgstr ""
9157
9158 #. type: TP
9159 #: build/C/man7/ip.7:854
9160 #, no-wrap
9161 msgid "I<ip_no_pmtu_disc> (Boolean; default: disabled; since Linux 2.2)"
9162 msgstr ""
9163
9164 #.  Precisely: 2.1.15
9165 #
9166 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
9167 #. type: Plain text
9168 #: build/C/man7/ip.7:866
9169 msgid ""
9170 "If enabled, don't do Path MTU Discovery for TCP sockets by default.  Path "
9171 "MTU discovery may fail if misconfigured firewalls (that drop all ICMP "
9172 "packets) or misconfigured interfaces (e.g., a point-to-point link where the "
9173 "both ends don't agree on the MTU) are on the path.  It is better to fix the "
9174 "broken routers on the path than to turn off Path MTU Discovery globally, "
9175 "because not doing it incurs a high cost to the network."
9176 msgstr ""
9177
9178 #. type: TP
9179 #: build/C/man7/ip.7:866
9180 #, no-wrap
9181 msgid "I<ip_nonlocal_bind> (Boolean; default: disabled; since Linux 2.4)"
9182 msgstr ""
9183
9184 #.  Precisely: patch-2.4.0-test10
9185 #
9186 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
9187 #. type: Plain text
9188 #: build/C/man7/ip.7:875
9189 msgid ""
9190 "If set, allows processes to B<bind>(2)  to nonlocal IP addresses, which can "
9191 "be quite useful, but may break some applications."
9192 msgstr ""
9193
9194 #. type: TP
9195 #: build/C/man7/ip.7:875
9196 #, no-wrap
9197 msgid "I<ip6frag_time> (integer; default: 30)"
9198 msgstr ""
9199
9200 #
9201 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
9202 #. type: Plain text
9203 #: build/C/man7/ip.7:880
9204 msgid "Time in seconds to keep an IPv6 fragment in memory."
9205 msgstr ""
9206
9207 #. type: TP
9208 #: build/C/man7/ip.7:880
9209 #, no-wrap
9210 msgid "I<ip6frag_secret_interval> (integer; default: 600)"
9211 msgstr ""
9212
9213 #. type: Plain text
9214 #: build/C/man7/ip.7:884
9215 msgid ""
9216 "Regeneration interval (in seconds) of the hash secret (or lifetime for the "
9217 "hash secret) for IPv6 fragments."
9218 msgstr ""
9219
9220 #. type: TP
9221 #: build/C/man7/ip.7:884
9222 #, no-wrap
9223 msgid "I<ipfrag_high_thresh> (integer), I<ipfrag_low_thresh> (integer)"
9224 msgstr ""
9225
9226 #. type: Plain text
9227 #: build/C/man7/ip.7:891
9228 msgid ""
9229 "If the amount of queued IP fragments reaches I<ipfrag_high_thresh>, the "
9230 "queue is pruned down to I<ipfrag_low_thresh>.  Contains an integer with the "
9231 "number of bytes."
9232 msgstr ""
9233
9234 #. type: TP
9235 #: build/C/man7/ip.7:891
9236 #, no-wrap
9237 msgid "I<neigh/*>"
9238 msgstr ""
9239
9240 #.  FIXME Document the conf/*/* interfaces
9241 #.  FIXME Document the route/* interfaces
9242 #.  FIXME document them all
9243 #. type: Plain text
9244 #: build/C/man7/ip.7:898
9245 msgid "See B<arp>(7)."
9246 msgstr ""
9247
9248 #.  2006-04-02, mtk
9249 #.  commented out the following because ipchains is obsolete
9250 #.  .PP
9251 #.  The ioctls to configure firewalling are documented in
9252 #.  .BR ipfw (4)
9253 #.  from the
9254 #.  .B ipchains
9255 #.  package.
9256 #. type: Plain text
9257 #: build/C/man7/ip.7:911
9258 msgid "All ioctls described in B<socket>(7)  apply to B<ip>."
9259 msgstr ""
9260
9261 #.  FIXME Add a discussion of multicasting
9262 #. type: Plain text
9263 #: build/C/man7/ip.7:915
9264 msgid ""
9265 "Ioctls to configure generic device parameters are described in "
9266 "B<netdevice>(7)."
9267 msgstr ""
9268
9269 #. type: Plain text
9270 #: build/C/man7/ip.7:935
9271 msgid ""
9272 "The user tried to execute an operation without the necessary permissions.  "
9273 "These include: sending a packet to a broadcast address without having the "
9274 "B<SO_BROADCAST> flag set; sending a packet via a I<prohibit> route; "
9275 "modifying firewall settings without superuser privileges (the "
9276 "B<CAP_NET_ADMIN> capability); binding to a privileged port without superuser "
9277 "privileges (the B<CAP_NET_BIND_SERVICE> capability)."
9278 msgstr ""
9279
9280 #. type: Plain text
9281 #: build/C/man7/ip.7:948
9282 msgid "An connection operation on a nonblocking socket is already in progress."
9283 msgstr ""
9284
9285 #. type: Plain text
9286 #: build/C/man7/ip.7:957
9287 msgid ""
9288 "No valid routing table entry matches the destination address.  This error "
9289 "can be caused by a ICMP message from a remote router or for the local "
9290 "routing table."
9291 msgstr ""
9292
9293 #. type: Plain text
9294 #: build/C/man7/ip.7:963
9295 msgid ""
9296 "Invalid argument passed.  For send operations this can be caused by sending "
9297 "to a I<blackhole> route."
9298 msgstr ""
9299
9300 #. type: Plain text
9301 #: build/C/man7/ip.7:970
9302 msgid "Datagram is bigger than an MTU on the path and it cannot be fragmented."
9303 msgstr ""
9304
9305 #. type: TP
9306 #: build/C/man7/ip.7:970
9307 #, no-wrap
9308 msgid "B<ENOBUFS>, B<ENOMEM>"
9309 msgstr ""
9310
9311 #. type: Plain text
9312 #: build/C/man7/ip.7:975
9313 msgid ""
9314 "Not enough free memory.  This often means that the memory allocation is "
9315 "limited by the socket buffer limits, not by the system memory, but this is "
9316 "not 100% consistent."
9317 msgstr ""
9318
9319 #. type: Plain text
9320 #: build/C/man7/ip.7:993
9321 msgid ""
9322 "User doesn't have permission to set high priority, change configuration, or "
9323 "send signals to the requested process or group."
9324 msgstr ""
9325
9326 #. type: Plain text
9327 #: build/C/man7/ip.7:999
9328 msgid "The socket is not configured or an unknown socket type was requested."
9329 msgstr ""
9330
9331 #. type: Plain text
9332 #: build/C/man7/ip.7:1006
9333 msgid ""
9334 "Other errors may be generated by the overlaying protocols; see B<tcp>(7), "
9335 "B<raw>(7), B<udp>(7)  and B<socket>(7)."
9336 msgstr ""
9337
9338 #.  IP_PASSSEC is Linux-specific
9339 #.  IP_XFRM_POLICY is Linux-specific
9340 #.  IP_IPSEC_POLICY is a nonstandard extension, also present on some BSDs
9341 #. type: Plain text
9342 #: build/C/man7/ip.7:1020
9343 msgid ""
9344 "B<IP_FREEBIND>, B<IP_MTU>, B<IP_MTU_DISCOVER>, B<IP_RECVORIGDSTADDR>, "
9345 "B<IP_PKTINFO>, B<IP_RECVERR>, B<IP_ROUTER_ALERT>, and B<IP_TRANSPARENT> are "
9346 "Linux-specific."
9347 msgstr ""
9348
9349 #. type: Plain text
9350 #: build/C/man7/ip.7:1029
9351 msgid ""
9352 "Be very careful with the B<SO_BROADCAST> option - it is not privileged in "
9353 "Linux.  It is easy to overload the network with careless broadcasts.  For "
9354 "new application protocols it is better to use a multicast group instead of "
9355 "broadcasting.  Broadcasting is discouraged."
9356 msgstr ""
9357
9358 #. type: Plain text
9359 #: build/C/man7/ip.7:1039
9360 msgid ""
9361 "Some other BSD sockets implementations provide B<IP_RCVDSTADDR> and "
9362 "B<IP_RECVIF> socket options to get the destination address and the interface "
9363 "of received datagrams.  Linux has the more general B<IP_PKTINFO> for the "
9364 "same task."
9365 msgstr ""
9366
9367 #. type: Plain text
9368 #: build/C/man7/ip.7:1048
9369 msgid ""
9370 "Some BSD sockets implementations also provide an B<IP_RECVTTL> option, but "
9371 "an ancillary message with type B<IP_RECVTTL> is passed with the incoming "
9372 "packet.  This is different from the B<IP_TTL> option used in Linux."
9373 msgstr ""
9374
9375 #. type: Plain text
9376 #: build/C/man7/ip.7:1054
9377 msgid ""
9378 "Using B<SOL_IP> socket options level isn't portable, BSD-based stacks use "
9379 "B<IPPROTO_IP> level."
9380 msgstr ""
9381
9382 #. type: Plain text
9383 #: build/C/man7/ip.7:1067
9384 msgid ""
9385 "For compatibility with Linux 2.0, the obsolete B<socket(AF_INET, "
9386 "SOCK_PACKET, >I<protocol>B<)> syntax is still supported to open a "
9387 "B<packet>(7)  socket.  This is deprecated and should be replaced by "
9388 "B<socket(AF_PACKET, SOCK_RAW, >I<protocol>B<)> instead.  The main difference "
9389 "is the new I<sockaddr_ll> address structure for generic link layer "
9390 "information instead of the old B<sockaddr_pkt>."
9391 msgstr ""
9392
9393 #. type: Plain text
9394 #: build/C/man7/ip.7:1072
9395 msgid ""
9396 "The ioctls to configure IP-specific interface options and ARP tables are not "
9397 "described."
9398 msgstr ""
9399
9400 #. type: Plain text
9401 #: build/C/man7/ip.7:1076
9402 msgid ""
9403 "Some versions of glibc forget to declare I<in_pktinfo>.  Workaround "
9404 "currently is to copy it into your program from this man page."
9405 msgstr ""
9406
9407 #.  .SH AUTHORS
9408 #.  This man page was written by Andi Kleen.
9409 #. type: Plain text
9410 #: build/C/man7/ip.7:1086
9411 msgid ""
9412 "Receiving the original destination address with B<MSG_ERRQUEUE> in "
9413 "I<msg_name> by B<recvmsg>(2)  does not work in some 2.2 kernels."
9414 msgstr ""
9415
9416 #. type: Plain text
9417 #: build/C/man7/ip.7:1097
9418 msgid ""
9419 "B<recvmsg>(2), B<sendmsg>(2), B<byteorder>(3), B<ipfw>(4), "
9420 "B<capabilities>(7), B<netlink>(7), B<raw>(7), B<socket>(7), B<tcp>(7), "
9421 "B<udp>(7)"
9422 msgstr ""
9423
9424 #. type: Plain text
9425 #: build/C/man7/ip.7:1099
9426 msgid "RFC\\ 791 for the original IP specification."
9427 msgstr ""
9428
9429 #. type: Plain text
9430 #: build/C/man7/ip.7:1101
9431 msgid "RFC\\ 1122 for the IPv4 host requirements."
9432 msgstr ""
9433
9434 #.  FIXME autobind INADDR REUSEADDR
9435 #. type: Plain text
9436 #: build/C/man7/ip.7:1104
9437 msgid "RFC\\ 1812 for the IPv4 router requirements."
9438 msgstr ""
9439
9440 #. type: TH
9441 #: build/C/man7/ipv6.7:7
9442 #, no-wrap
9443 msgid "IPV6"
9444 msgstr ""
9445
9446 #. type: TH
9447 #: build/C/man7/ipv6.7:7
9448 #, no-wrap
9449 msgid "2011-09-08"
9450 msgstr ""
9451
9452 #. type: Plain text
9453 #: build/C/man7/ipv6.7:10
9454 msgid "ipv6, AF_INET6 - Linux IPv6 protocol implementation"
9455 msgstr ""
9456
9457 #. type: Plain text
9458 #: build/C/man7/ipv6.7:16
9459 msgid "I<tcp6_socket>B< = socket(AF_INET6, SOCK_STREAM, 0);>"
9460 msgstr ""
9461
9462 #. type: Plain text
9463 #: build/C/man7/ipv6.7:18
9464 msgid "I<raw6_socket>B< = socket(AF_INET6, SOCK_RAW, >I<protocol>B<);>"
9465 msgstr ""
9466
9467 #. type: Plain text
9468 #: build/C/man7/ipv6.7:20
9469 msgid "I<udp6_socket>B< = socket(AF_INET6, SOCK_DGRAM, >I<protocol>B<);>"
9470 msgstr ""
9471
9472 #. type: Plain text
9473 #: build/C/man7/ipv6.7:27
9474 msgid ""
9475 "Linux 2.2 optionally implements the Internet Protocol, version 6.  This man "
9476 "page contains a description of the IPv6 basic API as implemented by the "
9477 "Linux kernel and glibc 2.1.  The interface is based on the BSD sockets "
9478 "interface; see B<socket>(7)."
9479 msgstr ""
9480
9481 #. type: Plain text
9482 #: build/C/man7/ipv6.7:32
9483 msgid ""
9484 "The IPv6 API aims to be mostly compatible with the IPv4 API (see B<ip>(7)).  "
9485 "Only differences are described in this man page."
9486 msgstr ""
9487
9488 #. type: Plain text
9489 #: build/C/man7/ipv6.7:44
9490 msgid ""
9491 "To bind an B<AF_INET6> socket to any process, the local address should be "
9492 "copied from the I<in6addr_any> variable which has I<in6_addr> type.  In "
9493 "static initializations, B<IN6ADDR_ANY_INIT> may also be used, which expands "
9494 "to a constant expression.  Both of them are in network byte order."
9495 msgstr ""
9496
9497 #. type: Plain text
9498 #: build/C/man7/ipv6.7:51
9499 msgid ""
9500 "The IPv6 loopback address (::1) is available in the global "
9501 "I<in6addr_loopback> variable.  For initializations, B<IN6ADDR_LOOPBACK_INIT> "
9502 "should be used."
9503 msgstr ""
9504
9505 #. type: Plain text
9506 #: build/C/man7/ipv6.7:58
9507 msgid ""
9508 "IPv4 connections can be handled with the v6 API by using the v4-mapped-on-v6 "
9509 "address type; thus a program only needs to support this API type to support "
9510 "both protocols.  This is handled transparently by the address handling "
9511 "functions in the C library."
9512 msgstr ""
9513
9514 #. type: Plain text
9515 #: build/C/man7/ipv6.7:63
9516 msgid ""
9517 "IPv4 and IPv6 share the local port space.  When you get an IPv4 connection "
9518 "or packet to a IPv6 socket, its source address will be mapped to v6 and it "
9519 "will be mapped to v6."
9520 msgstr ""
9521
9522 #. type: Plain text
9523 #: build/C/man7/ipv6.7:73
9524 #, no-wrap
9525 msgid ""
9526 "struct sockaddr_in6 {\n"
9527 "    sa_family_t     sin6_family;   /* AF_INET6 */\n"
9528 "    in_port_t       sin6_port;     /* port number */\n"
9529 "    uint32_t        sin6_flowinfo; /* IPv6 flow information */\n"
9530 "    struct in6_addr sin6_addr;     /* IPv6 address */\n"
9531 "    uint32_t        sin6_scope_id; /* Scope ID (new in 2.4) */\n"
9532 "};\n"
9533 msgstr ""
9534
9535 #. type: Plain text
9536 #: build/C/man7/ipv6.7:77
9537 #, no-wrap
9538 msgid ""
9539 "struct in6_addr {\n"
9540 "    unsigned char   s6_addr[16];   /* IPv6 address */\n"
9541 "};\n"
9542 msgstr ""
9543
9544 #. type: Plain text
9545 #: build/C/man7/ipv6.7:99
9546 msgid ""
9547 "I<sin6_family> is always set to B<AF_INET6>; I<sin6_port> is the protocol "
9548 "port (see I<sin_port> in B<ip>(7)); I<sin6_flowinfo> is the IPv6 flow "
9549 "identifier; I<sin6_addr> is the 128-bit IPv6 address.  I<sin6_scope_id> is "
9550 "an ID depending on the scope of the address.  It is new in Linux 2.4.  Linux "
9551 "only supports it for link scope addresses, in that case I<sin6_scope_id> "
9552 "contains the interface index (see B<netdevice>(7))"
9553 msgstr ""
9554
9555 #. type: Plain text
9556 #: build/C/man7/ipv6.7:105
9557 msgid ""
9558 "IPv6 supports several address types: unicast to address a single host, "
9559 "multicast to address a group of hosts, anycast to address the nearest member "
9560 "of a group of hosts (not implemented in Linux), IPv4-on-IPv6 to address a "
9561 "IPv4 host, and other reserved address types."
9562 msgstr ""
9563
9564 #. type: Plain text
9565 #: build/C/man7/ipv6.7:111
9566 msgid ""
9567 "The address notation for IPv6 is a group of 8 4-digit hexadecimal numbers, "
9568 "separated with a \\(aq:\\(aq.  \\&\"::\" stands for a string of 0 bits.  "
9569 "Special addresses are ::1 for loopback and ::FFFF:E<lt>IPv4 addressE<gt> for "
9570 "IPv4-mapped-on-IPv6."
9571 msgstr ""
9572
9573 #. type: Plain text
9574 #: build/C/man7/ipv6.7:113
9575 msgid "The port space of IPv6 is shared with IPv4."
9576 msgstr ""
9577
9578 #. type: Plain text
9579 #: build/C/man7/ipv6.7:121
9580 msgid ""
9581 "IPv6 supports some protocol-specific socket options that can be set with "
9582 "B<setsockopt>(2)  and read with B<getsockopt>(2).  The socket option level "
9583 "for IPv6 is B<IPPROTO_IPV6>.  A boolean integer flag is zero when it is "
9584 "false, otherwise true."
9585 msgstr ""
9586
9587 #. type: TP
9588 #: build/C/man7/ipv6.7:121
9589 #, no-wrap
9590 msgid "B<IPV6_ADDRFORM>"
9591 msgstr ""
9592
9593 #. type: Plain text
9594 #: build/C/man7/ipv6.7:135
9595 msgid ""
9596 "Turn an B<AF_INET6> socket into a socket of a different address family.  "
9597 "Only B<AF_INET> is currently supported for that.  It is only allowed for "
9598 "IPv6 sockets that are connected and bound to a v4-mapped-on-v6 address.  The "
9599 "argument is a pointer to an integer containing B<AF_INET>.  This is useful "
9600 "to pass v4-mapped sockets as file descriptors to programs that don't know "
9601 "how to deal with the IPv6 API."
9602 msgstr ""
9603
9604 #. type: TP
9605 #: build/C/man7/ipv6.7:135
9606 #, no-wrap
9607 msgid "B<IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP>"
9608 msgstr ""
9609
9610 #.  FIXME IPV6_CHECKSUM is not documented, and probably should be
9611 #.  FIXME IPV6_JOIN_ANYCAST is not documented, and probably should be
9612 #.  FIXME IPV6_LEAVE_ANYCAST is not documented, and probably should be
9613 #.  FIXME IPV6_RECVPKTINFO is not documented, and probably should be
9614 #.  FIXME IPV6_2292PKTINFO is not documented, and probably should be
9615 #.  FIXME there are probably many other IPV6_* socket options that
9616 #.  should be documented
9617 #. type: Plain text
9618 #: build/C/man7/ipv6.7:148
9619 msgid ""
9620 "Control membership in multicast groups.  Argument is a pointer to a I<struct "
9621 "ipv6_mreq> structure."
9622 msgstr ""
9623
9624 #. type: TP
9625 #: build/C/man7/ipv6.7:148
9626 #, no-wrap
9627 msgid "B<IPV6_MTU>"
9628 msgstr ""
9629
9630 #. type: Plain text
9631 #: build/C/man7/ipv6.7:154
9632 msgid ""
9633 "Set the MTU to be used for the socket.  The MTU is limited by the device MTU "
9634 "or the path MTU when path MTU discovery is enabled.  Argument is a pointer "
9635 "to integer."
9636 msgstr ""
9637
9638 #. type: TP
9639 #: build/C/man7/ipv6.7:154
9640 #, no-wrap
9641 msgid "B<IPV6_MTU_DISCOVER>"
9642 msgstr ""
9643
9644 #. type: Plain text
9645 #: build/C/man7/ipv6.7:162
9646 msgid ""
9647 "Control path-MTU discovery on the socket.  See B<IP_MTU_DISCOVER> in "
9648 "B<ip>(7)  for details."
9649 msgstr ""
9650
9651 #. type: TP
9652 #: build/C/man7/ipv6.7:162
9653 #, no-wrap
9654 msgid "B<IPV6_MULTICAST_HOPS>"
9655 msgstr ""
9656
9657 #. type: Plain text
9658 #: build/C/man7/ipv6.7:169
9659 msgid ""
9660 "Set the multicast hop limit for the socket.  Argument is a pointer to an "
9661 "integer.  -1 in the value means use the route default, otherwise it should "
9662 "be between 0 and 255."
9663 msgstr ""
9664
9665 #. type: TP
9666 #: build/C/man7/ipv6.7:169
9667 #, no-wrap
9668 msgid "B<IPV6_MULTICAST_IF>"
9669 msgstr ""
9670
9671 #. type: Plain text
9672 #: build/C/man7/ipv6.7:181
9673 msgid ""
9674 "Set the device for outgoing multicast packets on the socket.  This is only "
9675 "allowed for B<SOCK_DGRAM> and B<SOCK_RAW> socket.  The argument is a pointer "
9676 "to an interface index (see B<netdevice>(7))  in an integer."
9677 msgstr ""
9678
9679 #. type: TP
9680 #: build/C/man7/ipv6.7:181
9681 #, no-wrap
9682 msgid "B<IPV6_MULTICAST_LOOP>"
9683 msgstr ""
9684
9685 #. type: Plain text
9686 #: build/C/man7/ipv6.7:185
9687 msgid ""
9688 "Control whether the socket sees multicast packets that it has send itself.  "
9689 "Argument is a pointer to boolean."
9690 msgstr ""
9691
9692 #. type: TP
9693 #: build/C/man7/ipv6.7:185
9694 #, no-wrap
9695 msgid "B<IPV6_PKTINFO>"
9696 msgstr ""
9697
9698 #. type: Plain text
9699 #: build/C/man7/ipv6.7:196
9700 msgid ""
9701 "Set delivery of the B<IPV6_PKTINFO> control message on incoming datagrams.  "
9702 "Only allowed for B<SOCK_DGRAM> or B<SOCK_RAW> sockets.  Argument is a "
9703 "pointer to a boolean value in an integer."
9704 msgstr ""
9705
9706 #. type: Plain text
9707 #: build/C/man7/ipv6.7:199
9708 msgid ""
9709 "B<IPV6_RTHDR, IPV6_AUTHHDR, IPV6_DSTOPTS, IPV6_HOPOPTS, IPV6_FLOWINFO, "
9710 "IPV6_HOPLIMIT>"
9711 msgstr ""
9712
9713 #. type: Plain text
9714 #: build/C/man7/ipv6.7:224
9715 msgid ""
9716 "Set delivery of control messages for incoming datagrams containing extension "
9717 "headers from the received packet.  B<IPV6_RTHDR> delivers the routing "
9718 "header, B<IPV6_AUTHHDR> delivers the authentication header, B<IPV6_DSTOPTS> "
9719 "delivers the destination options, B<IPV6_HOPOPTS> delivers the hop options, "
9720 "B<IPV6_FLOWINFO> delivers an integer containing the flow ID, "
9721 "B<IPV6_HOPLIMIT> delivers an integer containing the hop count of the "
9722 "packet.  The control messages have the same type as the socket option.  All "
9723 "these header options can also be set for outgoing packets by putting the "
9724 "appropriate control message into the control buffer of B<sendmsg>(2).  Only "
9725 "allowed for B<SOCK_DGRAM> or B<SOCK_RAW> sockets.  Argument is a pointer to "
9726 "a boolean value."
9727 msgstr ""
9728
9729 #. type: TP
9730 #: build/C/man7/ipv6.7:224
9731 #, no-wrap
9732 msgid "B<IPV6_RECVERR>"
9733 msgstr ""
9734
9735 #. type: Plain text
9736 #: build/C/man7/ipv6.7:233
9737 msgid ""
9738 "Control receiving of asynchronous error options.  See B<IP_RECVERR> in "
9739 "B<ip>(7)  for details.  Argument is a pointer to boolean."
9740 msgstr ""
9741
9742 #. type: TP
9743 #: build/C/man7/ipv6.7:233
9744 #, no-wrap
9745 msgid "B<IPV6_ROUTER_ALERT>"
9746 msgstr ""
9747
9748 #. type: Plain text
9749 #: build/C/man7/ipv6.7:246
9750 msgid ""
9751 "Pass forwarded packets containing a router alert hop-by-hop option to this "
9752 "socket.  Only allowed for SOCK_RAW sockets.  The tapped packets are not "
9753 "forwarded by the kernel, it is the user's responsibility to send them out "
9754 "again.  Argument is a pointer to an integer.  A positive integer indicates a "
9755 "router alert option value to intercept.  Packets carrying a router alert "
9756 "option with a value field containing this integer will be delivered to the "
9757 "socket.  A negative integer disables delivery of packets with router alert "
9758 "options to this socket."
9759 msgstr ""
9760
9761 #. type: TP
9762 #: build/C/man7/ipv6.7:246
9763 #, no-wrap
9764 msgid "B<IPV6_UNICAST_HOPS>"
9765 msgstr ""
9766
9767 #. type: Plain text
9768 #: build/C/man7/ipv6.7:252
9769 msgid ""
9770 "Set the unicast hop limit for the socket.  Argument is a pointer to an "
9771 "integer.  -1 in the value means use the route default, otherwise it should "
9772 "be between 0 and 255."
9773 msgstr ""
9774
9775 #. type: TP
9776 #: build/C/man7/ipv6.7:252
9777 #, no-wrap
9778 msgid "B<IPV6_V6ONLY> (since Linux 2.4.21 and 2.6)"
9779 msgstr ""
9780
9781 #.  See RFC 3493
9782 #. type: Plain text
9783 #: build/C/man7/ipv6.7:259
9784 msgid ""
9785 "If this flag is set to true (nonzero), then the socket is restricted to "
9786 "sending and receiving IPv6 packets only.  In this case, an IPv4 and an IPv6 "
9787 "application can bind to a single port at the same time."
9788 msgstr ""
9789
9790 #. type: Plain text
9791 #: build/C/man7/ipv6.7:263
9792 msgid ""
9793 "If this flag is set to false (zero), then the socket can be used to send and "
9794 "receive packets to and from an IPv6 address or an IPv4-mapped IPv6 address."
9795 msgstr ""
9796
9797 #. type: Plain text
9798 #: build/C/man7/ipv6.7:265
9799 msgid "The argument is a pointer to a boolean value in an integer."
9800 msgstr ""
9801
9802 #.  FLOWLABEL_MGR, FLOWINFO_SEND
9803 #. type: Plain text
9804 #: build/C/man7/ipv6.7:270
9805 msgid ""
9806 "The default value for this flag is defined by the contents of the file "
9807 "I</proc/sys/net/ipv6/bindv6only>.  The default value for that file is 0 "
9808 "(false)."
9809 msgstr ""
9810
9811 #. type: Plain text
9812 #: build/C/man7/ipv6.7:275
9813 msgid ""
9814 "The older I<libinet6> libc5 based IPv6 API implementation for Linux is not "
9815 "described here and may vary in details."
9816 msgstr ""
9817
9818 #. type: Plain text
9819 #: build/C/man7/ipv6.7:291
9820 msgid ""
9821 "Linux 2.4 will break binary compatibility for the I<sockaddr_in6> for 64-bit "
9822 "hosts by changing the alignment of I<in6_addr> and adding an additional "
9823 "I<sin6_scope_id> field.  The kernel interfaces stay compatible, but a "
9824 "program including I<sockaddr_in6> or I<in6_addr> into other structures may "
9825 "not be.  This is not a problem for 32-bit hosts like i386."
9826 msgstr ""
9827
9828 #. type: Plain text
9829 #: build/C/man7/ipv6.7:299
9830 msgid ""
9831 "The I<sin6_flowinfo> field is new in Linux 2.4.  It is transparently "
9832 "passed/read by the kernel when the passed address length contains it.  Some "
9833 "programs that pass a longer address buffer and then check the outgoing "
9834 "address length may break."
9835 msgstr ""
9836
9837 #. type: Plain text
9838 #: build/C/man7/ipv6.7:309
9839 msgid ""
9840 "The I<sockaddr_in6> structure is bigger than the generic I<sockaddr>.  "
9841 "Programs that assume that all address types can be stored safely in a "
9842 "I<struct sockaddr> need to be changed to use I<struct sockaddr_storage> for "
9843 "that instead."
9844 msgstr ""
9845
9846 #. type: Plain text
9847 #: build/C/man7/ipv6.7:314
9848 msgid ""
9849 "The IPv6 extended API as in RFC\\ 2292 is currently only partly implemented; "
9850 "although the 2.2 kernel has near complete support for receiving options, the "
9851 "macros for generating IPv6 options are missing in glibc 2.1."
9852 msgstr ""
9853
9854 #. type: Plain text
9855 #: build/C/man7/ipv6.7:316
9856 msgid "IPSec support for EH and AH headers is missing."
9857 msgstr ""
9858
9859 #. type: Plain text
9860 #: build/C/man7/ipv6.7:318
9861 msgid "Flow label management is not complete and not documented here."
9862 msgstr ""
9863
9864 #. type: Plain text
9865 #: build/C/man7/ipv6.7:320
9866 msgid "This man page is not complete."
9867 msgstr ""
9868
9869 #. type: Plain text
9870 #: build/C/man7/ipv6.7:323
9871 msgid "B<cmsg>(3), B<ip>(7)"
9872 msgstr ""
9873
9874 #. type: Plain text
9875 #: build/C/man7/ipv6.7:326
9876 msgid "RFC\\ 2553: IPv6 BASIC API.  Linux tries to be compliant to this."
9877 msgstr ""
9878
9879 #. type: Plain text
9880 #: build/C/man7/ipv6.7:328
9881 msgid "RFC\\ 2460: IPv6 specification."
9882 msgstr ""
9883
9884 #. type: TH
9885 #: build/C/man7/netdevice.7:12
9886 #, no-wrap
9887 msgid "NETDEVICE"
9888 msgstr ""
9889
9890 #. type: TH
9891 #: build/C/man7/netdevice.7:12
9892 #, no-wrap
9893 msgid "2009-01-14"
9894 msgstr ""
9895
9896 #. type: Plain text
9897 #: build/C/man7/netdevice.7:15
9898 msgid "netdevice - Low level access to Linux network devices"
9899 msgstr ""
9900
9901 #. type: Plain text
9902 #: build/C/man7/netdevice.7:17
9903 msgid "B<#include E<lt>sys/ioctl.hE<gt>>"
9904 msgstr ""
9905
9906 #. type: Plain text
9907 #: build/C/man7/netdevice.7:19
9908 msgid "B<#include E<lt>net/if.hE<gt>>"
9909 msgstr ""
9910
9911 #. type: Plain text
9912 #: build/C/man7/netdevice.7:22
9913 msgid ""
9914 "This man page describes the sockets interface which is used to configure "
9915 "network devices."
9916 msgstr ""
9917
9918 #. type: Plain text
9919 #: build/C/man7/netdevice.7:29
9920 msgid ""
9921 "Linux supports some standard ioctls to configure network devices.  They can "
9922 "be used on any socket's file descriptor regardless of the family or type.  "
9923 "They pass an I<ifreq> structure:"
9924 msgstr ""
9925
9926 #. type: Plain text
9927 #: build/C/man7/netdevice.7:50
9928 #, no-wrap
9929 msgid ""
9930 "struct ifreq {\n"
9931 "    char ifr_name[IFNAMSIZ]; /* Interface name */\n"
9932 "    union {\n"
9933 "        struct sockaddr ifr_addr;\n"
9934 "        struct sockaddr ifr_dstaddr;\n"
9935 "        struct sockaddr ifr_broadaddr;\n"
9936 "        struct sockaddr ifr_netmask;\n"
9937 "        struct sockaddr ifr_hwaddr;\n"
9938 "        short           ifr_flags;\n"
9939 "        int             ifr_ifindex;\n"
9940 "        int             ifr_metric;\n"
9941 "        int             ifr_mtu;\n"
9942 "        struct ifmap    ifr_map;\n"
9943 "        char            ifr_slave[IFNAMSIZ];\n"
9944 "        char            ifr_newname[IFNAMSIZ];\n"
9945 "        char           *ifr_data;\n"
9946 "    };\n"
9947 "};\n"
9948 msgstr ""
9949
9950 #. type: Plain text
9951 #: build/C/man7/netdevice.7:58
9952 #, no-wrap
9953 msgid ""
9954 "struct ifconf {\n"
9955 "    int                 ifc_len; /* size of buffer */\n"
9956 "    union {\n"
9957 "        char           *ifc_buf; /* buffer address */\n"
9958 "        struct ifreq   *ifc_req; /* array of structures */\n"
9959 "    };\n"
9960 "};\n"
9961 msgstr ""
9962
9963 #. type: Plain text
9964 #: build/C/man7/netdevice.7:66
9965 msgid ""
9966 "Normally, the user specifies which device to affect by setting I<ifr_name> "
9967 "to the name of the interface.  All other members of the structure may share "
9968 "memory."
9969 msgstr ""
9970
9971 #. type: Plain text
9972 #: build/C/man7/netdevice.7:74
9973 msgid ""
9974 "If an ioctl is marked as privileged then using it requires an effective user "
9975 "ID of 0 or the B<CAP_NET_ADMIN> capability.  If this is not the case "
9976 "B<EPERM> will be returned."
9977 msgstr ""
9978
9979 #. type: TP
9980 #: build/C/man7/netdevice.7:74
9981 #, no-wrap
9982 msgid "B<SIOCGIFNAME>"
9983 msgstr ""
9984
9985 #. type: Plain text
9986 #: build/C/man7/netdevice.7:82
9987 msgid ""
9988 "Given the I<ifr_ifindex>, return the name of the interface in I<ifr_name>.  "
9989 "This is the only ioctl which returns its result in I<ifr_name>."
9990 msgstr ""
9991
9992 #. type: TP
9993 #: build/C/man7/netdevice.7:82
9994 #, no-wrap
9995 msgid "B<SIOCGIFINDEX>"
9996 msgstr ""
9997
9998 #. type: Plain text
9999 #: build/C/man7/netdevice.7:86
10000 msgid "Retrieve the interface index of the interface into I<ifr_ifindex>."
10001 msgstr ""
10002
10003 #. type: TP
10004 #: build/C/man7/netdevice.7:86
10005 #, no-wrap
10006 msgid "B<SIOCGIFFLAGS>, B<SIOCSIFFLAGS>"
10007 msgstr ""
10008
10009 #. type: Plain text
10010 #: build/C/man7/netdevice.7:91
10011 msgid ""
10012 "Get or set the active flag word of the device.  I<ifr_flags> contains a bit "
10013 "mask of the following values:"
10014 msgstr ""
10015
10016 #. type: tbl table
10017 #: build/C/man7/netdevice.7:95
10018 #, no-wrap
10019 msgid "Device flags\n"
10020 msgstr ""
10021
10022 #. type: tbl table
10023 #: build/C/man7/netdevice.7:96
10024 #, no-wrap
10025 msgid "IFF_UP:Interface is running.\n"
10026 msgstr ""
10027
10028 #. type: tbl table
10029 #: build/C/man7/netdevice.7:97
10030 #, no-wrap
10031 msgid "IFF_BROADCAST:Valid broadcast address set.\n"
10032 msgstr ""
10033
10034 #. type: tbl table
10035 #: build/C/man7/netdevice.7:98
10036 #, no-wrap
10037 msgid "IFF_DEBUG:Internal debugging flag.\n"
10038 msgstr ""
10039
10040 #. type: tbl table
10041 #: build/C/man7/netdevice.7:99
10042 #, no-wrap
10043 msgid "IFF_LOOPBACK:Interface is a loopback interface.\n"
10044 msgstr ""
10045
10046 #. type: tbl table
10047 #: build/C/man7/netdevice.7:100
10048 #, no-wrap
10049 msgid "IFF_POINTOPOINT:Interface is a point-to-point link.\n"
10050 msgstr ""
10051
10052 #. type: tbl table
10053 #: build/C/man7/netdevice.7:101
10054 #, no-wrap
10055 msgid "IFF_RUNNING:Resources allocated.\n"
10056 msgstr ""
10057
10058 #. type: tbl table
10059 #: build/C/man7/netdevice.7:102
10060 #, no-wrap
10061 msgid "IFF_NOARP:No arp protocol, L2 destination address not set.\n"
10062 msgstr ""
10063
10064 #. type: tbl table
10065 #: build/C/man7/netdevice.7:103
10066 #, no-wrap
10067 msgid "IFF_PROMISC:Interface is in promiscuous mode.\n"
10068 msgstr ""
10069
10070 #. type: tbl table
10071 #: build/C/man7/netdevice.7:104
10072 #, no-wrap
10073 msgid "IFF_NOTRAILERS:Avoid use of trailers.\n"
10074 msgstr ""
10075
10076 #. type: tbl table
10077 #: build/C/man7/netdevice.7:105
10078 #, no-wrap
10079 msgid "IFF_ALLMULTI:Receive all multicast packets.\n"
10080 msgstr ""
10081
10082 #. type: tbl table
10083 #: build/C/man7/netdevice.7:106
10084 #, no-wrap
10085 msgid "IFF_MASTER:Master of a load balancing bundle.\n"
10086 msgstr ""
10087
10088 #. type: tbl table
10089 #: build/C/man7/netdevice.7:107
10090 #, no-wrap
10091 msgid "IFF_SLAVE:Slave of a load balancing bundle.\n"
10092 msgstr ""
10093
10094 #. type: tbl table
10095 #: build/C/man7/netdevice.7:108
10096 #, no-wrap
10097 msgid "IFF_MULTICAST:Supports multicast\n"
10098 msgstr ""
10099
10100 #. type: tbl table
10101 #: build/C/man7/netdevice.7:109
10102 #, no-wrap
10103 msgid "IFF_PORTSEL:Is able to select media type via ifmap.\n"
10104 msgstr ""
10105
10106 #. type: tbl table
10107 #: build/C/man7/netdevice.7:110
10108 #, no-wrap
10109 msgid "IFF_AUTOMEDIA:Auto media selection active.\n"
10110 msgstr ""
10111
10112 #. type: tbl table
10113 #: build/C/man7/netdevice.7:111
10114 #, no-wrap
10115 msgid "IFF_DYNAMIC:T{\n"
10116 msgstr ""
10117
10118 #. type: tbl table
10119 #: build/C/man7/netdevice.7:112
10120 #, no-wrap
10121 msgid "The addresses are lost when the interface goes down.\n"
10122 msgstr ""
10123
10124 #. type: tbl table
10125 #: build/C/man7/netdevice.7:113
10126 #, no-wrap
10127 msgid "T}\n"
10128 msgstr ""
10129
10130 #. type: tbl table
10131 #: build/C/man7/netdevice.7:114
10132 #, no-wrap
10133 msgid "IFF_LOWER_UP:Driver signals L1 up (since Linux 2.6.17)\n"
10134 msgstr ""
10135
10136 #. type: tbl table
10137 #: build/C/man7/netdevice.7:115
10138 #, no-wrap
10139 msgid "IFF_DORMANT:Driver signals dormant (since Linux 2.6.17)\n"
10140 msgstr ""
10141
10142 #. type: tbl table
10143 #: build/C/man7/netdevice.7:116
10144 #, no-wrap
10145 msgid "IFF_ECHO:Echo sent packets (since Linux 2.6.25)\n"
10146 msgstr ""
10147
10148 #. type: Plain text
10149 #: build/C/man7/netdevice.7:122
10150 msgid ""
10151 "Setting the active flag word is a privileged operation, but any process may "
10152 "read it."
10153 msgstr ""
10154
10155 #. type: TP
10156 #: build/C/man7/netdevice.7:122
10157 #, no-wrap
10158 msgid "B<SIOCGIFMETRIC>, B<SIOCSIFMETRIC>"
10159 msgstr ""
10160
10161 #. type: Plain text
10162 #: build/C/man7/netdevice.7:131
10163 msgid ""
10164 "Get or set the metric of the device using I<ifr_metric>.  This is currently "
10165 "not implemented; it sets I<ifr_metric> to 0 if you attempt to read it and "
10166 "returns B<EOPNOTSUPP> if you attempt to set it."
10167 msgstr ""
10168
10169 #. type: TP
10170 #: build/C/man7/netdevice.7:131
10171 #, no-wrap
10172 msgid "B<SIOCGIFMTU>, B<SIOCSIFMTU>"
10173 msgstr ""
10174
10175 #. type: Plain text
10176 #: build/C/man7/netdevice.7:138
10177 msgid ""
10178 "Get or set the MTU (Maximum Transfer Unit) of a device using I<ifr_mtu>.  "
10179 "Setting the MTU is a privileged operation.  Setting the MTU to too small "
10180 "values may cause kernel crashes."
10181 msgstr ""
10182
10183 #. type: TP
10184 #: build/C/man7/netdevice.7:138
10185 #, no-wrap
10186 msgid "B<SIOCGIFHWADDR>, B<SIOCSIFHWADDR>"
10187 msgstr ""
10188
10189 #. type: Plain text
10190 #: build/C/man7/netdevice.7:149
10191 msgid ""
10192 "Get or set the hardware address of a device using I<ifr_hwaddr>.  The "
10193 "hardware address is specified in a struct I<sockaddr>.  I<sa_family> "
10194 "contains the ARPHRD_* device type, I<sa_data> the L2 hardware address "
10195 "starting from byte 0.  Setting the hardware address is a privileged "
10196 "operation."
10197 msgstr ""
10198
10199 #. type: TP
10200 #: build/C/man7/netdevice.7:149
10201 #, no-wrap
10202 msgid "B<SIOCSIFHWBROADCAST>"
10203 msgstr ""
10204
10205 #. type: Plain text
10206 #: build/C/man7/netdevice.7:154
10207 msgid ""
10208 "Set the hardware broadcast address of a device from I<ifr_hwaddr>.  This is "
10209 "a privileged operation."
10210 msgstr ""
10211
10212 #. type: TP
10213 #: build/C/man7/netdevice.7:154
10214 #, no-wrap
10215 msgid "B<SIOCGIFMAP>, B<SIOCSIFMAP>"
10216 msgstr ""
10217
10218 #. type: Plain text
10219 #: build/C/man7/netdevice.7:159
10220 msgid ""
10221 "Get or set the interface's hardware parameters using I<ifr_map>.  Setting "
10222 "the parameters is a privileged operation."
10223 msgstr ""
10224
10225 #. type: Plain text
10226 #: build/C/man7/netdevice.7:170
10227 #, no-wrap
10228 msgid ""
10229 "struct ifmap {\n"
10230 "    unsigned long   mem_start;\n"
10231 "    unsigned long   mem_end;\n"
10232 "    unsigned short  base_addr;\n"
10233 "    unsigned char   irq;\n"
10234 "    unsigned char   dma;\n"
10235 "    unsigned char   port;\n"
10236 "};\n"
10237 msgstr ""
10238
10239 #. type: Plain text
10240 #: build/C/man7/netdevice.7:175
10241 msgid ""
10242 "The interpretation of the ifmap structure depends on the device driver and "
10243 "the architecture."
10244 msgstr ""
10245
10246 #. type: TP
10247 #: build/C/man7/netdevice.7:175
10248 #, no-wrap
10249 msgid "B<SIOCADDMULTI>, B<SIOCDELMULTI>"
10250 msgstr ""
10251
10252 #. type: Plain text
10253 #: build/C/man7/netdevice.7:184
10254 msgid ""
10255 "Add an address to or delete an address from the device's link layer "
10256 "multicast filters using I<ifr_hwaddr>.  These are privileged operations.  "
10257 "See also B<packet>(7)  for an alternative."
10258 msgstr ""
10259
10260 #. type: TP
10261 #: build/C/man7/netdevice.7:184
10262 #, no-wrap
10263 msgid "B<SIOCGIFTXQLEN>, B<SIOCSIFTXQLEN>"
10264 msgstr ""
10265
10266 #. type: Plain text
10267 #: build/C/man7/netdevice.7:189
10268 msgid ""
10269 "Get or set the transmit queue length of a device using I<ifr_qlen>.  Setting "
10270 "the transmit queue length is a privileged operation."
10271 msgstr ""
10272
10273 #. type: TP
10274 #: build/C/man7/netdevice.7:189
10275 #, no-wrap
10276 msgid "B<SIOCSIFNAME>"
10277 msgstr ""
10278
10279 #. type: Plain text
10280 #: build/C/man7/netdevice.7:198
10281 msgid ""
10282 "Changes the name of the interface specified in I<ifr_name> to "
10283 "I<ifr_newname>.  This is a privileged operation.  It is only allowed when "
10284 "the interface is not up."
10285 msgstr ""
10286
10287 #. type: TP
10288 #: build/C/man7/netdevice.7:198
10289 #, no-wrap
10290 msgid "B<SIOCGIFCONF>"
10291 msgstr ""
10292
10293 #.  Slaving isn't supported in 2.2
10294 #.  .
10295 #.  .TP
10296 #.  .BR SIOCGIFSLAVE ", " SIOCSIFSLAVE
10297 #.  Get or set the slave device using
10298 #.  .IR ifr_slave .
10299 #.  Setting the slave device is a privileged operation.
10300 #.  .PP
10301 #.  FIXME add amateur radio stuff.
10302 #. type: Plain text
10303 #: build/C/man7/netdevice.7:238
10304 msgid ""
10305 "Return a list of interface (transport layer) addresses.  This currently "
10306 "means only addresses of the B<AF_INET> (IPv4) family for compatibility.  The "
10307 "user passes a I<ifconf> structure as argument to the ioctl.  It contains a "
10308 "pointer to an array of I<ifreq> structures in I<ifc_req> and its length in "
10309 "bytes in I<ifc_len>.  The kernel fills the ifreqs with all current L3 "
10310 "interface addresses that are running: I<ifr_name> contains the interface "
10311 "name (eth0:1 etc.), I<ifr_addr> the address.  The kernel returns with the "
10312 "actual length in I<ifc_len>.  If I<ifc_len> is equal to the original length "
10313 "the buffer probably has overflowed and you should retry with a bigger buffer "
10314 "to get all addresses.  When no error occurs the ioctl returns 0; otherwise "
10315 "-1.  Overflow is not an error."
10316 msgstr ""
10317
10318 #. type: Plain text
10319 #: build/C/man7/netdevice.7:244
10320 msgid ""
10321 "Most protocols support their own ioctls to configure protocol-specific "
10322 "interface options.  See the protocol man pages for a description.  For "
10323 "configuring IP addresses see B<ip>(7)."
10324 msgstr ""
10325
10326 #. type: Plain text
10327 #: build/C/man7/netdevice.7:247
10328 msgid ""
10329 "In addition some devices support private ioctls.  These are not described "
10330 "here."
10331 msgstr ""
10332
10333 #. type: Plain text
10334 #: build/C/man7/netdevice.7:252
10335 msgid "Strictly speaking, B<SIOCGIFCONF> is IP specific and belongs in B<ip>(7)."
10336 msgstr ""
10337
10338 #. type: Plain text
10339 #: build/C/man7/netdevice.7:257
10340 msgid ""
10341 "The names of interfaces with no addresses or that don't have the "
10342 "B<IFF_RUNNING> flag set can be found via I</proc/net/dev>."
10343 msgstr ""
10344
10345 #. type: Plain text
10346 #: build/C/man7/netdevice.7:262
10347 msgid ""
10348 "Local IPv6 IP addresses can be found via I</proc/net> or via "
10349 "B<rtnetlink>(7)."
10350 msgstr ""
10351
10352 #. type: Plain text
10353 #: build/C/man7/netdevice.7:268
10354 msgid ""
10355 "glibc 2.1 is missing the I<ifr_newname> macro in I<E<lt>net/if.hE<gt>>.  Add "
10356 "the following to your program as a workaround:"
10357 msgstr ""
10358
10359 #. type: Plain text
10360 #: build/C/man7/netdevice.7:274
10361 #, no-wrap
10362 msgid ""
10363 "#ifndef ifr_newname\n"
10364 "#define ifr_newname     ifr_ifru.ifru_slave\n"
10365 "#endif\n"
10366 msgstr ""
10367
10368 #. type: Plain text
10369 #: build/C/man7/netdevice.7:281
10370 msgid "B<proc>(5), B<capabilities>(7), B<ip>(7), B<rtnetlink>(7)"
10371 msgstr ""
10372
10373 #. type: TH
10374 #: build/C/man5/networks.5:24
10375 #, no-wrap
10376 msgid "NETWORKS"
10377 msgstr ""
10378
10379 #. type: TH
10380 #: build/C/man5/networks.5:24
10381 #, no-wrap
10382 msgid "2008-09-04"
10383 msgstr ""
10384
10385 #. type: TH
10386 #: build/C/man5/networks.5:24
10387 #, no-wrap
10388 msgid "GNU/Linux"
10389 msgstr ""
10390
10391 #. type: Plain text
10392 #: build/C/man5/networks.5:27
10393 msgid "networks - network name information"
10394 msgstr ""
10395
10396 #. type: Plain text
10397 #: build/C/man5/networks.5:33
10398 msgid ""
10399 "The file I</etc/networks> is a plain ASCII file that describes known DARPA "
10400 "networks and symbolic names for these networks.  Each line represents a "
10401 "network and has the following structure:"
10402 msgstr ""
10403
10404 #. type: Plain text
10405 #: build/C/man5/networks.5:36
10406 msgid "I<name number aliases ...>"
10407 msgstr ""
10408
10409 #. type: Plain text
10410 #: build/C/man5/networks.5:44
10411 msgid ""
10412 "where the fields are delimited by spaces or tabs.  Empty lines are ignored.  "
10413 "The hash character (B<#>) indicates the start of a comment: this character, "
10414 "and the remaining characters up to the end of the current line, are ignored "
10415 "by library functions that process the file."
10416 msgstr ""
10417
10418 #. type: Plain text
10419 #: build/C/man5/networks.5:46 build/C/man5/protocols.5:58
10420 msgid "The field descriptions are:"
10421 msgstr ""
10422
10423 #. type: TP
10424 #: build/C/man5/networks.5:47
10425 #, no-wrap
10426 msgid "I<name>"
10427 msgstr ""
10428
10429 #. type: Plain text
10430 #: build/C/man5/networks.5:52
10431 msgid ""
10432 "The symbolic name for the network.  Network names can contain any printable "
10433 "characters execept white-space characters or the comment character."
10434 msgstr ""
10435
10436 #. type: TP
10437 #: build/C/man5/networks.5:52 build/C/man5/protocols.5:66
10438 #, no-wrap
10439 msgid "I<number>"
10440 msgstr ""
10441
10442 #. type: Plain text
10443 #: build/C/man5/networks.5:57
10444 msgid ""
10445 "The official number for this network in numbers-and-dots notation (see "
10446 "B<inet>(3)).  The trailing \".0\" (for the host component of the network "
10447 "address) may be omitted."
10448 msgstr ""
10449
10450 #. type: TP
10451 #: build/C/man5/networks.5:57 build/C/man5/protocols.5:70 build/C/man5/services.5:120
10452 #, no-wrap
10453 msgid "I<aliases>"
10454 msgstr ""
10455
10456 #. type: Plain text
10457 #: build/C/man5/networks.5:60
10458 msgid "Optional aliases for the network."
10459 msgstr ""
10460
10461 #. type: Plain text
10462 #: build/C/man5/networks.5:69
10463 msgid ""
10464 "This file is read by the B<route>(8)  and B<netstat>(8)  utilities.  Only "
10465 "Class A, B or C networks are supported, partitioned networks (i.e., "
10466 "network/26 or network/28) are not supported by this facility."
10467 msgstr ""
10468
10469 #. type: Plain text
10470 #: build/C/man5/networks.5:73
10471 msgid "The networks definition file."
10472 msgstr ""
10473
10474 #. type: Plain text
10475 #: build/C/man5/networks.5:79
10476 msgid ""
10477 "B<getnetbyaddr>(3), B<getnetbyname>(3), B<getnetent>(3), B<netstat>(8), "
10478 "B<route>(8)"
10479 msgstr ""
10480
10481 #. type: TH
10482 #: build/C/man8/nscd.8:23
10483 #, no-wrap
10484 msgid "NSCD"
10485 msgstr ""
10486
10487 #. type: TH
10488 #: build/C/man8/nscd.8:23
10489 #, no-wrap
10490 msgid "2008-12-05"
10491 msgstr ""
10492
10493 #. type: Plain text
10494 #: build/C/man8/nscd.8:26
10495 msgid "/usr/sbin/nscd - name service cache daemon"
10496 msgstr ""
10497
10498 #. type: Plain text
10499 #: build/C/man8/nscd.8:34
10500 msgid ""
10501 "Nscd is a daemon that provides a cache for the most common name service "
10502 "requests.  The default configuration file, I</etc/nscd.conf>, determines the "
10503 "behavior of the cache daemon.  See B<nscd.conf>(5)."
10504 msgstr ""
10505
10506 #. type: Plain text
10507 #: build/C/man8/nscd.8:47
10508 msgid ""
10509 "Nscd provides caching for accesses of the B<passwd>(5), B<group>(5), and "
10510 "B<hosts>(5)  databases through standard libc interfaces, such as "
10511 "B<getpwnam>(3), B<getpwuid>(3), B<getgrnam>(3), B<getgrgid>(3), "
10512 "B<gethostbyname>(3), and others."
10513 msgstr ""
10514
10515 #. type: Plain text
10516 #: build/C/man8/nscd.8:56
10517 msgid ""
10518 "There are two caches for each database: a positive one for items found, and "
10519 "a negative one for items not found.  Each cache has a separate TTL "
10520 "(time-to-live)  period for its data.  Note that the shadow file is "
10521 "specifically not cached.  B<getspnam>(3)  calls remain uncached as a result."
10522 msgstr ""
10523
10524 #. type: SH
10525 #: build/C/man8/nscd.8:56
10526 #, no-wrap
10527 msgid "OPTIONS"
10528 msgstr ""
10529
10530 #. type: TP
10531 #: build/C/man8/nscd.8:57
10532 #, no-wrap
10533 msgid "B<--help>"
10534 msgstr ""
10535
10536 #. type: Plain text
10537 #: build/C/man8/nscd.8:60
10538 msgid "will give you a list with all options and what they do."
10539 msgstr ""
10540
10541 #. type: Plain text
10542 #: build/C/man8/nscd.8:83
10543 msgid ""
10544 "The daemon will try to watch for changes in configuration files appropriate "
10545 "for each database (e.g.  I</etc/passwd> for the I<passwd> database or "
10546 "I</etc/hosts> and I</etc/resolv.conf> for the I<hosts> database), and flush "
10547 "the cache when these are changed.  However, this will happen only after a "
10548 "short delay (unless the B<inotify>(7)  mechanism is available and glibc 2.9 "
10549 "or later is available), and this auto-detection does not cover configuration "
10550 "files required by nonstandard NSS modules, if any are specified in "
10551 "I</etc/nsswitch.conf>.  In that case, you need to run the following command "
10552 "after changing the configuration file of the database so that B<nscd> "
10553 "invalidates its cache:"
10554 msgstr ""
10555
10556 #. type: Plain text
10557 #: build/C/man8/nscd.8:85
10558 #, no-wrap
10559 msgid "    $ B<nscd -i> I<E<lt>databaseE<gt>>\n"
10560 msgstr ""
10561
10562 #.  .SH AUTHOR
10563 #.  .B nscd
10564 #.  was written by Thorsten Kukuk and Ulrich Drepper.
10565 #. type: Plain text
10566 #: build/C/man8/nscd.8:91
10567 msgid "B<nscd.conf>(5), B<nsswitch.conf>(5)"
10568 msgstr ""
10569
10570 #. type: TH
10571 #: build/C/man5/nscd.conf.5:20
10572 #, no-wrap
10573 msgid "NSCD.CONF"
10574 msgstr ""
10575
10576 #. type: TH
10577 #: build/C/man5/nscd.conf.5:20
10578 #, no-wrap
10579 msgid "1999-10-01"
10580 msgstr ""
10581
10582 #. type: Plain text
10583 #: build/C/man5/nscd.conf.5:23
10584 msgid "/etc/nscd.conf - name service cache daemon configuration file"
10585 msgstr ""
10586
10587 #. type: Plain text
10588 #: build/C/man5/nscd.conf.5:36
10589 msgid ""
10590 "The file I</etc/nscd.conf> is read from B<nscd>(8)  at startup.  Each line "
10591 "specifies either an attribute and a value, or an attribute, service, and a "
10592 "value.  Fields are separated either by SPACE or TAB characters.  A "
10593 "\\(aq#\\(aq (number sign) indicates the beginning of a comment; following "
10594 "characters, up to the end of the line, are not interpreted by nscd."
10595 msgstr ""
10596
10597 #. type: Plain text
10598 #: build/C/man5/nscd.conf.5:38
10599 msgid "Valid services are I<passwd>, I<group>, or I<hosts>."
10600 msgstr ""
10601
10602 #. type: Plain text
10603 #: build/C/man5/nscd.conf.5:41
10604 msgid "B<logfile> I<debug-file-name>"
10605 msgstr ""
10606
10607 #. type: Plain text
10608 #: build/C/man5/nscd.conf.5:43
10609 msgid "Specifies name of the file to which debug info should be written."
10610 msgstr ""
10611
10612 #. type: Plain text
10613 #: build/C/man5/nscd.conf.5:47
10614 msgid "B<debug-level> I<value>"
10615 msgstr ""
10616
10617 #. type: Plain text
10618 #: build/C/man5/nscd.conf.5:49
10619 msgid "Sets the desired debug level."
10620 msgstr ""
10621
10622 #. type: Plain text
10623 #: build/C/man5/nscd.conf.5:53
10624 msgid "B<threads> I<number>"
10625 msgstr ""
10626
10627 #. type: Plain text
10628 #: build/C/man5/nscd.conf.5:57
10629 msgid ""
10630 "This is the number of threads that are started to wait for requests.  At "
10631 "least five threads will always be created."
10632 msgstr ""
10633
10634 #. type: Plain text
10635 #: build/C/man5/nscd.conf.5:61
10636 msgid "B<server-user> I<user>"
10637 msgstr ""
10638
10639 #. type: Plain text
10640 #: build/C/man5/nscd.conf.5:65
10641 msgid ""
10642 "If this option is set, nscd will run as this user and not as root.  If a "
10643 "separate cache for every user is used (-S parameter), this option is "
10644 "ignored."
10645 msgstr ""
10646
10647 #. type: Plain text
10648 #: build/C/man5/nscd.conf.5:70
10649 msgid "B<enable-cache> I<service> I<E<lt>yes|noE<gt>>"
10650 msgstr ""
10651
10652 #. type: Plain text
10653 #: build/C/man5/nscd.conf.5:74
10654 msgid "Enables or disables the specified I<service> cache."
10655 msgstr ""
10656
10657 #. type: Plain text
10658 #: build/C/man5/nscd.conf.5:79
10659 msgid "B<positive-time-to-live> I<service> I<value>"
10660 msgstr ""
10661
10662 #. type: Plain text
10663 #: build/C/man5/nscd.conf.5:87
10664 msgid ""
10665 "Sets the TTL (time-to-live) for positive entries (successful queries)  in "
10666 "the specified cache for I<service>.  I<Value> is in seconds.  Larger values "
10667 "increase cache hit rates and reduce mean response times, but increase "
10668 "problems with cache coherence."
10669 msgstr ""
10670
10671 #. type: Plain text
10672 #: build/C/man5/nscd.conf.5:92
10673 msgid "B<negative-time-to-live> I<service> I<value>"
10674 msgstr ""
10675
10676 #. type: Plain text
10677 #: build/C/man5/nscd.conf.5:102
10678 msgid ""
10679 "Sets the TTL (time-to-live) for negative entries (unsuccessful queries)  in "
10680 "the specified cache for I<service>.  I<Value> is in seconds.  Can result in "
10681 "significant performance improvements if there are several files owned by "
10682 "UIDs (user IDs) not in system databases (for example untarring the linux "
10683 "kernel sources as root); should be kept small to reduce cache coherency "
10684 "problems."
10685 msgstr ""
10686
10687 #. type: Plain text
10688 #: build/C/man5/nscd.conf.5:107
10689 msgid "B<suggested-size> I<service> I<value>"
10690 msgstr ""
10691
10692 #. type: Plain text
10693 #: build/C/man5/nscd.conf.5:111
10694 msgid ""
10695 "This is the internal hash table size, I<value> should remain a prime number "
10696 "for optimum efficiency."
10697 msgstr ""
10698
10699 #. type: Plain text
10700 #: build/C/man5/nscd.conf.5:116
10701 msgid "B<check-files> I<service> I<E<lt>yes|noE<gt>>"
10702 msgstr ""
10703
10704 #. type: Plain text
10705 #: build/C/man5/nscd.conf.5:125
10706 msgid ""
10707 "Enables or disables checking the file belonging to the specified I<service> "
10708 "for changes.  The files are I</etc/passwd>, I</etc/group>, and "
10709 "I</etc/hosts>."
10710 msgstr ""
10711
10712 #. type: Plain text
10713 #: build/C/man5/nscd.conf.5:129
10714 msgid "B<max-threads> I<threads>"
10715 msgstr ""
10716
10717 #. type: Plain text
10718 #: build/C/man5/nscd.conf.5:131
10719 msgid "Specifies the maximum number of threads to be started."
10720 msgstr ""
10721
10722 #. type: Plain text
10723 #: build/C/man5/nscd.conf.5:135
10724 msgid "B<stat-user> I<username>"
10725 msgstr ""
10726
10727 #. type: Plain text
10728 #: build/C/man5/nscd.conf.5:137
10729 msgid "Specifies the user who is allowed to request statistics."
10730 msgstr ""
10731
10732 #. type: Plain text
10733 #: build/C/man5/nscd.conf.5:142
10734 msgid "B<reload-count> unlimited | I<number>"
10735 msgstr ""
10736
10737 #. type: Plain text
10738 #: build/C/man5/nscd.conf.5:146
10739 msgid ""
10740 "Limit on the number of times a cached entry gets reloaded without being used "
10741 "before it gets removed.  The default is 5."
10742 msgstr ""
10743
10744 #. type: Plain text
10745 #: build/C/man5/nscd.conf.5:150
10746 msgid "B<paranoia> I<E<lt>yes|noE<gt>>"
10747 msgstr ""
10748
10749 #. type: Plain text
10750 #: build/C/man5/nscd.conf.5:152
10751 msgid "Enabling paranoia mode causes nscd to restart itself periodically."
10752 msgstr ""
10753
10754 #. type: Plain text
10755 #: build/C/man5/nscd.conf.5:156
10756 msgid "B<restart-interval> I<time>"
10757 msgstr ""
10758
10759 #. type: Plain text
10760 #: build/C/man5/nscd.conf.5:163
10761 msgid ""
10762 "Sets the restart interval to I<time> seconds if periodic restart is enabled "
10763 "by enabling B<paranoia> mode."
10764 msgstr ""
10765
10766 #. type: Plain text
10767 #: build/C/man5/nscd.conf.5:168
10768 msgid "B<persistent> I<service> I<E<lt>yes|noE<gt>>"
10769 msgstr ""
10770
10771 #. type: Plain text
10772 #: build/C/man5/nscd.conf.5:174
10773 msgid ""
10774 "Keep the content of the cache for I<service> over server restarts; useful "
10775 "when B<paranoia> mode is set."
10776 msgstr ""
10777
10778 #. type: Plain text
10779 #: build/C/man5/nscd.conf.5:179
10780 msgid "B<shared> I<service> I<E<lt>yes|noE<gt>>"
10781 msgstr ""
10782
10783 #. type: Plain text
10784 #: build/C/man5/nscd.conf.5:185
10785 msgid ""
10786 "The memory mapping of the nscd databases for I<service> is shared with the "
10787 "clients so that they can directly search in them instead of having to ask "
10788 "the daemon over the socket each time a lookup is performed."
10789 msgstr ""
10790
10791 #.  .SH AUTHOR
10792 #.  .B nscd
10793 #.  was written by Thorsten Kukuk and Ulrich Drepper.
10794 #. type: Plain text
10795 #: build/C/man5/nscd.conf.5:191
10796 msgid "B<nscd>(8)"
10797 msgstr ""
10798
10799 #. type: TH
10800 #: build/C/man5/nsswitch.conf.5:27
10801 #, no-wrap
10802 msgid "NSSWITCH.CONF"
10803 msgstr ""
10804
10805 #. type: TH
10806 #: build/C/man5/nsswitch.conf.5:27
10807 #, no-wrap
10808 msgid "1999-01-17"
10809 msgstr ""
10810
10811 #. type: Plain text
10812 #: build/C/man5/nsswitch.conf.5:30
10813 msgid "nsswitch.conf - System Databases and Name Service Switch configuration file"
10814 msgstr ""
10815
10816 #. type: Plain text
10817 #: build/C/man5/nsswitch.conf.5:38
10818 msgid ""
10819 "Various functions in the C Library need to be configured to work correctly "
10820 "in the local environment.  Traditionally, this was done by using files "
10821 "(e.g., I</etc/passwd>), but other nameservices (like the Network Information "
10822 "Service (NIS) and the Domain Name Service (DNS))  became popular, and were "
10823 "hacked into the C library, usually with a fixed search order."
10824 msgstr ""
10825
10826 #. type: Plain text
10827 #: build/C/man5/nsswitch.conf.5:49
10828 msgid ""
10829 "The Linux libc5 with NYS support and the GNU C Library 2.x (libc.so.6)  "
10830 "contain a cleaner solution of this problem.  It is designed after a method "
10831 "used by Sun Microsystems in the C library of Solaris 2.  We follow their "
10832 "name and call this scheme \"Name Service Switch\" (NSS).  The sources for "
10833 "the \"databases\" and their lookup order are specified in the "
10834 "I</etc/nsswitch.conf> file."
10835 msgstr ""
10836
10837 #. type: Plain text
10838 #: build/C/man5/nsswitch.conf.5:51
10839 msgid "The following databases are available in the NSS:"
10840 msgstr ""
10841
10842 #. type: Plain text
10843 #: build/C/man5/nsswitch.conf.5:56
10844 msgid "Mail aliases, used by B<sendmail>(8).  Presently ignored."
10845 msgstr ""
10846
10847 #. type: Plain text
10848 #: build/C/man5/nsswitch.conf.5:59
10849 msgid "Ethernet numbers."
10850 msgstr ""
10851
10852 #. type: Plain text
10853 #: build/C/man5/nsswitch.conf.5:64
10854 msgid "Groups of users, used by B<getgrent>(3)  functions."
10855 msgstr ""
10856
10857 #. type: Plain text
10858 #: build/C/man5/nsswitch.conf.5:69
10859 msgid "Host names and numbers, used by B<gethostbyname>(3)  and similar functions."
10860 msgstr ""
10861
10862 #. type: Plain text
10863 #: build/C/man5/nsswitch.conf.5:73
10864 msgid ""
10865 "Network wide list of hosts and users, used for access rules.  C libraries "
10866 "before glibc 2.1 only support netgroups over NIS."
10867 msgstr ""
10868
10869 #. type: Plain text
10870 #: build/C/man5/nsswitch.conf.5:78
10871 msgid "Network names and numbers, used by B<getnetent>(3)  functions."
10872 msgstr ""
10873
10874 #. type: Plain text
10875 #: build/C/man5/nsswitch.conf.5:83
10876 msgid "User passwords, used by B<getpwent>(3)  functions."
10877 msgstr ""
10878
10879 #. type: Plain text
10880 #: build/C/man5/nsswitch.conf.5:88
10881 msgid "Network protocols, used by B<getprotoent>(3)  functions."
10882 msgstr ""
10883
10884 #. type: TP
10885 #: build/C/man5/nsswitch.conf.5:88
10886 #, no-wrap
10887 msgid "B<publickey>"
10888 msgstr ""
10889
10890 #. type: Plain text
10891 #: build/C/man5/nsswitch.conf.5:91
10892 msgid "Public and secret keys for Secure_RPC used by NFS and NIS+."
10893 msgstr ""
10894
10895 #. type: Plain text
10896 #: build/C/man5/nsswitch.conf.5:96
10897 msgid ""
10898 "Remote procedure call names and numbers, used by B<getrpcbyname>(3)  and "
10899 "similar functions."
10900 msgstr ""
10901
10902 #. type: Plain text
10903 #: build/C/man5/nsswitch.conf.5:101
10904 msgid "Network services, used by B<getservent>(3)  functions."
10905 msgstr ""
10906
10907 #. type: Plain text
10908 #: build/C/man5/nsswitch.conf.5:105
10909 msgid "Shadow user passwords, used by B<getspnam>(3)."
10910 msgstr ""
10911
10912 #. type: Plain text
10913 #: build/C/man5/nsswitch.conf.5:111
10914 msgid ""
10915 "An example I</etc/nsswitch.conf> (namely, the default used when "
10916 "I</etc/nsswitch.conf> is missing):"
10917 msgstr ""
10918
10919 #. type: TP
10920 #: build/C/man5/nsswitch.conf.5:113
10921 #, no-wrap
10922 msgid "passwd:"
10923 msgstr ""
10924
10925 #. type: Plain text
10926 #: build/C/man5/nsswitch.conf.5:116 build/C/man5/nsswitch.conf.5:119 build/C/man5/nsswitch.conf.5:122
10927 msgid "compat"
10928 msgstr ""
10929
10930 #. type: TP
10931 #: build/C/man5/nsswitch.conf.5:116
10932 #, no-wrap
10933 msgid "group:"
10934 msgstr ""
10935
10936 #. type: TP
10937 #: build/C/man5/nsswitch.conf.5:119
10938 #, no-wrap
10939 msgid "shadow:"
10940 msgstr ""
10941
10942 #. type: TP
10943 #: build/C/man5/nsswitch.conf.5:123
10944 #, no-wrap
10945 msgid "hosts:"
10946 msgstr ""
10947
10948 #. type: Plain text
10949 #: build/C/man5/nsswitch.conf.5:126
10950 msgid "dns [!UNAVAIL=return] files"
10951 msgstr ""
10952
10953 #. type: TP
10954 #: build/C/man5/nsswitch.conf.5:126
10955 #, no-wrap
10956 msgid "networks:"
10957 msgstr ""
10958
10959 #. type: Plain text
10960 #: build/C/man5/nsswitch.conf.5:129 build/C/man5/nsswitch.conf.5:132 build/C/man5/nsswitch.conf.5:135 build/C/man5/nsswitch.conf.5:138 build/C/man5/nsswitch.conf.5:141
10961 msgid "nis [NOTFOUND=return] files"
10962 msgstr ""
10963
10964 #. type: TP
10965 #: build/C/man5/nsswitch.conf.5:129
10966 #, no-wrap
10967 msgid "ethers:"
10968 msgstr ""
10969
10970 #. type: TP
10971 #: build/C/man5/nsswitch.conf.5:132
10972 #, no-wrap
10973 msgid "protocols:"
10974 msgstr ""
10975
10976 #. type: TP
10977 #: build/C/man5/nsswitch.conf.5:135
10978 #, no-wrap
10979 msgid "rpc:"
10980 msgstr ""
10981
10982 #. type: TP
10983 #: build/C/man5/nsswitch.conf.5:138
10984 #, no-wrap
10985 msgid "services:"
10986 msgstr ""
10987
10988 #. type: Plain text
10989 #: build/C/man5/nsswitch.conf.5:146
10990 msgid ""
10991 "The first column is the database.  The rest of the line specifies how the "
10992 "lookup process works.  You can specify the way it works for each database "
10993 "individually."
10994 msgstr ""
10995
10996 #. type: Plain text
10997 #: build/C/man5/nsswitch.conf.5:149
10998 msgid ""
10999 "The configuration specification for each database can contain two different "
11000 "items:"
11001 msgstr ""
11002
11003 #. type: TP
11004 #: build/C/man5/nsswitch.conf.5:150
11005 #, no-wrap
11006 msgid "* The service specification like `files', `db', or `nis'."
11007 msgstr ""
11008
11009 #. type: TP
11010 #: build/C/man5/nsswitch.conf.5:152
11011 #, no-wrap
11012 msgid "* The reaction on lookup result like `[NOTFOUND=return]'."
11013 msgstr ""
11014
11015 #. type: Plain text
11016 #: build/C/man5/nsswitch.conf.5:160
11017 msgid ""
11018 "For libc5 with NYS, the allowed service specifications are `files', `nis', "
11019 "and `nisplus'.  For hosts, you could specify `dns' as extra service, for "
11020 "passwd and group `compat', but not for shadow."
11021 msgstr ""
11022
11023 #. type: Plain text
11024 #: build/C/man5/nsswitch.conf.5:173
11025 msgid ""
11026 "For glibc, you must have a file called B</lib/libnss_SERVICE.so.>I<X> for "
11027 "every SERVICE you are using.  On a standard installation, you could use "
11028 "`files', `db', `nis', and `nisplus'.  For hosts, you could specify `dns' as "
11029 "extra service, for passwd, group, and shadow `compat'.  These services will "
11030 "not be used by libc5 with NYS.  The version number I<X> is 1 for glibc 2.0 "
11031 "and 2 for glibc 2.1."
11032 msgstr ""
11033
11034 #. type: Plain text
11035 #: build/C/man5/nsswitch.conf.5:179
11036 msgid ""
11037 "The second item in the specification gives the user much finer control on "
11038 "the lookup process.  Action items are placed between two service names and "
11039 "are written within brackets.  The general form is"
11040 msgstr ""
11041
11042 #. type: Plain text
11043 #: build/C/man5/nsswitch.conf.5:181
11044 msgid "`[' ( `!'? STATUS `=' ACTION )+ `]'"
11045 msgstr ""
11046
11047 #. type: Plain text
11048 #: build/C/man5/nsswitch.conf.5:183
11049 msgid "where"
11050 msgstr ""
11051
11052 #. type: TP
11053 #: build/C/man5/nsswitch.conf.5:185
11054 #, no-wrap
11055 msgid "STATUS =E<gt> success | notfound | unavail | tryagain"
11056 msgstr ""
11057
11058 #. type: TP
11059 #: build/C/man5/nsswitch.conf.5:187
11060 #, no-wrap
11061 msgid "ACTION =E<gt> return | continue"
11062 msgstr ""
11063
11064 #. type: Plain text
11065 #: build/C/man5/nsswitch.conf.5:195
11066 msgid ""
11067 "The case of the keywords is insignificant.  The STATUS values are the "
11068 "results of a call to a lookup function of a specific service.  They mean:"
11069 msgstr ""
11070
11071 #. type: TP
11072 #: build/C/man5/nsswitch.conf.5:195
11073 #, no-wrap
11074 msgid "B<success>"
11075 msgstr ""
11076
11077 #. type: Plain text
11078 #: build/C/man5/nsswitch.conf.5:200
11079 msgid ""
11080 "No error occurred and the wanted entry is returned.  The default action for "
11081 "this is `return'."
11082 msgstr ""
11083
11084 #. type: TP
11085 #: build/C/man5/nsswitch.conf.5:200
11086 #, no-wrap
11087 msgid "B<notfound>"
11088 msgstr ""
11089
11090 #. type: Plain text
11091 #: build/C/man5/nsswitch.conf.5:204
11092 msgid ""
11093 "The lookup process succeeded, but the needed value was not found.  The "
11094 "default action is `continue'."
11095 msgstr ""
11096
11097 #. type: TP
11098 #: build/C/man5/nsswitch.conf.5:204
11099 #, no-wrap
11100 msgid "B<unavail>"
11101 msgstr ""
11102
11103 #. type: Plain text
11104 #: build/C/man5/nsswitch.conf.5:212
11105 msgid ""
11106 "The service is permanently unavailable.  This can either mean the needed "
11107 "file is not available, or, for DNS, the server is not available or does not "
11108 "allow queries.  The default action is `continue'."
11109 msgstr ""
11110
11111 #. type: TP
11112 #: build/C/man5/nsswitch.conf.5:212
11113 #, no-wrap
11114 msgid "B<tryagain>"
11115 msgstr ""
11116
11117 #. type: Plain text
11118 #: build/C/man5/nsswitch.conf.5:218
11119 msgid ""
11120 "The service is temporarily unavailable.  This could mean a file is locked or "
11121 "a server currently cannot accept more connections.  The default action is "
11122 "`continue'."
11123 msgstr ""
11124
11125 #. type: SS
11126 #: build/C/man5/nsswitch.conf.5:218
11127 #, no-wrap
11128 msgid "Interaction with +/- syntax (compat mode)"
11129 msgstr ""
11130
11131 #. type: Plain text
11132 #: build/C/man5/nsswitch.conf.5:246
11133 msgid ""
11134 "Linux libc5 without NYS does not have the name service switch but does allow "
11135 "the user some policy control.  In I</etc/passwd> you could have entries of "
11136 "the form +user or +@netgroup (include the specified user from the NIS passwd "
11137 "map), -user or -@netgroup (exclude the specified user), and + (include every "
11138 "user, except the excluded ones, from the NIS passwd map).  Since most people "
11139 "only put a + at the end of I</etc/passwd> to include everything from NIS, "
11140 "the switch provides a faster alternative for this case (`passwd: files nis') "
11141 "which doesn't require the single + entry in I</etc/passwd>, I</etc/group>, "
11142 "and I</etc/shadow>.  If this is not sufficient, the NSS `compat' service "
11143 "provides full +/- semantics.  By default, the source is `nis', but this may "
11144 "be overridden by specifying `nisplus' as source for the pseudo-databases "
11145 "B<passwd_compat>, B<group_compat> and B<shadow_compat>.  These "
11146 "pseudo-databases are only available in GNU C Library."
11147 msgstr ""
11148
11149 #. type: Plain text
11150 #: build/C/man5/nsswitch.conf.5:251
11151 msgid ""
11152 "A service named SERVICE is implemented by a shared object library named "
11153 "B<libnss_SERVICE.so.>I<X> that resides in I</lib>."
11154 msgstr ""
11155
11156 #. type: Plain text
11157 #: build/C/man5/nsswitch.conf.5:255
11158 msgid "configuration file"
11159 msgstr ""
11160
11161 #. type: TP
11162 #: build/C/man5/nsswitch.conf.5:255
11163 #, no-wrap
11164 msgid "B</lib/libnss_compat.so.>I<X>"
11165 msgstr ""
11166
11167 #. type: Plain text
11168 #: build/C/man5/nsswitch.conf.5:258
11169 msgid "implements `compat' source for glibc2"
11170 msgstr ""
11171
11172 #. type: TP
11173 #: build/C/man5/nsswitch.conf.5:258
11174 #, no-wrap
11175 msgid "B</lib/libnss_db.so.>I<X>"
11176 msgstr ""
11177
11178 #. type: Plain text
11179 #: build/C/man5/nsswitch.conf.5:261
11180 msgid "implements `db' source for glibc2"
11181 msgstr ""
11182
11183 #. type: TP
11184 #: build/C/man5/nsswitch.conf.5:261
11185 #, no-wrap
11186 msgid "B</lib/libnss_dns.so.>I<X>"
11187 msgstr ""
11188
11189 #. type: Plain text
11190 #: build/C/man5/nsswitch.conf.5:264
11191 msgid "implements `dns' source for glibc2"
11192 msgstr ""
11193
11194 #. type: TP
11195 #: build/C/man5/nsswitch.conf.5:264
11196 #, no-wrap
11197 msgid "B</lib/libnss_files.so.>I<X>"
11198 msgstr ""
11199
11200 #. type: Plain text
11201 #: build/C/man5/nsswitch.conf.5:267
11202 msgid "implements `files' source for glibc2"
11203 msgstr ""
11204
11205 #. type: TP
11206 #: build/C/man5/nsswitch.conf.5:267
11207 #, no-wrap
11208 msgid "B</lib/libnss_hesiod.so.>I<X>"
11209 msgstr ""
11210
11211 #. type: Plain text
11212 #: build/C/man5/nsswitch.conf.5:270
11213 msgid "implements `hesiod' source for glibc2"
11214 msgstr ""
11215
11216 #. type: TP
11217 #: build/C/man5/nsswitch.conf.5:270
11218 #, no-wrap
11219 msgid "B</lib/libnss_nis.so.>I<X>"
11220 msgstr ""
11221
11222 #. type: Plain text
11223 #: build/C/man5/nsswitch.conf.5:273
11224 msgid "implements `nis' source for glibc2"
11225 msgstr ""
11226
11227 #. type: TP
11228 #: build/C/man5/nsswitch.conf.5:273
11229 #, no-wrap
11230 msgid "I</lib/libnss_nisplus.so.2>"
11231 msgstr ""
11232
11233 #. type: Plain text
11234 #: build/C/man5/nsswitch.conf.5:276
11235 msgid "implements `nisplus' source for glibc 2.1"
11236 msgstr ""
11237
11238 #. type: Plain text
11239 #: build/C/man5/nsswitch.conf.5:282
11240 msgid ""
11241 "Within each process that uses B<nsswitch.conf>, the entire file is read only "
11242 "once; if the file is later changed, the process will continue using the old "
11243 "configuration."
11244 msgstr ""
11245
11246 #. type: Plain text
11247 #: build/C/man5/nsswitch.conf.5:286
11248 msgid ""
11249 "With Solaris, it isn't possible to link programs using the NSS Service "
11250 "statically.  With Linux, this is no problem."
11251 msgstr ""
11252
11253 #. type: TH
11254 #: build/C/man7/packet.7:7
11255 #, no-wrap
11256 msgid "PACKET"
11257 msgstr ""
11258
11259 #. type: TH
11260 #: build/C/man7/packet.7:7 build/C/man7/x25.7:7
11261 #, no-wrap
11262 msgid "2008-08-08"
11263 msgstr ""
11264
11265 #. type: Plain text
11266 #: build/C/man7/packet.7:10
11267 msgid "packet, AF_PACKET - packet interface on device level."
11268 msgstr ""
11269
11270 #. type: Plain text
11271 #: build/C/man7/packet.7:13
11272 #, no-wrap
11273 msgid "B<#include E<lt>sys/socket.hE<gt>>\n"
11274 msgstr ""
11275
11276 #. type: Plain text
11277 #: build/C/man7/packet.7:15
11278 #, no-wrap
11279 msgid "B<#include E<lt>netpacket/packet.hE<gt>>\n"
11280 msgstr ""
11281
11282 #. type: Plain text
11283 #: build/C/man7/packet.7:17
11284 #, no-wrap
11285 msgid "B<#include E<lt>net/ethernet.hE<gt> /* the L2 protocols */>\n"
11286 msgstr ""
11287
11288 #. type: Plain text
11289 #: build/C/man7/packet.7:19
11290 #, no-wrap
11291 msgid ""
11292 "B<packet_socket = socket(AF_PACKET, int >I<socket_type>B<, int "
11293 ">I<protocol>B<);>\n"
11294 msgstr ""
11295
11296 #. type: Plain text
11297 #: build/C/man7/packet.7:25
11298 msgid ""
11299 "Packet sockets are used to receive or send raw packets at the device driver "
11300 "(OSI Layer 2) level.  They allow the user to implement protocol modules in "
11301 "user space on top of the physical layer."
11302 msgstr ""
11303
11304 #. type: Plain text
11305 #: build/C/man7/packet.7:47
11306 msgid ""
11307 "The I<socket_type> is either B<SOCK_RAW> for raw packets including the link "
11308 "level header or B<SOCK_DGRAM> for cooked packets with the link level header "
11309 "removed.  The link level header information is available in a common format "
11310 "in a I<sockaddr_ll>.  I<protocol> is the IEEE 802.3 protocol number in "
11311 "network order.  See the I<E<lt>linux/if_ether.hE<gt>> include file for a "
11312 "list of allowed protocols.  When protocol is set to B<htons(ETH_P_ALL)> then "
11313 "all protocols are received.  All incoming packets of that protocol type will "
11314 "be passed to the packet socket before they are passed to the protocols "
11315 "implemented in the kernel."
11316 msgstr ""
11317
11318 #. type: Plain text
11319 #: build/C/man7/packet.7:51
11320 msgid ""
11321 "Only processes with effective UID 0 or the B<CAP_NET_RAW> capability may "
11322 "open packet sockets."
11323 msgstr ""
11324
11325 #. type: Plain text
11326 #: build/C/man7/packet.7:69
11327 msgid ""
11328 "B<SOCK_RAW> packets are passed to and from the device driver without any "
11329 "changes in the packet data.  When receiving a packet, the address is still "
11330 "parsed and passed in a standard I<sockaddr_ll> address structure.  When "
11331 "transmitting a packet, the user supplied buffer should contain the physical "
11332 "layer header.  That packet is then queued unmodified to the network driver "
11333 "of the interface defined by the destination address.  Some device drivers "
11334 "always add other headers.  B<SOCK_RAW> is similar to but not compatible with "
11335 "the obsolete B<AF_INET/SOCK_PACKET> of Linux 2.0."
11336 msgstr ""
11337
11338 #. type: Plain text
11339 #: build/C/man7/packet.7:79
11340 msgid ""
11341 "B<SOCK_DGRAM> operates on a slightly higher level.  The physical header is "
11342 "removed before the packet is passed to the user.  Packets sent through a "
11343 "B<SOCK_DGRAM> packet socket get a suitable physical layer header based on "
11344 "the information in the I<sockaddr_ll> destination address before they are "
11345 "queued."
11346 msgstr ""
11347
11348 #. type: Plain text
11349 #: build/C/man7/packet.7:92
11350 msgid ""
11351 "By default all packets of the specified protocol type are passed to a packet "
11352 "socket.  To only get packets from a specific interface use B<bind>(2)  "
11353 "specifying an address in a I<struct sockaddr_ll> to bind the packet socket "
11354 "to an interface.  Only the I<sll_protocol> and the I<sll_ifindex> address "
11355 "fields are used for purposes of binding."
11356 msgstr ""
11357
11358 #. type: Plain text
11359 #: build/C/man7/packet.7:96
11360 msgid "The B<connect>(2)  operation is not supported on packet sockets."
11361 msgstr ""
11362
11363 #. type: Plain text
11364 #: build/C/man7/packet.7:105
11365 msgid ""
11366 "When the B<MSG_TRUNC> flag is passed to B<recvmsg>(2), B<recv>(2), "
11367 "B<recvfrom>(2)  the real length of the packet on the wire is always "
11368 "returned, even when it is longer than the buffer."
11369 msgstr ""
11370
11371 #. type: SS
11372 #: build/C/man7/packet.7:105
11373 #, no-wrap
11374 msgid "Address Types"
11375 msgstr ""
11376
11377 #. type: Plain text
11378 #: build/C/man7/packet.7:107
11379 msgid "The sockaddr_ll is a device independent physical layer address."
11380 msgstr ""
11381
11382 #. type: Plain text
11383 #: build/C/man7/packet.7:119
11384 #, no-wrap
11385 msgid ""
11386 "struct sockaddr_ll {\n"
11387 "    unsigned short sll_family;   /* Always AF_PACKET */\n"
11388 "    unsigned short sll_protocol; /* Physical layer protocol */\n"
11389 "    int            sll_ifindex;  /* Interface number */\n"
11390 "    unsigned short sll_hatype;   /* Header type */\n"
11391 "    unsigned char  sll_pkttype;  /* Packet type */\n"
11392 "    unsigned char  sll_halen;    /* Length of address */\n"
11393 "    unsigned char  sll_addr[8];  /* Physical layer address */\n"
11394 "};\n"
11395 msgstr ""
11396
11397 #. type: Plain text
11398 #: build/C/man7/packet.7:158
11399 msgid ""
11400 "I<sll_protocol> is the standard ethernet protocol type in network order as "
11401 "defined in the I<E<lt>linux/if_ether.hE<gt>> include file.  It defaults to "
11402 "the socket's protocol.  I<sll_ifindex> is the interface index of the "
11403 "interface (see B<netdevice>(7)); 0 matches any interface (only permitted for "
11404 "binding).  I<sll_hatype> is a ARP type as defined in the "
11405 "I<E<lt>linux/if_arp.hE<gt>> include file.  I<sll_pkttype> contains the "
11406 "packet type.  Valid types are B<PACKET_HOST> for a packet addressed to the "
11407 "local host, B<PACKET_BROADCAST> for a physical layer broadcast packet, "
11408 "B<PACKET_MULTICAST> for a packet sent to a physical layer multicast address, "
11409 "B<PACKET_OTHERHOST> for a packet to some other host that has been caught by "
11410 "a device driver in promiscuous mode, and B<PACKET_OUTGOING> for a packet "
11411 "originated from the local host that is looped back to a packet socket.  "
11412 "These types make only sense for receiving.  I<sll_addr> and I<sll_halen> "
11413 "contain the physical layer (e.g., IEEE 802.3) address and its length.  The "
11414 "exact interpretation depends on the device."
11415 msgstr ""
11416
11417 #. type: Plain text
11418 #: build/C/man7/packet.7:174
11419 msgid ""
11420 "When you send packets it is enough to specify I<sll_family>, I<sll_addr>, "
11421 "I<sll_halen>, I<sll_ifindex>.  The other fields should be 0.  I<sll_hatype> "
11422 "and I<sll_pkttype> are set on received packets for your information.  For "
11423 "bind only I<sll_protocol> and I<sll_ifindex> are used."
11424 msgstr ""
11425
11426 #. type: Plain text
11427 #: build/C/man7/packet.7:189
11428 msgid ""
11429 "Packet sockets can be used to configure physical layer multicasting and "
11430 "promiscuous mode.  It works by calling B<setsockopt>(2)  on a packet socket "
11431 "for B<SOL_PACKET> and one of the options B<PACKET_ADD_MEMBERSHIP> to add a "
11432 "binding or B<PACKET_DROP_MEMBERSHIP> to drop it.  They both expect a "
11433 "B<packet_mreq> structure as argument:"
11434 msgstr ""
11435
11436 #. type: Plain text
11437 #: build/C/man7/packet.7:198
11438 #, no-wrap
11439 msgid ""
11440 "struct packet_mreq {\n"
11441 "    int            mr_ifindex;    /* interface index */\n"
11442 "    unsigned short mr_type;       /* action */\n"
11443 "    unsigned short mr_alen;       /* address length */\n"
11444 "    unsigned char  mr_address[8]; /* physical layer address */\n"
11445 "};\n"
11446 msgstr ""
11447
11448 #. type: Plain text
11449 #: build/C/man7/packet.7:219
11450 msgid ""
11451 "B<mr_ifindex> contains the interface index for the interface whose status "
11452 "should be changed.  The B<mr_type> parameter specifies which action to "
11453 "perform.  B<PACKET_MR_PROMISC> enables receiving all packets on a shared "
11454 "medium (often known as \"promiscuous mode\"), B<PACKET_MR_MULTICAST> binds "
11455 "the socket to the physical layer multicast group specified in B<mr_address> "
11456 "and B<mr_alen>, and B<PACKET_MR_ALLMULTI> sets the socket up to receive all "
11457 "multicast packets arriving at the interface."
11458 msgstr ""
11459
11460 #. type: Plain text
11461 #: build/C/man7/packet.7:225
11462 msgid ""
11463 "In addition the traditional ioctls B<SIOCSIFFLAGS>, B<SIOCADDMULTI>, "
11464 "B<SIOCDELMULTI> can be used for the same purpose."
11465 msgstr ""
11466
11467 #.  FIXME Document SIOCGSTAMPNS
11468 #. type: Plain text
11469 #: build/C/man7/packet.7:231
11470 msgid ""
11471 "B<SIOCGSTAMP> can be used to receive the timestamp of the last received "
11472 "packet.  Argument is a I<struct timeval.>"
11473 msgstr ""
11474
11475 #. type: Plain text
11476 #: build/C/man7/packet.7:237
11477 msgid ""
11478 "In addition all standard ioctls defined in B<netdevice>(7)  and B<socket>(7)  "
11479 "are valid on packet sockets."
11480 msgstr ""
11481
11482 #. type: SS
11483 #: build/C/man7/packet.7:237 build/C/man7/raw.7:127 build/C/man7/tcp.7:1079 build/C/man7/udp.7:97
11484 #, no-wrap
11485 msgid "Error Handling"
11486 msgstr ""
11487
11488 #. type: Plain text
11489 #: build/C/man7/packet.7:241
11490 msgid ""
11491 "Packet sockets do no error handling other than errors occurred while passing "
11492 "the packet to the device driver.  They don't have the concept of a pending "
11493 "error."
11494 msgstr ""
11495
11496 #. type: Plain text
11497 #: build/C/man7/packet.7:245
11498 msgid "Unknown multicast group address passed."
11499 msgstr ""
11500
11501 #. type: Plain text
11502 #: build/C/man7/packet.7:248
11503 msgid "User passed invalid memory address."
11504 msgstr ""
11505
11506 #. type: Plain text
11507 #: build/C/man7/packet.7:251 build/C/man7/raw.7:151
11508 msgid "Invalid argument."
11509 msgstr ""
11510
11511 #. type: Plain text
11512 #: build/C/man7/packet.7:254
11513 msgid "Packet is bigger than interface MTU."
11514 msgstr ""
11515
11516 #. type: TP
11517 #: build/C/man7/packet.7:254
11518 #, no-wrap
11519 msgid "B<ENETDOWN>"
11520 msgstr ""
11521
11522 #. type: Plain text
11523 #: build/C/man7/packet.7:257
11524 msgid "Interface is not up."
11525 msgstr ""
11526
11527 #. type: Plain text
11528 #: build/C/man7/packet.7:260
11529 msgid "Not enough memory to allocate the packet."
11530 msgstr ""
11531
11532 #. type: Plain text
11533 #: build/C/man7/packet.7:263
11534 msgid "Unknown device name or interface index specified in interface address."
11535 msgstr ""
11536
11537 #. type: Plain text
11538 #: build/C/man7/packet.7:266
11539 msgid "No packet received."
11540 msgstr ""
11541
11542 #. type: Plain text
11543 #: build/C/man7/packet.7:269
11544 msgid "No interface address passed."
11545 msgstr ""
11546
11547 #. type: TP
11548 #: build/C/man7/packet.7:269
11549 #, no-wrap
11550 msgid "B<ENXIO>"
11551 msgstr ""
11552
11553 #. type: Plain text
11554 #: build/C/man7/packet.7:272
11555 msgid "Interface address contained an invalid interface index."
11556 msgstr ""
11557
11558 #. type: Plain text
11559 #: build/C/man7/packet.7:275
11560 msgid "User has insufficient privileges to carry out this operation."
11561 msgstr ""
11562
11563 #. type: Plain text
11564 #: build/C/man7/packet.7:277
11565 msgid "In addition other errors may be generated by the low-level driver."
11566 msgstr ""
11567
11568 #. type: Plain text
11569 #: build/C/man7/packet.7:282
11570 msgid ""
11571 "B<AF_PACKET> is a new feature in Linux 2.2.  Earlier Linux versions "
11572 "supported only B<SOCK_PACKET>."
11573 msgstr ""
11574
11575 #. type: Plain text
11576 #: build/C/man7/packet.7:287
11577 msgid ""
11578 "The include file I<E<lt>netpacket/packet.hE<gt>> is present since glibc "
11579 "2.1.  Older systems need:"
11580 msgstr ""
11581
11582 #. type: Plain text
11583 #: build/C/man7/packet.7:293
11584 #, no-wrap
11585 msgid ""
11586 "#include E<lt>asm/types.hE<gt>\n"
11587 "#include E<lt>linux/if_packet.hE<gt>\n"
11588 "#include E<lt>linux/if_ether.hE<gt>  /* The L2 protocols */\n"
11589 msgstr ""
11590
11591 #. type: Plain text
11592 #: build/C/man7/packet.7:303
11593 msgid ""
11594 "For portable programs it is suggested to use B<AF_PACKET> via B<pcap>(3); "
11595 "although this only covers a subset of the B<AF_PACKET> features."
11596 msgstr ""
11597
11598 #. type: Plain text
11599 #: build/C/man7/packet.7:324
11600 msgid ""
11601 "The B<SOCK_DGRAM> packet sockets make no attempt to create or parse the IEEE "
11602 "802.2 LLC header for a IEEE 802.3 frame.  When B<ETH_P_802_3> is specified "
11603 "as protocol for sending the kernel creates the 802.3 frame and fills out the "
11604 "length field; the user has to supply the LLC header to get a fully "
11605 "conforming packet.  Incoming 802.3 packets are not multiplexed on the "
11606 "DSAP/SSAP protocol fields; instead they are supplied to the user as protocol "
11607 "B<ETH_P_802_2> with the LLC header prepended.  It is thus not possible to "
11608 "bind to B<ETH_P_802_3>; bind to B<ETH_P_802_2> instead and do the protocol "
11609 "multiplex yourself.  The default for sending is the standard Ethernet DIX "
11610 "encapsulation with the protocol filled in."
11611 msgstr ""
11612
11613 #. type: Plain text
11614 #: build/C/man7/packet.7:326
11615 msgid "Packet sockets are not subject to the input or output firewall chains."
11616 msgstr ""
11617
11618 #. type: Plain text
11619 #: build/C/man7/packet.7:336
11620 msgid ""
11621 "In Linux 2.0, the only way to get a packet socket was by calling "
11622 "B<socket(AF_INET, SOCK_PACKET, >I<protocol>B<)>.  This is still supported "
11623 "but strongly deprecated.  The main difference between the two methods is "
11624 "that B<SOCK_PACKET> uses the old I<struct sockaddr_pkt> to specify an "
11625 "interface, which doesn't provide physical layer independence."
11626 msgstr ""
11627
11628 #. type: Plain text
11629 #: build/C/man7/packet.7:344
11630 #, no-wrap
11631 msgid ""
11632 "struct sockaddr_pkt {\n"
11633 "    unsigned short spkt_family;\n"
11634 "    unsigned char  spkt_device[14];\n"
11635 "    unsigned short spkt_protocol;\n"
11636 "};\n"
11637 msgstr ""
11638
11639 #. type: Plain text
11640 #: build/C/man7/packet.7:356
11641 msgid ""
11642 "I<spkt_family> contains the device type, I<spkt_protocol> is the IEEE 802.3 "
11643 "protocol type as defined in I<E<lt>sys/if_ether.hE<gt>> and I<spkt_device> "
11644 "is the device name as a null-terminated string, for example, eth0."
11645 msgstr ""
11646
11647 #. type: Plain text
11648 #: build/C/man7/packet.7:358
11649 msgid "This structure is obsolete and should not be used in new code."
11650 msgstr ""
11651
11652 #. type: Plain text
11653 #: build/C/man7/packet.7:362
11654 msgid ""
11655 "glibc 2.1 does not have a define for B<SOL_PACKET>.  The suggested "
11656 "workaround is to use:"
11657 msgstr ""
11658
11659 #. type: Plain text
11660 #: build/C/man7/packet.7:368
11661 #, no-wrap
11662 msgid ""
11663 "#ifndef SOL_PACKET\n"
11664 "#define SOL_PACKET 263\n"
11665 "#endif\n"
11666 msgstr ""
11667
11668 #. type: Plain text
11669 #: build/C/man7/packet.7:373
11670 msgid ""
11671 "This is fixed in later glibc versions and also does not occur on libc5 "
11672 "systems."
11673 msgstr ""
11674
11675 #. type: Plain text
11676 #: build/C/man7/packet.7:375
11677 msgid "The IEEE 802.2/803.3 LLC handling could be considered as a bug."
11678 msgstr ""
11679
11680 #. type: Plain text
11681 #: build/C/man7/packet.7:377
11682 msgid "Socket filters are not documented."
11683 msgstr ""
11684
11685 #.  .SH CREDITS
11686 #.  This man page was written by Andi Kleen with help from Matthew Wilcox.
11687 #.  AF_PACKET in Linux 2.2 was implemented
11688 #.  by Alexey Kuznetsov, based on code by Alan Cox and others.
11689 #. type: Plain text
11690 #: build/C/man7/packet.7:389
11691 msgid ""
11692 "The B<MSG_TRUNC> B<recvmsg>(2)  extension is an ugly hack and should be "
11693 "replaced by a control message.  There is currently no way to get the "
11694 "original destination address of packets via B<SOCK_DGRAM>."
11695 msgstr ""
11696
11697 #. type: Plain text
11698 #: build/C/man7/packet.7:396
11699 msgid ""
11700 "B<socket>(2), B<pcap>(3), B<capabilities>(7), B<ip>(7), B<raw>(7), "
11701 "B<socket>(7)"
11702 msgstr ""
11703
11704 #. type: Plain text
11705 #: build/C/man7/packet.7:398
11706 msgid "RFC\\ 894 for the standard IP Ethernet encapsulation."
11707 msgstr ""
11708
11709 #. type: Plain text
11710 #: build/C/man7/packet.7:400
11711 msgid "RFC\\ 1700 for the IEEE 802.3 IP encapsulation."
11712 msgstr ""
11713
11714 #. type: Plain text
11715 #: build/C/man7/packet.7:404
11716 msgid "The I<E<lt>linux/if_ether.hE<gt>> include file for physical layer protocols."
11717 msgstr ""
11718
11719 #. type: TH
11720 #: build/C/man5/protocols.5:28
11721 #, no-wrap
11722 msgid "PROTOCOLS"
11723 msgstr ""
11724
11725 #. type: TH
11726 #: build/C/man5/protocols.5:28
11727 #, no-wrap
11728 msgid "2008-09-23"
11729 msgstr ""
11730
11731 #. type: Plain text
11732 #: build/C/man5/protocols.5:31
11733 msgid "protocols - protocols definition file"
11734 msgstr ""
11735
11736 #. type: Plain text
11737 #: build/C/man5/protocols.5:39
11738 msgid ""
11739 "This file is a plain ASCII file, describing the various DARPA internet "
11740 "protocols that are available from the TCP/IP subsystem.  It should be "
11741 "consulted instead of using the numbers in the ARPA include files, or, even "
11742 "worse, just guessing them.  These numbers will occur in the protocol field "
11743 "of any IP header."
11744 msgstr ""
11745
11746 #.  .. by the DDN Network Information Center.
11747 #. type: Plain text
11748 #: build/C/man5/protocols.5:45
11749 msgid ""
11750 "Keep this file untouched since changes would result in incorrect IP "
11751 "packages.  Protocol numbers and names are specified by the IANA (Internet "
11752 "Assigned Numbers Authority)."
11753 msgstr ""
11754
11755 #. type: Plain text
11756 #: build/C/man5/protocols.5:47
11757 msgid "Each line is of the following format:"
11758 msgstr ""
11759
11760 #. type: Plain text
11761 #: build/C/man5/protocols.5:50
11762 msgid "I<protocol number aliases ...>"
11763 msgstr ""
11764
11765 #. type: Plain text
11766 #: build/C/man5/protocols.5:56
11767 msgid ""
11768 "where the fields are delimited by spaces or tabs.  Empty lines are ignored.  "
11769 "If a line contains a hash mark (#), the hash mark and the part of the line "
11770 "following it are ignored."
11771 msgstr ""
11772
11773 #. type: TP
11774 #: build/C/man5/protocols.5:58 build/C/man5/services.5:109
11775 #, no-wrap
11776 msgid "I<protocol>"
11777 msgstr ""
11778
11779 #. type: Plain text
11780 #: build/C/man5/protocols.5:66
11781 msgid "the native name for the protocol.  For example I<ip>, I<tcp>, or I<udp>."
11782 msgstr ""
11783
11784 #. type: Plain text
11785 #: build/C/man5/protocols.5:70
11786 msgid ""
11787 "the official number for this protocol as it will appear within the IP "
11788 "header."
11789 msgstr ""
11790
11791 #. type: Plain text
11792 #: build/C/man5/protocols.5:73
11793 msgid "optional aliases for the protocol."
11794 msgstr ""
11795
11796 #.  The following is not true as at glibc 2.8 (a line with a comma is
11797 #.  ignored by getservent()); it's not clear if/when it was ever true.
11798 #.    As a backward compatibility feature, the slash (/) between the
11799 #.    .I port
11800 #.    number and
11801 #.    .I protocol
11802 #.    name can in fact be either a slash or a comma (,).
11803 #.    Use of the comma in
11804 #.    modern installations is deprecated.
11805 #. type: Plain text
11806 #: build/C/man5/protocols.5:76 build/C/man5/services.5:165
11807 msgid ""
11808 "This file might be distributed over a network using a network-wide naming "
11809 "service like Yellow Pages/NIS or BIND/Hesiod."
11810 msgstr ""
11811
11812 #. type: Plain text
11813 #: build/C/man5/protocols.5:80
11814 msgid "The protocols definition file."
11815 msgstr ""
11816
11817 #. type: Plain text
11818 #: build/C/man5/protocols.5:82
11819 msgid "B<getprotoent>(3)"
11820 msgstr ""
11821
11822 #. type: Plain text
11823 #: build/C/man5/protocols.5:84
11824 msgid "http://www.iana.org/assignments/protocol-numbers"
11825 msgstr ""
11826
11827 #. type: TH
11828 #: build/C/man7/raw.7:9
11829 #, no-wrap
11830 msgid "RAW"
11831 msgstr ""
11832
11833 #. type: Plain text
11834 #: build/C/man7/raw.7:12
11835 msgid "raw, SOCK_RAW - Linux IPv4 raw sockets"
11836 msgstr ""
11837
11838 #. type: Plain text
11839 #: build/C/man7/raw.7:18
11840 msgid "B<raw_socket = socket(AF_INET, SOCK_RAW, int >I<protocol>B<);>"
11841 msgstr ""
11842
11843 #. type: Plain text
11844 #: build/C/man7/raw.7:22
11845 msgid ""
11846 "Raw sockets allow new IPv4 protocols to be implemented in user space.  A raw "
11847 "socket receives or sends the raw datagram not including link level headers."
11848 msgstr ""
11849
11850 #. type: Plain text
11851 #: build/C/man7/raw.7:28
11852 msgid ""
11853 "The IPv4 layer generates an IP header when sending a packet unless the "
11854 "B<IP_HDRINCL> socket option is enabled on the socket.  When it is enabled, "
11855 "the packet must contain an IP header.  For receiving the IP header is always "
11856 "included in the packet."
11857 msgstr ""
11858
11859 #. type: Plain text
11860 #: build/C/man7/raw.7:32
11861 msgid ""
11862 "Only processes with an effective user ID of 0 or the B<CAP_NET_RAW> "
11863 "capability are allowed to open raw sockets."
11864 msgstr ""
11865
11866 #. type: Plain text
11867 #: build/C/man7/raw.7:39
11868 msgid ""
11869 "All packets or errors matching the I<protocol> number specified for the raw "
11870 "socket are passed to this socket.  For a list of the allowed protocols see "
11871 "RFC\\ 1700 assigned numbers and B<getprotobyname>(3)."
11872 msgstr ""
11873
11874 #. type: Plain text
11875 #: build/C/man7/raw.7:49
11876 msgid ""
11877 "A protocol of B<IPPROTO_RAW> implies enabled B<IP_HDRINCL> and is able to "
11878 "send any IP protocol that is specified in the passed header.  Receiving of "
11879 "all IP protocols via B<IPPROTO_RAW> is not possible using raw sockets."
11880 msgstr ""
11881
11882 #. type: tbl table
11883 #: build/C/man7/raw.7:54
11884 #, no-wrap
11885 msgid "IP Header fields modified on sending by B<IP_HDRINCL>\n"
11886 msgstr ""
11887
11888 #. type: tbl table
11889 #: build/C/man7/raw.7:55
11890 #, no-wrap
11891 msgid "IP Checksum:Always filled in.\n"
11892 msgstr ""
11893
11894 #. type: tbl table
11895 #: build/C/man7/raw.7:56
11896 #, no-wrap
11897 msgid "Source Address:Filled in when zero.\n"
11898 msgstr ""
11899
11900 #. type: tbl table
11901 #: build/C/man7/raw.7:57
11902 #, no-wrap
11903 msgid "Packet Id:Filled in when zero.\n"
11904 msgstr ""
11905
11906 #. type: tbl table
11907 #: build/C/man7/raw.7:58
11908 #, no-wrap
11909 msgid "Total Length:Always filled in.\n"
11910 msgstr ""
11911
11912 #. type: Plain text
11913 #: build/C/man7/raw.7:72
11914 msgid ""
11915 "If B<IP_HDRINCL> is specified and the IP header has a nonzero destination "
11916 "address then the destination address of the socket is used to route the "
11917 "packet.  When B<MSG_DONTROUTE> is specified, the destination address should "
11918 "refer to a local interface, otherwise a routing table lookup is done anyway "
11919 "but gatewayed routes are ignored."
11920 msgstr ""
11921
11922 #. type: Plain text
11923 #: build/C/man7/raw.7:80
11924 msgid ""
11925 "If B<IP_HDRINCL> isn't set, then IP header options can be set on raw sockets "
11926 "with B<setsockopt>(2); see B<ip>(7)  for more information."
11927 msgstr ""
11928
11929 #. type: Plain text
11930 #: build/C/man7/raw.7:85
11931 msgid ""
11932 "In Linux 2.2, all IP header fields and options can be set using IP socket "
11933 "options.  This means raw sockets are usually only needed for new protocols "
11934 "or protocols with no user interface (like ICMP)."
11935 msgstr ""
11936
11937 #. type: Plain text
11938 #: build/C/man7/raw.7:89
11939 msgid ""
11940 "When a packet is received, it is passed to any raw sockets which have been "
11941 "bound to its protocol before it is passed to other protocol handlers (e.g., "
11942 "kernel protocol modules)."
11943 msgstr ""
11944
11945 #. type: Plain text
11946 #: build/C/man7/raw.7:105
11947 msgid ""
11948 "Raw sockets use the standard I<sockaddr_in> address structure defined in "
11949 "B<ip>(7).  The I<sin_port> field could be used to specify the IP protocol "
11950 "number, but it is ignored for sending in Linux 2.2 and should be always set "
11951 "to 0 (see BUGS).  For incoming packets, I<sin_port> is set to the protocol "
11952 "of the packet.  See the I<E<lt>netinet/in.hE<gt>> include file for valid IP "
11953 "protocols."
11954 msgstr ""
11955
11956 #.  Or SOL_RAW on Linux
11957 #. type: Plain text
11958 #: build/C/man7/raw.7:114
11959 msgid ""
11960 "Raw socket options can be set with B<setsockopt>(2)  and read with "
11961 "B<getsockopt>(2)  by passing the B<IPPROTO_RAW> family flag."
11962 msgstr ""
11963
11964 #. type: TP
11965 #: build/C/man7/raw.7:114
11966 #, no-wrap
11967 msgid "B<ICMP_FILTER>"
11968 msgstr ""
11969
11970 #. type: Plain text
11971 #: build/C/man7/raw.7:122
11972 msgid ""
11973 "Enable a special filter for raw sockets bound to the B<IPPROTO_ICMP> "
11974 "protocol.  The value has a bit set for each ICMP message type which should "
11975 "be filtered out.  The default is to filter no ICMP messages."
11976 msgstr ""
11977
11978 #. type: Plain text
11979 #: build/C/man7/raw.7:127
11980 msgid ""
11981 "In addition, all B<ip>(7)  B<IPPROTO_IP> socket options valid for datagram "
11982 "sockets are supported."
11983 msgstr ""
11984
11985 #. type: Plain text
11986 #: build/C/man7/raw.7:140
11987 msgid ""
11988 "Errors originating from the network are only passed to the user when the "
11989 "socket is connected or the B<IP_RECVERR> flag is enabled.  For connected "
11990 "sockets, only B<EMSGSIZE> and B<EPROTO> are passed for compatibility.  With "
11991 "B<IP_RECVERR>, all network errors are saved in the error queue."
11992 msgstr ""
11993
11994 #. type: Plain text
11995 #: build/C/man7/raw.7:145
11996 msgid ""
11997 "User tried to send to a broadcast address without having the broadcast flag "
11998 "set on the socket."
11999 msgstr ""
12000
12001 #. type: Plain text
12002 #: build/C/man7/raw.7:148
12003 msgid "An invalid memory address was supplied."
12004 msgstr ""
12005
12006 #. type: Plain text
12007 #: build/C/man7/raw.7:158
12008 msgid ""
12009 "Packet too big.  Either Path MTU Discovery is enabled (the "
12010 "B<IP_MTU_DISCOVER> socket flag) or the packet size exceeds the maximum "
12011 "allowed IPv4 packet size of 64KB."
12012 msgstr ""
12013
12014 #. type: TP
12015 #: build/C/man7/raw.7:158 build/C/man7/unix.7:357
12016 #, no-wrap
12017 msgid "B<EOPNOTSUPP>"
12018 msgstr ""
12019
12020 #. type: Plain text
12021 #: build/C/man7/raw.7:162
12022 msgid "Invalid flag has been passed to a socket call (like B<MSG_OOB>)."
12023 msgstr ""
12024
12025 #. type: Plain text
12026 #: build/C/man7/raw.7:168
12027 msgid ""
12028 "The user doesn't have permission to open raw sockets.  Only processes with "
12029 "an effective user ID of 0 or the B<CAP_NET_RAW> attribute may do that."
12030 msgstr ""
12031
12032 #. type: TP
12033 #: build/C/man7/raw.7:168
12034 #, no-wrap
12035 msgid "B<EPROTO>"
12036 msgstr ""
12037
12038 #. type: Plain text
12039 #: build/C/man7/raw.7:171
12040 msgid "An ICMP error has arrived reporting a parameter problem."
12041 msgstr ""
12042
12043 #. type: Plain text
12044 #: build/C/man7/raw.7:177
12045 msgid ""
12046 "B<IP_RECVERR> and B<ICMP_FILTER> are new in Linux 2.2.  They are Linux "
12047 "extensions and should not be used in portable programs."
12048 msgstr ""
12049
12050 #. type: Plain text
12051 #: build/C/man7/raw.7:183
12052 msgid ""
12053 "Linux 2.0 enabled some bug-to-bug compatibility with BSD in the raw socket "
12054 "code when the B<SO_BSDCOMPAT> socket option was set \\(em since Linux 2.2, "
12055 "this option no longer has that effect."
12056 msgstr ""
12057
12058 #. type: Plain text
12059 #: build/C/man7/raw.7:201
12060 msgid ""
12061 "By default, raw sockets do path MTU (Maximum Transmission Unit) discovery.  "
12062 "This means the kernel will keep track of the MTU to a specific target IP "
12063 "address and return B<EMSGSIZE> when a raw packet write exceeds it.  When "
12064 "this happens, the application should decrease the packet size.  Path MTU "
12065 "discovery can be also turned off using the B<IP_MTU_DISCOVER> socket option "
12066 "or the I</proc/sys/net/ipv4/ip_no_pmtu_disc> file, see B<ip>(7)  for "
12067 "details.  When turned off, raw sockets will fragment outgoing packets that "
12068 "exceed the interface MTU.  However, disabling it is not recommended for "
12069 "performance and reliability reasons."
12070 msgstr ""
12071
12072 #. type: Plain text
12073 #: build/C/man7/raw.7:210
12074 msgid ""
12075 "A raw socket can be bound to a specific local address using the B<bind>(2)  "
12076 "call.  If it isn't bound, all packets with the specified IP protocol are "
12077 "received.  In addition, a RAW socket can be bound to a specific network "
12078 "device using B<SO_BINDTODEVICE>; see B<socket>(7)."
12079 msgstr ""
12080
12081 #. type: Plain text
12082 #: build/C/man7/raw.7:221
12083 msgid ""
12084 "An B<IPPROTO_RAW> socket is send only.  If you really want to receive all IP "
12085 "packets, use a B<packet>(7)  socket with the B<ETH_P_IP> protocol.  Note "
12086 "that packet sockets don't reassemble IP fragments, unlike raw sockets."
12087 msgstr ""
12088
12089 #. type: Plain text
12090 #: build/C/man7/raw.7:227
12091 msgid ""
12092 "If you want to receive all ICMP packets for a datagram socket, it is often "
12093 "better to use B<IP_RECVERR> on that particular socket; see B<ip>(7)."
12094 msgstr ""
12095
12096 #. type: Plain text
12097 #: build/C/man7/raw.7:234
12098 msgid ""
12099 "Raw sockets may tap all IP protocols in Linux, even protocols like ICMP or "
12100 "TCP which have a protocol module in the kernel.  In this case, the packets "
12101 "are passed to both the kernel module and the raw socket(s).  This should not "
12102 "be relied upon in portable programs, many other BSD socket implementation "
12103 "have limitations here."
12104 msgstr ""
12105
12106 #. type: Plain text
12107 #: build/C/man7/raw.7:239
12108 msgid ""
12109 "Linux never changes headers passed from the user (except for filling in some "
12110 "zeroed fields as described for B<IP_HDRINCL>).  This differs from many other "
12111 "implementations of raw sockets."
12112 msgstr ""
12113
12114 #. type: Plain text
12115 #: build/C/man7/raw.7:242
12116 msgid ""
12117 "RAW sockets are generally rather unportable and should be avoided in "
12118 "programs intended to be portable."
12119 msgstr ""
12120
12121 #. type: Plain text
12122 #: build/C/man7/raw.7:248
12123 msgid ""
12124 "Sending on raw sockets should take the IP protocol from I<sin_port>; this "
12125 "ability was lost in Linux 2.2.  The workaround is to use B<IP_HDRINCL>."
12126 msgstr ""
12127
12128 #. type: Plain text
12129 #: build/C/man7/raw.7:250
12130 msgid "Transparent proxy extensions are not described."
12131 msgstr ""
12132
12133 #. type: Plain text
12134 #: build/C/man7/raw.7:255
12135 msgid ""
12136 "When the B<IP_HDRINCL> option is set, datagrams will not be fragmented and "
12137 "are limited to the interface MTU."
12138 msgstr ""
12139
12140 #.  .SH AUTHORS
12141 #.  This man page was written by Andi Kleen.
12142 #. type: Plain text
12143 #: build/C/man7/raw.7:265
12144 msgid ""
12145 "Setting the IP protocol for sending in I<sin_port> got lost in Linux 2.2.  "
12146 "The protocol that the socket was bound to or that was specified in the "
12147 "initial B<socket>(2)  call is always used."
12148 msgstr ""
12149
12150 #. type: Plain text
12151 #: build/C/man7/raw.7:271
12152 msgid "B<recvmsg>(2), B<sendmsg>(2), B<capabilities>(7), B<ip>(7), B<socket>(7)"
12153 msgstr ""
12154
12155 #. type: Plain text
12156 #: build/C/man7/raw.7:274
12157 msgid "B<RFC\\ 1191> for path MTU discovery."
12158 msgstr ""
12159
12160 #. type: Plain text
12161 #: build/C/man7/raw.7:279
12162 msgid ""
12163 "B<RFC\\ 791> and the I<E<lt>linux/ip.hE<gt>> include file for the IP "
12164 "protocol."
12165 msgstr ""
12166
12167 #. type: TH
12168 #: build/C/man3/rcmd.3:41
12169 #, no-wrap
12170 msgid "RCMD"
12171 msgstr ""
12172
12173 #. type: TH
12174 #: build/C/man3/rcmd.3:41
12175 #, no-wrap
12176 msgid "2007-12-28"
12177 msgstr ""
12178
12179 #. type: Plain text
12180 #: build/C/man3/rcmd.3:45
12181 msgid ""
12182 "rcmd, rresvport, iruserok, ruserok - routines for returning a stream to a "
12183 "remote command"
12184 msgstr ""
12185
12186 #. type: Plain text
12187 #: build/C/man3/rcmd.3:48
12188 #, no-wrap
12189 msgid ""
12190 "B<#include E<lt>netdb.hE<gt> \\ \\ >/* Or E<lt>unistd.hE<gt> on some systems "
12191 "*/\n"
12192 msgstr ""
12193
12194 #. type: Plain text
12195 #: build/C/man3/rcmd.3:51
12196 #, no-wrap
12197 msgid ""
12198 "B<int rcmd(char **>I<ahost>B<, int >I<inport>B<, const char *>I<locuser>B<, "
12199 ">\n"
12200 "B<         const char *>I<remuser>B<, const char *>I<cmd>B<, int "
12201 "*>I<fd2p>B<);>\n"
12202 msgstr ""
12203
12204 #. type: Plain text
12205 #: build/C/man3/rcmd.3:53
12206 #, no-wrap
12207 msgid "B<int rresvport(int *>I<port>B<);>\n"
12208 msgstr ""
12209
12210 #. type: Plain text
12211 #: build/C/man3/rcmd.3:56
12212 #, no-wrap
12213 msgid ""
12214 "B<int iruserok(uint32_t >I<raddr>B<, int >I<superuser>B<, >\n"
12215 "B<             const char *>I<ruser>B<, const char *>I<luser>B<);>\n"
12216 msgstr ""
12217
12218 #. type: Plain text
12219 #: build/C/man3/rcmd.3:59
12220 #, no-wrap
12221 msgid ""
12222 "B<int ruserok(const char *>I<rhost>B<, int >I<superuser>B<, >\n"
12223 "B<            const char *>I<ruser>B<, const char *>I<luser>B<);>\n"
12224 msgstr ""
12225
12226 #. type: Plain text
12227 #: build/C/man3/rcmd.3:70
12228 msgid "B<rcmd>(), B<rresvport>(), B<ruserok>(): _BSD_SOURCE"
12229 msgstr ""
12230
12231 #. type: Plain text
12232 #: build/C/man3/rcmd.3:92
12233 msgid ""
12234 "The B<rcmd>()  function is used by the superuser to execute a command on a "
12235 "remote machine using an authentication scheme based on privileged port "
12236 "numbers.  The B<rresvport>()  function returns a descriptor to a socket with "
12237 "an address in the privileged port space.  The B<iruserok>()  and "
12238 "B<ruserok>()  functions are used by servers to authenticate clients "
12239 "requesting service with B<rcmd>().  All four functions are present in the "
12240 "same file and are used by the B<rshd>(8)  server (among others)."
12241 msgstr ""
12242
12243 #. type: Plain text
12244 #: build/C/man3/rcmd.3:107
12245 msgid ""
12246 "The B<rcmd>()  function looks up the host I<*ahost> using "
12247 "B<gethostbyname>(3), returning -1 if the host does not exist.  Otherwise "
12248 "I<*ahost> is set to the standard name of the host and a connection is "
12249 "established to a server residing at the well-known Internet port I<inport>."
12250 msgstr ""
12251
12252 #. type: Plain text
12253 #: build/C/man3/rcmd.3:136
12254 msgid ""
12255 "If the connection succeeds, a socket in the Internet domain of type "
12256 "B<SOCK_STREAM> is returned to the caller, and given to the remote command as "
12257 "I<stdin> and I<stdout>.  If I<fd2p> is nonzero, then an auxiliary channel to "
12258 "a control process will be set up, and a descriptor for it will be placed in "
12259 "I<*fd2p>.  The control process will return diagnostic output from the "
12260 "command (unit 2) on this channel, and will also accept bytes on this channel "
12261 "as being UNIX signal numbers, to be forwarded to the process group of the "
12262 "command.  If I<fd2p> is 0, then the I<stderr> (unit 2 of the remote command) "
12263 "will be made the same as the I<stdout> and no provision is made for sending "
12264 "arbitrary signals to the remote process, although you may be able to get its "
12265 "attention by using out-of-band data."
12266 msgstr ""
12267
12268 #. type: Plain text
12269 #: build/C/man3/rcmd.3:139
12270 msgid "The protocol is described in detail in B<rshd>(8)."
12271 msgstr ""
12272
12273 #. type: Plain text
12274 #: build/C/man3/rcmd.3:149
12275 msgid ""
12276 "The B<rresvport>()  function is used to obtain a socket with a privileged "
12277 "address bound to it.  This socket is suitable for use by B<rcmd>()  and "
12278 "several other functions.  Privileged Internet ports are those in the range 0 "
12279 "to 1023.  Only the superuser is allowed to bind an address of this sort to a "
12280 "socket."
12281 msgstr ""
12282
12283 #. type: Plain text
12284 #: build/C/man3/rcmd.3:166
12285 msgid ""
12286 "The B<iruserok>()  and B<ruserok>()  functions take a remote host's IP "
12287 "address or name, respectively, two usernames and a flag indicating whether "
12288 "the local user's name is that of the superuser.  Then, if the user is I<not> "
12289 "the superuser, it checks the I</etc/hosts.equiv> file.  If that lookup is "
12290 "not done, or is unsuccessful, the I<.rhosts> in the local user's home "
12291 "directory is checked to see if the request for service is allowed."
12292 msgstr ""
12293
12294 #. type: Plain text
12295 #: build/C/man3/rcmd.3:182
12296 msgid ""
12297 "If this file does not exist, is not a regular file, is owned by anyone other "
12298 "than the user or the superuser, or is writable by anyone other than the "
12299 "owner, the check automatically fails.  Zero is returned if the machine name "
12300 "is listed in the I<hosts.equiv> file, or the host and remote username are "
12301 "found in the I<.rhosts> file; otherwise B<iruserok>()  and B<ruserok>()  "
12302 "return -1.  If the local domain (as obtained from B<gethostname>(2))  is the "
12303 "same as the remote domain, only the machine name need be specified."
12304 msgstr ""
12305
12306 #. type: Plain text
12307 #: build/C/man3/rcmd.3:188
12308 msgid ""
12309 "If the IP address of the remote host is known, B<iruserok>()  should be used "
12310 "in preference to B<ruserok>(), as it does not require trusting the DNS "
12311 "server for the remote host's domain."
12312 msgstr ""
12313
12314 #. type: Plain text
12315 #: build/C/man3/rcmd.3:194
12316 msgid ""
12317 "The B<rcmd>()  function returns a valid socket descriptor on success.  It "
12318 "returns -1 on error and prints a diagnostic message on the standard error."
12319 msgstr ""
12320
12321 #. type: Plain text
12322 #: build/C/man3/rcmd.3:205
12323 msgid ""
12324 "The B<rresvport>()  function returns a valid, bound socket descriptor on "
12325 "success.  It returns -1 on error with the global value I<errno> set "
12326 "according to the reason for failure.  The error code B<EAGAIN> is overloaded "
12327 "to mean \"All network ports in use.\""
12328 msgstr ""
12329
12330 #. type: Plain text
12331 #: build/C/man3/rcmd.3:211
12332 msgid ""
12333 "Not in POSIX.1-2001.  Present on the BSDs, Solaris, and many other systems.  "
12334 "These functions appeared in 4.2BSD."
12335 msgstr ""
12336
12337 #.  Bug filed 25 Nov 2007:
12338 #.  http://sources.redhat.com/bugzilla/show_bug.cgi?id=5399
12339 #. type: Plain text
12340 #: build/C/man3/rcmd.3:216
12341 msgid "B<iruserok>()  is not declared in glibc headers."
12342 msgstr ""
12343
12344 #. type: Plain text
12345 #: build/C/man3/rcmd.3:224
12346 msgid ""
12347 "B<rlogin>(1), B<rsh>(1), B<intro>(2), B<rexec>(3), B<rexecd>(8), "
12348 "B<rlogind>(8), B<rshd>(8)"
12349 msgstr ""
12350
12351 #. type: TH
12352 #: build/C/man5/resolv.conf.5:21
12353 #, no-wrap
12354 msgid "RESOLV.CONF"
12355 msgstr ""
12356
12357 #. type: TH
12358 #: build/C/man5/resolv.conf.5:21
12359 #, no-wrap
12360 msgid "2012-02-08"
12361 msgstr ""
12362
12363 #. type: Plain text
12364 #: build/C/man5/resolv.conf.5:25
12365 msgid "resolv.conf - resolver configuration file"
12366 msgstr ""
12367
12368 #. type: Plain text
12369 #: build/C/man5/resolv.conf.5:27
12370 msgid "B</etc/resolv.conf>"
12371 msgstr ""
12372
12373 #. type: Plain text
12374 #: build/C/man5/resolv.conf.5:36
12375 msgid ""
12376 "The I<resolver> is a set of routines in the C library that provide access to "
12377 "the Internet Domain Name System (DNS).  The resolver configuration file "
12378 "contains information that is read by the resolver routines the first time "
12379 "they are invoked by a process.  The file is designed to be human readable "
12380 "and contains a list of keywords with values that provide various types of "
12381 "resolver information."
12382 msgstr ""
12383
12384 #. type: Plain text
12385 #: build/C/man5/resolv.conf.5:41
12386 msgid ""
12387 "On a normally configured system this file should not be necessary.  The only "
12388 "name server to be queried will be on the local machine; the domain name is "
12389 "determined from the hostname and the domain search path is constructed from "
12390 "the domain name."
12391 msgstr ""
12392
12393 #. type: Plain text
12394 #: build/C/man5/resolv.conf.5:43
12395 msgid "The different configuration options are:"
12396 msgstr ""
12397
12398 #. type: TP
12399 #: build/C/man5/resolv.conf.5:43
12400 #, no-wrap
12401 msgid "B<nameserver> Name server IP address"
12402 msgstr ""
12403
12404 #. type: Plain text
12405 #: build/C/man5/resolv.conf.5:59
12406 msgid ""
12407 "Internet address (in dot notation) of a name server that the resolver should "
12408 "query.  Up to B<MAXNS> (currently 3, see I<E<lt>resolv.hE<gt>>) name servers "
12409 "may be listed, one per keyword.  If there are multiple servers, the resolver "
12410 "library queries them in the order listed.  If no B<nameserver> entries are "
12411 "present, the default is to use the name server on the local machine.  (The "
12412 "algorithm used is to try a name server, and if the query times out, try the "
12413 "next, until out of name servers, then repeat trying all the name servers "
12414 "until a maximum number of retries are made.)"
12415 msgstr ""
12416
12417 #. type: TP
12418 #: build/C/man5/resolv.conf.5:59
12419 #, no-wrap
12420 msgid "B<domain> Local domain name."
12421 msgstr ""
12422
12423 #. type: Plain text
12424 #: build/C/man5/resolv.conf.5:69
12425 msgid ""
12426 "Most queries for names within this domain can use short names relative to "
12427 "the local domain.  If no B<domain> entry is present, the domain is "
12428 "determined from the local hostname returned by B<gethostname>(2); the domain "
12429 "part is taken to be everything after the first \\(aq.\\(aq.  Finally, if the "
12430 "hostname does not contain a domain part, the root domain is assumed."
12431 msgstr ""
12432
12433 #. type: TP
12434 #: build/C/man5/resolv.conf.5:69
12435 #, no-wrap
12436 msgid "B<search> Search list for host-name lookup."
12437 msgstr ""
12438
12439 #.  When having a resolv.conv with a line
12440 #.   search subdomain.domain.tld domain.tld
12441 #.  and doing a hostlookup, for example by
12442 #.   ping host.anothersubdomain
12443 #.  it sends dns-requests for
12444 #.   host.anothersubdomain.
12445 #.   host.anothersubdomain.subdomain.domain.tld.
12446 #.   host.anothersubdomain.domain.tld.
12447 #.  thus not only causing unnecessary traffic for the root-dns-servers
12448 #.  but broadcasting information to the outside and making man-in-the-middle
12449 #.  attacks possible.
12450 #. type: Plain text
12451 #: build/C/man5/resolv.conf.5:99
12452 msgid ""
12453 "The search list is normally determined from the local domain name; by "
12454 "default, it contains only the local domain name.  This may be changed by "
12455 "listing the desired domain search path following the I<search> keyword with "
12456 "spaces or tabs separating the names.  Resolver queries having fewer than "
12457 "I<ndots> dots (default is 1) in them will be attempted using each component "
12458 "of the search path in turn until a match is found.  For environments with "
12459 "multiple subdomains please read B<options ndots:>I<n> below to avoid "
12460 "man-in-the-middle attacks and unnecessary traffic for the root-dns-servers.  "
12461 "Note that this process may be slow and will generate a lot of network "
12462 "traffic if the servers for the listed domains are not local, and that "
12463 "queries will time out if no server is available for one of the domains."
12464 msgstr ""
12465
12466 #. type: Plain text
12467 #: build/C/man5/resolv.conf.5:102
12468 msgid ""
12469 "The search list is currently limited to six domains with a total of 256 "
12470 "characters."
12471 msgstr ""
12472
12473 #. type: TP
12474 #: build/C/man5/resolv.conf.5:102
12475 #, no-wrap
12476 msgid "B<sortlist>"
12477 msgstr ""
12478
12479 #. type: Plain text
12480 #: build/C/man5/resolv.conf.5:115
12481 msgid ""
12482 "This option allows addresses returned by B<gethostbyname>(3)  to be sorted.  "
12483 "A sortlist is specified by IP-address-netmask pairs.  The netmask is "
12484 "optional and defaults to the natural netmask of the net.  The IP address and "
12485 "optional network pairs are separated by slashes.  Up to 10 pairs may be "
12486 "specified.  Here is an example:"
12487 msgstr ""
12488
12489 #. type: Plain text
12490 #: build/C/man5/resolv.conf.5:118
12491 msgid "sortlist 130.155.160.0/255.255.240.0 130.155.0.0"
12492 msgstr ""
12493
12494 #. type: TP
12495 #: build/C/man5/resolv.conf.5:120
12496 #, no-wrap
12497 msgid "B<options>"
12498 msgstr ""
12499
12500 #. type: Plain text
12501 #: build/C/man5/resolv.conf.5:124
12502 msgid ""
12503 "Options allows certain internal resolver variables to be modified.  The "
12504 "syntax is"
12505 msgstr ""
12506
12507 #. type: Plain text
12508 #: build/C/man5/resolv.conf.5:127
12509 msgid "B<options> I<option> I<...>"
12510 msgstr ""
12511
12512 #. type: Plain text
12513 #: build/C/man5/resolv.conf.5:129
12514 msgid "where I<option> is one of the following:"
12515 msgstr ""
12516
12517 #. type: TP
12518 #: build/C/man5/resolv.conf.5:129
12519 #, no-wrap
12520 msgid "B<debug>"
12521 msgstr ""
12522
12523 #.  Since glibc 2.2?
12524 #. type: Plain text
12525 #: build/C/man5/resolv.conf.5:136
12526 msgid "sets B<RES_DEBUG> in I<_res.options>."
12527 msgstr ""
12528
12529 #. type: TP
12530 #: build/C/man5/resolv.conf.5:136
12531 #, no-wrap
12532 msgid "B<ndots:>I<n>"
12533 msgstr ""
12534
12535 #.  Since glibc 2.2
12536 #. type: Plain text
12537 #: build/C/man5/resolv.conf.5:150
12538 msgid ""
12539 "sets a threshold for the number of dots which must appear in a name given to "
12540 "B<res_query>(3)  (see B<resolver>(3))  before an I<initial absolute query> "
12541 "will be made.  The default for I<n> is 1, meaning that if there are any dots "
12542 "in a name, the name will be tried first as an absolute name before any "
12543 "I<search list> elements are appended to it.  The value for this option is "
12544 "silently capped to 15."
12545 msgstr ""
12546
12547 #. type: TP
12548 #: build/C/man5/resolv.conf.5:150
12549 #, no-wrap
12550 msgid "B<timeout:>I<n>"
12551 msgstr ""
12552
12553 #.  Since glibc 2.2
12554 #. type: Plain text
12555 #: build/C/man5/resolv.conf.5:161
12556 msgid ""
12557 "sets the amount of time the resolver will wait for a response from a remote "
12558 "name server before retrying the query via a different name server.  Measured "
12559 "in seconds, the default is B<RES_TIMEOUT> (currently 5, see "
12560 "I<E<lt>resolv.hE<gt>>).  The value for this option is silently capped to 30."
12561 msgstr ""
12562
12563 #. type: TP
12564 #: build/C/man5/resolv.conf.5:161
12565 #, no-wrap
12566 msgid "B<attempts:>I<n>"
12567 msgstr ""
12568
12569 #. type: Plain text
12570 #: build/C/man5/resolv.conf.5:170
12571 msgid ""
12572 "sets the number of times the resolver will send a query to its name servers "
12573 "before giving up and returning an error to the calling application.  The "
12574 "default is B<RES_DFLRETRY> (currently 2, see I<E<lt>resolv.hE<gt>>).  The "
12575 "value for this option is silently capped to 5."
12576 msgstr ""
12577
12578 #. type: TP
12579 #: build/C/man5/resolv.conf.5:170
12580 #, no-wrap
12581 msgid "B<rotate>"
12582 msgstr ""
12583
12584 #.  Since glibc 2.2
12585 #. type: Plain text
12586 #: build/C/man5/resolv.conf.5:180
12587 msgid ""
12588 "sets B<RES_ROTATE> in I<_res.options>, which causes round robin selection of "
12589 "nameservers from among those listed.  This has the effect of spreading the "
12590 "query load among all listed servers, rather than having all clients try the "
12591 "first listed server first every time."
12592 msgstr ""
12593
12594 #. type: TP
12595 #: build/C/man5/resolv.conf.5:180
12596 #, no-wrap
12597 msgid "B<no-check-names>"
12598 msgstr ""
12599
12600 #.  since glibc 2.2
12601 #. type: Plain text
12602 #: build/C/man5/resolv.conf.5:190
12603 msgid ""
12604 "sets B<RES_NOCHECKNAME> in I<_res.options>, which disables the modern BIND "
12605 "checking of incoming hostnames and mail names for invalid characters such as "
12606 "underscore (_), non-ASCII, or control characters."
12607 msgstr ""
12608
12609 #. type: TP
12610 #: build/C/man5/resolv.conf.5:190
12611 #, no-wrap
12612 msgid "B<inet6>"
12613 msgstr ""
12614
12615 #.  Since glibc 2.2
12616 #. type: Plain text
12617 #: build/C/man5/resolv.conf.5:201
12618 msgid ""
12619 "sets B<RES_USE_INET6> in I<_res.options>.  This has the effect of trying a "
12620 "AAAA query before an A query inside the B<gethostbyname>(3)  function, and "
12621 "of mapping IPv4 responses in IPv6 \"tunneled form\" if no AAAA records are "
12622 "found but an A record set exists."
12623 msgstr ""
12624
12625 #. type: TP
12626 #: build/C/man5/resolv.conf.5:201
12627 #, no-wrap
12628 msgid "B<ip6-bytestring> (since glibc 2.3.4)"
12629 msgstr ""
12630
12631 #. type: Plain text
12632 #: build/C/man5/resolv.conf.5:210
12633 msgid ""
12634 "sets B<RES_USE_BSTRING> in I<_res.options>.  This causes reverse IPv6 "
12635 "lookups to be made using the bit-label format described in RFC\\ 2673; if "
12636 "this option is not set, then nibble format is used."
12637 msgstr ""
12638
12639 #. type: TP
12640 #: build/C/man5/resolv.conf.5:210
12641 #, no-wrap
12642 msgid "B<ip6-dotint>/B<no-ip6-dotint> (since glibc 2.3.4)"
12643 msgstr ""
12644
12645 #. type: Plain text
12646 #: build/C/man5/resolv.conf.5:227
12647 msgid ""
12648 "Clear/set B<RES_NOIP6DOTINT> in I<_res.options>.  When this option is clear "
12649 "(B<ip6-dotint>), reverse IPv6 lookups are made in the (deprecated)  "
12650 "I<ip6.int> zone; when this option is set (B<no-ip6-dotint>), reverse IPv6 "
12651 "lookups are made in the I<ip6.arpa> zone by default.  This option is set by "
12652 "default."
12653 msgstr ""
12654
12655 #. type: TP
12656 #: build/C/man5/resolv.conf.5:227
12657 #, no-wrap
12658 msgid "B<edns0> (since glibc 2.6)"
12659 msgstr ""
12660
12661 #. type: Plain text
12662 #: build/C/man5/resolv.conf.5:234
12663 msgid ""
12664 "sets B<RES_USE_EDNSO> in I<_res.options>.  This enables support for the DNS "
12665 "extensions described in RFC\\ 2671."
12666 msgstr ""
12667
12668 #. type: Plain text
12669 #: build/C/man5/resolv.conf.5:239
12670 msgid ""
12671 "The I<domain> and I<search> keywords are mutually exclusive.  If more than "
12672 "one instance of these keywords is present, the last instance wins."
12673 msgstr ""
12674
12675 #. type: Plain text
12676 #: build/C/man5/resolv.conf.5:244
12677 msgid ""
12678 "The I<search> keyword of a system's I<resolv.conf> file can be overridden on "
12679 "a per-process basis by setting the environment variable B<LOCALDOMAIN> to a "
12680 "space-separated list of search domains."
12681 msgstr ""
12682
12683 #. type: Plain text
12684 #: build/C/man5/resolv.conf.5:250
12685 msgid ""
12686 "The I<options> keyword of a system's I<resolv.conf> file can be amended on a "
12687 "per-process basis by setting the environment variable B<RES_OPTIONS> to a "
12688 "space-separated list of resolver options as explained above under "
12689 "B<options>."
12690 msgstr ""
12691
12692 #. type: Plain text
12693 #: build/C/man5/resolv.conf.5:254
12694 msgid ""
12695 "The keyword and value must appear on a single line, and the keyword (e.g., "
12696 "B<nameserver>) must start the line.  The value follows the keyword, "
12697 "separated by white space."
12698 msgstr ""
12699
12700 #. type: Plain text
12701 #: build/C/man5/resolv.conf.5:257
12702 msgid ""
12703 "Lines that contain a semicolon (;) or hash character (#)  in the first "
12704 "column are treated as comments."
12705 msgstr ""
12706
12707 #. type: Plain text
12708 #: build/C/man5/resolv.conf.5:260
12709 msgid "I</etc/resolv.conf>, I<E<lt>resolv.hE<gt>>"
12710 msgstr ""
12711
12712 #. type: Plain text
12713 #: build/C/man5/resolv.conf.5:265
12714 msgid "B<gethostbyname>(3), B<resolver>(3), B<hostname>(7), B<named>(8)"
12715 msgstr ""
12716
12717 #. type: Plain text
12718 #: build/C/man5/resolv.conf.5:267
12719 msgid "Name Server Operations Guide for BIND"
12720 msgstr ""
12721
12722 #. type: TH
12723 #: build/C/man3/resolver.3:30
12724 #, no-wrap
12725 msgid "RESOLVER"
12726 msgstr ""
12727
12728 #. type: TH
12729 #: build/C/man3/resolver.3:30
12730 #, no-wrap
12731 msgid "2010-06-17"
12732 msgstr ""
12733
12734 #. type: Plain text
12735 #: build/C/man3/resolver.3:34
12736 msgid ""
12737 "res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, "
12738 "dn_comp, dn_expand - resolver routines"
12739 msgstr ""
12740
12741 #. type: Plain text
12742 #: build/C/man3/resolver.3:40
12743 #, no-wrap
12744 msgid ""
12745 "B<#include E<lt>netinet/in.hE<gt>>\n"
12746 "B<#include E<lt>arpa/nameser.hE<gt>>\n"
12747 "B<#include E<lt>resolv.hE<gt>>\n"
12748 "B<extern struct state _res;>\n"
12749 msgstr ""
12750
12751 #. type: Plain text
12752 #: build/C/man3/resolver.3:42
12753 #, no-wrap
12754 msgid "B<int res_init(void);>\n"
12755 msgstr ""
12756
12757 #. type: Plain text
12758 #: build/C/man3/resolver.3:44
12759 #, no-wrap
12760 msgid "B<int res_query(const char *>I<dname>B<, int >I<class>B<, int >I<type>B<,>\n"
12761 msgstr ""
12762
12763 #. type: Plain text
12764 #: build/C/man3/resolver.3:46 build/C/man3/resolver.3:51
12765 #, no-wrap
12766 msgid "B<unsigned char *>I<answer>B<, int >I<anslen>B<);>\n"
12767 msgstr ""
12768
12769 #. type: Plain text
12770 #: build/C/man3/resolver.3:49
12771 #, no-wrap
12772 msgid ""
12773 "B<int res_search(const char *>I<dname>B<, int >I<class>B<, int "
12774 ">I<type>B<,>\n"
12775 msgstr ""
12776
12777 #. type: Plain text
12778 #: build/C/man3/resolver.3:54
12779 #, no-wrap
12780 msgid "B<int res_querydomain(const char *>I<name>B<, const char *>I<domain>B<,>\n"
12781 msgstr ""
12782
12783 #. type: Plain text
12784 #: build/C/man3/resolver.3:57
12785 #, no-wrap
12786 msgid ""
12787 "B<int >I<class>B<, int >I<type>B<, unsigned char *>I<answer>B<,>\n"
12788 "B<int >I<anslen>B<);>\n"
12789 msgstr ""
12790
12791 #. type: Plain text
12792 #: build/C/man3/resolver.3:60
12793 #, no-wrap
12794 msgid "B<int res_mkquery(int >I<op>B<, const char *>I<dname>B<, int >I<class>B<,>\n"
12795 msgstr ""
12796
12797 #. type: Plain text
12798 #: build/C/man3/resolver.3:63
12799 #, no-wrap
12800 msgid ""
12801 "B<int >I<type>B<, char *>I<data>B<, int >I<datalen>B<, struct rrec "
12802 "*>I<newrr>B<,>\n"
12803 "B<char *>I<buf>B<, int >I<buflen>B<);>\n"
12804 msgstr ""
12805
12806 #. type: Plain text
12807 #: build/C/man3/resolver.3:66
12808 #, no-wrap
12809 msgid ""
12810 "B<int res_send(const char *>I<msg>B<, int >I<msglen>B<, char "
12811 "*>I<answer>B<,>\n"
12812 msgstr ""
12813
12814 #. type: Plain text
12815 #: build/C/man3/resolver.3:68
12816 #, no-wrap
12817 msgid "B<int >I<anslen>B<);>\n"
12818 msgstr ""
12819
12820 #. type: Plain text
12821 #: build/C/man3/resolver.3:71
12822 #, no-wrap
12823 msgid "B<int dn_comp(unsigned char *>I<exp_dn>B<, unsigned char *>I<comp_dn>B<,>\n"
12824 msgstr ""
12825
12826 #. type: Plain text
12827 #: build/C/man3/resolver.3:73
12828 #, no-wrap
12829 msgid ""
12830 "B<int >I<length>B<, unsigned char **>I<dnptrs>B<, unsigned char "
12831 "**>I<lastdnptr>B<);>\n"
12832 msgstr ""
12833
12834 #. type: Plain text
12835 #: build/C/man3/resolver.3:76
12836 #, no-wrap
12837 msgid "B<int dn_expand(unsigned char *>I<msg>B<, unsigned char *>I<eomorig>B<,>\n"
12838 msgstr ""
12839
12840 #. type: Plain text
12841 #: build/C/man3/resolver.3:79
12842 #, no-wrap
12843 msgid ""
12844 "B<unsigned char *>I<comp_dn>B<, char *>I<exp_dn>B<,>\n"
12845 "B<int >I<length>B<);>\n"
12846 msgstr ""
12847
12848 #. type: Plain text
12849 #: build/C/man3/resolver.3:83
12850 msgid "Link with I<-lresolv>."
12851 msgstr ""
12852
12853 #. type: Plain text
12854 #: build/C/man3/resolver.3:86
12855 msgid ""
12856 "These functions make queries to and interpret the responses from Internet "
12857 "domain name servers."
12858 msgstr ""
12859
12860 #. type: Plain text
12861 #: build/C/man3/resolver.3:99
12862 msgid ""
12863 "The B<res_init>()  function reads the configuration files (see "
12864 "resolv.conf(5)) to get the default domain name, search order and name server "
12865 "address(es).  If no server is given, the local host is tried.  If no domain "
12866 "is given, that associated with the local host is used.  It can be overridden "
12867 "with the environment variable B<LOCALDOMAIN>.  B<res_init>()  is normally "
12868 "executed by the first call to one of the other functions."
12869 msgstr ""
12870
12871 #. type: Plain text
12872 #: build/C/man3/resolver.3:107
12873 msgid ""
12874 "The B<res_query>()  function queries the name server for the fully qualified "
12875 "domain name I<name> of specified I<type> and I<class>.  The reply is left in "
12876 "the buffer I<answer> of length I<anslen> supplied by the caller."
12877 msgstr ""
12878
12879 #. type: Plain text
12880 #: build/C/man3/resolver.3:120
12881 msgid ""
12882 "The B<res_search>()  function makes a query and waits for the response like "
12883 "B<res_query>(), but in addition implements the default and search rules "
12884 "controlled by B<RES_DEFNAMES> and B<RES_DNSRCH> (see description of I<_res> "
12885 "options below)."
12886 msgstr ""
12887
12888 #. type: Plain text
12889 #: build/C/man3/resolver.3:126
12890 msgid ""
12891 "The B<res_querydomain>()  function makes a query using B<res_query>()  on "
12892 "the concatenation of I<name> and I<domain>."
12893 msgstr ""
12894
12895 #. type: Plain text
12896 #: build/C/man3/resolver.3:129
12897 msgid "The following functions are lower-level routines used by B<res_query>()."
12898 msgstr ""
12899
12900 #. type: Plain text
12901 #: build/C/man3/resolver.3:140
12902 msgid ""
12903 "The B<res_mkquery>()  function constructs a query message in I<buf> of "
12904 "length I<buflen> for the domain name I<dname>.  The query type I<op> is "
12905 "usually B<QUERY>, but can be any of the types defined in "
12906 "I<E<lt>arpa/nameser.hE<gt>>.  I<newrr> is currently unused."
12907 msgstr ""
12908
12909 #. type: Plain text
12910 #: build/C/man3/resolver.3:150
12911 msgid ""
12912 "The B<res_send>()  function sends a preformatted query given in I<msg> of "
12913 "length I<msglen> and returns the answer in I<answer> which is of length "
12914 "I<anslen>.  It will call B<res_init>(), if it has not already been called."
12915 msgstr ""
12916
12917 #. type: Plain text
12918 #: build/C/man3/resolver.3:163
12919 msgid ""
12920 "The B<dn_comp>()  function compresses the domain name I<exp_dn> and stores "
12921 "it in the buffer I<comp_dn> of length I<length>.  The compression uses an "
12922 "array of pointers I<dnptrs> to previously compressed names in the current "
12923 "message.  The first pointer points to the beginning of the message and the "
12924 "list ends with NULL.  The limit of the array is specified by I<lastdnptr>.  "
12925 "If I<dnptr> is NULL, domain names are not compressed.  If I<lastdnptr> is "
12926 "NULL, the list of labels is not updated."
12927 msgstr ""
12928
12929 #. type: Plain text
12930 #: build/C/man3/resolver.3:172
12931 msgid ""
12932 "The B<dn_expand>()  function expands the compressed domain name I<comp_dn> "
12933 "to a full domain name, which is placed in the buffer I<exp_dn> of size "
12934 "I<length>.  The compressed name is contained in a query or reply message, "
12935 "and I<msg> points to the beginning of the message."
12936 msgstr ""
12937
12938 #. type: Plain text
12939 #: build/C/man3/resolver.3:180
12940 msgid ""
12941 "The resolver routines use global configuration and state information "
12942 "contained in the structure I<_res>, which is defined in "
12943 "I<E<lt>resolv.hE<gt>>.  The only field that is normally manipulated by the "
12944 "user is I<_res.options>.  This field can contain the bitwise \"OR\" of the "
12945 "following options:"
12946 msgstr ""
12947
12948 #. type: TP
12949 #: build/C/man3/resolver.3:180
12950 #, no-wrap
12951 msgid "B<RES_INIT>"
12952 msgstr ""
12953
12954 #. type: Plain text
12955 #: build/C/man3/resolver.3:185
12956 msgid "True if B<res_init>()  has been called."
12957 msgstr ""
12958
12959 #. type: TP
12960 #: build/C/man3/resolver.3:185
12961 #, no-wrap
12962 msgid "B<RES_DEBUG>"
12963 msgstr ""
12964
12965 #. type: Plain text
12966 #: build/C/man3/resolver.3:188
12967 msgid "Print debugging messages."
12968 msgstr ""
12969
12970 #. type: TP
12971 #: build/C/man3/resolver.3:188
12972 #, no-wrap
12973 msgid "B<RES_AAONLY>"
12974 msgstr ""
12975
12976 #. type: Plain text
12977 #: build/C/man3/resolver.3:195
12978 msgid ""
12979 "Accept authoritative answers only.  B<res_send>()  continues until it finds "
12980 "an authoritative answer or returns an error.  [Not currently implemented]."
12981 msgstr ""
12982
12983 #. type: TP
12984 #: build/C/man3/resolver.3:195
12985 #, no-wrap
12986 msgid "B<RES_USEVC>"
12987 msgstr ""
12988
12989 #. type: Plain text
12990 #: build/C/man3/resolver.3:198
12991 msgid "Use TCP connections for queries rather than UDP datagrams."
12992 msgstr ""
12993
12994 #. type: TP
12995 #: build/C/man3/resolver.3:198
12996 #, no-wrap
12997 msgid "B<RES_PRIMARY>"
12998 msgstr ""
12999
13000 #. type: Plain text
13001 #: build/C/man3/resolver.3:201
13002 msgid "Query primary domain name server only."
13003 msgstr ""
13004
13005 #. type: TP
13006 #: build/C/man3/resolver.3:201
13007 #, no-wrap
13008 msgid "B<RES_IGNTC>"
13009 msgstr ""
13010
13011 #. type: Plain text
13012 #: build/C/man3/resolver.3:206
13013 msgid ""
13014 "Ignore truncation errors.  Don't retry with TCP.  [Not currently "
13015 "implemented]."
13016 msgstr ""
13017
13018 #. type: TP
13019 #: build/C/man3/resolver.3:206
13020 #, no-wrap
13021 msgid "B<RES_RECURSE>"
13022 msgstr ""
13023
13024 #. type: Plain text
13025 #: build/C/man3/resolver.3:213
13026 msgid ""
13027 "Set the recursion desired bit in queries.  Recursion is carried out by the "
13028 "domain name server, not by B<res_send>().  [Enabled by default]."
13029 msgstr ""
13030
13031 #. type: TP
13032 #: build/C/man3/resolver.3:213
13033 #, no-wrap
13034 msgid "B<RES_DEFNAMES>"
13035 msgstr ""
13036
13037 #. type: Plain text
13038 #: build/C/man3/resolver.3:220
13039 msgid ""
13040 "If set, B<res_search>()  will append the default domain name to single "
13041 "component names, i.e., those that do not contain a dot.  [Enabled by "
13042 "default]."
13043 msgstr ""
13044
13045 #. type: TP
13046 #: build/C/man3/resolver.3:220
13047 #, no-wrap
13048 msgid "B<RES_STAYOPEN>"
13049 msgstr ""
13050
13051 #. type: Plain text
13052 #: build/C/man3/resolver.3:225
13053 msgid "Used with B<RES_USEVC> to keep the TCP connection open between queries."
13054 msgstr ""
13055
13056 #. type: TP
13057 #: build/C/man3/resolver.3:225
13058 #, no-wrap
13059 msgid "B<RES_DNSRCH>"
13060 msgstr ""
13061
13062 #. type: Plain text
13063 #: build/C/man3/resolver.3:234
13064 msgid ""
13065 "If set, B<res_search>()  will search for hostnames in the current domain and "
13066 "in parent domains.  This option is used by B<gethostbyname>(3).  [Enabled by "
13067 "default]."
13068 msgstr ""
13069
13070 #. type: Plain text
13071 #: build/C/man3/resolver.3:239
13072 msgid "The B<res_init>()  function returns 0 on success, or -1 if an error occurs."
13073 msgstr ""
13074
13075 #. type: Plain text
13076 #: build/C/man3/resolver.3:249
13077 msgid ""
13078 "The B<res_query>(), B<res_search>(), B<res_querydomain>(), B<res_mkquery>()  "
13079 "and B<res_send>()  functions return the length of the response, or -1 if an "
13080 "error occurs."
13081 msgstr ""
13082
13083 #. type: Plain text
13084 #: build/C/man3/resolver.3:256
13085 msgid ""
13086 "The B<dn_comp>()  and B<dn_expand>()  functions return the length of the "
13087 "compressed name, or -1 if an error occurs."
13088 msgstr ""
13089
13090 #. type: Plain text
13091 #: build/C/man3/resolver.3:260
13092 #, no-wrap
13093 msgid ""
13094 "/etc/resolv.conf          resolver configuration file\n"
13095 "/etc/host.conf            resolver configuration file\n"
13096 msgstr ""
13097
13098 #. type: Plain text
13099 #: build/C/man3/resolver.3:263
13100 msgid "4.3BSD."
13101 msgstr ""
13102
13103 #. type: Plain text
13104 #: build/C/man3/resolver.3:269
13105 msgid ""
13106 "B<gethostbyname>(3), B<resolv.conf>(5), B<resolver>(5), B<hostname>(7), "
13107 "B<named>(8)"
13108 msgstr ""
13109
13110 #. type: TH
13111 #: build/C/man3/rexec.3:39
13112 #, no-wrap
13113 msgid "REXEC"
13114 msgstr ""
13115
13116 #. type: Plain text
13117 #: build/C/man3/rexec.3:42
13118 msgid "rexec - return stream to a remote command"
13119 msgstr ""
13120
13121 #. type: Plain text
13122 #: build/C/man3/rexec.3:46
13123 #, no-wrap
13124 msgid ""
13125 "B<#define _BSD_SOURCE>             /* See feature_test_macros(7) */\n"
13126 "B<#include E<lt>netdb.hE<gt>>\n"
13127 msgstr ""
13128
13129 #. type: Plain text
13130 #: build/C/man3/rexec.3:49
13131 #, no-wrap
13132 msgid ""
13133 "B<int rexec(char **>I<ahost>B<, int >I<inport>B<, char *>I<user>B<, >\n"
13134 "B<          char *>I<passwd>B<, char *>I<cmd>B<, int *>I<fd2p>B<);>\n"
13135 msgstr ""
13136
13137 #. type: Plain text
13138 #: build/C/man3/rexec.3:53
13139 msgid "This interface is obsoleted by B<rcmd>(3)."
13140 msgstr ""
13141
13142 #. type: Plain text
13143 #: build/C/man3/rexec.3:72
13144 msgid ""
13145 "The B<rexec>()  function looks up the host I<*ahost> using "
13146 "B<gethostbyname>(3), returning -1 if the host does not exist.  Otherwise "
13147 "I<*ahost> is set to the standard name of the host.  If a username and "
13148 "password are both specified, then these are used to authenticate to the "
13149 "foreign host; otherwise the environment and then the user's I<.netrc> file "
13150 "in his home directory are searched for appropriate information.  If all this "
13151 "fails, the user is prompted for the information."
13152 msgstr ""
13153
13154 #. type: Plain text
13155 #: build/C/man3/rexec.3:83
13156 msgid ""
13157 "The port I<inport> specifies which well-known DARPA Internet port to use for "
13158 "the connection; the call I<getservbyname(\"exec\", \"tcp\")> (see "
13159 "B<getservent>(3))  will return a pointer to a structure that contains the "
13160 "necessary port.  The protocol for connection is described in detail in "
13161 "B<rexecd>(8)."
13162 msgstr ""
13163
13164 #. type: Plain text
13165 #: build/C/man3/rexec.3:116
13166 msgid ""
13167 "If the connection succeeds, a socket in the Internet domain of type "
13168 "B<SOCK_STREAM> is returned to the caller, and given to the remote command as "
13169 "I<stdin> and I<stdout>.  If I<fd2p> is nonzero, then an auxiliary channel to "
13170 "a control process will be setup, and a descriptor for it will be placed in "
13171 "I<*fd2p>.  The control process will return diagnostic output from the "
13172 "command (unit 2) on this channel, and will also accept bytes on this channel "
13173 "as being UNIX signal numbers, to be forwarded to the process group of the "
13174 "command.  The diagnostic information returned does not include remote "
13175 "authorization failure, as the secondary connection is set up after "
13176 "authorization has been verified.  If I<fd2p> is 0, then the I<stderr> (unit "
13177 "2 of the remote command) will be made the same as the I<stdout> and no "
13178 "provision is made for sending arbitrary signals to the remote process, "
13179 "although you may be able to get its attention by using out-of-band data."
13180 msgstr ""
13181
13182 #. type: Plain text
13183 #: build/C/man3/rexec.3:123
13184 msgid ""
13185 "Not in POSIX.1-2001.  Present on the BSDs, Solaris, and many other systems.  "
13186 "The B<rexec>()  function appeared in 4.2BSD."
13187 msgstr ""
13188
13189 #. type: Plain text
13190 #: build/C/man3/rexec.3:127
13191 msgid "The B<rexec>()  function sends the unencrypted password across the network."
13192 msgstr ""
13193
13194 #. type: Plain text
13195 #: build/C/man3/rexec.3:132
13196 msgid ""
13197 "The underlying service is considered a big security hole and therefore not "
13198 "enabled on many sites, see B<rexecd>(8)  for explanations."
13199 msgstr ""
13200
13201 #. type: Plain text
13202 #: build/C/man3/rexec.3:135
13203 msgid "B<rcmd>(3), B<rexecd>(8)"
13204 msgstr ""
13205
13206 #. type: TH
13207 #: build/C/man5/services.5:34
13208 #, no-wrap
13209 msgid "SERVICES"
13210 msgstr ""
13211
13212 #. type: TH
13213 #: build/C/man5/services.5:34
13214 #, no-wrap
13215 msgid "2010-05-22"
13216 msgstr ""
13217
13218 #. type: Plain text
13219 #: build/C/man5/services.5:37
13220 msgid "services - Internet network services list"
13221 msgstr ""
13222
13223 #. type: Plain text
13224 #: build/C/man5/services.5:52
13225 msgid ""
13226 "B<services> is a plain ASCII file providing a mapping between human-friendly "
13227 "textual names for internet services, and their underlying assigned port "
13228 "numbers and protocol types.  Every networking program should look into this "
13229 "file to get the port number (and protocol) for its service.  The C library "
13230 "routines B<getservent>(3), B<getservbyname>(3), B<getservbyport>(3), "
13231 "B<setservent>(3), and B<endservent>(3)  support querying this file from "
13232 "programs."
13233 msgstr ""
13234
13235 #. type: Plain text
13236 #: build/C/man5/services.5:58
13237 msgid ""
13238 "Port numbers are assigned by the IANA (Internet Assigned Numbers Authority), "
13239 "and their current policy is to assign both TCP and UDP protocols when "
13240 "assigning a port number.  Therefore, most entries will have two entries, "
13241 "even for TCP-only services."
13242 msgstr ""
13243
13244 #. type: Plain text
13245 #: build/C/man5/services.5:70
13246 msgid ""
13247 "Port numbers below 1024 (so-called \"low numbered\" ports) can only be bound "
13248 "to by root (see B<bind>(2), B<tcp>(7), and B<udp>(7)).  This is so clients "
13249 "connecting to low numbered ports can trust that the service running on the "
13250 "port is the standard implementation, and not a rogue service run by a user "
13251 "of the machine.  Well-known port numbers specified by the IANA are normally "
13252 "located in this root-only space."
13253 msgstr ""
13254
13255 #. type: Plain text
13256 #: build/C/man5/services.5:85
13257 msgid ""
13258 "The presence of an entry for a service in the B<services> file does not "
13259 "necessarily mean that the service is currently running on the machine.  See "
13260 "B<inetd.conf>(5)  for the configuration of Internet services offered.  Note "
13261 "that not all networking services are started by B<inetd>(8), and so won't "
13262 "appear in B<inetd.conf>(5).  In particular, news (NNTP) and mail (SMTP) "
13263 "servers are often initialized from the system boot scripts."
13264 msgstr ""
13265
13266 #. type: Plain text
13267 #: build/C/man5/services.5:94
13268 msgid ""
13269 "The location of the B<services> file is defined by B<_PATH_SERVICES> in "
13270 "I<E<lt>netdb.hE<gt>>.  This is usually set to I</etc/services>."
13271 msgstr ""
13272
13273 #. type: Plain text
13274 #: build/C/man5/services.5:96
13275 msgid "Each line describes one service, and is of the form:"
13276 msgstr ""
13277
13278 #. type: Plain text
13279 #: build/C/man5/services.5:98
13280 msgid "I<service-name\\ \\ \\ port>B</>I<protocol\\ \\ \\ >[I<aliases ...>]"
13281 msgstr ""
13282
13283 #. type: TP
13284 #: build/C/man5/services.5:98
13285 #, no-wrap
13286 msgid "where:"
13287 msgstr ""
13288
13289 #. type: TP
13290 #: build/C/man5/services.5:100
13291 #, no-wrap
13292 msgid "I<service-name>"
13293 msgstr ""
13294
13295 #. type: Plain text
13296 #: build/C/man5/services.5:106
13297 msgid ""
13298 "is the friendly name the service is known by and looked up under.  It is "
13299 "case sensitive.  Often, the client program is named after the "
13300 "I<service-name>."
13301 msgstr ""
13302
13303 #. type: TP
13304 #: build/C/man5/services.5:106
13305 #, no-wrap
13306 msgid "I<port>"
13307 msgstr ""
13308
13309 #. type: Plain text
13310 #: build/C/man5/services.5:109
13311 msgid "is the port number (in decimal) to use for this service."
13312 msgstr ""
13313
13314 #. type: Plain text
13315 #: build/C/man5/services.5:120
13316 msgid ""
13317 "is the type of protocol to be used.  This field should match an entry in the "
13318 "B<protocols>(5)  file.  Typical values include B<tcp> and B<udp>."
13319 msgstr ""
13320
13321 #. type: Plain text
13322 #: build/C/man5/services.5:126
13323 msgid ""
13324 "is an optional space or tab separated list of other names for this service.  "
13325 "Again, the names are case sensitive."
13326 msgstr ""
13327
13328 #. type: Plain text
13329 #: build/C/man5/services.5:128
13330 msgid "Either spaces or tabs may be used to separate the fields."
13331 msgstr ""
13332
13333 #. type: Plain text
13334 #: build/C/man5/services.5:132
13335 msgid ""
13336 "Comments are started by the hash sign (#) and continue until the end of the "
13337 "line.  Blank lines are skipped."
13338 msgstr ""
13339
13340 #. type: Plain text
13341 #: build/C/man5/services.5:143
13342 msgid ""
13343 "The I<service-name> should begin in the first column of the file, since "
13344 "leading spaces are not stripped.  I<service-names> can be any printable "
13345 "characters excluding space and tab.  However, a conservative choice of "
13346 "characters should be used to minimize compatibility problems.  E.g., a-z, "
13347 "0-9, and hyphen (-) would seem a sensible choice."
13348 msgstr ""
13349
13350 #. type: Plain text
13351 #: build/C/man5/services.5:152
13352 msgid ""
13353 "Lines not matching this format should not be present in the file.  "
13354 "(Currently, they are silently skipped by B<getservent>(3), "
13355 "B<getservbyname>(3), and B<getservbyport>(3).  However, this behavior should "
13356 "not be relied on.)"
13357 msgstr ""
13358
13359 #. type: Plain text
13360 #: build/C/man5/services.5:169
13361 msgid "A sample B<services> file might look like this:"
13362 msgstr ""
13363
13364 #. type: ta
13365 #: build/C/man5/services.5:172
13366 #, no-wrap
13367 msgid "3i"
13368 msgstr ""
13369
13370 #. type: Plain text
13371 #: build/C/man5/services.5:182
13372 #, no-wrap
13373 msgid ""
13374 "netstat         15/tcp\n"
13375 "qotd            17/tcp          quote\n"
13376 "msp             18/tcp          # message send protocol\n"
13377 "msp             18/udp          # message send protocol\n"
13378 "chargen         19/tcp          ttytst source\n"
13379 "chargen         19/udp          ttytst source\n"
13380 "ftp             21/tcp\n"
13381 "# 22 - unassigned\n"
13382 "telnet          23/tcp\n"
13383 msgstr ""
13384
13385 #. type: Plain text
13386 #: build/C/man5/services.5:188
13387 msgid "The Internet network services list"
13388 msgstr ""
13389
13390 #. type: TP
13391 #: build/C/man5/services.5:188
13392 #, no-wrap
13393 msgid "I<E<lt>netdb.hE<gt>>"
13394 msgstr ""
13395
13396 #.  .SH BUGS
13397 #.  It's not clear when/if the following was ever true;
13398 #.  it isn't true for glibc 2.8:
13399 #.     There is a maximum of 35 aliases, due to the way the
13400 #.     .BR getservent (3)
13401 #.     code is written.
13402 #
13403 #.  It's not clear when/if the following was ever true;
13404 #.  it isn't true for glibc 2.8:
13405 #.     Lines longer than
13406 #.     .B BUFSIZ
13407 #.     (currently 1024) characters will be ignored by
13408 #.     .BR getservent (3),
13409 #.     .BR getservbyname (3),
13410 #.     and
13411 #.     .BR getservbyport (3).
13412 #.     However, this will also cause the next line to be mis-parsed.
13413 #. type: Plain text
13414 #: build/C/man5/services.5:209
13415 msgid "Definition of B<_PATH_SERVICES>"
13416 msgstr ""
13417
13418 #. type: Plain text
13419 #: build/C/man5/services.5:219
13420 msgid ""
13421 "B<listen>(2), B<endservent>(3), B<getservbyname>(3), B<getservbyport>(3), "
13422 "B<getservent>(3), B<setservent>(3), B<inetd.conf>(5), B<protocols>(5), "
13423 "B<inetd>(8)"
13424 msgstr ""
13425
13426 #. type: Plain text
13427 #: build/C/man5/services.5:221
13428 msgid "Assigned Numbers RFC, most recently RFC\\ 1700, (AKA STD0002)"
13429 msgstr ""
13430
13431 #. type: TH
13432 #: build/C/man3/setnetgrent.3:5
13433 #, no-wrap
13434 msgid "SETNETGRENT"
13435 msgstr ""
13436
13437 #. type: TH
13438 #: build/C/man3/setnetgrent.3:5
13439 #, no-wrap
13440 msgid "2007-07-26"
13441 msgstr ""
13442
13443 #. type: Plain text
13444 #: build/C/man3/setnetgrent.3:9
13445 msgid ""
13446 "setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr - handle "
13447 "network group entries"
13448 msgstr ""
13449
13450 #. type: Plain text
13451 #: build/C/man3/setnetgrent.3:14
13452 #, no-wrap
13453 msgid "B<int setnetgrent(const char *>I<netgroup>B<);>\n"
13454 msgstr ""
13455
13456 #. type: Plain text
13457 #: build/C/man3/setnetgrent.3:16
13458 #, no-wrap
13459 msgid "B<void endnetgrent(void);>\n"
13460 msgstr ""
13461
13462 #. type: Plain text
13463 #: build/C/man3/setnetgrent.3:18
13464 #, no-wrap
13465 msgid ""
13466 "B<int getnetgrent(char **>I<host>B<, char **>I<user>B<, char "
13467 "**>I<domain>B<);>\n"
13468 msgstr ""
13469
13470 #. type: Plain text
13471 #: build/C/man3/setnetgrent.3:21
13472 #, no-wrap
13473 msgid ""
13474 "B<int getnetgrent_r(char **>I<host>B<, char **>I<user>B<,>\n"
13475 "B<                  char **>I<domain>B<, char *>I<buf>B<, int "
13476 ">I<buflen>B<);>\n"
13477 msgstr ""
13478
13479 #. type: Plain text
13480 #: build/C/man3/setnetgrent.3:24
13481 #, no-wrap
13482 msgid ""
13483 "B<int innetgr(const char *>I<netgroup>B<, const char *>I<host>B<,>\n"
13484 "B<            const char *>I<user>B<, const char *>I<domain>B<);>\n"
13485 msgstr ""
13486
13487 #. type: Plain text
13488 #: build/C/man3/setnetgrent.3:38
13489 msgid ""
13490 "B<setnetgrent>(), B<endnetgrent>(), B<getnetgrent>(), B<getnetgrent_r>(), "
13491 "B<innetgr>(): _BSD_SOURCE || _SVID_SOURCE"
13492 msgstr ""
13493
13494 #. type: Plain text
13495 #: build/C/man3/setnetgrent.3:52
13496 msgid ""
13497 "The I<netgroup> is a SunOS invention.  A netgroup database is a list of "
13498 "string triples (I<hostname>, I<username>, I<domainname>)  or other netgroup "
13499 "names.  Any of the elements in a triple can be empty, which means that "
13500 "anything matches.  The functions described here allow access to the netgroup "
13501 "databases.  The file I</etc/nsswitch.conf> defines what database is "
13502 "searched."
13503 msgstr ""
13504
13505 #. type: Plain text
13506 #: build/C/man3/setnetgrent.3:72
13507 msgid ""
13508 "The B<setnetgrent>()  call defines the netgroup that will be searched by "
13509 "subsequent B<getnetgrent>()  calls.  The B<getnetgrent>()  function "
13510 "retrieves the next netgroup entry, and returns pointers in I<host>, I<user>, "
13511 "I<domain>.  A NULL pointer means that the corresponding entry matches any "
13512 "string.  The pointers are valid only as long as there is no call to other "
13513 "netgroup-related functions.  To avoid this problem you can use the GNU "
13514 "function B<getnetgrent_r>()  that stores the strings in the supplied "
13515 "buffer.  To free all allocated buffers use B<endnetgrent>()."
13516 msgstr ""
13517
13518 #. type: Plain text
13519 #: build/C/man3/setnetgrent.3:81
13520 msgid ""
13521 "In most cases you only want to check if the triplet (I<hostname>, "
13522 "I<username>, I<domainname>)  is a member of a netgroup.  The function "
13523 "B<innetgr>()  can be used for this without calling the above three "
13524 "functions.  Again, a NULL pointer is a wildcard and matches any string.  The "
13525 "function is thread-safe."
13526 msgstr ""
13527
13528 #. type: Plain text
13529 #: build/C/man3/setnetgrent.3:83
13530 msgid "These functions return 1 on success and 0 for failure."
13531 msgstr ""
13532
13533 #. type: Plain text
13534 #: build/C/man3/setnetgrent.3:85
13535 msgid "I</etc/netgroup>"
13536 msgstr ""
13537
13538 #.  getnetgrent_r() is on Solaris 8 and AIX 5.1, but not the BSDs.
13539 #. type: Plain text
13540 #: build/C/man3/setnetgrent.3:98
13541 msgid ""
13542 "These functions are not in POSIX.1-2001, but B<setnetgrent>(), "
13543 "B<endnetgrent>(), B<getnetgrent>(), and B<innetgr>()  are available on most "
13544 "UNIX systems.  B<getnetgrent_r>()  is not widely available on other systems."
13545 msgstr ""
13546
13547 #. type: Plain text
13548 #: build/C/man3/setnetgrent.3:102
13549 msgid "In the BSD implementation, B<setnetgrent>()  returns void."
13550 msgstr ""
13551
13552 #. type: Plain text
13553 #: build/C/man3/setnetgrent.3:106
13554 msgid "B<sethostent>(3), B<setprotoent>(3), B<setservent>(3)"
13555 msgstr ""
13556
13557 #. type: TH
13558 #: build/C/man2/shutdown.2:38
13559 #, no-wrap
13560 msgid "SHUTDOWN"
13561 msgstr ""
13562
13563 #. type: Plain text
13564 #: build/C/man2/shutdown.2:41
13565 msgid "shutdown - shut down part of a full-duplex connection"
13566 msgstr ""
13567
13568 #. type: Plain text
13569 #: build/C/man2/shutdown.2:45
13570 msgid "B<int shutdown(int >I<sockfd>B<, int >I<how>B<);>"
13571 msgstr ""
13572
13573 #. type: Plain text
13574 #: build/C/man2/shutdown.2:67
13575 msgid ""
13576 "The B<shutdown>()  call causes all or part of a full-duplex connection on "
13577 "the socket associated with I<sockfd> to be shut down.  If I<how> is "
13578 "B<SHUT_RD>, further receptions will be disallowed.  If I<how> is B<SHUT_WR>, "
13579 "further transmissions will be disallowed.  If I<how> is B<SHUT_RDWR>, "
13580 "further receptions and transmissions will be disallowed."
13581 msgstr ""
13582
13583 #. type: Plain text
13584 #: build/C/man2/shutdown.2:77
13585 msgid "I<sockfd> is not a valid descriptor."
13586 msgstr ""
13587
13588 #. type: Plain text
13589 #: build/C/man2/shutdown.2:80
13590 msgid "The specified socket is not connected."
13591 msgstr ""
13592
13593 #. type: Plain text
13594 #: build/C/man2/shutdown.2:84
13595 msgid "I<sockfd> is a file, not a socket."
13596 msgstr ""
13597
13598 #. type: Plain text
13599 #: build/C/man2/shutdown.2:88
13600 msgid ""
13601 "POSIX.1-2001, 4.4BSD (the B<shutdown>()  function call first appeared in "
13602 "4.2BSD)."
13603 msgstr ""
13604
13605 #. type: Plain text
13606 #: build/C/man2/shutdown.2:97
13607 msgid ""
13608 "The constants B<SHUT_RD>, B<SHUT_WR>, B<SHUT_RDWR> have the value 0, 1, 2, "
13609 "respectively, and are defined in I<E<lt>sys/socket.hE<gt>> since "
13610 "glibc-2.1.91."
13611 msgstr ""
13612
13613 #. type: Plain text
13614 #: build/C/man2/shutdown.2:101
13615 msgid "B<connect>(2), B<socket>(2), B<socket>(7)"
13616 msgstr ""
13617
13618 #. type: TH
13619 #: build/C/man7/tcp.7:16
13620 #, no-wrap
13621 msgid "TCP"
13622 msgstr ""
13623
13624 #. type: Plain text
13625 #: build/C/man7/tcp.7:19
13626 msgid "tcp - TCP protocol"
13627 msgstr ""
13628
13629 #. type: Plain text
13630 #: build/C/man7/tcp.7:25
13631 msgid "B<#include E<lt>netinet/tcp.hE<gt>>"
13632 msgstr ""
13633
13634 #. type: Plain text
13635 #: build/C/man7/tcp.7:27
13636 msgid "B<tcp_socket = socket(AF_INET, SOCK_STREAM, 0);>"
13637 msgstr ""
13638
13639 #. type: Plain text
13640 #: build/C/man7/tcp.7:40
13641 msgid ""
13642 "This is an implementation of the TCP protocol defined in RFC\\ 793, RFC\\ "
13643 "1122 and RFC\\ 2001 with the NewReno and SACK extensions.  It provides a "
13644 "reliable, stream-oriented, full-duplex connection between two sockets on top "
13645 "of B<ip>(7), for both v4 and v6 versions.  TCP guarantees that the data "
13646 "arrives in order and retransmits lost packets.  It generates and checks a "
13647 "per-packet checksum to catch transmission errors.  TCP does not preserve "
13648 "record boundaries."
13649 msgstr ""
13650
13651 #. type: Plain text
13652 #: build/C/man7/tcp.7:59
13653 msgid ""
13654 "A newly created TCP socket has no remote or local address and is not fully "
13655 "specified.  To create an outgoing TCP connection use B<connect>(2)  to "
13656 "establish a connection to another TCP socket.  To receive new incoming "
13657 "connections, first B<bind>(2)  the socket to a local address and port and "
13658 "then call B<listen>(2)  to put the socket into the listening state.  After "
13659 "that a new socket for each incoming connection can be accepted using "
13660 "B<accept>(2).  A socket which has had B<accept>(2)  or B<connect>(2)  "
13661 "successfully called on it is fully specified and may transmit data.  Data "
13662 "cannot be transmitted on listening or not yet connected sockets."
13663 msgstr ""
13664
13665 #. type: Plain text
13666 #: build/C/man7/tcp.7:79
13667 msgid ""
13668 "Linux supports RFC\\ 1323 TCP high performance extensions.  These include "
13669 "Protection Against Wrapped Sequence Numbers (PAWS), Window Scaling and "
13670 "Timestamps.  Window scaling allows the use of large (E<gt> 64K) TCP windows "
13671 "in order to support links with high latency or bandwidth.  To make use of "
13672 "them, the send and receive buffer sizes must be increased.  They can be set "
13673 "globally with the I</proc/sys/net/ipv4/tcp_wmem> and "
13674 "I</proc/sys/net/ipv4/tcp_rmem> files, or on individual sockets by using the "
13675 "B<SO_SNDBUF> and B<SO_RCVBUF> socket options with the B<setsockopt>(2)  "
13676 "call."
13677 msgstr ""
13678
13679 #. type: Plain text
13680 #: build/C/man7/tcp.7:110
13681 msgid ""
13682 "The maximum sizes for socket buffers declared via the B<SO_SNDBUF> and "
13683 "B<SO_RCVBUF> mechanisms are limited by the values in the "
13684 "I</proc/sys/net/core/rmem_max> and I</proc/sys/net/core/wmem_max> files.  "
13685 "Note that TCP actually allocates twice the size of the buffer requested in "
13686 "the B<setsockopt>(2)  call, and so a succeeding B<getsockopt>(2)  call will "
13687 "not return the same size of buffer as requested in the B<setsockopt>(2)  "
13688 "call.  TCP uses the extra space for administrative purposes and internal "
13689 "kernel structures, and the I</proc> file values reflect the larger sizes "
13690 "compared to the actual TCP windows.  On individual connections, the socket "
13691 "buffer size must be set prior to the B<listen>(2)  or B<connect>(2)  calls "
13692 "in order to have it take effect.  See B<socket>(7)  for more information."
13693 msgstr ""
13694
13695 #. type: Plain text
13696 #: build/C/man7/tcp.7:142
13697 msgid ""
13698 "TCP supports urgent data.  Urgent data is used to signal the receiver that "
13699 "some important message is part of the data stream and that it should be "
13700 "processed as soon as possible.  To send urgent data specify the B<MSG_OOB> "
13701 "option to B<send>(2).  When urgent data is received, the kernel sends a "
13702 "B<SIGURG> signal to the process or process group that has been set as the "
13703 "socket \"owner\" using the B<SIOCSPGRP> or B<FIOSETOWN> ioctls (or the "
13704 "POSIX.1-2001-specified B<fcntl>(2)  B<F_SETOWN> operation).  When the "
13705 "B<SO_OOBINLINE> socket option is enabled, urgent data is put into the normal "
13706 "data stream (a program can test for its location using the B<SIOCATMARK> "
13707 "ioctl described below), otherwise it can be only received when the "
13708 "B<MSG_OOB> flag is set for B<recv>(2)  or B<recvmsg>(2)."
13709 msgstr ""
13710
13711 #. type: Plain text
13712 #: build/C/man7/tcp.7:150
13713 msgid ""
13714 "Linux 2.4 introduced a number of changes for improved throughput and "
13715 "scaling, as well as enhanced functionality.  Some of these features include "
13716 "support for zero-copy B<sendfile>(2), Explicit Congestion Notification, new "
13717 "management of TIME_WAIT sockets, keep-alive socket options and support for "
13718 "Duplicate SACK extensions."
13719 msgstr ""
13720
13721 #. type: SS
13722 #: build/C/man7/tcp.7:150
13723 #, no-wrap
13724 msgid "Address Formats"
13725 msgstr ""
13726
13727 #. type: Plain text
13728 #: build/C/man7/tcp.7:159
13729 msgid ""
13730 "TCP is built on top of IP (see B<ip>(7)).  The address formats defined by "
13731 "B<ip>(7)  apply to TCP.  TCP only supports point-to-point communication; "
13732 "broadcasting and multicasting are not supported."
13733 msgstr ""
13734
13735 #. type: Plain text
13736 #: build/C/man7/tcp.7:171
13737 msgid ""
13738 "System-wide TCP parameter settings can be accessed by files in the directory "
13739 "I</proc/sys/net/ipv4/>.  In addition, most IP I</proc> interfaces also apply "
13740 "to TCP; see B<ip>(7).  Variables described as I<Boolean> take an integer "
13741 "value, with a nonzero value (\"true\") meaning that the corresponding option "
13742 "is enabled, and a zero value (\"false\")  meaning that the option is "
13743 "disabled."
13744 msgstr ""
13745
13746 #. type: TP
13747 #: build/C/man7/tcp.7:171
13748 #, no-wrap
13749 msgid "I<tcp_abc> (Integer; default: 0; since Linux 2.6.15)"
13750 msgstr ""
13751
13752 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
13753 #. type: Plain text
13754 #: build/C/man7/tcp.7:179
13755 msgid ""
13756 "Control the Appropriate Byte Count (ABC), defined in RFC 3465.  ABC is a way "
13757 "of increasing the congestion window (I<cwnd>)  more slowly in response to "
13758 "partial acknowledgments.  Possible values are:"
13759 msgstr ""
13760
13761 #. type: IP
13762 #: build/C/man7/tcp.7:180 build/C/man7/tcp.7:349 build/C/man7/tcp.7:370 build/C/man7/tcp.7:514
13763 #, no-wrap
13764 msgid "0"
13765 msgstr ""
13766
13767 #. type: Plain text
13768 #: build/C/man7/tcp.7:184
13769 msgid "increase I<cwnd> once per acknowledgment (no ABC)"
13770 msgstr ""
13771
13772 #. type: IP
13773 #: build/C/man7/tcp.7:184 build/C/man7/tcp.7:351 build/C/man7/tcp.7:377 build/C/man7/tcp.7:516
13774 #, no-wrap
13775 msgid "1"
13776 msgstr ""
13777
13778 #. type: Plain text
13779 #: build/C/man7/tcp.7:188
13780 msgid "increase I<cwnd> once per acknowledgment of full sized segment"
13781 msgstr ""
13782
13783 #. type: IP
13784 #: build/C/man7/tcp.7:188 build/C/man7/tcp.7:353 build/C/man7/tcp.7:384 build/C/man7/tcp.7:518
13785 #, no-wrap
13786 msgid "2"
13787 msgstr ""
13788
13789 #. type: Plain text
13790 #: build/C/man7/tcp.7:193
13791 msgid ""
13792 "allow increase I<cwnd> by two if acknowledgment is of two segments to "
13793 "compensate for delayed acknowledgments."
13794 msgstr ""
13795
13796 #. type: TP
13797 #: build/C/man7/tcp.7:194
13798 #, no-wrap
13799 msgid "I<tcp_abort_on_overflow> (Boolean; default: disabled; since Linux 2.4)"
13800 msgstr ""
13801
13802 #.  Since 2.3.41
13803 #. type: Plain text
13804 #: build/C/man7/tcp.7:206
13805 msgid ""
13806 "Enable resetting connections if the listening service is too slow and unable "
13807 "to keep up and accept them.  It means that if overflow occurred due to a "
13808 "burst, the connection will recover.  Enable this option I<only> if you are "
13809 "really sure that the listening daemon cannot be tuned to accept connections "
13810 "faster.  Enabling this option can harm the clients of your server."
13811 msgstr ""
13812
13813 #. type: TP
13814 #: build/C/man7/tcp.7:206
13815 #, no-wrap
13816 msgid "I<tcp_adv_win_scale> (integer; default: 2; since Linux 2.4)"
13817 msgstr ""
13818
13819 #.  Since 2.4.0-test7
13820 #. type: Plain text
13821 #: build/C/man7/tcp.7:218
13822 msgid ""
13823 "Count buffering overhead as I<bytes/2^tcp_adv_win_scale>, if "
13824 "I<tcp_adv_win_scale> is greater than 0; or "
13825 "I<bytes-bytes/2^(-tcp_adv_win_scale)>, if I<tcp_adv_win_scale> is less than "
13826 "or equal to zero."
13827 msgstr ""
13828
13829 #. type: Plain text
13830 #: build/C/man7/tcp.7:231
13831 msgid ""
13832 "The socket receive buffer space is shared between the application and "
13833 "kernel.  TCP maintains part of the buffer as the TCP window, this is the "
13834 "size of the receive window advertised to the other end.  The rest of the "
13835 "space is used as the \"application\" buffer, used to isolate the network "
13836 "from scheduling and application latencies.  The I<tcp_adv_win_scale> default "
13837 "value of 2 implies that the space used for the application buffer is one "
13838 "fourth that of the total."
13839 msgstr ""
13840
13841 #. type: TP
13842 #: build/C/man7/tcp.7:231
13843 #, no-wrap
13844 msgid ""
13845 "I<tcp_allowed_congestion_control> (String; default: see text; since Linux "
13846 "2.4.20)"
13847 msgstr ""
13848
13849 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
13850 #.  FIXME How are the items in this delimited? Null bytes, spaces, commas?
13851 #. type: Plain text
13852 #: build/C/man7/tcp.7:243
13853 msgid ""
13854 "Show/set the congestion control algorithm choices available to unprivileged "
13855 "processes (see the description of the B<TCP_CONGESTION> socket option).  The "
13856 "list is a subset of those listed in I<tcp_available_congestion_control>.  "
13857 "The default value for this list is \"reno\" plus the default setting of "
13858 "I<tcp_congestion_control>."
13859 msgstr ""
13860
13861 #. type: TP
13862 #: build/C/man7/tcp.7:243
13863 #, no-wrap
13864 msgid "I<tcp_available_congestion_control> (String; read-only; since Linux 2.4.20)"
13865 msgstr ""
13866
13867 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
13868 #.  FIXME How are the items in this delimited? Null bytes, spaces, commas?
13869 #. type: Plain text
13870 #: build/C/man7/tcp.7:253
13871 msgid ""
13872 "Show a list of the congestion-control algorithms that are registered.  This "
13873 "list is a limiting set for the list in I<tcp_allowed_congestion_control>.  "
13874 "More congestion-control algorithms may be available as modules, but not "
13875 "loaded."
13876 msgstr ""
13877
13878 #. type: TP
13879 #: build/C/man7/tcp.7:253
13880 #, no-wrap
13881 msgid "I<tcp_app_win> (integer; default: 31; since Linux 2.4)"
13882 msgstr ""
13883
13884 #.  Since 2.4.0-test7
13885 #. type: Plain text
13886 #: build/C/man7/tcp.7:258
13887 msgid ""
13888 "This variable defines how many bytes of the TCP window are reserved for "
13889 "buffering overhead."
13890 msgstr ""
13891
13892 #
13893 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
13894 #. type: Plain text
13895 #: build/C/man7/tcp.7:264
13896 msgid ""
13897 "A maximum of (I<window/2^tcp_app_win>, mss) bytes in the window are reserved "
13898 "for the application buffer.  A value of 0 implies that no amount is "
13899 "reserved."
13900 msgstr ""
13901
13902 #. type: TP
13903 #: build/C/man7/tcp.7:264
13904 #, no-wrap
13905 msgid "I<tcp_base_mss> (Integer; default: 512; since Linux 2.6.17)"
13906 msgstr ""
13907
13908 #
13909 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
13910 #. type: Plain text
13911 #: build/C/man7/tcp.7:273
13912 msgid ""
13913 "The initial value of I<search_low> to be used by the packetization layer "
13914 "Path MTU discovery (MTU probing).  If MTU probing is enabled, this is the "
13915 "initial MSS used by the connection."
13916 msgstr ""
13917
13918 #. type: TP
13919 #: build/C/man7/tcp.7:273
13920 #, no-wrap
13921 msgid "I<tcp_bic> (Boolean; default: disabled; Linux 2.4.27/2.6.6 to 2.6.13)"
13922 msgstr ""
13923
13924 #
13925 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
13926 #. type: Plain text
13927 #: build/C/man7/tcp.7:287
13928 msgid ""
13929 "Enable BIC TCP congestion control algorithm.  BIC-TCP is a sender-side only "
13930 "change that ensures a linear RTT fairness under large windows while offering "
13931 "both scalability and bounded TCP-friendliness.  The protocol combines two "
13932 "schemes called additive increase and binary search increase.  When the "
13933 "congestion window is large, additive increase with a large increment ensures "
13934 "linear RTT fairness as well as good scalability.  Under small congestion "
13935 "windows, binary search increase provides TCP friendliness."
13936 msgstr ""
13937
13938 #. type: TP
13939 #: build/C/man7/tcp.7:287
13940 #, no-wrap
13941 msgid "I<tcp_bic_low_window> (integer; default: 14; Linux 2.4.27/2.6.6 to 2.6.13)"
13942 msgstr ""
13943
13944 #
13945 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
13946 #. type: Plain text
13947 #: build/C/man7/tcp.7:294
13948 msgid ""
13949 "Set the threshold window (in packets) where BIC TCP starts to adjust the "
13950 "congestion window.  Below this threshold BIC TCP behaves the same as the "
13951 "default TCP Reno."
13952 msgstr ""
13953
13954 #. type: TP
13955 #: build/C/man7/tcp.7:294
13956 #, no-wrap
13957 msgid ""
13958 "I<tcp_bic_fast_convergence> (Boolean; default: enabled; Linux 2.4.27/2.6.6 "
13959 "to 2.6.13)"
13960 msgstr ""
13961
13962 #. type: Plain text
13963 #: build/C/man7/tcp.7:298
13964 msgid ""
13965 "Force BIC TCP to more quickly respond to changes in congestion window.  "
13966 "Allows two flows sharing the same connection to converge more rapidly."
13967 msgstr ""
13968
13969 #. type: TP
13970 #: build/C/man7/tcp.7:298
13971 #, no-wrap
13972 msgid "I<tcp_congestion_control> (String; default: see text; since Linux 2.4.13)"
13973 msgstr ""
13974
13975 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
13976 #. type: Plain text
13977 #: build/C/man7/tcp.7:305
13978 msgid ""
13979 "Set the default congestion-control algorithm to be used for new "
13980 "connections.  The algorithm \"reno\" is always available, but additional "
13981 "choices may be available depending on kernel configuration.  The default "
13982 "value for this file is set as part of kernel configuration."
13983 msgstr ""
13984
13985 #. type: TP
13986 #: build/C/man7/tcp.7:305
13987 #, no-wrap
13988 msgid "I<tcp_dma_copybreak> (integer; default: 4096; since Linux 2.6.24)"
13989 msgstr ""
13990
13991 #. type: Plain text
13992 #: build/C/man7/tcp.7:312
13993 msgid ""
13994 "Lower limit, in bytes, of the size of socket reads that will be offloaded to "
13995 "a DMA copy engine, if one is present in the system and the kernel was "
13996 "configured with the B<CONFIG_NET_DMA> option."
13997 msgstr ""
13998
13999 #. type: TP
14000 #: build/C/man7/tcp.7:312
14001 #, no-wrap
14002 msgid "I<tcp_dsack> (Boolean; default: enabled; since Linux 2.4)"
14003 msgstr ""
14004
14005 #.  Since 2.4.0-test7
14006 #. type: Plain text
14007 #: build/C/man7/tcp.7:316
14008 msgid "Enable RFC\\ 2883 TCP Duplicate SACK support."
14009 msgstr ""
14010
14011 #. type: TP
14012 #: build/C/man7/tcp.7:316
14013 #, no-wrap
14014 msgid "I<tcp_ecn> (Boolean; default: disabled; since Linux 2.4)"
14015 msgstr ""
14016
14017 #.  Since 2.4.0-test7
14018 #. type: Plain text
14019 #: build/C/man7/tcp.7:323
14020 msgid ""
14021 "Enable RFC\\ 2884 Explicit Congestion Notification.  When enabled, "
14022 "connectivity to some destinations could be affected due to older, "
14023 "misbehaving routers along the path causing connections to be dropped."
14024 msgstr ""
14025
14026 #. type: TP
14027 #: build/C/man7/tcp.7:323
14028 #, no-wrap
14029 msgid "I<tcp_fack> (Boolean; default: enabled; since Linux 2.2)"
14030 msgstr ""
14031
14032 #.  Since 2.1.92
14033 #. type: Plain text
14034 #: build/C/man7/tcp.7:327
14035 msgid "Enable TCP Forward Acknowledgement support."
14036 msgstr ""
14037
14038 #. type: TP
14039 #: build/C/man7/tcp.7:327
14040 #, no-wrap
14041 msgid "I<tcp_fin_timeout> (integer; default: 60; since Linux 2.2)"
14042 msgstr ""
14043
14044 #.  Since 2.1.53
14045 #
14046 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14047 #. type: Plain text
14048 #: build/C/man7/tcp.7:337
14049 msgid ""
14050 "This specifies how many seconds to wait for a final FIN packet before the "
14051 "socket is forcibly closed.  This is strictly a violation of the TCP "
14052 "specification, but required to prevent denial-of-service attacks.  In Linux "
14053 "2.2, the default value was 180."
14054 msgstr ""
14055
14056 #. type: TP
14057 #: build/C/man7/tcp.7:337
14058 #, no-wrap
14059 msgid "I<tcp_frto> (integer; default: 0; since Linux 2.4.21/2.6)"
14060 msgstr ""
14061
14062 #.  Since 2.4.21/2.5.43
14063 #. type: Plain text
14064 #: build/C/man7/tcp.7:346
14065 msgid ""
14066 "Enable F-RTO, an enhanced recovery algorithm for TCP retransmission timeouts "
14067 "(RTOs).  It is particularly beneficial in wireless environments where packet "
14068 "loss is typically due to random radio interference rather than intermediate "
14069 "router congestion.  See RFC 4138 for more details."
14070 msgstr ""
14071
14072 #. type: Plain text
14073 #: build/C/man7/tcp.7:348
14074 msgid "This file can have one of the following values:"
14075 msgstr ""
14076
14077 #. type: Plain text
14078 #: build/C/man7/tcp.7:351
14079 msgid "Disabled."
14080 msgstr ""
14081
14082 #. type: Plain text
14083 #: build/C/man7/tcp.7:353
14084 msgid "The basic version F-RTO algorithm is enabled."
14085 msgstr ""
14086
14087 #. type: Plain text
14088 #: build/C/man7/tcp.7:358
14089 msgid ""
14090 "Enable SACK-enhanced F-RTO if flow uses SACK.  The basic version can be used "
14091 "also when SACK is in use though in that case scenario(s) exists where F-RTO "
14092 "interacts badly with the packet counting of the SACK-enabled TCP flow."
14093 msgstr ""
14094
14095 #. type: Plain text
14096 #: build/C/man7/tcp.7:362
14097 msgid ""
14098 "Before Linux 2.6.22, this parameter was a Boolean value, supporting just "
14099 "values 0 and 1 above."
14100 msgstr ""
14101
14102 #. type: TP
14103 #: build/C/man7/tcp.7:362
14104 #, no-wrap
14105 msgid "I<tcp_frto_response> (integer; default: 0; since Linux 2.6.22)"
14106 msgstr ""
14107
14108 #. type: Plain text
14109 #: build/C/man7/tcp.7:369
14110 msgid ""
14111 "When F-RTO has detected that a TCP retransmission timeout was spurious (i.e, "
14112 "the timeout would have been avoided had TCP set a longer retransmission "
14113 "timeout), TCP has several options concerning what to do next.  Possible "
14114 "values are:"
14115 msgstr ""
14116
14117 #. type: Plain text
14118 #: build/C/man7/tcp.7:377
14119 msgid ""
14120 "Rate halving based; a smooth and conservative response, results in halved "
14121 "congestion window (I<cwnd>)  and slow-start threshold (I<ssthresh>)  after "
14122 "one RTT."
14123 msgstr ""
14124
14125 #. type: Plain text
14126 #: build/C/man7/tcp.7:384
14127 msgid ""
14128 "Very conservative response; not recommended because even though being valid, "
14129 "it interacts poorly with the rest of Linux TCP; halves I<cwnd> and "
14130 "I<ssthresh> immediately."
14131 msgstr ""
14132
14133 #. type: Plain text
14134 #: build/C/man7/tcp.7:393
14135 msgid ""
14136 "Aggressive response; undoes congestion-control measures that are now known "
14137 "to be unnecessary (ignoring the possibility of a lost retransmission that "
14138 "would require TCP to be more cautious); I<cwnd> and I<ssthresh> are restored "
14139 "to the values prior to timeout."
14140 msgstr ""
14141
14142 #. type: TP
14143 #: build/C/man7/tcp.7:394
14144 #, no-wrap
14145 msgid "I<tcp_keepalive_intvl> (integer; default: 75; since Linux 2.4)"
14146 msgstr ""
14147
14148 #.  Since 2.3.18
14149 #. type: Plain text
14150 #: build/C/man7/tcp.7:398
14151 msgid "The number of seconds between TCP keep-alive probes."
14152 msgstr ""
14153
14154 #. type: TP
14155 #: build/C/man7/tcp.7:398
14156 #, no-wrap
14157 msgid "I<tcp_keepalive_probes> (integer; default: 9; since Linux 2.2)"
14158 msgstr ""
14159
14160 #.  Since 2.1.43
14161 #. type: Plain text
14162 #: build/C/man7/tcp.7:404
14163 msgid ""
14164 "The maximum number of TCP keep-alive probes to send before giving up and "
14165 "killing the connection if no response is obtained from the other end."
14166 msgstr ""
14167
14168 #. type: TP
14169 #: build/C/man7/tcp.7:404
14170 #, no-wrap
14171 msgid "I<tcp_keepalive_time> (integer; default: 7200; since Linux 2.2)"
14172 msgstr ""
14173
14174 #.  Since 2.1.43
14175 #. type: Plain text
14176 #: build/C/man7/tcp.7:416
14177 msgid ""
14178 "The number of seconds a connection needs to be idle before TCP begins "
14179 "sending out keep-alive probes.  Keep-alives are only sent when the "
14180 "B<SO_KEEPALIVE> socket option is enabled.  The default value is 7200 seconds "
14181 "(2 hours).  An idle connection is terminated after approximately an "
14182 "additional 11 minutes (9 probes an interval of 75 seconds apart) when "
14183 "keep-alive is enabled."
14184 msgstr ""
14185
14186 #
14187 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14188 #. type: Plain text
14189 #: build/C/man7/tcp.7:421
14190 msgid ""
14191 "Note that underlying connection tracking mechanisms and application timeouts "
14192 "may be much shorter."
14193 msgstr ""
14194
14195 #. type: TP
14196 #: build/C/man7/tcp.7:421
14197 #, no-wrap
14198 msgid "I<tcp_low_latency> (Boolean; default: disabled; since Linux 2.4.21/2.6)"
14199 msgstr ""
14200
14201 #.  Since 2.4.21/2.5.60
14202 #. type: Plain text
14203 #: build/C/man7/tcp.7:429
14204 msgid ""
14205 "If enabled, the TCP stack makes decisions that prefer lower latency as "
14206 "opposed to higher throughput.  It this option is disabled, then higher "
14207 "throughput is preferred.  An example of an application where this default "
14208 "should be changed would be a Beowulf compute cluster."
14209 msgstr ""
14210
14211 #. type: TP
14212 #: build/C/man7/tcp.7:429
14213 #, no-wrap
14214 msgid "I<tcp_max_orphans> (integer; default: see below; since Linux 2.4)"
14215 msgstr ""
14216
14217 #.  Since 2.3.41
14218 #. type: Plain text
14219 #: build/C/man7/tcp.7:443
14220 msgid ""
14221 "The maximum number of orphaned (not attached to any user file handle) TCP "
14222 "sockets allowed in the system.  When this number is exceeded, the orphaned "
14223 "connection is reset and a warning is printed.  This limit exists only to "
14224 "prevent simple denial-of-service attacks.  Lowering this limit is not "
14225 "recommended.  Network conditions might require you to increase the number of "
14226 "orphans allowed, but note that each orphan can eat up to ~64K of unswappable "
14227 "memory.  The default initial value is set equal to the kernel parameter "
14228 "NR_FILE.  This initial default is adjusted depending on the memory in the "
14229 "system."
14230 msgstr ""
14231
14232 #. type: TP
14233 #: build/C/man7/tcp.7:443
14234 #, no-wrap
14235 msgid "I<tcp_max_syn_backlog> (integer; default: see below; since Linux 2.2)"
14236 msgstr ""
14237
14238 #.  Since 2.1.53
14239 #. type: Plain text
14240 #: build/C/man7/tcp.7:460
14241 msgid ""
14242 "The maximum number of queued connection requests which have still not "
14243 "received an acknowledgement from the connecting client.  If this number is "
14244 "exceeded, the kernel will begin dropping requests.  The default value of 256 "
14245 "is increased to 1024 when the memory present in the system is adequate or "
14246 "greater (E<gt>= 128Mb), and reduced to 128 for those systems with very low "
14247 "memory (E<lt>= 32Mb).  It is recommended that if this needs to be increased "
14248 "above 1024, TCP_SYNQ_HSIZE in I<include/net/tcp.h> be modified to keep "
14249 "TCP_SYNQ_HSIZE*16E<lt>=tcp_max_syn_backlog, and the kernel be recompiled."
14250 msgstr ""
14251
14252 #. type: TP
14253 #: build/C/man7/tcp.7:460
14254 #, no-wrap
14255 msgid "I<tcp_max_tw_buckets> (integer; default: see below; since Linux 2.4)"
14256 msgstr ""
14257
14258 #.  Since 2.3.41
14259 #. type: Plain text
14260 #: build/C/man7/tcp.7:470
14261 msgid ""
14262 "The maximum number of sockets in TIME_WAIT state allowed in the system.  "
14263 "This limit exists only to prevent simple denial-of-service attacks.  The "
14264 "default value of NR_FILE*2 is adjusted depending on the memory in the "
14265 "system.  If this number is exceeded, the socket is closed and a warning is "
14266 "printed."
14267 msgstr ""
14268
14269 #. type: TP
14270 #: build/C/man7/tcp.7:470
14271 #, no-wrap
14272 msgid "I<tcp_moderate_rcvbuf> (Boolean; default: enabled; since Linux 2.4.17/2.6.7)"
14273 msgstr ""
14274
14275 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14276 #. type: Plain text
14277 #: build/C/man7/tcp.7:477
14278 msgid ""
14279 "If enabled, TCP performs receive buffer auto-tuning, attempting to "
14280 "automatically size the buffer (no greater than I<tcp_rmem[2]>)  to match the "
14281 "size required by the path for full throughput."
14282 msgstr ""
14283
14284 #. type: TP
14285 #: build/C/man7/tcp.7:477
14286 #, no-wrap
14287 msgid "I<tcp_mem> (since Linux 2.4)"
14288 msgstr ""
14289
14290 #.  Since 2.4.0-test7
14291 #. type: Plain text
14292 #: build/C/man7/tcp.7:489
14293 msgid ""
14294 "This is a vector of 3 integers: [low, pressure, high].  These bounds, "
14295 "measured in units of the system page size, are used by TCP to track its "
14296 "memory usage.  The defaults are calculated at boot time from the amount of "
14297 "available memory.  (TCP can only use I<low memory> for this, which is "
14298 "limited to around 900 megabytes on 32-bit systems.  64-bit systems do not "
14299 "suffer this limitation.)"
14300 msgstr ""
14301
14302 #. type: TP
14303 #: build/C/man7/tcp.7:490
14304 #, no-wrap
14305 msgid "I<low>"
14306 msgstr ""
14307
14308 #. type: Plain text
14309 #: build/C/man7/tcp.7:494
14310 msgid ""
14311 "TCP doesn't regulate its memory allocation when the number of pages it has "
14312 "allocated globally is below this number."
14313 msgstr ""
14314
14315 #. type: TP
14316 #: build/C/man7/tcp.7:494 build/C/man7/udp.7:145
14317 #, no-wrap
14318 msgid "I<pressure>"
14319 msgstr ""
14320
14321 #. type: Plain text
14322 #: build/C/man7/tcp.7:503
14323 msgid ""
14324 "When the amount of memory allocated by TCP exceeds this number of pages, TCP "
14325 "moderates its memory consumption.  This memory pressure state is exited once "
14326 "the number of pages allocated falls below the I<low> mark."
14327 msgstr ""
14328
14329 #. type: TP
14330 #: build/C/man7/tcp.7:503
14331 #, no-wrap
14332 msgid "I<high>"
14333 msgstr ""
14334
14335 #. type: Plain text
14336 #: build/C/man7/tcp.7:507
14337 msgid ""
14338 "The maximum number of pages, globally, that TCP will allocate.  This value "
14339 "overrides any other limits imposed by the kernel."
14340 msgstr ""
14341
14342 #. type: TP
14343 #: build/C/man7/tcp.7:508
14344 #, no-wrap
14345 msgid "I<tcp_mtu_probing> (integer; default: 0; since Linux 2.6.17)"
14346 msgstr ""
14347
14348 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14349 #. type: Plain text
14350 #: build/C/man7/tcp.7:513
14351 msgid ""
14352 "This parameter controls TCP Packetization-Layer Path MTU Discovery.  The "
14353 "following values may be assigned to the file:"
14354 msgstr ""
14355
14356 #. type: Plain text
14357 #: build/C/man7/tcp.7:516
14358 msgid "Disabled"
14359 msgstr ""
14360
14361 #. type: Plain text
14362 #: build/C/man7/tcp.7:518
14363 msgid "Disabled by default, enabled when an ICMP black hole detected"
14364 msgstr ""
14365
14366 #. type: Plain text
14367 #: build/C/man7/tcp.7:521
14368 msgid "Always enabled, use initial MSS of I<tcp_base_mss>."
14369 msgstr ""
14370
14371 #. type: TP
14372 #: build/C/man7/tcp.7:522
14373 #, no-wrap
14374 msgid "I<tcp_no_metrics_save> (Boolean; default: disabled; since Linux 2.6.6)"
14375 msgstr ""
14376
14377 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14378 #. type: Plain text
14379 #: build/C/man7/tcp.7:533
14380 msgid ""
14381 "By default, TCP saves various connection metrics in the route cache when the "
14382 "connection closes, so that connections established in the near future can "
14383 "use these to set initial conditions.  Usually, this increases overall "
14384 "performance, but it may sometimes cause performance degradation.  If "
14385 "I<tcp_no_metrics_save> is enabled, TCP will not cache metrics on closing "
14386 "connections."
14387 msgstr ""
14388
14389 #. type: TP
14390 #: build/C/man7/tcp.7:533
14391 #, no-wrap
14392 msgid "I<tcp_orphan_retries> (integer; default: 8; since Linux 2.4)"
14393 msgstr ""
14394
14395 #.  Since 2.3.41
14396 #. type: Plain text
14397 #: build/C/man7/tcp.7:538
14398 msgid ""
14399 "The maximum number of attempts made to probe the other end of a connection "
14400 "which has been closed by our end."
14401 msgstr ""
14402
14403 #. type: TP
14404 #: build/C/man7/tcp.7:538
14405 #, no-wrap
14406 msgid "I<tcp_reordering> (integer; default: 3; since Linux 2.4)"
14407 msgstr ""
14408
14409 #.  Since 2.4.0-test7
14410 #. type: Plain text
14411 #: build/C/man7/tcp.7:547
14412 msgid ""
14413 "The maximum a packet can be reordered in a TCP packet stream without TCP "
14414 "assuming packet loss and going into slow start.  It is not advisable to "
14415 "change this number.  This is a packet reordering detection metric designed "
14416 "to minimize unnecessary back off and retransmits provoked by reordering of "
14417 "packets on a connection."
14418 msgstr ""
14419
14420 #. type: TP
14421 #: build/C/man7/tcp.7:547
14422 #, no-wrap
14423 msgid "I<tcp_retrans_collapse> (Boolean; default: enabled; since Linux 2.2)"
14424 msgstr ""
14425
14426 #.  Since 2.1.96
14427 #. type: Plain text
14428 #: build/C/man7/tcp.7:551
14429 msgid "Try to send full-sized packets during retransmit."
14430 msgstr ""
14431
14432 #. type: TP
14433 #: build/C/man7/tcp.7:551
14434 #, no-wrap
14435 msgid "I<tcp_retries1> (integer; default: 3; since Linux 2.2)"
14436 msgstr ""
14437
14438 #.  Since 2.1.43
14439 #. type: Plain text
14440 #: build/C/man7/tcp.7:561
14441 msgid ""
14442 "The number of times TCP will attempt to retransmit a packet on an "
14443 "established connection normally, without the extra effort of getting the "
14444 "network layers involved.  Once we exceed this number of retransmits, we "
14445 "first have the network layer update the route if possible before each new "
14446 "retransmit.  The default is the RFC specified minimum of 3."
14447 msgstr ""
14448
14449 #. type: TP
14450 #: build/C/man7/tcp.7:561
14451 #, no-wrap
14452 msgid "I<tcp_retries2> (integer; default: 15; since Linux 2.2)"
14453 msgstr ""
14454
14455 #.  Since 2.1.43
14456 #. type: Plain text
14457 #: build/C/man7/tcp.7:571
14458 msgid ""
14459 "The maximum number of times a TCP packet is retransmitted in established "
14460 "state before giving up.  The default value is 15, which corresponds to a "
14461 "duration of approximately between 13 to 30 minutes, depending on the "
14462 "retransmission timeout.  The RFC\\ 1122 specified minimum limit of 100 "
14463 "seconds is typically deemed too short."
14464 msgstr ""
14465
14466 #. type: TP
14467 #: build/C/man7/tcp.7:571
14468 #, no-wrap
14469 msgid "I<tcp_rfc1337> (Boolean; default: disabled; since Linux 2.2)"
14470 msgstr ""
14471
14472 #.  Since 2.1.90
14473 #. type: Plain text
14474 #: build/C/man7/tcp.7:579
14475 msgid ""
14476 "Enable TCP behavior conformant with RFC\\ 1337.  When disabled, if a RST is "
14477 "received in TIME_WAIT state, we close the socket immediately without waiting "
14478 "for the end of the TIME_WAIT period."
14479 msgstr ""
14480
14481 #. type: TP
14482 #: build/C/man7/tcp.7:579
14483 #, no-wrap
14484 msgid "I<tcp_rmem> (since Linux 2.4)"
14485 msgstr ""
14486
14487 #.  Since 2.4.0-test7
14488 #. type: Plain text
14489 #: build/C/man7/tcp.7:587
14490 msgid ""
14491 "This is a vector of 3 integers: [min, default, max].  These parameters are "
14492 "used by TCP to regulate receive buffer sizes.  TCP dynamically adjusts the "
14493 "size of the receive buffer from the defaults listed below, in the range of "
14494 "these values, depending on memory available in the system."
14495 msgstr ""
14496
14497 #. type: TP
14498 #: build/C/man7/tcp.7:588 build/C/man7/tcp.7:764 build/C/man7/udp.7:139
14499 #, no-wrap
14500 msgid "I<min>"
14501 msgstr ""
14502
14503 #. type: Plain text
14504 #: build/C/man7/tcp.7:603
14505 msgid ""
14506 "minimum size of the receive buffer used by each TCP socket.  The default "
14507 "value is the system page size.  (On Linux 2.4, the default value is 4K, "
14508 "lowered to B<PAGE_SIZE> bytes in low-memory systems.)  This value is used to "
14509 "ensure that in memory pressure mode, allocations below this size will still "
14510 "succeed.  This is not used to bound the size of the receive buffer declared "
14511 "using B<SO_RCVBUF> on a socket."
14512 msgstr ""
14513
14514 #. type: TP
14515 #: build/C/man7/tcp.7:603 build/C/man7/tcp.7:774
14516 #, no-wrap
14517 msgid "I<default>"
14518 msgstr ""
14519
14520 #. type: Plain text
14521 #: build/C/man7/tcp.7:617
14522 msgid ""
14523 "the default size of the receive buffer for a TCP socket.  This value "
14524 "overwrites the initial default buffer size from the generic global "
14525 "I<net.core.rmem_default> defined for all protocols.  The default value is "
14526 "87380 bytes.  (On Linux 2.4, this will be lowered to 43689 in low-memory "
14527 "systems.)  If larger receive buffer sizes are desired, this value should be "
14528 "increased (to affect all sockets).  To employ large TCP windows, the "
14529 "I<net.ipv4.tcp_window_scaling> must be enabled (default)."
14530 msgstr ""
14531
14532 #. type: TP
14533 #: build/C/man7/tcp.7:617 build/C/man7/tcp.7:788 build/C/man7/udp.7:151
14534 #, no-wrap
14535 msgid "I<max>"
14536 msgstr ""
14537
14538 #. type: Plain text
14539 #: build/C/man7/tcp.7:626
14540 msgid ""
14541 "the maximum size of the receive buffer used by each TCP socket.  This value "
14542 "does not override the global I<net.core.rmem_max>.  This is not used to "
14543 "limit the size of the receive buffer declared using B<SO_RCVBUF> on a "
14544 "socket.  The default value is calculated using the formula"
14545 msgstr ""
14546
14547 #. type: Plain text
14548 #: build/C/man7/tcp.7:628
14549 #, no-wrap
14550 msgid "    max(87380, min(4MB, I<tcp_mem>[1]*PAGE_SIZE/128))\n"
14551 msgstr ""
14552
14553 #. type: Plain text
14554 #: build/C/man7/tcp.7:631
14555 msgid ""
14556 "(On Linux 2.4, the default is 87380*2 bytes, lowered to 87380 in low-memory "
14557 "systems)."
14558 msgstr ""
14559
14560 #. type: TP
14561 #: build/C/man7/tcp.7:632
14562 #, no-wrap
14563 msgid "I<tcp_sack> (Boolean; default: enabled; since Linux 2.2)"
14564 msgstr ""
14565
14566 #.  Since 2.1.36
14567 #. type: Plain text
14568 #: build/C/man7/tcp.7:636
14569 msgid "Enable RFC\\ 2018 TCP Selective Acknowledgements."
14570 msgstr ""
14571
14572 #. type: TP
14573 #: build/C/man7/tcp.7:636
14574 #, no-wrap
14575 msgid "I<tcp_slow_start_after_idle> (Boolean; default: enabled; since Linux 2.6.18)"
14576 msgstr ""
14577
14578 #.  The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
14579 #. type: Plain text
14580 #: build/C/man7/tcp.7:644
14581 msgid ""
14582 "If enabled, provide RFC 2861 behavior and time out the congestion window "
14583 "after an idle period.  An idle period is defined as the current RTO "
14584 "(retransmission timeout).  If disabled, the congestion window will not be "
14585 "timed out after an idle period."
14586 msgstr ""
14587
14588 #. type: TP
14589 #: build/C/man7/tcp.7:644
14590 #, no-wrap
14591 msgid "I<tcp_stdurg> (Boolean; default: disabled; since Linux 2.2)"
14592 msgstr ""
14593
14594 #.  Since 2.1.44
14595 #.  RFC 793 was ambiguous in its specification of the meaning of the
14596 #.  urgent pointer.  RFC 1122 (and RFC 961) fixed on a particular
14597 #.  resolution of this ambiguity (unfortunately the "wrong" one).
14598 #. type: Plain text
14599 #: build/C/man7/tcp.7:658
14600 msgid ""
14601 "If this option is enabled, then use the RFC\\ 1122 interpretation of the TCP "
14602 "urgent-pointer field.  According to this interpretation, the urgent pointer "
14603 "points to the last byte of urgent data.  If this option is disabled, then "
14604 "use the BSD-compatible interpretation of the urgent pointer: the urgent "
14605 "pointer points to the first byte after the urgent data.  Enabling this "
14606 "option may lead to interoperability problems."
14607 msgstr ""
14608
14609 #. type: TP
14610 #: build/C/man7/tcp.7:658
14611 #, no-wrap
14612 msgid "I<tcp_syn_retries> (integer; default: 5; since Linux 2.2)"
14613 msgstr ""
14614
14615 #.  Since 2.1.38
14616 #. type: Plain text
14617 #: build/C/man7/tcp.7:665
14618 msgid ""
14619 "The maximum number of times initial SYNs for an active TCP connection "
14620 "attempt will be retransmitted.  This value should not be higher than 255.  "
14621 "The default value is 5, which corresponds to approximately 180 seconds."
14622 msgstr ""
14623
14624 #. type: TP
14625 #: build/C/man7/tcp.7:665
14626 #, no-wrap
14627 msgid "I<tcp_synack_retries> (integer; default: 5; since Linux 2.2)"
14628 msgstr ""
14629
14630 #.  Since 2.1.38
14631 #. type: Plain text
14632 #: build/C/man7/tcp.7:671
14633 msgid ""
14634 "The maximum number of times a SYN/ACK segment for a passive TCP connection "
14635 "will be retransmitted.  This number should not be higher than 255."
14636 msgstr ""
14637
14638 #. type: TP
14639 #: build/C/man7/tcp.7:671
14640 #, no-wrap
14641 msgid "I<tcp_syncookies> (Boolean; since Linux 2.2)"
14642 msgstr ""
14643
14644 #.  Since 2.1.43
14645 #. type: Plain text
14646 #: build/C/man7/tcp.7:691
14647 msgid ""
14648 "Enable TCP syncookies.  The kernel must be compiled with "
14649 "B<CONFIG_SYN_COOKIES>.  Send out syncookies when the syn backlog queue of a "
14650 "socket overflows.  The syncookies feature attempts to protect a socket from "
14651 "a SYN flood attack.  This should be used as a last resort, if at all.  This "
14652 "is a violation of the TCP protocol, and conflicts with other areas of TCP "
14653 "such as TCP extensions.  It can cause problems for clients and relays.  It "
14654 "is not recommended as a tuning mechanism for heavily loaded servers to help "
14655 "with overloaded or misconfigured conditions.  For recommended alternatives "
14656 "see I<tcp_max_syn_backlog>, I<tcp_synack_retries>, and "
14657 "I<tcp_abort_on_overflow>."
14658 msgstr ""
14659
14660 #. type: TP
14661 #: build/C/man7/tcp.7:691
14662 #, no-wrap
14663 msgid "I<tcp_timestamps> (Boolean; default: enabled; since Linux 2.2)"
14664 msgstr ""
14665
14666 #.  Since 2.1.36
14667 #. type: Plain text
14668 #: build/C/man7/tcp.7:695
14669 msgid "Enable RFC\\ 1323 TCP timestamps."
14670 msgstr ""
14671
14672 #. type: TP
14673 #: build/C/man7/tcp.7:695
14674 #, no-wrap
14675 msgid "I<tcp_tso_win_divisor> (integer; default: 3; since Linux 2.6.9)"
14676 msgstr ""
14677
14678 #. type: Plain text
14679 #: build/C/man7/tcp.7:701
14680 msgid ""
14681 "This parameter controls what percentage of the congestion window can be "
14682 "consumed by a single TCP Segmentation Offload (TSO) frame.  The setting of "
14683 "this parameter is a tradeoff between burstiness and building larger TSO "
14684 "frames."
14685 msgstr ""
14686
14687 #. type: TP
14688 #: build/C/man7/tcp.7:701
14689 #, no-wrap
14690 msgid "I<tcp_tw_recycle> (Boolean; default: disabled; since Linux 2.4)"
14691 msgstr ""
14692
14693 #.  Since 2.3.15
14694 #
14695 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14696 #. type: Plain text
14697 #: build/C/man7/tcp.7:710
14698 msgid ""
14699 "Enable fast recycling of TIME_WAIT sockets.  Enabling this option is not "
14700 "recommended since this causes problems when working with NAT (Network "
14701 "Address Translation)."
14702 msgstr ""
14703
14704 #. type: TP
14705 #: build/C/man7/tcp.7:710
14706 #, no-wrap
14707 msgid "I<tcp_tw_reuse> (Boolean; default: disabled; since Linux 2.4.19/2.6)"
14708 msgstr ""
14709
14710 #.  Since 2.4.19/2.5.43
14711 #
14712 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14713 #. type: Plain text
14714 #: build/C/man7/tcp.7:718
14715 msgid ""
14716 "Allow to reuse TIME_WAIT sockets for new connections when it is safe from "
14717 "protocol viewpoint.  It should not be changed without advice/request of "
14718 "technical experts."
14719 msgstr ""
14720
14721 #. type: TP
14722 #: build/C/man7/tcp.7:718
14723 #, no-wrap
14724 msgid "I<tcp_vegas_cong_avoid> (Boolean; default: disabled; Linux 2.2 to 2.6.13)"
14725 msgstr ""
14726
14727 #.  Since 2.1.8; removed in 2.6.13
14728 #
14729 #.  The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
14730 #. type: Plain text
14731 #: build/C/man7/tcp.7:729
14732 msgid ""
14733 "Enable TCP Vegas congestion avoidance algorithm.  TCP Vegas is a sender-side "
14734 "only change to TCP that anticipates the onset of congestion by estimating "
14735 "the bandwidth.  TCP Vegas adjusts the sending rate by modifying the "
14736 "congestion window.  TCP Vegas should provide less packet loss, but it is not "
14737 "as aggressive as TCP Reno."
14738 msgstr ""
14739
14740 #. type: TP
14741 #: build/C/man7/tcp.7:729
14742 #, no-wrap
14743 msgid "I<tcp_westwood> (Boolean; default: disabled; Linux 2.4.26/2.6.3 to 2.6.13)"
14744 msgstr ""
14745
14746 #. type: Plain text
14747 #: build/C/man7/tcp.7:741
14748 msgid ""
14749 "Enable TCP Westwood+ congestion control algorithm.  TCP Westwood+ is a "
14750 "sender-side only modification of the TCP Reno protocol stack that optimizes "
14751 "the performance of TCP congestion control.  It is based on end-to-end "
14752 "bandwidth estimation to set congestion window and slow start threshold after "
14753 "a congestion episode.  Using this estimation, TCP Westwood+ adaptively sets "
14754 "a slow start threshold and a congestion window which takes into account the "
14755 "bandwidth used at the time congestion is experienced.  TCP Westwood+ "
14756 "significantly increases fairness with respect to TCP Reno in wired networks "
14757 "and throughput over wireless links."
14758 msgstr ""
14759
14760 #. type: TP
14761 #: build/C/man7/tcp.7:741
14762 #, no-wrap
14763 msgid "I<tcp_window_scaling> (Boolean; default: enabled; since Linux 2.2)"
14764 msgstr ""
14765
14766 #.  Since 2.1.36
14767 #. type: Plain text
14768 #: build/C/man7/tcp.7:755
14769 msgid ""
14770 "Enable RFC\\ 1323 TCP window scaling.  This feature allows the use of a "
14771 "large window (E<gt> 64K) on a TCP connection, should the other end support "
14772 "it.  Normally, the 16 bit window length field in the TCP header limits the "
14773 "window size to less than 64K bytes.  If larger windows are desired, "
14774 "applications can increase the size of their socket buffers and the window "
14775 "scaling option will be employed.  If I<tcp_window_scaling> is disabled, TCP "
14776 "will not negotiate the use of window scaling with the other end during "
14777 "connection setup."
14778 msgstr ""
14779
14780 #. type: TP
14781 #: build/C/man7/tcp.7:755
14782 #, no-wrap
14783 msgid "I<tcp_wmem> (since Linux 2.4)"
14784 msgstr ""
14785
14786 #.  Since 2.4.0-test7
14787 #. type: Plain text
14788 #: build/C/man7/tcp.7:763
14789 msgid ""
14790 "This is a vector of 3 integers: [min, default, max].  These parameters are "
14791 "used by TCP to regulate send buffer sizes.  TCP dynamically adjusts the size "
14792 "of the send buffer from the default values listed below, in the range of "
14793 "these values, depending on memory available."
14794 msgstr ""
14795
14796 #. type: Plain text
14797 #: build/C/man7/tcp.7:774
14798 msgid ""
14799 "Minimum size of the send buffer used by each TCP socket.  The default value "
14800 "is the system page size.  (On Linux 2.4, the default value is 4K bytes.)  "
14801 "This value is used to ensure that in memory pressure mode, allocations below "
14802 "this size will still succeed.  This is not used to bound the size of the "
14803 "send buffer declared using B<SO_SNDBUF> on a socket."
14804 msgstr ""
14805
14806 #.  True in Linux 2.4 and 2.6
14807 #. type: Plain text
14808 #: build/C/man7/tcp.7:788
14809 msgid ""
14810 "The default size of the send buffer for a TCP socket.  This value overwrites "
14811 "the initial default buffer size from the generic global "
14812 "I</proc/sys/net/core/wmem_default> defined for all protocols.  The default "
14813 "value is 16K bytes.  If larger send buffer sizes are desired, this value "
14814 "should be increased (to affect all sockets).  To employ large TCP windows, "
14815 "the I</proc/sys/net/ipv4/tcp_window_scaling> must be set to a nonzero value "
14816 "(default)."
14817 msgstr ""
14818
14819 #. type: Plain text
14820 #: build/C/man7/tcp.7:797
14821 msgid ""
14822 "The maximum size of the send buffer used by each TCP socket.  This value "
14823 "does not override the value in I</proc/sys/net/core/wmem_max>.  This is not "
14824 "used to limit the size of the send buffer declared using B<SO_SNDBUF> on a "
14825 "socket.  The default value is calculated using the formula"
14826 msgstr ""
14827
14828 #. type: Plain text
14829 #: build/C/man7/tcp.7:799
14830 #, no-wrap
14831 msgid "    max(65536, min(4MB, I<tcp_mem>[1]*PAGE_SIZE/128))\n"
14832 msgstr ""
14833
14834 #. type: Plain text
14835 #: build/C/man7/tcp.7:802
14836 msgid ""
14837 "(On Linux 2.4, the default value is 128K bytes, lowered 64K depending on "
14838 "low-memory systems.)"
14839 msgstr ""
14840
14841 #. type: TP
14842 #: build/C/man7/tcp.7:803
14843 #, no-wrap
14844 msgid ""
14845 "I<tcp_workaround_signed_windows> (Boolean; default: disabled; since Linux "
14846 "2.6.26)"
14847 msgstr ""
14848
14849 #. type: Plain text
14850 #: build/C/man7/tcp.7:809
14851 msgid ""
14852 "If enabled, assume that no receipt of a window-scaling option means that the "
14853 "remote TCP is broken and treats the window as a signed quantity.  If "
14854 "disabled, assume that the remote TCP is not broken even if we do not receive "
14855 "a window scaling option from it."
14856 msgstr ""
14857
14858 #.  or SOL_TCP on Linux
14859 #.  FIXME Document TCP_CONGESTION (new in 2.6.13)
14860 #. type: Plain text
14861 #: build/C/man7/tcp.7:824
14862 msgid ""
14863 "To set or get a TCP socket option, call B<getsockopt>(2)  to read or "
14864 "B<setsockopt>(2)  to write the option with the option level argument set to "
14865 "B<IPPROTO_TCP>.  In addition, most B<IPPROTO_IP> socket options are valid on "
14866 "TCP sockets.  For more information see B<ip>(7)."
14867 msgstr ""
14868
14869 #. type: TP
14870 #: build/C/man7/tcp.7:824
14871 #, no-wrap
14872 msgid "B<TCP_CORK> (since Linux 2.2)"
14873 msgstr ""
14874
14875 #.  precisely: since 2.1.127
14876 #. type: Plain text
14877 #: build/C/man7/tcp.7:840
14878 msgid ""
14879 "If set, don't send out partial frames.  All queued partial frames are sent "
14880 "when the option is cleared again.  This is useful for prepending headers "
14881 "before calling B<sendfile>(2), or for throughput optimization.  As currently "
14882 "implemented, there is a 200 millisecond ceiling on the time for which output "
14883 "is corked by B<TCP_CORK>.  If this ceiling is reached, then queued data is "
14884 "automatically transmitted.  This option can be combined with B<TCP_NODELAY> "
14885 "only since Linux 2.5.71.  This option should not be used in code intended to "
14886 "be portable."
14887 msgstr ""
14888
14889 #. type: TP
14890 #: build/C/man7/tcp.7:840
14891 #, no-wrap
14892 msgid "B<TCP_DEFER_ACCEPT> (since Linux 2.4)"
14893 msgstr ""
14894
14895 #.  Precisely: since 2.3.38
14896 #. type: Plain text
14897 #: build/C/man7/tcp.7:848
14898 msgid ""
14899 "Allow a listener to be awakened only when data arrives on the socket.  Takes "
14900 "an integer value (seconds), this can bound the maximum number of attempts "
14901 "TCP will make to complete the connection.  This option should not be used in "
14902 "code intended to be portable."
14903 msgstr ""
14904
14905 #. type: TP
14906 #: build/C/man7/tcp.7:848
14907 #, no-wrap
14908 msgid "B<TCP_INFO> (since Linux 2.4)"
14909 msgstr ""
14910
14911 #. type: Plain text
14912 #: build/C/man7/tcp.7:854
14913 msgid ""
14914 "Used to collect information about this socket.  The kernel returns a "
14915 "I<struct tcp_info> as defined in the file I</usr/include/linux/tcp.h>.  This "
14916 "option should not be used in code intended to be portable."
14917 msgstr ""
14918
14919 #. type: TP
14920 #: build/C/man7/tcp.7:854
14921 #, no-wrap
14922 msgid "B<TCP_KEEPCNT> (since Linux 2.4)"
14923 msgstr ""
14924
14925 #.  Precisely: since 2.3.18
14926 #. type: Plain text
14927 #: build/C/man7/tcp.7:861
14928 msgid ""
14929 "The maximum number of keepalive probes TCP should send before dropping the "
14930 "connection.  This option should not be used in code intended to be portable."
14931 msgstr ""
14932
14933 #. type: TP
14934 #: build/C/man7/tcp.7:861
14935 #, no-wrap
14936 msgid "B<TCP_KEEPIDLE> (since Linux 2.4)"
14937 msgstr ""
14938
14939 #.  Precisely: since 2.3.18
14940 #. type: Plain text
14941 #: build/C/man7/tcp.7:870
14942 msgid ""
14943 "The time (in seconds) the connection needs to remain idle before TCP starts "
14944 "sending keepalive probes, if the socket option B<SO_KEEPALIVE> has been set "
14945 "on this socket.  This option should not be used in code intended to be "
14946 "portable."
14947 msgstr ""
14948
14949 #. type: TP
14950 #: build/C/man7/tcp.7:870
14951 #, no-wrap
14952 msgid "B<TCP_KEEPINTVL> (since Linux 2.4)"
14953 msgstr ""
14954
14955 #.  Precisely: since 2.3.18
14956 #. type: Plain text
14957 #: build/C/man7/tcp.7:875
14958 msgid ""
14959 "The time (in seconds) between individual keepalive probes.  This option "
14960 "should not be used in code intended to be portable."
14961 msgstr ""
14962
14963 #. type: TP
14964 #: build/C/man7/tcp.7:875
14965 #, no-wrap
14966 msgid "B<TCP_LINGER2> (since Linux 2.4)"
14967 msgstr ""
14968
14969 #.  Precisely: since 2.3.41
14970 #. type: Plain text
14971 #: build/C/man7/tcp.7:887
14972 msgid ""
14973 "The lifetime of orphaned FIN_WAIT2 state sockets.  This option can be used "
14974 "to override the system-wide setting in the file "
14975 "I</proc/sys/net/ipv4/tcp_fin_timeout> for this socket.  This is not to be "
14976 "confused with the B<socket>(7)  level option B<SO_LINGER>.  This option "
14977 "should not be used in code intended to be portable."
14978 msgstr ""
14979
14980 #. type: TP
14981 #: build/C/man7/tcp.7:887
14982 #, no-wrap
14983 msgid "B<TCP_MAXSEG>"
14984 msgstr ""
14985
14986 #.  Present in Linux 1.0
14987 #.  FIXME
14988 #.  Document TCP_MD5SIG, added in Linux 2.6.20,
14989 #.  Needs CONFIG_TCP_MD5SIG
14990 #.  From net/inet/Kconfig
14991 #.  bool "TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL)"
14992 #.  RFC2385 specifies a method of giving MD5 protection to TCP sessions.
14993 #.  Its main (only?) use is to protect BGP sessions between core routers
14994 #.  on the Internet.
14995 #
14996 #.  There is a TCP_MD5SIG option documented in FreeBSD's tcp(4),
14997 #.  but probably many details are different on Linux
14998 #.  Authors were yoshfuji@linux-ipv6.org and Dave Muller
14999 #.  http://thread.gmane.org/gmane.linux.network/47490
15000 #.  http://www.daemon-systems.org/man/tcp.4.html
15001 #.  http://article.gmane.org/gmane.os.netbsd.devel.network/3767/match=tcp_md5sig+freebsd
15002 #. type: Plain text
15003 #: build/C/man7/tcp.7:911
15004 msgid ""
15005 "The maximum segment size for outgoing TCP packets.  If this option is set "
15006 "before connection establishment, it also changes the MSS value announced to "
15007 "the other end in the initial packet.  Values greater than the (eventual) "
15008 "interface MTU have no effect.  TCP will also impose its minimum and maximum "
15009 "bounds over the value provided."
15010 msgstr ""
15011
15012 #. type: TP
15013 #: build/C/man7/tcp.7:911
15014 #, no-wrap
15015 msgid "B<TCP_NODELAY>"
15016 msgstr ""
15017
15018 #.  Present in Linux 1.0
15019 #. type: Plain text
15020 #: build/C/man7/tcp.7:928
15021 msgid ""
15022 "If set, disable the Nagle algorithm.  This means that segments are always "
15023 "sent as soon as possible, even if there is only a small amount of data.  "
15024 "When not set, data is buffered until there is a sufficient amount to send "
15025 "out, thereby avoiding the frequent sending of small packets, which results "
15026 "in poor utilization of the network.  This option is overridden by "
15027 "B<TCP_CORK>; however, setting this option forces an explicit flush of "
15028 "pending output, even if B<TCP_CORK> is currently set."
15029 msgstr ""
15030
15031 #. type: TP
15032 #: build/C/man7/tcp.7:928
15033 #, no-wrap
15034 msgid "B<TCP_QUICKACK> (since Linux 2.4.4)"
15035 msgstr ""
15036
15037 #.  FIXME Document TCP_USER_TIMEOUT (new in 2.6.37)
15038 #.  See commit dca43c75e7e545694a9dd6288553f55c53e2a3a3
15039 #. type: Plain text
15040 #: build/C/man7/tcp.7:945
15041 msgid ""
15042 "Enable quickack mode if set or disable quickack mode if cleared.  In "
15043 "quickack mode, acks are sent immediately, rather than delayed if needed in "
15044 "accordance to normal TCP operation.  This flag is not permanent, it only "
15045 "enables a switch to or from quickack mode.  Subsequent operation of the TCP "
15046 "protocol will once again enter/leave quickack mode depending on internal "
15047 "protocol processing and factors such as delayed ack timeouts occurring and "
15048 "data transfer.  This option should not be used in code intended to be "
15049 "portable."
15050 msgstr ""
15051
15052 #. type: TP
15053 #: build/C/man7/tcp.7:945
15054 #, no-wrap
15055 msgid "B<TCP_SYNCNT> (since Linux 2.4)"
15056 msgstr ""
15057
15058 #.  Precisely: since 2.3.18
15059 #. type: Plain text
15060 #: build/C/man7/tcp.7:952
15061 msgid ""
15062 "Set the number of SYN retransmits that TCP should send before aborting the "
15063 "attempt to connect.  It cannot exceed 255.  This option should not be used "
15064 "in code intended to be portable."
15065 msgstr ""
15066
15067 #. type: TP
15068 #: build/C/man7/tcp.7:952
15069 #, no-wrap
15070 msgid "B<TCP_WINDOW_CLAMP> (since Linux 2.4)"
15071 msgstr ""
15072
15073 #.  Precisely: since 2.3.41
15074 #. type: Plain text
15075 #: build/C/man7/tcp.7:959
15076 msgid ""
15077 "Bound the size of the advertised window to this value.  The kernel imposes a "
15078 "minimum size of SOCK_MIN_RCVBUF/2.  This option should not be used in code "
15079 "intended to be portable."
15080 msgstr ""
15081
15082 #. type: SS
15083 #: build/C/man7/tcp.7:959 build/C/man7/unix.7:170
15084 #, no-wrap
15085 msgid "Sockets API"
15086 msgstr ""
15087
15088 #. type: Plain text
15089 #: build/C/man7/tcp.7:968
15090 msgid ""
15091 "TCP provides limited support for out-of-band data, in the form of (a single "
15092 "byte of) urgent data.  In Linux this means if the other end sends newer "
15093 "out-of-band data the older urgent data is inserted as normal data into the "
15094 "stream (even when B<SO_OOBINLINE> is not set).  This differs from BSD-based "
15095 "stacks."
15096 msgstr ""
15097
15098 #. type: Plain text
15099 #: build/C/man7/tcp.7:975
15100 msgid ""
15101 "Linux uses the BSD compatible interpretation of the urgent pointer field by "
15102 "default.  This violates RFC\\ 1122, but is required for interoperability "
15103 "with other stacks.  It can be changed via I</proc/sys/net/ipv4/tcp_stdurg>."
15104 msgstr ""
15105
15106 #. type: Plain text
15107 #: build/C/man7/tcp.7:980
15108 msgid ""
15109 "It is possible to peek at out-of-band data using the I<recv>(2)  B<MSG_PEEK> "
15110 "flag."
15111 msgstr ""
15112
15113 #. type: Plain text
15114 #: build/C/man7/tcp.7:996
15115 msgid ""
15116 "Since version 2.4, Linux supports the use of B<MSG_TRUNC> in the I<flags> "
15117 "argument of B<recv>(2)  (and B<recvmsg>(2)).  This flag causes the received "
15118 "bytes of data to be discarded, rather than passed back in a caller-supplied "
15119 "buffer.  Since Linux 2.4.4, B<MSG_PEEK> also has this effect when used in "
15120 "conjunction with B<MSG_OOB> to receive out-of-band data."
15121 msgstr ""
15122
15123 #. type: Plain text
15124 #: build/C/man7/tcp.7:1002 build/C/man7/unix.7:283
15125 msgid ""
15126 "The following B<ioctl>(2)  calls return information in I<value>.  The "
15127 "correct syntax is:"
15128 msgstr ""
15129
15130 #. type: Plain text
15131 #: build/C/man7/tcp.7:1007
15132 #, no-wrap
15133 msgid ""
15134 "B<int>I< value>B<;>\n"
15135 "I<error>B< = ioctl(>I<tcp_socket>B<, >I<ioctl_type>B<, &>I<value>B<);>\n"
15136 msgstr ""
15137
15138 #. type: Plain text
15139 #: build/C/man7/tcp.7:1012
15140 msgid "I<ioctl_type> is one of the following:"
15141 msgstr ""
15142
15143 #. type: TP
15144 #: build/C/man7/tcp.7:1012 build/C/man7/unix.7:293
15145 #, no-wrap
15146 msgid "B<SIOCINQ>"
15147 msgstr ""
15148
15149 #.  FIXME http://sources.redhat.com/bugzilla/show_bug.cgi?id=12002,
15150 #.  filed 2010-09-10, may cause SIOCINQ to be defined in glibc headers
15151 #.  SIOCOUTQ also has an effect for UNIX domain sockets, but not
15152 #.  quite what userland might expect. It seems to return the number
15153 #.  of bytes allocated for buffers containing pending output.
15154 #.  That number is normally larger than the number of bytes of pending
15155 #.  output. Since this info is, from userland's point of view, imprecise,
15156 #.  and it may well change, probably best not to document this now.
15157 #. type: Plain text
15158 #: build/C/man7/tcp.7:1028 build/C/man7/unix.7:315
15159 msgid ""
15160 "Returns the amount of queued unread data in the receive buffer.  The socket "
15161 "must not be in LISTEN state, otherwise an error (B<EINVAL>)  is returned.  "
15162 "B<SIOCINQ> is defined in I<E<lt>linux/sockios.hE<gt>>.  Alternatively, you "
15163 "can use the synonymous B<FIONREAD>, defined in I<E<lt>sys/ioctl.hE<gt>>."
15164 msgstr ""
15165
15166 #. type: TP
15167 #: build/C/man7/tcp.7:1028
15168 #, no-wrap
15169 msgid "B<SIOCATMARK>"
15170 msgstr ""
15171
15172 #. type: Plain text
15173 #: build/C/man7/tcp.7:1033
15174 msgid ""
15175 "Returns true (i.e., I<value> is nonzero) if the inbound data stream is at "
15176 "the urgent mark."
15177 msgstr ""
15178
15179 #. type: Plain text
15180 #: build/C/man7/tcp.7:1049
15181 msgid ""
15182 "If the B<SO_OOBINLINE> socket option is set, and B<SIOCATMARK> returns true, "
15183 "then the next read from the socket will return the urgent data.  If the "
15184 "B<SO_OOBINLINE> socket option is not set, and B<SIOCATMARK> returns true, "
15185 "then the next read from the socket will return the bytes following the "
15186 "urgent data (to actually read the urgent data requires the B<recv(MSG_OOB)> "
15187 "flag)."
15188 msgstr ""
15189
15190 #. type: Plain text
15191 #: build/C/man7/tcp.7:1063
15192 msgid ""
15193 "Note that a read never reads across the urgent mark.  If an application is "
15194 "informed of the presence of urgent data via B<select>(2)  (using the "
15195 "I<exceptfds> argument) or through delivery of a B<SIGURG> signal, then it "
15196 "can advance up to the mark using a loop which repeatedly tests B<SIOCATMARK> "
15197 "and performs a read (requesting any number of bytes) as long as "
15198 "B<SIOCATMARK> returns false."
15199 msgstr ""
15200
15201 #. type: TP
15202 #: build/C/man7/tcp.7:1063
15203 #, no-wrap
15204 msgid "B<SIOCOUTQ>"
15205 msgstr ""
15206
15207 #.  FIXME http://sources.redhat.com/bugzilla/show_bug.cgi?id=12002,
15208 #.  filed 2010-09-10, may cause SIOCOUTQ to be defined in glibc headers
15209 #. type: Plain text
15210 #: build/C/man7/tcp.7:1079
15211 msgid ""
15212 "Returns the amount of unsent data in the socket send queue.  The socket must "
15213 "not be in LISTEN state, otherwise an error (B<EINVAL>)  is returned.  "
15214 "B<SIOCOUTQ> is defined in I<E<lt>linux/sockios.hE<gt>>.  Alternatively, you "
15215 "can use the synonymous B<TIOCOUTQ>, defined in I<E<lt>sys/ioctl.hE<gt>>."
15216 msgstr ""
15217
15218 #. type: Plain text
15219 #: build/C/man7/tcp.7:1084
15220 msgid ""
15221 "When a network error occurs, TCP tries to resend the packet.  If it doesn't "
15222 "succeed after some time, either B<ETIMEDOUT> or the last received error on "
15223 "this connection is reported."
15224 msgstr ""
15225
15226 #. type: Plain text
15227 #: build/C/man7/tcp.7:1095
15228 msgid ""
15229 "Some applications require a quicker error notification.  This can be enabled "
15230 "with the B<IPPROTO_IP> level B<IP_RECVERR> socket option.  When this option "
15231 "is enabled, all incoming errors are immediately passed to the user program.  "
15232 "Use this option with care \\(em it makes TCP less tolerant to routing "
15233 "changes and other normal network conditions."
15234 msgstr ""
15235
15236 #. type: TP
15237 #: build/C/man7/tcp.7:1096
15238 #, no-wrap
15239 msgid "B<EAFNOTSUPPORT>"
15240 msgstr ""
15241
15242 #. type: Plain text
15243 #: build/C/man7/tcp.7:1102
15244 msgid "Passed socket address type in I<sin_family> was not B<AF_INET>."
15245 msgstr ""
15246
15247 #. type: Plain text
15248 #: build/C/man7/tcp.7:1106
15249 msgid ""
15250 "The other end closed the socket unexpectedly or a read is executed on a shut "
15251 "down socket."
15252 msgstr ""
15253
15254 #. type: TP
15255 #: build/C/man7/tcp.7:1106
15256 #, no-wrap
15257 msgid "B<ETIMEDOUT>"
15258 msgstr ""
15259
15260 #. type: Plain text
15261 #: build/C/man7/tcp.7:1109
15262 msgid "The other end didn't acknowledge retransmitted data after some time."
15263 msgstr ""
15264
15265 #. type: Plain text
15266 #: build/C/man7/tcp.7:1113
15267 msgid ""
15268 "Any errors defined for B<ip>(7)  or the generic socket layer may also be "
15269 "returned for TCP."
15270 msgstr ""
15271
15272 #. type: Plain text
15273 #: build/C/man7/tcp.7:1120
15274 msgid ""
15275 "Support for Explicit Congestion Notification, zero-copy B<sendfile>(2), "
15276 "reordering support and some SACK extensions (DSACK) were introduced in 2.4.  "
15277 "Support for forward acknowledgement (FACK), TIME_WAIT recycling, and "
15278 "per-connection keepalive socket options were introduced in 2.3."
15279 msgstr ""
15280
15281 #. type: Plain text
15282 #: build/C/man7/tcp.7:1122
15283 msgid "Not all errors are documented."
15284 msgstr ""
15285
15286 #.  Only a single Linux kernel version is described
15287 #.  Info for 2.2 was lost. Should be added again,
15288 #.  or put into a separate page.
15289 #.  .SH AUTHORS
15290 #.  This man page was originally written by Andi Kleen.
15291 #.  It was updated for 2.4 by Nivedita Singhvi with input from
15292 #.  Alexey Kuznetsov's Documentation/networking/ip-sysctl.txt
15293 #.  document.
15294 #. type: Plain text
15295 #: build/C/man7/tcp.7:1132
15296 msgid "IPv6 is not described."
15297 msgstr ""
15298
15299 #. type: Plain text
15300 #: build/C/man7/tcp.7:1144
15301 msgid ""
15302 "B<accept>(2), B<bind>(2), B<connect>(2), B<getsockopt>(2), B<listen>(2), "
15303 "B<recvmsg>(2), B<sendfile>(2), B<sendmsg>(2), B<socket>(2), B<ip>(7), "
15304 "B<socket>(7)"
15305 msgstr ""
15306
15307 #. type: Plain text
15308 #: build/C/man7/tcp.7:1146
15309 msgid "RFC\\ 793 for the TCP specification."
15310 msgstr ""
15311
15312 #. type: Plain text
15313 #: build/C/man7/tcp.7:1148
15314 msgid ""
15315 "RFC\\ 1122 for the TCP requirements and a description of the Nagle "
15316 "algorithm."
15317 msgstr ""
15318
15319 #. type: Plain text
15320 #: build/C/man7/tcp.7:1150
15321 msgid "RFC\\ 1323 for TCP timestamp and window scaling options."
15322 msgstr ""
15323
15324 #. type: Plain text
15325 #: build/C/man7/tcp.7:1152
15326 msgid "RFC\\ 1644 for a description of TIME_WAIT assassination hazards."
15327 msgstr ""
15328
15329 #. type: Plain text
15330 #: build/C/man7/tcp.7:1154
15331 msgid "RFC\\ 3168 for a description of Explicit Congestion Notification."
15332 msgstr ""
15333
15334 #. type: Plain text
15335 #: build/C/man7/tcp.7:1156
15336 msgid "RFC\\ 2581 for TCP congestion control algorithms."
15337 msgstr ""
15338
15339 #. type: Plain text
15340 #: build/C/man7/tcp.7:1158
15341 msgid "RFC\\ 2018 and RFC\\ 2883 for SACK and extensions to SACK."
15342 msgstr ""
15343
15344 #. type: TH
15345 #: build/C/man7/udp.7:8
15346 #, no-wrap
15347 msgid "UDP"
15348 msgstr ""
15349
15350 #. type: TH
15351 #: build/C/man7/udp.7:8
15352 #, no-wrap
15353 msgid "2010-06-13"
15354 msgstr ""
15355
15356 #. type: Plain text
15357 #: build/C/man7/udp.7:11
15358 msgid "udp - User Datagram Protocol for IPv4"
15359 msgstr ""
15360
15361 #. type: Plain text
15362 #: build/C/man7/udp.7:17
15363 msgid "B<udp_socket = socket(AF_INET, SOCK_DGRAM, 0);>"
15364 msgstr ""
15365
15366 #. type: Plain text
15367 #: build/C/man7/udp.7:23
15368 msgid ""
15369 "This is an implementation of the User Datagram Protocol described in RFC\\ "
15370 "768.  It implements a connectionless, unreliable datagram packet service.  "
15371 "Packets may be reordered or duplicated before they arrive.  UDP generates "
15372 "and checks checksums to catch transmission errors."
15373 msgstr ""
15374
15375 #. type: Plain text
15376 #: build/C/man7/udp.7:52
15377 msgid ""
15378 "When a UDP socket is created, its local and remote addresses are "
15379 "unspecified.  Datagrams can be sent immediately using B<sendto>(2)  or "
15380 "B<sendmsg>(2)  with a valid destination address as an argument.  When "
15381 "B<connect>(2)  is called on the socket, the default destination address is "
15382 "set and datagrams can now be sent using B<send>(2)  or B<write>(2)  without "
15383 "specifying a destination address.  It is still possible to send to other "
15384 "destinations by passing an address to B<sendto>(2)  or B<sendmsg>(2).  In "
15385 "order to receive packets, the socket can be bound to a local address first "
15386 "by using B<bind>(2).  Otherwise the socket layer will automatically assign a "
15387 "free local port out of the range defined by "
15388 "I</proc/sys/net/ipv4/ip_local_port_range> and bind the socket to "
15389 "B<INADDR_ANY>."
15390 msgstr ""
15391
15392 #. type: Plain text
15393 #: build/C/man7/udp.7:60
15394 msgid ""
15395 "All receive operations return only one packet.  When the packet is smaller "
15396 "than the passed buffer, only that much data is returned; when it is bigger, "
15397 "the packet is truncated and the B<MSG_TRUNC> flag is set.  B<MSG_WAITALL> is "
15398 "not supported."
15399 msgstr ""
15400
15401 #. type: Plain text
15402 #: build/C/man7/udp.7:69
15403 msgid ""
15404 "IP options may be sent or received using the socket options described in "
15405 "B<ip>(7).  They are only processed by the kernel when the appropriate "
15406 "I</proc> parameter is enabled (but still passed to the user even when it is "
15407 "turned off).  See B<ip>(7)."
15408 msgstr ""
15409
15410 #. type: Plain text
15411 #: build/C/man7/udp.7:74
15412 msgid ""
15413 "When the B<MSG_DONTROUTE> flag is set on sending, the destination address "
15414 "must refer to a local interface address and the packet is only sent to that "
15415 "interface."
15416 msgstr ""
15417
15418 #. type: Plain text
15419 #: build/C/man7/udp.7:92
15420 msgid ""
15421 "By default, Linux UDP does path MTU (Maximum Transmission Unit) discovery.  "
15422 "This means the kernel will keep track of the MTU to a specific target IP "
15423 "address and return B<EMSGSIZE> when a UDP packet write exceeds it.  When "
15424 "this happens, the application should decrease the packet size.  Path MTU "
15425 "discovery can be also turned off using the B<IP_MTU_DISCOVER> socket option "
15426 "or the I</proc/sys/net/ipv4/ip_no_pmtu_disc> file; see B<ip>(7)  for "
15427 "details.  When turned off, UDP will fragment outgoing UDP packets that "
15428 "exceed the interface MTU.  However, disabling it is not recommended for "
15429 "performance and reliability reasons."
15430 msgstr ""
15431
15432 #. type: Plain text
15433 #: build/C/man7/udp.7:97
15434 msgid "UDP uses the IPv4 I<sockaddr_in> address format described in B<ip>(7)."
15435 msgstr ""
15436
15437 #. type: Plain text
15438 #: build/C/man7/udp.7:108
15439 msgid ""
15440 "All fatal errors will be passed to the user as an error return even when the "
15441 "socket is not connected.  This includes asynchronous errors received from "
15442 "the network.  You may get an error for an earlier packet that was sent on "
15443 "the same socket.  This behavior differs from many other BSD socket "
15444 "implementations which don't pass any errors unless the socket is connected.  "
15445 "Linux's behavior is mandated by B<RFC\\ 1122>."
15446 msgstr ""
15447
15448 #. type: Plain text
15449 #: build/C/man7/udp.7:122
15450 msgid ""
15451 "For compatibility with legacy code, in Linux 2.0 and 2.2 it was possible to "
15452 "set the B<SO_BSDCOMPAT> B<SOL_SOCKET> option to receive remote errors only "
15453 "when the socket has been connected (except for B<EPROTO> and B<EMSGSIZE>).  "
15454 "Locally generated errors are always passed.  Support for this socket option "
15455 "was removed in later kernels; see B<socket>(7)  for further information."
15456 msgstr ""
15457
15458 #. type: Plain text
15459 #: build/C/man7/udp.7:131
15460 msgid ""
15461 "When the B<IP_RECVERR> option is enabled, all errors are stored in the "
15462 "socket error queue, and can be received by B<recvmsg>(2)  with the "
15463 "B<MSG_ERRQUEUE> flag set."
15464 msgstr ""
15465
15466 #. type: Plain text
15467 #: build/C/man7/udp.7:134
15468 msgid ""
15469 "System-wide UDP parameter settings can be accessed by files in the directory "
15470 "I</proc/sys/net/ipv4/>."
15471 msgstr ""
15472
15473 #. type: TP
15474 #: build/C/man7/udp.7:134
15475 #, no-wrap
15476 msgid "I<udp_mem> (since Linux 2.6.25)"
15477 msgstr ""
15478
15479 #. type: Plain text
15480 #: build/C/man7/udp.7:138
15481 msgid ""
15482 "This is a vector of three integers governing the number of pages allowed for "
15483 "queueing by all UDP sockets."
15484 msgstr ""
15485
15486 #. type: Plain text
15487 #: build/C/man7/udp.7:145
15488 msgid ""
15489 "Below this number of pages, UDP is not bothered about its memory appetite.  "
15490 "When the amount of memory allocated by UDP exceeds this number, UDP starts "
15491 "to moderate memory usage."
15492 msgstr ""
15493
15494 #. type: Plain text
15495 #: build/C/man7/udp.7:151
15496 msgid ""
15497 "This value was introduced to follow the format of I<tcp_mem> (see "
15498 "B<tcp>(7))."
15499 msgstr ""
15500
15501 #. type: Plain text
15502 #: build/C/man7/udp.7:154
15503 msgid "Number of pages allowed for queueing by all UDP sockets."
15504 msgstr ""
15505
15506 #. type: Plain text
15507 #: build/C/man7/udp.7:158
15508 msgid ""
15509 "Defaults values for these three items are calculated at boot time from the "
15510 "amount of available memory."
15511 msgstr ""
15512
15513 #. type: TP
15514 #: build/C/man7/udp.7:158
15515 #, no-wrap
15516 msgid "I<udp_rmem_min> (integer; default value: PAGE_SIZE; since Linux 2.6.25)"
15517 msgstr ""
15518
15519 #. type: Plain text
15520 #: build/C/man7/udp.7:165
15521 msgid ""
15522 "Minimal size, in bytes, of receive buffers used by UDP sockets in "
15523 "moderation.  Each UDP socket is able to use the size for receiving data, "
15524 "even if total pages of UDP sockets exceed I<udp_mem> pressure."
15525 msgstr ""
15526
15527 #. type: TP
15528 #: build/C/man7/udp.7:165
15529 #, no-wrap
15530 msgid "I<udp_wmem_min> (integer; default value: PAGE_SIZE; since Linux 2.6.25)"
15531 msgstr ""
15532
15533 #. type: Plain text
15534 #: build/C/man7/udp.7:172
15535 msgid ""
15536 "Minimal size, in bytes, of send buffer used by UDP sockets in moderation.  "
15537 "Each UDP socket is able to use the size for sending data, even if total "
15538 "pages of UDP sockets exceed I<udp_mem> pressure."
15539 msgstr ""
15540
15541 #. type: Plain text
15542 #: build/C/man7/udp.7:179
15543 msgid ""
15544 "To set or get a UDP socket option, call B<getsockopt>(2)  to read or "
15545 "B<setsockopt>(2)  to write the option with the option level argument set to "
15546 "B<IPPROTO_UDP>."
15547 msgstr ""
15548
15549 #. type: TP
15550 #: build/C/man7/udp.7:179
15551 #, no-wrap
15552 msgid "B<UDP_CORK> (since Linux 2.5.44)"
15553 msgstr ""
15554
15555 #.  FIXME document UDP_ENCAP (new in kernel 2.5.67)
15556 #.  From include/linux/udp.h:
15557 #.  /* UDP encapsulation types */
15558 #.  #define UDP_ENCAP_ESPINUDP_NON_IKE      1 /* draft-ietf-ipsec-nat-t-ike-00/01 */
15559 #.  #define UDP_ENCAP_ESPINUDP      2 /* draft-ietf-ipsec-udp-encaps-06 */
15560 #.  #define UDP_ENCAP_L2TPINUDP     3 /* rfc2661 */
15561 #. type: Plain text
15562 #: build/C/man7/udp.7:192
15563 msgid ""
15564 "If this option is enabled, then all data output on this socket is "
15565 "accumulated into a single datagram that is transmitted when the option is "
15566 "disabled.  This option should not be used in code intended to be portable."
15567 msgstr ""
15568
15569 #. type: Plain text
15570 #: build/C/man7/udp.7:196
15571 msgid "These ioctls can be accessed using B<ioctl>(2).  The correct syntax is:"
15572 msgstr ""
15573
15574 #. type: Plain text
15575 #: build/C/man7/udp.7:201
15576 #, no-wrap
15577 msgid ""
15578 "B<int>I< value>B<;>\n"
15579 "I<error>B< = ioctl(>I<udp_socket>B<, >I<ioctl_type>B<, &>I<value>B<);>\n"
15580 msgstr ""
15581
15582 #. type: TP
15583 #: build/C/man7/udp.7:203
15584 #, no-wrap
15585 msgid "B<FIONREAD> (B<SIOCINQ>)"
15586 msgstr ""
15587
15588 #.  See http://www.securiteam.com/unixfocus/5KP0I15IKO.html
15589 #.  "GNUnet DoS (UDP Socket Unreachable)", 14 May 2006
15590 #. type: Plain text
15591 #: build/C/man7/udp.7:221
15592 msgid ""
15593 "Gets a pointer to an integer as argument.  Returns the size of the next "
15594 "pending datagram in the integer in bytes, or 0 when no datagram is pending.  "
15595 "B<Warning:> Using B<FIONREAD>, it is impossible to distinguish the case "
15596 "where no datagram is pending from the case where the next pending datagram "
15597 "contains zero bytes of data.  It is safer to use B<select>(2), B<poll>(2), "
15598 "or B<epoll>(7)  to distinguish these cases."
15599 msgstr ""
15600
15601 #. type: TP
15602 #: build/C/man7/udp.7:221
15603 #, no-wrap
15604 msgid "B<TIOCOUTQ> (B<SIOCOUTQ>)"
15605 msgstr ""
15606
15607 #. type: Plain text
15608 #: build/C/man7/udp.7:225
15609 msgid ""
15610 "Returns the number of data bytes in the local send queue.  Only supported "
15611 "with Linux 2.4 and above."
15612 msgstr ""
15613
15614 #. type: Plain text
15615 #: build/C/man7/udp.7:231
15616 msgid ""
15617 "In addition all ioctls documented in B<ip>(7)  and B<socket>(7)  are "
15618 "supported."
15619 msgstr ""
15620
15621 #. type: Plain text
15622 #: build/C/man7/udp.7:237
15623 msgid ""
15624 "All errors documented for B<socket>(7)  or B<ip>(7)  may be returned by a "
15625 "send or receive on a UDP socket."
15626 msgstr ""
15627
15628 #. type: TP
15629 #: build/C/man7/udp.7:237 build/C/man7/unix.7:320
15630 #, no-wrap
15631 msgid "B<ECONNREFUSED>"
15632 msgstr ""
15633
15634 #. type: Plain text
15635 #: build/C/man7/udp.7:241
15636 msgid ""
15637 "No receiver was associated with the destination address.  This might be "
15638 "caused by a previous packet sent over the socket."
15639 msgstr ""
15640
15641 #.  .SH CREDITS
15642 #.  This man page was written by Andi Kleen.
15643 #. type: Plain text
15644 #: build/C/man7/udp.7:246
15645 msgid "B<IP_RECVERR> is a new feature in Linux 2.2."
15646 msgstr ""
15647
15648 #. type: Plain text
15649 #: build/C/man7/udp.7:251
15650 msgid "B<ip>(7), B<raw>(7), B<socket>(7), B<udplite>(7)"
15651 msgstr ""
15652
15653 #. type: Plain text
15654 #: build/C/man7/udp.7:253
15655 msgid "RFC\\ 768 for the User Datagram Protocol."
15656 msgstr ""
15657
15658 #. type: Plain text
15659 #: build/C/man7/udp.7:255
15660 msgid "RFC\\ 1122 for the host requirements."
15661 msgstr ""
15662
15663 #. type: Plain text
15664 #: build/C/man7/udp.7:257
15665 msgid "RFC\\ 1191 for a description of path MTU discovery."
15666 msgstr ""
15667
15668 #. type: TH
15669 #: build/C/man7/udplite.7:25
15670 #, no-wrap
15671 msgid "UDPLITE"
15672 msgstr ""
15673
15674 #. type: Plain text
15675 #: build/C/man7/udplite.7:28
15676 msgid "udplite - Lightweight User Datagram Protocol"
15677 msgstr ""
15678
15679 #. type: Plain text
15680 #: build/C/man7/udplite.7:36
15681 msgid "B<sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDPLITE);>"
15682 msgstr ""
15683
15684 #. type: Plain text
15685 #: build/C/man7/udplite.7:39
15686 msgid ""
15687 "This is an implementation of the Lightweight User Datagram Protocol "
15688 "(UDP-Lite), as described in RFC\\ 3828."
15689 msgstr ""
15690
15691 #. type: Plain text
15692 #: build/C/man7/udplite.7:45
15693 msgid ""
15694 "UDP-Lite is an extension of UDP (RFC\\ 768) to support variable-length "
15695 "checksums.  This has advantages for some types of multimedia transport that "
15696 "may be able to make use of slightly damaged datagrams, rather than having "
15697 "them discarded by lower-layer protocols."
15698 msgstr ""
15699
15700 #. type: Plain text
15701 #: build/C/man7/udplite.7:51
15702 msgid ""
15703 "The variable-length checksum coverage is set via a B<setsockopt>(2)  "
15704 "option.  If this option is not set, the only difference to UDP is in using a "
15705 "different IP protocol identifier (IANA number 136)."
15706 msgstr ""
15707
15708 #. type: Plain text
15709 #: build/C/man7/udplite.7:56
15710 msgid ""
15711 "The UDP-Lite implementation is a full extension of B<udp>(7), i.e., it "
15712 "shares the same API and API behaviour, and in addition offers two socket "
15713 "options to control the checksum coverage."
15714 msgstr ""
15715
15716 #. type: Plain text
15717 #: build/C/man7/udplite.7:65
15718 msgid ""
15719 "UDP-Litev4 uses the I<sockaddr_in> address format described in B<ip>(7).  "
15720 "UDP-Litev6 uses the I<sockaddr_in6> address format described in B<ipv6>(7)."
15721 msgstr ""
15722
15723 #. type: Plain text
15724 #: build/C/man7/udplite.7:78
15725 msgid ""
15726 "To set or get a UDP-Lite socket option, call B<getsockopt>(2)  to read or "
15727 "B<setsockopt>(2)  to write the option with the option level argument set to "
15728 "B<IPPROTO_UDPLITE>.  In addition, all B<IPPROTO_UDP> socket options are "
15729 "valid on a UDP-Lite socket.  See B<udp>(7)  for more information."
15730 msgstr ""
15731
15732 #. type: Plain text
15733 #: build/C/man7/udplite.7:80
15734 msgid "The following two options are specific to UDP-Lite."
15735 msgstr ""
15736
15737 #. type: TP
15738 #: build/C/man7/udplite.7:80
15739 #, no-wrap
15740 msgid "B<UDPLITE_SEND_CSCOV>"
15741 msgstr ""
15742
15743 #. type: Plain text
15744 #: build/C/man7/udplite.7:85
15745 msgid ""
15746 "This option sets the sender checksum coverage and takes an I<int> as "
15747 "argument, with a checksum coverage value in the range 0..2^16-1."
15748 msgstr ""
15749
15750 #. type: Plain text
15751 #: build/C/man7/udplite.7:89
15752 msgid ""
15753 "A value of 0 means that the entire datagram is always covered.  Values from "
15754 "1-7 are illegal (RFC\\ 3828, 3.1) and are rounded up to the minimum coverage "
15755 "of 8."
15756 msgstr ""
15757
15758 #. type: Plain text
15759 #: build/C/man7/udplite.7:95
15760 msgid ""
15761 "With regard to IPv6 jumbograms (RFC\\ 2675), the UDP-Litev6 checksum "
15762 "coverage is limited to the first 2^16-1 octets, as per RFC\\ 3828, 3.5.  "
15763 "Higher values are therefore silently truncated to 2^16-1.  If in doubt, the "
15764 "current coverage value can always be queried using B<getsockopt>(2)."
15765 msgstr ""
15766
15767 #. type: TP
15768 #: build/C/man7/udplite.7:95
15769 #, no-wrap
15770 msgid "B<UDPLITE_RECV_CSCOV>"
15771 msgstr ""
15772
15773 #. type: Plain text
15774 #: build/C/man7/udplite.7:106
15775 msgid ""
15776 "This is the receiver-side analogue and uses the same argument format and "
15777 "value range as B<UDPLITE_SEND_CSCOV>.  This option is not required to enable "
15778 "traffic with partial checksum coverage.  Its function is that of a traffic "
15779 "filter: when enabled, it instructs the kernel to drop all packets which have "
15780 "a coverage I<less> than the specified coverage value."
15781 msgstr ""
15782
15783 #.  SO_NO_CHECK exists and is supported by UDPv4, but is
15784 #.  commented out in socket(7), hence also commented out here
15785 #. .PP
15786 #. Since UDP-Lite mandates checksums, checksumming can not be disabled
15787 #. via the
15788 #. .B SO_NO_CHECK
15789 #. option from
15790 #. .BR socket (7).
15791 #. type: Plain text
15792 #: build/C/man7/udplite.7:119
15793 msgid ""
15794 "When the value of B<UDPLITE_RECV_CSCOV> exceeds the actual packet coverage, "
15795 "incoming packets are silently dropped, but may generate a warning message in "
15796 "the system log."
15797 msgstr ""
15798
15799 #. type: Plain text
15800 #: build/C/man7/udplite.7:124
15801 msgid ""
15802 "All errors documented for B<udp>(7)  may be returned.  UDP-Lite does not add "
15803 "further errors."
15804 msgstr ""
15805
15806 #.  FIXME . remove this section once glibc supports UDP-Lite
15807 #. type: Plain text
15808 #: build/C/man7/udplite.7:127
15809 msgid "Where glibc support is missing, the following definitions are needed:"
15810 msgstr ""
15811
15812 #.  The following two are defined in the kernel in linux/net/udplite.h
15813 #. type: Plain text
15814 #: build/C/man7/udplite.7:134
15815 #, no-wrap
15816 msgid ""
15817 "#define IPPROTO_UDPLITE     136\n"
15818 "#define UDPLITE_SEND_CSCOV  10\n"
15819 "#define UDPLITE_RECV_CSCOV  11\n"
15820 msgstr ""
15821
15822 #. type: Plain text
15823 #: build/C/man7/udplite.7:139
15824 msgid "I</proc/net/snmp> - basic UDP-Litev4 statistics counters."
15825 msgstr ""
15826
15827 #. type: Plain text
15828 #: build/C/man7/udplite.7:142
15829 msgid "I</proc/net/snmp6> - basic UDP-Litev6 statistics counters."
15830 msgstr ""
15831
15832 #. type: Plain text
15833 #: build/C/man7/udplite.7:144
15834 msgid "UDP-Litev4/v6 first appeared in Linux 2.6.20."
15835 msgstr ""
15836
15837 #. type: Plain text
15838 #: build/C/man7/udplite.7:149
15839 msgid "B<ip>(7), B<ipv6>(7), B<socket>(7), B<udp>(7)"
15840 msgstr ""
15841
15842 #. type: Plain text
15843 #: build/C/man7/udplite.7:151
15844 msgid "RFC\\ 3828 for the Lightweight User Datagram Protocol (UDP-Lite)"
15845 msgstr ""
15846
15847 #. type: Plain text
15848 #: build/C/man7/udplite.7:153
15849 msgid "I<Documentation/networking/udplite.txt>"
15850 msgstr ""
15851
15852 #. type: TH
15853 #: build/C/man7/unix.7:15
15854 #, no-wrap
15855 msgid "UNIX"
15856 msgstr ""
15857
15858 #. type: TH
15859 #: build/C/man7/unix.7:15
15860 #, no-wrap
15861 msgid "2011-09-15"
15862 msgstr ""
15863
15864 #. type: Plain text
15865 #: build/C/man7/unix.7:19
15866 msgid "unix, AF_UNIX, AF_LOCAL - Sockets for local interprocess communication"
15867 msgstr ""
15868
15869 #. type: Plain text
15870 #: build/C/man7/unix.7:23
15871 msgid "B<#include E<lt>sys/un.hE<gt>>"
15872 msgstr ""
15873
15874 #. type: Plain text
15875 #: build/C/man7/unix.7:25
15876 msgid "I<unix_socket>B< = socket(AF_UNIX, type, 0);>"
15877 msgstr ""
15878
15879 #. type: Plain text
15880 #: build/C/man7/unix.7:27
15881 msgid "I<error>B< = socketpair(AF_UNIX, type, 0, int *>I<sv>B<);>"
15882 msgstr ""
15883
15884 #. type: Plain text
15885 #: build/C/man7/unix.7:38
15886 msgid ""
15887 "The B<AF_UNIX> (also known as B<AF_LOCAL>)  socket family is used to "
15888 "communicate between processes on the same machine efficiently.  "
15889 "Traditionally, UNIX domain sockets can be either unnamed, or bound to a file "
15890 "system pathname (marked as being of type socket).  Linux also supports an "
15891 "abstract namespace which is independent of the file system."
15892 msgstr ""
15893
15894 #. type: Plain text
15895 #: build/C/man7/unix.7:50
15896 msgid ""
15897 "Valid types are: B<SOCK_STREAM>, for a stream-oriented socket and "
15898 "B<SOCK_DGRAM>, for a datagram-oriented socket that preserves message "
15899 "boundaries (as on most UNIX implementations, UNIX domain datagram sockets "
15900 "are always reliable and don't reorder datagrams); and (since Linux 2.6.4)  "
15901 "B<SOCK_SEQPACKET>, for a connection-oriented socket that preserves message "
15902 "boundaries and delivers messages in the order that they were sent."
15903 msgstr ""
15904
15905 #. type: Plain text
15906 #: build/C/man7/unix.7:53
15907 msgid ""
15908 "UNIX domain sockets support passing file descriptors or process credentials "
15909 "to other processes using ancillary data."
15910 msgstr ""
15911
15912 #. type: Plain text
15913 #: build/C/man7/unix.7:55
15914 msgid "A UNIX domain socket address is represented in the following structure:"
15915 msgstr ""
15916
15917 #. type: Plain text
15918 #: build/C/man7/unix.7:59
15919 #, no-wrap
15920 msgid "#define UNIX_PATH_MAX    108\n"
15921 msgstr ""
15922
15923 #. type: Plain text
15924 #: build/C/man7/unix.7:64
15925 #, no-wrap
15926 msgid ""
15927 "struct sockaddr_un {\n"
15928 "    sa_family_t sun_family;               /* AF_UNIX */\n"
15929 "    char        sun_path[UNIX_PATH_MAX];  /* pathname */\n"
15930 "};\n"
15931 msgstr ""
15932
15933 #. type: Plain text
15934 #: build/C/man7/unix.7:70
15935 msgid "I<sun_family> always contains B<AF_UNIX>."
15936 msgstr ""
15937
15938 #. type: Plain text
15939 #: build/C/man7/unix.7:72
15940 msgid "Three types of address are distinguished in this structure:"
15941 msgstr ""
15942
15943 #. type: Plain text
15944 #: build/C/man7/unix.7:87
15945 msgid ""
15946 "I<pathname>: a UNIX domain socket can be bound to a null-terminated file "
15947 "system pathname using B<bind>(2).  When the address of the socket is "
15948 "returned by B<getsockname>(2), B<getpeername>(2), and B<accept>(2), its "
15949 "length is I<offsetof(struct sockaddr_un, sun_path) + strlen(sun_path) + 1>, "
15950 "and I<sun_path> contains the null-terminated pathname."
15951 msgstr ""
15952
15953 #.  There is quite some variation across implementations: FreeBSD
15954 #.  says the length is 16 bytes, HP-UX 11 says it's zero bytes.
15955 #. type: Plain text
15956 #: build/C/man7/unix.7:107
15957 msgid ""
15958 "I<unnamed>: A stream socket that has not been bound to a pathname using "
15959 "B<bind>(2)  has no name.  Likewise, the two sockets created by "
15960 "B<socketpair>(2)  are unnamed.  When the address of an unnamed socket is "
15961 "returned by B<getsockname>(2), B<getpeername>(2), and B<accept>(2), its "
15962 "length is I<sizeof(sa_family_t)>, and I<sun_path> should not be inspected."
15963 msgstr ""
15964
15965 #. type: Plain text
15966 #: build/C/man7/unix.7:133
15967 msgid ""
15968 "I<abstract>: an abstract socket address is distinguished by the fact that "
15969 "I<sun_path[0]> is a null byte (\\(aq\\e0\\(aq).  The socket's address in "
15970 "this namespace is given by the additional bytes in I<sun_path> that are "
15971 "covered by the specified length of the address structure.  (Null bytes in "
15972 "the name have no special significance.)  The name has no connection with "
15973 "file system pathnames.  When the address of an abstract socket is returned "
15974 "by B<getsockname>(2), B<getpeername>(2), and B<accept>(2), the returned "
15975 "I<addrlen> is greater than I<sizeof(sa_family_t)> (i.e., greater than 2), "
15976 "and the name of the socket is contained in the first I<(addrlen - "
15977 "sizeof(sa_family_t))> bytes of I<sun_path>.  The abstract socket namespace "
15978 "is a nonportable Linux extension."
15979 msgstr ""
15980
15981 #. type: Plain text
15982 #: build/C/man7/unix.7:146
15983 msgid ""
15984 "For historical reasons these socket options are specified with a "
15985 "B<SOL_SOCKET> type even though they are B<AF_UNIX> specific.  They can be "
15986 "set with B<setsockopt>(2)  and read with B<getsockopt>(2)  by specifying "
15987 "B<SOL_SOCKET> as the socket family."
15988 msgstr ""
15989
15990 #. type: TP
15991 #: build/C/man7/unix.7:146
15992 #, no-wrap
15993 msgid "B<SO_PASSCRED>"
15994 msgstr ""
15995
15996 #. type: Plain text
15997 #: build/C/man7/unix.7:153
15998 msgid ""
15999 "Enables the receiving of the credentials of the sending process in an "
16000 "ancillary message.  When this option is set and the socket is not yet "
16001 "connected a unique name in the abstract namespace will be generated "
16002 "automatically.  Expects an integer boolean flag."
16003 msgstr ""
16004
16005 #. type: SS
16006 #: build/C/man7/unix.7:153
16007 #, no-wrap
16008 msgid "Autobind Feature"
16009 msgstr ""
16010
16011 #.  i.e. sizeof(short)
16012 #. type: Plain text
16013 #: build/C/man7/unix.7:170
16014 msgid ""
16015 "If a B<bind>(2)  call specifies I<addrlen> as I<sizeof(sa_family_t)>, or the "
16016 "B<SO_PASSCRED> socket option was specified for a socket that was not "
16017 "explicitly bound to an address, then the socket is autobound to an abstract "
16018 "address.  The address consists of a null byte followed by 5 bytes in the "
16019 "character set I<[0-9a-f]>.  (Thus, there is a limit of 2^20 autobind "
16020 "addresses.)"
16021 msgstr ""
16022
16023 #. type: Plain text
16024 #: build/C/man7/unix.7:173
16025 msgid ""
16026 "The following paragraphs describe domain-specific details and unsupported "
16027 "features of the sockets API for UNIX domain sockets on Linux."
16028 msgstr ""
16029
16030 #. type: Plain text
16031 #: build/C/man7/unix.7:181
16032 msgid ""
16033 "UNIX domain sockets do not support the transmission of out-of-band data (the "
16034 "B<MSG_OOB> flag for B<send>(2)  and B<recv>(2))."
16035 msgstr ""
16036
16037 #. type: Plain text
16038 #: build/C/man7/unix.7:186
16039 msgid "The B<send>(2)  B<MSG_MORE> flag is not supported by UNIX domain sockets."
16040 msgstr ""
16041
16042 #. type: Plain text
16043 #: build/C/man7/unix.7:194
16044 msgid ""
16045 "The use of B<MSG_TRUNC> in the I<flags> argument of B<recv>(2)  is not "
16046 "supported by UNIX domain sockets."
16047 msgstr ""
16048
16049 #. type: Plain text
16050 #: build/C/man7/unix.7:206
16051 msgid ""
16052 "The B<SO_SNDBUF> socket option does have an effect for UNIX domain sockets, "
16053 "but the B<SO_RCVBUF> option does not.  For datagram sockets, the "
16054 "B<SO_SNDBUF> value imposes an upper limit on the size of outgoing "
16055 "datagrams.  This limit is calculated as the doubled (see B<socket>(7))  "
16056 "option value less 32 bytes used for overhead."
16057 msgstr ""
16058
16059 #. type: SS
16060 #: build/C/man7/unix.7:206
16061 #, no-wrap
16062 msgid "Ancillary Messages"
16063 msgstr ""
16064
16065 #. type: Plain text
16066 #: build/C/man7/unix.7:228
16067 msgid ""
16068 "Ancillary data is sent and received using B<sendmsg>(2)  and B<recvmsg>(2).  "
16069 "For historical reasons the ancillary message types listed below are "
16070 "specified with a B<SOL_SOCKET> type even though they are B<AF_UNIX> "
16071 "specific.  To send them set the I<cmsg_level> field of the struct I<cmsghdr> "
16072 "to B<SOL_SOCKET> and the I<cmsg_type> field to the type.  For more "
16073 "information see B<cmsg>(3)."
16074 msgstr ""
16075
16076 #. type: TP
16077 #: build/C/man7/unix.7:228
16078 #, no-wrap
16079 msgid "B<SCM_RIGHTS>"
16080 msgstr ""
16081
16082 #. type: Plain text
16083 #: build/C/man7/unix.7:234
16084 msgid ""
16085 "Send or receive a set of open file descriptors from another process.  The "
16086 "data portion contains an integer array of the file descriptors.  The passed "
16087 "file descriptors behave as though they have been created with B<dup>(2)."
16088 msgstr ""
16089
16090 #. type: TP
16091 #: build/C/man7/unix.7:234
16092 #, no-wrap
16093 msgid "B<SCM_CREDENTIALS>"
16094 msgstr ""
16095
16096 #. type: Plain text
16097 #: build/C/man7/unix.7:244
16098 msgid ""
16099 "Send or receive UNIX credentials.  This can be used for authentication.  The "
16100 "credentials are passed as a I<struct ucred> ancillary message.  Thus "
16101 "structure is defined in I<E<lt>sys/socket.hE<gt>> as follows:"
16102 msgstr ""
16103
16104 #. type: Plain text
16105 #: build/C/man7/unix.7:252
16106 #, no-wrap
16107 msgid ""
16108 "struct ucred {\n"
16109 "    pid_t pid;    /* process ID of the sending process */\n"
16110 "    uid_t uid;    /* user ID of the sending process */\n"
16111 "    gid_t gid;    /* group ID of the sending process */\n"
16112 "};\n"
16113 msgstr ""
16114
16115 #. type: Plain text
16116 #: build/C/man7/unix.7:261
16117 msgid ""
16118 "Since glibc 2.8, the B<_GNU_SOURCE> feature test macro must be defined "
16119 "(before including I<any> header files) in order to obtain the definition of "
16120 "this structure."
16121 msgstr ""
16122
16123 #. type: Plain text
16124 #: build/C/man7/unix.7:277
16125 msgid ""
16126 "The credentials which the sender specifies are checked by the kernel.  A "
16127 "process with effective user ID 0 is allowed to specify values that do not "
16128 "match its own.  The sender must specify its own process ID (unless it has "
16129 "the capability B<CAP_SYS_ADMIN>), its user ID, effective user ID, or saved "
16130 "set-user-ID (unless it has B<CAP_SETUID>), and its group ID, effective group "
16131 "ID, or saved set-group-ID (unless it has B<CAP_SETGID>).  To receive a "
16132 "I<struct ucred> message the B<SO_PASSCRED> option must be enabled on the "
16133 "socket."
16134 msgstr ""
16135
16136 #. type: Plain text
16137 #: build/C/man7/unix.7:288
16138 #, no-wrap
16139 msgid ""
16140 "B<int>I< value>B<;>\n"
16141 "I<error>B< = ioctl(>I<unix_socket>B<, >I<ioctl_type>B<, &>I<value>B<);>\n"
16142 msgstr ""
16143
16144 #. type: Plain text
16145 #: build/C/man7/unix.7:293
16146 msgid "I<ioctl_type> can be:"
16147 msgstr ""
16148
16149 #. type: Plain text
16150 #: build/C/man7/unix.7:320
16151 msgid ""
16152 "The specified local address is already in use or the file system socket "
16153 "object already exists."
16154 msgstr ""
16155
16156 #. type: Plain text
16157 #: build/C/man7/unix.7:326
16158 msgid ""
16159 "The remote address specified by B<connect>(2)  was not a listening socket.  "
16160 "This error can also occur if the target filename is not a socket."
16161 msgstr ""
16162
16163 #. type: TP
16164 #: build/C/man7/unix.7:326
16165 #, no-wrap
16166 msgid "B<ECONNRESET>"
16167 msgstr ""
16168
16169 #. type: Plain text
16170 #: build/C/man7/unix.7:329
16171 msgid "Remote socket was unexpectedly closed."
16172 msgstr ""
16173
16174 #. type: Plain text
16175 #: build/C/man7/unix.7:332
16176 msgid "User memory address was not valid."
16177 msgstr ""
16178
16179 #. type: Plain text
16180 #: build/C/man7/unix.7:341
16181 msgid ""
16182 "Invalid argument passed.  A common cause is that the value B<AF_UNIX> was "
16183 "not specified in the I<sun_type> field of passed addresses, or the socket "
16184 "was in an invalid state for the applied operation."
16185 msgstr ""
16186
16187 #. type: Plain text
16188 #: build/C/man7/unix.7:346
16189 msgid ""
16190 "B<connect>(2)  called on an already connected socket or a target address was "
16191 "specified on a connected socket."
16192 msgstr ""
16193
16194 #. type: Plain text
16195 #: build/C/man7/unix.7:351
16196 msgid ""
16197 "The pathname in the remote address specified to B<connect>(2)  did not "
16198 "exist."
16199 msgstr ""
16200
16201 #. type: TP
16202 #: build/C/man7/unix.7:351
16203 #, no-wrap
16204 msgid "B<ENOMEM>"
16205 msgstr ""
16206
16207 #. type: Plain text
16208 #: build/C/man7/unix.7:357
16209 msgid "Socket operation needs a target address, but the socket is not connected."
16210 msgstr ""
16211
16212 #. type: Plain text
16213 #: build/C/man7/unix.7:361
16214 msgid ""
16215 "Stream operation called on non-stream oriented socket or tried to use the "
16216 "out-of-band data option."
16217 msgstr ""
16218
16219 #. type: Plain text
16220 #: build/C/man7/unix.7:365
16221 msgid "The sender passed invalid credentials in the I<struct ucred>."
16222 msgstr ""
16223
16224 #. type: Plain text
16225 #: build/C/man7/unix.7:377
16226 msgid ""
16227 "Remote socket was closed on a stream socket.  If enabled, a B<SIGPIPE> is "
16228 "sent as well.  This can be avoided by passing the B<MSG_NOSIGNAL> flag to "
16229 "B<sendmsg>(2)  or B<recvmsg>(2)."
16230 msgstr ""
16231
16232 #. type: TP
16233 #: build/C/man7/unix.7:377
16234 #, no-wrap
16235 msgid "B<EPROTONOSUPPORT>"
16236 msgstr ""
16237
16238 #. type: Plain text
16239 #: build/C/man7/unix.7:381
16240 msgid "Passed protocol is not B<AF_UNIX>."
16241 msgstr ""
16242
16243 #. type: TP
16244 #: build/C/man7/unix.7:381
16245 #, no-wrap
16246 msgid "B<EPROTOTYPE>"
16247 msgstr ""
16248
16249 #. type: Plain text
16250 #: build/C/man7/unix.7:387
16251 msgid ""
16252 "Remote socket does not match the local socket type (B<SOCK_DGRAM> versus "
16253 "B<SOCK_STREAM>)"
16254 msgstr ""
16255
16256 #. type: Plain text
16257 #: build/C/man7/unix.7:390
16258 msgid "Unknown socket type."
16259 msgstr ""
16260
16261 #. type: Plain text
16262 #: build/C/man7/unix.7:394
16263 msgid ""
16264 "Other errors can be generated by the generic socket layer or by the file "
16265 "system while generating a file system socket object.  See the appropriate "
16266 "manual pages for more information."
16267 msgstr ""
16268
16269 #. type: Plain text
16270 #: build/C/man7/unix.7:400
16271 msgid ""
16272 "B<SCM_CREDENTIALS> and the abstract namespace were introduced with Linux 2.2 "
16273 "and should not be used in portable programs.  (Some BSD-derived systems also "
16274 "support credential passing, but the implementation details differ.)"
16275 msgstr ""
16276
16277 #. type: Plain text
16278 #: build/C/man7/unix.7:411
16279 msgid ""
16280 "In the Linux implementation, sockets which are visible in the file system "
16281 "honor the permissions of the directory they are in.  Their owner, group and "
16282 "their permissions can be changed.  Creation of a new socket will fail if the "
16283 "process does not have write and search (execute) permission on the directory "
16284 "the socket is created in.  Connecting to the socket object requires "
16285 "read/write permission.  This behavior differs from many BSD-derived systems "
16286 "which ignore permissions for UNIX domain sockets.  Portable programs should "
16287 "not rely on this feature for security."
16288 msgstr ""
16289
16290 #. type: Plain text
16291 #: build/C/man7/unix.7:419
16292 msgid ""
16293 "Binding to a socket with a filename creates a socket in the file system that "
16294 "must be deleted by the caller when it is no longer needed (using "
16295 "B<unlink>(2)).  The usual UNIX close-behind semantics apply; the socket can "
16296 "be unlinked at any time and will be finally removed from the file system "
16297 "when the last reference to it is closed."
16298 msgstr ""
16299
16300 #. type: Plain text
16301 #: build/C/man7/unix.7:428
16302 msgid ""
16303 "To pass file descriptors or credentials over a B<SOCK_STREAM>, you need to "
16304 "send or receive at least one byte of nonancillary data in the same "
16305 "B<sendmsg>(2)  or B<recvmsg>(2)  call."
16306 msgstr ""
16307
16308 #. type: Plain text
16309 #: build/C/man7/unix.7:430
16310 msgid "UNIX domain stream sockets do not support the notion of out-of-band data."
16311 msgstr ""
16312
16313 #. type: Plain text
16314 #: build/C/man7/unix.7:433
16315 msgid "See B<bind>(2)."
16316 msgstr ""
16317
16318 #. type: Plain text
16319 #: build/C/man7/unix.7:438
16320 msgid "For an example of the use of B<SCM_RIGHTS> see B<cmsg>(3)."
16321 msgstr ""
16322
16323 #. type: Plain text
16324 #: build/C/man7/unix.7:447
16325 msgid ""
16326 "B<recvmsg>(2), B<sendmsg>(2), B<socket>(2), B<socketpair>(2), B<cmsg>(3), "
16327 "B<capabilities>(7), B<credentials>(7), B<socket>(7)"
16328 msgstr ""
16329
16330 #. type: TH
16331 #: build/C/man7/x25.7:7
16332 #, no-wrap
16333 msgid "X25"
16334 msgstr ""
16335
16336 #. type: Plain text
16337 #: build/C/man7/x25.7:10
16338 msgid "x25, AF_X25 - ITU-T X.25 / ISO-8208 protocol interface."
16339 msgstr ""
16340
16341 #. type: Plain text
16342 #: build/C/man7/x25.7:14
16343 msgid "B<#include E<lt>linux/x25.hE<gt>>"
16344 msgstr ""
16345
16346 #. type: Plain text
16347 #: build/C/man7/x25.7:16
16348 msgid "B<x25_socket = socket(AF_X25, SOCK_SEQPACKET, 0);>"
16349 msgstr ""
16350
16351 #. type: Plain text
16352 #: build/C/man7/x25.7:25
16353 msgid ""
16354 "X25 sockets provide an interface to the X.25 packet layer protocol.  This "
16355 "allows applications to communicate over a public X.25 data network as "
16356 "standardized by International Telecommunication Union's recommendation X.25 "
16357 "(X.25 DTE-DCE mode).  X25 sockets can also be used for communication without "
16358 "an intermediate X.25 network (X.25 DTE-DTE mode) as described in ISO-8208."
16359 msgstr ""
16360
16361 #. type: Plain text
16362 #: build/C/man7/x25.7:42
16363 msgid ""
16364 "Message boundaries are preserved \\(em a B<read>(2)  from a socket will "
16365 "retrieve the same chunk of data as output with the corresponding B<write>(2)  "
16366 "to the peer socket.  When necessary, the kernel takes care of segmenting and "
16367 "reassembling long messages by means of the X.25 M-bit.  There is no "
16368 "hard-coded upper limit for the message size.  However, reassembling of a "
16369 "long message might fail if there is a temporary lack of system resources or "
16370 "when other constraints (such as socket memory or buffer size limits) become "
16371 "effective.  If that occurs, the X.25 connection will be reset."
16372 msgstr ""
16373
16374 #. type: SS
16375 #: build/C/man7/x25.7:42
16376 #, no-wrap
16377 msgid "Socket Addresses"
16378 msgstr ""
16379
16380 #. type: Plain text
16381 #: build/C/man7/x25.7:49
16382 msgid ""
16383 "The B<AF_X25> socket address family uses the I<struct sockaddr_x25> for "
16384 "representing network addresses as defined in ITU-T recommendation X.121."
16385 msgstr ""
16386
16387 #. type: Plain text
16388 #: build/C/man7/x25.7:56
16389 #, no-wrap
16390 msgid ""
16391 "struct sockaddr_x25 {\n"
16392 "    sa_family_t sx25_family;    /* must be AF_X25 */\n"
16393 "    x25_address sx25_addr;      /* X.121 Address */\n"
16394 "};\n"
16395 msgstr ""
16396
16397 #. type: Plain text
16398 #: build/C/man7/x25.7:67
16399 msgid ""
16400 "I<sx25_addr> contains a char array I<x25_addr[]> to be interpreted as a "
16401 "null-terminated string.  I<sx25_addr.x25_addr[]> consists of up to 15 (not "
16402 "counting the terminating 0) ASCII characters forming the X.121 address.  "
16403 "Only the decimal digit characters from \\(aq0\\(aq to \\(aq9\\(aq are "
16404 "allowed."
16405 msgstr ""
16406
16407 #. type: Plain text
16408 #: build/C/man7/x25.7:76
16409 msgid ""
16410 "The following X.25-specific socket options can be set by using "
16411 "B<setsockopt>(2)  and read with B<getsockopt>(2)  with the I<level> argument "
16412 "set to B<SOL_X25>."
16413 msgstr ""
16414
16415 #. type: TP
16416 #: build/C/man7/x25.7:76
16417 #, no-wrap
16418 msgid "B<X25_QBITINCL>"
16419 msgstr ""
16420
16421 #. type: Plain text
16422 #: build/C/man7/x25.7:95
16423 msgid ""
16424 "Controls whether the X.25 Q-bit (Qualified Data Bit) is accessible by the "
16425 "user.  It expects an integer argument.  If set to 0 (default), the Q-bit is "
16426 "never set for outgoing packets and the Q-bit of incoming packets is "
16427 "ignored.  If set to 1, an additional first byte is prepended to each message "
16428 "read from or written to the socket.  For data read from the socket, a 0 "
16429 "first byte indicates that the Q-bits of the corresponding incoming data "
16430 "packets were not set.  A first byte with value 1 indicates that the Q-bit of "
16431 "the corresponding incoming data packets was set.  If the first byte of the "
16432 "data written to the socket is 1 the Q-bit of the corresponding outgoing data "
16433 "packets will be set.  If the first byte is 0 the Q-bit will not be set."
16434 msgstr ""
16435
16436 #. type: Plain text
16437 #: build/C/man7/x25.7:97
16438 msgid "The AF_X25 protocol family is a new feature of Linux 2.2."
16439 msgstr ""
16440
16441 #. type: Plain text
16442 #: build/C/man7/x25.7:100
16443 msgid "Plenty, as the X.25 PLP implementation is B<CONFIG_EXPERIMENTAL>."
16444 msgstr ""
16445
16446 #. type: Plain text
16447 #: build/C/man7/x25.7:102
16448 msgid "This man page is incomplete."
16449 msgstr ""
16450
16451 #. type: Plain text
16452 #: build/C/man7/x25.7:109
16453 msgid ""
16454 "There is no dedicated application programmer's header file yet; you need to "
16455 "include the kernel header file I<E<lt>linux/x25.hE<gt>>.  "
16456 "B<CONFIG_EXPERIMENTAL> might also imply that future versions of the "
16457 "interface are not binary compatible."
16458 msgstr ""
16459
16460 #. type: Plain text
16461 #: build/C/man7/x25.7:113
16462 msgid ""
16463 "X.25 N-Reset events are not propagated to the user process yet.  Thus, if a "
16464 "reset occurred, data might be lost without notice."
16465 msgstr ""
16466
16467 #. type: Plain text
16468 #: build/C/man7/x25.7:116
16469 msgid "B<socket>(2), B<socket>(7)"
16470 msgstr ""
16471
16472 #. type: Plain text
16473 #: build/C/man7/x25.7:120
16474 msgid ""
16475 "Jonathan Simon Naylor: \\(lqThe Re-Analysis and Re-Implementation of "
16476 "X.25.\\(rq The URL is"
16477 msgstr ""
16478
16479 #. type: Plain text
16480 #: build/C/man7/x25.7:122
16481 msgid "I<ftp://ftp.pspt.fi/pub/ham/linux/ax25/x25doc.tgz>"
16482 msgstr ""