|  | /* | 
|  | * Copyright (C) 2002-2004 by Darren Reed. | 
|  | * | 
|  | * See the IPFILTER.LICENCE file for details on licencing. | 
|  | * | 
|  | * $Id$ | 
|  | */ | 
|  |  | 
|  | #include "ipf.h" | 
|  |  | 
|  | int gethost(name, hostp) | 
|  | char *name; | 
|  | u_32_t *hostp; | 
|  | { | 
|  | struct hostent *h; | 
|  | struct netent *n; | 
|  | u_32_t addr; | 
|  |  | 
|  | if (!strcmp(name, "test.host.dots")) { | 
|  | *hostp = htonl(0xfedcba98); | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | if (!strcmp(name, "<thishost>")) | 
|  | name = thishost; | 
|  |  | 
|  | h = gethostbyname(name); | 
|  | if (h != NULL) { | 
|  | if ((h->h_addr != NULL) && (h->h_length == sizeof(addr))) { | 
|  | bcopy(h->h_addr, (char *)&addr, sizeof(addr)); | 
|  | *hostp = addr; | 
|  | return 0; | 
|  | } | 
|  | } | 
|  |  | 
|  | n = getnetbyname(name); | 
|  | if (n != NULL) { | 
|  | *hostp = (u_32_t)htonl(n->n_net & 0xffffffff); | 
|  | return 0; | 
|  | } | 
|  | return -1; | 
|  | } |