tasklwIP - A Lightweight TCP/IP stack - Tasks: task #7891, FTP Client for lwip ready for test

 
 

You are not allowed to post comments on this tracker with your current authentication level.

task #7891: FTP Client for lwip ready for test

Submitted by:  Iordan Neshev <iordan_neshev>
Submitted on:  Wed 26 Mar 2008 02:37:12 PM UTC  
Votes:  100  
 
Category:  None Should Start On:  Wed 26 Mar 2008 12:00:00 AM UTC
Should be Finished on:  Wed 26 Mar 2008 12:00:00 AM UTC Priority:  5 - Normal
Status:  None Privacy:  Public
Percent Complete:  0% Assigned to:  None
Open/Closed:  Closed Planned Release:  None
Effort:  0.00

( Jump to the original submission)

Mon 02 Nov 2009 08:06:04 PM UTC, comment #10: 

A year and a half has passed since this task was started and unless anyone changed their mind about this, it seems as if we should close it. Having ready-to-use, free socket software is a good thin, but it can be hosted in another repository.

Simon Goldschmidt <goldsimon>
Project Administrator
Sun 30 Mar 2008 11:29:16 AM UTC, comment #9: 

>On the other hand, as much as I apprechiate having an FTP client for lwIP: how does this relate to lwIP if it is really a socket application? Having the raw- and netconn-APIs, I think we should focus on applications for these (more efficient) APIs and leave the generic socket API apps to the rest of the world... (just my own opinion, though - although it's always better to have a socket FTP client than no FTP client at all).


About that, I think there is two kind of modules in contrib/apps: first, we should have enought applications to be able to test most of parts of lwIP code (chargen, netio). And socket layer is one of these parts, and with it, you also the netconn test (the only thing to know with netconn api is the pbuf chains use). Secondly, a module in contrib/apps can provide some usual protocols in a SIMPLE way (ping, sntp, netbios). Of course, a module doing both is better (httpserver & httpserver_raw).

About this FTP client, I'm not sure about what it provide: this is socket based, and mainly use the tcp part. But "chargen" already do that, so...

But, in all cases, AS LONG there is a code maintainer for a contrib module, I don't have any problem if we add it.

One of the module I would like to use is a rtp client/server to test the IGMP parts (I have already post it).

Frédéric Bernon <fbernon>
Project Member
Sat 29 Mar 2008 10:47:42 PM UTC, comment #8: 

I totally agree about your socket vs. raw API statements. But if you want to save RAM or processing time: you can always mix raw-API-apps and socket-apps in the same product, that's how we do it: port the existing socket apps and develop our own raw API apps.

On the other hand, as much as I apprechiate having an FTP client for lwIP: how does this relate to lwIP if it is really a socket application? Having the raw- and netconn-APIs, I think we should focus on applications for these (more efficient) APIs and leave the generic socket API apps to the rest of the world... (just my own opinion, though - although it's always better to have a socket FTP client than no FTP client at all).

> Btw we want to contribte also with the PPP stack
> modified for use without OS. Should I start a new
> Task or add it to some older one?


Please create a new task for this. I'm eager to look at the changes, although I must say I didn't have much time to look at lwIP's PPP yet, I think especially for mobile devices, PPP is a very interesting feature and the current developers (including me) can't say much about it :-(

Simon Goldschmidt <goldsimon>
Project Administrator
Sat 29 Mar 2008 08:23:08 PM UTC, comment #7: 

>why did you write your own socket layer?


1. Why did we not use the existing socket API?
Because it needs OS. The current project takes
many features from older products and it would
take much time to rewrite them for an OS. I guess
we could make all our previous soft work as a
single thread but did not want to risk when the
time-to-market is short. Also, every OS adds some
overhead. At the present time we are struggling
for RAM. The lwip's PPP needs much of it.

2. Because (almost) all the freeware in C around the
world is written for sockets (just like the eCos
client). If we want to benefit from freeware we need socket
API. For the current project we don't need other
network application than ftpc but for future project
we should do. Why rewriting every freeware application
for the raw API when we can implement socket API once
and use freeware with less efort and modifications?

3. Because I've never done network programming before.
This was the perfect opportunity to learn and
work at the same time.

>Isn't the lwIP raw API more efficient?

I'm sure that a client, based on the raw api
will be much faster, but since we use
GPRS connection this is impossible.

Btw we want to contribte also with the PPP stack
modified for use without OS. Should I start a new
Task or add it to some older one?

Iordan Neshev <iordan_neshev>
Fri 28 Mar 2008 06:23:23 PM UTC, comment #6: 

Having an FTP client for lwIP is cool, of course! But just out of curiosity: why did you write your own socket layer? Isn't the lwIP raw API more efficient?

And another question mainly to Kieran: I thought we wouldn't want to add socket-software to the repository, as that is more common (not strictly lwIP-related)???

Simon Goldschmidt <goldsimon>
Project Administrator
Fri 28 Mar 2008 05:42:48 PM UTC, comment #5: 

Thanks God, I found the original source files.
I attached the headers and now everything is legal.

I can't remember if there are bits of code
taken from the lwip stack, so I included
also the lwip's Copyright text.

I apologize once again for ignoring the law.

I hope we'll help each other and you'll report
any bugs or any ideas you have about how
to improve the client.

(file #15356)

Iordan Neshev <iordan_neshev>
Fri 28 Mar 2008 03:43:08 PM UTC, comment #4: 

Sadly promises aren't always kept, and have no legal standing!  By putting it up here (even without the further advertisment of it) you're distributing the software and so have broken the licence agreement.

I'm deleting the file, but please don't see this as not wanting the client or other contributions, it's just that we have a duty to be careful about software licences and the providence of contributed code. 

Kieran Mansley <kieranm>
Project Member
Fri 28 Mar 2008 03:23:00 PM UTC, comment #3: 

In the .zip there is a .txt with a guide
and short description which includes:

> The client is based on the eCos client:
>  (URL)
> I promise to bring back the copyright notice later.


I could not find the original source file when I
prepared the archive, but I PROMISE to do it
and copy/paste the header before the client goes
in the CVS repository. At the moment the source
is intended to be tested and debugged.
I tested it only in laboratory conditions.

Iordan Neshev <iordan_neshev>
Fri 28 Mar 2008 03:13:45 PM UTC, comment #2: 

Oops, ignore that eCosCentric copyright - I was looking at the wrong tree. The public CVS version does not have that line. Everything else is the same.

Jonathan Larmour <jifl>
Project Member
Fri 28 Mar 2008 03:12:16 PM UTC, comment #1: 

This may well be useful to someone. However, as you say in the leading comment, it is derived from the eCos ftp client (and looking at the code, indeed it clearly is). This means it is covered by the eCos GPL license.

You should have retained the header at the top of the file identifying the copyrights and license.

Here is the license on the current ecos ftpclient.c (although I happen to know now that all the copyrights will in future be just the Free Software Foundation's):

// -------------------------------------------
// This file is part of eCos, the Embedded Configurable Operating System.
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
// Copyright (C) 2002 Andrew Lunn.
// Copyright (C) 2004 Gary Thomas
// Copyright (C) 2005 eCosCentric Ltd.
//
// eCos is free software; you can redistribute it and/or modify it under
// the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2 or (at your option) any later version.
//
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
// for more details.
//
// You should have received a copy of the GNU General Public License along
// with eCos; if not, write to the Free Software Foundation, Inc.,
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
//
// As a special exception, if other files instantiate templates or use macros
// or inline functions from this file, or you compile this file and link it
// with other works to produce a work based on this file, this file does not
// by itself cause the resulting work to be covered by the GNU General Public
// License. However the source code for this file must still be made available
// in accordance with section (3) of the GNU General Public License.
//
// This exception does not invalidate any other reasons why a work based on
// this file might be covered by the GNU General Public License.
// -------------------------------------------

Jonathan Larmour <jifl>
Project Member
Wed 26 Mar 2008 02:37:12 PM UTC, original submission:  

Hello,

I submit a simple FTP client.
It uses a socket API that I wrote which does not require OS (it will be available soon).
In the .zip file you will find instructions how to adapt the lwip's existing socket interface to to run the client. It should be easy, but I did not test this case.

Currently I have problems only with saving the received files in flash memory from within the ftp client. Otherwise I save it through the receive callback.

Btw get ready for PPP and BSD sockets API for NO_SYS=1 :)

Iordan Neshev <iordan_neshev>

 

Attached Files
file #15356:  ftpclient v01a.rar added by iordan_neshev (18KiB - application/octet-stream)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by dinesh01 (Voted in favor of this item)
  • -email is unavailable- added by fbernon (Posted a comment)
  • -email is unavailable- added by goldsimon (Posted a comment)
  • -email is unavailable- added by kieranm (Posted a comment)
  • -email is unavailable- added by jifl (Posted a comment)
  • -email is unavailable- added by iordan_neshev (Submitted the item)
  • -email is unavailable- added by iordan_neshev
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 100 encouragements so far.

    Only logged-in users can vote.

     

     

     

    Follow 6 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2016-08-19 dinesh01 Carbon-Copy- => Added dinesh01
    2009-11-03 kieranm Open/ClosedOpen => Closed
    2008-03-28 iordan_neshev Attached File- => Added ftpclient v01a.rar, #15356
    2008-03-28 kieranm Attached File#15340 => Removed
    2008-03-26 iordan_neshev Attached File- => Added fptclient_v01.zip, #15340
        Carbon-Copy- => Added iordan_neshev

    Back to the top


    Powered by Savane 3.5