X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=utils%2Fstatd%2Fsvc_run.c;h=597b68d31fdcc83f9b9d50c380983e9ffa565cee;hb=e36b61ba46d34841a6ad99857c7cc43fc8c1ee89;hp=e2d7c975df91a7014e55de09277ac833d0558f76;hpb=af93e0306d87bba3f703386fd6390e9bf8e76816;p=nfs-utils.git diff --git a/utils/statd/svc_run.c b/utils/statd/svc_run.c index e2d7c97..597b68d 100644 --- a/utils/statd/svc_run.c +++ b/utils/statd/svc_run.c @@ -88,6 +88,9 @@ my_svc_run(void) if (svc_stop) return; if (re_notify) { + change_state(); + dprintf(N_DEBUG, "Notifying...(new state %d)", + MY_STATE); notify_hosts(); re_notify = 0; } @@ -107,7 +110,9 @@ my_svc_run(void) tv.tv_sec); selret = select(FD_SETSIZE, &readfds, (void *) 0, (void *) 0, &tv); - } else { + } else if (run_mode & MODE_NOTIFY_ONLY) + return; + else { dprintf(N_DEBUG, "Waiting for client connections."); selret = select(FD_SETSIZE, &readfds, (void *) 0, (void *) 0, (struct timeval *) 0); @@ -118,7 +123,8 @@ my_svc_run(void) if (errno == EINTR || errno == ECONNREFUSED || errno == ENETUNREACH || errno == EHOSTUNREACH) continue; - note(N_ERROR, "my_svc_run() - select: %m"); + note(N_ERROR, "my_svc_run() - select: %s", + strerror (errno)); return; case 0: