peer
git-svn-id: svn://db.shs.com.ru/pip@21 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -235,7 +235,7 @@ bool PIPeer::send(const PIString & to, const void * data, int size) {
|
||||
ba << int(4) << self_info.name << to << int(0) << size;
|
||||
PIByteArray fmsg(data, size), cmsg;
|
||||
int msg_count = (size - 1) / _PIPEER_MSG_SIZE + 1;
|
||||
piCout << "[PIPeer] send" << size << "bytes in" << msg_count << "packets ...";
|
||||
//piCout << "[PIPeer] send" << size << "bytes in" << msg_count << "packets ...";
|
||||
for (int i = 0; i < msg_count; ++i) {
|
||||
int csize = (i == msg_count - 1) ? ((size - 1) % _PIPEER_MSG_SIZE + 1) : _PIPEER_MSG_SIZE;
|
||||
cmsg = ba;
|
||||
@@ -243,7 +243,7 @@ bool PIPeer::send(const PIString & to, const void * data, int size) {
|
||||
cmsg.append(fmsg.data(i * _PIPEER_MSG_SIZE), csize);
|
||||
if (!sendToNeighbour(dp, cmsg)) return false;
|
||||
}
|
||||
piCout << "[PIPeer] send" << size << "bytes ok";
|
||||
//piCout << "[PIPeer] send" << size << "bytes ok";
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -279,17 +279,19 @@ bool PIPeer::dataRead(uchar * readed, int size) {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
// send ping back
|
||||
piForeachC (PeerInfo & p, peers) {
|
||||
if (!p.isNeighbour()) continue;
|
||||
if (p.name != to) continue;
|
||||
sba = PIByteArray(readed, size);
|
||||
//piCout << "ping from" << to << addr << ", send back to" << p.name;
|
||||
piForeachC (PeerInfo::Address & a, p.addresses) {
|
||||
if (eth_send.send(a.address, sba))
|
||||
diag_s.received(sba.size_s());
|
||||
if (from == self_info.name) { // send ping back
|
||||
const PeerInfo * pi = getPeerByName(to);
|
||||
if (pi) {
|
||||
if (pi->isNeighbour()) {
|
||||
sba = PIByteArray(readed, size);
|
||||
//piCout << "ping from" << to << addr << ", send back to" << p.name;
|
||||
piForeachC (PeerInfo::Address & a, pi->addresses) {
|
||||
if (eth_send.send(a.address, sba))
|
||||
diag_s.received(sba.size_s());
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//PIEthernet * eth = (PIEthernet*)emitter();
|
||||
//()->send();
|
||||
@@ -467,7 +469,7 @@ bool PIPeer::mbcastRead(uchar * data, int size) {
|
||||
bool PIPeer::sendToNeighbour(PIPeer::PeerInfo * peer, const PIByteArray & ba) {
|
||||
//if (peer->_neth == 0) return false;
|
||||
PIString addr = peer->fastestAddress();
|
||||
piCout << "[PIPeer] sendToNeighbour" << peer->name << addr << ba.size_s() << "bytes ...";
|
||||
//piCout << "[PIPeer] sendToNeighbour" << peer->name << addr << ba.size_s() << "bytes ...";
|
||||
//bool ok = peer->_neth->send(peer->_naddress, ba.data(), ba.size_s());
|
||||
bool ok = eth_send.send(addr, ba);
|
||||
//piCout << "[PIPeer] sendToNeighbour" << (ok ? "ok" : "fail");
|
||||
@@ -522,7 +524,7 @@ void PIPeer::pingNeighbours() {
|
||||
ba << int(5) << self_info.name;
|
||||
//piCout << "pingNeighbours" << peers.size();
|
||||
piForeach (PeerInfo & p, peers) {
|
||||
piCout << " ping neighbour" << p.name << p.ping();
|
||||
//piCout << " ping neighbour" << p.name << p.ping();
|
||||
if (!p.isNeighbour()) continue;
|
||||
piForeach (PeerInfo::Address & a, p.addresses) {
|
||||
//piCout << " address" << a.address << a.wait_ping;
|
||||
|
||||
Reference in New Issue
Block a user