LFtp:  client ftp pour mon palm !

English version

 

 
 
 
 
 

Laurent THALER
lthaler@free.fr
http://lthaler.free.fr

Cette page est http://lthaler.free.fr/lftp-fr.htm
 

Nouveau ! les sources sont là

LFtp, qu'est-ce que c'est ?


LFtp est un programme client ftp pour les plateformes Palm, ce qui signifie pas seulement les seuls vrais palms, mais aussi les TRGPro, les CLIe (lire plus loin...)
LFtp est basé sur NetSample, qui est fournit dans le SDK Palm, j'ai retiré un tas de trucs inutiles (pour moi) et rajouté plein de fonctions plus utiles.

LFtp est principalement un interpréteur de ligne de commande qui peut lancer un seul utilitaire: ftp. Une fois qu'on est dans le mode ftp, on peut envoyer et recevoir des fichiers palm (.pdb et .prc) sur un serveur ftp.

Et donc, j'ai rajouté quelques trucs:
- des commandes simples mais utiles: del, mkd, rmd
- ajoute systématiquement .prc au nom de fichier, ainsi cela peut être récupéré par ProxyWeb
- publie les fichier .doc en html: pub
- envoie et reçoit les fichiers directement depuis/vers la compact flash d'un TRGPro: putcf, getcf
- envoie et reçoit les fichiers directement depuis/vers le memory stick d'un CLIe: putms, getms
- login automatique et commandes enregistrées
- publie les memos: pubm
- nomme les fichiers comme ils doivent êtres, .prc et .pdb
- liste les fichiers sur le palm: ldir
- liste les fichiers sur les support externes en vfs (sd, mmc, cf, ms): ldirfs
- reçoit les fichiers sur les support externes en vfs (sd, mmc, cf, ms): getfs
- reçoit des fichiers textes (.html, .php, .asp, ...) comme des doc non compressés: getdoc
- utilise les commandes stockées dans un memo: execmemo
 

Avertissement

LFtp est d'usage libre. Il n'y a pas de licence ou quoi que ce soit. Utilisez-le si vous en avez le besoin. Les e-mails de satisfaction sont appréciés !
LFtp est fournit en l'état. Sans aucune garantie de support. Je ne suis pas responsable de ce qui pourrait arriver. Il a été testé sur plusieurs machines et fonctionne rapidement mais n'est pas parfait, il y a quelques bugs connus, mais rien de plus qu'un bon vieux reset des familles ne puisse régler n'a jamais été observé jusqu'à présent.

LFtp est un outil, pas un logiciel. Quelle est la différence ? Un logiciel fonctionne bien en toutes circonstances, un outil fait simplement ce qu'il foit faire. LFtp est un outil pour envoyer et recevoir des fichiers "on the road", et çà marche, n'attendez rien de plus.
 

Comment utiliser LFtp ?


Une fois lancé, LFtp ouvre la connexion (si ce n'est pas déjà fait) et vous verrez çà:

Vous êtes en mode ligne de commande, vous pouvez l'utiliser comme votre programme ftp habituel.
Juste quelques mots sur les commandes disponibles:

help: affiche l'aide

pwd: affiche le répertoire courant sur le serveur (print working directory)
cd<dir>: change le répertoire courrant (change directory)
mkd<dir>: crée un répertoire sur le serveur (make directory)
rmd<dir>: détruit un répertoire sur le serveur (remove directory)
del<file>: détruit un fichier sur le serveur (delete)
dir: liste le contenu du répertoire courant

ldir [<cmd>]: liste local directory (liste les fichiers du palm uniquement dans la ram), si <cmd> est renseigné, la liste est préxifée avec <cmd>, (ok, le seul usage réel c'est: ldir put) ldir peut aussi être utilisé avant d'être connecté au serveur
ldirm: liste les mémos

put<file>: envoie un fichier vers le serveur ftp, rajoute toujours .prc au nom de fichier, ne fonctionne qu'avec des fichiers au format palm, respecter majuscules/minuscules (put LFtp va créer LFtp.prc sur le serveur)
get<file>: reçoit un fichier depuis le serveur, ne fonctionne qu'avec des fichiers au format palm, repecter majuscules/minuscules (get MonProg.prc va stocker MonProg sur le palm)

pub<file>: publie des fichiers doc non compresssés comme des fichiers textes (pub monfichier.htm va créer un fichier monfichier.htm sur le serveur)
pubm<file>: publie des memos comme des fichiers textes, le titre du memo est utilisé comme nom de fichier

getdoc <file>: download text file from server and create an uncompressed doc file, case sensitive (get myprog.prc will store myprog on palm)
execmemo <memoname>: execute all commands stored in the memo, no more limitedby the text size in the preferences to store hundreds of commands, if one memo is not enougth chain a other one
getmemo <file>: download text file from server and create a memo, case sensitive (get mymemo.txt will create mymemo.txt, existing mymemo.txt will be destroyed)

TRGPro uniquement
putcf<path\><file>: envoie un fichier stocké sur la compact flash d'un TRGPro sur le serveur ftp, dans le répertoire courrant, sans modification de nom
getcf<file>: reçoit un fichier du serveur ftp et écrit directement sur la compact flash d'un TRGPro, toujours à partir du répertoire courant, écrit toujours dans la racine de la compact flash

Clie uniquement
putms<path\><file>: envoie un fichier stocké sur la memory stick d'un CLIe sur le serveur ftp, dans le répertoire courrant, sans modification de nom, fournir le chemin complet depuis la racine (putms /DCIM/100MSDCF/DSC00001.JPG va stocker DSC00001.JPG sur le serveur)
 
 

C'est tout ? Non ! Ca devenait un peu pénible, même avec des raccourcis..., alors regardez dans les menus et ouvrez les préférences avec Menu/Misc/Preferences ou le raccourci /0, et vous verrez çà:
 

Si "use prefs" est coché alors le login automatique est utilisé.
Si "use prefs" et "use scripted commands" sont cochés, alors toutes les commandes enregistrées sont exécutées après le login automatique.

Durant le transfert, LFtp affiche des points, pour get & put, chaque point est un record ou une ressource, pour getcf & putcf, chaque point représente 4K.
 

Problèmes Fonctionnalités connues ;-)

- Le support de la cf du TRGPro est très limité, pas de détection de changement de la cf, il semble qu'il faille arrêter AutoCF [Je n'ai pas de TRGPro personnellement pour tester sur une vrai machine, les sponsors sont les bienvenus :-)]
- Le support des vfs est très limité, pas de détection de changement du support [Je n'ai ni Clie, ni M50x, ni H330 pour tester sur une vrai machine, les sponsors sont les bienvenus :-)]
- Les menus et le presse-papier ne marchent pas quand on est en mode ftp, çà peut produire une "fatal error" :-(, corrigé en 1.3
- coller ne marche pas quand on est en mode ftp... bon, en fait çà marche mais çà n'a pas d'effet à cause de la gestion des caractères destinée à simuler le mode ligne de commande, corrigé en 1.4
- le ftp récursif n'est pas sain (ouvrir une nouvelle session ftp à l'intérieur d'une session active, à cause du nombre limité de sockets disponible sur le Palm), il vaut mieux faire 'quit' avant ...
- la commande "dir" bloque parfois, il suffit d'attendre le timeout de 30s, ou faire reset, ou de demander au type qui gère le serveur ftp de couper la session :-)
- LFtp plante si on essaye d'envoyer un fichier vide (0 records), mais pourquoi envoyer un fichier vide... corrigé en 1.7.2
- pas mal de pbs avec les memory sticks du Clie, principalement parceque çà ne se comporte pas de la même manière avec l'emulateur, comme j'ai pas de Clie et que j'en ai ras le bol de devoir signer des licences pour des roms, j'ai tout retiré support vfs standard avec le sdk 4.0 en 1.7
- getfs ne marche pas encore, c'est çà le problème avec les freewares, c'est pas prioritaire... :-(
 

Comment faire ...

- pour ouvrir un serveur ftp avec un port non standard, il suffit de rajouter le port après l'adresse séparé par un espace  (ex: ftp 1.2.3.4 888)
- avec POSE et les serveurr ftp sur la même machine: uniquement 127.0.0.1 peut être utilisé si la machine récupère son adresse tcp/ip depuis un serveur DHCP est n'est pas connectée au réseau (cas d'un portable avec windows)
- via MochaPPP,  çà ne peut fonctionner que si le pc à une adresse tcp/ip valide ou que le nom puisse être résolu par un DNS, n'espérez pas le faire marcher sur 127.0.0.1
- y'a des blancs dans le nom de fichier ? essayer: put "y a des blancs"
- envoyer plusieurs fichiers en une seule fois (avec joker) ? non, c'est pas sain, mais utiliser la commande "ldir put", pour obtenir la liste des fichiers, retirer ce qui est inutile et copier le résultat dans les commandes enregistrées dans les préférences, etc...

Téléchargement et historique

LFtp 1.7.6: fixe les problèmes avec Serv-U et autres serveurs ftp trop bavards
LFtp 1.7.5: bug fixes (marche maintenant avec le PalmOS 5.0 Simulator), getmemo
LFtp 1.7.4: bug fix (fuite mémoire detectée avec le dernier POSE)
LFtp 1.7.3: bug fix (force un quit ftp quand on lance les preferences via le menu)
LFtp 1.7.2: execmemo, correction de bug avec les databases vides, problème mémoire dans les préférences
LFtp 1.7.1: getdoc, ldirfs, getfs, recompilé avec le sdk 4.0
LFtp 1.7 beta 4: support partiel des cartes d'extensions ldirfs, putfs (pas encore getfs), correction de bug avec pose 3.3
LFtp 1.6.1: bug fix, ne plante plus quand on entre un backspace au début de la ligne de commande
LFtp 1.6: fonctionne aussi en mode non passif
LFtp 1.52: nomme les prc .prc et les pdb .pdb
LFtp 1.51: nouvelles commandes: ldirm, pubm, retiré putms
LFtp 1.5 beta: nouvelle commande: putms, corrigé un bug du mode passif avec certains serveurs ftp
LFtp 1.41: nouvelle commande: ldir
LFtp 1.4 beta : copier/coller corrigé, fonctionne en mode passif (pour utilisation avec MochaPPP et les firewalls)
LFtp 1.3 : préférences multiples (Attention: çà va effacer les préférences existantes), raccourcis pour plusieurs serveurs
LFtp 1.2 : login automatique et commandes enregistrées
LFtp 1.01, 1.02, 1.03 ... (putcf & getcf)
LFtp 1.0

Besoin de quelque chose de spécial ? comme par exemple le fonctionnement automatique, des transformations de données ou le support du gsm intégré dans les Symbol spt17xx ? Me contacter (pas freeware)