mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-07-22 14:10:54 -04:00
sorry this temporarily won't build, will fix tomorrow
using this as jump point to transfer dev'n to my laptop nxs observer added started to updated nxmMsg with original id and nxsItems with transaction ids Added and netservice guts git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5201 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
bf4c250e51
commit
e4ecd898af
8 changed files with 507 additions and 67 deletions
|
@ -69,13 +69,13 @@ RsItem* RsNxsSerialiser::deserialise(void *data, uint32_t *size) {
|
|||
switch(getRsItemSubType(rstype))
|
||||
{
|
||||
|
||||
case RS_PKT_SUBTYPE_SYNC_GRP:
|
||||
case RS_PKT_SUBTYPE_NXS_SYNC_GRP:
|
||||
return deserialSyncGrp(data, size);
|
||||
case RS_PKT_SUBTYPE_SYNC_GRP_LIST:
|
||||
case RS_PKT_SUBTYPE_NXS_SYNC_GRP_ITEM:
|
||||
return deserialSyncGrpList(data, size);
|
||||
case RS_PKT_SUBTYPE_SYNC_MSG:
|
||||
case RS_PKT_SUBTYPE_NXS_SYNC_MSG:
|
||||
return deserialSyncGrpMsg(data, size);
|
||||
case RS_PKT_SUBTYPE_SYNC_MSG_LIST:
|
||||
case RS_PKT_SUBTYPE_NXS_SYNC_MSG_ITEM:
|
||||
return deserialSyncGrpMsgList(data, size);
|
||||
case RS_PKT_SUBTYPE_NXS_GRP:
|
||||
return deserialNxsGrp(data, size);
|
||||
|
@ -175,6 +175,7 @@ bool RsNxsSerialiser::serialiseSynGrpMsgList(RsSyncGrpMsgList *item, void *data,
|
|||
|
||||
/* RsSyncGrpMsgList */
|
||||
|
||||
ok &= setRawUInt32(data, *size, &offset, item->transactionId);
|
||||
ok &= setRawUInt8(data, *size, &offset, item->flag);
|
||||
ok &= SetTlvString(data, *size, &offset, TLV_TYPE_STR_GROUPID, item->grpId);
|
||||
ok &= SetTlvString(data, *size, &offset, TLV_TYPE_STR_MSGID, item->msgId);
|
||||
|
@ -279,7 +280,7 @@ bool RsNxsSerialiser::serialiseNxsGrp(RsNxsGrp *item, void *data, uint32_t *size
|
|||
offset += 8;
|
||||
|
||||
// grp id
|
||||
|
||||
ok &= setRawUInt32(data, *size, &offset, item->transactionId);
|
||||
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_GROUPID, item->grpId);
|
||||
ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_NAME, item->identity);
|
||||
ok &= setRawUInt32(data, tlvsize, &offset, item->grpFlag);
|
||||
|
@ -332,6 +333,7 @@ bool RsNxsSerialiser::serialiseSyncGrp(RsSyncGrp *item, void *data, uint32_t *si
|
|||
/* skip the header */
|
||||
offset += 8;
|
||||
|
||||
ok &= setRawUInt32(data, *size, &offset, item->transactionId);
|
||||
ok &= setRawUInt8(data, *size, &offset, item->flag);
|
||||
ok &= setRawUInt32(data, *size, &offset, item->syncAge);
|
||||
ok &= SetTlvString(data, *size, &offset, TLV_TYPE_STR_HASH_SHA1, item->syncHash);
|
||||
|
@ -379,6 +381,7 @@ bool RsNxsSerialiser::serialiseNxsTrans(RsNxsTransac *item, void *data, uint32_t
|
|||
/* skip the header */
|
||||
offset += 8;
|
||||
|
||||
ok &= setRawUInt32(data, *size, &offset, item->transactionId);
|
||||
ok &= setRawUInt16(data, *size, &offset, item->transactFlag);
|
||||
ok &= setRawUInt32(data, *size, &offset, item->nItems);
|
||||
ok &= setRawUInt32(data, *size, &offset, item->timeout);
|
||||
|
@ -430,6 +433,7 @@ bool RsNxsSerialiser::serialiseSyncGrpList(RsSyncGrpList *item, void *data, uint
|
|||
|
||||
/* RsSyncGrpList */
|
||||
|
||||
ok &= setRawUInt32(data, *size, &offset, item->transactionId);
|
||||
ok &= setRawUInt8(data, *size, &offset, item->flag);
|
||||
ok &= SetTlvString(data, *size, &offset, TLV_TYPE_STR_GROUPID, item->grpId);
|
||||
ok &= item->adminSign.SetTlv(data, *size, &offset);
|
||||
|
@ -476,6 +480,7 @@ bool RsNxsSerialiser::serialiseSyncGrpMsg(RsSyncGrpMsg *item, void *data, uint32
|
|||
/* skip the header */
|
||||
offset += 8;
|
||||
|
||||
ok &= setRawUInt32(data, *size, &offset, item->transactionId);
|
||||
ok &= setRawUInt8(data, *size, &offset, item->flag);
|
||||
ok &= setRawUInt32(data, *size, &offset, item->syncAge);
|
||||
ok &= SetTlvString(data, *size, &offset, TLV_TYPE_STR_HASH_SHA1, item->syncHash);
|
||||
|
@ -546,6 +551,7 @@ RsNxsGrp* RsNxsSerialiser::deserialNxsGrp(void *data, uint32_t *size){
|
|||
/* skip the header */
|
||||
offset += 8;
|
||||
|
||||
ok &= getRawUInt32(data, *size, &offset, &(item->transactionNumber));
|
||||
ok &= GetTlvString(data, *size, &offset, TLV_TYPE_STR_GROUPID, item->grpId);
|
||||
ok &= GetTlvString(data, *size, &offset, TLV_TYPE_STR_NAME, item->identity);
|
||||
ok &= getRawUInt32(data, *size, &offset, &(item->grpFlag));
|
||||
|
@ -618,6 +624,7 @@ RsNxsMsg* RsNxsSerialiser::deserialNxsMsg(void *data, uint32_t *size){
|
|||
|
||||
offset += 8;
|
||||
|
||||
ok &= getRawUInt32(data, *size, &offset, &(item->transactionNumber));
|
||||
ok &= GetTlvString(data, *size, &offset, TLV_TYPE_STR_MSGID, item->msgId);
|
||||
ok &= GetTlvString(data, *size, &offset, TLV_TYPE_STR_GROUPID, item->grpId);
|
||||
ok &= GetTlvString(data, *size, &offset, TLV_TYPE_STR_NAME, item->identity);
|
||||
|
@ -664,7 +671,7 @@ RsSyncGrp* RsNxsSerialiser::deserialSyncGrp(void *data, uint32_t *size){
|
|||
|
||||
if ((RS_PKT_VERSION_SERVICE != getRsItemVersion(rstype)) ||
|
||||
(SERVICE_TYPE != getRsItemService(rstype)) ||
|
||||
(RS_PKT_SUBTYPE_SYNC_GRP != getRsItemSubType(rstype)))
|
||||
(RS_PKT_SUBTYPE_NXS_SYNC_GRP != getRsItemSubType(rstype)))
|
||||
{
|
||||
#ifdef RSSERIAL_DEBUG
|
||||
std::cerr << "RsNxsSerialiser::deserialSyncGrp() FAIL wrong type" << std::endl;
|
||||
|
@ -689,6 +696,7 @@ RsSyncGrp* RsNxsSerialiser::deserialSyncGrp(void *data, uint32_t *size){
|
|||
/* skip the header */
|
||||
offset += 8;
|
||||
|
||||
ok &= getRawUInt32(data, *size, &offset, &(item->transactionNumber));
|
||||
ok &= getRawUInt8(data, *size, &offset, &(item->flag));
|
||||
ok &= getRawUInt32(data, *size, &offset, &(item->syncAge));
|
||||
ok &= GetTlvString(data, *size, &offset, TLV_TYPE_STR_HASH_SHA1, item->syncHash);
|
||||
|
@ -730,7 +738,7 @@ RsSyncGrpList* RsNxsSerialiser::deserialSyncGrpList(void *data, uint32_t *size){
|
|||
|
||||
if ((RS_PKT_VERSION_SERVICE != getRsItemVersion(rstype)) ||
|
||||
(SERVICE_TYPE != getRsItemService(rstype)) ||
|
||||
(RS_PKT_SUBTYPE_SYNC_GRP_LIST != getRsItemSubType(rstype)))
|
||||
(RS_PKT_SUBTYPE_NXS_SYNC_GRP_ITEM != getRsItemSubType(rstype)))
|
||||
{
|
||||
#ifdef RSSERIAL_DEBUG
|
||||
std::cerr << "RsNxsSerialiser::deserialSyncGrpList() FAIL wrong type" << std::endl;
|
||||
|
@ -755,6 +763,7 @@ RsSyncGrpList* RsNxsSerialiser::deserialSyncGrpList(void *data, uint32_t *size){
|
|||
/* skip the header */
|
||||
offset += 8;
|
||||
|
||||
ok &= getRawUInt32(data, *size, &offset, &(item->transactionNumber));
|
||||
ok &= getRawUInt8(data, *size, &offset, &(item->flag));
|
||||
ok &= GetTlvString(data, *size, &offset, TLV_TYPE_STR_GROUPID, item->grpId);
|
||||
ok &= item->adminSign.GetTlv(data, *size, &offset);
|
||||
|
@ -821,6 +830,7 @@ RsNxsTransac* RsNxsSerialiser::deserialNxsTrans(void *data, uint32_t *size){
|
|||
|
||||
RsNxsTransac* item = new RsNxsTransac(SERVICE_TYPE);
|
||||
|
||||
ok &= getRawUInt32(data, *size, &offset, &(item->transactionNumber));
|
||||
ok &= getRawUInt16(data, *size, &offset, &(item->transactFlag));
|
||||
ok &= getRawUInt32(data, *size, &offset, &(item->nItems));
|
||||
ok &= getRawUInt32(data, *size, &offset, &(item->timeout));
|
||||
|
@ -889,6 +899,7 @@ RsSyncGrpMsgList* RsNxsSerialiser::deserialSyncGrpMsgList(void *data, uint32_t *
|
|||
/* skip the header */
|
||||
offset += 8;
|
||||
|
||||
ok &= getRawUInt32(data, *size, &offset, &(item->transactionNumber));
|
||||
ok &= getRawUInt8(data, *size, &offset, &(item->flag));
|
||||
ok &= GetTlvString(data, *size, &offset, TLV_TYPE_STR_GROUPID, item->grpId);
|
||||
ok &= GetTlvString(data, *size, &offset, TLV_TYPE_STR_MSGID, item->msgId);
|
||||
|
@ -959,6 +970,7 @@ RsSyncGrpMsg* RsNxsSerialiser::deserialSyncGrpMsg(void *data, uint32_t *size)
|
|||
/* skip the header */
|
||||
offset += 8;
|
||||
|
||||
ok &= getRawUInt32(data, *size, &offset, &(item->transactionNumber));
|
||||
ok &= getRawUInt8(data, *size, &offset, &(item->flag));
|
||||
ok &= getRawUInt32(data, *size, &offset, &(item->syncAge));
|
||||
ok &= GetTlvString(data, *size, &offset, TLV_TYPE_STR_HASH_SHA1, item->syncHash);
|
||||
|
@ -1017,6 +1029,7 @@ uint32_t RsNxsSerialiser::sizeNxsGrp(RsNxsGrp *item)
|
|||
{
|
||||
uint32_t s = 8; // header size
|
||||
|
||||
s += 4; // transaction number
|
||||
s += GetTlvStringSize(item->grpId);
|
||||
s += GetTlvStringSize(item->identity);
|
||||
s += 4; // grpFlag
|
||||
|
@ -1034,6 +1047,7 @@ uint32_t RsNxsSerialiser::sizeSyncGrp(RsSyncGrp *item)
|
|||
{
|
||||
uint32_t s = 8; // header size
|
||||
|
||||
s += 4; // transaction number
|
||||
s += 1; // flag
|
||||
s += 4; // sync age
|
||||
s += GetTlvStringSize(item->syncHash);
|
||||
|
@ -1046,8 +1060,8 @@ uint32_t RsNxsSerialiser::sizeSyncGrpList(RsSyncGrpList *item)
|
|||
{
|
||||
uint32_t s = 8; // header size
|
||||
|
||||
s += 4; // transaction number
|
||||
s += 1; // flag
|
||||
|
||||
s += GetTlvStringSize(item->grpId);
|
||||
s += item->adminSign.TlvSize();
|
||||
|
||||
|
@ -1060,6 +1074,7 @@ uint32_t RsNxsSerialiser::sizeSyncGrpMsg(RsSyncGrpMsg *item)
|
|||
|
||||
uint32_t s = 8;
|
||||
|
||||
s += 4; // transaction number
|
||||
s += 1; // flag
|
||||
s += 4; // age
|
||||
s += GetTlvStringSize(item->grpId);
|
||||
|
@ -1073,6 +1088,7 @@ uint32_t RsNxsSerialiser::sizeSyncGrpMsgList(RsSyncGrpMsgList *item)
|
|||
{
|
||||
uint32_t s = 8; // header size
|
||||
|
||||
s += 4; // transaction number
|
||||
s += 1; // flag
|
||||
s += GetTlvStringSize(item->grpId);
|
||||
s += GetTlvStringSize(item->msgId);
|
||||
|
@ -1084,6 +1100,8 @@ uint32_t RsNxsSerialiser::sizeSyncGrpMsgList(RsSyncGrpMsgList *item)
|
|||
uint32_t RsNxsSerialiser::sizeNxsTrans(RsNxsTransac *item){
|
||||
|
||||
uint32_t s = 8; // header size
|
||||
|
||||
s += 4; // transaction number
|
||||
s += 2; // flag
|
||||
s += 4; // nMsgs
|
||||
s += 4; // timeout
|
||||
|
|
|
@ -36,11 +36,11 @@
|
|||
#include "serialiser/rstlvkeys.h"
|
||||
|
||||
|
||||
const uint8_t RS_PKT_SUBTYPE_SYNC_GRP = 0x0001;
|
||||
const uint8_t RS_PKT_SUBTYPE_SYNC_GRP_LIST = 0x0002;
|
||||
const uint8_t RS_PKT_SUBTYPE_NXS_SYNC_GRP = 0x0001;
|
||||
const uint8_t RS_PKT_SUBTYPE_NXS_SYNC_GRP_ITEM = 0x0002;
|
||||
const uint8_t RS_PKT_SUBTYPE_NXS_GRP = 0x0004;
|
||||
const uint8_t RS_PKT_SUBTYPE_SYNC_MSG = 0x0008;
|
||||
const uint8_t RS_PKT_SUBTYPE_SYNC_MSG_LIST = 0x0010;
|
||||
const uint8_t RS_PKT_SUBTYPE_NXS_SYNC_MSG_ITEM = 0x0008;
|
||||
const uint8_t RS_PKT_SUBTYPE_NXS_SYNC_MSG = 0x0010;
|
||||
const uint8_t RS_PKT_SUBTYPE_NXS_MSG = 0x0020;
|
||||
const uint8_t RS_PKT_SUBTYPE_NXS_TRANS = 0x0040;
|
||||
|
||||
|
@ -67,10 +67,12 @@ class RsNxsItem : public RsItem
|
|||
|
||||
public:
|
||||
RsNxsItem(uint16_t servtype, uint8_t subtype)
|
||||
: RsItem(RS_PKT_VERSION_SERVICE, servtype, subtype) { return; }
|
||||
: RsItem(RS_PKT_VERSION_SERVICE, servtype, subtype), transactionNumber(0) { return; }
|
||||
|
||||
virtual void clear() = 0;
|
||||
virtual std::ostream &print(std::ostream &out, uint16_t indent = 0) = 0;
|
||||
|
||||
uint32_t transactionNumber; // set to zero if this is not a transaction item
|
||||
};
|
||||
|
||||
|
||||
|
@ -79,14 +81,14 @@ public:
|
|||
* Server may advise client peer to use sync file
|
||||
* while serving his request. This results
|
||||
*/
|
||||
class RsSyncGrp : public RsNxsItem {
|
||||
class RsNxsSyncGrp : public RsNxsItem {
|
||||
|
||||
public:
|
||||
|
||||
static const uint8_t FLAG_USE_SYNC_HASH;
|
||||
static const uint8_t FLAG_ONLY_CURRENT; // only send most current version of grps / ignores sync hash
|
||||
|
||||
RsSyncGrp(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_SYNC_GRP) { return;}
|
||||
RsNxsSyncGrp(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_SYNC_GRP) { return;}
|
||||
|
||||
virtual void clear();
|
||||
virtual std::ostream &print(std::ostream &out, uint16_t indent);
|
||||
|
@ -112,12 +114,11 @@ public:
|
|||
/** transaction **/
|
||||
static const uint16_t FLAG_BEGIN_P1;
|
||||
static const uint16_t FLAG_BEGIN_P2;
|
||||
static const uint16_t FLAG_END_P1;
|
||||
static const uint16_t FLAG_END_P2;
|
||||
static const uint16_t FLAG_END_SUCCESS;
|
||||
static const uint16_t FLAG_CANCEL;
|
||||
static const uint16_t FLAG_FAIL_NUM;
|
||||
static const uint16_t FLAG_FAIL_TIMEOUT;
|
||||
static const uint16_t FLAG_FAIL_FULL;
|
||||
static const uint16_t FLAG_END_FAIL_NUM;
|
||||
static const uint16_t FLAG_END_FAIL_TIMEOUT;
|
||||
static const uint16_t FLAG_END_FAIL_FULL;
|
||||
|
||||
|
||||
/** transaction type **/
|
||||
|
@ -144,7 +145,7 @@ public:
|
|||
* Use to send to peer list of grps
|
||||
* held by server peer
|
||||
*/
|
||||
class RsSyncGrpList : public RsNxsItem
|
||||
class RsNxsSyncGrpItem : public RsNxsItem
|
||||
{
|
||||
|
||||
public:
|
||||
|
@ -153,8 +154,8 @@ public:
|
|||
static const uint8_t FLAG_RESPONSE;
|
||||
static const uint8_t FLAG_USE_SYNC_HASH;
|
||||
|
||||
RsSyncGrpList(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_SYNC_GRP_LIST) { return ; }
|
||||
virtual ~RsSyncGrpList() { return; }
|
||||
RsNxsSyncGrpItem(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_SYNC_GRP_ITEM) { return ; }
|
||||
virtual ~RsNxsSyncGrpList() { return; }
|
||||
|
||||
virtual void clear();
|
||||
virtual std::ostream &print(std::ostream &out, uint16_t indent);
|
||||
|
@ -198,14 +199,14 @@ public:
|
|||
* Use to request list of msg held by peer
|
||||
* for a given group
|
||||
*/
|
||||
class RsSyncGrpMsg : public RsNxsItem
|
||||
class RsNxsSyncMsg : public RsNxsItem
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
static const uint8_t FLAG_USE_SYNC_HASH;
|
||||
|
||||
RsSyncGrpMsg(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_SYNC_MSG) {return; }
|
||||
RsNxsSyncMsg(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_SYNC_MSG) {return; }
|
||||
|
||||
|
||||
virtual void clear();
|
||||
|
@ -221,15 +222,14 @@ public:
|
|||
* Use to send list msgs for a group held by
|
||||
* a peer
|
||||
*/
|
||||
class RsSyncGrpMsgList : public RsNxsItem
|
||||
class RsNxsSyncMsgItem : public RsNxsItem
|
||||
{
|
||||
public:
|
||||
|
||||
static const uint8_t FLAG_REQUEST;
|
||||
static const uint8_t FLAG_RESPONSE;
|
||||
static const uint8_t FLAG_USE_SYNC_HASH;
|
||||
RsSyncGrpMsgList(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_SYNC_MSG_LIST) { return; }
|
||||
|
||||
RsNxsSyncMsgItem(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_SYNC_MSG_ITEM) { return; }
|
||||
|
||||
virtual void clear();
|
||||
virtual std::ostream &print(std::ostream &out, uint16_t indent);
|
||||
|
@ -237,7 +237,6 @@ public:
|
|||
uint8_t flag; // response/req
|
||||
std::string grpId;
|
||||
std::string msgId;
|
||||
RsTlvKeySignature idSign;
|
||||
|
||||
};
|
||||
|
||||
|
@ -250,8 +249,6 @@ class RsNxsMsg : public RsNxsItem
|
|||
{
|
||||
public:
|
||||
|
||||
|
||||
|
||||
RsNxsMsg(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_MSG), msg(servtype) { return; }
|
||||
|
||||
|
||||
|
@ -260,6 +257,7 @@ public:
|
|||
|
||||
std::string grpId; /// group id, forms part of version id
|
||||
std::string msgId; /// msg id
|
||||
std::string originalMsgId;
|
||||
uint32_t msgFlag;
|
||||
uint32_t timeStamp; /// UTC time create,
|
||||
RsTlvBinaryData msg;
|
||||
|
@ -360,7 +358,6 @@ public:
|
|||
|
||||
std::string msgId;
|
||||
std::string grpId;
|
||||
RsTlvKeySignature idSign;
|
||||
RsTlvKeySignature deleteSign; // ( msgId + grpId + msg data ) sign //TODO: add warning not to place msgId+grpId in msg!
|
||||
|
||||
};
|
||||
|
@ -396,15 +393,15 @@ private:
|
|||
|
||||
/* for RS_PKT_SUBTYPE_SYNC_GRP */
|
||||
|
||||
virtual uint32_t sizeSyncGrp(RsSyncGrp* item);
|
||||
virtual bool serialiseSyncGrp(RsSyncGrp *item, void *data, uint32_t *size);
|
||||
virtual RsSyncGrp* deserialSyncGrp(void *data, uint32_t *size);
|
||||
virtual uint32_t sizeNxsSyncGrp(RsNxsSyncGrp* item);
|
||||
virtual bool serialiseNxsSyncGrp(RsNxsSyncGrp *item, void *data, uint32_t *size);
|
||||
virtual RsNxsSyncGrp* deserialNxsSyncGrp(void *data, uint32_t *size);
|
||||
|
||||
/* for RS_PKT_SUBTYPE_SYNC_GRP_LIST */
|
||||
|
||||
virtual uint32_t sizeSyncGrpList(RsSyncGrpList* item);
|
||||
virtual bool serialiseSyncGrpList(RsSyncGrpList *item, void *data, uint32_t *size);
|
||||
virtual RsSyncGrpList* deserialSyncGrpList(void *data, uint32_t *size);
|
||||
virtual uint32_t sizeSyncGrpList(RsNxsSyncGrpItem* item);
|
||||
virtual bool serialiseNxsSyncGrpList(RsNxsSyncGrpItem *item, void *data, uint32_t *size);
|
||||
virtual RsNxsSyncGrpItem* deserialNxsSyncGrpList(void *data, uint32_t *size);
|
||||
|
||||
/* for RS_PKT_SUBTYPE_NXS_GRP */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue