summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2015-08-09 21:26:38 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2015-08-09 21:26:38 +0200
commitba9a45a69c3b508abc65bf4e4aff9ad03e57e4d0 (patch)
tree336b0f5e665d066b393bf86901ac2830bccb261b
parentefd7d7f190eed501debf11dc9f0337ccf52e89ba (diff)
downloadcssh-ba9a45a69c3b508abc65bf4e4aff9ad03e57e4d0.tar.gz
cssh-ba9a45a69c3b508abc65bf4e4aff9ad03e57e4d0.tar.bz2
accepting command to execute now as parameters
-rw-r--r--src/cssh.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/cssh.c b/src/cssh.c
index d8dbc23..86e148f 100644
--- a/src/cssh.c
+++ b/src/cssh.c
@@ -297,8 +297,26 @@ int main( int argc, char *argv[] )
ssh_free( session );
exit( EXIT_FAILURE );
}
-
- rc = ssh_channel_request_exec( channel, "ps -alef" );
+
+ char cmd[1024];
+ cmd[0] = '\0';
+ if( args_info.inputs_num > 1 ) {
+ for( int i = 1; i < args_info.inputs_num; i++ ) {
+ if( i != 1 ) {
+ strncat( cmd, " ", sizeof( cmd ) - strlen( cmd ) - 1 );
+ }
+ strncat( cmd, args_info.inputs[i], sizeof( cmd ) - strlen( cmd ) - 1 );
+ }
+ }
+ if( cmd[0] == '\0' ) {
+ fprintf( stderr, "ERROR: Empty command, no interactive CLI supported currently\n" );
+ ssh_channel_free( channel );
+ ssh_disconnect( session );
+ ssh_free( session );
+ exit( EXIT_FAILURE );
+ }
+
+ rc = ssh_channel_request_exec( channel, cmd );
if( rc != SSH_OK ) {
ssh_channel_close( channel );
ssh_channel_free( channel );