Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
This renames the classes I'm moving to Wocky, and updates all the
remaining code to cope. A few things are missed out because it's only
reasonable to change them when the code is in Wocky:
• GABBLE_TYPE_STUN_SERVER_SOURCE (the GEnum for WockyStunServerSource)
can't be renamed easily because it is generated by Gabble's enumtype
thing.
• GABBLE_DEBUG_MEDIA.
Here's the program I used, for posterity.
#!/usr/bin/perl -pi
use strict;
BEGIN {
undef $/;
}
my @Classes = qw(Factory Session Transport_Iface Transport_IceUdp
Transport_RawUdp Transport_Google Content Info
Media_Rtp Relay);
for my $Class (@Classes) {
my $FullClass = "Jingle$Class";
$FullClass =~ s/_//g;
my $under_class = "jingle_" . lc($Class);
my $UNDER_CLASS = uc($under_class);
s/Gabble$FullClass/Wocky$FullClass/g;
s/gabble_$under_class/wocky_$under_class/g;
s/GABBLE_$UNDER_CLASS/WOCKY_$UNDER_CLASS/g;
s/GABBLE_TYPE_$UNDER_CLASS/WOCKY_TYPE_$UNDER_CLASS/g;
s/GABBLE_IS_$UNDER_CLASS/WOCKY_IS_$UNDER_CLASS/g;
}
s/GabbleGoogleRelay/WockyGoogleRelay/g;
s/gabble_google_relay/wocky_google_relay/g;
s/GABBLE_N_JINGLE_RELAY_TYPES/WOCKY_N_JINGLE_RELAY_TYPES/g;
s/gabble_stun_server/wocky_stun_server/g;
s/GABBLE_STUN_SERVER/WOCKY_STUN_SERVER/g;
# Can't rename GABBLE_TYPE_STUN_SERVER_SOURCE because it's generated. Blah.
s/GabbleStunServer/WockyStunServer/g;
my @Blah_Blah = qw(Candidate State Action Content_Senders Transport_Type
Transport_Protocol Candidate_Type Reason
Transport_State Dialect Content_State Media_Type Codec
Media_Description Feedback_Message Rtp_Header_Extension
Media_Profile);
for my $Class (@Blah_Blah) {
my $FullClass = "Jingle$Class";
$FullClass =~ s/_//g;
my $under_class = "jingle_" . lc($Class);
my $UNDER_CLASS = uc($under_class);
s/\b$FullClass/Wocky$FullClass/g;
s/\b_$FullClass/_Wocky$FullClass/g;
s/\b$under_class/wocky_$under_class/g;
s/\b$UNDER_CLASS/WOCKY_$UNDER_CLASS/g;
}
s/MAX_JINGLE_STATES/WOCKY_N_JINGLE_STATES/g;
s/JINGLE_IS_GOOGLE_DIALECT/WOCKY_JINGLE_DIALECT_IS_GOOGLE/g;
|
|
Reviewed-by: Xavier Claessens <xavier.claessens@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=49384
|
|
Gabble still uses emit_new_channels and tp_handle_{,un}ref, but for
now we can ignore it with this. config.h had to be included in the
right place for a lot of source files.
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
|
|
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=49596
Reviewed-by: Xavier Claessens <xavier.claessens@collabora.co.uk>
|
|
|
|
|
|
The sync constructor was not connecting to jingle session "terminate"
and "content-removed" signal. This was causing incoming call to not send
the ENDED state.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Also update the unit tests and move some work to the base class
|
|
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
|
|
|
|
Unfortunately this makes jingle/test-wait-for-caps-incomplete.py reveal
a bug: if we're waiting for a contacts caps, but never receive them or
give up before we disconnect, async_init() on the channel never
finishes, so the channel is leaked. Since TpBaseChannel holds a ref to
its connection, this bug means the connection, too, is leaked; thus,
everyone dies.
|
|
|
|
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
|
|
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
|
|
|
|
call_channel_capabilities_discovered_cb() gets the channel by calling
g_simple_async_result_get_source_object(), which returns a reference to
the source object. Previously, it then failed to release its reference.
This meant that if we have to wait for caps before completing a channel
request, we'd always leak the channel.
There's no regression test here. I found it while porting
GabbleBaseCallChannel to use TpBaseChannel, because the latter holds a
ref to its connection, and so leaking the Call channel leaks the
connection which prevents it falling off the bus, which makes the
existing regression tests for waiting for caps both fail!
I've also audited Wocky and fixed a few places that make this same
mistake there.
|
|
As a side benefit, this fixes some cases of comparing a JingleState to a
JingleSessionState (using the fact that they happen to be numerically
equal), which gcc 4.5 apparently warns about.
|
|
|
|
|
|
|
|
Conflicts:
src/call-channel.c
|
|
When asking the jingle factory to create a session it gives you back a object
you don't have a ref to, so first of all make sure we have a ref. And second,
do actually unref it when disposing the channel :)
|
|
If Gabble doesn't have a contact's capabilities, it should wait
until they are retrieved before returning from the CreateChannel
or EnsureChannel call. The caps must be checked to ensure they
have the required capabilities before returning whether or not
the call was successful.
Some of the capabilities checking code was copied from
media-channel.c.
|
|
This is for CallChannels only. CallMucChannels shouldn't have their
CallContents removed when there are no members left. Someone might
join the conference.
|
|
|
|
|
|
|
|
|
|
|
|
Both Muji related call channels and 1-to-1 call channel should be able to share
quite some code. The main difference is in setting up the call. This is a very
minimal split, more 1-to-1 call specific code will move out of the base class
into the call-channel
|
|
Conflicts:
src/call-content.c
src/call-content.h
|
|
|
|
Using _deinit, CallContent will wait for its CodecOffer (if any) to
be freed before allowing itself to be freed.
|
|
|
|
As per the spec, in Accept(), all streams that are in the pending
send state and are in contents whose disposition is initial should
be automatically set to the sending state.
|
|
|
|
|
|
|