attendre, mpd5 et téléchargez la configuration dynamique

J'ai un serveur FreeBSD, connecté au réseau mondial à travers PPPoE. IVA établi avec succès IP L2TP et PPTP VPN En haut de cette connexion WAN PPPoE. Le problème est que L2TP Il est nécessaire de causer une offre set lt2p self, Commencer à écouter le port udp / 1701, Donc, lorsque vous récupérez une session WAN PPPoE J'ai besoin de configurer de manière dynamique une partie de la configuration L2TP. Pour cela, j'utilise le script d'attente, il se connecte à la console de réseau. mpd5 et charge une partie de la configuration et l'a-t-il comme ceci:

set timeout 2
spawn telnet localhost 5005

expect -re "Username: " {
send myc00ll0g1n\r
exp_continue -continue_timer
}
expect -re "Password: " {
send myc00lpa$$\r
exp_continue -continue_timer
}

# destroying the knob
send "destroy link l2tplink\r"
expect ".+"
send "destroy bundle l2tpbundle\r"
expect ".+"

# loading the full knob:
send "create bundle template l2tpbundle\r"
expect ".+"
send "set iface idle 1800\r"
expect ".+"
send "set iface enable tcpmssfix\r"
expect ".+"
send "set iface group vpn\r"
expect ".+"
expect ".+"
send "set ipcp yes vjcomp\r"
expect ".+"
send "set ipcp ranges 192.168.58.1/32 ippool vpn-pool\r"
expect ".+"
send "set ipcp dns 192.168.57.254\r"
expect ".+"
send "set bundle enable compression\r"
expect ".+"
send "create link template l2tplink l2tp\r"
expect ".+"
send "set link action bundle l2tpbundle\r"
expect ".+"
send "set link enable multilink\r"
expect ".+"
send "set link yes acfcomp protocomp\r"
expect ".+"
send "set link no pap chap eap chap-md5 chap-msv1 chap-msv2\r"
expect ".+"
send "set link enable chap\r"
expect ".+"
send "set link enable pap\r"
expect ".+"
send "set link enable chap-md5\r"
expect ".+"
send "set link enable chap-msv1\r"
expect ".+"
send "set link enable chap-msv2\r"
expect ".+"
send "set link enable eap\r"
expect ".+"
send "set eap no md5 radius-proxy\r"
expect ".+"
send "set eap enable eap\r"
expect ".+"
send "set eap enable radius-proxy\r"
expect ".+"
send "set link keep-alive 10 60\r"
expect ".+"
send "set link mtu 1360\r"
expect ".+"
send "set link enable incoming\r"
expect ".+"
send "set l2tp self 384.656.768.272\r"
expect ".+"
send "set link max-children 50\r"
expect ".+"
send "set radius server 127.0.0.1 myc00lradiuspa$$\r"
expect ".+"
send "set radius retries 3\r"
expect ".+"
send "set radius timeout 3\r"
expect ".+"
send "set radius me 127.0.0.1\r"
expect ".+"
send "set auth acct-update 300\r"
expect ".+"
send "set auth enable radius-auth\r"
expect ".+"

Cela fonctionne complètement lorsque je l'appelle en mode interactif à travers ssh. Alors j'ai ajouté ça à

set iface up-script <expect wrapper="">

et la coquille attendue l'appelle comme

expect -f myscript.exp

. Mais quand cela se produit lorsque la connexion est restaurée PPPoE, Je reçois le groupe d'erreurs suivant dans mpd.log:

Mar 21 17:42:23 ronin mpd[37412]: [wan] IFACE: Up event
Mar 21 17:42:23 ronin mpd[37412]: CONSOLE: Connect
Mar 21 17:42:23 ronin mpd[37412]: CONSOLE: Allocated new console session 0x802000010 from 127.0.0.1
Mar 21 17:42:23 ronin mpd[37412]: CONSOLE: Failed login attempt from 127.0.0.1
Mar 21 17:42:23 ronin syslogd: last message repeated 34 times
Mar 21 17:42:23 ronin mpd[37412]: CONSOLE: Error while reading: Connection reset by peer

Et c'est certainement mon script attendu. (parce qu'il envoie à propos de 34 Ligne de commandes). Pourquoi ? Pourquoi il travaille quand je l'appelle manuellement et quand mpd5 causes - ne pas? Eh bien, je comprends que lorsque je l'appelle, il a un terminal de contrôle et quand mpd5 Le cause, ce n'est pas le cas, mais cela signifie-t-il? Comment puis-je résoudre ce problème? Ou problèmes de racine dans une autre?
</expect>
Invité:

Pour répondre aux questions, connectez-vous ou registre