chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bus: don't generate NameAcquired/NameLost messages in the library
[elogind.git]
/
src
/
libsystemd-bus
/
bus-socket.c
diff --git
a/src/libsystemd-bus/bus-socket.c
b/src/libsystemd-bus/bus-socket.c
index b60facb20fd642fbb28416e0561611d3afccef51..d7d3b4dac5aa2bea3c4b21e40de7f3edc4fb5423 100644
(file)
--- a/
src/libsystemd-bus/bus-socket.c
+++ b/
src/libsystemd-bus/bus-socket.c
@@
-600,7
+600,7
@@
static int bus_socket_read_auth(sd_bus *b) {
return 1;
}
return 1;
}
-
static
int bus_socket_setup(sd_bus *b) {
+int bus_socket_setup(sd_bus *b) {
int enable;
socklen_t l;
int enable;
socklen_t l;
@@
-611,7
+611,7
@@
static int bus_socket_setup(sd_bus *b) {
enable = !b->bus_client;
setsockopt(b->input_fd, SOL_SOCKET, SO_PASSCRED, &enable, sizeof(enable));
enable = !b->bus_client;
setsockopt(b->input_fd, SOL_SOCKET, SO_PASSCRED, &enable, sizeof(enable));
- enable = !b->bus_client && (b->
hello_flags & KDBUS_HELLO
_ATTACH_SECLABEL);
+ enable = !b->bus_client && (b->
attach_flags & KDBUS
_ATTACH_SECLABEL);
setsockopt(b->input_fd, SOL_SOCKET, SO_PASSSEC, &enable, sizeof(enable));
/* Increase the buffers to a MB */
setsockopt(b->input_fd, SOL_SOCKET, SO_PASSSEC, &enable, sizeof(enable));
/* Increase the buffers to a MB */
@@
-668,7
+668,7
@@
static int bus_socket_start_auth_client(sd_bus *b) {
return bus_socket_write_auth(b);
}
return bus_socket_write_auth(b);
}
-
static
int bus_socket_start_auth(sd_bus *b) {
+int bus_socket_start_auth(sd_bus *b) {
assert(b);
b->state = BUS_AUTHENTICATING;
assert(b);
b->state = BUS_AUTHENTICATING;
@@
-891,16
+891,19
@@
static int bus_socket_read_message_need(sd_bus *bus, size_t *need) {
return 0;
}
return 0;
}
-static int bus_socket_make_message(sd_bus *bus, size_t size
, sd_bus_message **m
) {
+static int bus_socket_make_message(sd_bus *bus, size_t size) {
sd_bus_message *t;
void *b;
int r;
assert(bus);
sd_bus_message *t;
void *b;
int r;
assert(bus);
- assert(m);
assert(bus->rbuffer_size >= size);
assert(bus->state == BUS_RUNNING || bus->state == BUS_HELLO);
assert(bus->rbuffer_size >= size);
assert(bus->state == BUS_RUNNING || bus->state == BUS_HELLO);
+ r = bus_rqueue_make_room(bus);
+ if (r < 0)
+ return r;
+
if (bus->rbuffer_size > size) {
b = memdup((const uint8_t*) bus->rbuffer + size,
bus->rbuffer_size - size);
if (bus->rbuffer_size > size) {
b = memdup((const uint8_t*) bus->rbuffer + size,
bus->rbuffer_size - size);
@@
-909,7
+912,8
@@
static int bus_socket_make_message(sd_bus *bus, size_t size, sd_bus_message **m)
} else
b = NULL;
} else
b = NULL;
- r = bus_message_from_malloc(bus->rbuffer, size,
+ r = bus_message_from_malloc(bus,
+ bus->rbuffer, size,
bus->fds, bus->n_fds,
bus->ucred_valid ? &bus->ucred : NULL,
bus->label[0] ? bus->label : NULL,
bus->fds, bus->n_fds,
bus->ucred_valid ? &bus->ucred : NULL,
bus->label[0] ? bus->label : NULL,
@@
-925,11
+929,12
@@
static int bus_socket_make_message(sd_bus *bus, size_t size, sd_bus_message **m)
bus->fds = NULL;
bus->n_fds = 0;
bus->fds = NULL;
bus->n_fds = 0;
- *m = t;
+ bus->rqueue[bus->rqueue_size++] = t;
+
return 1;
}
return 1;
}
-int bus_socket_read_message(sd_bus *bus
, sd_bus_message **m
) {
+int bus_socket_read_message(sd_bus *bus) {
struct msghdr mh;
struct iovec iov;
ssize_t k;
struct msghdr mh;
struct iovec iov;
ssize_t k;
@@
-946,7
+951,6
@@
int bus_socket_read_message(sd_bus *bus, sd_bus_message **m) {
bool handle_cmsg = false;
assert(bus);
bool handle_cmsg = false;
assert(bus);
- assert(m);
assert(bus->state == BUS_RUNNING || bus->state == BUS_HELLO);
r = bus_socket_read_message_need(bus, &need);
assert(bus->state == BUS_RUNNING || bus->state == BUS_HELLO);
r = bus_socket_read_message_need(bus, &need);
@@
-954,7
+958,7
@@
int bus_socket_read_message(sd_bus *bus, sd_bus_message **m) {
return r;
if (bus->rbuffer_size >= need)
return r;
if (bus->rbuffer_size >= need)
- return bus_socket_make_message(bus, need
, m
);
+ return bus_socket_make_message(bus, need);
b = realloc(bus->rbuffer, need);
if (!b)
b = realloc(bus->rbuffer, need);
if (!b)
@@
-1044,7
+1048,7
@@
int bus_socket_read_message(sd_bus *bus, sd_bus_message **m) {
return r;
if (bus->rbuffer_size >= need)
return r;
if (bus->rbuffer_size >= need)
- return bus_socket_make_message(bus, need
, m
);
+ return bus_socket_make_message(bus, need);
return 1;
}
return 1;
}