mirror of
https://github.com/meshcore-dev/MeshCore.git
synced 2026-04-20 22:13:47 +00:00
parent
2fe3c36b8f
commit
1fb26e7623
7 changed files with 23 additions and 30 deletions
|
|
@ -374,16 +374,14 @@ void BaseChatMesh::onGroupDataRecv(mesh::Packet* packet, uint8_t type, const mes
|
|||
// notify UI of this new message
|
||||
onChannelMessageRecv(channel, packet, timestamp, (const char *) &data[5]); // let UI know
|
||||
} else if (type == PAYLOAD_TYPE_GRP_DATA) {
|
||||
if (len < 6) {
|
||||
if (len < 2) {
|
||||
MESH_DEBUG_PRINTLN("onGroupDataRecv: dropping short group data payload len=%d", (uint32_t)len);
|
||||
return;
|
||||
}
|
||||
|
||||
uint32_t timestamp;
|
||||
memcpy(×tamp, data, 4);
|
||||
uint8_t data_type = data[4];
|
||||
uint8_t data_len = data[5];
|
||||
size_t available_len = len - 6;
|
||||
uint8_t data_type = data[0];
|
||||
uint8_t data_len = data[1];
|
||||
size_t available_len = len - 2;
|
||||
|
||||
if (data_len > available_len) {
|
||||
MESH_DEBUG_PRINTLN("onGroupDataRecv: dropping malformed group data type=%d len=%d available=%d",
|
||||
|
|
@ -391,7 +389,7 @@ void BaseChatMesh::onGroupDataRecv(mesh::Packet* packet, uint8_t type, const mes
|
|||
return;
|
||||
}
|
||||
|
||||
onChannelDataRecv(channel, packet, timestamp, data_type, &data[6], data_len);
|
||||
onChannelDataRecv(channel, packet, data_type, &data[2], data_len);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -483,7 +481,7 @@ bool BaseChatMesh::sendGroupMessage(uint32_t timestamp, mesh::GroupChannel& chan
|
|||
return false;
|
||||
}
|
||||
|
||||
bool BaseChatMesh::sendGroupData(uint32_t timestamp, mesh::GroupChannel& channel, uint8_t data_type, const uint8_t* data, int data_len) {
|
||||
bool BaseChatMesh::sendGroupData(mesh::GroupChannel& channel, uint8_t data_type, const uint8_t* data, int data_len) {
|
||||
if (data_len < 0) {
|
||||
MESH_DEBUG_PRINTLN("sendGroupData: invalid negative data_len=%d", data_len);
|
||||
return false;
|
||||
|
|
@ -493,13 +491,12 @@ bool BaseChatMesh::sendGroupData(uint32_t timestamp, mesh::GroupChannel& channel
|
|||
return false;
|
||||
}
|
||||
|
||||
uint8_t temp[6 + MAX_GROUP_DATA_LENGTH];
|
||||
memcpy(temp, ×tamp, 4);
|
||||
temp[4] = data_type;
|
||||
temp[5] = (uint8_t)data_len;
|
||||
if (data_len > 0) memcpy(&temp[6], data, data_len);
|
||||
uint8_t temp[2 + MAX_GROUP_DATA_LENGTH];
|
||||
temp[0] = data_type;
|
||||
temp[1] = (uint8_t)data_len;
|
||||
if (data_len > 0) memcpy(&temp[2], data, data_len);
|
||||
|
||||
auto pkt = createGroupDatagram(PAYLOAD_TYPE_GRP_DATA, channel, temp, 6 + data_len);
|
||||
auto pkt = createGroupDatagram(PAYLOAD_TYPE_GRP_DATA, channel, temp, 2 + data_len);
|
||||
if (pkt == NULL) {
|
||||
MESH_DEBUG_PRINTLN("sendGroupData: unable to create group datagram, data_len=%d", data_len);
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue