From 667f7bb5c6221037f40dd44bc89527e478ad7f7e Mon Sep 17 00:00:00 2001 From: Tomas Jelinek Date: Wed, 10 Aug 2022 14:47:53 +0200 Subject: [PATCH 1/2] fix ruby socket permissions --- pcsd/rserver.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/pcsd/rserver.rb b/pcsd/rserver.rb index c37f9df4..a54509fe 100644 --- a/pcsd/rserver.rb +++ b/pcsd/rserver.rb @@ -7,6 +7,29 @@ require 'thin' require 'settings.rb' +# Replace Thin::Backends::UnixServer:connect +# The only change is 'File.umask(0o777)' instead of 'File.umask(0)' to properly +# set python-ruby socket permissions +module Thin + module Backends + class UnixServer < Base + def connect + at_exit { remove_socket_file } # In case it crashes + old_umask = File.umask(0o077) + begin + EventMachine.start_unix_domain_server(@socket, UnixConnection, &method(:initialize_connection)) + # HACK EventMachine.start_unix_domain_server doesn't return the connection signature + # so we have to go in the internal stuff to find it. + @signature = EventMachine.instance_eval{@acceptors.keys.first} + ensure + File.umask(old_umask) + end + end + end + end +end + + def pack_response(response) return [200, {}, [response.to_json.to_str]] end -- 2.37.2