summaryrefslogtreecommitdiff
path: root/lib/gibber/gibber-bytestream-direct.c
diff options
context:
space:
mode:
authorAlban Crequy <alban.crequy@collabora.co.uk>2008-07-31 14:21:37 +0000
committerJonny Lamb <jonnylamb@jonnylamb.com>2008-08-11 20:02:12 +0100
commite2f8d5d876a2fd5477e8174ab9e72b2699f46739 (patch)
treedfb826917b9dd09b34cf2189bf01fa433e3ff06f /lib/gibber/gibber-bytestream-direct.c
parent103078c69e4d01fffb71b5fbebd5397269f975b8 (diff)
downloadtelepathy-salut-e2f8d5d876a2fd5477e8174ab9e72b2699f46739.tar.gz
1-1 tubes: use direct tcp connections, and connect to the right port
20080731142137-a41c0-efce423d1593431bd156242fa9216afd72c860f2.gz
Diffstat (limited to 'lib/gibber/gibber-bytestream-direct.c')
-rw-r--r--lib/gibber/gibber-bytestream-direct.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/lib/gibber/gibber-bytestream-direct.c b/lib/gibber/gibber-bytestream-direct.c
index e36bd5d7..52b75226 100644
--- a/lib/gibber/gibber-bytestream-direct.c
+++ b/lib/gibber/gibber-bytestream-direct.c
@@ -610,7 +610,8 @@ gibber_bytestream_direct_accept (GibberBytestreamIface *bytestream,
GibberBytestreamAugmentSiAcceptReply func,
gpointer user_data)
{
- DEBUG ("not implemented");
+ /* nothing to do */
+ DEBUG ("Called.");
}
/*
@@ -622,7 +623,25 @@ static void
gibber_bytestream_direct_close (GibberBytestreamIface *bytestream,
GError *error)
{
- DEBUG ("not implemented");
+ GibberBytestreamDirect *self = GIBBER_BYTESTREAM_DIRECT (bytestream);
+ GibberBytestreamDirectPrivate *priv =
+ GIBBER_BYTESTREAM_DIRECT_GET_PRIVATE (self);
+
+ if (priv->state == GIBBER_BYTESTREAM_STATE_CLOSED)
+ /* bytestream already closed, do nothing */
+ return;
+
+ g_object_set (self, "state", GIBBER_BYTESTREAM_STATE_CLOSING, NULL);
+ if (priv->transport != NULL &&
+ !gibber_transport_buffer_is_empty (priv->transport))
+ {
+ DEBUG ("Wait transport buffer is empty before close the bytestream");
+ }
+ else
+ {
+ DEBUG ("Transport buffer is empty, we can close the bytestream");
+ bytestream_closed (self);
+ }
}
/*