[ekiga/v4_0] h323-endpoint: unregister the gatekeeper for real
- From: Eugen Dedu <ededu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ekiga/v4_0] h323-endpoint: unregister the gatekeeper for real
- Date: Mon, 14 Jan 2013 17:47:20 +0000 (UTC)
commit c16eeb9b622a2b9756e73039da263c75ea0eb857
Author: VÃctor Manuel JÃquez Leal <vjaquez igalia com>
Date: Fri Dec 21 18:06:14 2012 +0100
h323-endpoint: unregister the gatekeeper for real
Currently, unregistering an h323 account doesn't do anything, and when
registering it again the message "Processing..." never changes. This
patch fixes this bug. Now the unregistering happens for real and the
re-registering is cleaner.
Finally closes bug #690618.
lib/engine/components/opal/h323-endpoint.cpp | 28 +++++++++++++++++++++----
lib/engine/components/opal/h323-endpoint.h | 1 +
2 files changed, 24 insertions(+), 5 deletions(-)
---
diff --git a/lib/engine/components/opal/h323-endpoint.cpp b/lib/engine/components/opal/h323-endpoint.cpp
index bfeb23d..99727ef 100644
--- a/lib/engine/components/opal/h323-endpoint.cpp
+++ b/lib/engine/components/opal/h323-endpoint.cpp
@@ -54,10 +54,12 @@ namespace Opal {
subscriber (const Opal::Account & _account,
Opal::H323::EndPoint& _manager,
+ bool _registering,
const PSafePtr<OpalPresentity> & _presentity)
: PThread (1000, AutoDeleteThread),
account (_account),
manager (_manager),
+ registering (_registering),
presentity (_presentity)
{
this->Resume ();
@@ -65,14 +67,23 @@ namespace Opal {
void Main ()
{
- if (presentity && !presentity->IsOpen ())
- presentity->Open ();
- manager.Register (account);
+ if (registering) {
+ if (presentity && !presentity->IsOpen ())
+ presentity->Open ();
+ manager.Register (account);
+ } else {
+ manager.Unregister (account);
+
+ if (presentity && presentity->IsOpen ())
+ presentity->Close ();
+
+ }
};
private:
const Opal::Account & account;
Opal::H323::EndPoint& manager;
+ bool registering;
const PSafePtr<OpalPresentity> & presentity;
};
};
@@ -285,7 +296,7 @@ Opal::H323::EndPoint::subscribe (const Opal::Account & account,
if (account.get_protocol_name () != "H323")
return false;
- new subscriber (account, *this, presentity);
+ new subscriber (account, *this, true, presentity);
return true;
}
@@ -298,7 +309,7 @@ Opal::H323::EndPoint::unsubscribe (const Opal::Account & account,
if (account.get_protocol_name () != "H323")
return false;
- new subscriber (account, *this, presentity);
+ new subscriber (account, *this, false, presentity);
return true;
}
@@ -368,6 +379,13 @@ Opal::H323::EndPoint::Register (const Opal::Account& account)
}
+void
+Opal::H323::EndPoint::Unregister (const Opal::Account& account)
+{
+ RemoveGatekeeper (account.get_host ());
+}
+
+
bool
Opal::H323::EndPoint::UseGatekeeper (const PString & address,
const PString & domain,
diff --git a/lib/engine/components/opal/h323-endpoint.h b/lib/engine/components/opal/h323-endpoint.h
index 61ac314..835d7fd 100644
--- a/lib/engine/components/opal/h323-endpoint.h
+++ b/lib/engine/components/opal/h323-endpoint.h
@@ -115,6 +115,7 @@ namespace Opal {
/* OPAL methods */
void Register (const Opal::Account & account);
+ void Unregister (const Opal::Account & account);
private:
bool UseGatekeeper (const PString & address = PString::Empty (),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]