extern "C" {
#include <afs/param.h>
#include <afs/stds.h>
+#include <afs/cm.h>
#include <rx/rxkad.h>
#include <afs/cm_config.h>
}
{
BOOL fFound = FALSE;
CELLSERVDB CellServDB;
-
- if (CSDB_ReadFile (&CellServDB, NULL))
+ char cellname[256], i;
+
+ /* we pray for all ascii cellnames */
+ for ( i=0 ; pszCell[i] && i < (sizeof(cellname)-1) ; i++ )
+ cellname[i] = pszCell[i];
+ cellname[i] = '\0';
+
+ ULONG code = cm_SearchCellRegistry(1, cellname, NULL, NULL, NULL, NULL);
+ if (code == 0)
+ fFound = TRUE;
+ if (!fFound &&
+ (code != CM_ERROR_FORCE_DNS_LOOKUP) &&
+ CSDB_ReadFile (&CellServDB, NULL))
{
if (CSDB_FindCell (&CellServDB, pszCell))
fFound = TRUE;
#ifdef AFS_AFSDB_ENV
if ( fFound == FALSE ) {
int ttl;
- char cellname[128], i;
-
- /* we pray for all ascii cellnames */
- for ( i=0 ; pszCell[i] && i < (sizeof(cellname)-1) ; i++ )
- cellname[i] = pszCell[i];
- cellname[i] = '\0';
-
fFound = !cm_SearchCellByDNS(cellname, NULL, &ttl, NULL, NULL);
}
#endif
+ done:
+
return fFound;
}
extern "C" {
#include <afs/param.h>
#include <afs/stds.h>
+#include <afs/cm.h>
#include <afs/cm_config.h>
}
return FALSE;
}
- if (!CSDB_FindCell (&g.Configuration.CellServDB, szCell))
+ char cellname[256], i;
+
+ /* we pray for all ascii cellnames */
+ for ( i=0 ; szCell[i] && i < (sizeof(cellname)-1) ; i++ )
+ cellname[i] = szCell[i];
+ cellname[i] = '\0';
+
+ ULONG code = cm_SearchCellRegistry(1, cellname, NULL, NULL, NULL, NULL);
+ if (code &&
+ code != CM_ERROR_FORCE_DNS_LOOKUP &&
+ !CSDB_FindCell (&g.Configuration.CellServDB, szCell))
{
#ifdef AFS_AFSDB_ENV
int ttl;
- char cellname[128], i;
-
- /* we pray for all ascii cellnames */
- for ( i=0 ; szCell[i] && i < (sizeof(cellname)-1) ; i++ )
- cellname[i] = szCell[i];
- cellname[i] = '\0';
-
if (cm_SearchCellByDNS(cellname, NULL, &ttl, NULL, NULL))
#endif
{