387 Commits

Author SHA1 Message Date
fzerorubigd
f619c854a0 wait for unfinished jobs and close all accepts 2015-05-16 00:53:20 +04:30
Chen Yufei
9162aae88a Sleep on error in accept loop.
Avoid flood of error logs upon too many open file error on Linux.
2014-07-22 23:44:31 +08:00
Chen Yufei
edea3583d4 New load balance strategy: latency.
Select proxy with lowest connection latency.
2014-07-09 10:54:16 +08:00
Chen Yufei
a4fa2816b6 Refactor proxy selection. 2014-07-09 10:54:16 +08:00
Chen Yufei
6d07c41901 Close idle upon too many open fd error. 2014-07-04 21:55:28 +08:00
fzerorubigd
47fa1101e1 add support for using proxy over custom http error code 2014-06-15 19:54:49 +04:30
Chen Yufei
7fe3c1d552 Reset server conn state after getting from pool. 2013-11-22 13:32:32 +08:00
Chen Yufei
cd21806791 Do not retry if there's no parent proxy. 2013-10-31 22:14:15 +08:00
Chen Yufei
2c90662986 Fix keeping cow connection alive. 2013-10-31 16:32:53 +08:00
Chen Yufei
5230bf0d6e Fix using multiplexing connection for direct site. 2013-10-31 16:21:46 +08:00
Chen Yufei
c8216bc0df Always keep cow connection alive for more reuse. 2013-10-31 11:34:49 +08:00
Chen Yufei
ecb3428826 Fix CONNECT bug. 2013-10-31 00:01:07 +08:00
Chen Yufei
4d3ca5bc58 cow chain server done. 2013-10-30 13:17:47 +08:00
Chen Yufei
cfc756f3cb Refactor proxy server representation. 2013-10-26 00:57:59 +08:00
Chen Yufei
8639ef67a0 Small refactor for config parsing. 2013-10-07 00:02:11 +08:00
Chen Yufei
377fd4e392 Take as self request if URL path seem like getting PAC. 2013-08-22 21:00:42 +08:00
Chen Yufei
49b56b6538 Fix handling empty/no Host header. 2013-08-20 00:26:56 +08:00
Chen Yufei
fe42ffe0dc Handle requests with no host in initial request line. 2013-08-20 00:19:41 +08:00
Chen Yufei
7de5e77b2f Refactor (*Response).genStatusLine 2013-08-19 21:45:36 +08:00
Chen Yufei
97ccd5d762 Print server read error type in debug msg. 2013-08-19 17:42:02 +08:00
Chen Yufei
32716c048c Cleanup handle server read error message printing. 2013-08-19 10:48:25 +08:00
Chen Yufei
77a746dd22 More error message when serving request to cow itself. 2013-08-19 10:34:50 +08:00
Chen Yufei
00b459ad0e Comment about http buffer size. 2013-08-09 23:23:36 +08:00
Chen Yufei
b6e82fffa8 Revert "Consolidate connect&http parse buffer, reduce size to 4096."
This reverts commit a6c2d4fa04.

There are sites using very long cookie, like www.fitbit.com. Limiting the buffer
size to 4096 will get buffer full error for those sites.
2013-08-09 09:47:28 +08:00
Chen Yufei
a6c2d4fa04 Consolidate connect&http parse buffer, reduce size to 4096. 2013-08-08 23:24:52 +08:00
Chen Yufei
8d1607486d Print chunk size in debug log. 2013-08-08 22:08:55 +08:00
Chen Yufei
ebc48847ab Use debug log for request retry message. 2013-08-08 13:13:12 +08:00
Chen Yufei
cc70911325 Use debug log for unset timeout error. 2013-08-08 13:10:34 +08:00
Chen Yufei
f2b4db6e3a Use %#v to print malformed data. 2013-08-07 14:15:31 +08:00
Chen Yufei
13421e9b3e Release buffer before putting server conn to pool.
This can save memory if the server conn is not going to be used soon.
2013-08-07 00:14:47 +08:00
Chen Yufei
ec0bace769 Extract (*Request).hasSent 2013-08-06 12:31:12 +08:00
Chen Yufei
9ccf4bf7be Extrace (*serverConn).sendRequestBody 2013-08-06 11:06:30 +08:00
Chen Yufei
946a01efd1 Reorder send body function parameters. 2013-08-06 10:44:22 +08:00
Chen Yufei
6e36cfccd6 Add comment for (*serverWriter).Write 2013-08-06 01:06:15 +08:00
Chen Yufei
91f5d9cfbc Skip request body before reading next upon errPageSent. 2013-08-06 01:06:15 +08:00
Chen Yufei
54946bfdc9 Extract (*Request).hasBody 2013-08-06 01:06:12 +08:00
Chen Yufei
862496fa12 Refactor sendBody. 2013-08-06 00:17:49 +08:00
Chen Yufei
d00fe35bb2 Suppress chunked extension error log in test. 2013-08-05 20:19:13 +08:00
Chen Yufei
1fb6fc4219 Use strict skipCRLF, revert to skipTrailer until find its actual use. 2013-08-05 15:40:12 +08:00
Chen Yufei
4af91eeca5 Print chunk extension if any. 2013-08-05 14:16:34 +08:00
Chen Yufei
080e113393 Refactor parent proxy connection type. 2013-08-05 14:16:09 +08:00
Chen Yufei
656540c904 Simplify error handling in readResponse(), remove errShouldClose. 2013-08-05 00:21:48 +08:00
Chen Yufei
691d364d00 Remove unnecessary "ing" in debug message. 2013-08-03 13:19:28 +08:00
Chen Yufei
9c2cee1782 Print version in startup info log. 2013-08-03 12:51:42 +08:00
Chen Yufei
b6fc2215d0 Increase dial/read timeout for sites with large direct count. 2013-08-02 21:35:07 +08:00
Chen Yufei
8b6822f8fd Tweak debug message. 2013-08-02 19:56:15 +08:00
Chen Yufei
3497ca6fed Close connection if authentication is required.
Fix malformed request problem. Request may have body, but COW does not
skip the body before reading the next request.
2013-08-02 19:29:16 +08:00
Chen Yufei
51344d0e82 Lower case for common error messages. 2013-08-02 11:03:04 +08:00
Chen Yufei
b4e5370a84 Report precise error message to client. 2013-08-02 10:47:07 +08:00
Chen Yufei
72fae5ca18 Skip possible trailers in chunked body. 2013-08-02 01:36:08 +08:00