12345678910111213141516171819202122232425262728293031 |
- #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;
- }
|