From 1a6dee5e26969db00ba7cfb4ca4b37e7d7cf69d1 Mon Sep 17 00:00:00 2001 From: HoneyryderChuck Date: Wed, 15 May 2024 15:32:51 +0100 Subject: [PATCH 1/3] update to latest jruby --- docker-compose-jruby.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose-jruby.yml b/docker-compose-jruby.yml index 6af0d51..de6309d 100644 --- a/docker-compose-jruby.yml +++ b/docker-compose-jruby.yml @@ -1,7 +1,7 @@ version: '3' services: netsnmp: - image: jruby:9.2 + image: jruby:9.4 environment: - JRUBY_OPTS=--debug entrypoint: From e0cb776ea53062ab83f1552270418db3a802aeb1 Mon Sep 17 00:00:00 2001 From: HoneyryderChuck Date: Wed, 15 May 2024 15:36:13 +0100 Subject: [PATCH 2/3] jruby does not implement UDPSocket#sendmsg ad #recvmsg_nonblock --- lib/netsnmp/session.rb | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/lib/netsnmp/session.rb b/lib/netsnmp/session.rb index 0bc6fc4..4f371f3 100644 --- a/lib/netsnmp/session.rb +++ b/lib/netsnmp/session.rb @@ -91,16 +91,31 @@ def send(payload) SOCK_FLAGS = Socket.const_defined?(:MSG_DONTWAIT) ? Socket::MSG_DONTWAIT : 0 - def write(payload) - perform_io do - @socket.sendmsg(payload, SOCK_FLAGS, @destaddr) + if RUBY_ENGINE == "jruby" + def write(payload) + perform_io do + @socket.send(payload, SOCK_FLAGS, @destaddr) + end end - end - def recv(bytesize = MAXPDUSIZE) - perform_io do - datagram, = @socket.recvmsg_nonblock(bytesize, SOCK_FLAGS) - datagram + def recv(bytesize = MAXPDUSIZE) + perform_io do + datagram, = @socket.recv_nonblock(bytesize, SOCK_FLAGS) + datagram + end + end + else + def write(payload) + perform_io do + @socket.sendmsg(payload, SOCK_FLAGS, @destaddr) + end + end + + def recv(bytesize = MAXPDUSIZE) + perform_io do + datagram, = @socket.recvmsg_nonblock(bytesize, SOCK_FLAGS) + datagram + end end end From a4f7776d817e11b77e86f08372262b9586ec92bd Mon Sep 17 00:00:00 2001 From: HoneyryderChuck Date: Wed, 15 May 2024 15:37:27 +0100 Subject: [PATCH 3/3] rearranged deps according with latest jruby reqs --- Gemfile | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 8ca4480..2e78285 100644 --- a/Gemfile +++ b/Gemfile @@ -12,13 +12,15 @@ platform :mri, :truffleruby do gem "xorcist", require: false end -if RUBY_VERSION >= "3.0.0" - gem "rubocop" - gem "rubocop-performance" +platform :mri do + if RUBY_VERSION >= "3.0.0" + gem "celluloid-io", "~> 0.17" if RUBY_VERSION >= "2.3.0" + gem "rbs" + gem "rubocop" + gem "rubocop-performance" + end end -gem "rbs" if RUBY_VERSION >= "3.0" - if RUBY_VERSION < "2.3" gem "simplecov", "< 0.11.0" elsif RUBY_VERSION < "2.4" @@ -31,4 +33,3 @@ else gem "simplecov" end -gem "celluloid-io", "~> 0.17" if RUBY_VERSION >= "2.3.0"