
pyFTPclient for S60

Copyright 2005-2006 by Lasse Huovinen

Contents
    1. ........	Introduction
    1.1 ....... Requirements
    2. ........	Usage
    2.1 ....... Not Connected
    2.2 ....... Connected to Server
    3. ........	Release Notes
    4. ........	ToDo List
    5. ........	List of Files



1. Introduction

pyFTPclient for S60 (pyFTPc) is a simple FTP client program for Symbian Series 60 phones written in Python.

Currently pyFTPc supports anonymous login to FTP servers, uploading and downloading of files, and remote server directory browsing. It is important to note that currently all data will be transmitted over insecure channels. There are plans to support non-anonymous login and SFTP.

In order to use pyFTPc Python for S60 phones must be installed to the phone. Python for S60 can be downloaded and installed from http://forum.nokia.com/python for free of charge.

Be aware that pyFTPc still requires lots of testing, new features, and fine tuning.

1.1 Requirements

- Series 60 mobile phone
- PyS60 version 1.3.1 or later installed on the mobile phone.

2. Usage

This section shortly describes how to use pyEditS60. This section is divided into two parts. The first part describes the usage in the case there's no connection to any FTP server and the second part describes the usage when connected to a server.

2.1 Not Connected
When the client is started the "Options" menu has the items introduced below. DThe "Exit" key just terminates the client.

Connect - The user will be prompted to input an FTP server address and then the client tries to establish connection to the server.

My servers - The user may select the server from the list of favorite servers and once selected the client tries to establish connection to the server. See also "Settings".

Settings - The user may configure a few items through this selection. In the first tab the user may configure the favorite server addresses (max 7). In the second tab the user may select the directory for downloaded files and the default directory for the files to be uploaded.

Debug - The user may enable and disable connection logging and ftplib debug printing through this selection. If connection logging is enabled the information will be written to 'dat/ftpdebugfile.txt'. The ftplib has two debug levels: 1 and 2. The ftplib debugging is disabled if level is set to 0.

About - Some information about the client.

Help - Online help of the client.

2.2 Connected to Server

Once connected to a server the client automatically downloads the directory listing of the 'root' directory. The listing is shown as a list box. The letter in the front of list items describes the file type: 'l' stands for 'symbolic link', 'd' for 'directory, and 'f' for regular file.

The user can browse directories using joystick. If the currently highlighted item is directory the may enter to the directory by turning joystick right. The user can go back to the parent directory by turning joystick left. By pressing joystick the user may get more information or download the currently selected file.

The "Exit" key closes the current connection but does not terminate the client.

The "Options" menu has different items depending on transfer status. In the case there's no transfer going on the following items will be shown.

Show/hide listing - Shows or hides the listbox showing the current directory listing.

Change dir - The user is prompted to input directory and then the client tries to perform 'cwd' command. If the directory is changed successfully the directory listing of the new directory is automatically downloaded.

Upload - The user is asked to select a file and then the file is sent to the FTP server.

Disconnect - Closes the connection to the server.

Kill program - Forces the client to terminated itself. This may be useful in cases that the connection hands and disconnecting is unsuccessful.

About and Help - See 2.1.

In the case there's on-going transfer the following items are shown: Abort, Disconnect, Kill program, About, and Help. The last four items are as described above.

Abort - The client sends abort command to the server. Note: this may sometimes confuse the client or connection.

3. Release Notes

0.3	   February 1, 2006.
Three upload bugs fixed: 1) command changed to 'STOR', 2) destination file name does not include path name, and 3) uploading now ends properly. A couple of bug fixes for fetched directory content handling. Available menu options changed while connecting to a server. New features: refreshing directory listing, text file reading on-line.
0.2	   December 21, 2005.
A couple of bugs fixed: 1) 'help' and 'about' menus are now working properly 2) messages are now properly printed on the console. Added the following features: abort transfer, kill the program if it hangs while connected, and connection debugging options. Also, documentation was partially improved.
0.1	   December 8, 2005.
This is the initial release. The supported features are anonymous login, uploading, downloading, and remote server directory browsing. Official Symbian UID 0x1027972F was assigned for the program.

4. ToDo List

Features to be done:
- Non-anonymous login
- "Secure FTP" support
- Write proper help file
- Write proper documentation
- Different help files for "connected" and "not connected" states.

Known issues:
- Directory listing does not work properly with some servers.
- The program crashes sometimes after directory content transfer is aborted.

5. List of Files

The pyFTPclient for S60 consists of the following files.

Python source files:
- ftpc.py			The main program of pyFTPclient for S60.
- ftpconfig.py			pyFTPc configuration module.
- default.py			Used to launch the FTP client in the case it is
				run as a standalone application.
- ftplib.py			This is Python ftplib module copied from
				Python 2.3; no modifications of any kind were
				done to the file. The current Python for S60
				does not include ftplib module.

Text files:
- DISCLAIMER			Read this file before using
				pyFTPclient for Series 60.
- pyftpcs60about.txt		Content for the 'About' menu item.
- pyftpc60help.txt		Content for the 'Help' menu item.
- README.txt			This file.
