blob: f74997c2ef0867382b043b129183cb62bbf729ed (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
/*
* Portable and simple host name lookup fuction.
* $Id$
* Copyright (c) 1997 by Tycho Softworks.
* For conditions of distribution and reuse see product license.
*/
#include <net/socket.h>
struct hostent *gethost(const char *hostname)
{
static struct in_addr saddr;
struct hostent *hp;
static struct hostent np;
static char host[24];
static char *alias[] = {NULL};
static struct in_addr *alist[] = {&saddr, NULL};
if(!hostname)
return NULL;
if(isdigit(*hostname))
{
saddr.s_addr = inet_addr(hostname);
hp = gethostbyaddr((void *)&saddr, sizeof(struct in_addr), AF_INET);
if(hp)
return hp;
strcpy(host, hostname);
np.h_name = host;
np.h_aliases = alias;
np.h_addrtype = AF_INET;
np.h_length = 4;
np.h_addr_list = (char **)alist;
return &np;
}
else
return gethostbyname(hostname);
}
|