mirror of
https://github.com/resiprocate/resiprocate.git
synced 2026-01-12 00:05:02 +08:00
Added message brief
git-svn-id: https://svn.resiprocate.org/rep/resiprocate/main@8077 ddefafc4-47db-0310-ae44-fa13212b10f2
This commit is contained in:
@@ -64,6 +64,8 @@ class Candidate
|
||||
sizeof(mAddress.v4Address.sin_zero)) ;
|
||||
|
||||
resip::DnsUtil::inet_pton(ip, mAddress.v4Address.sin_addr);
|
||||
|
||||
mValue = iceline;
|
||||
}
|
||||
|
||||
const resip::Data &getIceString() const { return mValue; }
|
||||
|
||||
@@ -12,6 +12,8 @@ class ConnectReq : public ConnectBase
|
||||
public:
|
||||
ConnectReq(const DestinationId &dest, const resip::Data &frag, const resip::Data &password, UInt16 application, const resip::Data &role, const std::vector<Candidate> &candidates);
|
||||
virtual MessageType getType() const { return ConnectReqType; }
|
||||
virtual resip::Data brief() const { return "ConnectReq Message"; }
|
||||
|
||||
|
||||
protected:
|
||||
friend class Message;
|
||||
@@ -24,6 +26,7 @@ class ConnectAns : public ConnectBase
|
||||
public:
|
||||
|
||||
virtual MessageType getType() const { return ConnectAnsType; }
|
||||
virtual resip::Data brief() const { return "ConnectAns Message"; }
|
||||
|
||||
protected:
|
||||
friend class Message;
|
||||
|
||||
@@ -13,7 +13,6 @@ ConnectBase::ConnectBase()
|
||||
void
|
||||
ConnectBase::decodePayload(resip::DataStream &dataStream)
|
||||
{
|
||||
std::cout << "ATTEMPTING TO DECODE" << std::endl;
|
||||
decode(dataStream);
|
||||
|
||||
print(std::cout, 2);
|
||||
@@ -22,7 +21,6 @@ ConnectBase::decodePayload(resip::DataStream &dataStream)
|
||||
void
|
||||
ConnectBase::getEncodedPayload(resip::DataStream &dataStream)
|
||||
{
|
||||
std::cout << "about to ENCODE " << mCandidates.size() << std::endl;
|
||||
encode(dataStream);
|
||||
}
|
||||
|
||||
@@ -33,11 +31,8 @@ ConnectBase::ConnectBase(const resip::Data &frag, const resip::Data &password, U
|
||||
mApplication = application;
|
||||
mRole = role;
|
||||
|
||||
std::cout << "RIGHT HERE" << std::endl;
|
||||
|
||||
for (std::vector<Candidate>::const_iterator iter = candidates.begin(); iter != candidates.end(); iter++)
|
||||
{
|
||||
std::cout << "ADDED TO THE THING" << std::endl;
|
||||
IceCandidateStruct *iceStruct = new IceCandidateStruct;
|
||||
iceStruct->mCandidate = iter->getIceString();
|
||||
mCandidates.push_back(iceStruct);
|
||||
|
||||
@@ -40,6 +40,13 @@ JoinReq::JoinReq(const DestinationId &dest, const NodeId &node, const resip::Dat
|
||||
mOverlaySpecificData = overlaySpecific;
|
||||
}
|
||||
|
||||
NodeId
|
||||
JoinReq::getNodeId() const
|
||||
{
|
||||
return NodeId(*mJoiningPeerId);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
JoinReq::getEncodedPayload(resip::DataStream &strm)
|
||||
{
|
||||
|
||||
@@ -13,10 +13,12 @@ class JoinAns : public Message, private s2c::JoinAnsStruct
|
||||
public:
|
||||
friend class Message;
|
||||
|
||||
JoinAns(p2p::JoinReq *request, const resip::Data &overlaySpecific);
|
||||
JoinAns(p2p::JoinReq *request, const resip::Data &overlaySpecific = resip::Data::Empty);
|
||||
virtual MessageType getType() const { return Message::JoinAnsType; }
|
||||
|
||||
virtual void getEncodedPayload(resip::DataStream &data);
|
||||
virtual resip::Data brief() const { return "JoinAns Message"; }
|
||||
|
||||
|
||||
protected:
|
||||
virtual void decodePayload(resip::DataStream &dataStream);
|
||||
@@ -29,9 +31,10 @@ public:
|
||||
JoinReq(const DestinationId &dest, const NodeId &nodeId, const resip::Data &overlaySpecific=resip::Data::Empty);
|
||||
|
||||
virtual MessageType getType() const { return Message::JoinReqType; }
|
||||
NodeId getNodeId() const { return mNodeId; }
|
||||
NodeId getNodeId() const;
|
||||
|
||||
virtual void getEncodedPayload(resip::DataStream &data);
|
||||
virtual resip::Data brief() const { return "JoinReq Message"; }
|
||||
|
||||
protected:
|
||||
virtual void decodePayload(resip::DataStream &dataStream);
|
||||
|
||||
@@ -17,6 +17,8 @@ public:
|
||||
|
||||
virtual MessageType getType() const { return Message::LeaveAnsType; }
|
||||
virtual void getEncodedPayload(resip::DataStream &data);
|
||||
virtual resip::Data brief() const { return "LeaveAns Message"; }
|
||||
|
||||
|
||||
protected:
|
||||
virtual void decodePayload(resip::DataStream &dataStream);
|
||||
@@ -33,6 +35,7 @@ public:
|
||||
|
||||
virtual MessageType getType() const { return Message::LeaveReqType; }
|
||||
virtual void getEncodedPayload(resip::DataStream &data);
|
||||
virtual resip::Data brief() const { return "LeaveReq Message"; }
|
||||
|
||||
protected:
|
||||
virtual void decodePayload(resip::DataStream &dataStream);
|
||||
|
||||
@@ -88,7 +88,7 @@ class Message : public Signable
|
||||
virtual Message *makeErrorResponse(Error::Code code,
|
||||
const resip::Data& reason) const;
|
||||
|
||||
JoinAns* makeJoinResponse(const resip::Data &overlaySpecific);
|
||||
JoinAns* makeJoinResponse(const resip::Data &overlaySpecific = resip::Data::Empty);
|
||||
UpdateAns* makeUpdateResponse(const resip::Data &overlaySpecific);
|
||||
LeaveAns* makeLeaveResponse();
|
||||
ConnectAns* makeConnectResponse(const resip::Data &frag, const resip::Data &password, UInt16 application, const resip::Data &role, const std::vector<Candidate> &candidates);
|
||||
@@ -120,11 +120,7 @@ class Message : public Signable
|
||||
|
||||
virtual std::auto_ptr<Event> event();
|
||||
|
||||
virtual resip::Data brief() const
|
||||
{
|
||||
assert(0);
|
||||
return resip::Data::Empty;
|
||||
}
|
||||
virtual resip::Data brief() const = 0;
|
||||
|
||||
void dump() const;
|
||||
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
#include "p2p/Update.hxx"
|
||||
#include "p2p/MessageStructsGen.hxx"
|
||||
#include "p2p/Candidate.hxx"
|
||||
|
||||
#include "rutil/DataStream.hxx"
|
||||
#include "rutil/Random.hxx"
|
||||
|
||||
#include "p2p/P2PSubsystem.hxx"
|
||||
#define RESIPROCATE_SUBSYSTEM P2PSubsystem::P2P
|
||||
@@ -63,6 +65,9 @@ TestConnect()
|
||||
ConnectReq *connectReq3 = static_cast<ConnectReq *>(message2);
|
||||
assert(connectReq3);
|
||||
assert(!connectReq3->getCandidates().empty());
|
||||
|
||||
std::vector<Candidate> newCandidates = connectReq3->getCandidates();
|
||||
assert(newCandidates[0].getIceString() == c.getIceString());
|
||||
}
|
||||
|
||||
void
|
||||
@@ -134,14 +139,49 @@ TestChordUpdate()
|
||||
void
|
||||
TestJoin()
|
||||
{
|
||||
DebugLog(<< "Testing Join");
|
||||
|
||||
NodeId node;
|
||||
DestinationId dest(node);
|
||||
|
||||
JoinReq *joinReq = new JoinReq(dest, node);
|
||||
assert(joinReq->getType() == Message::JoinReqType);
|
||||
resip::Data encodedData = joinReq->encodePayload();
|
||||
|
||||
Message *msg = Message::parse(encodedData);
|
||||
assert(msg);
|
||||
assert(msg->getType() == Message::JoinReqType);
|
||||
|
||||
JoinReq *joinReqMsg = static_cast<JoinReq *>(msg);
|
||||
assert(joinReqMsg->getNodeId() == node);
|
||||
|
||||
ResourceId rid(Random::getRandom(16));
|
||||
NodeId nid(rid);
|
||||
|
||||
JoinReq *newReq = new JoinReq(dest, nid);
|
||||
assert(newReq->getNodeId() == nid);
|
||||
Message *testMessage = Message::parse(newReq->encodePayload());
|
||||
assert(testMessage->getType() == Message::JoinReqType);
|
||||
|
||||
JoinReq *joinReq2 = static_cast<JoinReq *>(testMessage);
|
||||
assert(joinReq2->getNodeId() == nid);
|
||||
|
||||
JoinAns *ans = joinReq2->makeJoinResponse();
|
||||
assert(ans->getType() == Message::JoinAnsType);
|
||||
assert(!ans->isRequest());
|
||||
|
||||
resip::Data encodedAnswer = ans->encodePayload();
|
||||
Message *testMsg = Message::parse(encodedAnswer);
|
||||
assert(testMsg);
|
||||
assert(testMsg->getType() == Message::JoinAnsType);
|
||||
}
|
||||
|
||||
void
|
||||
TestMessages()
|
||||
{
|
||||
//TestUpdate();
|
||||
//TestChordUpdate();
|
||||
TestJoin();
|
||||
TestUpdate();
|
||||
TestChordUpdate();
|
||||
TestConnect();
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,8 @@ class UpdateAns : public Message
|
||||
public:
|
||||
virtual MessageType getType() const { return Message::UpdateAnsType; }
|
||||
virtual void getEncodedPayload(resip::DataStream &data);
|
||||
virtual resip::Data brief() const { return "UpdateAns Message"; }
|
||||
|
||||
|
||||
std::auto_ptr<Event> event()
|
||||
{
|
||||
@@ -38,6 +40,7 @@ public:
|
||||
virtual MessageType getType() const { return Message::UpdateReqType; }
|
||||
|
||||
virtual void getEncodedPayload(resip::DataStream &data);
|
||||
virtual resip::Data brief() const { return "UpdateReq Message"; }
|
||||
|
||||
std::auto_ptr<Event> event()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user