47 lines
1.3 KiB
Diff
47 lines
1.3 KiB
Diff
From 667f7bb5c6221037f40dd44bc89527e478ad7f7e Mon Sep 17 00:00:00 2001
|
|
From: Tomas Jelinek <tojeline@redhat.com>
|
|
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
|
|
|