1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-12-08 03:42:12 +03:00

packet: Implement logging of SSH2_MSG_DEBUG message

Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
Jakub Jelen
2024-11-18 20:29:06 +01:00
parent 79ba546cde
commit 49b0c859f9
3 changed files with 34 additions and 7 deletions

View File

@@ -58,6 +58,7 @@ extern "C" {
SSH_PACKET_CALLBACK(ssh_packet_unimplemented);
SSH_PACKET_CALLBACK(ssh_packet_disconnect_callback);
SSH_PACKET_CALLBACK(ssh_packet_ignore_callback);
SSH_PACKET_CALLBACK(ssh_packet_debug_callback);
SSH_PACKET_CALLBACK(ssh_packet_dh_reply);
SSH_PACKET_CALLBACK(ssh_packet_newkeys);
SSH_PACKET_CALLBACK(ssh_packet_service_accept);

View File

@@ -52,9 +52,9 @@
static ssh_packet_callback default_packet_handlers[]= {
ssh_packet_disconnect_callback, // SSH2_MSG_DISCONNECT 1
ssh_packet_ignore_callback, // SSH2_MSG_IGNORE 2
ssh_packet_ignore_callback, // SSH2_MSG_IGNORE 2
ssh_packet_unimplemented, // SSH2_MSG_UNIMPLEMENTED 3
ssh_packet_ignore_callback, // SSH2_MSG_DEBUG 4
ssh_packet_debug_callback, // SSH2_MSG_DEBUG 4
#if WITH_SERVER
ssh_packet_service_request, // SSH2_MSG_SERVICE_REQUEST 5
#else

View File

@@ -92,7 +92,7 @@ SSH_PACKET_CALLBACK(ssh_packet_disconnect_callback)
/**
* @internal
*
* @brief Handle a SSH_IGNORE and SSH_DEBUG packet.
* @brief Handle a SSH_IGNORE packet.
*/
SSH_PACKET_CALLBACK(ssh_packet_ignore_callback)
{
@@ -101,11 +101,37 @@ SSH_PACKET_CALLBACK(ssh_packet_ignore_callback)
(void)type;
(void)packet;
SSH_LOG(SSH_LOG_DEBUG,
"Received %s packet",
type == SSH2_MSG_IGNORE ? "SSH_MSG_IGNORE" : "SSH_MSG_DEBUG");
SSH_LOG(SSH_LOG_DEBUG, "Received SSH_MSG_IGNORE packet");
return SSH_PACKET_USED;
}
/**
* @internal
*
* @brief Handle a SSH_DEBUG packet.
*/
SSH_PACKET_CALLBACK(ssh_packet_debug_callback)
{
uint8_t always_display = -1;
char *message = NULL;
int rc;
(void)session; /* unused */
(void)type;
(void)user;
rc = ssh_buffer_unpack(packet, "bs", &always_display, &message);
if (rc != SSH_OK) {
SSH_LOG(SSH_LOG_PACKET, "Error reading debug message");
return SSH_PACKET_USED;
}
SSH_LOG(SSH_LOG_DEBUG,
"Received SSH_MSG_DEBUG packet with message %s%s",
message,
always_display != 0 ? " (always display)" : "");
SAFE_FREE(message);
/* TODO: handle a graceful disconnect */
return SSH_PACKET_USED;
}