* operations.
*/
+ retryafsdb:
if ( ! strchr(acellName,'.') ) {
cellnamelength=strlen(acellName);
dotcellname=malloc(cellnamelength+2);
dotcellname[cellnamelength]='.';
dotcellname[cellnamelength+1]=0;
LOCK_GLOBAL_MUTEX;
- len = res_search(dotcellname, C_IN, T_AFSDB, answer, sizeof(answer));
+ len = res_search(dotcellname, C_IN, T_AFSDB, answer, sizeof(answer));
if ( len < 0 ) {
len = res_search(acellName, C_IN, T_AFSDB, answer, sizeof(answer));
}
free(dotcellname);
} else {
LOCK_GLOBAL_MUTEX;
- len = res_search(acellName, C_IN, T_AFSDB, answer, sizeof(answer));
+ len = res_search(acellName, C_IN, T_AFSDB, answer, sizeof(answer));
UNLOCK_GLOBAL_MUTEX;
}
- if (len < 0)
+ if (len < 0) {
+ if (try < 1) {
+ try++;
+ res_init();
+ goto retryafsdb;
+ }
return AFSCONF_NOTFOUND;
+ }
p = answer + sizeof(HEADER); /* Skip header */
code = dn_expand(answer, answer + len, p, host, sizeof(host));