lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [lwip-users] FTP-DATA exchange: TCP issues


From: Tom C. Barker
Subject: RE: [lwip-users] FTP-DATA exchange: TCP issues
Date: Tue, 8 Mar 2005 11:30:41 -0800

The issue is that my polling function was 
trying to send data. Has anyone ever implemented
a poll function which sends data? You'd have
to have a semaphore from my current experience,
right? All comments welcome. Here's what I found.

When the polling function sends data it could and 
did become reentrant in tcp_enqueue. With some added 
debug statements shown below, when the alloc is called 
and we have to wait, the tcp_slowtmr: begins another 
call to FTP: ftp_retreiveFile_poll... In combination
with an optimized compiler, the pcb->snd_lbb in the regs 
gets off by one and the transfer becomes corrupted.

  FTP: ftp_retreiveFile_poll at pcb 0x110b4bf8
  tcp_write(pcb=0x110b4bf8, arg=0x1109bd14, len=2920, copy=1)
  tcp_enqueue(pcb=0x110b4bf8, arg=0x1109bd14, len=2920, flags=0, copy=1)
  TCPOUT_enter: pcb->snd_lbb = 242214
  tcp_enqueue: queuelen: 9
  TCPOUT_allocing: start in thread Lwip/TCPIP-InputSem.
  TCPOUT_allocing: end in thread Lwip/TCPIP-InputSem.
  tcp_enqueue: queueing 242214:243674 (0x0)
**TCPOUT_allocing: start in thread Lwip/TCPIP-InputSem.
 
  tcp_slowtmr: processing active pcb

  ...

  tcp_enqueue: queueing 243674:245134 (0x0)
  TCPOUT_exit: pcb->snd_lbb = 248054

lbb should be 245134 but here it shows as 248054!

Tom




reply via email to

[Prev in Thread] Current Thread [Next in Thread]