v1.0.0: Boundary mode with bidirectional LoRa↔TCP transport
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
This commit is contained in:
57
lib/microReticulum/src/Channel.h
Executable file
57
lib/microReticulum/src/Channel.h
Executable file
@@ -0,0 +1,57 @@
|
||||
#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 {
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user