chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
unit: set default working directory to the user's home directory when running in...
[elogind.git]
/
src
/
core
/
dbus.c
diff --git
a/src/core/dbus.c
b/src/core/dbus.c
index ddf91f225a305d2369dad72e2d2c72ddb8655284..1bc83a2c2aa98e1423cd91922f6506e156e3e7de 100644
(file)
--- a/
src/core/dbus.c
+++ b/
src/core/dbus.c
@@
-6,16
+6,16
@@
Copyright 2010 Lennart Poettering
systemd is free software; you can redistribute it and/or modify it
Copyright 2010 Lennart Poettering
systemd is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
+ under the terms of the GNU
Lesser
General Public License as published by
+ the Free Software Foundation; either version 2
.1
of the License, or
(at your option) any later version.
systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
(at your option) any later version.
systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
+
Lesser
General Public License for more details.
- You should have received a copy of the GNU General Public License
+ You should have received a copy of the GNU
Lesser
General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
@@
-1095,7
+1095,7
@@
static int bus_init_private(Manager *m) {
goto fail;
}
goto fail;
}
- mkdir_parents(p+10, 0755);
+ mkdir_parents
_label
(p+10, 0755);
unlink(p+10);
m->private_bus = dbus_server_listen(p, &error);
free(p);
unlink(p+10);
m->private_bus = dbus_server_listen(p, &error);
free(p);
@@
-1167,13
+1167,15
@@
static void shutdown_connection(Manager *m, DBusConnection *c) {
Job *j;
Iterator i;
Job *j;
Iterator i;
- HASHMAP_FOREACH(j, m->jobs, i)
- if (j->bus == c) {
- free(j->bus_client);
- j->bus_client = NULL;
-
- j->bus = NULL;
+ HASHMAP_FOREACH(j, m->jobs, i) {
+ JobBusClient *cl, *nextcl;
+ LIST_FOREACH_SAFE(client, cl, nextcl, j->bus_client_list) {
+ if (cl->bus == c) {
+ LIST_REMOVE(JobBusClient, client, j->bus_client_list, cl);
+ free(cl);
+ }
}
}
+ }
set_remove(m->bus_connections, c);
set_remove(m->bus_connections_for_dispatch, c);
set_remove(m->bus_connections, c);
set_remove(m->bus_connections_for_dispatch, c);