fix IO::Async abuse - thanks leo

This commit is contained in:
Matthew Hodgson 2014-11-28 16:16:41 +00:00
parent 08bf2aaab5
commit e43139ac5e

View file

@ -62,6 +62,8 @@ my $bot_verto = Net::Async::WebSocket::Client->new(
); );
$loop->add( $bot_verto ); $loop->add( $bot_verto );
my $sessid = lc new Data::UUID->create_str();
my $bot_matrix = Net::Async::Matrix->new( my $bot_matrix = Net::Async::Matrix->new(
%MATRIX_CONFIG, %MATRIX_CONFIG,
on_log => sub { warn "log: @_\n" }, on_log => sub { warn "log: @_\n" },
@ -79,20 +81,18 @@ my $bot_matrix = Net::Async::Matrix->new(
$bot_matrix_rooms{$room->room_id} = $room; $bot_matrix_rooms{$room->room_id} = $room;
# log in to verto on behalf of this room # log in to verto on behalf of this room
my $sessid = lc new Data::UUID->create_str();
$bridgestate->{$room->room_id}->{sessid} = $sessid; $bridgestate->{$room->room_id}->{sessid} = $sessid;
$room->configure( $room->configure(
on_message => \&on_room_message, on_message => \&on_room_message,
); );
Future->wait_all( my $f = send_verto_json_request("login", {
send_verto_json_request("login", {
'login' => $CONFIG{'verto-dialog-params'}{'login'}, 'login' => $CONFIG{'verto-dialog-params'}{'login'},
'passwd' => $CONFIG{'verto-config'}{'passwd'}, 'passwd' => $CONFIG{'verto-config'}{'passwd'},
'sessid' => $sessid, 'sessid' => $sessid,
}), });
)->get; $matrix->adopt_future($f);
# we deliberately don't paginate the room, as we only care about # we deliberately don't paginate the room, as we only care about
# new calls # new calls
@ -133,11 +133,12 @@ sub on_unknown_event
# XXX: collate using the right m= line - for now assume audio call # XXX: collate using the right m= line - for now assume audio call
$offer =~ s/(a=rtcp.*[\r\n]+)/$1$candidate_block/; $offer =~ s/(a=rtcp.*[\r\n]+)/$1$candidate_block/;
send_verto_json_request("verto.invite", { my $f = send_verto_json_request("verto.invite", {
"sdp" => $offer, "sdp" => $offer,
"dialogParams" => \%dp, "dialogParams" => \%dp,
"sessid" => $bridgestate->{$room_id}->{sessid}, "sessid" => $bridgestate->{$room_id}->{sessid},
})->get; });
$matrix->adopt_future($f);
} }
else { else {
# ignore them, as no trickle ICE, although we might as well # ignore them, as no trickle ICE, although we might as well
@ -149,10 +150,11 @@ sub on_unknown_event
} }
elsif ($event->{type} eq 'm.call.hangup') { elsif ($event->{type} eq 'm.call.hangup') {
if ($bridgestate->{$room_id}->{matrix_callid} eq $event->{content}->{call_id}) { if ($bridgestate->{$room_id}->{matrix_callid} eq $event->{content}->{call_id}) {
send_verto_json_request("verto.bye", { my $f = send_verto_json_request("verto.bye", {
"dialogParams" => \%dp, "dialogParams" => \%dp,
"sessid" => $bridgestate->{$room_id}->{sessid}, "sessid" => $bridgestate->{$room_id}->{sessid},
})->get; });
$matrix->adopt_future($f);
} }
else { else {
warn "Ignoring unrecognised callid: ".$event->{content}->{call_id}; warn "Ignoring unrecognised callid: ".$event->{content}->{call_id};