diff --git a/src/Mesh.cpp b/src/Mesh.cpp index 6029c192..a6b06c07 100644 --- a/src/Mesh.cpp +++ b/src/Mesh.cpp @@ -142,7 +142,7 @@ DispatcherAction Mesh::onRecvPacket(Packet* pkt) { if (pkt->isRouteFlood()) { // send a reciprocal return path to sender, but send DIRECTLY! mesh::Packet* rpath = createPathReturn(&src_hash, secret, pkt->path, pkt->path_len, 0, NULL, 0); - if (rpath) sendDirect(rpath, path, path_len); + if (rpath) sendDirect(rpath, path, path_len, 500); } } } else { @@ -518,7 +518,11 @@ void Mesh::sendDirect(Packet* packet, const uint8_t* path, uint8_t path_len, uin pri = 5; // maybe make this configurable } else { memcpy(packet->path, path, packet->path_len = path_len); - pri = 0; + if (packet->getPayloadType() == PAYLOAD_TYPE_PATH) { + pri = 1; // slightly less priority + } else { + pri = 0; + } } _tables->hasSeen(packet); // mark this packet as already sent in case it is rebroadcast back to us sendPacket(packet, pri, delay_millis);