chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
442e2de
)
bus: make system bus kdbus node world-accessible
author
Lennart Poettering
<lennart@poettering.net>
Thu, 26 Dec 2013 02:08:15 +0000
(
03:08
+0100)
committer
Lennart Poettering
<lennart@poettering.net>
Thu, 26 Dec 2013 02:08:15 +0000
(
03:08
+0100)
src/core/manager.c
patch
|
blob
|
history
src/libsystemd-bus/bus-kernel.c
patch
|
blob
|
history
src/libsystemd-bus/bus-kernel.h
patch
|
blob
|
history
src/libsystemd-bus/test-bus-kernel-benchmark.c
patch
|
blob
|
history
src/libsystemd-bus/test-bus-kernel-bloom.c
patch
|
blob
|
history
src/libsystemd-bus/test-bus-kernel.c
patch
|
blob
|
history
src/libsystemd-bus/test-bus-zero-copy.c
patch
|
blob
|
history
diff --git
a/src/core/manager.c
b/src/core/manager.c
index c26dcaa9996dc97c777d900fee291b870effc21c..6b33c1828341562b8848ec03157d0b356a32f49b 100644
(file)
--- a/
src/core/manager.c
+++ b/
src/core/manager.c
@@
-542,7
+542,7
@@
static int manager_setup_kdbus(Manager *m) {
if (m->running_as == SYSTEMD_USER && getenv("DBUS_SESSION_BUS_ADDRESS"))
return 0;
if (m->running_as == SYSTEMD_USER && getenv("DBUS_SESSION_BUS_ADDRESS"))
return 0;
- m->kdbus_fd = bus_kernel_create_bus(m->running_as == SYSTEMD_SYSTEM ? "system" : "user", &p);
+ m->kdbus_fd = bus_kernel_create_bus(m->running_as == SYSTEMD_SYSTEM ? "system" : "user",
m->running_as == SYSTEMD_SYSTEM,
&p);
if (m->kdbus_fd < 0) {
log_debug("Failed to set up kdbus: %s", strerror(-m->kdbus_fd));
return m->kdbus_fd;
if (m->kdbus_fd < 0) {
log_debug("Failed to set up kdbus: %s", strerror(-m->kdbus_fd));
return m->kdbus_fd;
diff --git
a/src/libsystemd-bus/bus-kernel.c
b/src/libsystemd-bus/bus-kernel.c
index fadb6830948d2bab24aef84e2693c2af5644c66d..d752d1fbe300152326ca6267f737c4805392ebc9 100644
(file)
--- a/
src/libsystemd-bus/bus-kernel.c
+++ b/
src/libsystemd-bus/bus-kernel.c
@@
-1131,7
+1131,7
@@
int kdbus_translate_attach_flags(uint64_t mask, uint64_t *kdbus_mask) {
return 0;
}
return 0;
}
-int bus_kernel_create_bus(const char *name, char **s) {
+int bus_kernel_create_bus(const char *name,
bool world,
char **s) {
struct kdbus_cmd_make *make;
struct kdbus_item *n;
int fd;
struct kdbus_cmd_make *make;
struct kdbus_item *n;
int fd;
@@
-1163,7
+1163,7
@@
int bus_kernel_create_bus(const char *name, char **s) {
n->type = KDBUS_ITEM_MAKE_NAME;
make->size += ALIGN8(n->size);
n->type = KDBUS_ITEM_MAKE_NAME;
make->size += ALIGN8(n->size);
- make->flags = KDBUS_MAKE_POLICY_OPEN;
+ make->flags = KDBUS_MAKE_POLICY_OPEN
| (world ? KDBUS_MAKE_ACCESS_WORLD : 0)
;
if (ioctl(fd, KDBUS_CMD_BUS_MAKE, make) < 0) {
close_nointr_nofail(fd);
if (ioctl(fd, KDBUS_CMD_BUS_MAKE, make) < 0) {
close_nointr_nofail(fd);
diff --git
a/src/libsystemd-bus/bus-kernel.h
b/src/libsystemd-bus/bus-kernel.h
index 67690f8dee1012440eeedf4cebb65da4d7e07874..2aba0bbe0a04dda3668d7bf1a8970e2b9fd36c6e 100644
(file)
--- a/
src/libsystemd-bus/bus-kernel.h
+++ b/
src/libsystemd-bus/bus-kernel.h
@@
-21,6
+21,8
@@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
+#include <stdbool.h>
+
#include "sd-bus.h"
#define KDBUS_ITEM_NEXT(item) \
#include "sd-bus.h"
#define KDBUS_ITEM_NEXT(item) \
@@
-61,7
+63,7
@@
int bus_kernel_take_fd(sd_bus *b);
int bus_kernel_write_message(sd_bus *bus, sd_bus_message *m);
int bus_kernel_read_message(sd_bus *bus);
int bus_kernel_write_message(sd_bus *bus, sd_bus_message *m);
int bus_kernel_read_message(sd_bus *bus);
-int bus_kernel_create_bus(const char *name, char **s);
+int bus_kernel_create_bus(const char *name,
bool world,
char **s);
int bus_kernel_create_namespace(const char *name, char **s);
int bus_kernel_create_starter(const char *bus, const char *name);
int bus_kernel_create_monitor(const char *bus);
int bus_kernel_create_namespace(const char *name, char **s);
int bus_kernel_create_starter(const char *bus, const char *name);
int bus_kernel_create_monitor(const char *bus);
diff --git
a/src/libsystemd-bus/test-bus-kernel-benchmark.c
b/src/libsystemd-bus/test-bus-kernel-benchmark.c
index 010a161328f43ca0a7d4684a5964563355d583d6..70f4fcd852834060fc5e0e8e8e6217598758fc60 100644
(file)
--- a/
src/libsystemd-bus/test-bus-kernel-benchmark.c
+++ b/
src/libsystemd-bus/test-bus-kernel-benchmark.c
@@
-239,7
+239,7
@@
int main(int argc, char *argv[]) {
assert_se(arg_loop_usec > 0);
assert_se(arg_loop_usec > 0);
- bus_ref = bus_kernel_create_bus("deine-mutter", &bus_name);
+ bus_ref = bus_kernel_create_bus("deine-mutter",
false,
&bus_name);
if (bus_ref == -ENOENT)
exit(EXIT_TEST_SKIP);
if (bus_ref == -ENOENT)
exit(EXIT_TEST_SKIP);
diff --git
a/src/libsystemd-bus/test-bus-kernel-bloom.c
b/src/libsystemd-bus/test-bus-kernel-bloom.c
index 62983eacc8ae82f5a8e46c9690944069609ac4e1..772831bdd960b896a33249bafc1b1d23946611c2 100644
(file)
--- a/
src/libsystemd-bus/test-bus-kernel-bloom.c
+++ b/
src/libsystemd-bus/test-bus-kernel-bloom.c
@@
-42,7
+42,7
@@
static void test_one(
sd_bus *a, *b;
int r;
sd_bus *a, *b;
int r;
- bus_ref = bus_kernel_create_bus("deine-mutter", &bus_name);
+ bus_ref = bus_kernel_create_bus("deine-mutter",
false,
&bus_name);
if (bus_ref == -ENOENT)
exit(EXIT_TEST_SKIP);
if (bus_ref == -ENOENT)
exit(EXIT_TEST_SKIP);
diff --git
a/src/libsystemd-bus/test-bus-kernel.c
b/src/libsystemd-bus/test-bus-kernel.c
index 8380b2c3114ed0ad521d3bf1c5f91935d8d412af..c78c6d42a4effac6ec937c6090762b2092a1b3f0 100644
(file)
--- a/
src/libsystemd-bus/test-bus-kernel.c
+++ b/
src/libsystemd-bus/test-bus-kernel.c
@@
-42,7
+42,7
@@
int main(int argc, char *argv[]) {
log_set_max_level(LOG_DEBUG);
log_set_max_level(LOG_DEBUG);
- bus_ref = bus_kernel_create_bus("deine-mutter", &bus_name);
+ bus_ref = bus_kernel_create_bus("deine-mutter",
false,
&bus_name);
if (bus_ref == -ENOENT)
return EXIT_TEST_SKIP;
if (bus_ref == -ENOENT)
return EXIT_TEST_SKIP;
diff --git
a/src/libsystemd-bus/test-bus-zero-copy.c
b/src/libsystemd-bus/test-bus-zero-copy.c
index 054c4c7952aaa4e0c71835a92ad5de4ebd29243a..dff3692246d6494661f9f442cd4f7b50b80d6a50 100644
(file)
--- a/
src/libsystemd-bus/test-bus-zero-copy.c
+++ b/
src/libsystemd-bus/test-bus-zero-copy.c
@@
-51,7
+51,7
@@
int main(int argc, char *argv[]) {
log_set_max_level(LOG_DEBUG);
log_set_max_level(LOG_DEBUG);
- bus_ref = bus_kernel_create_bus("deine-mutter", &bus_name);
+ bus_ref = bus_kernel_create_bus("deine-mutter",
false,
&bus_name);
if (bus_ref == -ENOENT)
return EXIT_TEST_SKIP;
if (bus_ref == -ENOENT)
return EXIT_TEST_SKIP;