From d5f7624a98baf6b0147b95703759e7f6e14f2dd9 Mon Sep 17 00:00:00 2001 From: Guillem Jover Date: Wed, 8 Nov 2017 17:07:39 +0100 Subject: [PATCH] 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 --- tests/3-way-connect-simulator | 8 ++--- tests/blist.pl | 5 +-- tests/kernel-module-test.pl | 62 ++++++++++++++++------------------- tests/reinvite-simulator | 8 ++--- utils/rtpengine-ctl | 5 ++- utils/rtpengine-ng-client | 6 ++-- 6 files changed, 43 insertions(+), 51 deletions(-) diff --git a/tests/3-way-connect-simulator b/tests/3-way-connect-simulator index 24e75d241..ae4e8f663 100755 --- a/tests/3-way-connect-simulator +++ b/tests/3-way-connect-simulator @@ -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; diff --git a/tests/blist.pl b/tests/blist.pl index 34368f6bd..807fdbbd7 100755 --- a/tests/blist.pl +++ b/tests/blist.pl @@ -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); diff --git a/tests/kernel-module-test.pl b/tests/kernel-module-test.pl index d53cf8501..ab0ab4ac3 100755 --- a/tests/kernel-module-test.pl +++ b/tests/kernel-module-test.pl @@ -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); diff --git a/tests/reinvite-simulator b/tests/reinvite-simulator index aff0c0143..708baa5aa 100755 --- a/tests/reinvite-simulator +++ b/tests/reinvite-simulator @@ -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; diff --git a/utils/rtpengine-ctl b/utils/rtpengine-ctl index ff1b21362..93256e1fc 100755 --- a/utils/rtpengine-ctl +++ b/utils/rtpengine-ctl @@ -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 $!; diff --git a/utils/rtpengine-ng-client b/utils/rtpengine-ng-client index c431841d9..c6dc58a81 100755 --- a/utils/rtpengine-ng-client +++ b/utils/rtpengine-ng-client @@ -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 = 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') {