ecba53cfcf13a435e7935340a5ddb73737c5006d
braney
  Fri Jan 22 14:55:31 2021 -0800
change the way we discover files on beta and the rr for the bigDataUrl check

diff --git src/hg/lib/hdb.c src/hg/lib/hdb.c
index 075ab64..9da9138 100644
--- src/hg/lib/hdb.c
+++ src/hg/lib/hdb.c
@@ -3920,74 +3920,74 @@
     if (loadOneTrackDb(db, where, one->name, &tdbList, loaded))
         foundOne = TRUE;
     }
 if (!foundOne)
     errAbort("can not find any trackDb tables for %s, check db.trackDb specification in hg.conf",
              db);
 slNameFreeList(&tableList);
 hashFree(&loaded);
 
 /* fill in supertrack fields, if any in settings */
 trackDbSuperMarkup(tdbList);
 trackDbAddTableField(tdbList);
 return tdbList;
 }
 
-boolean trackDataAccessibleRemote(char *database, struct trackDb *tdb, char *remoteLogin)
+boolean trackDataAccessibleHash(char *database, struct trackDb *tdb, struct hash *gbdbHash)
 /* Return TRUE if underlying data are accessible - meaning the track has either
  * a bigDataUrl with remote URL (http:// etc), a bigDataUrl with an existing local file,
  * or a database table with the same name.
  * Note: this returns FALSE for composite tracks; use this on subtracks or simple tracks. 
  *
- * if remoteLogin is not NULL, use it when looking for the file */
+ * if gbdbHash is not NULL, use it when looking for the file */
 {
 if (startsWith("mathWig", tdb->type))
     return TRUE; // assume mathWig data is available.  Fail at load time if it isn't
 char *bigDataUrl = trackDbSetting(tdb, "bigDataUrl");
 if (bigDataUrl != NULL)
     {
     bigDataUrl = replaceChars(bigDataUrl, "$D", database);
     char *bigDataUrlLocal = hReplaceGbdb(bigDataUrl);
     if (hasProtocol(bigDataUrlLocal))
         return TRUE;
     else
         {
-        if (remoteLogin == NULL)
+        if (gbdbHash == NULL)
             return fileExists(bigDataUrlLocal);
         else
-            return remoteFileExists(remoteLogin, bigDataUrlLocal);
+            return hashLookup(gbdbHash, bigDataUrlLocal) != NULL;
         }
     }
 else
     {
     // we now allow references to native tracks in track hubs
     tdb->table = trackHubSkipHubName(tdb->table);
 
     // if it's copied from a custom track, wait to find data later
     if (isCustomTrack(tdb->table))
         return TRUE;
     return (hTableForTrack(database, tdb->table) != NULL);
     }
 }
 
 boolean trackDataAccessible(char *database, struct trackDb *tdb)
 /* Return TRUE if underlying data are accessible - meaning the track has either
  * a bigDataUrl with remote URL (http:// etc), a bigDataUrl with an existing local file,
  * or a database table with the same name.
  * Note: this returns FALSE for composite tracks; use this on subtracks or simple tracks. */
 {
-return trackDataAccessibleRemote(database, tdb, NULL);
+return trackDataAccessibleHash(database, tdb, NULL);
 }
 
 
 static void addTrackIfDataAccessible(char *database, struct trackDb *tdb,
 	       boolean privateHost, struct trackDb **tdbRetList)
 /* check if a trackDb entry should be included in display, and if so
  * add it to the list, otherwise free it */
 {
 if ((!tdb->private || privateHost) && trackDataAccessible(database, tdb))
     slAddHead(tdbRetList, tdb);
 else if (tdbIsDownloadsOnly(tdb))
     {
     // While it would be good to make table NULL, since we should support tracks
     // without tables (composties, etc) and even data tracks without tables (bigWigs).
     // However, some CGIs still need careful bullet-proofing.  I have done so with