Shawn O. Pearce wrote:
+#define hex(a) (hexchar[(a) & 15]) +static void chunked_write(const char *fmt, ...) +{ + static const char hexchar[] = "0123456789abcdef"; + va_list args; + unsigned n; + + va_start(args, fmt); + n = vsnprintf(buffer + 6, sizeof(buffer) - 8, fmt, args); + va_end(args); + if (n >= sizeof(buffer) - 8) + die("protocol error: impossibly long line"); + + if (can_chunk) { + unsigned len = n + 4, b = 4; + + buffer[4] = '\r'; + buffer[5] = '\n'; + buffer[n + 6] = '\r'; + buffer[n + 7] = '\n'; + + while (n > 0) { + buffer[--b] = hex(n); + n >>= 4; + len++; + } + + safe_write(1, buffer + b, len); + } else + safe_write(1, buffer + 6, n); +}
Maybe I am slightly confused, but I thought handling HTTP chunking for HTTP/1.1+ clients was usually done by Apache above the level of the CGI script?
-hpa -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html