gui: Fix the sync tree display issue.
Change-Id: If3a2eedb3be56a75f1dc76f09cd3352b6a54241c
diff --git a/src/contact-manager.cpp b/src/contact-manager.cpp
index 4b50ef4..7c8c62c 100644
--- a/src/contact-manager.cpp
+++ b/src/contact-manager.cpp
@@ -141,7 +141,7 @@
interest.setMustBeFresh(true);
OnDataValidated onValidated = bind(&ContactManager::onDnsCollectEndorseValidated, this, _1, identity);
- OnDataValidationFailed onValidationFailed = bind(&ContactManager::onDnsCollectEndorseValidationFailed, this, _1, identity);
+ OnDataValidationFailed onValidationFailed = bind(&ContactManager::onDnsCollectEndorseValidationFailed, this, _1, _2, identity);
TimeoutNotify timeoutNotify = bind(&ContactManager::onDnsCollectEndorseTimeoutNotify, this, _1, identity);
sendInterest(interest, onValidated, onValidationFailed, timeoutNotify, 0);
@@ -264,6 +264,7 @@
void
ContactManager::onDnsSelfEndorseCertValidationFailed(const shared_ptr<const Data>& data,
+ const string& failInfo,
const Name& identity)
{
// If we cannot validate the Self-Endorse-Certificate, we may retry or fetch id-cert,
@@ -296,6 +297,7 @@
void
ContactManager::onDnsCollectEndorseValidationFailed(const shared_ptr<const Data>& data,
+ const string& failInfo,
const Name& identity)
{
prepareEndorseInfo(identity);
@@ -361,7 +363,7 @@
interest.setInterestLifetime(1000);
OnDataValidated onValidated = bind(&ContactManager::onDnsEndorseeValidated, this, _1);
- OnDataValidationFailed onValidationFailed = bind(&ContactManager::onDnsEndorseeValidationFailed, this, _1);
+ OnDataValidationFailed onValidationFailed = bind(&ContactManager::onDnsEndorseeValidationFailed, this, _1, _2);
TimeoutNotify timeoutNotify = bind(&ContactManager::onDnsEndorseeTimeoutNotify, this, _1);
sendInterest(interest, onValidated, onValidationFailed, timeoutNotify, 0);
@@ -382,7 +384,7 @@
}
void
-ContactManager::onDnsEndorseeValidationFailed(const shared_ptr<const Data>& data)
+ContactManager::onDnsEndorseeValidationFailed(const shared_ptr<const Data>& data, const string& failInfo)
{
decreaseCollectStatus();
}
@@ -438,7 +440,7 @@
}
void
-ContactManager::onIdentityCertValidationFailed(const shared_ptr<const Data>& data)
+ContactManager::onIdentityCertValidationFailed(const shared_ptr<const Data>& data, const string& failInfo)
{
_LOG_DEBUG("ContactManager::onIdentityCertValidationFailed " << data->getName());
decreaseIdCertCount();
@@ -674,7 +676,7 @@
interest.setMustBeFresh(true);
OnDataValidated onValidated = bind(&ContactManager::onDnsSelfEndorseCertValidated, this, _1, identityName);
- OnDataValidationFailed onValidationFailed = bind(&ContactManager::onDnsSelfEndorseCertValidationFailed, this, _1, identityName);
+ OnDataValidationFailed onValidationFailed = bind(&ContactManager::onDnsSelfEndorseCertValidationFailed, this, _1, _2, identityName);
TimeoutNotify timeoutNotify = bind(&ContactManager::onDnsSelfEndorseCertTimeoutNotify, this, _1, identityName);
sendInterest(interest, onValidated, onValidationFailed, timeoutNotify, 0);
@@ -813,7 +815,7 @@
interest.setMustBeFresh(true);
OnDataValidated onValidated = bind(&ContactManager::onIdentityCertValidated, this, _1);
- OnDataValidationFailed onValidationFailed = bind(&ContactManager::onIdentityCertValidationFailed, this, _1);
+ OnDataValidationFailed onValidationFailed = bind(&ContactManager::onIdentityCertValidationFailed, this, _1, _2);
TimeoutNotify timeoutNotify = bind(&ContactManager::onIdentityCertTimeoutNotify, this, _1);
sendInterest(interest, onValidated, onValidationFailed, timeoutNotify, 0);
diff --git a/src/contact-manager.h b/src/contact-manager.h
index fa28a9e..c370bd7 100644
--- a/src/contact-manager.h
+++ b/src/contact-manager.h
@@ -76,6 +76,7 @@
void
onDnsSelfEndorseCertValidationFailed(const ndn::shared_ptr<const ndn::Data>& selfEndorseCertificate,
+ const std::string& failInfo,
const ndn::Name& identity);
void
@@ -88,7 +89,8 @@
const ndn::Name& identity);
void
- onDnsCollectEndorseValidationFailed(const ndn::shared_ptr<const ndn::Data>& data,
+ onDnsCollectEndorseValidationFailed(const ndn::shared_ptr<const ndn::Data>& data,
+ const std::string& failInfo,
const ndn::Name& identity);
void
@@ -116,7 +118,8 @@
onDnsEndorseeValidated(const ndn::shared_ptr<const ndn::Data>& data);
void
- onDnsEndorseeValidationFailed(const ndn::shared_ptr<const ndn::Data>& data);
+ onDnsEndorseeValidationFailed(const ndn::shared_ptr<const ndn::Data>& data,
+ const std::string& failInfo);
void
onDnsEndorseeTimeoutNotify(const ndn::Interest& interest);
@@ -132,7 +135,8 @@
onIdentityCertValidated(const ndn::shared_ptr<const ndn::Data>& data);
void
- onIdentityCertValidationFailed(const ndn::shared_ptr<const ndn::Data>& data);
+ onIdentityCertValidationFailed(const ndn::shared_ptr<const ndn::Data>& data,
+ const std::string& failInfo);
void
onIdentityCertTimeoutNotify(const ndn::Interest& interest);
diff --git a/src/digest-tree-scene.cpp b/src/digest-tree-scene.cpp
index 14f95bd..b885714 100644
--- a/src/digest-tree-scene.cpp
+++ b/src/digest-tree-scene.cpp
@@ -38,14 +38,18 @@
bool rePlot = false;
for (int i = 0; i < n; i++)
{
- Roster_iterator it = m_roster.find(v[i].prefix.c_str());
+ QString routablePrefix(v[i].prefix.c_str());
+ QString prefix = trimRoutablePrefix(routablePrefix);
+
+ Roster_iterator it = m_roster.find(prefix);
if (it == m_roster.end())
{
+ // std::cout << "processUpdate v[" << i << "]: " << prefix.toStdString() << std::endl;
rePlot = true;
DisplayUserPtr p(new DisplayUser());
time_t tempTime = time(NULL) - FRESHNESS + 1;
p->setReceived(tempTime);
- p->setPrefix(v[i].prefix.c_str());
+ p->setPrefix(prefix);
p->setSeq(v[i].high);
m_roster.insert(p->getPrefix(), p);
}
@@ -64,7 +68,10 @@
{
for (int i = 0; i < n; i++)
{
- Roster_iterator it = m_roster.find(v[i].prefix.c_str());
+ QString routablePrefix(v[i].prefix.c_str());
+ QString prefix = trimRoutablePrefix(routablePrefix);
+
+ Roster_iterator it = m_roster.find(prefix);
if (it != m_roster.end()) {
DisplayUserPtr p = it.value();
QGraphicsTextItem *item = p->getSeqTextItem();
@@ -104,17 +111,19 @@
}
void
-DigestTreeScene::msgReceived(QString prefix, QString nick)
+DigestTreeScene::msgReceived(QString routablePrefix, QString nick)
{
+ QString prefix = trimRoutablePrefix(routablePrefix);
Roster_iterator it = m_roster.find(prefix);
+ // std::cout << "msgReceived prefix: " << prefix.toStdString() << std::endl;
if (it != m_roster.end())
{
- std::cout << "Updating for prefix = " << prefix.toStdString() << " nick = " << nick.toStdString() << std::endl;
+ // std::cout << "Updating for prefix = " << prefix.toStdString() << " nick = " << nick.toStdString() << std::endl;
DisplayUserPtr p = it.value();
p->setReceived(time(NULL));
if (nick != p->getNick())
{
- std::cout << "old nick = " << p->getNick().toStdString() << std::endl;
+ // std::cout << "old nick = " << p->getNick().toStdString() << std::endl;
p->setNick(nick);
QGraphicsTextItem *nickItem = p->getNickTextItem();
QGraphicsRectItem *nickRectItem = p->getNickRectItem();
@@ -325,6 +334,33 @@
seqTextItem->setPos(innerBR.x() + (innerBR.width() - textBR.width())/2, innerBR.y() + (innerBR.height() - textBR.height())/2);
}
+QString
+DigestTreeScene::trimRoutablePrefix(QString prefix)
+{
+ bool encaped = false;
+ ndn::Name prefixName(prefix.toStdString());
+
+ ndn::Name::const_iterator it = prefixName.begin();
+ ndn::Name::const_iterator end = prefixName.end();
+ size_t offset = 0;
+
+ for(; it != end; it++, offset++)
+ {
+ if(it->toEscapedString() == "%F0.")
+ {
+ encaped = true;
+ break;
+ }
+ }
+
+ if(!encaped)
+ return prefix;
+ else
+ {
+ return QString(prefixName.getSubName(offset+1).toUri().c_str());
+ }
+}
+
#if WAF
#include "digest-tree-scene.moc"
#include "digest-tree-scene.cpp.moc"
diff --git a/src/digest-tree-scene.h b/src/digest-tree-scene.h
index 6ac6b1c..bab1139 100644
--- a/src/digest-tree-scene.h
+++ b/src/digest-tree-scene.h
@@ -65,6 +65,8 @@
void plotNode(const std::vector<TreeLayout::Coordinate> &v, QString digest, int nodeSize);
void reDrawNode(DisplayUserPtr p, QColor rimColor);
+ QString trimRoutablePrefix(QString prefix);
+
private:
Roster m_roster;
QGraphicsTextItem *m_rootDigest;