URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4340
[ Назад ]

Исходное сообщение
"Perl+Socket=great problem!"

Отправлено usama , 07-Июн-05 13:19 
Есть скрипт на Perl - использует сокеты. Текст приведен ниже. На одной машине работает нормально, на другой появляется следующая ошибка - Insecure dependency in connect while running with -T switch at /usr/local/lib/perl5/5.8.0/i686-linux-thread-multi/IO/Socket.pm line 114. Что это?

#!/usr/bin/perl -w

use MFilter;
use Net::DNS;
use IO::Socket;
use Net::Telnet;

$r = testAddr2($ARGV[0]);
print $r, "\n";

sub testAddr2 {
    $from = shift;

    if($from !~ /^[a-zA-Z_\.-][a-zA-Z0-9_\.\-\d]*\@[a-zA-Z\.\-\d]+\.[a-zA-Z]{2,4}$/)
    {
        print "e-mail неправильного формата!<br>\n";
        return 0;
    }

    my $dns = "localhost";        # DNS Сервер
    my $res = new Net::DNS::Resolver;

    $res->nameservers($dns);
    $res || return 0;

    $from =~ /.*\@(.*)$/;
    my $domain = $1;

    my @mx = mx($res, $domain);
    @mx || return 0;

    my $rr = shift(@mx);
    $mxserver = $rr->exchange;

    $rr || return 0;

    print $mxserver, "\n";

    return testAddr($from, $mxserver);
}

sub testAddr {
        my($to, $host) = @_;

    my ($rd);
    eval {
        my $handle = IO::Socket::INET->new(
            Proto  => "tcp",
            PeerAddr  => $host,
            PeerPort  => 25);

        if ($handle) {
            $handle->autoflush(1);

            # Hello From Server
            $rd = <$handle>;
            chomp($rd);
            print $rd, "\n";
            if ($rd !~ /^220.+$/) {return 0;}

            print $handle "HELO myhost\n";

            # HELO Reply
            $rd = <$handle>;
            chomp($rd);
            print $rd, "\n";
            if ($rd !~ /^250.+$/) {return 0;}

            print $handle "MAIL FROM: <>\n";
            # MAIL FROM Reply
            $rd = <$handle>;
            chomp($rd);
            print $rd, "\n";
            if ($rd !~ /^250.+$/) {return 0;}

            print $handle "RCPT TO: $to\n";
            # RCPT TO Reply
            $rd = <$handle>;
            chomp($rd);
            print $rd, "\n";

            close $handle;
        }
    };

    if($@) {
        if($handle){
            close $handle;
        }
        return 0;
        }

    return ($rd !~ /^250.+$/) ? 0 : 1;
}


Содержание

Сообщения в этом обсуждении
"Perl+Socket=great problem!"
Отправлено Асен Тотин , 08-Июн-05 01:14 
Привет,

Возможно, это - более поздняя версия IO::Socket, которая стала более "внимательна" к сокетам... попробуйте убрать -w.

WWell,