]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/libsystemd/sd-bus/test-bus-creds.c
7eb7a38c39dc83623a354aa389549d3dd53503b6
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
6 #include "cgroup-util.h"
7 #include "errno-util.h"
10 int main(int argc
, char *argv
[]) {
11 _cleanup_(sd_bus_creds_unrefp
) sd_bus_creds
*creds
= NULL
;
14 test_setup_logging(LOG_DEBUG
);
16 if (IN_SET(cg_unified(), -ENOMEDIUM
, -ENOENT
))
17 return log_tests_skipped("/sys/fs/cgroup/ not available");
19 r
= sd_bus_creds_new_from_pid(&creds
, 0, _SD_BUS_CREDS_ALL
);
20 log_full_errno(r
< 0 ? LOG_ERR
: LOG_DEBUG
, r
, "sd_bus_creds_new_from_pid: %m");
23 bus_creds_dump(creds
, NULL
, true);
25 creds
= sd_bus_creds_unref(creds
);
27 r
= sd_bus_creds_new_from_pid(&creds
, 1, _SD_BUS_CREDS_ALL
);
28 if (!ERRNO_IS_NEG_PRIVILEGE(r
)) {
31 bus_creds_dump(creds
, NULL
, true);
34 creds
= sd_bus_creds_unref(creds
);
36 _cleanup_(sd_bus_unrefp
) sd_bus
*bus
= NULL
;
37 r
= sd_bus_default_system(&bus
);
39 log_warning_errno(r
, "Unable to connect to system bus, skipping rest of test.");
43 assert_se(sd_bus_get_unique_name(bus
, &unique
) >= 0);
45 r
= sd_bus_get_name_creds(bus
, unique
, _SD_BUS_CREDS_ALL
, &creds
);
46 log_full_errno(r
< 0 ? LOG_ERR
: LOG_DEBUG
, r
, "sd_bus_get_name_creds: %m");
50 bus_creds_dump(creds
, NULL
, true);