# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2024-06-01 05:51+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "getaddrinfo" msgstr "" #. type: TH #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "" #. type: TH #: archlinux debian-unstable #, no-wrap msgid "Linux man-pages 6.8" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "getaddrinfo, freeaddrinfo, gai_strerror - network address and service " "translation" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "LIBRARY" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Standard C library (I, I<-lc>)" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "B<#include Esys/types.hE>\n" "B<#include Esys/socket.hE>\n" "B<#include Enetdb.hE>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "BIB<,>\n" "B< const char *restrict >IB<,>\n" "B< const struct addrinfo *restrict >IB<,>\n" "B< struct addrinfo **restrict >IB<);>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Feature Test Macro Requirements for glibc (see B(7)):" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B(), B(), B():" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" " Since glibc 2.22:\n" " _POSIX_C_SOURCE E= 200112L\n" " glibc 2.21 and earlier:\n" " _POSIX_C_SOURCE\n" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DESCRIPTION" msgstr "" #. .BR getipnodebyname (3), #. .BR getipnodebyaddr (3), #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Given I and I, which identify an Internet host and a service, " "B() returns one or more I structures, each of which " "contains an Internet address that can be specified in a call to B(2) " "or B(2). The B() function combines the functionality " "provided by the B(3) and B(3) functions into " "a single interface, but unlike the latter functions, B() is " "reentrant and allows programs to eliminate IPv4-versus-IPv6 dependencies." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I structure used by B() contains the following " "fields:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "struct addrinfo {\n" " int ai_flags;\n" " int ai_family;\n" " int ai_socktype;\n" " int ai_protocol;\n" " socklen_t ai_addrlen;\n" " struct sockaddr *ai_addr;\n" " char *ai_canonname;\n" " struct addrinfo *ai_next;\n" "};\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I argument points to an I structure that specifies " "criteria for selecting the socket address structures returned in the list " "pointed to by I. If I is not NULL it points to an I " "structure whose I, I, and I specify " "criteria that limit the set of socket addresses returned by " "B(), as follows:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This field specifies the desired address family for the returned addresses. " "Valid values for this field include B and B. The value " "B indicates that B() should return socket addresses " "for any address family (either IPv4 or IPv6, for example) that can be used " "with I and I." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This field specifies the preferred socket type, for example B " "or B. Specifying 0 in this field indicates that socket " "addresses of any type can be returned by B()." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This field specifies the protocol for the returned socket addresses. " "Specifying 0 in this field indicates that socket addresses with any protocol " "can be returned by B()." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This field specifies additional options, described below. Multiple flags " "are specified by bitwise OR-ing them together." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "All the other fields in the structure pointed to by I must contain " "either 0 or a null pointer, as appropriate." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Specifying I as NULL is equivalent to setting I and " "I to 0; I to B; and I to " "B<(AI_V4MAPPED\\ |\\ AI_ADDRCONFIG)>. (POSIX specifies different defaults " "for I; see NOTES.) I specifies either a numerical network " "address (for IPv4, numbers-and-dots notation as supported by " "B(3); for IPv6, hexadecimal string format as supported by " "B(3)), or a network hostname, whose network addresses are looked " "up and resolved. If I contains the B flag, " "then I must be a numerical network address. The B " "flag suppresses any potentially lengthy network host address lookups." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the B flag is specified in I, and I is " "NULL, then the returned socket addresses will be suitable for B(2)ing " "a socket that will B(2) connections. The returned socket address " "will contain the \"wildcard address\" (B for IPv4 addresses, " "B for IPv6 address). The wildcard address is used by " "applications (typically servers) that intend to accept connections on any " "of the host's network addresses. If I is not NULL, then the " "B flag is ignored." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the B flag is not set in I, then the returned " "socket addresses will be suitable for use with B(2), B(2), " "or B(2). If I is NULL, then the network address will be set " "to the loopback interface address (B for IPv4 addresses, " "B for IPv6 address); this is used by applications " "that intend to communicate with peers running on the same host." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I sets the port in each returned address structure. If this " "argument is a service name (see B(5)), it is translated to the " "corresponding port number. This argument can also be specified as a decimal " "number, which is simply converted to binary. If I is NULL, then " "the port number of the returned socket addresses will be left " "uninitialized. If B is specified in I and " "I is not NULL, then I must point to a string containing a " "numeric port number. This flag is used to inhibit the invocation of a name " "resolution service in cases where it is known not to be required." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Either I or I, but not both, may be NULL." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() function allocates and initializes a linked list of " "I structures, one for each network address that matches I " "and I, subject to any restrictions imposed by I, and returns " "a pointer to the start of the list in I. The items in the linked list " "are linked by the I field." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "There are several reasons why the linked list may have more than one " "I structure, including: the network host is multihomed, accessible " "over multiple protocols (e.g., both B and B); or the same " "service is available from multiple socket types (one B address " "and another B address, for example). Normally, the application " "should try using the addresses in the order in which they are returned. The " "sorting function used within B() is defined in RFC\\ 3484; the " "order can be tweaked for a particular system by editing I " "(available since glibc 2.5)." msgstr "" #. Prior to glibc 2.3.4, the ai_canonname of each addrinfo #. structure was set pointing to the canonical name; that was #. more than POSIX.1-2001 specified, or other implementations provided. #. MTK, Aug 05 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If I includes the B flag, then the " "I field of the first of the I structures in the " "returned list is set to point to the official name of the host." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The remaining fields of each returned I structure are initialized " "as follows:" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "\\[bu]" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I, I, and I fields return the " "socket creation parameters (i.e., these fields have the same meaning as the " "corresponding arguments of B(2)). For example, I might " "return B or B; I might return B " "or B; and I returns the protocol for the socket." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A pointer to the socket address is placed in the I field, and the " "length of the socket address, in bytes, is placed in the I field." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If I includes the B flag, then IPv4 addresses " "are returned in the list pointed to by I only if the local system has " "at least one IPv4 address configured, and IPv6 addresses are returned only " "if the local system has at least one IPv6 address configured. The loopback " "address is not considered for this case as valid as a configured address. " "This flag is useful on, for example, IPv4-only systems, to ensure that " "B() does not return IPv6 socket addresses that would always " "fail in B(2) or B(2)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If I specifies the B flag, and I was specified as B, and no matching IPv6 addresses " "could be found, then return IPv4-mapped IPv6 addresses in the list pointed " "to by I. If both B and B are specified in I, then return both IPv6 and IPv4-mapped IPv6 addresses in the list " "pointed to by I. B is ignored if B is not also " "specified." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() function frees the memory that was allocated for the " "dynamically allocated linked list I." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Extensions to getaddrinfo() for Internationalized Domain Names" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Starting with glibc 2.3.4, B() has been extended to " "selectively allow the incoming and outgoing hostnames to be transparently " "converted to and from the Internationalized Domain Name (IDN) format (see " "RFC 3490, I). Four " "new flags are defined:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If this flag is specified, then the node name given in I is converted " "to IDN format if necessary. The source encoding is that of the current " "locale." msgstr "" #. Implementation Detail: #. To minimize effects on system performance the implementation might #. want to check whether the input string contains any non-ASCII #. characters. If there are none the IDN step can be skipped completely. #. On systems which allow not-ASCII safe encodings for a locale this #. might be a problem. #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the input name contains non-ASCII characters, then the IDN encoding is " "used. Those parts of the node name (delimited by dots) that contain non-" "ASCII characters are encoded using ASCII Compatible Encoding (ACE) before " "being passed to the name resolution functions." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "After a successful name lookup, and if the B flag was " "specified, B() will return the canonical name of the node " "corresponding to the I structure value passed back. The return " "value is an exact copy of the value returned by the name resolution function." msgstr "" # #. Implementation Detail: #. If no component of the returned name starts with xn\-\- the IDN #. step can be skipped, therefore avoiding unnecessary slowdowns. #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the name is encoded using ACE, then it will contain the I prefix " "for one or more components of the name. To convert these components into a " "readable form the B flag can be passed in addition to " "B. The resulting string is encoded using the current locale's " "encoding." msgstr "" #. type: TP #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: TQ #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Setting these flags will enable the IDNA_ALLOW_UNASSIGNED (allow unassigned " "Unicode code points) and IDNA_USE_STD3_ASCII_RULES (check output to make " "sure it is a STD3 conforming hostname) flags respectively to be used in the " "IDNA handling." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "RETURN VALUE" msgstr "" #. FIXME glibc defines the following additional errors, some which #. can probably be returned by getaddrinfo(); they need to #. be documented. #. #ifdef __USE_GNU #. #define EAI_INPROGRESS -100 /* Processing request in progress. */ #. #define EAI_CANCELED -101 /* Request canceled. */ #. #define EAI_NOTCANCELED -102 /* Request not canceled. */ #. #define EAI_ALLDONE -103 /* All requests done. */ #. #define EAI_INTR -104 /* Interrupted by a signal. */ #. #define EAI_IDN_ENCODE -105 /* IDN encoding failed. */ #. #endif #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() returns 0 if it succeeds, or one of the following nonzero " "error codes:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. Not in SUSv3 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The specified network host does not have any network addresses in the " "requested address family." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The name server returned a temporary failure indication. Try again later." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "I contains invalid flags; or, I included " "B and I was NULL." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The name server returned a permanent failure indication." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The requested address family is not supported." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Out of memory." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. Not in SUSv3 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The specified network host exists, but does not have any network addresses " "defined." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I or I is not known; or both I and I are " "NULL; or B was specified in I and I " "was not a numeric port-number string." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The requested service is not available for the requested socket type. It " "may be available through another socket type. For example, this error could " "occur if I was \"shell\" (a service available only on stream " "sockets), and either I was B, or I was B; or the error could occur if I was " "not NULL, and I was B (a socket type that does " "not support the concept of services)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The requested socket type is not supported. This could occur, for example, " "if I and I are inconsistent (e.g., " "B and B, respectively)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Other system error; I is set to indicate the error." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() function translates these error codes to a human " "readable string, suitable for error reporting." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "FILES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "I" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "ATTRIBUTES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "For an explanation of the terms used in this section, see B(7)." msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Interface" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Attribute" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Value" msgstr "" #. type: tbl table #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid ".na\n" msgstr "" #. type: tbl table #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid ".nh\n" msgstr "" #. #-#-#-#-# archlinux: getaddrinfo.3.pot (PACKAGE VERSION) #-#-#-#-# #. type: TP #. #-#-#-#-# debian-bookworm: getaddrinfo.3.pot (PACKAGE VERSION) #-#-#-#-# #. type: tbl table #. #-#-#-#-# debian-unstable: getaddrinfo.3.pot (PACKAGE VERSION) #-#-#-#-# #. type: TP #. #-#-#-#-# fedora-40: getaddrinfo.3.pot (PACKAGE VERSION) #-#-#-#-# #. type: TP #. #-#-#-#-# fedora-rawhide: getaddrinfo.3.pot (PACKAGE VERSION) #-#-#-#-# #. type: TP #. #-#-#-#-# mageia-cauldron: getaddrinfo.3.pot (PACKAGE VERSION) #-#-#-#-# #. type: TP #. #-#-#-#-# opensuse-leap-15-6: getaddrinfo.3.pot (PACKAGE VERSION) #-#-#-#-# #. type: TP #. #-#-#-#-# opensuse-tumbleweed: getaddrinfo.3.pot (PACKAGE VERSION) #-#-#-#-# #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B()" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Thread safety" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "MT-Safe env locale" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "B(),\n" "B()" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "MT-Safe" msgstr "" #. type: SH #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "VERSIONS" msgstr "" #. POSIX.1-2001, POSIX.1-2008 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "According to POSIX.1, specifying I as NULL should cause I " "to be assumed as 0. The GNU C library instead assumes a value of " "B<(AI_V4MAPPED\\ |\\ AI_ADDRCONFIG)> for this case, since this value is " "considered an improvement on the specification." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "STANDARDS" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "POSIX.1-2008." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "RFC\\ 2553." msgstr "" #. type: SH #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "HISTORY" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "POSIX.1-2001." msgstr "" #. type: TP #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: TQ #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: TQ #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "glibc 2.3.3." msgstr "" #. type: TP #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "glibc 2.3.4." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NOTES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() supports the I
B<%>I notation for " "specifying the IPv6 scope-ID." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "EXAMPLES" msgstr "" #. getnameinfo.3 refers to this example #. socket.2 refers to this example #. bind.2 refers to this example #. connect.2 refers to this example #. recvfrom.2 refers to this example #. sendto.2 refers to this example #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The following programs demonstrate the use of B(), " "B(), B(), and B(3). The programs " "are an echo server and client for UDP datagrams." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Server program" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "" "#include Enetdb.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Estring.hE\n" "#include Esys/socket.hE\n" "#include Esys/types.hE\n" "#include Eunistd.hE\n" "\\&\n" "#define BUF_SIZE 500\n" "\\&\n" "int\n" "main(int argc, char *argv[])\n" "{\n" " int sfd, s;\n" " char buf[BUF_SIZE];\n" " ssize_t nread;\n" " socklen_t peer_addrlen;\n" " struct addrinfo hints;\n" " struct addrinfo *result, *rp;\n" " struct sockaddr_storage peer_addr;\n" "\\&\n" " if (argc != 2) {\n" " fprintf(stderr, \"Usage: %s port\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " memset(&hints, 0, sizeof(hints));\n" " hints.ai_family = AF_UNSPEC; /* Allow IPv4 or IPv6 */\n" " hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */\n" " hints.ai_flags = AI_PASSIVE; /* For wildcard IP address */\n" " hints.ai_protocol = 0; /* Any protocol */\n" " hints.ai_canonname = NULL;\n" " hints.ai_addr = NULL;\n" " hints.ai_next = NULL;\n" "\\&\n" " s = getaddrinfo(NULL, argv[1], &hints, &result);\n" " if (s != 0) {\n" " fprintf(stderr, \"getaddrinfo: %s\\en\", gai_strerror(s));\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " /* getaddrinfo() returns a list of address structures.\n" " Try each address until we successfully bind(2).\n" " If socket(2) (or bind(2)) fails, we (close the socket\n" " and) try the next address. */\n" "\\&\n" " for (rp = result; rp != NULL; rp = rp-Eai_next) {\n" " sfd = socket(rp-Eai_family, rp-Eai_socktype,\n" " rp-Eai_protocol);\n" " if (sfd == -1)\n" " continue;\n" "\\&\n" " if (bind(sfd, rp-Eai_addr, rp-Eai_addrlen) == 0)\n" " break; /* Success */\n" "\\&\n" " close(sfd);\n" " }\n" "\\&\n" " freeaddrinfo(result); /* No longer needed */\n" "\\&\n" " if (rp == NULL) { /* No address succeeded */\n" " fprintf(stderr, \"Could not bind\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " /* Read datagrams and echo them back to sender. */\n" "\\&\n" " for (;;) {\n" " char host[NI_MAXHOST], service[NI_MAXSERV];\n" "\\&\n" " peer_addrlen = sizeof(peer_addr);\n" " nread = recvfrom(sfd, buf, BUF_SIZE, 0,\n" " (struct sockaddr *) &peer_addr, &peer_addrlen);\n" " if (nread == -1)\n" " continue; /* Ignore failed request */\n" "\\&\n" " s = getnameinfo((struct sockaddr *) &peer_addr,\n" " peer_addrlen, host, NI_MAXHOST,\n" " service, NI_MAXSERV, NI_NUMERICSERV);\n" " if (s == 0)\n" " printf(\"Received %zd bytes from %s:%s\\en\",\n" " nread, host, service);\n" " else\n" " fprintf(stderr, \"getnameinfo: %s\\en\", gai_strerror(s));\n" "\\&\n" " if (sendto(sfd, buf, nread, 0, (struct sockaddr *) &peer_addr,\n" " peer_addrlen) != nread)\n" " {\n" " fprintf(stderr, \"Error sending response\\en\");\n" " }\n" " }\n" "}\n" msgstr "" #. SRC END #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Client program" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "" "#include Enetdb.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Estring.hE\n" "#include Esys/socket.hE\n" "#include Esys/types.hE\n" "#include Eunistd.hE\n" "\\&\n" "#define BUF_SIZE 500\n" "\\&\n" "int\n" "main(int argc, char *argv[])\n" "{\n" " int sfd, s;\n" " char buf[BUF_SIZE];\n" " size_t len;\n" " ssize_t nread;\n" " struct addrinfo hints;\n" " struct addrinfo *result, *rp;\n" "\\&\n" " if (argc E 3) {\n" " fprintf(stderr, \"Usage: %s host port msg...\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " /* Obtain address(es) matching host/port. */\n" "\\&\n" " memset(&hints, 0, sizeof(hints));\n" " hints.ai_family = AF_UNSPEC; /* Allow IPv4 or IPv6 */\n" " hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */\n" " hints.ai_flags = 0;\n" " hints.ai_protocol = 0; /* Any protocol */\n" "\\&\n" " s = getaddrinfo(argv[1], argv[2], &hints, &result);\n" " if (s != 0) {\n" " fprintf(stderr, \"getaddrinfo: %s\\en\", gai_strerror(s));\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " /* getaddrinfo() returns a list of address structures.\n" " Try each address until we successfully connect(2).\n" " If socket(2) (or connect(2)) fails, we (close the socket\n" " and) try the next address. */\n" "\\&\n" " for (rp = result; rp != NULL; rp = rp-Eai_next) {\n" " sfd = socket(rp-Eai_family, rp-Eai_socktype,\n" " rp-Eai_protocol);\n" " if (sfd == -1)\n" " continue;\n" "\\&\n" " if (connect(sfd, rp-Eai_addr, rp-Eai_addrlen) != -1)\n" " break; /* Success */\n" "\\&\n" " close(sfd);\n" " }\n" "\\&\n" " freeaddrinfo(result); /* No longer needed */\n" "\\&\n" " if (rp == NULL) { /* No address succeeded */\n" " fprintf(stderr, \"Could not connect\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " /* Send remaining command-line arguments as separate\n" " datagrams, and read responses from server. */\n" "\\&\n" " for (size_t j = 3; j E argc; j++) {\n" " len = strlen(argv[j]) + 1;\n" " /* +1 for terminating null byte */\n" "\\&\n" " if (len E BUF_SIZE) {\n" " fprintf(stderr,\n" " \"Ignoring long message in argument %zu\\en\", j);\n" " continue;\n" " }\n" "\\&\n" " if (write(sfd, argv[j], len) != len) {\n" " fprintf(stderr, \"partial/failed write\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " nread = read(sfd, buf, BUF_SIZE);\n" " if (nread == -1) {\n" " perror(\"read\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " printf(\"Received %zd bytes: %s\\en\", nread, buf);\n" " }\n" "\\&\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. SRC END #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SEE ALSO" msgstr "" #. .BR getipnodebyaddr (3), #. .BR getipnodebyname (3), #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "" "B(3), B(3), B(3), B(3), " "B(5), B(7), B(7)" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "2023-02-05" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "" #. type: TP #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "B, B" msgstr "" #. type: Plain text #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 msgid "" "I contains invalid flags; or, I included " "B and I was NULL." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "POSIX.1-2001, POSIX.1-2008. The B() function is documented in " "RFC\\ 2553." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "B, B, and B are available since glibc " "2.3.3. B is available since glibc 2.3.4." msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "#include Enetdb.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Estring.hE\n" "#include Esys/socket.hE\n" "#include Esys/types.hE\n" "#include Eunistd.hE\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "#define BUF_SIZE 500\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "int\n" "main(int argc, char *argv[])\n" "{\n" " int sfd, s;\n" " char buf[BUF_SIZE];\n" " ssize_t nread;\n" " socklen_t peer_addrlen;\n" " struct addrinfo hints;\n" " struct addrinfo *result, *rp;\n" " struct sockaddr_storage peer_addr;\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (argc != 2) {\n" " fprintf(stderr, \"Usage: %s port\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " memset(&hints, 0, sizeof(hints));\n" " hints.ai_family = AF_UNSPEC; /* Allow IPv4 or IPv6 */\n" " hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */\n" " hints.ai_flags = AI_PASSIVE; /* For wildcard IP address */\n" " hints.ai_protocol = 0; /* Any protocol */\n" " hints.ai_canonname = NULL;\n" " hints.ai_addr = NULL;\n" " hints.ai_next = NULL;\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " s = getaddrinfo(NULL, argv[1], &hints, &result);\n" " if (s != 0) {\n" " fprintf(stderr, \"getaddrinfo: %s\\en\", gai_strerror(s));\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /* getaddrinfo() returns a list of address structures.\n" " Try each address until we successfully bind(2).\n" " If socket(2) (or bind(2)) fails, we (close the socket\n" " and) try the next address. */\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " for (rp = result; rp != NULL; rp = rp-Eai_next) {\n" " sfd = socket(rp-Eai_family, rp-Eai_socktype,\n" " rp-Eai_protocol);\n" " if (sfd == -1)\n" " continue;\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (bind(sfd, rp-Eai_addr, rp-Eai_addrlen) == 0)\n" " break; /* Success */\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " close(sfd);\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " freeaddrinfo(result); /* No longer needed */\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (rp == NULL) { /* No address succeeded */\n" " fprintf(stderr, \"Could not bind\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Read datagrams and echo them back to sender. */\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " for (;;) {\n" " char host[NI_MAXHOST], service[NI_MAXSERV];\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " peer_addrlen = sizeof(peer_addr);\n" " nread = recvfrom(sfd, buf, BUF_SIZE, 0,\n" " (struct sockaddr *) &peer_addr, &peer_addrlen);\n" " if (nread == -1)\n" " continue; /* Ignore failed request */\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " s = getnameinfo((struct sockaddr *) &peer_addr,\n" " peer_addrlen, host, NI_MAXHOST,\n" " service, NI_MAXSERV, NI_NUMERICSERV);\n" " if (s == 0)\n" " printf(\"Received %zd bytes from %s:%s\\en\",\n" " nread, host, service);\n" " else\n" " fprintf(stderr, \"getnameinfo: %s\\en\", gai_strerror(s));\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (sendto(sfd, buf, nread, 0, (struct sockaddr *) &peer_addr,\n" " peer_addrlen) != nread)\n" " {\n" " fprintf(stderr, \"Error sending response\\en\");\n" " }\n" " }\n" "}\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "int\n" "main(int argc, char *argv[])\n" "{\n" " int sfd, s;\n" " char buf[BUF_SIZE];\n" " size_t len;\n" " ssize_t nread;\n" " struct addrinfo hints;\n" " struct addrinfo *result, *rp;\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (argc E 3) {\n" " fprintf(stderr, \"Usage: %s host port msg...\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Obtain address(es) matching host/port. */\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " memset(&hints, 0, sizeof(hints));\n" " hints.ai_family = AF_UNSPEC; /* Allow IPv4 or IPv6 */\n" " hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */\n" " hints.ai_flags = 0;\n" " hints.ai_protocol = 0; /* Any protocol */\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " s = getaddrinfo(argv[1], argv[2], &hints, &result);\n" " if (s != 0) {\n" " fprintf(stderr, \"getaddrinfo: %s\\en\", gai_strerror(s));\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /* getaddrinfo() returns a list of address structures.\n" " Try each address until we successfully connect(2).\n" " If socket(2) (or connect(2)) fails, we (close the socket\n" " and) try the next address. */\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (connect(sfd, rp-Eai_addr, rp-Eai_addrlen) != -1)\n" " break; /* Success */\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (rp == NULL) { /* No address succeeded */\n" " fprintf(stderr, \"Could not connect\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /* Send remaining command-line arguments as separate\n" " datagrams, and read responses from server. */\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " for (size_t j = 3; j E argc; j++) {\n" " len = strlen(argv[j]) + 1;\n" " /* +1 for terminating null byte */\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (len E BUF_SIZE) {\n" " fprintf(stderr,\n" " \"Ignoring long message in argument %zu\\en\", j);\n" " continue;\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (write(sfd, argv[j], len) != len) {\n" " fprintf(stderr, \"partial/failed write\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " nread = read(sfd, buf, BUF_SIZE);\n" " if (nread == -1) {\n" " perror(\"read\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " printf(\"Received %zd bytes: %s\\en\", nread, buf);\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "" #. type: TH #: fedora-rawhide #, no-wrap msgid "2024-02-18" msgstr "" #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "2023-03-30" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "Linux man-pages 6.04" msgstr "" #. .BR getipnodebyaddr (3), #. .BR getipnodebyname (3), #. type: Plain text #: opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B(3), B(3), B(3), B(5), " "B(3), B(5), B(7), B(7)" msgstr "" #. type: TH #: opensuse-tumbleweed #, no-wrap msgid "Linux man-pages (unreleased)" msgstr ""