From 6bd4281cbc3092c45e981a171a474ce6a81632ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Mangano?= Date: Thu, 6 Aug 2026 12:04:02 +0900 Subject: [PATCH] Remove RUBY_METHOD_FUNC MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The build breaks on newer compilers because of it. See . Ruby’s source code does not use it anymore, so neither should we. --- ext/libssh_ruby/channel.c | 46 +++++-------- ext/libssh_ruby/key.c | 19 +++--- ext/libssh_ruby/libssh_ruby.c | 2 +- ext/libssh_ruby/scp.c | 37 ++++------- ext/libssh_ruby/session.c | 119 ++++++++++++---------------------- 5 files changed, 84 insertions(+), 139 deletions(-) diff --git a/ext/libssh_ruby/channel.c b/ext/libssh_ruby/channel.c index c183e99..1ba44c6 100644 --- a/ext/libssh_ruby/channel.c +++ b/ext/libssh_ruby/channel.c @@ -645,34 +645,24 @@ void Init_libssh_channel(void) { rb_cLibSSHChannel = rb_define_class_under(rb_mLibSSH, "Channel", rb_cObject); rb_define_alloc_func(rb_cLibSSHChannel, channel_alloc); - rb_define_method(rb_cLibSSHChannel, "initialize", - RUBY_METHOD_FUNC(m_initialize), 1); - rb_define_method(rb_cLibSSHChannel, "open_session", - RUBY_METHOD_FUNC(m_open_session), 0); - rb_define_method(rb_cLibSSHChannel, "open_forward", - RUBY_METHOD_FUNC(m_open_forward), 2); - rb_define_method(rb_cLibSSHChannel, "close", RUBY_METHOD_FUNC(m_close), 0); - rb_define_method(rb_cLibSSHChannel, "request_exec", - RUBY_METHOD_FUNC(m_request_exec), 1); - rb_define_method(rb_cLibSSHChannel, "request_pty", - RUBY_METHOD_FUNC(m_request_pty), 0); - rb_define_method(rb_cLibSSHChannel, "request_send_signal", - RUBY_METHOD_FUNC(m_request_send_signal), 1); - rb_define_method(rb_cLibSSHChannel, "read", RUBY_METHOD_FUNC(m_read), -1); - rb_define_method(rb_cLibSSHChannel, "read_nonblocking", - RUBY_METHOD_FUNC(m_read_nonblocking), -1); - rb_define_method(rb_cLibSSHChannel, "poll", RUBY_METHOD_FUNC(m_poll), -1); - rb_define_method(rb_cLibSSHChannel, "eof?", RUBY_METHOD_FUNC(m_eof_p), 0); - rb_define_method(rb_cLibSSHChannel, "closed?", RUBY_METHOD_FUNC(m_closed_p), 0); - rb_define_method(rb_cLibSSHChannel, "open?", RUBY_METHOD_FUNC(m_open_p), 0); - rb_define_method(rb_cLibSSHChannel, "get_exit_status", - RUBY_METHOD_FUNC(m_get_exit_status), 0); - rb_define_method(rb_cLibSSHChannel, "write", RUBY_METHOD_FUNC(m_write), 1); - rb_define_method(rb_cLibSSHChannel, "send_eof", RUBY_METHOD_FUNC(m_send_eof), - 0); - - rb_define_singleton_method(rb_cLibSSHChannel, "select", - RUBY_METHOD_FUNC(s_select), 4); + rb_define_method(rb_cLibSSHChannel, "initialize", m_initialize, 1); + rb_define_method(rb_cLibSSHChannel, "open_session", m_open_session, 0); + rb_define_method(rb_cLibSSHChannel, "open_forward", m_open_forward, 2); + rb_define_method(rb_cLibSSHChannel, "close", m_close, 0); + rb_define_method(rb_cLibSSHChannel, "request_exec", m_request_exec, 1); + rb_define_method(rb_cLibSSHChannel, "request_pty", m_request_pty, 0); + rb_define_method(rb_cLibSSHChannel, "request_send_signal", m_request_send_signal, 1); + rb_define_method(rb_cLibSSHChannel, "read", m_read, -1); + rb_define_method(rb_cLibSSHChannel, "read_nonblocking", m_read_nonblocking, -1); + rb_define_method(rb_cLibSSHChannel, "poll", m_poll, -1); + rb_define_method(rb_cLibSSHChannel, "eof?", m_eof_p, 0); + rb_define_method(rb_cLibSSHChannel, "closed?", m_closed_p, 0); + rb_define_method(rb_cLibSSHChannel, "open?", m_open_p, 0); + rb_define_method(rb_cLibSSHChannel, "get_exit_status", m_get_exit_status, 0); + rb_define_method(rb_cLibSSHChannel, "write", m_write, 1); + rb_define_method(rb_cLibSSHChannel, "send_eof", m_send_eof, 0); + + rb_define_singleton_method(rb_cLibSSHChannel, "select", s_select, 4); id_stderr = rb_intern("stderr"); id_timeout = rb_intern("timeout"); diff --git a/ext/libssh_ruby/key.c b/ext/libssh_ruby/key.c index 0d976b7..1869776 100644 --- a/ext/libssh_ruby/key.c +++ b/ext/libssh_ruby/key.c @@ -206,13 +206,12 @@ void Init_libssh_key(void) { #endif #undef E - rb_define_method(rb_cLibSSHKey, "initialize", RUBY_METHOD_FUNC(m_initialize), - 0); - rb_define_method(rb_cLibSSHKey, "sha1", RUBY_METHOD_FUNC(m_sha1), 0); - rb_define_method(rb_cLibSSHKey, "type", RUBY_METHOD_FUNC(m_type), 0); - rb_define_method(rb_cLibSSHKey, "type_str", RUBY_METHOD_FUNC(m_type_str), 0); - rb_define_method(rb_cLibSSHKey, "public?", RUBY_METHOD_FUNC(m_public_p), 0); - rb_define_method(rb_cLibSSHKey, "private?", RUBY_METHOD_FUNC(m_private_p), 0); + rb_define_method(rb_cLibSSHKey, "initialize", m_initialize, 0); + rb_define_method(rb_cLibSSHKey, "sha1", m_sha1, 0); + rb_define_method(rb_cLibSSHKey, "type", m_type, 0); + rb_define_method(rb_cLibSSHKey, "type_str", m_type_str, 0); + rb_define_method(rb_cLibSSHKey, "public?", m_public_p, 0); + rb_define_method(rb_cLibSSHKey, "private?", m_private_p, 0); } /* @@ -225,7 +224,7 @@ void Init_libssh_key(void) { void Init_libssh_pki(void) { rb_mLibSSHPKI = rb_define_class_under(rb_mLibSSH, "PKI", rb_cObject); - rb_define_module_function(rb_mLibSSHPKI, "import_privkey_base64", RUBY_METHOD_FUNC(m_pki_import_privkey_base64), 1); - rb_define_module_function(rb_mLibSSHPKI, "export_privkey_to_pubkey", RUBY_METHOD_FUNC(m_pki_export_privkey_to_pubkey), 1); - rb_define_module_function(rb_mLibSSHPKI, "export_pubkey_base64", RUBY_METHOD_FUNC(m_pki_export_pubkey_base64), 1); + rb_define_module_function(rb_mLibSSHPKI, "import_privkey_base64", m_pki_import_privkey_base64, 1); + rb_define_module_function(rb_mLibSSHPKI, "export_privkey_to_pubkey", m_pki_export_privkey_to_pubkey, 1); + rb_define_module_function(rb_mLibSSHPKI, "export_pubkey_base64", m_pki_export_pubkey_base64, 1); } diff --git a/ext/libssh_ruby/libssh_ruby.c b/ext/libssh_ruby/libssh_ruby.c index b3e035f..b892076 100644 --- a/ext/libssh_ruby/libssh_ruby.c +++ b/ext/libssh_ruby/libssh_ruby.c @@ -74,7 +74,7 @@ void Init_libssh_ruby(void) { rb_define_const(rb_mLibSSH, "LIBSSH_VERSION", rb_str_new_cstr(SSH_STRINGIFY(LIBSSH_VERSION))); - rb_define_singleton_method(rb_mLibSSH, "version", RUBY_METHOD_FUNC(m_version), + rb_define_singleton_method(rb_mLibSSH, "version", m_version, -1); Init_libssh_session(); diff --git a/ext/libssh_ruby/scp.c b/ext/libssh_ruby/scp.c index e70d35f..698c9c3 100644 --- a/ext/libssh_ruby/scp.c +++ b/ext/libssh_ruby/scp.c @@ -430,29 +430,20 @@ void Init_libssh_scp(void) { /* @see #pull_request */ rb_define_const(rb_cLibSSHScp, "REQUEST_EOF", INT2FIX(SSH_SCP_REQUEST_EOF)); - rb_define_method(rb_cLibSSHScp, "initialize", RUBY_METHOD_FUNC(m_initialize), - 3); - rb_define_method(rb_cLibSSHScp, "init", RUBY_METHOD_FUNC(m_init), 0); - rb_define_method(rb_cLibSSHScp, "close", RUBY_METHOD_FUNC(m_close), 0); - rb_define_method(rb_cLibSSHScp, "push_file", RUBY_METHOD_FUNC(m_push_file), - 3); - rb_define_method(rb_cLibSSHScp, "write", RUBY_METHOD_FUNC(m_write), 1); - - rb_define_method(rb_cLibSSHScp, "pull_request", - RUBY_METHOD_FUNC(m_pull_request), 0); - rb_define_method(rb_cLibSSHScp, "request_size", - RUBY_METHOD_FUNC(m_request_size), 0); - rb_define_method(rb_cLibSSHScp, "request_filename", - RUBY_METHOD_FUNC(m_request_filename), 0); - rb_define_method(rb_cLibSSHScp, "request_permissions", - RUBY_METHOD_FUNC(m_request_permissions), 0); - rb_define_method(rb_cLibSSHScp, "accept_request", - RUBY_METHOD_FUNC(m_accept_request), 0); - rb_define_method(rb_cLibSSHScp, "deny_request", - RUBY_METHOD_FUNC(m_deny_request), 1); - rb_define_method(rb_cLibSSHScp, "read", RUBY_METHOD_FUNC(m_read), 1); - rb_define_method(rb_cLibSSHScp, "request_warning", - RUBY_METHOD_FUNC(m_request_warning), 0); + rb_define_method(rb_cLibSSHScp, "initialize", m_initialize, 3); + rb_define_method(rb_cLibSSHScp, "init", m_init, 0); + rb_define_method(rb_cLibSSHScp, "close", m_close, 0); + rb_define_method(rb_cLibSSHScp, "push_file", m_push_file, 3); + rb_define_method(rb_cLibSSHScp, "write", m_write, 1); + + rb_define_method(rb_cLibSSHScp, "pull_request", m_pull_request, 0); + rb_define_method(rb_cLibSSHScp, "request_size", m_request_size, 0); + rb_define_method(rb_cLibSSHScp, "request_filename", m_request_filename, 0); + rb_define_method(rb_cLibSSHScp, "request_permissions", m_request_permissions, 0); + rb_define_method(rb_cLibSSHScp, "accept_request", m_accept_request, 0); + rb_define_method(rb_cLibSSHScp, "deny_request", m_deny_request, 1); + rb_define_method(rb_cLibSSHScp, "read", m_read, 1); + rb_define_method(rb_cLibSSHScp, "request_warning", m_request_warning, 0); id_read = rb_intern("read"); id_write = rb_intern("write"); diff --git a/ext/libssh_ruby/session.c b/ext/libssh_ruby/session.c index 281667d..452dbfe 100644 --- a/ext/libssh_ruby/session.c +++ b/ext/libssh_ruby/session.c @@ -773,81 +773,46 @@ void Init_libssh_session() { I(gssapi_mic); #undef I - rb_define_method(rb_cLibSSHSession, "initialize", - RUBY_METHOD_FUNC(m_initialize), 0); - - rb_define_method(rb_cLibSSHSession, "log_verbosity=", - RUBY_METHOD_FUNC(m_set_log_verbosity), 1); - rb_define_method(rb_cLibSSHSession, "host=", RUBY_METHOD_FUNC(m_set_host), 1); - rb_define_method(rb_cLibSSHSession, "user=", RUBY_METHOD_FUNC(m_set_user), 1); - rb_define_method(rb_cLibSSHSession, "port=", RUBY_METHOD_FUNC(m_set_port), 1); - rb_define_method(rb_cLibSSHSession, "bindaddr=", - RUBY_METHOD_FUNC(m_set_bindaddr), 1); - rb_define_method(rb_cLibSSHSession, "knownhosts=", - RUBY_METHOD_FUNC(m_set_knownhosts), 1); - rb_define_method(rb_cLibSSHSession, "timeout=", - RUBY_METHOD_FUNC(m_set_timeout), 1); - rb_define_method(rb_cLibSSHSession, "timeout_usec=", - RUBY_METHOD_FUNC(m_set_timeout_usec), 1); - rb_define_method(rb_cLibSSHSession, "protocol=", - RUBY_METHOD_FUNC(m_set_protocol), 1); - rb_define_method(rb_cLibSSHSession, "key_exchange=", - RUBY_METHOD_FUNC(m_set_key_exchange), 1); - rb_define_method(rb_cLibSSHSession, "hmac_c_s=", - RUBY_METHOD_FUNC(m_set_hmac_c_s), 1); - rb_define_method(rb_cLibSSHSession, "hmac_s_c=", - RUBY_METHOD_FUNC(m_set_hmac_s_c), 1); - rb_define_method(rb_cLibSSHSession, "hostkeys=", - RUBY_METHOD_FUNC(m_set_hostkeys), 1); - rb_define_method(rb_cLibSSHSession, "publickey_accepted_types=", - RUBY_METHOD_FUNC(m_set_publickey_accepted_types), 1); - rb_define_method(rb_cLibSSHSession, "compression=", - RUBY_METHOD_FUNC(m_set_compression), 1); - rb_define_method(rb_cLibSSHSession, "compression_level=", - RUBY_METHOD_FUNC(m_set_compression_level), 1); - rb_define_method(rb_cLibSSHSession, "compression_level=", - RUBY_METHOD_FUNC(m_set_compression_level), 1); - rb_define_method(rb_cLibSSHSession, "stricthostkeycheck=", - RUBY_METHOD_FUNC(m_set_stricthostkeycheck), 1); - rb_define_method(rb_cLibSSHSession, "proxycommand=", - RUBY_METHOD_FUNC(m_set_proxycommand), 1); - rb_define_method(rb_cLibSSHSession, "gssapi_client_identity=", - RUBY_METHOD_FUNC(m_set_gssapi_client_identity), 1); - rb_define_method(rb_cLibSSHSession, "gssapi_server_identity=", - RUBY_METHOD_FUNC(m_set_gssapi_server_identity), 1); - rb_define_method(rb_cLibSSHSession, "gssapi_delegate_credentials=", - RUBY_METHOD_FUNC(m_set_gssapi_delegate_credentials), 1); - - rb_define_method(rb_cLibSSHSession, "parse_config", - RUBY_METHOD_FUNC(m_parse_config), -1); - rb_define_method(rb_cLibSSHSession, "add_identity", - RUBY_METHOD_FUNC(m_add_identity), 1); - rb_define_method(rb_cLibSSHSession, "connect", RUBY_METHOD_FUNC(m_connect), - 0); - rb_define_method(rb_cLibSSHSession, "disconnect", - RUBY_METHOD_FUNC(m_disconnect), 0); - rb_define_method(rb_cLibSSHSession, "server_known", - RUBY_METHOD_FUNC(m_server_known), 0); - rb_define_method(rb_cLibSSHSession, "fd", RUBY_METHOD_FUNC(m_fd), 0); - - rb_define_method(rb_cLibSSHSession, "userauth_none", - RUBY_METHOD_FUNC(m_userauth_none), 0); - rb_define_method(rb_cLibSSHSession, "userauth_password", - RUBY_METHOD_FUNC(m_userauth_password), 1); - rb_define_method(rb_cLibSSHSession, "userauth_list", - RUBY_METHOD_FUNC(m_userauth_list), 0); - rb_define_method(rb_cLibSSHSession, "userauth_publickey", - RUBY_METHOD_FUNC(m_userauth_publickey), 1); - rb_define_method(rb_cLibSSHSession, "userauth_publickey_auto", - RUBY_METHOD_FUNC(m_userauth_publickey_auto), 0); - rb_define_method(rb_cLibSSHSession, "userauth_kbdint", - RUBY_METHOD_FUNC(m_userauth_kbdint), 0); - rb_define_method(rb_cLibSSHSession, "userauth_kbdint_getnprompts", - RUBY_METHOD_FUNC(m_userauth_kbdint_getnpromts), 0); - rb_define_method(rb_cLibSSHSession, "userauth_kbdint_setanswer", - RUBY_METHOD_FUNC(m_userauth_kbdint_setanswer), 2); - rb_define_method(rb_cLibSSHSession, "get_publickey", - RUBY_METHOD_FUNC(m_get_publickey), 0); - rb_define_method(rb_cLibSSHSession, "write_knownhost", - RUBY_METHOD_FUNC(m_write_knownhost), 0); + rb_define_method(rb_cLibSSHSession, "initialize", m_initialize, 0); + + rb_define_method(rb_cLibSSHSession, "log_verbosity=", m_set_log_verbosity, 1); + rb_define_method(rb_cLibSSHSession, "host=", m_set_host, 1); + rb_define_method(rb_cLibSSHSession, "user=", m_set_user, 1); + rb_define_method(rb_cLibSSHSession, "port=", m_set_port, 1); + rb_define_method(rb_cLibSSHSession, "bindaddr=", m_set_bindaddr, 1); + rb_define_method(rb_cLibSSHSession, "knownhosts=", m_set_knownhosts, 1); + rb_define_method(rb_cLibSSHSession, "timeout=", m_set_timeout, 1); + rb_define_method(rb_cLibSSHSession, "timeout_usec=", m_set_timeout_usec, 1); + rb_define_method(rb_cLibSSHSession, "protocol=", m_set_protocol, 1); + rb_define_method(rb_cLibSSHSession, "key_exchange=", m_set_key_exchange, 1); + rb_define_method(rb_cLibSSHSession, "hmac_c_s=", m_set_hmac_c_s, 1); + rb_define_method(rb_cLibSSHSession, "hmac_s_c=", m_set_hmac_s_c, 1); + rb_define_method(rb_cLibSSHSession, "hostkeys=", m_set_hostkeys, 1); + rb_define_method(rb_cLibSSHSession, "publickey_accepted_types=", m_set_publickey_accepted_types, 1); + rb_define_method(rb_cLibSSHSession, "compression=", m_set_compression, 1); + rb_define_method(rb_cLibSSHSession, "compression_level=", m_set_compression_level, 1); + rb_define_method(rb_cLibSSHSession, "compression_level=", m_set_compression_level, 1); + rb_define_method(rb_cLibSSHSession, "stricthostkeycheck=", m_set_stricthostkeycheck, 1); + rb_define_method(rb_cLibSSHSession, "proxycommand=", m_set_proxycommand, 1); + rb_define_method(rb_cLibSSHSession, "gssapi_client_identity=", m_set_gssapi_client_identity, 1); + rb_define_method(rb_cLibSSHSession, "gssapi_server_identity=", m_set_gssapi_server_identity, 1); + rb_define_method(rb_cLibSSHSession, "gssapi_delegate_credentials=", m_set_gssapi_delegate_credentials, 1); + + rb_define_method(rb_cLibSSHSession, "parse_config", m_parse_config, -1); + rb_define_method(rb_cLibSSHSession, "add_identity", m_add_identity, 1); + rb_define_method(rb_cLibSSHSession, "connect", m_connect, 0); + rb_define_method(rb_cLibSSHSession, "disconnect", m_disconnect, 0); + rb_define_method(rb_cLibSSHSession, "server_known", m_server_known, 0); + rb_define_method(rb_cLibSSHSession, "fd", m_fd, 0); + + rb_define_method(rb_cLibSSHSession, "userauth_none", m_userauth_none, 0); + rb_define_method(rb_cLibSSHSession, "userauth_password", m_userauth_password, 1); + rb_define_method(rb_cLibSSHSession, "userauth_list", m_userauth_list, 0); + rb_define_method(rb_cLibSSHSession, "userauth_publickey", m_userauth_publickey, 1); + rb_define_method(rb_cLibSSHSession, "userauth_publickey_auto", m_userauth_publickey_auto, 0); + rb_define_method(rb_cLibSSHSession, "userauth_kbdint", m_userauth_kbdint, 0); + rb_define_method(rb_cLibSSHSession, "userauth_kbdint_getnprompts", m_userauth_kbdint_getnpromts, 0); + rb_define_method(rb_cLibSSHSession, "userauth_kbdint_setanswer", m_userauth_kbdint_setanswer, 2); + rb_define_method(rb_cLibSSHSession, "get_publickey", m_get_publickey, 0); + rb_define_method(rb_cLibSSHSession, "write_knownhost", m_write_knownhost, 0); }