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:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user