diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2015-07-24 16:09:48 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-11-21 16:54:20 +0100 |
commit | f4339df577a8a9a93bdbb7ed117b5b5c7c207ded (patch) | |
tree | 96ad72f01b9345d1f902eb0e09379838e7f06f88 | |
parent | 0197e5e1e5825fba54ebb235e3d0d11e5dec307b (diff) | |
download | libssh-f4339df577a8a9a93bdbb7ed117b5b5c7c207ded.tar.gz libssh-f4339df577a8a9a93bdbb7ed117b5b5c7c207ded.tar.xz libssh-f4339df577a8a9a93bdbb7ed117b5b5c7c207ded.zip |
packets: allow removal of callbacks
Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be>
Reviewed-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r-- | include/libssh/packet.h | 1 | ||||
-rw-r--r-- | src/packet.c | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/include/libssh/packet.h b/include/libssh/packet.h index fbe09700..cd8a4c0f 100644 --- a/include/libssh/packet.h +++ b/include/libssh/packet.h @@ -70,6 +70,7 @@ int ssh_packet_parse_type(ssh_session session); int ssh_packet_socket_callback(const void *data, size_t len, void *user); void ssh_packet_register_socket_callback(ssh_session session, struct ssh_socket_struct *s); void ssh_packet_set_callbacks(ssh_session session, ssh_packet_callbacks callbacks); +void ssh_packet_remove_callbacks(ssh_session session, ssh_packet_callbacks callbacks); void ssh_packet_set_default_callbacks(ssh_session session); void ssh_packet_process(ssh_session session, uint8_t type); diff --git a/src/packet.c b/src/packet.c index de0cc0a8..4ae72622 100644 --- a/src/packet.c +++ b/src/packet.c @@ -1242,6 +1242,17 @@ void ssh_packet_set_callbacks(ssh_session session, ssh_packet_callbacks callback } /** @internal + * @brief remove the callbacks from the packet layer + */ +void ssh_packet_remove_callbacks(ssh_session session, ssh_packet_callbacks callbacks){ + struct ssh_iterator *it = NULL; + it = ssh_list_find(session->packet_callbacks, callbacks); + if (it != NULL) { + ssh_list_remove(session->packet_callbacks, it); + } +} + +/** @internal * @brief sets the default packet handlers */ void ssh_packet_set_default_callbacks(ssh_session session){ |