summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
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.
2012-11-09im-manager: use tp_base_channel_is_destroyed()Will Thompson1-8/+3
This is equivalent but neater.
2012-11-05Some more NEWS.Will Thompson1-5/+14
2012-11-02Merge branch 'ping'Will Thompson8-50/+179
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=56589
2012-11-02Clarify ping timeout comparisonWill Thompson1-1/+2
Jonny wanted this to be clearer on <https://bugs.freedesktop.org/show_bug.cgi?id=56589#c1>.
2012-10-30connection: cope with send_async() returning synchronouslyWill Thompson1-1/+1
On <https://bugs.freedesktop.org/show_bug.cgi?id=49163>, Alban Browaeys described a situation where idle_server_connection_send_async() would call its callback synchronously, due to a bug in GLib. While I think that bug is fixed, we can be more defensive against this by initializing priv->msg_sending to TRUE before calling idle_server_connection_send_async() rather than after. That way, if the _msg_queue_timeout_ready() callback is called synchronously (due to a bug), Idle won't get stuck thinking it's sending a message.
2012-10-30Disable keepalive pings if server doesn't support PING.Will Thompson3-0/+21
I don't know which servers don't support PING, but irssi does this, so I figure we may as well do it too. I tested this by making Idle send and check for PNNING, which Freenode doesn't support. It's not obvious how to write a good automated test for this.
2012-10-30Fix _force_disconnect to actually forcibly disconnect.Will Thompson3-14/+22
Previously, if the network connection had gone away _force_disconnect() would not actually make the connection die any faster, because g_io_stream_close_async() waits for a reply by default. But by pulling the same trick with a cancelled cancellable as is used for ping timeouts, we can fix this. I tested this by: * Connecting to a server (with keepalive-interval=0 to ensure that doesn't interfere). * Pulling out my network cable (breaking the connection) but leaving my wireless connection up. * calling Disconnect() on the connection. Before, the connection would never finish disconnecting; after, the _force_disconnect() timeout actually does something useful and the connection dies properly.
2012-10-30Don't try to ping while we're disconnecting.Will Thompson1-1/+2
2012-10-30Connection: disconnect if we get no PONG for our PINGWill Thompson4-6/+75
Previously we'd just send out a PING into the æther every n seconds, and pay no attention to whether we ever got an answer. So it was perfectly possible for the connection to just sit there until the TCP timeout kicks in, which I think is a matter of hours by default. With this patch, if we haven't heard a PONG 3 keepalive-intervals after sending a PING, Idle throws its toys out of the pram. This has been tested as follows: * Put my laptop on a wired and wireless network simultaneously. * Connect to an IRC server. (The wired network is used.) * Pull the network cable out. Idle is too stupid to realise the link it was using is gone, and because we're still ostensibly online, nothing tells it to disconnect. * Wait keepalive-interval * 4, and watch the connection get disconnected. It works both with a direct connection to Freenode, and with a connection over an SSH tunnel to irssi-proxy.
2012-10-30Move comment about message interval to the right placeWill Thompson1-3/+2
2012-10-30Connection: add priv field to structureWill Thompson2-40/+45
2012-10-30Make the PONGs sent back by the test more realisticWill Thompson1-2/+4
2012-10-30Parser: spell out prefix vs. non-prefix logic betterWill Thompson2-2/+4
2012-10-30Add a stupid test for Idle sending PINGWill Thompson2-0/+21
2012-10-30RoomlistManager: remove redundant check for HandleWill Thompson1-11/+0
tp_channel_manager_asv_has_unknown_properties() takes care of excluding extra properties for us.
2012-10-30Add a debug flag for roomlist code.Will Thompson3-4/+3
2012-10-29Fix warnings in roomlist code.Will Thompson2-14/+13
Whoops.
2012-10-29NEWS for UTF-8 fix and room listing.Will Thompson1-0/+10
2012-10-29idle_roomlist_manager_get_type: fix prototypeWill Thompson1-1/+1
2012-10-29Merge branch 'room-list'Will Thompson12-0/+1138
2012-10-29Sanitize incoming messages to remove UTF-8 non-characters.Will Thompson3-0/+94
https://bugs.freedesktop.org/show_bug.cgi?id=30741
2012-10-28Give charset conversion function a more natural typeWill Thompson1-9/+6
2012-08-28NEWS: updatedJonny Lamb1-1/+3
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
2012-08-28build: fix for "make -j" safetyDan Winship1-1/+4
A make rule with multiple (non-pattern) targets just says that each of those files can be built by the rule, not that the rule builds all of them at once. So under "make -j", extensions/Makefile would run three copies of glib-ginterface-gen.py at once, which could end up deleting each others' files and causing a make failure. Fix. Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
2012-08-03Bump nano-versionWill Thompson2-1/+6
2012-08-02Tell Automake about _gen/svc-gtk-doc.hWill Thompson1-1/+2
When the codegen was updated, this started being built, but not cleaned up, so distcheck was broken.
2012-08-02Version 0.1.12Will Thompson2-3/+3
2012-08-02NEWS for 0.1.12Will Thompson1-0/+22
2012-07-19IMManager: replace constructor with constructed.Will Thompson1-18/+8
2012-07-19Reindent idle-im-channel.cWill Thompson1-56/+79
2012-07-19Make IdleIMChannel use TpBaseChannelWill Thompson3-411/+80
https://bugs.freedesktop.org/show_bug.cgi?id=31725
2012-07-18servicetest: squash dbus-python deprecation warningWill Thompson1-1/+3
2012-07-09Renamed variables to avoid warnings with "-Werror=shadow".Thomas Thurman2-17/+17
idle-parser.c: renamed "link" to "link_". idle-server-connection.c: renamed "socket" to "socket_". https://bugs.freedesktop.org/show_bug.cgi?id=51906
2012-05-30Merge branch 'catch-up'Simon McVittie23-146/+309
Conflicts: configure.ac src/idle-muc-channel.c
2012-05-16room-config: use G_N_ELEMENTSJonny Lamb1-2/+1
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
2012-05-16room-config: simplify password protection validationJonny Lamb1-16/+11
Yeah okay I might have been calling tp_asv_get_* a little too many times... Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
2012-05-16room-config: flicker CanUpdateConfiguration but keep MutableProperties stableJonny Lamb3-27/+59
I had misunderstood these two properties before, yet again. This is better and easier. I added more tests. Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
2012-05-16muc-channel: move RoomConfig stuff into IdleRoomConfigJonny Lamb3-198/+163
Genius! Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
2012-05-16muc-channel: validate Password properties to simplify {,un}setting branchJonny Lamb2-31/+76
This is much better. I should have done this before. I also added some tests to make sure bad args are rejected. Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
2012-05-16muc-channel: turn DO_QUICK_BOOLEAN from a macro into a functionJonny Lamb1-23/+35
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
2012-05-16muc-channel: track op-ness in the channel to mark config properties {,im}mutableJonny Lamb2-25/+57
I must admit I misunderstood what was going on with this earlier when I removed it. I was just being an idiot. I've brought it back now and it's even tested! Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
2012-05-15muc-channel: set configuration retrieved when appropriateJonny Lamb2-6/+15
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
2012-05-15muc-channel: remove the last of the TpProperties codeJonny Lamb1-80/+0
Woo! Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
2012-05-15muc-channel: remove last property flags settingJonny Lamb1-89/+0
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
2012-05-15muc-channel: start setting RoomConfig properties for mode changesJonny Lamb2-227/+119
Ignore the indentation; it's all wrong. I hate idle. Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
2012-05-15muc-channel: remove SetProperties implementationJonny Lamb1-269/+0
Woo, getting closer! Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>