J'avais besoin d'une classe me permettant dans l'imm=E9diat d'ex=E9cuter
des commandes en ouvrant un shell et par la suite du scp/sftp. Pour
cela je voulais utiliser la libssh2. Pour ex=E9cuter une commande
l'exemple : http://www.libssh2.org/examples/ssh2_exec.html me laissait
penser que ce n'=E9tait pas insurmontable et r=E9aliste.
C'est maintenant que =E7a se corse pour moi. J'ai deux probl=E8mes.
Le premier.
J'ai ma classe CSsh qui va contenir :
1. des variables publiques dont :=A0
LIBSSH2_SESSION *session;
LIBSSH2_CHANNEL *channel;
2. des m=E9thodes publiques :
sshConnect : m=E9thode allant me permettre de me connecter avec les
identifiants etc=85
sshRequestShell : m=E9thode qui va s'occuper de me mettre en place un
shell.
sshConnect fonctionne, j'arrive bien =E0 me connecter et c'est l=E0 que la
variable =AB *session =BB va =EAtre initialis=E9e.
Dans la m=E9thode =AB sshRequestShell =BB je vais utiliser la variable =AB
*session =BB pour initialiser la variable =AB *channel =BB. =C7a se fait pa=
r :
Le probl=E8me c'est que si j'ajoute cette ligne dans =AB sshRequestShell =
=BB
j'ai une erreur de segmentation. Si je l'ajoute dans =AB sshConnect =BB
tout se passe bien. C'est ce que je ne comprends pas.
Le second.
Certaines commandes, mettons passwd demande des informations
compl=E9mentaires =E0 saisir une fois la commande ex=E9cut=E9e. Dans un
pr=E9c=E9dent test, j'arrivais =E0 ex=E9cuter la commande, a r=E9cup=E9rer =
son
r=E9sultat, mais je n'arrivais pas =E0 lui r=E9pondre de mani=E8re =E0 ce q=
u'il
en tienne compte. D=FB moins tout ce que je ne r=E9cup=E9rai plus rien. J'a=
i
du mal m'y prendre.
J'avais en fait r=E9ussi =E0 faire tout =E7a en perl, mais l=E0 je s=E8che =
d=E9j=E0
sur mon premier probl=E8me.
Si quelqu'un avait une suggestion, je suis tout ou=EFe.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Frédéric Kuhn
On 10 nov, 13:43, Frédéric Kuhn wrote:
Hello,
Je débute en c++ et je travaille sur linux/bsd.
J'avais besoin d'une classe me permettant dans l'immédiat d'exécuter des commandes en ouvrant un shell et par la suite du scp/sftp. Pour cela je voulais utiliser la libssh2. Pour exécuter une commande l'exemple :http://www.libssh2.org/examples/ssh2_exec.htmlme laissait penser que ce n'était pas insurmontable et réaliste.
C'est maintenant que ça se corse pour moi. J'ai deux problèmes.
Le premier.
J'ai ma classe CSsh qui va contenir : 1. des variables publiques dont : LIBSSH2_SESSION *session; LIBSSH2_CHANNEL *channel; 2. des méthodes publiques : sshConnect : méthode allant me permettre de me connecter avec les identifiants etc sshRequestShell : méthode qui va s'occuper de me mettre en place un shell.
sshConnect fonctionne, j'arrive bien à me connecter et c'est là que l a variable « *session » va être initialisée.
Dans la méthode « sshRequestShell » je vais utiliser la variable « *session » pour initialiser la variable « *channel ». Ça se fait par :
Le problème c'est que si j'ajoute cette ligne dans « sshRequestShell » j'ai une erreur de segmentation. Si je l'ajoute dans « sshConnect » tout se passe bien. C'est ce que je ne comprends pas.
Le second.
Certaines commandes, mettons passwd demande des informations complémentaires à saisir une fois la commande exécutée. Dans un précédent test, j'arrivais à exécuter la commande, a récupére r son résultat, mais je n'arrivais pas à lui répondre de manière à ce qu'il en tienne compte. Dû moins tout ce que je ne récupérai plus rien. J 'ai du mal m'y prendre.
J'avais en fait réussi à faire tout ça en perl, mais là je sèch e déjà sur mon premier problème.
Si quelqu'un avait une suggestion, je suis tout ouïe.
Merci.
Au temps pour moi, j'ai fait une énorme erreur pour la première partie. On vient de me faire remarquer que mon contrôleur fermait la connexion avant de demander un shell d'où l'erreur de segmentation
Désolé, j'avais cherché pendant un jour pour ce point avant de me décider à poster ici :/
On 10 nov, 13:43, Frédéric Kuhn <kuhn.frede...@gmail.com> wrote:
Hello,
Je débute en c++ et je travaille sur linux/bsd.
J'avais besoin d'une classe me permettant dans l'immédiat d'exécuter
des commandes en ouvrant un shell et par la suite du scp/sftp. Pour
cela je voulais utiliser la libssh2. Pour exécuter une commande
l'exemple :http://www.libssh2.org/examples/ssh2_exec.htmlme laissait
penser que ce n'était pas insurmontable et réaliste.
C'est maintenant que ça se corse pour moi. J'ai deux problèmes.
Le premier.
J'ai ma classe CSsh qui va contenir :
1. des variables publiques dont :
LIBSSH2_SESSION *session;
LIBSSH2_CHANNEL *channel;
2. des méthodes publiques :
sshConnect : méthode allant me permettre de me connecter avec les
identifiants etc
sshRequestShell : méthode qui va s'occuper de me mettre en place un
shell.
sshConnect fonctionne, j'arrive bien à me connecter et c'est là que l a
variable « *session » va être initialisée.
Dans la méthode « sshRequestShell » je vais utiliser la variable «
*session » pour initialiser la variable « *channel ». Ça se fait par :
Le problème c'est que si j'ajoute cette ligne dans « sshRequestShell »
j'ai une erreur de segmentation. Si je l'ajoute dans « sshConnect »
tout se passe bien. C'est ce que je ne comprends pas.
Le second.
Certaines commandes, mettons passwd demande des informations
complémentaires à saisir une fois la commande exécutée. Dans un
précédent test, j'arrivais à exécuter la commande, a récupére r son
résultat, mais je n'arrivais pas à lui répondre de manière à ce qu'il
en tienne compte. Dû moins tout ce que je ne récupérai plus rien. J 'ai
du mal m'y prendre.
J'avais en fait réussi à faire tout ça en perl, mais là je sèch e déjà
sur mon premier problème.
Si quelqu'un avait une suggestion, je suis tout ouïe.
Merci.
Au temps pour moi, j'ai fait une énorme erreur pour la première
partie. On vient de me faire remarquer que mon contrôleur fermait la
connexion avant de demander un shell d'où l'erreur de segmentation
Désolé, j'avais cherché pendant un jour pour ce point avant de me
décider à poster ici :/
J'avais besoin d'une classe me permettant dans l'immédiat d'exécuter des commandes en ouvrant un shell et par la suite du scp/sftp. Pour cela je voulais utiliser la libssh2. Pour exécuter une commande l'exemple :http://www.libssh2.org/examples/ssh2_exec.htmlme laissait penser que ce n'était pas insurmontable et réaliste.
C'est maintenant que ça se corse pour moi. J'ai deux problèmes.
Le premier.
J'ai ma classe CSsh qui va contenir : 1. des variables publiques dont : LIBSSH2_SESSION *session; LIBSSH2_CHANNEL *channel; 2. des méthodes publiques : sshConnect : méthode allant me permettre de me connecter avec les identifiants etc sshRequestShell : méthode qui va s'occuper de me mettre en place un shell.
sshConnect fonctionne, j'arrive bien à me connecter et c'est là que l a variable « *session » va être initialisée.
Dans la méthode « sshRequestShell » je vais utiliser la variable « *session » pour initialiser la variable « *channel ». Ça se fait par :
Le problème c'est que si j'ajoute cette ligne dans « sshRequestShell » j'ai une erreur de segmentation. Si je l'ajoute dans « sshConnect » tout se passe bien. C'est ce que je ne comprends pas.
Le second.
Certaines commandes, mettons passwd demande des informations complémentaires à saisir une fois la commande exécutée. Dans un précédent test, j'arrivais à exécuter la commande, a récupére r son résultat, mais je n'arrivais pas à lui répondre de manière à ce qu'il en tienne compte. Dû moins tout ce que je ne récupérai plus rien. J 'ai du mal m'y prendre.
J'avais en fait réussi à faire tout ça en perl, mais là je sèch e déjà sur mon premier problème.
Si quelqu'un avait une suggestion, je suis tout ouïe.
Merci.
Au temps pour moi, j'ai fait une énorme erreur pour la première partie. On vient de me faire remarquer que mon contrôleur fermait la connexion avant de demander un shell d'où l'erreur de segmentation
Désolé, j'avais cherché pendant un jour pour ce point avant de me décider à poster ici :/