2f97e349bcd569b1da7a53ba82570f47ae32c365 hiram Mon Jun 21 13:55:18 2021 -0700 replacing hgBotDelayFrac with earlyBotCheck refs #23217 diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index e16e8ae..7f396b0 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -264,30 +264,35 @@ #include "htslib/bgzf.h" #include "htslib/kstring.h" static char *rootDir = "hgcData"; #define LINESIZE 70 /* size of lines in comp seq feature */ struct cart *cart; /* User's settings. */ char *seqName; /* Name of sequence we're working on. */ int winStart, winEnd; /* Bounds of sequence. */ char *database; /* Name of mySQL database. */ char *organism; /* Colloquial name of organism. */ char *genome; /* common name, e.g. Mouse, Human */ char *scientificName; /* Scientific name of organism. */ +/* for earlyBotCheck() function at the beginning of main() */ +#define delayFraction 0.5 /* standard penalty is 1.0 for most CGIs */ + /* this one is 0.5 */ +static boolean issueBotWarning = FALSE; + struct hash *trackHash; /* A hash of all tracks - trackDb valued */ void printLines(FILE *f, char *s, int lineSize); char mousedb[] = "mm3"; #define NUMTRACKS 9 int prevColor[NUMTRACKS]; /* used to optimize color change html commands */ int currentColor[NUMTRACKS]; /* used to optimize color change html commands */ int maxShade = 9; /* Highest shade in a color gradient. */ Color shadesOfGray[10+1]; /* 10 shades of gray from white to black */ Color shadesOfRed[16]; boolean exprBedColorsMade = FALSE; /* Have the shades of red been made? */ int maxRGBShade = 16; @@ -25849,31 +25854,39 @@ customTracksSaveCart(database, cart, theCtList); cartSetString(cart, "i", "PrintAllSequences"); hgCustom(newCts->tdb->track, NULL); } void doMiddle() /* Generate body of HTML. */ { char *track = cartString(cart, "g"); char *item = cloneString(cartOptionalString(cart, "i")); char *parentWigMaf = cartOptionalString(cart, "parentWigMaf"); struct trackDb *tdb = NULL; -hgBotDelayFrac(0.5); +/* used to have hgBotDelayFrac(0.5) here, replaced with earlyBotCheck() + * at the beginning of main() to output message here if in delay time + * 2021-06-21 - Hiram + */ +if (issueBotWarning) + { + char *ip = getenv("REMOTE_ADDR"); + botDelayMessage(ip, botDelayMillis); + } /* database and organism are global variables used in many places */ getDbAndGenome(cart, &database, &genome, NULL); organism = hOrganism(database); scientificName = hScientificName(database); initGenbankTableNames(database); dbIsFound = trackHubDatabase(database) || sqlDatabaseExists(database); // Try to deal with virt chrom position used by hgTracks. // Hack the cart vars to set to a non virtual chrom mode position if (sameString("virt", cartString(cart, "c")) || sameString("getDna", cartUsualString(cart, "g", "")) ) { @@ -27232,23 +27245,25 @@ } void cartDoMiddle(struct cart *theCart) /* Save cart and do main middle handler. */ { initOrgDbHash(); cart = theCart; doMiddle(); } char *excludeVars[] = {"Submit", "submit", "g", "i", "aliTable", "addp", "pred", NULL}; int main(int argc, char *argv[]) { long enteredMainTime = clock1000(); +/* 0, 0, == use default 10 second for warning, 20 second for immediate exit */ +issueBotWarning = earlyBotCheck(enteredMainTime, "hgc", delayFraction, 0, 0, "html"); pushCarefulMemHandler(LIMIT_2or6GB); cgiSpoof(&argc,argv); cartEmptyShell(cartDoMiddle, hUserCookie(), excludeVars, NULL); cgiExitTime("hgc", enteredMainTime); return 0; }