--- trunk/mitm-ssl.pl 2010/01/06 23:47:52 131 +++ trunk/mitm-ssl.pl 2010/01/06 23:54:02 132 @@ -9,11 +9,11 @@ use Getopt::Long; use Time::HiRes qw(time); -my $localport = 8080; -my $localaddr = "127.0.0.1"; -my $port = 80; -my $host = "127.0.0.1"; -my $logdir = "$localaddr:$localport-$host:$port"; +my $laddr = "127.0.0.1"; +my $lport = 8080; +my $raddr = "127.0.0.1"; +my $rport = 80; +my $logdir = "$laddr:$lport-$raddr:$rport"; my $help; my $daemon; @@ -27,10 +27,10 @@ $| = 1; my $goresult = GetOptions( - "lport=i" => \$localport, - "laddr=s" => \$localaddr, - "rport=i" => \$port, - "raddr=s" => \$host, + "lport=i" => \$lport, + "laddr=s" => \$laddr, + "rport=i" => \$rport, + "raddr=s" => \$raddr, "logtype=i" => \$logtype, "logdir=s" => \$logdir, "daemon" => \$daemon, @@ -68,13 +68,6 @@ if ! -e $serverkey && ! -e $servercert; -my %o = ( - 'dir' => $logdir, - 'port' => $localport, - 'toport' => $port, - 'tohost' => $host -); - if ($daemon) { my $pid = fork; exit if $pid; @@ -83,8 +76,8 @@ } my $ah = IO::Socket::SSL->new( - 'LocalPort' => $localport, - 'LocalAddr' => $localaddr, + 'LocalPort' => $lport, + 'LocalAddr' => $laddr, 'Reuse' => 1, 'Proto' => 'tcp', 'SSL_verify_mode' => '0', @@ -112,17 +105,17 @@ if ( !defined($pid) ) { print STDERR "cannot fork while(1) $!\n"; } elsif ( $pid == 0 ) { $ah->close( SSL_no_shutdown => 1 ); - Run( \%o, $ch, $num ); + Run( $ch, $num ); } else { $ch->close( SSL_no_shutdown => 1 ); } } sub Run { - my ( $o, $ch, $num ) = @_; + my ( $ch, $num ) = @_; my $th = IO::Socket::SSL->new( - 'PeerAddr' => $o->{'tohost'}, - 'PeerPort' => $o->{'toport'}, + 'PeerAddr' => $raddr, + 'PeerPort' => $rport, # 'SSL_use_cert' => '0', # 'SSL_verify_mode' => '0', @@ -130,12 +123,12 @@ 'SSL_cipher_list' => 'RC4-MD5', 'Proto' => 'tcp' ); - if ( !$th ) { print "cannot connect th: $!"; exit 0; } - else { print "connected!"; } + if ( !$th ) { print "cannot connect $raddr:$rport th: $!"; exit 0; } + else { print "connected to $raddr:$rport\n"; } my $fh; - if ( $o->{'dir'} ) { + if ( -d $logdir ) { $fh = Symbol::gensym(); - my $path = $o->{'dir'} . '/' . Time::HiRes::time(); + my $path = $logdir . Time::HiRes::time(); open( $fh, '>', $path ) or die "$!"; } $ch->autoflush();