blob: ee49db2d772f57a16b40a2f2b6102828dafba8f8 [file] [log] [blame]
Benny Prijono4766ffe2005-11-01 17:56:59 +00001/* $Id$
Benny Prijonodd859a62005-11-01 16:42:51 +00002 */
3#include <pj/addr_resolv.h>
4#include <pj/assert.h>
5#include <pj/string.h>
6#include <pj/compat/socket.h>
7#include <pj/errno.h>
8
9
10PJ_DEF(pj_status_t) pj_gethostbyname(const pj_str_t *hostname, pj_hostent *phe)
11{
12 struct hostent *he;
13 char copy[PJ_MAX_HOSTNAME];
14
15 pj_assert(hostname && hostname ->slen < PJ_MAX_HOSTNAME);
16
17 if (hostname->slen >= PJ_MAX_HOSTNAME)
18 return PJ_ENAMETOOLONG;
19
20 pj_memcpy(copy, hostname->ptr, hostname->slen);
21 copy[ hostname->slen ] = '\0';
22
23 he = gethostbyname(copy);
24 if (!he)
25 return PJ_RETURN_OS_ERROR(pj_get_native_netos_error());
26
27 phe->h_name = he->h_name;
28 phe->h_aliases = he->h_aliases;
29 phe->h_addrtype = he->h_addrtype;
30 phe->h_length = he->h_length;
31 phe->h_addr_list = he->h_addr_list;
32
33 return PJ_SUCCESS;
34}
35