dcabcf3e37e0b1e3c71b6a98358c1fb844ca3b8a braney Tue Apr 22 12:26:11 2025 -0700 sessions save a copy of the quickLift hub. diff --git src/hg/lib/hubConnect.c src/hg/lib/hubConnect.c index 38a2f70c5c5..12c491c9c46 100644 --- src/hg/lib/hubConnect.c +++ src/hg/lib/hubConnect.c @@ -124,31 +124,31 @@ if (firstOne) firstOne = FALSE; else dyStringAppendC(trackHubs, ' '); dyStringAppend(trackHubs, hubVar->name + prefixLength); } } slPairFreeList(&hubVarList); // now see if we should quicklift any hubs struct sqlConnection *conn = hConnectCentral(); char query[2048]; hubVarList = cartVarsWithPrefix(cart, "quickLift"); for (hubVar = hubVarList; hubVar != NULL; hubVar = hubVar->next) { - unsigned hubNumber = atoi(hubVar->name + sizeof("quickLift")); + unsigned hubNumber = atoi(hubVar->name + strlen("quickLift.")); sqlSafef(query, sizeof(query), "select hubUrl from hubStatus where id='%d'", hubNumber); char *hubUrl = sqlQuickString(conn, query); char *errorMessage; unsigned hubId = hubFindOrAddUrlInStatusTable(cart, hubUrl, &errorMessage); if (firstOne) firstOne = FALSE; else dyStringAppendC(trackHubs, ' '); dyStringPrintf(trackHubs, "%d:%s", hubId,(char *)hubVar->val); } hDisconnectCentral(&conn); cartSetString(cart, hubConnectTrackHubsVarName, trackHubs->string); dyStringFree(&trackHubs); @@ -330,31 +330,34 @@ char query[4096]; sqlSafef(query, sizeof(query), "select fromDb, toDb, path from %s where id = \"%s\"", "quickLiftChain", colon); struct sqlResult *sr = sqlGetResult(conn, query); char **row; char *replaceDb = NULL; char *quickLiftChain = NULL; char *toDb = NULL; while ((row = sqlNextRow(sr)) != NULL) { replaceDb = cloneString(row[0]); toDb = cloneString(row[1]); quickLiftChain = cloneString(row[2]); break; // there's only one } sqlFreeResult(&sr); - if (sameOk(toDb, hubConnectSkipHubPrefix(db))) + +// this line needs to be reintroduced somehow to prevent quickLift hubs from +// being loaded on the wrong database, but it depends on db being set, which it isn't always at this point +// if (sameOk(toDb, hubConnectSkipHubPrefix(db))) hub = hubConnectStatusForIdExt(conn, id, replaceDb, toDb, quickLiftChain); } if (hub != NULL) { if (!isEmpty(hub->errorMessage) && (strstr(hub->hubUrl, "hgComposite") != NULL)) { // custom collection hub has disappeared. Remove it from cart cartSetString(cart, hgHubConnectRemakeTrackHub, "on"); char buffer[1024]; safef(buffer, sizeof buffer, "hgHubConnect.hub.%d", id); cartRemove(cart, buffer); } else slAddHead(&hubList, hub); }