Provided by: manpages-pl-dev_20060617-3_all bug

NAZWA

       getaddrinfo - tlumaczenie adresow i uslug sieciowych

SK/LADNIA

       #include <sys/types.h>
       #include <sys/socket.h>
       #include <netdb.h>

       int getaddrinfo(const char *node, const char *service,
                       const struct addrinfo *hints,
                       struct addrinfo **res);

       void freeaddrinfo(struct addrinfo *res);

       const char *gai_strerror(int errcode);

OPIS

       Funkcja  getaddrinfo(3)  lczy  w  pojedynczym  interfejsie funkcjonalno
       udostpnian  przez   funkcje   getipnodebyname(3),   getipnodebyaddr(3),
       getservbyname  (3)  i getservbyport(3).  Przystosowana do wielowtkowoci
       funkcja  getaddrinfo(3)  tworzy  jedn  lub  wicej  struktur  adresowych
       gniazda,  ktore  mog  by wykorzystane przez funkcje systemowe bind(2) i
       connect(2) do utworzenia gniazda klienta lub serwera.

       Funkcja getaddrinfo(3)  nie  jest  ograniczona  do  tworzenia  struktur
       adresowych  gniazd  IPv4.  Gniazda  IPv6  mog rownie by tworzone za jej
       pomoc, o ile dostpne jest wspomaganie dla IPv6. Te  struktury  adresowe
       gniazd  mog  by  bezporednio wykorzystane przez bind(2) i connect(2) do
       sporzdzenia gniazda klienta lub serwera.

       Struktura addrinfo uywana przez t funkcj zawiera nastpujce pola:

       struct addrinfo {
           int     ai_flags;
           int     ai_family;
           int     ai_socktype;
           int     ai_protocol;
           size_t  ai_addrlen;
           struct sockaddr *ai_addr;
           char   *ai_canonname;
           struct addrinfo *ai_next;
       };

       getaddrinfo(3) ustawia res, aby wskazywalo  na  dynamicznie  zaalokowan
       list  struktur  addrinfo,  dowizan  do  pola  ai_next.   Istnieje kilka
       powodow, dla ktorych lista moe zawiera wicej ni jedn struktur addrinfo,
       wlczajc  w  to: posiadanie przez host wielu interfejsow sieciowych oraz
       dostpno tej samej uslugi poprzez wiele protokolow gniazda (na przyklad,
       gdy jednym z nich jest SOCK_STREAM, a innym SOCK_DGRAM).

       Pola  ai_family,  ai_socktype  i ai_protocol maj to samo znaczenie jako
       odpowiednie  parametry  wywolania   systemowego   socket(2).    Funkcja
       getaddrinfo(3)  zwraca  adresy gniazd IPv4 lub IPv6 (ai_family zostanie
       ustawione albo na PF_INET albo na PF_INET6).

       Parametr hints okrela preferowany rodzaj gniazda lub  protokol.   Warto
       NULL  dla  hints  okrela, e akceptowany jest dowolny adres sieciowy lub
       protokol.  Jeli parametr ten ma warto  ron  od  NULL,  wskazuje  on  na
       struktur  addrinfo,  w ktorej pola ai_family, ai_socktype i ai_protocol
       okrelaj preferowany  rodzaj  gniazda.   PF_UNSPEC  w  ai_family  okrela
       dowoln  rodzin protokolow (na przyklad IPv4 lub IPv6).  0 w ai_socktype
       lub ai_protocol stwierdza, e akceptowalny jest  rownie  dowolny  rodzaj
       gniazda  lub  protokol.   Pole ai_flags zawiera dodatkowe, zdefiniowane
       poniej, opcje.  Wiele  znacznikow  podaje  si  jako  ich  logiczne  OR.
       Wszystkie  pozostale  pola  parametru  hints  musz  zawiera albo 0 albo
       wskanik NULL.

       Parametry node i service mog by rowne NULL, ale nie  oba  naraz.   node
       zawiera   albo   adres  sieciowy  w  postaci  numerycznej  (w  formacie
       dziesitnych  liczb  rozdzielonych  kropkami  dla  IPv4,  a  w  formacie
       szesnastkowym  dla IPv6) albo nazw hosta, dla ktorej adresy sieciowe bd
       poszukiwane i rozwizane.  Jeli pole ai_flags  parametru  hints  zawiera
       znacznik  AI_NUMERICHOST,  to parametr node musi by adresem sieciowym w
       postaci numerycznej.  Znacznik AI_NUMERICHOST  eliminuje  jakiekolwiek,
       potencjalnie dlugotrwale, poszukiwania adresu sieciowego hosta.

       Funkcja  getaddrinfo(3)  tworzy  list  struktur addrinfo, po jednej dla
       kadej  podstawy  ograniczenia  adresow  sieciowych   narzuconej   przez
       parametr hints.  Gdy ai_flags w hints zawiera znacznik AI_CANONNAME, to
       ai_canonname jest ustawiane tak, aby wskazywalo na oficjaln nazw hosta.
       ai_family,  ai_socktype  i  ai_protocol  zawieraj  parametry  tworzenia
       gniazda.  Wskanik do adresu gniazda jest umieszczany w polu ai_addr,  a
       dlugo adresu gniazda w bajtach jest umieszczana w polu ai_addrlen.

       Gdy  node  jest  rowne NULL, inicjalizacja adresu sieciowego w kadej ze
       struktur gniazda zaley od znacznika AI_PASSIVE, ktory jest ustawiany  w
       polu ai_flags parametru hints.  Gdy znacznik AI_PASSIVE jest ustawiony,
       to adres sieciowy w kadej ze struktur gniazda  pozostanie  nieokrelony.
       Jest   to  wykorzystywane  przez  programy  serwerow,  ktore  zamierzaj
       przyjmowa  polczenia  od  klientow  na  dowolny  adres  sieciowy.   Gdy
       znacznik  AI_PASSIVE  nie  jest  ustawiony,  to adres sieciowy zostanie
       ustawiony na adres interfejsu loopback.  Jest to  wykorzystywane  przez
       programy  klienckie, ktore zamierzaj polczy si z serwerem dzialajcym na
       tym samym hocie.

       service ustawia numer portu  w  adresie  sieciowym  kadej  ze  struktur
       gniazda.   Jeli  service  jest  rone od NULL, to numer portu pozostanie
       niezainicjalizowany.

       Funkcja  freeaddrinfo(3)  zwalnia  pami  przydzielon  dla   dynamicznie
       zaalokowanej listy res.

WARTO ZWRACANA

       getaddrinfo(3)  zwraca 0, gdy zakoczy si pomylnie, a w przeciwnym razie
       jeden z nastpujcych niezerowych kodow bldow:

       EAI_FAMILY
              Zupelny brak wsparcia dla danej rodziny adresow.

       EAI_SOCKTYPE
              Zupelny brak wsparcia dla danego rodzaju gniazda.

       EAI_BADFLAGS
              ai_flags zawiera nieprawidlowe znaczniki.

       EAI_NONAME
              node lub service jes nieznane.  Ten bld  jest  rownie  zwracany,
              gdy zarowno node, jak i service s rowne NULL.

       EAI_SERVICE
              dana  usluga nie jest dostpna dla zadanego rodzaju gniazda.  Moe
              ona jednak by dostpna dla innego rodzaju gniazda.

       EAI_ADDRFAMILY
              Podany host nie posiada adnego  adresu  sieciowego  dla  zadanej
              rodziny adresow.

       EAI_NODATA
              Podany  host  istnieje,  ale  nie  zdefiniowano dla niego adnego
              adresu sieciowego.

       EAI_MEMORY
              Brak pamici.

       EAI_FAIL
              Serwer nazw zwrocil bld trwaly.

       EAI_AGAIN
              Serwer nazw zwrocil bld tymczasowy.  Naley sprobowa poniej.

       EAI_SYSTEM
              Inny bld systemowy; szczegolowe informacje zawarte s w errno.

       Funkcja  gai_strerror(3)  tlumaczy  te  kody  bldow  na  czytelny   dla
       czlowieka napis, odpowiedni dla zglaszania bldow.

ZOBACZ TAKE

       getipnodebyname(3), getipnodebyaddr(3)

INFORMACJE O T/LUMACZENIU

       Powysze  tlumaczenie  pochodzi z nieistniejcego ju Projektu Tlumaczenia
       Manuali i moe nie by aktualne. W razie zauwaenia ronic  midzy  powyszym
       opisem  a  rzeczywistym  zachowaniem  opisywanego programu lub funkcji,
       prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.