我正在使用 libssh2 并在我的 SSHWrapper 对象之外定义了一个回调函数:
static void kbd_callback(const char *name, int name_len, const char *instruction, int instruction_len, int num_prompts, const LIBSSH2_USERAUTH_KBDINT_PROMPT *prompts, LIBSSH2_USERAUTH_KBDINT_RESPONSE *responses, void **abstract);
在我的 SSHWrapper 对象中,我执行以下操作,在验证会话时传递回调函数:
/* Create a session instance */
LIBSSH2_SESSION *session = libssh2_session_init_ex(NULL, NULL, NULL, self);
while ((rc = libssh2_userauth_keyboard_interactive(session, userChar, &kbd_callback)) == LIBSSH2_ERROR_EAGAIN);
我想知道的是,是否可以kbd_callback()
在我的对象中移动函数,使其成为类方法:+(void) kbd_callback:...
?
如果是这样,我如何获取该函数的地址以便将其传递给 C 函数libssh2_userauth_keyboard_interactive()
?