version 1.530, 2020/06/26 05:02:03 |
version 1.531, 2020/07/05 23:59:45 |
|
|
|
|
/* |
/* |
* Flag indicating that the current process should be backgrounded and |
* Flag indicating that the current process should be backgrounded and |
* a new slave launched in the foreground for ControlPersist. |
* a new mux-client launched in the foreground for ControlPersist. |
*/ |
*/ |
int need_controlpersist_detach = 0; |
int need_controlpersist_detach = 0; |
|
|
/* Copies of flags for ControlPersist foreground slave */ |
/* Copies of flags for ControlPersist foreground mux-client */ |
int ostdin_null_flag, ono_shell_flag, otty_flag, orequest_tty; |
int ostdin_null_flag, ono_shell_flag, otty_flag, orequest_tty; |
|
|
/* |
/* |
|
|
/* Child: master process continues mainloop */ |
/* Child: master process continues mainloop */ |
break; |
break; |
default: |
default: |
/* Parent: set up mux slave to connect to backgrounded master */ |
/* Parent: set up mux client to connect to backgrounded master */ |
debug2("%s: background process is %ld", __func__, (long)pid); |
debug2("%s: background process is %ld", __func__, (long)pid); |
stdin_null_flag = ostdin_null_flag; |
stdin_null_flag = ostdin_null_flag; |
options.request_tty = orequest_tty; |
options.request_tty = orequest_tty; |
|
|
/* |
/* |
* If we are in control persist mode and have a working mux listen |
* If we are in control persist mode and have a working mux listen |
* socket, then prepare to background ourselves and have a foreground |
* socket, then prepare to background ourselves and have a foreground |
* client attach as a control slave. |
* client attach as a control client. |
* NB. we must save copies of the flags that we override for |
* NB. we must save copies of the flags that we override for |
* the backgrounding, since we defer attachment of the slave until |
* the backgrounding, since we defer attachment of the client until |
* after the connection is fully established (in particular, |
* after the connection is fully established (in particular, |
* async rfwd replies have been received for ExitOnForwardFailure). |
* async rfwd replies have been received for ExitOnForwardFailure). |
*/ |
*/ |