chiark / gitweb /
add functions for dumping server state
[elogind.git] / name.c
diff --git a/name.c b/name.c
index f29ce2298bbf3f73d2f203deb4b3f22cd71b5c06..80ce5d5b36a6a2bff20d35b3e9d124506f95ea02 100644 (file)
--- a/name.c
+++ b/name.c
@@ -112,7 +112,6 @@ static void bidi_set_free(Name *name, Set *s) {
         Name *other;
 
         assert(name);
-        assert(s);
 
         /* Frees the set and makes sure we are dropped from the
          * inverse pointers */
@@ -360,3 +359,31 @@ int name_merge(Name *name, Name *other) {
 
         return 0;
 }
+
+const char* name_id(Name *n) {
+        assert(n);
+
+        return set_first(n->meta.names);
+}
+
+void name_dump(Name *n, FILE *f) {
+
+        static const char* const state_table[_NAME_STATE_MAX] = {
+                [NAME_STUB] = "STUB",
+                [NAME_LOADED] = "LOADED",
+                [NAME_FAILED] = "FAILED"
+        };
+
+        assert(n);
+
+        fprintf(stderr,
+                "Name %s (%s), state %s\n",
+                name_id(n),
+                n->meta.description ? n->meta.description : name_id(n),
+                state_table[n->meta.state]);
+
+        if (n->meta.job) {
+                fprintf(f, "\tâ–¶ ");
+                job_dump(n->meta.job, f);
+        }
+}