(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tid) op: assign_op.Equal rhs: {(DQ <'simple connect after reconfigure'>)} spids: [7] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<test>} {(DQ <x> ($ Id.VSub_DollarName '$USE_VALGRIND'))} {<Id.Lit_Equals '='>} {(DQ <x>)} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {($ Id.VSub_DollarName '$SSHD')} arms: [ (case_arm pat_list:[{<'/'> <Id.Lit_Star '*'>}] spids:[43 45 52 -1]) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SSHD) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$SSHD')} spids: [63] ) ] ) ] spids: [55 56 -1 69] ) ] ) ] spids: [16 33] ) ] ) (C {<start_sshd>}) (C {<trace>} {(DQ <'connect before restart'>)}) (command.ForEach iter_name: p iter_words: [{(${ Id.VSub_Name SSH_PROTOCOLS)}] do_arg_iter: F body: (command.DoGroup children: [ (C {(${ Id.VSub_Name SSH)} {<-o>} {(DQ <'Protocol='> ($ Id.VSub_DollarName '$p'))} {<-F>} {($ Id.VSub_DollarName '$OBJ') <'/ssh_config'>} {<somehost>} {<true>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<fail>} { (DQ <'ssh connect with protocol '> ($ Id.VSub_DollarName '$p') <' failed before reconfigure'> ) } ) ] spids: [119 132] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PID) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName '$SUDO')} {<cat>} {($ Id.VSub_DollarName '$PIDFILE')}) ) } spids: [149] ) ] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$PIDFILE')}) (C {($ Id.VSub_DollarName '$SUDO')} {<kill>} {<-HUP>} {($ Id.VSub_DollarName '$PID')}) (C {<trace>} {(DQ <'wait for sshd to restart'>)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:i) op: assign_op.Equal rhs: {<0>} spids: [181] ) ] ) terminator: <Id.Op_Semi _> ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {($ Id.VSub_DollarName '$PIDFILE')} {<-a>} {($ Id.VSub_DollarName '$i')} {<-lt>} {<10>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:i) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$i')} {<Id.Lit_Other '+'>} {<1>}) ) } spids: [209] ) ] ) (C {<sleep>} {($ Id.VSub_DollarName '$i')}) ] ) ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$PIDFILE')}) (C {<fatal>} {(DQ <'sshd did not restart'>)}) ] ) (C {<trace>} {(DQ <'connect after restart'>)}) (command.ForEach iter_name: p iter_words: [{(${ Id.VSub_Name SSH_PROTOCOLS)}] do_arg_iter: F body: (command.DoGroup children: [ (C {(${ Id.VSub_Name SSH)} {<-o>} {(DQ <'Protocol='> ($ Id.VSub_DollarName '$p'))} {<-F>} {($ Id.VSub_DollarName '$OBJ') <'/ssh_config'>} {<somehost>} {<true>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<fail>} { (DQ <'ssh connect with protocol '> ($ Id.VSub_DollarName '$p') <' failed after reconfigure'> ) } ) ] spids: [287 300] ) ] ) ] ) ) ] )