blob: 0737294ac13faea432b56e57f11d1e0063d8f103 (
plain) (
blame)
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
|
#include "resolv.h"
static struct resolver resolvers[0] __table_start(resolver);
static struct resolver resolvers_end[0] __table_end(resolver);
/*
* Resolve a name (which may be just a dotted quad IP address) to an
* IP address.
*
*/
int resolv ( struct in_addr *address, const char *name ) {
struct resolver *resolver;
/* Check for a dotted quad IP address first */
if ( inet_aton ( name, address ) ) {
DBG ( "RESOLV saw valid IP address %s\n", name );
return 1;
}
/* Try any compiled-in name resolution modules */
for ( resolver = resolvers ; resolver < resolvers_end ; resolver++ ) {
if ( resolver->resolv ( address, name ) ) {
DBG ( "RESOLV resolved \"%s\" to %@ using %s\n",
name, address->s_addr, resolver->name );
return 1;
}
}
DBG ( "RESOLV failed to resolve %s\n", name );
return 0;
}
|