(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:server) op: assign_op.Equal rhs: { (DQ <'rump_server -lrump -lrumpnet -lrumpnet_net -lrumpnet_netinet\t'> <'\t\t -lrumpnet_netinet6 -lrumpnet_shmif -lrumpdev\t'> <'\t\t -lrumpnet_pppoe'> ) } spids: [79] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HIJACKING) op: assign_op.Equal rhs: {(DQ <'env LD_PRELOAD=/usr/lib/librumphijack.so'>)} spids: [91] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SERVER) op: assign_op.Equal rhs: {<unix> <Id.Lit_Colon ':'> <'//commsock1'>} spids: [97] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CLIENT) op: assign_op.Equal rhs: {<unix> <Id.Lit_Colon ':'> <'//commsock2'>} spids: [102] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SERVER_IP) op: assign_op.Equal rhs: {<10.3.3.1>} spids: [108] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CLIENT_IP) op: assign_op.Equal rhs: {<10.3.3.3>} spids: [111] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SERVER_IP6) op: assign_op.Equal rhs: {<fc00> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <1>} spids: [114] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CLIENT_IP6) op: assign_op.Equal rhs: {<fc00> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <3>} spids: [120] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:AUTHNAME) op: assign_op.Equal rhs: {<foobar> <Id.Lit_Splice '@baz'> <.com>} spids: [126] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SECRET) op: assign_op.Equal rhs: {<oink>} spids: [131] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BUS) op: assign_op.Equal rhs: {<bus0>} spids: [134] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TIMEOUT) op: assign_op.Equal rhs: {<3>} spids: [137] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WAITTIME) op: assign_op.Equal rhs: {<10>} spids: [140] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DEBUG) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name DEBUG> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<false>}) ) } spids: [143] ) ] ) (command.ShFunction name: setup body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:inet) op: assign_op.Equal rhs: {<true>} spids: [158] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<eval>} {($ Id.VSub_At '$@')})] spids: [163 176] ) ] ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {(${ Id.VSub_Name server)} {($ Id.VSub_DollarName '$SERVER')} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {(${ Id.VSub_Name server)} {($ Id.VSub_DollarName '$CLIENT')} ) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$SERVER')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<create>} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<linkstr>} {($ Id.VSub_DollarName '$BUS')} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<up>} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<create>} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$inet')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<inet>} {($ Id.VSub_DollarName '$SERVER_IP')} {($ Id.VSub_DollarName '$CLIENT_IP')} {<down>} ) ] ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<link0>} ) (command.AndOr ops: [Id.Op_DAmp] children: [(C {($ Id.VSub_DollarName '$DEBUG')}) (C {<rump.ifconfig>})] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$DEBUG')}) (C {($ Id.VSub_DollarName '$HIJACKING')} {<pppoectl>} {<-d>} {<pppoe0>}) ] ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} {(DQ ($ Id.VSub_DollarName '$HIJACKING') <' pppoectl -e shmif0 pppoe0'>)} ) (C {<unset>} {<RUMP_SERVER>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$CLIENT')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<create>} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<linkstr>} {($ Id.VSub_DollarName '$BUS')} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<up>} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<create>} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$inet')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<inet>} {<0.0.0.0>} {<0.0.0.1>} {<down>} ) ] ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} {(DQ ($ Id.VSub_DollarName '$HIJACKING') <' pppoectl -e shmif0 pppoe0'>)} ) (C {<unset>} {<RUMP_SERVER>}) ] ) ) (command.ShFunction name: cleanup body: (BraceGroup children: [ (C {<env>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$SERVER')} {<rump.halt>}) (C {<env>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$CLIENT')} {<rump.halt>}) ] ) ) (command.ShFunction name: wait_for_session_established body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'dontfail='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'n='> ($ Id.VSub_DollarName '$WAITTIME')}) (command.ForEach iter_names: [i] iterable: (for_iter.Words words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<seq>} {($ Id.VSub_DollarName '$n')}) ) } ] ) body: (command.DoGroup children: [ (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$HIJACKING')} {<pppoectl>} {<-d>} {<pppoe0>}) (C {<grep>} {<-q>} {(DQ <'state = session'>)}) ] negated: F ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> ) ] ) (C {<sleep>} {<1>}) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$dontfail'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <dontfail>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<atf_fail>} { (DQ <'Couldn\'t connect to the server for '> ($ Id.VSub_DollarName '$n') <' seconds.'> ) } ) ] spids: [598 616] ) ] ) ] ) ) (command.ShFunction name: wait_for_disconnected body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'dontfail='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'n='> ($ Id.VSub_DollarName '$WAITTIME')}) (command.ForEach iter_names: [i] iterable: (for_iter.Words words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<seq>} {($ Id.VSub_DollarName '$n')}) ) } ] ) body: (command.DoGroup children: [ (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$HIJACKING')} {<pppoectl>} {<-d>} {<pppoe0>}) (C {<grep>} {<-q>} {(DQ <'state = initial'>)}) ] negated: F ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> ) ] ) (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$HIJACKING')} {<pppoectl>} {<-d>} {<pppoe0>}) (C {<grep>} {<-q>} {(DQ <'state = PADI sent'>)}) ] negated: F ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> ) ] ) (C {<sleep>} {<1>}) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$dontfail'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <dontfail>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<atf_fail>} {(DQ <'Couldn\'t disconnect for '> ($ Id.VSub_DollarName '$n') <' seconds.'>)} ) ] spids: [759 777] ) ] ) ] ) ) (command.ShFunction name: run_test body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'auth='> ($ Id.VSub_Number '$1')}) (C {<setup>}) (C {<local>} {<Id.Lit_VarLike 'server_optparam='> (DQ )}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$auth')} {<Id.Lit_Equals '='>} {(DQ <chap>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:server_optparam) op: assign_op.Equal rhs: {(DQ <norechallenge>)} spids: [840] ) ] ) ] spids: [822 837] ) ] ) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$SERVER')}) (C {<local>} {<Id.Lit_VarLike 'setup_serverparam='> (DQ <'pppoectl pppoe0 hisauthproto='> ($ Id.VSub_DollarName '$auth') <' '> <'\t\t\t\t \'hisauthname='> ($ Id.VSub_DollarName '$AUTHNAME') <'\' '> <'\t\t\t\t \'hisauthsecret='> ($ Id.VSub_DollarName '$SECRET') <'\' '> <'\t\t\t\t \'myauthproto=none\' '> <'\t\t\t\t '> ($ Id.VSub_DollarName '$server_optparam') ) } ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} { (DQ ($ Id.VSub_DollarName '$HIJACKING') <' '> ($ Id.VSub_DollarName '$setup_serverparam') ) } ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<up>} ) (C {<unset>} {<RUMP_SERVER>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$CLIENT')}) (C {<local>} {<Id.Lit_VarLike 'setup_clientparam='> (DQ <'pppoectl pppoe0 myauthproto='> ($ Id.VSub_DollarName '$auth') <' '> <'\t\t\t\t \'myauthname='> ($ Id.VSub_DollarName '$AUTHNAME') <'\' '> <'\t\t\t\t \'myauthsecret='> ($ Id.VSub_DollarName '$SECRET') <'\' '> <'\t\t\t\t \'hisauthproto=none\''> ) } ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} { (DQ ($ Id.VSub_DollarName '$HIJACKING') <' '> ($ Id.VSub_DollarName '$setup_clientparam') ) } ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<up>} ) (command.AndOr ops: [Id.Op_DAmp] children: [(C {($ Id.VSub_DollarName '$DEBUG')}) (C {<rump.ifconfig>})] ) (C {<wait_for_session_established>}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.ping>} {<-c>} {<1>} {<-w>} {($ Id.VSub_DollarName '$TIMEOUT')} {($ Id.VSub_DollarName '$SERVER_IP')} ) (C {<unset>} {<RUMP_SERVER>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$SERVER')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<down>} ) (C {<wait_for_disconnected>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$CLIENT')}) (C {<wait_for_disconnected>}) (C {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<rump.ping>} {<-c>} {<1>} {<-w>} {($ Id.VSub_DollarName '$TIMEOUT')} {($ Id.VSub_DollarName '$SERVER_IP')} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <'PADI sent'>)} {<-x>} {(DQ ($ Id.VSub_DollarName '$HIJACKING') <' pppoectl -d pppoe0'>)} ) (C {<unset>} {<RUMP_SERVER>}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} { (DQ <'env RUMP_SERVER='> ($ Id.VSub_DollarName '$SERVER') <' rump.ifconfig pppoe0 up'>) } ) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$CLIENT')}) (C {<wait_for_session_established>}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.ping>} {<-c>} {<1>} {<-w>} {($ Id.VSub_DollarName '$TIMEOUT')} {($ Id.VSub_DollarName '$SERVER_IP')} ) (C {<unset>} {<RUMP_SERVER>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$CLIENT')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} {<rump.ifconfig>} {<pppoe0>} {<down>} ) (C {<wait_for_disconnected>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$SERVER')}) (C {<wait_for_disconnected>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$DEBUG')}) (C {($ Id.VSub_DollarName '$HIJACKING')} {<pppoectl>} {<-d>} {<pppoe0>}) ] ) (C {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<rump.ping>} {<-c>} {<1>} {<-w>} {($ Id.VSub_DollarName '$TIMEOUT')} {($ Id.VSub_DollarName '$CLIENT_IP')} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <initial>)} {<-x>} {(DQ ($ Id.VSub_DollarName '$HIJACKING') <' pppoectl -d pppoe0'>)} ) (C {<unset>} {<RUMP_SERVER>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$CLIENT')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} {<rump.ifconfig>} {<pppoe0>} {<up>} ) (C {<wait_for_session_established>}) (command.AndOr ops: [Id.Op_DAmp] children: [(C {($ Id.VSub_DollarName '$DEBUG')}) (C {<rump.ifconfig>} {<pppoe0>})] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$DEBUG')}) (C {($ Id.VSub_DollarName '$HIJACKING')} {<pppoectl>} {<-d>} {<pppoe0>}) ] ) (C {<unset>} {<RUMP_SERVER>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$SERVER')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<-w>} {<10>} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.ping>} {<-c>} {<1>} {<-w>} {($ Id.VSub_DollarName '$TIMEOUT')} {($ Id.VSub_DollarName '$CLIENT_IP')} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <session>)} {<-x>} {(DQ ($ Id.VSub_DollarName '$HIJACKING') <' pppoectl -d pppoe0'>)} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$DEBUG')}) (C {<HIJACKING>} {<pppoectl>} {<-d>} {<pppoe0>}) ] ) (C {<unset>} {<RUMP_SERVER>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$CLIENT')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<down>} ) (C {<wait_for_disconnected>}) (C {<local>} {<Id.Lit_VarLike 'setup_clientparam='> (DQ <'pppoectl pppoe0 myauthproto='> ($ Id.VSub_DollarName '$auth') <' '> <'\t\t\t\t \'myauthname='> ($ Id.VSub_DollarName '$AUTHNAME') <'\' '> <'\t\t\t\t \'myauthsecret=invalidsecret\' '> <'\t\t\t\t \'hisauthproto=none\''> ) } ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} { (DQ ($ Id.VSub_DollarName '$HIJACKING') <' '> ($ Id.VSub_DollarName '$setup_clientparam') ) } ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<up>} ) (C {<wait_for_session_established>} {<dontfail>}) (C {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<rump.ping>} {<-c>} {<1>} {<-w>} {($ Id.VSub_DollarName '$TIMEOUT')} {($ Id.VSub_DollarName '$SERVER_IP')} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <DETACHED>)} {<rump.ifconfig>} {<pppoe0>} ) (C {<unset>} {<RUMP_SERVER>}) ] ) ) (C {<atf_test_case>} {<pppoe_pap>} {<cleanup>}) (command.ShFunction name: pppoe_pap_head body: (BraceGroup children: [ (C {<atf_set>} {(DQ <descr>)} {(DQ <'Does simple pap tests'>)}) (C {<atf_set>} {(DQ <require.progs>)} {(DQ <'rump_server pppoectl'>)}) ] ) ) (command.ShFunction name:pppoe_pap_body body:(BraceGroup children:[(C {<run_test>} {<pap>})])) (command.ShFunction name:pppoe_pap_cleanup body:(BraceGroup children:[(C {<cleanup>})])) (C {<atf_test_case>} {<pppoe_chap>} {<cleanup>}) (command.ShFunction name: pppoe_chap_head body: (BraceGroup children: [ (C {<atf_set>} {(DQ <descr>)} {(DQ <'Does simple chap tests'>)}) (C {<atf_set>} {(DQ <require.progs>)} {(DQ <'rump_server pppoectl'>)}) ] ) ) (command.ShFunction name: pppoe_chap_body body: (BraceGroup children:[(C {<run_test>} {<chap>})]) ) (command.ShFunction name:pppoe_chap_cleanup body:(BraceGroup children:[(C {<cleanup>})])) (command.ShFunction name: run_test6 body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'auth='> ($ Id.VSub_Number '$1')}) (C {<setup>} {(DQ <'inet=false'>)}) (C {<local>} {<Id.Lit_VarLike 'server_optparam='> (DQ )}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$auth')} {<Id.Lit_Equals '='>} {(DQ <chap>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:server_optparam) op: assign_op.Equal rhs: {(DQ <norechallenge>)} spids: [1755] ) ] ) ] spids: [1737 1752] ) ] ) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$SERVER')}) (C {<local>} {<Id.Lit_VarLike 'setup_serverparam='> (DQ <'pppoectl pppoe0 hisauthproto='> ($ Id.VSub_DollarName '$auth') <' '> <'\t\t\t\t \'hisauthname='> ($ Id.VSub_DollarName '$AUTHNAME') <'\' '> <'\t\t\t\t \'hisauthsecret='> ($ Id.VSub_DollarName '$SECRET') <'\' '> <'\t\t\t\t \'myauthproto=none\' '> <'\t\t\t\t '> ($ Id.VSub_DollarName '$server_optparam') ) } ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} { (DQ ($ Id.VSub_DollarName '$HIJACKING') <' '> ($ Id.VSub_DollarName '$setup_serverparam') ) } ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<inet6>} {($ Id.VSub_DollarName '$SERVER_IP6') <'/64'>} {<down>} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<up>} ) (C {<unset>} {<RUMP_SERVER>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$CLIENT')}) (C {<local>} {<Id.Lit_VarLike 'setup_clientparam='> (DQ <'pppoectl pppoe0 myauthproto='> ($ Id.VSub_DollarName '$auth') <' '> <'\t\t\t\t \'myauthname='> ($ Id.VSub_DollarName '$AUTHNAME') <'\' '> <'\t\t\t\t \'myauthsecret='> ($ Id.VSub_DollarName '$SECRET') <'\' '> <'\t\t\t\t \'hisauthproto=none\''> ) } ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} { (DQ ($ Id.VSub_DollarName '$HIJACKING') <' '> ($ Id.VSub_DollarName '$setup_clientparam') ) } ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<inet6>} {($ Id.VSub_DollarName '$CLIENT_IP6') <'/64'>} {<down>} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<up>} ) (command.AndOr ops: [Id.Op_DAmp] children: [(C {($ Id.VSub_DollarName '$DEBUG')}) (C {<rump.ifconfig>})] ) (C {<wait_for_session_established>}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.ifconfig>} {<-w>} {<10>} ) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$SERVER')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.ifconfig>} {<-w>} {<10>} ) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$CLIENT')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.ping6>} {<-c>} {<1>} {<-X>} {($ Id.VSub_DollarName '$TIMEOUT')} {($ Id.VSub_DollarName '$SERVER_IP6')} ) (C {<unset>} {<RUMP_SERVER>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$SERVER')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:session_id) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$HIJACKING')} {<pppoectl>} {<-d>} {<pppoe0>}) (C {<grep>} {<state>}) ] negated: F ) ) } spids: [2031] ) ] ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<down>} ) (C {<wait_for_disconnected>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$CLIENT')}) (C {<wait_for_disconnected>}) (C {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<rump.ping6>} {<-c>} {<1>} {<-X>} {($ Id.VSub_DollarName '$TIMEOUT')} {($ Id.VSub_DollarName '$SERVER_IP6')} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<not-match> <Id.Lit_Colon ':'> (DQ ($ Id.VSub_DollarName '$session_id'))} {<-x>} {(DQ ($ Id.VSub_DollarName '$HIJACKING') <' pppoectl -d pppoe0'>)} ) (C {<unset>} {<RUMP_SERVER>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$SERVER')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<up>} ) (C {<wait_for_session_established>}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<-w>} {<10>} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$DEBUG')}) (C {($ Id.VSub_DollarName '$HIJACKING')} {<pppoectl>} {<-d>} {<pppoe0>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [(C {($ Id.VSub_DollarName '$DEBUG')}) (C {<rump.ifconfig>} {<pppoe0>})] ) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$CLIENT')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.ifconfig>} {<-w>} {<10>} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.ping6>} {<-c>} {<1>} {<-X>} {($ Id.VSub_DollarName '$TIMEOUT')} {($ Id.VSub_DollarName '$SERVER_IP6')} ) (C {<unset>} {<RUMP_SERVER>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$CLIENT')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<down>} ) (C {<wait_for_disconnected>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$SERVER')}) (C {<wait_for_disconnected>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$DEBUG')}) (C {($ Id.VSub_DollarName '$HIJACKING')} {<pppoectl>} {<-d>} {<pppoe0>}) ] ) (C {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<rump.ping6>} {<-c>} {<1>} {<-X>} {($ Id.VSub_DollarName '$TIMEOUT')} {($ Id.VSub_DollarName '$CLIENT_IP6')} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <initial>)} {<-x>} {(DQ ($ Id.VSub_DollarName '$HIJACKING') <' pppoectl -d pppoe0'>)} ) (C {<unset>} {<RUMP_SERVER>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$CLIENT')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<up>} ) (C {<wait_for_session_established>}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<-w>} {<10>} ) (command.AndOr ops: [Id.Op_DAmp] children: [(C {($ Id.VSub_DollarName '$DEBUG')}) (C {<rump.ifconfig>} {<pppoe0>})] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$DEBUG')}) (C {($ Id.VSub_DollarName '$HIJACKING')} {<pppoectl>} {<-d>} {<pppoe0>}) ] ) (C {<unset>} {<RUMP_SERVER>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$SERVER')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<-w>} {<10>} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.ping6>} {<-c>} {<1>} {<-X>} {($ Id.VSub_DollarName '$TIMEOUT')} {($ Id.VSub_DollarName '$CLIENT_IP6')} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <session>)} {<-x>} {(DQ ($ Id.VSub_DollarName '$HIJACKING') <' pppoectl -d pppoe0'>)} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$DEBUG')}) (C {<HIJACKING>} {<pppoectl>} {<-d>} {<pppoe0>}) ] ) (C {<unset>} {<RUMP_SERVER>}) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName '$CLIENT')}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<down>} ) (C {<wait_for_disconnected>}) (C {<local>} {<Id.Lit_VarLike 'setup_clientparam='> (DQ <'pppoectl pppoe0 myauthproto='> ($ Id.VSub_DollarName '$auth') <' '> <'\t\t\t\t \'myauthname='> ($ Id.VSub_DollarName '$AUTHNAME') <'\' '> <'\t\t\t\t \'myauthsecret=invalidsecret\' '> <'\t\t\t\t \'hisauthproto=none\''> ) } ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} { (DQ ($ Id.VSub_DollarName '$HIJACKING') <' '> ($ Id.VSub_DollarName '$setup_clientparam') ) } ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<pppoe0>} {<up>} ) (C {<wait_for_session_established>} {<dontfail>}) (C {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<rump.ping6>} {<-c>} {<1>} {<-X>} {($ Id.VSub_DollarName '$TIMEOUT')} {($ Id.VSub_DollarName '$SERVER_IP6')} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <DETACHED>)} {<rump.ifconfig>} {<pppoe0>} ) (C {<unset>} {<RUMP_SERVER>}) ] ) ) (C {<atf_test_case>} {<pppoe6_pap>} {<cleanup>}) (command.ShFunction name: pppoe6_pap_head body: (BraceGroup children: [ (C {<atf_set>} {(DQ <descr>)} {(DQ <'Does simple pap using IPv6 tests'>)}) (C {<atf_set>} {(DQ <require.progs>)} {(DQ <'rump_server pppoectl'>)}) ] ) ) (command.ShFunction name: pppoe6_pap_body body: (BraceGroup children:[(C {<run_test6>} {<pap>})]) ) (command.ShFunction name:pppoe6_pap_cleanup body:(BraceGroup children:[(C {<cleanup>})])) (C {<atf_test_case>} {<pppoe6_chap>} {<cleanup>}) (command.ShFunction name: pppoe6_chap_head body: (BraceGroup children: [ (C {<atf_set>} {(DQ <descr>)} {(DQ <'Does simple chap using IPv6 tests'>)}) (C {<atf_set>} {(DQ <require.progs>)} {(DQ <'rump_server pppoectl'>)}) ] ) ) (command.ShFunction name: pppoe6_chap_body body: (BraceGroup children:[(C {<run_test6>} {<chap>})]) ) (command.ShFunction name:pppoe6_chap_cleanup body:(BraceGroup children:[(C {<cleanup>})])) (command.ShFunction name: atf_init_test_cases body: (BraceGroup children: [ (C {<atf_add_test_case>} {<pppoe_pap>}) (C {<atf_add_test_case>} {<pppoe_chap>}) (C {<atf_add_test_case>} {<pppoe6_pap>}) (C {<atf_add_test_case>} {<pppoe6_chap>}) ] ) ) ] )