-
-
Save yury/4875a9f86ea29c072e6ac340e8e67bcd to your computer and use it in GitHub Desktop.
connectors
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- (void)connect:(ssh_channel)channel withFdIn:(dispatch_fd_t)fdIn fdOut:(dispatch_fd_t)fdOut fdErr:(dispatch_fd_t)fdErr { | |
_name = @"stdio"; | |
_channel = channel; | |
ssh_session session = ssh_channel_get_session(_channel); | |
// stdin | |
_connector_in = ssh_connector_new(session); | |
ssh_connector_set_in_fd(_connector_in, dup(fdIn)); | |
ssh_connector_set_out_channel(_connector_in, _channel, SSH_CONNECTOR_STDOUT); | |
// stdout | |
_connector_out = ssh_connector_new(session); | |
ssh_connector_set_in_channel(_connector_out, _channel, SSH_CONNECTOR_STDOUT); | |
ssh_connector_set_out_fd(_connector_out,dup(fdOut)); | |
// stderr | |
_connector_err = ssh_connector_new(session); | |
ssh_connector_set_in_channel(_connector_err, _channel, SSH_CONNECTOR_STDERR); | |
ssh_connector_set_out_fd(_connector_err, dup(fdErr)); | |
_cb = calloc(1, sizeof(struct ssh_channel_callbacks_struct)); | |
_cb->userdata = (__bridge void *)self; | |
_cb->channel_eof_function = __channel_eof_cb; | |
_cb->channel_close_function = __channel_close_cb; | |
_cb->channel_exit_status_function = __channel_exit_status_cb; | |
ssh_callbacks_init(_cb); | |
ssh_add_channel_callbacks(channel, _cb); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment