diff options
author | William Harrington <kb0iic@berzerkula.org> | 2025-01-14 16:06:02 -0600 |
---|---|---|
committer | William Harrington <kb0iic@berzerkula.org> | 2025-01-14 16:06:02 -0600 |
commit | 0cc9b20c15460213e488bf5e70963b941482f628 (patch) | |
tree | bb0143245583ec846630f39bfa2258dba640ccd7 /sdk/net/gethost.c | |
parent | 0e084ade5069756d487b5c948c48b777e37c00c9 (diff) |
Add source.
Diffstat (limited to 'sdk/net/gethost.c')
-rw-r--r-- | sdk/net/gethost.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/sdk/net/gethost.c b/sdk/net/gethost.c new file mode 100644 index 0000000..f74997c --- /dev/null +++ b/sdk/net/gethost.c @@ -0,0 +1,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); +} |