git-svn-id: svn://db.shs.com.ru/pip@21 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
2015-03-12 14:06:31 +00:00
parent fdb48aba64
commit 978e732d70

View File

@@ -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;