summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-09-05ServerConnection: kill async read when disconnectingLionel Landwerlin1-1/+9
GSocket creates GSources to provide GInputStream and GOutputStream objects. Interestingly, it doesn't set the GIOCondition on the GSource to handle G_IO_NVAL (ie. your file descriptor is not valid anymore). It means that if your trying to read asynchronously from the socket while someone else closes the socket, you end with an GInputStream that can never complete its asynchronous read operation because the file descriptor isn't valid anymore but that isn't a condition to dispatch the GSource and end the asynchronous read with an error. Alternatively, this wakes up the gmainloop all the time => 100% cpu consumption. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=64923 Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2013-06-11Require a vaguely modern telepathy-glib and GLibSimon McVittie1-3/+3
We need telepathy-glib 0.20 for telepathy-glib-dbus.h; in Debian I added a patch to fall back to the old headers, but on master we shouldn't bother. telepathy-glib 0.20 needs GLib 2.32, so we might as well require that too. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=64121 Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
2013-06-11Add handle-name to RoomList propertiesXavier Claessens2-1/+2
Fixes fdo#65614
2013-05-12Don't crash when a channel with multiple requests failsSjoerd Simons1-1/+1
The iteration over the channel requests tokens accidentally used the wrong variable, causing the same request token to be passed into tp-glib all the time causing crashes..
2013-05-01nano versionSimon McVittie2-1/+6
2013-05-01Release 0.1.16Simon McVittie2-3/+10
2013-05-01Merge branch 'interactive-tls'Simon McVittie20-75/+2036
2013-05-01Warn on use of post-2.30 GLib APIs againSimon McVittie1-1/+1
2013-05-01Use slightly more concise g_param_spec_object() argumentsSimon McVittie1-4/+2
I haven't fixed all instances, just the one touched by the interactive TLS code.
2013-05-01Split property/value pairs one-per-line in interactive TLS checking codeSimon McVittie2-3/+10
While we're touching these lines anyway, they might as well be in a slightly more Telepathic style.
2013-05-01ServerConnection: use GSimpleAsyncResult for connect threadWill Thompson2-12/+13
GTask doesn't make the code any smaller, and this way even new Debian stable can have it.
2013-04-30ServerConnection: ensure socket connection is not leakedWill Thompson1-1/+1
If we cancel the connect_async cancellable between the call to g_task_return_pointer (which schedules an idle to call the callback) and Connection calling connect_finish(), the socket_connection would previously have leaked.
2013-04-30ServerConnection: don't leak GTask used to connectWill Thompson1-1/+3
2013-04-30Connection: fix default for 'charset' property.Will Thompson1-1/+1
2013-04-30Add tp-glib suppressions fileWill Thompson1-0/+390
Without this, IDLE_TEST_VALGRIND doesn't work.
2013-04-30Connection: cancel connect_async when Disconnect() is calledWill Thompson4-4/+43
2013-04-30Connection: fix a crash on Disconnect() during TLS verificationWill Thompson1-4/+5
Previously, priv->conn was NULL until the TCP session was established, so _iface_shut_down() would take the "no connection yet; call _finish_shutdown_idle_func in an idle" path. But the TLS channel would get closed (because the TLSManager listens for state changes to Disconnected and closes all channels), causing the ServerConnection to call the connect_async() callback and emit ::disconnected, and hence finish shutting down the connection there. Then the idle would crash, because it doesn't take a ref to the connection. We should really cancel the connect_async() call in the new path in _iface_shut_down() to cope with the case where we're still waiting for the TCP connection to be established for some other reason. That, and a test for that, will follow.
2013-04-30Add (failing?) testsWill Thompson3-0/+58
2013-04-30Reference CVE-2007-6746 in the NEWS for 0.1.15Simon McVittie1-1/+1
2013-04-29Hide IdleServerConnectionStateWill Thompson2-9/+10
2013-04-29Connection: use a boolean for ServerConnection statusWill Thompson1-6/+10
2013-04-29ServerConnection: replace ::status-changed with ::disconnectedWill Thompson2-30/+14
It was already weird that the reason was only used in the disconnected case.
2013-04-29Start pinging & running message queue after 001 (welcome)Will Thompson1-9/+12
Previously, keepalives and unloading messages started as soon as the TCP session is established: before even the PASS/NICK/USER messages have been sent! (IdleServerConnection emits ::status-changed(CONNECTED) before connect_async() finishes.) If a message had got into the queue already, this would break the connection process.
2013-04-29TLSManager: treat unhandled channels as rejected.Will Thompson1-0/+6
This was incorrectly adapted from the Gabble code.
2013-04-28Don't special-case tls handling in testsSjoerd Simons5-12/+38
Don't let the TLS tests accept errors that wouldn't be accepted when idle runs normally, instead implement minimal ServerTLSConnection in the test which need it and add a minimal test for rejecting certificates.
2013-04-28Add support for interactive TLS certificate checkingSjoerd Simons2-2/+93
With the pieces now in place, hook up the TLS channnel manager and pass it to the server connection so it can request interactive certificate checking.
2013-04-28Connect to the server in the non-main threadSjoerd Simons2-5/+23
To do interactive certificate verification with GTls one needs to block in the accept-certificate signal handler, which practically means the connection needs to be done in a seperate check. As a first step, instead using _connect_to_host_async in the main thread use a GTask to synchronously connect in a different thread instead.
2013-04-28Port to TLS handling code to work in IdleSjoerd Simons7-221/+105
Instead of server-tls-manager being a Wocky TLS manager add async API to start the certificate verification on request and use a GTlsCertificate to get the needed certificate information instead of WockyTLSsession.
2013-04-28Copy TLS channel code from gabbleSjoerd Simons6-0/+1448
Take the TLS channel handling code from Gabble and s/gabble/idle in the various files, but no other changes
2013-04-24Nano versionSimon McVittie2-1/+5
2013-04-24Update telepathy.am from telepathy-gabble to allow out-of-tree distcheckSimon McVittie1-6/+17
2013-04-24Prepare version 0.1.15Simon McVittie2-2/+20
2013-04-24IdleServerConnection: check certificates properly, except in the testsSimon McVittie2-5/+11
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=63810 Reviewed-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2013-04-24messages/invalid-utf8.py: amend test-case to work under GLib 2.36Simon McVittie1-9/+20
Reviewed-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2013-04-24Include config.h in each source fileSimon McVittie13-0/+17
Among other effects, this makes GLIB_VERSION_MIN_REQUIRED effective. Reviewed-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2013-04-22with-session-bus.sh: update from telepathy-glibSimon McVittie1-3/+15
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=63119
2013-04-22HACKING: update a bit.Will Thompson1-7/+6
2013-04-22Drop unused build dependency on OpenSSLWill Thompson3-8/+2
Since some time ago, Idle has used GIO's TLS stuff; we should have dropped this back then. Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2012-11-16Nano-version bumpWill Thompson1-1/+1
2012-11-160.1.14Will Thompson2-2/+13
2012-11-16tests: disable pings by defaultWill Thompson1-0/+1
We don't want to risk some test timing out because it doesn't answer PONGs, and having PINGs cluttering the debug log is not my cup of tea.
2012-11-16Parse PONG more lenientlyWill Thompson2-1/+7
2012-11-14nano bumpWill Thompson1-1/+1
2012-11-14Version 0.1.13Will Thompson2-3/+16
2012-11-14muc-channel: remove content-free/wrong docstringsWill Thompson1-24/+1
2012-11-14muc: check that messages are marked as rescuedWill Thompson2-12/+41
2012-11-14muc-channel: implement Destroy(), make Close() respawnWill Thompson5-4/+111
This fixes the issue where empathy-chat crashing means you get kicked out of all your channels. It's technically backwards-incompatible but empathy-chat has been using RemoveMembers() to leave rooms for ages, and it's a pretty destructive and annoying bug, so let's just get on with it. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=24614
2012-11-14idletest: handle PART with no message argumentWill Thompson1-1/+7
2012-11-09muc-channel: implement get_interfaces vfuncWill Thompson1-1/+15
I don't think this new API is a net improvement over making TpBaseChannel do the work of merging ->interfaces (which would involve zero code changes in CMs, and none of this stupid boilerplate for building a list of strings in every CM) but there we go.
2012-11-09im-channel: chain up in get_interfaces() implWill Thompson1-1/+3
This is a no-op right now, but it's the right thing to do.