Établir une session du protocole XML Junos à l’aide d’applications clientes C
Cet exemple illustre comment une application cliente Junos XML protocol C utilise le protocole SSH ou Telnet pour établir une connexion et une session de protocole Junos XML avec un équipement exécutant Junos OS. Dans la ligne commençant par la chaîne execlp
, l’application cliente appelle la ssh
commande. (Remplacez la commande le telnet
cas échéant.) L’argument routing-platform de routine execlp
spécifie le nom d’hôte ou l’adresse IP de l’équipement serveur du protocole Junos XML. L’argument junoscript
est la commande qui convertit la connexion en session de protocole Junos XML.
int ipipes[ 2 ], opipes[ 2 ]; pid_t pid; int rc; char buf[ BUFSIZ ]; if (pipe(ipipes) <0 || pipe(opipes) <0) err(1, "pipe failed"); pid = fork( ); if (pid <0) err(1, "fork failed"); if (pid == 0) { dup2(opipes[ 0 ], STDIN_FILENO); dup2(ipipes[ 1 ], STDOUT_FILENO); dup2(ipipes[ 1 ], STDERR_FILENO); close(ipipes[ 0 ]); /* close read end of pipe */ close(ipipes[ 1 ]); /* close write end of pipe */ close(opipes[ 0 ]); /* close read end of pipe */ close(opipes[ 1 ]); /* close write end of pipe */ execlp("ssh", "ssh", "-x", routing-platform , "junoscript", NULL); err (1, "unable to execute: ssh %s junoscript," device); } close(ipipes[ 1 ]); /* close write end of pipe */ close(opipes[ 0 ]); /* close read end of pipe */
if (write(opipes[ 1 ], initial_handshake, strlen(initial_handshake)) <0 ) err(1, "writing initial handshake failed"); rc=read(ipipes[ 0 ], buf, sizeof(buf)); if (rc <0) err(1, "read initial handshake failed");