changeset b986fe5b2cf7 in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=b986fe5b2cf7 description: Don't send audio/video data before session acceptance.
diffstat:
src/common/jingle.py | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-)
diffs (45 lines):
diff -r e36c7ab156d6 -r b986fe5b2cf7 src/common/jingle.py --- a/src/common/jingle.py Sat Sep 26 21:55:43 2009 +0200 +++ b/src/common/jingle.py Sat Sep 26 23:07:09 2009 +0200 @@ -816,10 +816,14 @@
self.candidates_ready = False # True when local candidates are prepared
- self.callbacks['content-accept'] += [self.__getRemoteCodecsCB] + self.callbacks['session-initiate'] += [self.__getRemoteCodecsCB] self.callbacks['content-add'] += [self.__getRemoteCodecsCB] - self.callbacks['session-accept'] += [self.__getRemoteCodecsCB] - self.callbacks['session-initiate'] += [self.__getRemoteCodecsCB] + self.callbacks['content-accept'] += [self.__getRemoteCodecsCB, + self.__contentAcceptCB] + self.callbacks['session-accept'] += [self.__getRemoteCodecsCB, + self.__contentAcceptCB] + self.callbacks['session-accept-sent'] += [self.__contentAcceptCB] + self.callbacks['content-accept-sent'] += [self.__contentAcceptCB] self.callbacks['session-terminate'] += [self.__stop] self.callbacks['session-terminate-sent'] += [self.__stop]
@@ -888,10 +892,6 @@ reason = xmpp.Node('reason') reason.setTag('failed-transport') self.session._session_terminate(reason) - elif state == farsight.STREAM_STATE_READY: - #TODO: farsight.DIRECTION_BOTH only if senders='both' - self.p2pstream.set_property('direction', farsight.DIRECTION_BOTH) - self.session.content_negociated(self.media) elif name == 'farsight-error': print 'Farsight error #%d!' % message.structure['error-no'] print 'Message: %s' % message.structure['error-msg'] @@ -899,6 +899,12 @@ else: print name
+ def __contentAcceptCB(self, stanza, content, error, action): + if self.accepted: + #TODO: farsight.DIRECTION_BOTH only if senders='both' + self.p2pstream.set_property('direction', farsight.DIRECTION_BOTH) + self.session.content_negociated(self.media) + def __getRemoteCodecsCB(self, stanza, content, error, action): ''' Get peer codecs from what we get from peer. ''' if self.got_codecs: