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

Submitter:  Iordan Neshev <iordan_neshev>
Submitted:  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
Assigned to:  None Percent Complete:  0%
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>
Group 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>
Group 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>
Group 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>
Group 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>
Group 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>
Group 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>
Group 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>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

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
  •  

    There are 100 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

     

    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.13-f8d8.
    Corresponding source code