Skip to content

Commit 389b05c

Browse files
committed
fixing
Signed-off-by: faradaym <rcheyenne.truss@gmail.com>
1 parent 51356d7 commit 389b05c

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

src/DuckNet.cpp

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -192,12 +192,7 @@ int DuckNet::setupWebServer(bool createCaptivePortal, std::string html) {
192192
// Use shared_ptr for safe cleanup
193193
std::shared_ptr<uint8_t> atakData(atakBytes, [](uint8_t* p) { delete[] p; });
194194

195-
AsyncWebServerResponse* response = request->beginResponse("application/octet-stream", atakSize,
196-
[atakData, atakSize](uint8_t* buffer, size_t maxLen, size_t alreadySent) -> size_t {
197-
size_t remaining = atakSize - alreadySent;
198-
size_t toSend = remaining < maxLen ? remaining : maxLen;
199-
memcpy(buffer, atakData.get() + alreadySent, toSend);
200-
return toSend;
195+
AsyncWebServerResponse* response = request->beginResponse("application/octet-stream", atakSize,???
201196
});
202197

203198
response->addHeader("Content-Disposition", "attachment; filename=\"atakHistory.bin\"");
@@ -397,8 +392,8 @@ std::string DuckNet::serializeAtakHistoryToJSON(CircularBuffer* buffer) {
397392
}
398393

399394
uint8_t* DuckNet::serializeAtakHistoryToBytes(CircularBuffer* buffer) {
400-
int atakBytes = buffer->getCount();
401-
size_t dataSize = atakBytes * sizeof(CdpPacket);
395+
// int atakBytes = buffer->getCount();
396+
// size_t dataSize = atakBytes * sizeof(CdpPacket);
402397
// outSize = dataSize + sizeof(uint32_t);
403398

404399
uint8_t* result = new uint8_t[dataSize];
@@ -411,10 +406,21 @@ uint8_t* DuckNet::serializeAtakHistoryToBytes(CircularBuffer* buffer) {
411406

412407
// Serialize packets
413408
int tail = buffer->getTail();
414-
for (int i = 0; i < atakBytes; i++) {
415-
CdpPacket packet = buffer->getMessage(tail);
416-
memcpy(result + 4 + i * sizeof(CdpPacket), &packet, sizeof(CdpPacket));
417-
tail = (tail + 1) % buffer->getBufferEnd();
409+
// for (int i = 0; i < atakBytes; i++) {
410+
// CdpPacket packet = buffer->getMessage(tail);
411+
// memcpy(result + 4 + i * sizeof(CdpPacket), &packet, sizeof(CdpPacket));
412+
// tail = (tail + 1) % buffer->getBufferEnd();
413+
// }
414+
415+
while(tail != buffer->getHead()){
416+
CdpPacket packet = buffer->getMessage(tail);
417+
//get the size of this specific packet
418+
//copy the bytes into result
419+
memcpy(result + 4 + i * sizeof(CdpPacket), &packet, sizeof(CdpPacket));
420+
tail++;
421+
if(tail == buffer->getBufferEnd()){
422+
tail = 0;
423+
}
418424
}
419425

420426
return result;

0 commit comments

Comments
 (0)