1 #!/bin/sh 2 # Copyright (c) 2017 Oracle and/or its affiliates. All Rights Reserved. 3 # Copyright (c) International Business Machines Corp., 2000 4 # 5 # This program is free software; you can redistribute it and/or 6 # modify it under the terms of the GNU General Public License as 7 # published by the Free Software Foundation; either version 2 of 8 # the License, or (at your option) any later version. 9 # 10 # This program is distributed in the hope that it would be useful, 11 # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 # GNU General Public License for more details. 14 # 15 # You should have received a copy of the GNU General Public License 16 # along with this program. If not, see <http://www.gnu.org/licenses/>. 17 18 TCID="rpcinfo01" 19 TST_TOTAL=16 20 TST_CLEANUP=tst_rmdir 21 22 TST_USE_LEGACY_API=1 23 . tst_net.sh 24 25 do_setup() 26 { 27 tst_resm TINFO "Checking for portmap or rpcbind" 28 29 if pgrep portmap > /dev/null; then 30 PORTMAPPER="portmap" 31 else 32 pgrep rpcbind > /dev/null && PORTMAPPER="rpcbind" || \ 33 tst_brkm TCONF "portmap or rpcbind is not running" 34 fi 35 36 tst_tmpdir 37 38 # Create file with 1 tcp and 1 udp line. Use for variable assignments. 39 rpcinfo -p $(tst_ipaddr) | grep tcp | sed -n 2p > rpc_out 40 rpcinfo -p $(tst_ipaddr) | grep udp | sed -n 2p >> rpc_out 41 42 wc -l rpc_out | grep "2" > /dev/null || \ 43 tst_brkm TBROK "Not enough programs registered on $(tst_ipaddr)" 44 45 # Using "rpc_out" file created above, assign variables for rpcinfo opts 46 TPNUM=`grep tcp rpc_out | awk '{print $1}'` 47 TVNUM=`grep tcp rpc_out | awk '{print $2}'` 48 TCPNAME=`grep tcp rpc_out | awk '{print $5}'` 49 UPNUM=`grep udp rpc_out | awk '{print $1}'` 50 UVNUM=`grep udp rpc_out | awk '{print $2}'` 51 UDPNAME=`grep udp rpc_out | awk '{print $5}'` 52 } 53 54 do_test() 55 { 56 local thost="$(tst_ipaddr)" 57 58 EXPECT_RHOST_PASS rpcinfo -p $thost | grep -q portmapper 59 EXPECT_RHOST_PASS rpcinfo -t $thost $TPNUM 60 EXPECT_RHOST_PASS rpcinfo -t $thost $TPNUM $TVNUM 61 EXPECT_RHOST_PASS rpcinfo -t $thost $TCPNAME 62 EXPECT_RHOST_PASS rpcinfo -t $thost $TCPNAME $TVNUM 63 EXPECT_RHOST_PASS rpcinfo -u $thost 100000 64 EXPECT_RHOST_PASS rpcinfo -u $thost 100000 2 65 EXPECT_RHOST_PASS rpcinfo -u $thost portmapper 66 EXPECT_RHOST_PASS rpcinfo -u $thost portmapper 2 67 68 tst_resm TINFO "Test rpcinfo with missing or bad options" 69 EXPECT_RHOST_FAIL rpcinfo -p bogushost 70 EXPECT_RHOST_FAIL rpcinfo -bogusflag 71 EXPECT_RHOST_FAIL rpcinfo -t $thost 72 EXPECT_RHOST_FAIL rpcinfo -u $thost 73 EXPECT_RHOST_FAIL rpcinfo -u $thost bogusprog 74 EXPECT_RHOST_FAIL rpcinfo -u $thost 11579 75 EXPECT_RHOST_FAIL rpcinfo -u $thost 100000 5 76 } 77 78 do_setup 79 do_test 80 81 tst_exit 82