/* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once #include "basic-forward.h" typedef enum RuntimeScope { RUNTIME_SCOPE_SYSTEM, /* for the system */ RUNTIME_SCOPE_USER, /* for a user */ RUNTIME_SCOPE_GLOBAL, /* for all users */ _RUNTIME_SCOPE_MAX, _RUNTIME_SCOPE_INVALID = -EINVAL, } RuntimeScope; 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; } }