X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=name.c;fp=name.c;h=cbd847a916e8aa8b2b4a927fb79fb60c15c86946;hb=42f4e3c4413ad35e3815f25211fee95d775488a7;hp=80ce5d5b36a6a2bff20d35b3e9d124506f95ea02;hpb=a66d02c3290008d50b2b52f84cfbf46a546ba831;p=elogind.git diff --git a/name.c b/name.c index 80ce5d5b3..cbd847a91 100644 --- a/name.c +++ b/name.c @@ -158,7 +158,7 @@ void name_free(Name *name) { Socket *s = SOCKET(name); for (i = 0; i < s->n_fds; i++) - nointr_close(s->fds[i]); + close_nointr(s->fds[i]); break; } @@ -369,19 +369,53 @@ const char* name_id(Name *n) { 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" + [NAME_STUB] = "stub", + [NAME_LOADED] = "loaded", + [NAME_FAILED] = "failed" + }; + + static const char* const socket_state_table[_SOCKET_STATE_MAX] = { + [SOCKET_DEAD] = "dead", + [SOCKET_BEFORE] = "before", + [SOCKET_START_PRE] = "start-pre", + [SOCKET_START] = "start", + [SOCKET_START_POST] = "start-post", + [SOCKET_LISTENING] = "listening", + [SOCKET_RUNNING] = "running", + [SOCKET_STOP_PRE] = "stop-pre", + [SOCKET_STOP] = "stop", + [SOCKET_STOP_POST] = "stop-post", + [SOCKET_MAINTAINANCE] = "maintainance" }; assert(n); fprintf(stderr, - "Name %s (%s), state %s\n", + "Name %s (\"%s\") in state %s\n", name_id(n), n->meta.description ? n->meta.description : name_id(n), state_table[n->meta.state]); + switch (n->meta.type) { + case NAME_SOCKET: { + int r; + char *s = NULL; + const char *t; + + if ((r = address_print(&n->socket.address, &s)) < 0) + t = strerror(-r); + else + t = s; + + fprintf(stderr, "\t%s in state %s\n", t, socket_state_table[n->socket.state]); + free(s); + break; + } + + default: + ; + } + if (n->meta.job) { fprintf(f, "\t▶ "); job_dump(n->meta.job, f);