derived (was plugged to NonBlockingClient which made it unusable for BOSH)
- Fixed HTTP CONNECT proxy socket
- Implemented workaround for the bug with insecure-connection warning dialog
(unfortunately, this is not over - I just forbid the transport to send
BOSH empty bodies until auth module is plugged, which is wrong and will
break if user will wait more than "inactivity" (usualy thirty) seconds
before clicking the dialog.
This workaround works with ejb and opf, and also breaks connection with
both of them if delay is too long.
- Implemented basic TLS over BOSH. It works only with OPF and poorly.
in Client now
- Added NonBlockingHttpBOSH transport (to tranports_nb) and BOSHClient
(to client_nb)
- Extended possible proxy types in configuration by "BOSH" proxy
- Rewrote NonBlockingTLS to invoke success callback only after successful TLS handshake is over (formerly, the TLS Plugin returned right after sending <starttls>)
- Added -q, --quiet (speaks for itself)
- Added -l, --loglevel subsystem=LEVEL,subsystem2=LEVEL2,...
- Quell winsock 10035 error. (Equivalent of EINPROGRESS, but winsock likes to have its own error numbers.)
- Hide SSL certificate debug stuff unless gajim.c.x.transports loglevel is DEBUG or lower
- Avoid unicode problems if we set a profile
- Move fingerprint checks from _register_handlers to _connect_success
- Some enhancements to fpr checking code
- Add support for fingerprints to servers.xml parser.
- Add support for 'hidden' servers to servers.xml parser.
- Add some fingerprints to servers.xml, for testing and as example for the new format.
- Force asynchronous (nonblocking) SSL handshake in all case
- Add logging to c/connection.py
Known issues:
- Checking of fingerprints doesn't work on in-band SSL (Typically port 5222) because of stuff happening out of sequence. Workaround: use immediate SSL mode ("Legacy SSL" option in server config). Because there is as of yet no other way to /force/ SSL, this is also the most secure setting.
- A lot of code is still looking for a better place to live.
- In verbose mode, print encodings. (Especially for Windows users who don't have Python) (gajim.py)
- Attempt at fixing traceback when getting user's home directory in Windows. See #2812. (c/configpaths.py)
- Show 'error' icon next to account while waiting for reconnect. Fixes#2786. (c/connection_handlers.py, c/gajim.py, c/connection.py)
[PyOpenSSL]
- Fix 100% CPU usage and hanging connection when server closes connection on us. (c/x/transports_nb.py)
- Fix 'hanging' connection when server closes the connection on us before we can open the XML stream. (Disconnect handler didn't get called.) (c/x/client_nb.py)
- Change prints to logger calls, various enhancements to debug printing, reduce spam (c/x/transports_nb.py)
- this → self (c/x/transports_nb.py)
- Call _do_receive() once to collect error message from socket, when error flag is raised in scheduler. (c/x/transports_nb.py)
- Close connection after creating account. Fixes#2676
- Handle normal connection close by server. Fixes#2671
- Do not disconnect if we haven't received starttag yet. Fixes#2668. Fixes unticketed bug causing account creation not to work with PyOpenSSL and asynchronous handshake (see also #2671). Behaviour of #2634 is also improved but now results in deadlock.