Книга: UNIX: разработка сетевых приложений

Функция getipnodebyname

Функция getipnodebyname

Документ RFC 2553 [38] запретил использование RES_USE_INET6 и gethostbyname2 из-за глобальности флага RES_USE_INET6 и желания предоставить больше возможностей по управлению возвращаемыми сведениями. Для решения перечисленных проблем была предложена функция getipnodebyname.

#include <sys/socket.h>
#include <netdb.h>
struct hostent *getipnodebyname(const char *name, int af,
 int flags, int *error_num);
Возвращает: ненулевой указатель в случае успешного завершения, нулевой в случае ошибки

Функция возвращает указатель на ту же структуру hostent, которая использовалась gethostbyname. Аргументы af и flags непосредственно соответствуют полям hints.ai_family и hints.ai_flags. Для обеспечения безопасности в многопоточной среде возвращаемое значение выделяется динамически, поэтому его приходится освобождать вызовом freehostent.

#include <netdb.h>
void freehostent(struct hostent *ptr);

Функции getipnodebyname и getipnodebyaddr были отменены в RFC 3493 [36], а вместо них было предложено использовать getaddrinfo и getnameinfo.

Оглавление книги


Генерация: 1.987. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз