TT#24097 Fix perl filehandle usage

- Use autoflush method per filehandle instead of setting $| and using
  the one argument select().
- Use lexical variables instead of barewords for filehandles.

Change-Id: Icd71248a28bea0974a79e489add5deee0b65748d
changes/05/16705/2
Guillem Jover 8 years ago
parent d6bc658c36
commit d5f7624a98

@ -4,7 +4,7 @@ use warnings;
use strict;
use Socket;
$| = 1;
STDOUT->autoflush(1);
@ -28,11 +28,9 @@ sub mp_msg {
my $fd;
socket($fd, AF_INET, SOCK_STREAM, 0) or die;
connect($fd, sockaddr_in(25060, inet_aton('127.0.0.1'))) or die;
my $old = select($fd);
$| = 1;
print("$cmd\n");
$fd->autoflush(1);
print { $fd } ("$cmd\n");
my $ret = <$fd>;
select($old);
close($fd);
chomp($ret);
return $ret;

@ -10,9 +10,9 @@ my $t = $ARGV[0] || "0";
my $format = 'SS ia16SS ia16SS ia16SS CCCC LLLLLL';
my $len = length(pack($format, (0) x 100));
open(X, "<", "/proc/rtpengine/$t/blist") or die;
open(my $fh, "<", "/proc/rtpengine/$t/blist") or die;
my $buf;
while (sysread(X, $buf, $len)) {
while (sysread($fh, $buf, $len)) {
my @b = unpack($format, $buf);
for (2,6,10) {
if ($b[$_] == AF_INET) {
@ -30,3 +30,4 @@ while (sysread(X, $buf, $len)) {
}
printf("%5u %15s:%-5u -> %15s:%-5u (-> %15s:%-5u) [%u] [%llu %llu %llu]\n", @b[0,3,4,7,8,11,12,14,18,20,22]);
}
close($fh);

@ -8,14 +8,10 @@ use Socket6;
my %cmds = (noop => 1, add => 2, delete => 3, update => 4, add_call => 5, del_call => 6, add_stream => 7, del_stream => 8, packet => 9);
my %ciphers = ('null' => 1, 'aes-cm' => 2, 'aes-f8' => 3);
my %hmacs = ('null' => 1, 'hmac-sha1' => 2);
$| = 1;
STDOUT->autoflush(1);
open(F, "+> /proc/rtpengine/0/control") or die;
{
my $x = select(F);
$| = 1;
select($x);
}
open(my $fh, '+>', '/proc/rtpengine/0/control') or die;
$fh->autoflush(1);
sub re_address {
my ($fam, $addr, $port) = @_;
@ -140,47 +136,47 @@ my $ret;
my $msg;
# print("add 9876 -> 1234/6543\n");
# $ret = syswrite(F, rtpengine_message('add', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite($fh, rtpengine_message('add', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# print("add fail\n");
# $ret = syswrite(F, rtpengine_message('add', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, mirror_addr => \@dst, mirror_port => 6789, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite($fh, rtpengine_message('add', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, mirror_addr => \@dst, mirror_port => 6789, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# print("update 9876 -> 1234/6543 & 6789\n");
# $ret = syswrite(F, rtpengine_message('update', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, mirror_addr => \@dst, mirror_port => 6789, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite($fh, rtpengine_message('update', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, mirror_addr => \@dst, mirror_port => 6789, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# print("update 9876 -> 2345/7890 & 4321\n");
# $ret = syswrite(F, rtpengine_message('update', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 2345, dst_addr => \@dst, dst_port => 7890, mirror_addr => \@dst, mirror_port => 4321, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite($fh, rtpengine_message('update', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 2345, dst_addr => \@dst, dst_port => 7890, mirror_addr => \@dst, mirror_port => 4321, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# print("add fail\n");
# $ret = syswrite(F, rtpengine_message('add', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, mirror_addr => \@dst, mirror_port => 6789, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite($fh, rtpengine_message('add', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, mirror_addr => \@dst, mirror_port => 6789, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# print("update 9876 -> 1234/6543\n");
# $ret = syswrite(F, rtpengine_message('update', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite($fh, rtpengine_message('update', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# print("delete\n");
# $ret = syswrite(F, rtpengine_message('delete', local_addr => \@local, local_port => 9876, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite($fh, rtpengine_message('delete', local_addr => \@local, local_port => 9876, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# print("delete fail\n");
# $ret = syswrite(F, rtpengine_message('delete', local_addr => \@local, local_port => 9876, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite($fh, rtpengine_message('delete', local_addr => \@local, local_port => 9876, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# print("update fail\n");
# $ret = syswrite(F, rtpengine_message('update', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite($fh, rtpengine_message('update', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# sleep($sleep);
@ -215,7 +211,7 @@ if (0) {
print("creating call $name\n");
$msg = rtpengine_message_call('add_call', 0, $name);
$ret = sysread(F, $msg, length($msg)) // '-';
$ret = sysread($fh, $msg, length($msg)) // '-';
#print("reply: " . unpack("H*", $msg) . "\n");
print("ret = $ret, code = $!\n");
@ -232,7 +228,7 @@ if (0) {
print("creating stream $name under call idx $call\n");
$msg = rtpengine_message_stream('add_stream', $call, 0, $name);
$ret = sysread(F, $msg, length($msg)) // '-';
$ret = sysread($fh, $msg, length($msg)) // '-';
#print("reply: " . unpack("H*", $msg) . "\n");
print("ret = $ret, code = $!\n");
@ -249,7 +245,7 @@ if (0) {
print("deleting call idx $call\n");
$msg = rtpengine_message_call('del_call', $call);
$ret = syswrite(F, $msg) // '-';
$ret = syswrite($fh, $msg) // '-';
#print("ret = $ret, code = $!, reply: " . unpack("H*", $msg) . "\n");
print("ret = $ret, code = $!\n");
@ -278,7 +274,7 @@ if (0) {
print("deleting stream idx $stream->[1] (call $stream->[0])\n");
$msg = rtpengine_message_stream('del_stream', $stream->[0], $stream->[1]);
$ret = syswrite(F, $msg) // '-';
$ret = syswrite($fh, $msg) // '-';
#print("ret = $ret, code = $!, reply: " . unpack("H*", $msg) . "\n");
print("ret = $ret, code = $!\n");
@ -295,7 +291,7 @@ if (0) {
print("delivering a packet to $idx\n");
$msg = rtpengine_message_packet('packet', 0, $idx, 'packet data bla bla ' . rand() . "\n");
$ret = syswrite(F, $msg) // '-';
$ret = syswrite($fh, $msg) // '-';
print("ret = $ret, code = $!\n");
sleep($sleep);
@ -316,7 +312,7 @@ if (0) {
print("creating call\n");
$msg = rtpengine_message_call('add_call', 0, 'test call');
$ret = sysread(F, $msg, length($msg)) // '-';
$ret = sysread($fh, $msg, length($msg)) // '-';
#print("reply: " . unpack("H*", $msg) . "\n");
print("ret = $ret, code = $!\n");
@ -330,7 +326,7 @@ sleep($sleep);
# print("creating identical call\n");
#
# $msg = rtpengine_message_call('add_call', 0, 'test call');
# $ret = sysread(F, $msg, length($msg)) // '-';
# $ret = sysread($fh, $msg, length($msg)) // '-';
# #print("reply: " . unpack("H*", $msg) . "\n");
# print("ret = $ret, code = $!\n");
#
@ -344,7 +340,7 @@ sleep($sleep);
# print("creating other call\n");
#
# $msg = rtpengine_message_call('add_call', 0, 'another test call');
# $ret = sysread(F, $msg, length($msg)) // '-';
# $ret = sysread($fh, $msg, length($msg)) // '-';
# #print("reply: " . unpack("H*", $msg) . "\n");
# print("ret = $ret, code = $!\n");
#
@ -359,7 +355,7 @@ for my $exp (0 .. 1000) {
print("creating a stream\n");
$msg = rtpengine_message_stream('add_stream', $idx1, 0, 'test stream ' . rand());
$ret = sysread(F, $msg, length($msg)) // '-';
$ret = sysread($fh, $msg, length($msg)) // '-';
#print("reply: " . unpack("H*", $msg) . "\n");
print("ret = $ret, code = $!\n");
@ -373,7 +369,7 @@ for my $exp (0 .. 1000) {
# print("creating a stream\n");
#
# $msg = rtpengine_message_stream('add_stream', $idx1, 0, 'test stream');
# $ret = sysread(F, $msg, length($msg)) // '-';
# $ret = sysread($fh, $msg, length($msg)) // '-';
# #print("reply: " . unpack("H*", $msg) . "\n");
# print("ret = $ret, code = $!\n");
#
@ -387,7 +383,7 @@ for my $exp (0 .. 1000) {
# print("creating identical stream\n");
#
# $msg = rtpengine_message_stream('add_stream', $idx1, 0, 'test stream');
# $ret = sysread(F, $msg, length($msg)) // '-';
# $ret = sysread($fh, $msg, length($msg)) // '-';
# #print("reply: " . unpack("H*", $msg) . "\n");
# print("ret = $ret, code = $!\n");
#
@ -401,7 +397,7 @@ for my $exp (0 .. 1000) {
# print("creating different stream\n");
#
# $msg = rtpengine_message_stream('add_stream', $idx3, 0, 'test stream');
# $ret = sysread(F, $msg, length($msg)) // '-';
# $ret = sysread($fh, $msg, length($msg)) // '-';
# #print("reply: " . unpack("H*", $msg) . "\n");
# print("ret = $ret, code = $!\n");
#
@ -413,7 +409,7 @@ for my $exp (0 .. 1000) {
# print("add 9876 -> 1234/6543\n");
# $ret = syswrite(F, rtpengine_message('add', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, tos => 184, decrypt => $dec, encrypt => $enc, stream_idx => $sidx1, flags => 0x20)) // '-';
# $ret = syswrite($fh, rtpengine_message('add', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, tos => 184, decrypt => $dec, encrypt => $enc, stream_idx => $sidx1, flags => 0x20)) // '-';
# print("ret = $ret, code = $!\n");
# sleep($sleep);
@ -423,7 +419,7 @@ for my $exp (0 .. 1000) {
# print("delivering a packet\n");
#
# $msg = rtpengine_message_packet('packet', $idx1, $sidx1, 'packet data bla bla ' . rand() . "\n");
# $ret = syswrite(F, $msg) // '-';
# $ret = syswrite($fh, $msg) // '-';
# #print("reply: " . unpack("H*", $msg) . "\n");
# print("ret = $ret, code = $!\n");
#
@ -436,7 +432,7 @@ for my $exp (0 .. 1000) {
# print("deleting stream\n");
#
# $msg = rtpengine_message_stream('del_stream', $idx1, $sidx1, '');
# $ret = syswrite(F, $msg) // '-';
# $ret = syswrite($fh, $msg) // '-';
# #print("ret = $ret, code = $!, reply: " . unpack("H*", $msg) . "\n");
# print("ret = $ret, code = $!\n");
#
@ -447,7 +443,7 @@ for my $exp (0 .. 1000) {
# print("deleting call\n");
#
# $msg = rtpengine_message_call('del_call', $idx1, '');
# $ret = syswrite(F, $msg) // '-';
# $ret = syswrite($fh, $msg) // '-';
# #print("ret = $ret, code = $!, reply: " . unpack("H*", $msg) . "\n");
# print("ret = $ret, code = $!\n");
#
@ -456,4 +452,4 @@ for my $exp (0 .. 1000) {
close(F);
close($fh);

@ -4,7 +4,7 @@ use warnings;
use strict;
use Socket;
$| = 1;
STDOUT->autoflush(1);
@ -28,11 +28,9 @@ sub mp_msg {
my $fd;
socket($fd, AF_INET, SOCK_STREAM, 0) or die;
connect($fd, sockaddr_in(25060, inet_aton('127.0.0.1'))) or die;
my $old = select($fd);
$| = 1;
print("$cmd\n");
$fd->autoflush(1);
print { $fd } ("$cmd\n");
my $ret = <$fd>;
select($old);
close($fd);
chomp($ret);
return $ret;

@ -10,9 +10,6 @@ if ( ($num_args == 0) or
exit;
}
# auto-flush on socket
$| = 1;
my $argumentstring = "";
my $ip = "127.0.0.1";
my $port = "9900";
@ -39,6 +36,8 @@ my $socket = new IO::Socket::INET (
);
die "Cannot connect to the rtpengine $!\n" unless $socket;
$socket->autoflush(1);
#set send/recv timeout so script doesn't hang when rtpengine doesn't interact
setsockopt($socket, SOL_SOCKET, SO_SNDTIMEO, pack('L!L!', 3, 0) ) or die $!;
setsockopt($socket, SOL_SOCKET, SO_RCVTIMEO, pack('L!L!', 3, 0) ) or die $!;

@ -74,9 +74,9 @@ if (defined($options{sdp})) {
$packet{sdp} = $options{sdp};
}
elsif (defined($options{'sdp-file'})) {
open(F, '<', $options{'sdp-file'}) or die $!;
my @sdp = <F> or die $!;
close(F);
open(my $fh, '<', $options{'sdp-file'}) or die $!;
my @sdp = <$fh> or die $!;
close($fh);
$packet{sdp} = join('', @sdp);
}
#elsif (@ARGV && $ARGV[0] eq 'sdp') {

Loading…
Cancel
Save