mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-02 22:25:04 -04:00
added avatars to identities.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7875 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
b321953789
commit
481ee246b5
10 changed files with 418 additions and 240 deletions
|
@ -33,6 +33,8 @@
|
|||
#include "retroshare/rstokenservice.h"
|
||||
#include "retroshare/rsgxsifacehelper.h"
|
||||
#include "retroshare/rsids.h"
|
||||
#include "serialiser/rstlvimage.h"
|
||||
#include "retroshare/rsgxscommon.h"
|
||||
|
||||
/* The Main Interface Class - for information about your Peers */
|
||||
class RsIdentity;
|
||||
|
@ -105,10 +107,13 @@ class RsGxsIdGroup
|
|||
// Recognition Strings. MAX# defined above.
|
||||
std::list<std::string> mRecognTags;
|
||||
|
||||
// Not Serialised - for GUI's benefit.
|
||||
// Avatar
|
||||
RsGxsImage mImage ;
|
||||
|
||||
// Not Serialised - for GUI's benefit.
|
||||
bool mPgpKnown;
|
||||
RsPgpId mPgpId;
|
||||
GxsReputation mReputation;
|
||||
GxsReputation mReputation;
|
||||
};
|
||||
|
||||
|
||||
|
@ -168,7 +173,10 @@ class RsIdentityDetails
|
|||
std::list<RsRecognTag> mRecognTags;
|
||||
|
||||
// reputation details.
|
||||
GxsReputation mReputation;
|
||||
GxsReputation mReputation;
|
||||
|
||||
// avatar
|
||||
RsGxsImage mAvatar ;
|
||||
};
|
||||
|
||||
|
||||
|
@ -185,7 +193,8 @@ class RsIdentityParameters
|
|||
public:
|
||||
RsIdentityParameters(): isPgpLinked(false) { return; }
|
||||
bool isPgpLinked;
|
||||
std::string nickname;
|
||||
std::string nickname;
|
||||
RsGxsImage mImage ;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -131,17 +131,13 @@ RsItem* RsGxsIdSerialiser::deserialise(void* data, uint32_t* size)
|
|||
|
||||
void RsGxsIdGroupItem::clear()
|
||||
{
|
||||
group.mPgpIdHash.clear();
|
||||
group.mPgpIdSign.clear();
|
||||
|
||||
group.mRecognTags.clear();
|
||||
|
||||
group.mPgpKnown = false;
|
||||
group.mPgpId.clear();
|
||||
mPgpIdHash.clear();
|
||||
mPgpIdSign.clear();
|
||||
|
||||
mRecognTags.clear();
|
||||
mImage.TlvClear();
|
||||
}
|
||||
|
||||
|
||||
std::ostream& RsGxsIdGroupItem::print(std::ostream& out, uint16_t indent)
|
||||
{
|
||||
printRsItemBase(out, "RsGxsIdGroupItem", indent);
|
||||
|
@ -150,20 +146,20 @@ std::ostream& RsGxsIdGroupItem::print(std::ostream& out, uint16_t indent)
|
|||
printIndent(out, int_Indent);
|
||||
out << "MetaData: " << meta << std::endl;
|
||||
printIndent(out, int_Indent);
|
||||
out << "PgpIdHash: " << group.mPgpIdHash << std::endl;
|
||||
out << "PgpIdHash: " << mPgpIdHash << std::endl;
|
||||
printIndent(out, int_Indent);
|
||||
|
||||
std::string signhex;
|
||||
// convert from binary to hex.
|
||||
for(unsigned int i = 0; i < group.mPgpIdSign.length(); i++)
|
||||
for(unsigned int i = 0; i < mPgpIdSign.length(); i++)
|
||||
{
|
||||
rs_sprintf_append(signhex, "%02x", (uint32_t) ((uint8_t) group.mPgpIdSign[i]));
|
||||
rs_sprintf_append(signhex, "%02x", (uint32_t) ((uint8_t) mPgpIdSign[i]));
|
||||
}
|
||||
out << "PgpIdSign: " << signhex << std::endl;
|
||||
printIndent(out, int_Indent);
|
||||
out << "RecognTags:" << std::endl;
|
||||
|
||||
RsTlvStringSetRef set(TLV_TYPE_RECOGNSET, group.mRecognTags);
|
||||
RsTlvStringSetRef set(TLV_TYPE_RECOGNSET, mRecognTags);
|
||||
set.print(out, int_Indent + 2);
|
||||
|
||||
printRsItemEnd(out ,"RsGxsIdGroupItem", indent);
|
||||
|
@ -173,17 +169,17 @@ std::ostream& RsGxsIdGroupItem::print(std::ostream& out, uint16_t indent)
|
|||
|
||||
uint32_t RsGxsIdSerialiser::sizeGxsIdGroupItem(RsGxsIdGroupItem *item)
|
||||
{
|
||||
uint32_t s = 8; // header
|
||||
|
||||
const RsGxsIdGroup& group = item->group;
|
||||
uint32_t s = 8; // header
|
||||
s += Sha1CheckSum::SIZE_IN_BYTES;
|
||||
s += GetTlvStringSize(item->mPgpIdSign);
|
||||
|
||||
s += Sha1CheckSum::SIZE_IN_BYTES;
|
||||
s += GetTlvStringSize(group.mPgpIdSign);
|
||||
RsTlvStringSetRef set(TLV_TYPE_RECOGNSET, item->mRecognTags);
|
||||
s += set.TlvSize();
|
||||
|
||||
RsTlvStringSetRef set(TLV_TYPE_RECOGNSET, item->group.mRecognTags);
|
||||
s += set.TlvSize();
|
||||
s += item->mImage.TlvSize() ;
|
||||
|
||||
return s;
|
||||
return s;
|
||||
}
|
||||
|
||||
bool RsGxsIdSerialiser::serialiseGxsIdGroupItem(RsGxsIdGroupItem *item, void *data, uint32_t *size)
|
||||
|
@ -211,12 +207,14 @@ bool RsGxsIdSerialiser::serialiseGxsIdGroupItem(RsGxsIdGroupItem *item, void *da
|
|||
offset += 8;
|
||||
|
||||
/* GxsIdGroupItem */
|
||||
ok &= item->group.mPgpIdHash.serialise(data, tlvsize, offset);
|
||||
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_SIGN, item->group.mPgpIdSign);
|
||||
ok &= item->mPgpIdHash.serialise(data, tlvsize, offset);
|
||||
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_SIGN, item->mPgpIdSign);
|
||||
|
||||
RsTlvStringSetRef set(TLV_TYPE_RECOGNSET, item->group.mRecognTags);
|
||||
RsTlvStringSetRef set(TLV_TYPE_RECOGNSET, item->mRecognTags);
|
||||
ok &= set.SetTlv(data, tlvsize, &offset);
|
||||
|
||||
|
||||
ok &= item->mImage.SetTlv(data,tlvsize,&offset) ;
|
||||
|
||||
if(offset != tlvsize)
|
||||
{
|
||||
#ifdef GXSID_DEBUG
|
||||
|
@ -234,7 +232,48 @@ bool RsGxsIdSerialiser::serialiseGxsIdGroupItem(RsGxsIdGroupItem *item, void *da
|
|||
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool RsGxsIdGroupItem::fromGxsIdGroup(RsGxsIdGroup &group, bool moveImage)
|
||||
{
|
||||
clear();
|
||||
meta = group.mMeta;
|
||||
mPgpIdHash = group.mPgpIdHash;
|
||||
mPgpIdSign = group.mPgpIdSign;
|
||||
mRecognTags = group.mRecognTags;
|
||||
|
||||
if (moveImage)
|
||||
{
|
||||
mImage.binData.bin_data = group.mImage.mData;
|
||||
mImage.binData.bin_len = group.mImage.mSize;
|
||||
group.mImage.shallowClear();
|
||||
}
|
||||
else
|
||||
{
|
||||
mImage.binData.setBinData(group.mImage.mData, group.mImage.mSize);
|
||||
}
|
||||
return true ;
|
||||
}
|
||||
bool RsGxsIdGroupItem::toGxsIdGroup(RsGxsIdGroup &group, bool moveImage)
|
||||
{
|
||||
group.mMeta = meta;
|
||||
group.mPgpIdHash = mPgpIdHash;
|
||||
group.mPgpIdSign = mPgpIdSign;
|
||||
group.mRecognTags = mRecognTags;
|
||||
|
||||
if (moveImage)
|
||||
{
|
||||
group.mImage.take((uint8_t *) mImage.binData.bin_data, mImage.binData.bin_len);
|
||||
// mImage doesn't have a ShallowClear at the moment!
|
||||
mImage.binData.TlvShallowClear();
|
||||
}
|
||||
else
|
||||
{
|
||||
group.mImage.copy((uint8_t *) mImage.binData.bin_data, mImage.binData.bin_len);
|
||||
}
|
||||
return true ;
|
||||
}
|
||||
|
||||
RsGxsIdGroupItem* RsGxsIdSerialiser::deserialiseGxsIdGroupItem(void *data, uint32_t *size)
|
||||
{
|
||||
/* get the type and size */
|
||||
|
@ -271,14 +310,17 @@ RsGxsIdGroupItem* RsGxsIdSerialiser::deserialiseGxsIdGroupItem(void *data, uint3
|
|||
/* skip the header */
|
||||
offset += 8;
|
||||
|
||||
ok &= item->group.mPgpIdHash.deserialise(data, rssize, offset);
|
||||
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_SIGN, item->group.mPgpIdSign);
|
||||
ok &= item->mPgpIdHash.deserialise(data, rssize, offset);
|
||||
ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_SIGN, item->mPgpIdSign);
|
||||
|
||||
RsTlvStringSetRef set(TLV_TYPE_RECOGNSET, item->group.mRecognTags);
|
||||
RsTlvStringSetRef set(TLV_TYPE_RECOGNSET, item->mRecognTags);
|
||||
ok &= set.GetTlv(data, rssize, &offset);
|
||||
|
||||
|
||||
if (offset != rssize)
|
||||
|
||||
// image is optional,so that we can continue reading old items.
|
||||
if(offset < rssize)
|
||||
ok &= item->mImage.GetTlv(data,rssize,&offset) ;
|
||||
|
||||
if (offset != rssize)
|
||||
{
|
||||
#ifdef GXSID_DEBUG
|
||||
std::cerr << "RsGxsIdSerialiser::deserialiseGxsIdGroupItem() FAIL size mismatch" << std::endl;
|
||||
|
|
|
@ -34,7 +34,9 @@
|
|||
#include "rsgxsitems.h"
|
||||
#include "retroshare/rsidentity.h"
|
||||
|
||||
const uint8_t RS_PKT_SUBTYPE_GXSID_GROUP_ITEM = 0x02;
|
||||
//const uint8_t RS_PKT_SUBTYPE_GXSID_GROUP_ITEM_deprecated = 0x02;
|
||||
|
||||
const uint8_t RS_PKT_SUBTYPE_GXSID_GROUP_ITEM = 0x02;
|
||||
const uint8_t RS_PKT_SUBTYPE_GXSID_OPINION_ITEM = 0x03;
|
||||
const uint8_t RS_PKT_SUBTYPE_GXSID_COMMENT_ITEM = 0x04;
|
||||
|
||||
|
@ -43,15 +45,26 @@ class RsGxsIdGroupItem : public RsGxsGrpItem
|
|||
|
||||
public:
|
||||
|
||||
RsGxsIdGroupItem(): RsGxsGrpItem(RS_SERVICE_GXS_TYPE_GXSID,
|
||||
RS_PKT_SUBTYPE_GXSID_GROUP_ITEM) { return;}
|
||||
virtual ~RsGxsIdGroupItem() { return;}
|
||||
RsGxsIdGroupItem(): RsGxsGrpItem(RS_SERVICE_GXS_TYPE_GXSID,
|
||||
RS_PKT_SUBTYPE_GXSID_GROUP_ITEM) { return;}
|
||||
virtual ~RsGxsIdGroupItem() { return;}
|
||||
|
||||
void clear();
|
||||
std::ostream &print(std::ostream &out, uint16_t indent = 0);
|
||||
void clear();
|
||||
std::ostream &print(std::ostream &out, uint16_t indent = 0);
|
||||
|
||||
bool fromGxsIdGroup(RsGxsIdGroup &group, bool moveImage);
|
||||
bool toGxsIdGroup(RsGxsIdGroup &group, bool moveImage);
|
||||
|
||||
RsGxsIdGroup group;
|
||||
Sha1CheckSum mPgpIdHash;
|
||||
// Need a signature as proof - otherwise anyone could add others Hashes.
|
||||
// This is a string, as the length is variable.
|
||||
std::string mPgpIdSign;
|
||||
|
||||
// Recognition Strings. MAX# defined above.
|
||||
std::list<std::string> mRecognTags;
|
||||
|
||||
// Avatar
|
||||
RsTlvImage mImage ;
|
||||
};
|
||||
|
||||
#if 0
|
||||
|
@ -59,7 +72,7 @@ class RsGxsIdOpinionItem : public RsGxsMsgItem
|
|||
{
|
||||
public:
|
||||
|
||||
RsGxsIdOpinionItem(): RsGxsMsgItem(RS_SERVICE_GXS_TYPE_GXSID,
|
||||
RsGxsIdOpinionItem(): RsGxsMsgItem(RS_SERVICE_GXS_TYPE_GXSID,
|
||||
RS_PKT_SUBTYPE_GXSID_OPINION_ITEM) {return; }
|
||||
virtual ~RsGxsIdOpinionItem() { return;}
|
||||
void clear();
|
||||
|
|
|
@ -324,7 +324,9 @@ bool p3IdService::createIdentity(uint32_t& token, RsIdentityParameters ¶ms)
|
|||
|
||||
RsGxsIdGroup id;
|
||||
|
||||
id.mMeta.mGroupName = params.nickname;
|
||||
id.mMeta.mGroupName = params.nickname;
|
||||
id.mImage = params.mImage;
|
||||
|
||||
if (params.isPgpLinked)
|
||||
{
|
||||
id.mMeta.mGroupFlags = RSGXSID_GROUPFLAG_REALID;
|
||||
|
@ -740,8 +742,8 @@ bool p3IdService::getGroupData(const uint32_t &token, std::vector<RsGxsIdGroup>
|
|||
item->print(std::cerr);
|
||||
std::cerr << std::endl;
|
||||
#endif // DEBUG_IDS
|
||||
RsGxsIdGroup group = item->group;
|
||||
group.mMeta = item->meta;
|
||||
RsGxsIdGroup group ;
|
||||
item->toGxsIdGroup(group,false) ;
|
||||
|
||||
// Decode information from serviceString.
|
||||
SSGxsIdGroup ssdata;
|
||||
|
@ -769,7 +771,7 @@ bool p3IdService::getGroupData(const uint32_t &token, std::vector<RsGxsIdGroup>
|
|||
}
|
||||
|
||||
groups.push_back(group);
|
||||
delete(item);
|
||||
delete(item);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -789,19 +791,21 @@ bool p3IdService::getGroupData(const uint32_t &token, std::vector<RsGxsIdGroup>
|
|||
|
||||
bool p3IdService::createGroup(uint32_t& token, RsGxsIdGroup &group)
|
||||
{
|
||||
RsGxsIdGroupItem* item = new RsGxsIdGroupItem();
|
||||
item->group = group;
|
||||
item->meta = group.mMeta;
|
||||
RsGenExchange::publishGroup(token, item);
|
||||
return true;
|
||||
RsGxsIdGroupItem* item = new RsGxsIdGroupItem();
|
||||
|
||||
item->meta = group.mMeta;
|
||||
item->mImage.binData.setBinData(group.mImage.mData, group.mImage.mSize);
|
||||
|
||||
RsGenExchange::publishGroup(token, item);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool p3IdService::updateGroup(uint32_t& token, RsGxsIdGroup &group)
|
||||
{
|
||||
RsGxsId id = RsGxsId(group.mMeta.mGroupId.toStdString());
|
||||
RsGxsIdGroupItem* item = new RsGxsIdGroupItem();
|
||||
item->group = group;
|
||||
item->meta = group.mMeta;
|
||||
RsGxsIdGroupItem* item = new RsGxsIdGroupItem();
|
||||
|
||||
item->fromGxsIdGroup(group,false) ;
|
||||
|
||||
#ifdef DEBUG_IDS
|
||||
std::cerr << "p3IdService::updateGroup() Updating RsGxsId: " << id;
|
||||
|
@ -850,9 +854,9 @@ bool p3IdService::updateGroup(uint32_t& token, RsGxsIdGroup &group)
|
|||
bool p3IdService::deleteGroup(uint32_t& token, RsGxsIdGroup &group)
|
||||
{
|
||||
RsGxsId id = RsGxsId(group.mMeta.mGroupId.toStdString());
|
||||
RsGxsIdGroupItem* item = new RsGxsIdGroupItem();
|
||||
item->group = group;
|
||||
item->meta = group.mMeta;
|
||||
RsGxsIdGroupItem* item = new RsGxsIdGroupItem();
|
||||
|
||||
item->fromGxsIdGroup(group,false) ;
|
||||
|
||||
#ifdef DEBUG_IDS
|
||||
std::cerr << "p3IdService::deleteGroup() Deleting RsGxsId: " << id;
|
||||
|
@ -1285,7 +1289,9 @@ RsGxsIdCache::RsGxsIdCache(const RsGxsIdGroupItem *item, const RsTlvSecurityKey
|
|||
mPublishTs = item->meta.mPublishTs;
|
||||
|
||||
// Save RecognTags.
|
||||
mRecognTags = tagList;
|
||||
mRecognTags = tagList;
|
||||
|
||||
details.mAvatar.copy((uint8_t *) item->mImage.binData.bin_data, item->mImage.binData.bin_len);
|
||||
|
||||
// Fill in Details.
|
||||
details.mNickname = item->meta.mGroupName;
|
||||
|
@ -1396,7 +1402,7 @@ bool p3IdService::recogn_extract_taginfo(const RsGxsIdGroupItem *item, std::list
|
|||
|
||||
std::list<std::string>::const_iterator rit;
|
||||
int count = 0;
|
||||
for(rit = item->group.mRecognTags.begin(); rit != item->group.mRecognTags.end(); ++rit)
|
||||
for(rit = item->mRecognTags.begin(); rit != item->mRecognTags.end(); ++rit)
|
||||
{
|
||||
if (++count > RSRECOGN_MAX_TAGINFO)
|
||||
{
|
||||
|
@ -2179,7 +2185,7 @@ RsGenExchange::ServiceCreate_Return p3IdService::service_CreateGroup(RsGxsGrpIte
|
|||
|
||||
if(pk.keyFlags == (RSTLV_KEY_DISTRIB_ADMIN | RSTLV_KEY_TYPE_FULL))
|
||||
{
|
||||
item->group.mMeta.mGroupId = RsGxsGroupId(pk.keyId);
|
||||
item->meta.mGroupId = RsGxsGroupId(pk.keyId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -2195,36 +2201,36 @@ RsGenExchange::ServiceCreate_Return p3IdService::service_CreateGroup(RsGxsGrpIte
|
|||
/********************* TEMP HACK UNTIL GXS FILLS IN GROUP_ID *****************/
|
||||
|
||||
// SANITY CHECK.
|
||||
if (item->group.mMeta.mAuthorId != item->meta.mAuthorId)
|
||||
{
|
||||
std::cerr << "p3IdService::service_CreateGroup() AuthorId mismatch(";
|
||||
std::cerr << item->group.mMeta.mAuthorId;
|
||||
std::cerr << " vs ";
|
||||
std::cerr << item->meta.mAuthorId;
|
||||
std::cerr << std::endl;
|
||||
}
|
||||
|
||||
if (item->group.mMeta.mGroupId != item->meta.mGroupId)
|
||||
{
|
||||
std::cerr << "p3IdService::service_CreateGroup() GroupId mismatch(";
|
||||
std::cerr << item->group.mMeta.mGroupId;
|
||||
std::cerr << " vs ";
|
||||
std::cerr << item->meta.mGroupId;
|
||||
std::cerr << std::endl;
|
||||
}
|
||||
|
||||
|
||||
if (item->group.mMeta.mGroupFlags != item->meta.mGroupFlags)
|
||||
{
|
||||
std::cerr << "p3IdService::service_CreateGroup() GroupFlags mismatch(";
|
||||
std::cerr << item->group.mMeta.mGroupFlags;
|
||||
std::cerr << " vs ";
|
||||
std::cerr << item->meta.mGroupFlags;
|
||||
std::cerr << std::endl;
|
||||
}
|
||||
// if (item->mMeta.mAuthorId != item->meta.mAuthorId)
|
||||
// {
|
||||
// std::cerr << "p3IdService::service_CreateGroup() AuthorId mismatch(";
|
||||
// std::cerr << item->mMeta.mAuthorId;
|
||||
// std::cerr << " vs ";
|
||||
// std::cerr << item->meta.mAuthorId;
|
||||
// std::cerr << std::endl;
|
||||
// }
|
||||
//
|
||||
// if (item->group.mMeta.mGroupId != item->meta.mGroupId)
|
||||
// {
|
||||
// std::cerr << "p3IdService::service_CreateGroup() GroupId mismatch(";
|
||||
// std::cerr << item->mMeta.mGroupId;
|
||||
// std::cerr << " vs ";
|
||||
// std::cerr << item->meta.mGroupId;
|
||||
// std::cerr << std::endl;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// if (item->group.mMeta.mGroupFlags != item->meta.mGroupFlags)
|
||||
// {
|
||||
// std::cerr << "p3IdService::service_CreateGroup() GroupFlags mismatch(";
|
||||
// std::cerr << item->mMeta.mGroupFlags;
|
||||
// std::cerr << " vs ";
|
||||
// std::cerr << item->meta.mGroupFlags;
|
||||
// std::cerr << std::endl;
|
||||
// }
|
||||
|
||||
#ifdef DEBUG_IDS
|
||||
std::cerr << "p3IdService::service_CreateGroup() for : " << item->group.mMeta.mGroupId;
|
||||
std::cerr << "p3IdService::service_CreateGroup() for : " << item->mMeta.mGroupId;
|
||||
std::cerr << std::endl;
|
||||
std::cerr << "p3IdService::service_CreateGroup() Alt GroupId : " << item->meta.mGroupId;
|
||||
std::cerr << std::endl;
|
||||
|
@ -2232,7 +2238,7 @@ RsGenExchange::ServiceCreate_Return p3IdService::service_CreateGroup(RsGxsGrpIte
|
|||
|
||||
ServiceCreate_Return createStatus;
|
||||
|
||||
if (item->group.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID)
|
||||
if (item->meta.mGroupFlags & RSGXSID_GROUPFLAG_REALID)
|
||||
{
|
||||
/* create the hash */
|
||||
Sha1CheckSum hash;
|
||||
|
@ -2265,9 +2271,9 @@ RsGenExchange::ServiceCreate_Return p3IdService::service_CreateGroup(RsGxsGrpIte
|
|||
std::cerr << std::endl;
|
||||
#endif
|
||||
|
||||
RsGxsId gxsId(item->group.mMeta.mGroupId.toStdString());
|
||||
RsGxsId gxsId(item->meta.mGroupId.toStdString());
|
||||
calcPGPHash(gxsId, ownFinger, hash);
|
||||
item->group.mPgpIdHash = hash;
|
||||
item->mPgpIdHash = hash;
|
||||
|
||||
#ifdef DEBUG_IDS
|
||||
|
||||
|
@ -2306,13 +2312,13 @@ RsGenExchange::ServiceCreate_Return p3IdService::service_CreateGroup(RsGxsGrpIte
|
|||
std::string strout;
|
||||
#endif
|
||||
/* push binary into string -> really bad! */
|
||||
item->group.mPgpIdSign = "";
|
||||
item->mPgpIdSign = "";
|
||||
for(unsigned int i = 0; i < sign_size; i++)
|
||||
{
|
||||
#ifdef DEBUG_IDS
|
||||
rs_sprintf_append(strout, "%02x", (uint32_t) signarray[i]);
|
||||
#endif
|
||||
item->group.mPgpIdSign += signarray[i];
|
||||
item->mPgpIdSign += signarray[i];
|
||||
}
|
||||
createStatus = SERVICE_CREATE_SUCCESS;
|
||||
|
||||
|
@ -2330,7 +2336,7 @@ RsGenExchange::ServiceCreate_Return p3IdService::service_CreateGroup(RsGxsGrpIte
|
|||
|
||||
// Enforce no AuthorId.
|
||||
item->meta.mAuthorId.clear() ;
|
||||
item->group.mMeta.mAuthorId.clear() ;
|
||||
//item->mMeta.mAuthorId.clear() ;
|
||||
// copy meta data to be sure its all the same.
|
||||
//item->group.mMeta = item->meta;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue