refactor
All checks were successful
BlockStorage/repertory/pipeline/head This commit looks good

This commit is contained in:
2024-10-22 19:11:00 -05:00
parent 84fc05acc0
commit 18c53fad9a
8 changed files with 55 additions and 56 deletions

View File

@ -19,10 +19,11 @@
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#include <utils/config.hpp>
#if !defined(_WIN32)
#include "utils/unix.hpp"
#include "utils/collection.hpp"
#include "utils/unix.hpp"
namespace repertory::utils {
#if !defined(__APPLE__)
@ -39,7 +40,7 @@ auto get_thread_id() -> std::uint64_t {
auto is_uid_member_of_group(const uid_t &uid, const gid_t &gid) -> bool {
std::vector<gid_t> groups{};
use_getpwuid(uid, [&groups](struct passwd *pass) {
auto res = use_getpwuid(uid, [&groups](struct passwd *pass) {
int group_count{};
if (getgrouplist(pass->pw_name, pass->pw_gid, nullptr, &group_count) < 0) {
groups.resize(static_cast<std::size_t>(group_count));
@ -52,6 +53,11 @@ auto is_uid_member_of_group(const uid_t &uid, const gid_t &gid) -> bool {
}
});
if (not res.ok) {
throw utils::error::create_exception(res.function_name,
{"use_getpwuid failed", res.reason});
}
return collection::includes(groups, gid);
}