3b2f2b6a075942048a3acac89af44e332a326b7b galt Thu Jun 13 16:23:19 2019 -0700 Enable > 4GB uploads by increasing maximium size of dyString to long (64 bits size) instead of int (32 bits size). This limit was impeding uploads artificially at 4GB. diff --git src/hg/encode3/encodeDataWarehouse/edwWebAuthLogin/edwWebAuthLogin.c src/hg/encode3/encodeDataWarehouse/edwWebAuthLogin/edwWebAuthLogin.c index b5e5008..e2aa797 100644 --- src/hg/encode3/encodeDataWarehouse/edwWebAuthLogin/edwWebAuthLogin.c +++ src/hg/encode3/encodeDataWarehouse/edwWebAuthLogin/edwWebAuthLogin.c @@ -54,31 +54,31 @@ { /* Get assertion out of CGI variables we were passed. Put it and pointer to self * into cgi variables to pass to assertion checker. */ struct dyString *dyCgi = dyStringNew(0); char *assertion=cgiString("assertion"); cgiEncodeIntoDy("assertion", assertion, dyCgi); char *server = mustGetEnv("SERVER_NAME"); char *port = mustGetEnv("SERVER_PORT"); char serverAndPort[2+strlen(server)+strlen(port)]; safef(serverAndPort, sizeof(serverAndPort), "%s:%s", server, port); cgiEncodeIntoDy("audience", serverAndPort, dyCgi); /* Pass a little CGI post request to Persona including our CGI vars. */ struct dyString *dyHeader = dyStringNew(0); dyStringPrintf(dyHeader, "Content-type: application/x-www-form-urlencoded\r\n"); -dyStringPrintf(dyHeader, "Content-length: %d\r\n", dyCgi->stringSize); +dyStringPrintf(dyHeader, "Content-length: %ld\r\n", dyCgi->stringSize); int sd = netOpenHttpExt(personaUrl, "POST", dyHeader->string); mustWriteFd(sd, dyCgi->string, dyCgi->stringSize); /* Get Persona's response up through end of HTTP header */ /* There's probably a simpler way to do this. We don't need the forwarding. */ char *newUrl = NULL; int newSd = 0; if (!netSkipHttpHeaderLinesHandlingRedirect(sd, personaUrl, &newSd, &newUrl)) errAbort("%s didn't give a good http header", personaUrl); if (newUrl != NULL) { sd = newSd; freeMem(newUrl); }