Skip to content

Commit 66138a6

Browse files
committed
- Add protected getters for _forwardingBacklog and _macIgnoreList in FloodingMesh.
1 parent 1d2b6b5 commit 66138a6

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

libraries/ESP8266WiFiMesh/src/FloodingMesh.cpp

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -132,21 +132,21 @@ void FloodingMesh::performMeshInstanceMaintenance()
132132
{
133133
EspnowMeshBackend::performEspnowMaintenance();
134134

135-
for(std::list<std::pair<String, bool>>::iterator backlogIterator = _forwardingBacklog.begin(); backlogIterator != _forwardingBacklog.end(); )
135+
for(std::list<std::pair<String, bool>>::iterator backlogIterator = getForwardingBacklog().begin(); backlogIterator != getForwardingBacklog().end(); )
136136
{
137137
std::pair<String, bool> &messageData = *backlogIterator;
138138
if(messageData.second) // message encrypted
139139
{
140-
_macIgnoreList = messageData.first.substring(0, 12) + ','; // The message should contain the messageID first
140+
getMacIgnoreList() = messageData.first.substring(0, 12) + ','; // The message should contain the messageID first
141141
encryptedBroadcastKernel(messageData.first);
142-
_macIgnoreList = emptyString;
142+
getMacIgnoreList() = emptyString;
143143
}
144144
else
145145
{
146146
broadcastKernel(messageData.first);
147147
}
148148

149-
backlogIterator = _forwardingBacklog.erase(backlogIterator);
149+
backlogIterator = getForwardingBacklog().erase(backlogIterator);
150150

151151
EspnowMeshBackend::performEspnowMaintenance(); // It is best to performEspnowMaintenance frequently to keep the Espnow backend responsive. Especially if each encryptedBroadcast takes a lot of time.
152152
}
@@ -229,7 +229,7 @@ void FloodingMesh::clearMessageLogs()
229229

230230
void FloodingMesh::clearForwardingBacklog()
231231
{
232-
_forwardingBacklog.clear();
232+
getForwardingBacklog().clear();
233233
}
234234

235235
void FloodingMesh::setMessageHandler(const messageHandlerType messageHandler) { _messageHandler = messageHandler; }
@@ -247,6 +247,10 @@ uint8_t *FloodingMesh::getOriginMac(uint8_t *macArray) const
247247
return macArray;
248248
}
249249

250+
std::list<std::pair<String, bool>> & FloodingMesh::getForwardingBacklog() { return _forwardingBacklog; }
251+
252+
String & FloodingMesh::getMacIgnoreList() { return _macIgnoreList; }
253+
250254
uint32_t FloodingMesh::maxUnencryptedMessageLength() const
251255
{
252256
return getEspnowMeshBackendConst().getMaxMessageLength() - MESSAGE_ID_LENGTH - (getEspnowMeshBackendConst().getMeshName().length() + 1); // Need room for mesh name + delimiter
@@ -421,7 +425,7 @@ String FloodingMesh::_defaultRequestHandler(const String &request, MeshBackendBa
421425
{
422426
message = broadcastTarget + remainingRequest.substring(0, messageIDEndIndex + 1) + message;
423427
assert(message.length() <= _espnowBackend.getMaxMessageLength());
424-
_forwardingBacklog.emplace_back(message, getEspnowMeshBackend().receivedEncryptedTransmission());
428+
getForwardingBacklog().emplace_back(message, getEspnowMeshBackend().receivedEncryptedTransmission());
425429
}
426430
}
427431

@@ -464,7 +468,7 @@ void FloodingMesh::_defaultNetworkFilter(const int numberOfNetworks, MeshBackend
464468
// Connect to any APs which contain meshInstance.getMeshName()
465469
if(meshNameIndex >= 0)
466470
{
467-
if(_macIgnoreList.indexOf(TypeCast::macToString(WiFi.BSSID(networkIndex))) == -1) // If the BSSID is not in the ignore list
471+
if(getMacIgnoreList().indexOf(TypeCast::macToString(WiFi.BSSID(networkIndex))) == -1) // If the BSSID is not in the ignore list
468472
{
469473
if(EspnowMeshBackend *espnowInstance = TypeCast::meshBackendCast<EspnowMeshBackend *>(&meshInstance))
470474
{

libraries/ESP8266WiFiMesh/src/FloodingMesh.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,10 @@ class FloodingMesh {
308308
* @param macArray An uint8_t array which contains the MAC address to store. The method will store the first 6 bytes of the array.
309309
*/
310310
void setOriginMac(const uint8_t *macArray);
311+
312+
std::list<std::pair<String, bool>> & getForwardingBacklog();
313+
314+
String & getMacIgnoreList(); // Experimental, may break in the future.
311315

312316
private:
313317

0 commit comments

Comments
 (0)