Uthernet II: fix a bug when TFE buffer size was reduced for 2+ packets.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
This commit is contained in:
parent
ffa5a35ba8
commit
b78f20d915
3 changed files with 5 additions and 4 deletions
|
@ -47,7 +47,7 @@ void tfeTransmitOnePacket(const BYTE * buffer, const int len)
|
|||
}
|
||||
}
|
||||
|
||||
bool tfeReceiveOnePacket(const uint8_t * mac, BYTE * buffer, int & len)
|
||||
bool tfeReceiveOnePacket(const uint8_t * mac, const int size, BYTE * buffer, int & len)
|
||||
{
|
||||
if (!tfe_enabled)
|
||||
{
|
||||
|
@ -67,6 +67,7 @@ bool tfeReceiveOnePacket(const uint8_t * mac, BYTE * buffer, int & len)
|
|||
int multicast = 0;
|
||||
int crc_error;
|
||||
|
||||
len = size;
|
||||
const int newframe = tfe_arch_receive(
|
||||
buffer, /* where to store a frame */
|
||||
&len, /* length of received frame */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#pragma once
|
||||
|
||||
bool tfeReceiveOnePacket(const uint8_t * mac, BYTE * buffer, int & len);
|
||||
bool tfeReceiveOnePacket(const uint8_t * mac, const int size, BYTE * buffer, int & len);
|
||||
void tfeTransmitOnePacket(const BYTE * buffer, const int len);
|
||||
|
|
|
@ -375,8 +375,8 @@ namespace
|
|||
#else
|
||||
{
|
||||
BYTE buffer[MAX_RXLENGTH];
|
||||
int len = sizeof(buffer);
|
||||
if (tfeReceiveOnePacket(memory.data() + SHAR0, buffer, len))
|
||||
int len;
|
||||
if (tfeReceiveOnePacket(memory.data() + SHAR0, sizeof(buffer), buffer, len))
|
||||
{
|
||||
if (isThereRoomFor(i, len, sizeof(uint16_t)))
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue