X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Funit.c;h=840c1d1fc450556e56ce79b87045b1980eece2d0;hb=a7f241db3f1ae96ab2708092e1b31d2feb989947;hp=50f3b8fabd5f76266e0c50d66618763c197b17d6;hpb=8fe914ec81d9f57bcc083036f528b00119ed2e3b;p=elogind.git diff --git a/src/unit.c b/src/unit.c index 50f3b8fab..840c1d1fc 100644 --- a/src/unit.c +++ b/src/unit.c @@ -589,6 +589,7 @@ void unit_dump(Unit *u, FILE *f, const char *prefix) { timestamp3[FORMAT_TIMESTAMP_MAX], timestamp4[FORMAT_TIMESTAMP_MAX], timespan[FORMAT_TIMESPAN_MAX]; + Unit *following; assert(u); assert(u->meta.type >= 0); @@ -625,8 +626,8 @@ void unit_dump(Unit *u, FILE *f, const char *prefix) { SET_FOREACH(t, u->meta.names, i) fprintf(f, "%s\tName: %s\n", prefix, t); - if (u->meta.following) - fprintf(f, "%s\tFollowing: %s\n", prefix, u->meta.following->meta.id); + if ((following = unit_following(u))) + fprintf(f, "%s\tFollowing: %s\n", prefix, following->meta.id); if (u->meta.fragment_path) fprintf(f, "%s\tFragment Path: %s\n", prefix, u->meta.fragment_path); @@ -2081,6 +2082,15 @@ void unit_reset_maintenance(Unit *u) { UNIT_VTABLE(u)->reset_maintenance(u); } +Unit *unit_following(Unit *u) { + assert(u); + + if (UNIT_VTABLE(u)->following) + return UNIT_VTABLE(u)->following(u); + + return NULL; +} + static const char* const unit_type_table[_UNIT_TYPE_MAX] = { [UNIT_SERVICE] = "service", [UNIT_TIMER] = "timer",