Change Log¶
Next bugfix release
- [Bug] #165: Fix Host HTTP header parsing when circuits.web.Server is bound to a UNIX Socket
- [Bug] #123: Fixes bug in the complete event
- [Bug] #173: Fix the type difference between _current_thread and _flushing_thread
- [Bug] #170: Fix crash from deleting undefined variables
- [Bug] #184: Fix websocket data parsing if content is larger than BUFSIZE
- [Bug] #185: Fix Denial of Service socket/memory leak for not connected clients
- [Bug] #187: Fix parsing and decoding of application/x-www-urlencoded payloads
- [Bug] #54: Fix a memory leak due to on_done handlers
- [Bug] #202: Removed the (unused) internal cache from EventType.
- [Bug] #198: Made pushing onto the event queue via fire threadsafe.
- [Bug] #235: the prefix in the Debugger might be a callable now
- [Bug] #241: Adjust circuits.tools.graph() to API change in networkx
- [Bug] #254: Fix CRLF injection in IRC protocol
- [Bug] #257: Fix WSGI component for Python 2.7 and Python 3
- [Bug] #264: Improoved robustness of IRC messages
- [Bug] #266: Fix python2 str(circuits.core.values.Value())
- [Bug] #269: Fix error handling when TLS handshake fails
- [Bug] #263: Improove error handling during TLS handshake
- [Bug] #270: fix TLS support for websockets (unhandled SSLWantReadError)
- [Bug] #176: Generator expressions don’t raise StopIteration anymore
- [Bug] #238: Reverted changes fixed by upstream http-parser library
- [Bug]: :security:`251` A HTTP header injection vulnerability in circuits.web.websockets.client has been fixed
- [Bug]: :security:`293` HTML escaping of error responses, 3XX redirects and Powered-by texts has been fixed
- [Bug]: - typos in docstrings/comments have been fixed
3.2.2 2021-10-19
- [Bug] #252: circuits.io.serial: missing encoding parameter has been added
- [Bug] #253: circuits.io.serial: add readline argument to only fire read events for full lines
- [Bug] #285: requests with chunked transfer encoding are not dispatched if the message body is not yet received completely
- [Bug] #285: circuits.web.parsers.http has been upgraded to latest upstream http-parser version
- [Bug] #238: Reverted changes fixed by upstream http-parser library
- [Bug]: Fixed Python 3 compatibility for circuits.web.tools.validate_etag() with MD5 hashes
- [Bug] #292: HTTP Connection header values are now correctly evaluated case insensitive in web.client components
- [Bug] #291: HTTP Connection header values are now correctly evaluated case insensitive in websocket components
- [Bug]: :security:`289` potential XSS attacks via crafted files in directory listing is now prevented via HTML escaping in the circuits.web.dispatchers.static component.
- [Bug]: :security:`251` A HTTP header injection vulnerability in circuits.web.websockets.client has been fixed
- [Bug]: :security:`293` HTML escaping of error responses, 3XX redirects and Powered-by texts has been fixed
- [Bug]: - typos in docstrings/comments have been fixed
- [Bug] #307: Various format string syntaxes have been relaxed so that they don’t cause exceptions on non string input
- [Bug] #261: A workaroung for websocket clients has been added, which prevents that the first websocket is not lost
- [Bug] #197: Exceptions during socket.accept() are now re-raised in the main thread
- [Bug] #197: Exceptions during initialization of Poller`s is now handlded via an `error Event
3.2.1 2020-10-30
- [Feature] #168: Add interface for selecting the websocket subprotocol
- [Feature] #202: Removed EventType metaclass
- [Feature]: Add support to set additional socket options
- [Feature] #214: Implement STARTTLS for sockets as event
- [Feature] #224: Add new HTTP status code 308 moved permanently (RFC 7538)
- [Feature] #212: Improves the API for session management and adds expire support
- [Feature] #233: circuits.core.values.Value is now __str__ compatible with Python 2
- [Feature] #231: Add support for STOMP protocol
- [Feature] #240: Added auto_add to circuits.io.notify
- [Feature] #249: Add irc.utils.irc_color_to_ansi()
- [Feature] #245: IRC: enhance stripping of colors
- [Feature] #273: Added a bufsize argument to the __init__ of BaseServer
- [Feature]: The exception handling has been improoved
- [Support] #152: Dropped the support for Python 2.6 and 3.x < 3.4
- [Support]: Added support for Python 3.6, 3.7, 3.8, 3.9-dev
3.2 2016-06-02
- [Bug] #119: Fixed bug in
circuits.web.url.parse_url()
that caused a display issue with port bindings on ports 80 and 443.
3.1 2014-11-01
- [Bug] #115: Fixed FallbackErrorHandler API Change
- [Bug] #113: Fixed bug with forced shutdown of subprocesses in Windows.
- [Bug]: Bridge: Send exceptions via brige before change the exceptions weren’t propagated via bridge because traceback object is not pickable, now traceback object is replaced by corresponding traceback list
- [Bug]: Bridge: Do not propagate no results via bridge
- [Bug]: Fixed issue in brige with ommiting all but the first events sent at once
- [Bug]: Fixed exception handing in circuits.web
- [Bug]: Fixed import of FallBackExceptionHandler
- [Bug]: Node: Add node examples.
- [Bug]: Node: fixes event response flood.
- [Bug]: Node: fixes the event value issue.
- [Bug]: Node: add event firewall (client / server).
- [Bug]: Node: add peer node: return channel name.
- [Bug]: Fixes optional parameters handling (client / server).
- [Bug]: Rename the FallbackErrorHandler to FallbackExceptionHandler and the event it listens to to exception
- [Bug]: Bridge waits for event processing on the other side before proxy handler ends. Now it is possible to collect values from remote handlers in %_success event.
3.0.1 2014-11-01
3.0 2014-08-31
- [Feature] #94: Modified the
circuits.web.Logger
to use theresponse_success
event. - [Feature] #98: Dockerized circuits. See: https://docker.io/
- [Feature] #99: Added Digest Auth support to the
circuits.web
CLI Tool - [Feature] #103: Added the firing of a
disconnect
event for the WebSocketsDispatcher. - [Feature] #108: Improved server support for the IRC Protocol.
- [Feature] #112: Improved Signal Handling
- [Bug] #37: Fixed a typo in
File
- [Bug] #38: Guard against invalid headers. (circuits.web)
- [Bug] #46: Set
Content-Type
header on response for errors. (circuits.web) - [Bug] #48: Allow
event
to be passed to the decorated function (the request handler) for circuits.web - [Bug] #45: Fixed use of
cmp()
and__cmp__()
for Python 3 compatibility. - [Bug] #56: circuits.web HEAD request send response body web
- [Bug] #62: Fix packaging and bump circuits 1.5.1 for @dsuch (Dariusz Suchojad) for Zato
- [Bug] #53: WebSocketClient treating WebSocket data in same TCP segment as HTTP response as part the HTTP response. web
- [Bug] #67: web example jsontool is broken on python3 web
- [Bug] #77: Uncaught exceptions Event collides with sockets and others core
- [Bug] #81: “index” method not serving / web
- [Bug] #76: Missing unit test for DNS lookup failures net
- [Bug] #66: web examples jsonserializer broken web
- [Bug] #59: circuits.web DoS in serve_file (remote denial of service) web
- [Bug] #91: Call/Wait and specific instances of events
- [Bug] #89: Class attribtues that reference methods cause duplicate event handlers core
- [Bug] #47: Dispatcher does not fully respect optional arguments. web
- [Bug] #97: Fixed
tests.net.test_tcp.test_lookup_failure
test for Windows - [Bug] #100: Fixed returned Content-Type in JSON-RPC Dispatcher.
- [Bug] #102: Fixed minor bug with WebSocketsDispatcher causing superflusous
connect()
events from being fired. - [Bug] #104: Prevent other websockets sessions from closing.
- [Bug] #106: Added
__format__
method to circuits.web.wrappers.HTTPStatus. - [Bug] #107: Added
__le__
and__ge__
methods tocircuits.web.wrappers.HTTPStatus
- [Bug] #109: Fixed
Event.create()
factory and metaclass. - [Bug] #111: Fixed broken Digest Auth Test for circuits.web
- [Support] #63: typos in documentation docs
- [Support] #60: meantion @handler decorator in tutorial docs
- [Support] #65: Update tutorial to match circuits 3.0 API(s) and Semantics docs
- [Support] #69: Merge #circuits-dev FreeNode Channel into #circuits
- [Support] #75: Document and show examples of using circuits.tools docs
- [Support] #70: Convention around method names of event handlers
- [Support] #72: Update Event Filtering section of Users Manual docs
- [Support] #73: Fix duplication in auto generated API Docs. docs
- [Support] #78: Migrate Change Log maintenance and build to Releases
- [Support] #71: Document the value_changed event docs
- [Support] #92: Update circuitsframework.com content docs
- [Support] #88: Document the implicit registration of components attached as class attributes docs
- [Support] #87: A rendered example of
circuits.tools.graph()
. docs - [Support] #85: Migrate away from ShiningPanda
- [Support] #61: circuits.web documentation enhancements docs
- [Support] #86: Telnet Tutorial
- [Support] #95: Updated Developer Documentation with corrections and a new workflow.