estou fazendo um scriptizinho em perl que vai ficar ouvindo uma determinada porta e 
qnd algum cliente se conecta e envia certos
comandos ele vai se conectar ou desconectar da interface ppp

se alguem kiser ver o script de uma olhada no fim do email... eh bem igual ao exemplo 
do perlbook sobre IO::socket

oq eu estou tendo dificuldades � que n�o tenho muita ideia de que arquivos guardam a 
configura��o das conexoes por PPP... !

as interfaces como loopback e ethernet eu subo e des�o usando
ifup eth0 ou ifdown eth0... sem problemas... mas qnd escrevo ifup ppp0 ... nao 
acontece nada... tipo... ele vai para a linha de
baixo... como se estivesse tentando fazer alguma coisa... ele fica lendo a HD de 
tempos em tempos e nada... fica nisso o tempo que
for... depois de algum tempo dou um Ctrl+C e ele para... sem subir nada...

pelo Kppp eu conecto normalmente... mas por exemplo... se conectar pelo Kppp e usar 
ifdown ppp0 nada acontece tmb...

alguem pode me dar uma luz?

Obrigado
Gabriel



==============diald.pl==================

#!/usr/bin/perl
use IO::Select;
use IO::Socket;

$lsn = new IO::Socket::INET(Listen => 1, LocalPort => 80, Timeout => 5 );
$sel = new IO::Select( $lsn );
$iIndex = 0 ;
open(LOG, ">>/etc/discadorremoto.log");
print LOG "Inicializado " . time;

while(@ready = $sel->can_read) {
        foreach $fh (@ready) {
                if($fh == $lsn) {# Create a new socket
                        $new = $lsn->accept;
                        $sel->add($new);
                        send( $new , "Welcome Fucking Bastard!!\n" , 0 ) ;
                        $process[ $iIndex ] = $new ;
                        $iIndex++ ;
                }else {# Process socket
                        recv( $fh , $strRecebida , 1024 , 0) ;
                                print "\n\n\n\n" . $strRecebida . "\n\n\n\n";
                         if($strRecebida eq "disca") {
                                print LOG "disca";
                                send ($fh, "Comando recebido!", 0);
                                print ">>>disca";
                                #executa os if-up/if-down da vida
                         }elsif($strRecebida eq "desliga") {
                                print LOG "desliga";
                                send ($fh, "Comando recebido!", 0);
                                print ">>>desliga";
                                #executa os if-up/if-down da vida
                         }elsif($strRecebida eq "status") {
                                print LOG "status";
                                print ">>>status";
                                #deve procurar nos arquivos certos o status da 
conexao, como: IP, velocidade, e tempo online e
enviar de volta ao cliente...
                         }elsif($strRecebida eq "fechabot") {
                                print LOG "fechabot";
                                print ">>>fechabot";
                                send ($fh, "Comando recebido!", 0);
                                $sel->remove($fh);
                                $fh->close;
                                exit
                         }else {
                                print LOG "Erro! impossivel interpretar:\n" . 
$strRecebida . "\n [EoE]";
                                print "Erro! impossivel interpretar:\n" . $strRecebida 
. "\n [EoE]";
                         }

                        #for ( $jIndex = 0 ; $jIndex < @process ; $jIndex++){
                        #        if ( $fh != $process[ $jIndex ] ){ send ( $process[ 
$jIndex ] , $teste, 0 ); };
                        #}

                        # adios...
                        $sel->remove($fh);
                        $fh->close;
                }

        }
}

==================== eof =================================


Assinantes em 02/05/2001: 2269
Mensagens recebidas desde 07/01/1999: 111796
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista: 
            mailto:[EMAIL PROTECTED]

Responder a