mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-10-01 02:35:48 -04:00
fixed a few bugs in display of tracking info
This commit is contained in:
parent
2096cd6c52
commit
79c80c968a
@ -27,7 +27,7 @@
|
||||
#include "groutermatrix.h"
|
||||
#include "grouteritems.h"
|
||||
|
||||
//#define ROUTING_MATRIX_DEBUG
|
||||
#define ROUTING_MATRIX_DEBUG
|
||||
|
||||
GRouterMatrix::GRouterMatrix()
|
||||
{
|
||||
@ -197,6 +197,10 @@ void GRouterMatrix::debugDump() const
|
||||
std::cerr << it->second[i] << " " ;
|
||||
std::cerr << std::endl;
|
||||
}
|
||||
std::cerr << " Tracking clues: " << std::endl;
|
||||
|
||||
for(std::map<RsGxsMessageId, RoutingTrackEntry>::const_iterator it(_tracking_clues.begin());it!=_tracking_clues.end();++it)
|
||||
std::cerr << " " << it->first << ": from " << it->second.friend_id << " " << now - it->second.time_stamp << " secs ago." << std::endl;
|
||||
}
|
||||
|
||||
bool GRouterMatrix::computeRoutingProbabilities(const GRouterKeyId& key_id, const std::vector<RsPeerId>& friends, std::vector<float>& probas) const
|
||||
|
@ -39,7 +39,7 @@ static const uint16_t GROUTER_CLIENT_ID_MESSAGES = 0x1001 ;
|
||||
|
||||
static const uint32_t RS_GROUTER_MATRIX_MAX_HIT_ENTRIES = 10 ; // max number of clues to store
|
||||
static const uint32_t RS_GROUTER_MATRIX_MIN_TIME_BETWEEN_HITS = 60 ; // can be set to up to half the publish time interval. Prevents flooding routes.
|
||||
static const uint32_t RS_GROUTER_MIN_CONFIG_SAVE_PERIOD = 5 ; // at most save config every 5 seconds
|
||||
static const uint32_t RS_GROUTER_MIN_CONFIG_SAVE_PERIOD = 10 ; // at most save config every 10 seconds
|
||||
static const uint32_t RS_GROUTER_MAX_KEEP_TRACKING_CLUES = 86400*10 ; // max time for which we keep record of tracking info: 10 days.
|
||||
|
||||
static const float RS_GROUTER_BASE_WEIGHT_ROUTED_MSG = 1.0f ; // base contribution of routed message clue to routing matrix
|
||||
|
@ -1703,9 +1703,10 @@ void p3GRouter::addTrackingInfo(const RsGxsMessageId& mid,const RsPeerId& peer_i
|
||||
{
|
||||
RS_STACK_MUTEX(grMtx) ;
|
||||
#ifdef GROUTER_DEBUG
|
||||
grouter_debug() << "Received new routing clue for key " << id << " from peer " << peer_id << std::endl;
|
||||
grouter_debug() << "Received new routing clue for key " << mid << " from peer " << peer_id << std::endl;
|
||||
#endif
|
||||
_routing_matrix.addTrackingInfo(mid,peer_id) ;
|
||||
_changed = true ;
|
||||
}
|
||||
void p3GRouter::addRoutingClue(const GRouterKeyId& id,const RsPeerId& peer_id)
|
||||
{
|
||||
@ -1714,6 +1715,7 @@ void p3GRouter::addRoutingClue(const GRouterKeyId& id,const RsPeerId& peer_id)
|
||||
grouter_debug() << "Received new routing clue for key " << id << " from peer " << peer_id << std::endl;
|
||||
#endif
|
||||
_routing_matrix.addRoutingClue(id,peer_id,RS_GROUTER_BASE_WEIGHT_GXS_PACKET) ;
|
||||
_changed = true ;
|
||||
}
|
||||
|
||||
bool p3GRouter::registerClientService(const GRouterServiceId& id,GRouterClientService *service)
|
||||
@ -2230,8 +2232,8 @@ void p3GRouter::debugDump()
|
||||
|
||||
grouter_debug() << " Routing matrix: " << std::endl;
|
||||
|
||||
// if(_debug_enabled)
|
||||
// _routing_matrix.debugDump() ;
|
||||
if(_debug_enabled)
|
||||
_routing_matrix.debugDump() ;
|
||||
}
|
||||
|
||||
|
||||
|
@ -681,12 +681,25 @@ bool GxsSecurity::validateNxsGrp(const RsNxsGrp& grp, const RsTlvKeySignature& s
|
||||
EVP_VerifyInit(mdctx, EVP_sha1());
|
||||
EVP_VerifyUpdate(mdctx, allGrpData, allGrpDataLen);
|
||||
int signOk = EVP_VerifyFinal(mdctx, sigbuf, siglen, signKey);
|
||||
EVP_MD_CTX_destroy(mdctx);
|
||||
|
||||
delete[] allGrpData ;
|
||||
if(signOk != 1) // try previous API. This is a hack to accept groups previously signed with old APIs.
|
||||
{
|
||||
EVP_MD_CTX *mdctx = EVP_MD_CTX_create();
|
||||
|
||||
EVP_VerifyInit(mdctx, EVP_sha1());
|
||||
EVP_VerifyUpdate(mdctx, allGrpData, allGrpDataLen-4); // that means ommit the last
|
||||
signOk = EVP_VerifyFinal(mdctx, sigbuf, siglen, signKey);
|
||||
EVP_MD_CTX_destroy(mdctx);
|
||||
|
||||
if(signOk)
|
||||
std::cerr << "(WW) GXS group with old API found. Signature still checks!" << std::endl;
|
||||
}
|
||||
|
||||
delete[] allGrpData ;
|
||||
|
||||
/* clean up */
|
||||
EVP_PKEY_free(signKey);
|
||||
EVP_MD_CTX_destroy(mdctx);
|
||||
|
||||
grpMeta.signSet = signSet;
|
||||
|
||||
|
@ -2661,7 +2661,7 @@ void RsGenExchange::processRecvdMessages()
|
||||
{
|
||||
|
||||
#ifdef GEN_EXCH_DEBUG
|
||||
std::cerr << "failed to deserialise incoming meta, msgId: "
|
||||
std::cerr << "Validation failed for message id "
|
||||
<< "msg->grpId: " << msg->grpId << ", msgId: " << msg->msgId << std::endl;
|
||||
#endif
|
||||
|
||||
@ -2795,8 +2795,7 @@ void RsGenExchange::processRecvdGroups()
|
||||
else if(ret == VALIDATE_FAIL)
|
||||
{
|
||||
#ifdef GEN_EXCH_DEBUG
|
||||
std::cerr << "failed to deserialise incoming meta, grpId: "
|
||||
<< grp->grpId << std::endl;
|
||||
std::cerr << "failed to validate incoming meta, grpId: " << grp->grpId << ": wrong signature" << std::endl;
|
||||
#endif
|
||||
delete grp;
|
||||
erase = true;
|
||||
@ -2805,8 +2804,7 @@ void RsGenExchange::processRecvdGroups()
|
||||
{
|
||||
|
||||
#ifdef GEN_EXCH_DEBUG
|
||||
std::cerr << "failed to validate incoming grp, trying again. grpId: "
|
||||
<< grp->grpId << std::endl;
|
||||
std::cerr << "failed to validate incoming grp, trying again. grpId: " << grp->grpId << std::endl;
|
||||
#endif
|
||||
|
||||
if(gpsi.mAttempts == VALIDATE_MAX_ATTEMPTS)
|
||||
@ -2822,6 +2820,7 @@ void RsGenExchange::processRecvdGroups()
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr << "(EE) deserialise error in group meta data" << std::endl;
|
||||
delete grp;
|
||||
delete meta;
|
||||
erase = true;
|
||||
|
@ -51,10 +51,11 @@ uint32_t RsGxsGrpMetaData::serial_size()
|
||||
s += GetTlvStringSize(mServiceString);
|
||||
s += signSet.TlvSize();
|
||||
s += keys.TlvSize();
|
||||
s += 4; // for mCircleType
|
||||
s += 4; // for mCircleType
|
||||
s += mCircleId.serial_size();
|
||||
s += 4; // mAuthenFlag
|
||||
s += mParentGrpId.serial_size();
|
||||
s += 4; // mAuthenFlag
|
||||
s += mParentGrpId.serial_size(); // mParentGroupId
|
||||
s += 4; // mSignFlag
|
||||
|
||||
return s;
|
||||
}
|
||||
@ -227,9 +228,8 @@ uint32_t RsGxsMsgMetaData::serial_size()
|
||||
|
||||
s += signSet.TlvSize();
|
||||
s += GetTlvStringSize(mMsgName);
|
||||
s += 4; // mAuthenFlags
|
||||
s += 4; // mSignFlags
|
||||
s += 4;
|
||||
s += 4; // mPublishTS
|
||||
s += 4; // mMsgFlags
|
||||
|
||||
return s;
|
||||
}
|
||||
|
@ -216,7 +216,9 @@ void p3GxsReputation::updateIdentityFlags()
|
||||
{
|
||||
RsStackMutex stack(mReputationMtx); /****** LOCKED MUTEX *******/
|
||||
|
||||
#ifdef DEBUG_REPUTATION
|
||||
std::cerr << "Updating reputation identity flags" << std::endl;
|
||||
#endif
|
||||
|
||||
for( std::map<RsGxsId, Reputation>::iterator rit = mReputations.begin();rit!=mReputations.end();++rit)
|
||||
if(rit->second.mIdentityFlags & REPUTATION_IDENTITY_FLAG_NEEDS_UPDATE)
|
||||
@ -229,7 +231,9 @@ void p3GxsReputation::updateIdentityFlags()
|
||||
|
||||
if(!rsIdentity->getIdDetails(*rit,details))
|
||||
{
|
||||
#ifdef DEBUG_REPUTATION
|
||||
std::cerr << " cannot obtain info for " << *rit << ". Will do it later." << std::endl;
|
||||
#endif
|
||||
continue ;
|
||||
}
|
||||
|
||||
@ -247,7 +251,9 @@ void p3GxsReputation::updateIdentityFlags()
|
||||
if(details.mPgpLinked) it->second.mIdentityFlags |= REPUTATION_IDENTITY_FLAG_PGP_LINKED ;
|
||||
if(details.mPgpKnown ) it->second.mIdentityFlags |= REPUTATION_IDENTITY_FLAG_PGP_KNOWN ;
|
||||
|
||||
#ifdef DEBUG_REPUTATION
|
||||
std::cerr << " updated flags for " << *rit << " to " << std::hex << it->second.mIdentityFlags << std::dec << std::endl;
|
||||
#endif
|
||||
|
||||
it->second.updateReputation() ;
|
||||
IndicateConfigChanged();
|
||||
|
@ -548,6 +548,17 @@ void GxsForumThreadWidget::changedThread()
|
||||
mThreadId = RsGxsMessageId(item->data(COLUMN_THREAD_DATA, ROLE_THREAD_MSGID).toString().toStdString());
|
||||
}
|
||||
|
||||
// Show info about who passed on this message.
|
||||
if(mForumGroup.mMeta.mSignFlags & GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_TRACK_MESSAGES)
|
||||
{
|
||||
RsPeerId providerId ;
|
||||
std::string msgId = item->data(COLUMN_THREAD_DATA, ROLE_THREAD_MSGID).toString().toStdString();
|
||||
RsGxsMessageId mid(msgId) ;
|
||||
|
||||
if(rsGRouter->getTrackingInfo(mid,providerId) && !providerId.isNull() )
|
||||
item->setToolTip(COLUMN_THREAD_TITLE,tr("This message was obtained from %1").arg(QString::fromUtf8(rsPeers->getPeerName(providerId).c_str())));
|
||||
}
|
||||
|
||||
if (mFillThread) {
|
||||
return;
|
||||
}
|
||||
@ -952,14 +963,6 @@ QTreeWidgetItem *GxsForumThreadWidget::convertMsgToThreadWidget(const RsGxsForum
|
||||
// Set later with GxsIdRSTreeWidgetItem::setId
|
||||
item->setData(COLUMN_THREAD_DATA, ROLE_THREAD_AUTHOR, QString::fromStdString(msg.mMeta.mAuthorId.toStdString()));
|
||||
|
||||
// Show info about who passed on this message.
|
||||
if(mForumGroup.mMeta.mSignFlags & GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_TRACK_MESSAGES)
|
||||
{
|
||||
RsPeerId providerId ;
|
||||
|
||||
if(rsGRouter->getTrackingInfo(msg.mMeta.mMsgId,providerId) && !providerId.isNull() )
|
||||
item->setToolTip(COLUMN_THREAD_TITLE,tr("This message was obtained from %1").arg(QString::fromUtf8(rsPeers->getPeerName(providerId).c_str())));
|
||||
}
|
||||
//#TODO
|
||||
#if 0
|
||||
text = QString::fromUtf8(authorName.c_str());
|
||||
|
Loading…
Reference in New Issue
Block a user