-
Notifications
You must be signed in to change notification settings - Fork 36
/
CHANGELOG
156 lines (141 loc) · 7.78 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
Version explained:
major : codebase
minor : increase on new features
bug : increase on bug fixes
Version 1.2.2 -
* Fix: handle blocking exception when writing on messagebox
reported by Tim Watts
* Fix: a few issues reported by pycharm
* Fix: honour configuration directing the proxy to use the source IP address
provided over the proxy protocol
* Fix: error sending requests to the backend decider processes when running as
an ICAP server
* Fix: error enumerating network interfaces that do not have IP addresses
reported with fix by asthomas
* Fix: do not block waiting for a response from the redirector process since we can
end up with a deadlock
reported by Emanuele Rocca
* Improvement: free memory that could be held by the client coroutine during long lived connections
Version 1.2.1 - 21st of August 2014
* Fix: issue with handling of max-forwards
patch by Tim Watts
* Fix: gracefully shutdown when trying to read over a closed pipe for communication
with another process
reported by Emanuele Rocca
* Fix: issue #9, pip installation
Version 1.2.0 - 11th of August 2014
* Feature: ICAP is the new black
* Feature: Separate process to manage workers
* Improvement: Smaller, faster core reactor ( only moving data around )
* Improvement: better logging
* Improvement: internal APC API ( should you care :p )
* Improvement: automatically pick the best reactor by default
* Improvement: kqueue reactor
patch by: Marek Obuchowicz
* Improvement: exaproxy.http.mask to remove the presence of any previous proxy
patch by: Emanuele Rocca
* Improvement: Forked children managed by a dedicated process (as Squid wants to do)
* Change: do not fail back to select if the request reactor is not available
* Fix: client tracking code was reporting bad information
* Fix: on exit try to flush the last logs
* Fix: badly tracking processes
patch by: Tim Watts
* Fix: references to closed sockets
* Fix: correctly reports version on help
* Fix: duplicate output
* Fix: And many more David did not record tsss tsss ...
Version 1.1.2 - 6th of July 2013
* Improvement: added the opened connection where the client never spoke to the graphs
* Improvement: can timeout new HTTP connection which does not send data (new connections idle timeout)
* Improvement: let pass invalid pre-RFC 2616 syntaxes
* Improvement: record number of requests seen
* Backward compatibility: changed the name of the clients. and servers. keys
* Fix: do not assume that our synchronous reads return all the data we ask for
* Improvement: add required X-Forwarded-For header
* Improvement/Fix: fix scalability issue for large number of open connections ( over 30k )
Version 1.1.1 - 30th of April 2013
* Fix: new requests on an existing connection would destroy the buffer and cause us to wake up at every loop.
* Fix: correctly report our verion on the webpage we serve
* Fix: do not fail if python was compiled without IPv6 support
* Improvement: allow to unbind and rebind like haproxy
* Improvement: implement SIGQUIT as a way to quit once all current connections are closed
* Improvement: allow to choose an IP for outgoing connections, permit over 2^16/2 client connections
* Improvement: allow to control^Wbreak the proxy using some python code on the web page
* Improvement: prevent connection to the local host to prevent firewall bypass
* Improvement: allow to stop / restart listening on port and soft-stop (stop when all connections close)
* Improvement: allow to specify exclusions for the block on localhost
* Improvement: limit connect methods to only port 443, 981 and 7000 as default (user option)
* Improvement: different counters for ipv4 and ipv6
* Improvement: new web interface without javascript, with more options (debug, ...)
* Improvement: better monitoring (60 seconds and 60 minutes graphs)
* Backward compatibility: exaproxy.daemon.connections was renamed to exaproxy.http.connections
* Backward compatibility: running.transfer keys have been renamed
* Backward compatibility: all json "running." keys have been renamed
* Backward compatibility: renamed many web page (URL should never be scraped)
Version 1.1.0 - 23rd of April 2013
* Many bug fixes including (but not exclusively)
* Fix: make sure the program always have data to display in the web interface
* Fix: dynamically adding/removing processes using SIGUSR1/SIGUSR2 now works
* Fix: bug with SIGTRAP
* Fix: prevent harmful options with select reactor
* Fix: logging values are different between logging and syslog, was causing issues
* Fix: a forever loop on chunk decoding
* Fix: actually seperate usage logging from messages generated by the proxy
* Fix: return 400 to HTTP/1.0 request with no header lines
* Fix: bug handling timeout during connection establishment
* Fix: check that hostnames do not have parts between dots that are more than 255 characters long
* Fix: ensure we do not read a request immediately after having read a previous request on the same connection
* Fix: full rewrite of the chunk parser
* Improvement: do not attempt to resolve hostnames that do not contain a dot
* Improvement: changed the worker thread queue to be non blocking
* Improvement: change exaproxy.redirector.minimum and exaproxy.redirector.maximum using the web interface
* Improvement: allow the usage of port for syslog usage record
* Improvement: better management of the worker creation and deletion
* Improvement: do not perform DNS lookup if the hostname does not have a . (search in the URL bar)
* Improvement: prevent memory exhaustion
* Many more changes ...
Version 1.0.8 - 8th of April 2013
* Fix: a critical bug when counting file descriptor usage
* Fix: many pep8
* Fix: missing import, use of undeclared variables
* Improvement: better web interface menu
* Improvement: internal values are available using json
Version 1.0.7 - 4th of March 2013
* Fix: a critical bug when counting file descriptor usage
Version 1.0.6 - 3rd of March 2013
* Fix: Need to track client disconnections when we are the one who decides to close the connection
* Fix: Display on stderr when can not start the program
* Improvement: clearer message when descriptor limit can not be changed
Version 1.0.5 - 9th of Febuary 2013
* Fix: -h was broken
Version 1.0.4 - 19th of January 2013
* Copyright: update all copyrights to 2013
* Fix: distutils installation (use the right python interpreter - closes issue 6)
* Fix: an issue on disconnect
Version 1.0.3 - 7th of January 2013
* Fix: tracking of filedescriptors
Version 1.0.2 - 31th December 2012
* Support chunked encoding of data uploaded by the client.
* websocket and TLS support (Upgrade header support)
* support for Expect (if you do not know what it is, do not worry, I do not anymore either)
* support for unknown HTTP versions
* improvement to DNS caching (much better, stronger, harder/simpler expiry of cached entry)
* much better internal logging (the previous code was an embarrassment really)
* supports haproxy "PROXY protocol"
* Many corner case fixes thanks to co-advisor ( http://coad.measurement-factory.com/ )
not all the issues where fixed, see https://code.google.com/p/exaproxy/wiki/RFC ) still fixed among others:
- not forwarding keepalive
- dealing with duplicate headers
- chunk encoding issues
- multi-line header support
Version 1.0.1 - 22nd of September 2012
* Fix: can run from any folder, will correctly find the configuration files
reported by: Henry Castiel
* Fix: will look for configuration file in /usr (installation location on archlinux)
* Fix: systemd support on Linux
* Fix: verbose exaproxy script
* Fix: a potential crash that could occur when a client closes a buffered connection that is scheduled to be closed by the server
* Change: version is set using --release
* New: version is checked with -v, --version
Version 1.0.0 - 29th of August 2012
* Initial release