f38011f21a948e7ca2d51ec65f3c5136cd52351e jcasper Thu Apr 7 11:57:53 2016 -0700 botDelay now warns with warn() to avoid corrupting HTTP headers, refs #17113 diff --git src/hg/lib/botDelay.c src/hg/lib/botDelay.c index 8821438..83d7de6 100644 --- src/hg/lib/botDelay.c +++ src/hg/lib/botDelay.c @@ -19,45 +19,45 @@ /* Figure out suggested delay time for ip address in * milliseconds. */ { int sd = netMustConnect(host, port); char buf[256]; netSendString(sd, botCheckString); netRecieveString(sd, buf); close(sd); return atoi(buf); } void botDelayMessage(char *ip, int millis) /* Print out message saying why you are stalled. */ { time_t now = time(NULL); -printf("
There is a very high volume of traffic coming from your " +warn("There is a very high volume of traffic coming from your " "site (IP address %s) as of %s (California time). So that other " "users get a fair share " "of our bandwidth, we are putting in a delay of %3.1f seconds " "before we service your request. This delay will slowly " "decrease over a half hour as activity returns to normal. This " "high volume of traffic is likely due to program-driven rather than " "interactive access, or the submission of queries on a large " "number of sequences. If you are making large batch queries, " "please write to our genome@cse.ucsc.edu public mailing list " "and inquire about more efficient ways to access our data. " "If you are sharing an IP address with someone who is submitting " "large batch queries, we apologize for the " "inconvenience. Please contact genome-www@cse.ucsc.edu if " - "you think this delay is being imposed unfairly.

", + "you think this delay is being imposed unfairly.", ip, asctime(localtime(&now)), .001*millis); } void botTerminateMessage(char *ip, int millis) /* Print out message saying why you are terminated. */ { time_t now = time(NULL); hUserAbort("There is an exceedingly high volume of traffic coming from your " "site (IP address %s) as of %s (California time). It looks like " "a web robot is launching queries quickly, and not even waiting for " "the results of one query to finish before launching another query. " "/* We cannot service requests from your IP address under */ these " "conditions. (code %d)", ip, asctime(localtime(&now)), millis); }