Bug 26282 - Terminate calls correctly
Summary: Terminate calls correctly
Status: RESOLVED FIXED
Alias: None
Product: Telepathy
Classification: Unclassified
Component: fargo (show other bugs)
Version: git master
Hardware: Other All
: medium normal
Assignee: Simon McVittie
QA Contact: David Laban
URL: http://git.collabora.co.uk/?p=user/sm...
Whiteboard: milestone4.7 est=10h done=7h
Keywords: patch
Depends on: 26413
Blocks:
  Show dependency treegraph
 
Reported: 2010-01-27 11:00 UTC by Simon McVittie
Modified: 2010-02-18 04:40 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Simon McVittie 2010-01-27 11:00:27 UTC
Fargo currently always uses <general-error/> as the reason for session-terminate.

Estimate: 3h?
Comment 1 Simon McVittie 2010-02-16 08:13:28 UTC
smcv/errors has somewhat poor coverage but should address this.

http://git.collabora.co.uk/?p=user/smcv/telepathy-fargo.git;a=shortlog;h=refs/heads/errors
Comment 2 Simon McVittie 2010-02-16 08:15:00 UTC
estimate 3h -> 8h including better coverage, 7h done already
Comment 3 Simon McVittie 2010-02-16 08:21:59 UTC
estimate -> 10h; actually, we need to terminate calls via the Telepathy Group API to get this right. At the moment Fargo-Fargo loopback will always get <media-error/>, because we terminate the call by calling Error() on a media stream.
Comment 4 Simon McVittie 2010-02-16 10:43:12 UTC
A longer errors branch now covers more cases.
Comment 5 David Laban 2010-02-17 08:27:58 UTC
http://git.collabora.co.uk/?p=user/smcv/telepathy-fargo.git;a=commitdiff;h=4d7aa7365180e5871751a48543bf218e987d30b5 -- very magical, but I guess weakref related stuff always is. 

Should __changed_cb() call cancel() in most cases, so we don't end up with _name_owner_watches floating about if one person signs in and then makes a load of calls without logging out.

Other than that, everything seems fine.
Comment 6 Simon McVittie 2010-02-17 11:46:42 UTC
(In reply to comment #5)
> http://git.collabora.co.uk/?p=user/smcv/telepathy-fargo.git;a=commitdiff;h=4d7aa7365180e5871751a48543bf218e987d30b5
> 
> Should __changed_cb() call cancel() in most cases

Well spotted. If the name is unique and the new owner is empty, then __changed_cb() should cancel the watch, since the same unique name will never come back (that's the point). However, if the name is well-known, it shouldn't, since the owner could come back (although Fargo never hits this case).


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.