diff options
Diffstat (limited to 'src/cssh.c')
-rw-r--r-- | src/cssh.c | 13 |
1 files changed, 9 insertions, 4 deletions
@@ -510,7 +510,7 @@ static const char *buffer_contains_a_line( const char *buffer, size_t bufsize ) return NULL; } -static ssize_t output_buffer( FILE *f, const char *host, const char *buffer, const size_t bufsize, const bool tagging ) +static ssize_t output_buffer( FILE *f, const char *host, const unsigned short port, const char *buffer, const size_t bufsize, const bool tagging ) { const char *b = buffer; size_t bsize = bufsize; @@ -518,7 +518,12 @@ static ssize_t output_buffer( FILE *f, const char *host, const char *buffer, con const char *p; while( ( b < buffer + bufsize ) && ( p = buffer_contains_a_line( b, bsize ) ) != NULL) { if( tagging ) { - fprintf( f, "[%s]: ", host ); fflush( f ); + if( port != 22 ) { + fprintf( f, "[%s:%d]: ", host, port ); + } else { + fprintf( f, "[%s]: ", host ); + } + fflush( f ); } ssize_t n = p - b; @@ -1038,7 +1043,7 @@ int main( int argc, char *argv[] ) } if( nread > 0 ) { - ssize_t wrc = output_buffer( stdout, host[i], ssh_data[i].stdout_buf, nread + ( ssh_data[i].stdout_bptr - ssh_data[i].stdout_buf ), args_info.tagging_given ); + ssize_t wrc = output_buffer( stdout, host[i], port[i], ssh_data[i].stdout_buf, nread + ( ssh_data[i].stdout_bptr - ssh_data[i].stdout_buf ), args_info.tagging_given ); if( wrc < 0 ) { fprintf( stderr, "ERROR: while writing to stdout: %s\n", strerror( errno ) ); @@ -1070,7 +1075,7 @@ int main( int argc, char *argv[] ) } if( nread > 0 ) { - ssize_t wrc = output_buffer( stderr, host[i], ssh_data[i].stderr_buf, nread + ( ssh_data[i].stderr_bptr - ssh_data[i].stderr_buf ), args_info.tagging_given ); + ssize_t wrc = output_buffer( stderr, host[i], port[i], ssh_data[i].stderr_buf, nread + ( ssh_data[i].stderr_bptr - ssh_data[i].stderr_buf ), args_info.tagging_given ); if( wrc < 0 ) { fprintf( stderr, "ERROR: while writting to stderr: %s\n", strerror( errno ) ); |