[Telepathy-commits] [telepathy-spec/master] Channel.Type.Text: resolve the long-running close-with-pending-messages bug.
Simon McVittie
simon.mcvittie at collabora.co.uk
Wed Aug 27 08:09:35 PDT 2008
The CM must now reopen the channel in order to deliver those messages (this
will lead to the channel dispatcher re-dispatching it, hopefully to a channel
handler that will ack the messages correctly).
20080701132816-53eee-bf43f41102576f36389fefc0e7c9b531e7c9ed19.gz
---
spec/Channel_Type_Text.xml | 31 +++++++++++++++++++++++++++++++
1 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/spec/Channel_Type_Text.xml b/spec/Channel_Type_Text.xml
index 049ed6b..09da5d5 100644
--- a/spec/Channel_Type_Text.xml
+++ b/spec/Channel_Type_Text.xml
@@ -463,6 +463,37 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
and handle type CONTACT should continue to succeed, but may return
a channel with handle type 0, handle 0, the group interface,
and the local and remote contacts in its members.</p>
+
+ <p>If a channel of type Text is closed while it has pending messages,
+ the connection manager MUST allow this, but SHOULD open a new,
+ identical channel to deliver those messages, signalling it as a new
+ channel with the
+ <tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection">NewChannel</tp:dbus-ref>
+ signal.</p>
+
+ <tp:rationale>
+ <p>In effect, this turns this situation, in which a naive
+ implementation might lose messages:</p>
+
+ <ul>
+ <li>UI window is closed</li>
+ <li>message arrives</li>
+ <li>text channel emits Received</li>
+ <li>UI calls Close on text channel</li>
+ <li>text channel emits Closed and closes</li>
+ </ul>
+
+ <p>into something nearly equivalent to this situation, which is
+ fine:</p>
+
+ <ul>
+ <li>UI window is closed</li>
+ <li>UI calls Close on text channel</li>
+ <li>text channel emits Closed and closes</li>
+ <li>message arrives</li>
+ <li>new text channel is created, connection emits NewChannel</li>
+ </ul>
+ </tp:rationale>
</tp:docstring>
</interface>
</node>
--
1.5.6.3
More information about the Telepathy-commits
mailing list