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()
ですか?