Vendor microReticulum library with boundary mode transport fixes: - Two-whitelist system gates backbone traffic (local addresses + mentioned addresses from local devices) - Allow control_hashes and local destinations through boundary filter (fixes backbone→LoRa path discovery) - Fix get_cached_packet() to call unpack() instead of update_hash() (fixes empty destination_hash in path responses) - LRPROOF Identity::recall null guard - remaining_hops HEADER_1/BROADCAST fix for final-hop delivery - PROOF packets excluded from boundary wrapping - Iterator invalidation fix in transport table cleanup - is_backbone flag replaces string matching for interface identification Firmware changes: - Set is_backbone(true) on backbone TCP interface - Rename default TcpInterface name to BackboneInterface - Update comments for dual-use TcpInterface (backbone + local AP) - Use vendored lib/microReticulum instead of PlatformIO registry
58 lines
1.1 KiB
C++
Executable File
58 lines
1.1 KiB
C++
Executable File
#pragma once
|
|
|
|
#include "Destination.h"
|
|
#include "Type.h"
|
|
|
|
#include <memory>
|
|
#include <cassert>
|
|
|
|
namespace RNS {
|
|
|
|
class Channel {
|
|
|
|
public:
|
|
Channel(Type::NoneConstructor none) {
|
|
MEM("Channel NONE object created");
|
|
}
|
|
Channel(const Channel& resource) : _object(resource._object) {
|
|
MEM("Channel object copy created");
|
|
}
|
|
virtual ~Channel(){
|
|
MEM("Channel object destroyed");
|
|
}
|
|
|
|
Channel& operator = (const Channel& resource) {
|
|
_object = resource._object;
|
|
return *this;
|
|
}
|
|
operator bool() const {
|
|
return _object.get() != nullptr;
|
|
}
|
|
bool operator < (const Channel& resource) const {
|
|
return _object.get() < resource._object.get();
|
|
//return _object->_hash < resource._object->_hash;
|
|
}
|
|
|
|
public:
|
|
void _shutdown() {}
|
|
|
|
private:
|
|
class Object {
|
|
public:
|
|
Object() { MEM("Channel::Data object created, this: " + std::to_string((uintptr_t)this)); }
|
|
virtual ~Object() { MEM("Channel::Data object destroyed, this: " + std::to_string((uintptr_t)this)); }
|
|
private:
|
|
|
|
friend class Channel;
|
|
};
|
|
std::shared_ptr<Object> _object;
|
|
|
|
};
|
|
|
|
|
|
class ChannelAdvertisement {
|
|
|
|
};
|
|
|
|
}
|