1 /**************************************************************************
2 ** (c) Copyright 2012, Andromeda Technology & Automation
3 ***************************************************************************
4 ** MODULE INFORMATION *
5 ***********************
6 ** FILE NAME : host.cpp
7 ** SYSTEM NAME : Network and socket classes
8 ** VERSION NUMBER : 0.1
10 ** DESCRIPTION : Host class implementation
12 ** EXPORTED OBJECTS : class Host
15 ***************************************************************************
16 ** ADMINISTRATIVE INFORMATION *
17 ********************************
18 ** ORIGINAL AUTHOR : Arjen Baart - arjen@andromeda.nl
19 ** CREATION DATE : Mar 02, 2012
20 ** LAST UPDATE : Mar 05, 2012
22 **************************************************************************/
27 /*=========================================================================
28 ** NAME : Host::FindAddress
31 ** RETURN VALUE : List of InternetAddress objects
33 ** DESCRIPTION : Find all addresses given the hostname.
39 ** LAST MODIFIED : Mar 05, 2012
40 **=========================================================================
43 std::list<InternetAddress> Host::FindAddress()
45 struct addrinfo hints;
46 struct addrinfo *res, *rp;
48 hints.ai_family = AF_UNSPEC; /* Allow IPv4 or IPv6 */
49 hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */
51 hints.ai_protocol = 0; /* Any protocol */
52 hints.ai_canonname = NULL;
56 int error = getaddrinfo(name, NULL, &hints, &res);
59 for (rp = res; rp != NULL; rp = rp->ai_next)
61 InternetAddress ipaddr(rp);
62 addresses.push_back(ipaddr);