Re: echo off dans un service

2003-01-07 Par sujet Marc SCHAEFER
On Tue, Jan 07, 2003 at 12:28:15PM +0100, Jean-Claude Schopfer wrote:

 J'ai un chtit problème en shell (bash) : 

En fait, le problème est que stty effectue des ioctl(2)s sur un
descripteur de fichier: ces instructions de méta-données ne sont
pas des lectures et écriture.

Et une connexion réseau (un descripteur de connexion réseau, si l'on veut)
n'offre pas ces fonctionnalités: juste read(2), write(2).

 Est-ce quelqu'un a une idée ?

Deux façons:

   si on s'y connecte par telnet, il faut envoyer au client telnet
   distant WONT ECHO (une séquence d'échappement).

   lancer ton service à travers un pty (pseudo-tty), par exemple
   en créant un service qui est un login UNIX accessible par
   telnet ou ssh: telnetd s'occupera alors de la séquence WONT ECHO.

La première façon est probablement la plus simple.

 J'ai remarqué aussi q une tentative d'interruption du service
 par la partie cliente par CTRL + C|D lors du read ne fonctionne
 pas ce qui est une bonne chose. Est-ce 100 % fiable ou dois-je
 quand même traper ?

CTRL-C et D sont des touches, qui correspondent grâce au pilote
clavier et à la configuration du tty à interruption et fin de
fichier. De nouveau, un socket n'a pas ces fonctionnalités. CTRL-C,
D, DEL, CTRL-Z et autres sont des caractères qui sont transmis par
le client telnet (ou interprétés localement).

Eventuellement certains pourraient être transmis comme séquence
d'échappement TELNET que tu verrais comme une suite de caractères
dont le premier est un code non affichable.

--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.



Re: echo off dans un service

2003-01-07 Par sujet Daniel Cordey
On Tuesday 07 January 2003 12:28, Jean-Claude Schopfer wrote:

 J'ai remarqué aussi q une tentative d'interruption du service
 par la partie cliente par CTRL + C|D lors du read ne fonctionne
 pas ce qui est une bonne chose. Est-ce 100 % fiable ou dois-je
 quand même traper ?

Q'utilises-tu comme client ? Suivant les clients, le mode de transmission des 
CTRL-chars peut changer. Ah... le daemon dont tu parles est lancé par 
inetd... ce qui fait qu'il n'y a pas de tty/pty pour gérer tom stty.

Daniel

--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.



echo off dans un service

2003-01-07 Par sujet Jean-Claude Schopfer
Hellow, 

J'ai un chtit problème en shell (bash) : 

J'ai fais un script shell de quelques lignes avec un certain moment
donné un login du style :

...
echo -eLogin: \c
read PROGLOGIN
echo -e Password: \c
stty -echo
read PROGPASSWD
stty echo
...

J'ai aussi essayé d'utiliser read -s au lieu des commandes stty mais
le résultat est le même : utilisé en local le script effectue un
echo off lors de la saisie du mot de passe, mais si je rattache
ce prog sur un port (/etc/services  /etc/inetd.conf), l'echo off
ne s'effectue pas. J'ai même un message d'erreur si j'utilise
stty (pas de message avec read -s).

Est-ce quelqu'un a une idée ?

J'ai remarqué aussi q une tentative d'interruption du service
par la partie cliente par CTRL + C|D lors du read ne fonctionne
pas ce qui est une bonne chose. Est-ce 100 % fiable ou dois-je
quand même traper ?

PS : je suis sur GNU/Linux Debian Woody

@++
JC
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.