From 12660bea3ac8a6632f108c258d50d392da724951 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Wed, 14 Mar 2018 17:26:11 +0100 Subject: [PATCH] do not notify unknown device --- .../handlers/local-conference-event-handler.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/conference/handlers/local-conference-event-handler.cpp b/src/conference/handlers/local-conference-event-handler.cpp index f9f5e2f8a..9847a93e9 100644 --- a/src/conference/handlers/local-conference-event-handler.cpp +++ b/src/conference/handlers/local-conference-event-handler.cpp @@ -404,15 +404,14 @@ void LocalConferenceEventHandler::subscribeReceived (LinphoneEvent *lev, bool on const LinphoneAddress *lContactAddr = linphone_event_get_remote_contact(lev); char *contactAddrStr = linphone_address_as_string(lContactAddr); - Address contactAddr(contactAddrStr); + IdentityAddress contactAddr(contactAddrStr); bctbx_free(contactAddrStr); - if (contactAddr.getUriParamValue("gr").empty()) { + shared_ptr device = participant->getPrivate()->findDevice(contactAddr); + if (!device) { lError() << "received SUBSCRIBE for conference: " << d->conf->getConferenceAddress().asString() - << "has no GRUU in it's contact address:" << contactAddr.asString() << ", no NOTIFY sent."; + << "device sending subscribe: " << contactAddr.asString() << " is not known, no NOTIFY sent."; return; } - IdentityAddress gruu(contactAddr); - shared_ptr device = participant->getPrivate()->addDevice(gruu); if (linphone_event_get_subscription_state(lev) == LinphoneSubscriptionActive) { unsigned int lastNotify = static_cast(Utils::stoi(linphone_event_get_custom_header(lev, "Last-Notify-Version")));