[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Fwd: Optimization of log levels - libSSH
[Thread Prev] | [Thread Next]
- Subject: Fwd: Optimization of log levels - libSSH
- From: Gangadhar Sandrani <gangadhar.sandrani@xxxxxxxxx>
- Reply-to: libssh@xxxxxxxxxx
- Date: Wed, 16 Apr 2014 17:18:47 +0530
- To: libssh@xxxxxxxxxx
Hi All, We have registered callbacks for fetching the debug/trace from libssh in our server side interface code, and for configuring the log level we use the API ssh_set_log_level(SSH_LOG_LEVEL). When the log level is set to 1 and 2 we observe all the warnings and protocol information would be displayed. But we observe that lot of trace messages are being logged from libSSH stack even for a simple SSH session login and immediate exit and also for execution of commands in SSH session. In order to restrict lot of trace messages from being logged for log levels 1 and 2, I have identified few and unimportant trace messages in the libSSH code and moved them to higher log level i.e., 3 which usually logs packet level information. Please find attached patch "libssh_log_optimization_patch" and please let me know whether the changes are fine and can be accepted. Please find comparison between the no of trace messages logged for log levels 1 and 2 for a simple SSH session login and immediate exit i.e., before and after applying the patch which is clearly shown in "libsshlogging-before_applying_patch" and "libsshlogging-after_applying_patch". Regards, Gangadhar S
When SSH_LOG_LEVEL is set to SSH_LOG_WARNING(1), Below are the debug traces from libSSH stack during simple SSH login and immediate exit of the session. 1970-01-01 00:01:43.021 ssh_analyze_banner: Analyzing banner: SSH-2.0-OpenSSH_5.3 1970-01-01 00:01:43.021 ssh_analyze_banner: We are talking to an OpenSSH client version: 5.3 (50300) 1970-01-01 00:01:45.921 channel_write_common: channel_write wrote 60 bytes 1970-01-01 00:01:46.635 channel_default_bufferize: placing 1 bytes into channel buffer (stderr=0) 1970-01-01 00:01:46.748 channel_default_bufferize: placing 1 bytes into channel buffer (stderr=0) 1970-01-01 00:01:46.749 channel_write_common: channel_write wrote 1 bytes 1970-01-01 00:01:46.971 channel_default_bufferize: placing 1 bytes into channel buffer (stderr=0) 1970-01-01 00:01:46.972 channel_write_common: channel_write wrote 1 bytes 1970-01-01 00:01:47.163 channel_default_bufferize: placing 1 bytes into channel buffer (stderr=0) 1970-01-01 00:01:47.164 channel_write_common: channel_write wrote 1 bytes 1970-01-01 00:01:47.415 channel_write_common: channel_write wrote 1 bytes 1970-01-01 00:01:47.566 channel_default_bufferize: placing 1 bytes into channel buffer (stderr=0) 1970-01-01 00:01:47.567 channel_write_common: channel_write wrote 20 bytes When SSH_LOG_LEVEL is set to SSH_LOG_PROTOCOL(2), Below are the debug traces from libSSH stack during an SSH login and immediate exit of the session. 1970-01-01 00:01:08.552 ssh_server_connection_callback: SSH client banner: SSH-2.0-OpenSSH_5.3 1970-01-01 00:01:08.553 ssh_analyze_banner: Analyzing banner: SSH-2.0-OpenSSH_5.3 1970-01-01 00:01:08.553 ssh_analyze_banner: We are talking to an OpenSSH client version: 5.3 (50300) 1970-01-01 00:01:08.835 ssh_packet_newkeys: Received SSH_MSG_NEWKEYS 1970-01-01 00:01:09.378 ssh_channel_read_timeout: Read (1) buffered : 0 bytes. Window: 32000 1970-01-01 00:01:09.630 grow_window: growing window (channel 43:0) to 1280000 bytes 1970-01-01 00:01:09.631 channel_write_common: channel_write wrote 60 bytes 1970-01-01 00:01:09.631 ssh_channel_read_timeout: Read (1) buffered : 0 bytes. Window: 1280000 1970-01-01 00:01:09.883 ssh_channel_read_timeout: Read (1) buffered : 0 bytes. Window: 1280000 1970-01-01 00:01:10.079 channel_rcv_data: Channel receiving 1 bytes data in 0 (local win=1280000 remote win=10 1970-01-01 00:01:10.080 channel_default_bufferize: placing 1 bytes into channel buffer (stderr=0) 1970-01-01 00:01:10.080 channel_rcv_data: Channel windows are now (local win=1279999 remote win=1048516) 1970-01-01 00:01:10.080 ssh_channel_read_timeout: Read (1) buffered : 0 bytes. Window: 1279999 1970-01-01 00:01:10.191 channel_rcv_data: Channel receiving 1 bytes data in 0 (local win=1279999 remote win=10 1970-01-01 00:01:10.192 channel_default_bufferize: placing 1 bytes into channel buffer (stderr=0) 1970-01-01 00:01:10.192 channel_rcv_data: Channel windows are now (local win=1279998 remote win=1048516) 1970-01-01 00:01:10.193 channel_write_common: channel_write wrote 1 bytes 1970-01-01 00:01:10.193 ssh_channel_read_timeout: Read (1) buffered : 0 bytes. Window: 1279998 1970-01-01 00:01:10.444 channel_write_common: channel_write wrote 1 bytes 1970-01-01 00:01:10.445 ssh_channel_read_timeout: Read (1) buffered : 0 bytes. Window: 1279998 1970-01-01 00:01:10.543 channel_rcv_data: Channel receiving 1 bytes data in 0 (local win=1279998 remote win=10 1970-01-01 00:01:10.543 channel_default_bufferize: placing 1 bytes into channel buffer (stderr=0) 1970-01-01 00:01:10.544 channel_rcv_data: Channel windows are now (local win=1279997 remote win=1048514) 1970-01-01 00:01:10.544 ssh_channel_read_timeout: Read (1) buffered : 0 bytes. Window: 1279997 1970-01-01 00:01:10.687 channel_rcv_data: Channel receiving 1 bytes data in 0 (local win=1279997 remote win=10 1970-01-01 00:01:10.688 channel_default_bufferize: placing 1 bytes into channel buffer (stderr=0) 1970-01-01 00:01:10.688 channel_rcv_data: Channel windows are now (local win=1279996 remote win=1048514) 1970-01-01 00:01:10.689 channel_write_common: channel_write wrote 1 bytes 1970-01-01 00:01:10.689 ssh_channel_read_timeout: Read (1) buffered : 0 bytes. Window: 1279996 1970-01-01 00:01:10.940 channel_write_common: channel_write wrote 1 bytes 1970-01-01 00:01:10.941 ssh_channel_read_timeout: Read (1) buffered : 0 bytes. Window: 1279996 1970-01-01 00:01:10.944 channel_rcv_data: Channel receiving 1 bytes data in 0 (local win=1279996 remote win=10 1970-01-01 00:01:10.944 channel_default_bufferize: placing 1 bytes into channel buffer (stderr=0) 1970-01-01 00:01:10.944 channel_rcv_data: Channel windows are now (local win=1279995 remote win=1048512) 1970-01-01 00:01:10.945 channel_write_common: channel_write wrote 20 bytes
diff --git a/libssh-libssh-0.6.1/src/channels.c b/libssh-libssh-0.6.1/src/channels.c
index 51e96fe..a222b1c 100644
--- a/libssh-libssh-0.6.1/src/channels.c
+++ b/libssh-libssh-0.6.1/src/channels.c
@@ -507,7 +507,7 @@ SSH_PACKET_CALLBACK(channel_rcv_data){
}
len = ssh_string_len(str);
- SSH_LOG(SSH_LOG_PROTOCOL,
+ SSH_LOG(SSH_LOG_PACKET,
"Channel receiving %" PRIdS " bytes data in %d (local win=%d remote win=%d)",
len,
is_stderr,
@@ -535,7 +535,7 @@ SSH_PACKET_CALLBACK(channel_rcv_data){
channel->local_window = 0; /* buggy remote */
}
- SSH_LOG(SSH_LOG_PROTOCOL,
+ SSH_LOG(SSH_LOG_PACKET,
"Channel windows are now (local win=%d remote win=%d)",
channel->local_window,
channel->remote_window);
@@ -867,7 +867,7 @@ int channel_default_bufferize(ssh_channel channel, void *data, int len,
return -1;
}
- SSH_LOG(SSH_LOG_RARE,
+ SSH_LOG(SSH_LOG_PACKET,
"placing %d bytes into channel buffer (stderr=%d)", len, is_stderr);
if (is_stderr == 0) {
/* stdout */
@@ -1378,7 +1378,7 @@ int channel_write_common(ssh_channel channel, const void *data,
return SSH_ERROR;
}
- SSH_LOG(SSH_LOG_RARE,
+ SSH_LOG(SSH_LOG_PACKET,
"channel_write wrote %ld bytes", (long int) effectivelen);
channel->remote_window -= effectivelen;
@@ -2775,7 +2775,7 @@ int ssh_channel_read_timeout(ssh_channel channel,
* We may have problem if the window is too small to accept as much data
* as asked
*/
- SSH_LOG(SSH_LOG_PROTOCOL,
+ SSH_LOG(SSH_LOG_PACKET,
"Read (%d) buffered : %d bytes. Window: %d",
count,
buffer_get_rest_len(stdbuf),
diff --git a/libssh-libssh-0.6.1/src/client.c b/libssh-libssh-0.6.1/src/client.c
index cb41f1c..2355dd5 100644
--- a/libssh-libssh-0.6.1/src/client.c
+++ b/libssh-libssh-0.6.1/src/client.c
@@ -503,7 +503,7 @@ int ssh_connect(ssh_session session) {
ssh_set_error(session, SSH_FATAL, "Couldn't apply options");
return SSH_ERROR;
}
- SSH_LOG(SSH_LOG_RARE,"libssh %s, using threading %s", ssh_copyright(), ssh_threads_get_type());
+ SSH_LOG(SSH_LOG_PROTOCOL,"libssh %s, using threading %s", ssh_copyright(), ssh_threads_get_type());
session->ssh_connection_callback = ssh_client_connection_callback;
session->session_state=SSH_SESSION_STATE_CONNECTING;
ssh_socket_set_callbacks(session->socket,&session->socket_callbacks);
diff --git a/libssh-libssh-0.6.1/src/config.c b/libssh-libssh-0.6.1/src/config.c
index 3d8dd41..4c966ed 100644
--- a/libssh-libssh-0.6.1/src/config.c
+++ b/libssh-libssh-0.6.1/src/config.c
@@ -383,7 +383,7 @@ int ssh_config_parse_file(ssh_session session, const char *filename) {
return 0;
}
- SSH_LOG(SSH_LOG_RARE, "Reading configuration data from %s", filename);
+ SSH_LOG(SSH_LOG_PACKET, "Reading configuration data from %s", filename);
parsing = 1;
while (fgets(line, sizeof(line), f)) {
diff --git a/libssh-libssh-0.6.1/src/packet.c b/libssh-libssh-0.6.1/src/packet.c
index 96f6d10..2923210 100644
--- a/libssh-libssh-0.6.1/src/packet.c
+++ b/libssh-libssh-0.6.1/src/packet.c
@@ -339,7 +339,7 @@ int ssh_packet_socket_callback(const void *data, size_t receivedlen, void *user)
return processed;
case PACKET_STATE_PROCESSING:
- SSH_LOG(SSH_LOG_RARE, "Nested packet processing. Delaying.");
+ SSH_LOG(SSH_LOG_PACKET, "Nested packet processing. Delaying.");
return 0;
}
diff --git a/libssh-libssh-0.6.1/src/packet1.c b/libssh-libssh-0.6.1/src/packet1.c
index 127bb77..96691b9 100644
--- a/libssh-libssh-0.6.1/src/packet1.c
+++ b/libssh-libssh-0.6.1/src/packet1.c
@@ -241,7 +241,7 @@ int ssh_packet_socket_callback1(const void *data, size_t receivedlen, void *user
return processed;
case PACKET_STATE_PROCESSING:
- SSH_LOG(SSH_LOG_RARE, "Nested packet processing. Delaying.");
+ SSH_LOG(SSH_LOG_PACKET, "Nested packet processing. Delaying.");
return 0;
}
When SSH_LOG_LEVEL is set to SSH_LOG_WARNING(1), Below are the debug traces from libSSH stack during simple SSH login and immediate exit of the session. 1970-01-01 00:27:24.213 ssh_server_connection_callback: SSH client banner: SSH-2.0-OpenSSH_5.3 1970-01-01 00:27:24.213 ssh_analyze_banner: Analyzing banner: SSH-2.0-OpenSSH_5.3 1970-01-01 00:27:24.213 ssh_analyze_banner: We are talking to an OpenSSH client version: 5.3 (50300) When SSH_LOG_LEVEL is set to SSH_LOG_PROTOCOL(2), Below are the debug traces from libSSH stack during an SSH login and immediate exit of the session. 1970-01-01 00:29:06.554 ssh_server_connection_callback: SSH client banner: SSH-2.0-OpenSSH_5.3 1970-01-01 00:29:06.555 ssh_analyze_banner: Analyzing banner: SSH-2.0-OpenSSH_5.3 1970-01-01 00:29:06.555 ssh_analyze_banner: We are talking to an OpenSSH client version: 5.3 (50300) 1970-01-01 00:29:06.834 ssh_packet_newkeys: Received SSH_MSG_NEWKEYS 1970-01-01 00:29:07.668 grow_window: growing window (channel 43:0) to 1280000 bytes
| Re: Fwd: Optimization of log levels - libSSH | Andreas Schneider <asn@xxxxxxxxxxxxxx> |