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_unimplemented);
|
||||||
SSH_PACKET_CALLBACK(ssh_packet_disconnect_callback);
|
SSH_PACKET_CALLBACK(ssh_packet_disconnect_callback);
|
||||||
SSH_PACKET_CALLBACK(ssh_packet_ignore_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_dh_reply);
|
||||||
SSH_PACKET_CALLBACK(ssh_packet_newkeys);
|
SSH_PACKET_CALLBACK(ssh_packet_newkeys);
|
||||||
SSH_PACKET_CALLBACK(ssh_packet_service_accept);
|
SSH_PACKET_CALLBACK(ssh_packet_service_accept);
|
||||||
|
|||||||
@@ -52,9 +52,9 @@
|
|||||||
|
|
||||||
static ssh_packet_callback default_packet_handlers[]= {
|
static ssh_packet_callback default_packet_handlers[]= {
|
||||||
ssh_packet_disconnect_callback, // SSH2_MSG_DISCONNECT 1
|
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_unimplemented, // SSH2_MSG_UNIMPLEMENTED 3
|
||||||
ssh_packet_ignore_callback, // SSH2_MSG_DEBUG 4
|
ssh_packet_debug_callback, // SSH2_MSG_DEBUG 4
|
||||||
#if WITH_SERVER
|
#if WITH_SERVER
|
||||||
ssh_packet_service_request, // SSH2_MSG_SERVICE_REQUEST 5
|
ssh_packet_service_request, // SSH2_MSG_SERVICE_REQUEST 5
|
||||||
#else
|
#else
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ SSH_PACKET_CALLBACK(ssh_packet_disconnect_callback)
|
|||||||
/**
|
/**
|
||||||
* @internal
|
* @internal
|
||||||
*
|
*
|
||||||
* @brief Handle a SSH_IGNORE and SSH_DEBUG packet.
|
* @brief Handle a SSH_IGNORE packet.
|
||||||
*/
|
*/
|
||||||
SSH_PACKET_CALLBACK(ssh_packet_ignore_callback)
|
SSH_PACKET_CALLBACK(ssh_packet_ignore_callback)
|
||||||
{
|
{
|
||||||
@@ -101,11 +101,37 @@ SSH_PACKET_CALLBACK(ssh_packet_ignore_callback)
|
|||||||
(void)type;
|
(void)type;
|
||||||
(void)packet;
|
(void)packet;
|
||||||
|
|
||||||
SSH_LOG(SSH_LOG_DEBUG,
|
SSH_LOG(SSH_LOG_DEBUG, "Received SSH_MSG_IGNORE packet");
|
||||||
"Received %s packet",
|
|
||||||
type == SSH2_MSG_IGNORE ? "SSH_MSG_IGNORE" : "SSH_MSG_DEBUG");
|
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;
|
return SSH_PACKET_USED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user