This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Problems when aborting tftp transfers
On Mon, 2004-08-02 at 16:02, Andrew Lunn wrote:
> On Mon, Aug 02, 2004 at 03:45:01PM +0200, ?yvind Harboe wrote:
> > On Mon, 2004-08-02 at 15:01, Andrew Lunn wrote:
> > > On Wed, Jul 21, 2004 at 12:47:53PM +0200, ?yvind Harboe wrote:
> > > > I'm seing problems when aborting tftp transfers:
> > > >
> > > > - With CYGSEM_NET_TFTPD_MULTITHREADED == 0, a subsequent tftp transfer
> > > > after an aborted tftp transfer can get "stuck" since the main tftp
> > > > server loop is receiving stale packets and hence e.g. _write_file() is
> > > > invoked for the terminated tftp transfer session(there can be as many as
> > > > a dozen outstanding stale packets, hence tftp can take a *really* long
> > > > time to return to normal operation). Q: Is
> > > > CYGSEM_NET_TFTPD_MULTITHREADED == 0 working as intended for aborted tftp
> > > > transfers?
> > > >
> > > > - I'm not sure this is a problem or just the way tftp works. When I set
> > > > CYGSEM_NET_TFTPD_MULTITHREADED==1, tftp works even if I abort transfers,
> > > > but the current tftp transfer session on the eCos end does not return to
> > > > the main tftp server loop until the current transfer session has
> > > > exhausted its retries.
> > >
> > > I don't follow what you are taking about here. Could you give some
> > > more details, describe how you produce the problems, what goes wrong
> > > and how you would expect it to act.
> >
> > here is what I did:
> >
> > - with CYGSEM_NET_TFTPD_MULTITHREADED=0.
> > - started a tftp transfer from Windows machine
> > - aborted it on the Windows end
>
> Does the M$ end send an error packet to terminate the transfer or
> simply stop sending data packets?
I don't know what ctrl-c does(I haven't got the equipment wired up so I
can't test right now), but surely terminating the process would cause an
error packet not to be transferred?
> > - at this point the tftp server goes back to the main loop and sees
> > multiple tftp transfer initiation requests from the aborted transfer
> > session.
>
> Initiation requests? You mean WRQ packets from the tftp client you
> have just killed?
Yes.
I really don't speak PPP, TCP/IP, Windows and tftp well enough to pick
this apart without more study.
Perhaps this is something that was lingering in the PPP channel or
tcp/ip stack...
> That would be strange.
Setting CYGSEM_NET_TFTPD_MULTITHREADED=1 fixes the problem because the
original port is closed + reopened.
>
> Andrew
--
Øyvind Harboe
http://www.zylin.com
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss