mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-06-05 21:29:23 -04:00
Network REWORK.
* Removed nasty list of ip addresses from rsPeerNetItem * create TLV type to handle ip address history instead. * switched to new data type. (should be seemless?) git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3246 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
3575f12240
commit
85e1b4b111
5 changed files with 700 additions and 32 deletions
|
@ -33,6 +33,7 @@
|
|||
#include "serialiser/rsserial.h"
|
||||
#include "serialiser/rstlvbase.h"
|
||||
#include "serialiser/rstlvtypes.h"
|
||||
#include "serialiser/rstlvaddrs.h"
|
||||
|
||||
const uint8_t RS_PKT_TYPE_GENERAL_CONFIG = 0x01;
|
||||
const uint8_t RS_PKT_TYPE_PEER_CONFIG = 0x02;
|
||||
|
@ -43,8 +44,9 @@ const uint8_t RS_PKT_TYPE_FILE_CONFIG = 0x04;
|
|||
const uint8_t RS_PKT_SUBTYPE_KEY_VALUE = 0x01;
|
||||
|
||||
/* PEER CONFIG SUBTYPES */
|
||||
const uint8_t RS_PKT_SUBTYPE_PEER_NET = 0x01;
|
||||
const uint8_t RS_PKT_SUBTYPE_PEER_OLD_NET = 0x01;
|
||||
const uint8_t RS_PKT_SUBTYPE_PEER_STUN = 0x02;
|
||||
const uint8_t RS_PKT_SUBTYPE_PEER_NET = 0x03; /* replacement for OLD_NET */
|
||||
|
||||
/* FILE CONFIG SUBTYPES */
|
||||
const uint8_t RS_PKT_SUBTYPE_FILE_TRANSFER = 0x01;
|
||||
|
@ -57,6 +59,33 @@ struct IpAddressTimed {
|
|||
time_t seenTime;
|
||||
};
|
||||
|
||||
class RsPeerOldNetItem: public RsItem
|
||||
{
|
||||
public:
|
||||
RsPeerOldNetItem()
|
||||
:RsItem(RS_PKT_VERSION1, RS_PKT_CLASS_CONFIG,
|
||||
RS_PKT_TYPE_PEER_CONFIG,
|
||||
RS_PKT_SUBTYPE_PEER_OLD_NET)
|
||||
{ return; }
|
||||
virtual ~RsPeerOldNetItem();
|
||||
virtual void clear();
|
||||
std::ostream &print(std::ostream &out, uint16_t indent = 0);
|
||||
|
||||
/* networking information */
|
||||
std::string pid; /* Mandatory */
|
||||
std::string gpg_id; /* Mandatory */
|
||||
std::string location; /* not Mandatory */
|
||||
uint32_t netMode; /* Mandatory */
|
||||
uint32_t visState; /* Mandatory */
|
||||
uint32_t lastContact; /* Mandatory */
|
||||
|
||||
struct sockaddr_in currentlocaladdr; /* Mandatory */
|
||||
struct sockaddr_in currentremoteaddr; /* Mandatory */
|
||||
std::string dyndns;
|
||||
|
||||
std::list<IpAddressTimed> ipAddressList;
|
||||
};
|
||||
|
||||
class RsPeerNetItem: public RsItem
|
||||
{
|
||||
public:
|
||||
|
@ -81,9 +110,11 @@ std::ostream &print(std::ostream &out, uint16_t indent = 0);
|
|||
struct sockaddr_in currentremoteaddr; /* Mandatory */
|
||||
std::string dyndns;
|
||||
|
||||
std::list<IpAddressTimed> ipAddressList;
|
||||
RsTlvIpAddrSet localAddrList;
|
||||
RsTlvIpAddrSet extAddrList;
|
||||
};
|
||||
|
||||
|
||||
class RsPeerStunItem: public RsItem
|
||||
{
|
||||
public:
|
||||
|
@ -115,6 +146,12 @@ virtual RsItem * deserialise(void *data, uint32_t *size);
|
|||
|
||||
private:
|
||||
|
||||
/* These are depreciated ... conversion functions used to seemlessly ungrade.
|
||||
*/
|
||||
virtual uint32_t sizeOldNet(RsPeerOldNetItem *);
|
||||
virtual bool serialiseOldNet (RsPeerOldNetItem *item, void *data, uint32_t *size);
|
||||
virtual RsPeerOldNetItem *deserialiseOldNet(void *data, uint32_t *size);
|
||||
|
||||
virtual uint32_t sizeNet(RsPeerNetItem *);
|
||||
virtual bool serialiseNet (RsPeerNetItem *item, void *data, uint32_t *size);
|
||||
virtual RsPeerNetItem *deserialiseNet(void *data, uint32_t *size);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue