diff --git a/src/basic/runtime-scope.h b/src/basic/runtime-scope.h index 54c797e742..94c2d2ea6a 100644 --- a/src/basic/runtime-scope.h +++ b/src/basic/runtime-scope.h @@ -15,3 +15,20 @@ const char* runtime_scope_to_string(RuntimeScope scope) _const_; RuntimeScope runtime_scope_from_string(const char *s) _const_; const char* runtime_scope_cmdline_option_to_string(RuntimeScope scope) _const_; + +static inline mode_t runtime_scope_to_socket_mode(RuntimeScope scope) { + /* Returns the right socket mode to use for binding AF_UNIX sockets intended for the specified + * scope. If system mode is selected the whole system can connect to it, if user mode is selected + * only the user can connect to it. */ + + switch (scope) { + case RUNTIME_SCOPE_SYSTEM: + return 0666; + + case RUNTIME_SCOPE_USER: + return 0600; + + default: + return MODE_INVALID; + } +}