(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tid) op: Equal rhs: {(DQ ('sshd_config match'))} spids: [7] ) ] spids: [7] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pidfile) op: Equal rhs: {($ VSub_Name '$OBJ') (/remote_pid)} spids: [13] ) ] spids: [13] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fwdport) op:Equal rhs:{(3301)} spids:[17])] spids: [17] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:fwd) op: Equal rhs: {(DQ ('-L ') ($ VSub_Name '$fwdport') (':127.0.0.1:') ($ VSub_Name '$PORT'))} spids: [20] ) ] spids: [20] ) (SimpleCommand words: [{(echo)} {(DQ ('ExitOnForwardFailure=yes'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/ssh_config)} spids: [35] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ('ExitOnForwardFailure=yes'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/ssh_proxy)} spids: [46] ) ] ) (FuncDef name: start_client body: (BraceGroup children: [ (C {(rm)} {(-f)} {($ VSub_Name '$pidfile')}) (Sentence child: (SimpleCommand words: [ {(${ VSub_Name SSH)} {(-q)} {(-) ($ VSub_Name '$p')} {($ VSub_Name '$fwd')} {(DQ ($ VSub_At '$@'))} {(somehost)} {(exec)} {(sh)} {(-c)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\'">) (DQ ('echo ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (' > ') ($ VSub_Name '$pidfile') ('; exec sleep 100') ) (EscapedLiteralPart token:<Lit_EscapedChar "\\'">) } ] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$TEST_REGRESS_LOGFILE')} spids: [104] ) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[107]) ] ) terminator: <Op_Amp '&'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:client_pid) op: Equal rhs: {($ VSub_Bang '$!')} spids: [113] ) ] spids: [113] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:n) op:Equal rhs:{(0)} spids:[121])] spids: [121] ) (While cond: [ (Sentence child: (C {(test)} {(KW_Bang '!')} {(-f)} {($ VSub_Name '$pidfile')}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (C {(sleep)} {(1)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:n) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {($ VSub_Name '$n')} {(Lit_Other '+')} {(1)}) ] ) left_token: <Left_Backtick '`'> spids: [146 154] ) } spids: [145] ) ] spids: [145] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {($ VSub_Name '$n')} {(-gt)} {(60)}) terminator: <Op_Semi ';'> ) ] action: [ (C {(kill)} {($ VSub_Name '$client_pid')}) (C {(fatal)} {(DQ ('timeout waiting for background ssh'))}) ] spids: [16777215 168] ) ] spids: [16777215 183] ) ] spids: [137 186] ) ) ] spids: [56] ) spids: [52 55] ) (FuncDef name: stop_client body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pid) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(cat)} {($ VSub_Name '$pidfile')})]) left_token: <Left_Backtick '`'> spids: [200 204] ) } spids: [199] ) ] spids: [199] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ ($ VSub_Name '$pid'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(kill)} {($ VSub_Name '$pid')})] spids: [16777215 222] ) ] spids: [16777215 230] ) (C {(wait)}) ] spids: [196] ) spids: [192 195] ) (C {(cp)} {($ VSub_Name '$OBJ') (/sshd_proxy)} {($ VSub_Name '$OBJ') (/sshd_proxy_bak)}) (SimpleCommand words: [{(echo)} {(DQ ('PermitOpen 127.0.0.1:1'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_config)} spids: [252] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ('Match Address 127.0.0.1'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_config)} spids: [262] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ('PermitOpen 127.0.0.1:') ($ VSub_Name '$PORT'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_config)} spids: [273] ) ] ) (SimpleCommand words: [{(grep)} {(-v)} {(AuthorizedKeysFile)} {($ VSub_Name '$OBJ') (/sshd_proxy_bak)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)} spids: [287] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ('AuthorizedKeysFile /dev/null'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)} spids: [298] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ('PermitOpen 127.0.0.1:1'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)} spids: [308] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ('Match user ') ($ VSub_Name '$USER'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)} spids: [319] ) ] ) (SimpleCommand words: [ {(echo)} {(DQ ('AuthorizedKeysFile /dev/null ') ($ VSub_Name '$OBJ') ('/authorized_keys_%u'))} ] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)} spids: [331] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ('Match Address 127.0.0.1'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)} spids: [341] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ('PermitOpen 127.0.0.1:') ($ VSub_Name '$PORT'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)} spids: [352] ) ] ) (C {(start_sshd)}) (ForEach iter_name: p iter_words: [{(${ VSub_Name SSH_PROTOCOLS)}] do_arg_iter: False body: (DoGroup children: [ (C {(trace)} {(DQ ('match permitopen localhost proto ') ($ VSub_Name '$p'))}) (C {(start_client)} {(-F)} {($ VSub_Name '$OBJ') (/ssh_config)}) (AndOr children: [ (C {(${ VSub_Name SSH)} {(-q)} {(-) ($ VSub_Name '$p')} {(-p)} {($ VSub_Name '$fwdport')} {(-F)} {($ VSub_Name '$OBJ') (/ssh_config)} {(somehost)} {(true)} ) (C {(fail)} {(DQ ('match permitopen permit proto ') ($ VSub_Name '$p'))}) ] op_id: Op_DPipe ) (C {(stop_client)}) ] spids: [378 433] ) spids: [372 376] ) (ForEach iter_name: p iter_words: [{(${ VSub_Name SSH_PROTOCOLS)}] do_arg_iter: False body: (DoGroup children: [ (C {(trace)} {(DQ ('match permitopen proxy proto ') ($ VSub_Name '$p'))}) (C {(start_client)} {(-F)} {($ VSub_Name '$OBJ') (/ssh_proxy)}) (AndOr children: [ (C {(${ VSub_Name SSH)} {(-q)} {(-) ($ VSub_Name '$p')} {(-p)} {($ VSub_Name '$fwdport')} {(-F)} {($ VSub_Name '$OBJ') (/ssh_config)} {(somehost)} {(true)} ) (C {(fail)} {(DQ ('match permitopen deny proto ') ($ VSub_Name '$p'))}) ] op_id: Op_DAmp ) (C {(stop_client)}) ] spids: [450 505] ) spids: [444 448] ) (C {(cp)} {(/dev/null)} {($ VSub_Name '$OBJ') (/authorized_keys_) ($ VSub_Name '$USER')}) (ForEach iter_name: t iter_words: [{(${ VSub_Name SSH_KEYTYPES)}] do_arg_iter: False body: (DoGroup children: [ (SimpleCommand words: [{(printf)} {(SQ <'permitopen="127.0.0.1:'>) ($ VSub_Name '$PORT') (SQ <'" '>)}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/authorized_keys_) ($ VSub_Name '$USER')} spids: [543] ) ] ) (SimpleCommand words: [{(cat)} {($ VSub_Name '$OBJ') (/) ($ VSub_Name '$t') (.pub)}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/authorized_keys_) ($ VSub_Name '$USER')} spids: [557] ) ] ) ] spids: [530 563] ) spids: [524 528] ) (ForEach iter_name: p iter_words: [{(${ VSub_Name SSH_PROTOCOLS)}] do_arg_iter: False body: (DoGroup children: [ (C {(trace)} {(DQ ('match permitopen proxy w/key opts proto ') ($ VSub_Name '$p'))}) (C {(start_client)} {(-F)} {($ VSub_Name '$OBJ') (/ssh_proxy)}) (AndOr children: [ (C {(${ VSub_Name SSH)} {(-q)} {(-) ($ VSub_Name '$p')} {(-p)} {($ VSub_Name '$fwdport')} {(-F)} {($ VSub_Name '$OBJ') (/ssh_config)} {(somehost)} {(true)} ) (C {(fail)} {(DQ ('match permitopen deny w/key opt proto ') ($ VSub_Name '$p'))}) ] op_id: Op_DAmp ) (C {(stop_client)}) ] spids: [576 631] ) spids: [570 574] ) (ForEach iter_name: p iter_words: [{(${ VSub_Name SSH_PROTOCOLS)}] do_arg_iter: False body: (DoGroup children: [ (C {(trace)} {(DQ ('match permitopen localhost proto ') ($ VSub_Name '$p'))}) (C {(start_client)} {(-F)} {($ VSub_Name '$OBJ') (/ssh_config)}) (AndOr children: [ (C {(${ VSub_Name SSH)} {(-q)} {(-) ($ VSub_Name '$p')} {(-p)} {($ VSub_Name '$fwdport')} {(-F)} {($ VSub_Name '$OBJ') (/ssh_config)} {(somehost)} {(true)} ) (C {(fail)} {(DQ ('match permitopen permit proto ') ($ VSub_Name '$p'))}) ] op_id: Op_DPipe ) (C {(stop_client)}) ] spids: [651 706] ) spids: [645 649] ) (C {(cp)} {($ VSub_Name '$OBJ') (/sshd_proxy_bak)} {($ VSub_Name '$OBJ') (/sshd_proxy)}) (SimpleCommand words: [ {(echo)} {(DQ ('PermitOpen 127.0.0.1:1 127.0.0.1:') ($ VSub_Name '$PORT') (' 127.0.0.2:2'))} ] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)} spids: [725] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ('Match User ') ($ VSub_Name '$USER'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)} spids: [736] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ('PermitOpen 127.0.0.1:1 127.0.0.1:2'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)} spids: [746] ) ] ) (ForEach iter_name: p iter_words: [{(${ VSub_Name SSH_PROTOCOLS)}] do_arg_iter: False body: (DoGroup children: [ (C {(trace)} {(DQ ('match permitopen proxy w/key opts proto ') ($ VSub_Name '$p'))}) (C {(start_client)} {(-F)} {($ VSub_Name '$OBJ') (/ssh_proxy)}) (AndOr children: [ (C {(${ VSub_Name SSH)} {(-q)} {(-) ($ VSub_Name '$p')} {(-p)} {($ VSub_Name '$fwdport')} {(-F)} {($ VSub_Name '$OBJ') (/ssh_config)} {(somehost)} {(true)} ) (C {(fail)} {(DQ ('match override permitopen proto ') ($ VSub_Name '$p'))}) ] op_id: Op_DAmp ) (C {(stop_client)}) ] spids: [765 820] ) spids: [759 763] ) (C {(cp)} {($ VSub_Name '$OBJ') (/sshd_proxy_bak)} {($ VSub_Name '$OBJ') (/sshd_proxy)}) (SimpleCommand words: [ {(echo)} {(DQ ('PermitOpen 127.0.0.1:1 127.0.0.1:') ($ VSub_Name '$PORT') (' 127.0.0.2:2'))} ] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)} spids: [839] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ('Match User NoSuchUser'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)} spids: [849] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ('PermitOpen 127.0.0.1:1 127.0.0.1:2'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)} spids: [859] ) ] ) (ForEach iter_name: p iter_words: [{(${ VSub_Name SSH_PROTOCOLS)}] do_arg_iter: False body: (DoGroup children: [ (C {(trace)} {(DQ ('nomatch permitopen proxy w/key opts proto ') ($ VSub_Name '$p'))}) (C {(start_client)} {(-F)} {($ VSub_Name '$OBJ') (/ssh_proxy)}) (AndOr children: [ (C {(${ VSub_Name SSH)} {(-q)} {(-) ($ VSub_Name '$p')} {(-p)} {($ VSub_Name '$fwdport')} {(-F)} {($ VSub_Name '$OBJ') (/ssh_config)} {(somehost)} {(true)} ) (C {(fail)} {(DQ ('nomatch override permitopen proto ') ($ VSub_Name '$p'))}) ] op_id: Op_DPipe ) (C {(stop_client)}) ] spids: [881 936] ) spids: [875 879] ) ] )