View | Details | Raw Unified | Return to bug 1570 | Differences between
and this patch

Collapse All | Expand All

(-)clientloop.c (-5 / +7 lines)
Lines 1838-1852 client_input_channel_req(int type, u_int Link Here
1838
		chan_rcvd_eow(c);
1838
		chan_rcvd_eow(c);
1839
	} else if (strcmp(rtype, "exit-status") == 0) {
1839
	} else if (strcmp(rtype, "exit-status") == 0) {
1840
		exitval = packet_get_int();
1840
		exitval = packet_get_int();
1841
		if (id == session_ident) {
1841
		if (c->ctl_fd != -1) {
1842
			/* Dispatch to mux client */
1843
			atomicio(vwrite, c->ctl_fd, &exitval, sizeof(exitval));
1844
			success = 1;
1845
		} else if (id == session_ident) {
1846
			/* Record exit value of local session */
1842
			success = 1;
1847
			success = 1;
1843
			exit_status = exitval;
1848
			exit_status = exitval;
1844
		} else if (c->ctl_fd == -1) {
1849
		} else {
1845
			error("client_input_channel_req: unexpected channel %d",
1850
			error("client_input_channel_req: unexpected channel %d",
1846
			    session_ident);
1851
			    session_ident);
1847
		} else {
1848
			atomicio(vwrite, c->ctl_fd, &exitval, sizeof(exitval));
1849
			success = 1;
1850
		}
1852
		}
1851
		packet_check_eom();
1853
		packet_check_eom();
1852
	}
1854
	}

Return to bug 1570