Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Provide more accurate elapse time measurements in the output log of althttpd.c |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
f474634ac810f2439aa5f6809948503b |
User & Date: | drh 2020-03-20 12:44:34.905 |
Context
2020-03-25
| ||
11:25 | Fix a memory allocation error in CGI handling of althttpd.c. (check-in: e9a50836bc user: drh tags: trunk) | |
2020-03-20
| ||
12:44 | Provide more accurate elapse time measurements in the output log of althttpd.c (check-in: f474634ac8 user: drh tags: trunk) | |
2020-03-16
| ||
15:07 | Performance improvement on CGI handling in althttpd.c (check-in: 1ec2d586fc user: drh tags: trunk) | |
Changes
Changes to misc/althttpd.c.
︙ | ︙ | |||
380 381 382 383 384 385 386 | if( c=='"' ) zOut[j++] = c; } zOut[j] = 0; return zOut; } /* | | | | | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 | if( c=='"' ) zOut[j++] = c; } zOut[j] = 0; return zOut; } /* ** Convert a struct timeval into an integer number of microseconds */ static long long int tvms(struct timeval *p){ return ((long long int)p->tv_sec)*1000000 + (long long int)p->tv_usec; } /* ** Make an entry in the log file. If the HTTP connection should be ** closed, then terminate this process. Otherwise return. */ static void MakeLogEntry(int exitCode, int lineNum){ |
︙ | ︙ | |||
453 454 455 456 457 458 459 | ** (14) User agent ** (15) Remote user ** (16) Bytes of URL that correspond to the SCRIPT_NAME ** (17) Line number in source file */ fprintf(log, "%s,%s,\"%s://%s%s\",\"%s\"," | | < | 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 | ** (14) User agent ** (15) Remote user ** (16) Bytes of URL that correspond to the SCRIPT_NAME ** (17) Line number in source file */ fprintf(log, "%s,%s,\"%s://%s%s\",\"%s\"," "%s,%d,%d,%lld,%lld,%lld,%lld,%lld,%d,\"%s\",\"%s\",%d,%d\n", zDate, zRemoteAddr, zHttp, Escape(zHttpHost), Escape(zScript), Escape(zReferer), zReplyStatus, nIn, nOut, tvms(&self.ru_utime) - tvms(&priorSelf.ru_utime), tvms(&self.ru_stime) - tvms(&priorSelf.ru_stime), tvms(&children.ru_utime) - tvms(&priorChild.ru_utime), tvms(&children.ru_stime) - tvms(&priorChild.ru_stime), tvms(&now) - tvms(&beginTime), nRequest, Escape(zAgent), Escape(zRM), (int)(strlen(zHttp)+strlen(zHttpHost)+strlen(zRealScript)+3), lineNum ); priorSelf = self; priorChild = children; #endif fclose(log); nIn = nOut = 0; } } if( closeConnection ){ exit(exitCode); |
︙ | ︙ | |||
1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 | /* Get the first line of the request and parse out the ** method, the script and the protocol. */ if( fgets(zLine,sizeof(zLine),stdin)==0 ){ exit(0); } omitLog = 0; nIn += strlen(zLine); /* Parse the first line of the HTTP request */ zMethod = StrDup(GetFirstElement(zLine,&z)); zRealScript = zScript = StrDup(GetFirstElement(z,&z)); zProtocol = StrDup(GetFirstElement(z,&z)); | > | 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 | /* Get the first line of the request and parse out the ** method, the script and the protocol. */ if( fgets(zLine,sizeof(zLine),stdin)==0 ){ exit(0); } gettimeofday(&beginTime, 0); omitLog = 0; nIn += strlen(zLine); /* Parse the first line of the HTTP request */ zMethod = StrDup(GetFirstElement(zLine,&z)); zRealScript = zScript = StrDup(GetFirstElement(z,&z)); zProtocol = StrDup(GetFirstElement(z,&z)); |
︙ | ︙ |