mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-02 14:16:16 -04:00
first commit, change some members name from localaddr to currentlocaladdr, and add ip lists in the classes. Not used yet to connect or exchange
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1804 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
a444484734
commit
00361c22a5
12 changed files with 156 additions and 115 deletions
|
@ -718,8 +718,8 @@ void RsPeerNetItem::clear()
|
|||
visState = 0;
|
||||
lastContact = 0;
|
||||
|
||||
sockaddr_clear(&localaddr);
|
||||
sockaddr_clear(&remoteaddr);
|
||||
sockaddr_clear(¤tlocaladdr);
|
||||
sockaddr_clear(¤tremoteaddr);
|
||||
}
|
||||
|
||||
std::ostream &RsPeerNetItem::print(std::ostream &out, uint16_t indent)
|
||||
|
@ -740,12 +740,12 @@ std::ostream &RsPeerNetItem::print(std::ostream &out, uint16_t indent)
|
|||
out << "lastContact: " << lastContact << std::endl;
|
||||
|
||||
printIndent(out, int_Indent);
|
||||
out << "localaddr: " << inet_ntoa(localaddr.sin_addr);
|
||||
out << ":" << htons(localaddr.sin_port) << std::endl;
|
||||
out << "currentlocaladdr: " << inet_ntoa(currentlocaladdr.sin_addr);
|
||||
out << ":" << htons(currentlocaladdr.sin_port) << std::endl;
|
||||
|
||||
printIndent(out, int_Indent);
|
||||
out << "remoteaddr: " << inet_ntoa(remoteaddr.sin_addr);
|
||||
out << ":" << htons(remoteaddr.sin_port) << std::endl;
|
||||
out << "currentremoteaddr: " << inet_ntoa(currentremoteaddr.sin_addr);
|
||||
out << ":" << htons(currentremoteaddr.sin_port) << std::endl;
|
||||
|
||||
printRsItemEnd(out, "RsPeerNetItem", indent);
|
||||
return out;
|
||||
|
@ -796,8 +796,8 @@ bool RsPeerConfigSerialiser::serialiseNet(RsPeerNetItem *item, void *data, uint3
|
|||
ok &= setRawUInt32(data, tlvsize, &offset, item->netMode); /* Mandatory */
|
||||
ok &= setRawUInt32(data, tlvsize, &offset, item->visState); /* Mandatory */
|
||||
ok &= setRawUInt32(data, tlvsize, &offset, item->lastContact); /* Mandatory */
|
||||
ok &= SetTlvIpAddrPortV4(data, tlvsize, &offset, TLV_TYPE_IPV4_LOCAL, &(item->localaddr));
|
||||
ok &= SetTlvIpAddrPortV4(data, tlvsize, &offset, TLV_TYPE_IPV4_REMOTE, &(item->remoteaddr));
|
||||
ok &= SetTlvIpAddrPortV4(data, tlvsize, &offset, TLV_TYPE_IPV4_LOCAL, &(item->currentlocaladdr));
|
||||
ok &= SetTlvIpAddrPortV4(data, tlvsize, &offset, TLV_TYPE_IPV4_REMOTE, &(item->currentremoteaddr));
|
||||
|
||||
if(offset != tlvsize)
|
||||
{
|
||||
|
@ -847,8 +847,8 @@ RsPeerNetItem *RsPeerConfigSerialiser::deserialiseNet(void *data, uint32_t *size
|
|||
ok &= getRawUInt32(data, rssize, &offset, &(item->netMode)); /* Mandatory */
|
||||
ok &= getRawUInt32(data, rssize, &offset, &(item->visState)); /* Mandatory */
|
||||
ok &= getRawUInt32(data, rssize, &offset, &(item->lastContact)); /* Mandatory */
|
||||
ok &= GetTlvIpAddrPortV4(data, rssize, &offset, TLV_TYPE_IPV4_LOCAL, &(item->localaddr));
|
||||
ok &= GetTlvIpAddrPortV4(data, rssize, &offset, TLV_TYPE_IPV4_REMOTE, &(item->remoteaddr));
|
||||
ok &= GetTlvIpAddrPortV4(data, rssize, &offset, TLV_TYPE_IPV4_LOCAL, &(item->currentlocaladdr));
|
||||
ok &= GetTlvIpAddrPortV4(data, rssize, &offset, TLV_TYPE_IPV4_REMOTE, &(item->currentremoteaddr));
|
||||
|
||||
if (offset != rssize)
|
||||
{
|
||||
|
|
|
@ -50,6 +50,11 @@ const uint8_t RS_PKT_SUBTYPE_FILE_ITEM = 0x02;
|
|||
|
||||
/**************************************************************************/
|
||||
|
||||
struct IpAddressTimed {
|
||||
struct sockaddr_in ipAddr;
|
||||
time_t seenTime;
|
||||
};
|
||||
|
||||
class RsPeerNetItem: public RsItem
|
||||
{
|
||||
public:
|
||||
|
@ -68,8 +73,11 @@ std::ostream &print(std::ostream &out, uint16_t indent = 0);
|
|||
uint32_t visState; /* Mandatory */
|
||||
uint32_t lastContact; /* Mandatory */
|
||||
|
||||
struct sockaddr_in localaddr; /* Mandatory */
|
||||
struct sockaddr_in remoteaddr; /* Mandatory */
|
||||
struct sockaddr_in currentlocaladdr; /* Mandatory */
|
||||
struct sockaddr_in currentremoteaddr; /* Mandatory */
|
||||
|
||||
std::list<IpAddressTimed> localaddrList;
|
||||
std::list<IpAddressTimed> remoteaddrList;
|
||||
};
|
||||
|
||||
class RsPeerStunItem: public RsItem
|
||||
|
@ -161,11 +169,13 @@ virtual RsItem * deserialise(void *data, uint32_t *size);
|
|||
|
||||
/**************************************************************************/
|
||||
|
||||
#define FT_STATE_FAILED 0
|
||||
#define FT_STATE_OKAY 1
|
||||
#define FT_STATE_WAITING 2
|
||||
#define FT_STATE_DOWNLOADING 3
|
||||
#define FT_STATE_COMPLETE 4
|
||||
#ifndef FT_STATE_FAILED
|
||||
#define FT_STATE_FAILED 0
|
||||
#define FT_STATE_OKAY 1
|
||||
#define FT_STATE_WAITING 2
|
||||
#define FT_STATE_DOWNLOADING 3
|
||||
#define FT_STATE_COMPLETE 4
|
||||
#endif
|
||||
|
||||
class RsFileTransfer: public RsItem
|
||||
{
|
||||
|
|
|
@ -306,8 +306,8 @@ RsDiscReply::~RsDiscReply()
|
|||
|
||||
void RsDiscReply::clear()
|
||||
{
|
||||
memset(&laddr, 0, sizeof(laddr));
|
||||
memset(&saddr, 0, sizeof(laddr));
|
||||
memset(¤tladdr, 0, sizeof(currentladdr));
|
||||
memset(¤tsaddr, 0, sizeof(currentladdr));
|
||||
contact_tf = 0;
|
||||
discFlags = 0;
|
||||
aboutId.clear();
|
||||
|
@ -320,12 +320,12 @@ std::ostream &RsDiscReply::print(std::ostream &out, uint16_t indent)
|
|||
uint16_t int_Indent = indent + 2;
|
||||
|
||||
printIndent(out, int_Indent);
|
||||
out << "Local Address: " << inet_ntoa(laddr.sin_addr);
|
||||
out << " Port: " << ntohs(laddr.sin_port) << std::endl;
|
||||
out << "Local Address: " << inet_ntoa(currentladdr.sin_addr);
|
||||
out << " Port: " << ntohs(currentladdr.sin_port) << std::endl;
|
||||
|
||||
printIndent(out, int_Indent);
|
||||
out << "Server Address: " << inet_ntoa(saddr.sin_addr);
|
||||
out << " Port: " << ntohs(saddr.sin_port) << std::endl;
|
||||
out << "Server Address: " << inet_ntoa(currentsaddr.sin_addr);
|
||||
out << " Port: " << ntohs(currentsaddr.sin_port) << std::endl;
|
||||
|
||||
printIndent(out, int_Indent);
|
||||
out << "Contact TimeFrame: " << contact_tf;
|
||||
|
@ -380,8 +380,8 @@ bool RsDiscSerialiser::serialiseReply(RsDiscReply *item, void *data, uint32_
|
|||
offset += 8;
|
||||
|
||||
/* add mandatory parts first */
|
||||
ok &= SetTlvIpAddrPortV4(data, tlvsize, &offset, TLV_TYPE_IPV4_LOCAL, &(item->laddr));
|
||||
ok &= SetTlvIpAddrPortV4(data, tlvsize, &offset, TLV_TYPE_IPV4_REMOTE, &(item->saddr));
|
||||
ok &= SetTlvIpAddrPortV4(data, tlvsize, &offset, TLV_TYPE_IPV4_LOCAL, &(item->currentladdr));
|
||||
ok &= SetTlvIpAddrPortV4(data, tlvsize, &offset, TLV_TYPE_IPV4_REMOTE, &(item->currentsaddr));
|
||||
ok &= setRawUInt16(data, tlvsize, &offset, item->contact_tf);
|
||||
ok &= setRawUInt32(data, tlvsize, &offset, item->discFlags);
|
||||
|
||||
|
@ -441,9 +441,9 @@ RsDiscReply *RsDiscSerialiser::deserialiseReply(void *data, uint32_t *pktsize)
|
|||
|
||||
/* get mandatory parts first */
|
||||
ok &= GetTlvIpAddrPortV4(data, rssize, &offset,
|
||||
TLV_TYPE_IPV4_LOCAL, &(item->laddr));
|
||||
TLV_TYPE_IPV4_LOCAL, &(item->currentladdr));
|
||||
ok &= GetTlvIpAddrPortV4(data, rssize, &offset,
|
||||
TLV_TYPE_IPV4_REMOTE, &(item->saddr));
|
||||
TLV_TYPE_IPV4_REMOTE, &(item->currentsaddr));
|
||||
ok &= getRawUInt16(data, rssize, &offset, &(item->contact_tf));
|
||||
ok &= getRawUInt32(data, rssize, &offset, &(item->discFlags));
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include "serialiser/rstlvbase.h"
|
||||
#include "serialiser/rstlvtypes.h"
|
||||
#include "serialiser/rsserviceids.h"
|
||||
#include "serialiser/rsconfigitems.h"
|
||||
|
||||
const uint8_t RS_PKT_SUBTYPE_DISC_OWN = 0x01;
|
||||
const uint8_t RS_PKT_SUBTYPE_DISC_REPLY = 0x02;
|
||||
|
@ -80,8 +81,13 @@ virtual ~RsDiscReply();
|
|||
virtual void clear();
|
||||
virtual std::ostream &print(std::ostream &out, uint16_t indent = 0);
|
||||
|
||||
struct sockaddr_in laddr;
|
||||
struct sockaddr_in saddr;
|
||||
//use for transmitting peer adress list
|
||||
std::list<IpAddressTimed> localaddrList;
|
||||
std::list<IpAddressTimed> remoteaddrList;
|
||||
|
||||
//use for transmitting my own adress list
|
||||
struct sockaddr_in currentladdr;
|
||||
struct sockaddr_in currentsaddr;
|
||||
|
||||
// time frame of recent connections.
|
||||
uint16_t contact_tf;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue