diff --git a/include/libssh2.h b/include/libssh2.h index 7a834de..ae219b8 100644 --- a/include/libssh2.h +++ b/include/libssh2.h @@ -137,7 +137,7 @@ #define LIBSSH2_PASSWD_CHANGEREQ_FUNC(name) void name(LIBSSH2_SESSION *session, char **newpw, int *newpw_len, void **abstract) #define LIBSSH2_MACERROR_FUNC(name) int name(LIBSSH2_SESSION *session, const char *packet, int packet_len, void **abstract) -#define LIBSSH2_CHANNEL_CLOSE_FUNC(name) int name(LIBSSH2_SESSION *session, LIBSSH2_CHANNEL *channel, void **abstract) +#define LIBSSH2_CHANNEL_CLOSE_FUNC(name) void name(LIBSSH2_SESSION *session, void **session_abstract, LIBSSH2_CHANNEL *channel, void **channel_abstract) /* libssh2_session_callback_set() constants */ #define LIBSSH2_CALLBACK_IGNORE 0 diff --git a/include/libssh2_priv.h b/include/libssh2_priv.h index 136bf52..0457759 100644 --- a/include/libssh2_priv.h +++ b/include/libssh2_priv.h @@ -57,7 +57,7 @@ #define LIBSSH2_MACERROR(session, data, datalen) session->macerror((session), (data), (datalen), &(session)->abstract) -#define LIBSSH2_CHANNEL_CLOSE(session, channel) channel->close_cb((session), (channel), &(session)->abstract) +#define LIBSSH2_CHANNEL_CLOSE(session, channel) channel->close_cb((session), &(session)->abstract, &(channel)->abstract) typedef struct _LIBSSH2_KEX_METHOD LIBSSH2_KEX_METHOD; typedef struct _LIBSSH2_HOSTKEY_METHOD LIBSSH2_HOSTKEY_METHOD; @@ -115,6 +115,7 @@ struct _LIBSSH2_CHANNEL { LIBSSH2_CHANNEL *next, *prev; + void *abstract; LIBSSH2_CHANNEL_CLOSE_FUNC((*close_cb)); };