- if (!(*hpp = gethostbyaddr((const char *)&addr, sizeof(addr), AF_INET)))
- *hpp = get_hostent((const char *)&addr, sizeof(addr),
- AF_INET);
- else {
+ /* First try it w/o doing a hostname lookup... */
+ *hpp = get_hostent((const char *)&addr, sizeof(addr), AF_INET);
+ exp = export_find(*hpp, path);
+
+ if (!exp) {
+ /* Ok, that didn't fly. Try it with a reverse lookup. */
+ free (*hpp);
+ *hpp = gethostbyaddr((const char *)&addr, sizeof(addr),
+ AF_INET);
+ if (!(*hpp)) {
+ *error = no_entry;
+ *hpp = get_hostent((const char *)&addr, sizeof(addr), AF_INET);
+ return NULL;
+ } else {