summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--utils/statd/statd.c29
1 files changed, 13 insertions, 16 deletions
diff --git a/utils/statd/statd.c b/utils/statd/statd.c
index a44f39f..091ced9 100644
--- a/utils/statd/statd.c
+++ b/utils/statd/statd.c
@@ -249,7 +249,6 @@ int main (int argc, char **argv)
int arg;
int port = 0, out_port = 0;
struct rlimit rlim;
- int once = 1;
int pipefds[2] = { -1, -1};
char status;
@@ -485,24 +484,22 @@ int main (int argc, char **argv)
*/
load_state();
- for (;;) {
- pmap_unset (SM_PROG, SM_VERS);
+ pmap_unset (SM_PROG, SM_VERS);
- /* If we got this far, we have successfully started, so notify parent */
- if (pipefds[1] > 0) {
- status = 0;
- write(pipefds[1], &status, 1);
- close(pipefds[1]);
- pipefds[1] = -1;
- }
+ /* this registers both UDP and TCP services */
+ rpc_init("statd", SM_PROG, SM_VERS, sm_prog_1, port);
- /* this registers both UDP and TCP services */
- rpc_init("statd", SM_PROG, SM_VERS, sm_prog_1, port);
+ /* If we got this far, we have successfully started, so notify parent */
+ if (pipefds[1] > 0) {
+ status = 0;
+ write(pipefds[1], &status, 1);
+ close(pipefds[1]);
+ pipefds[1] = -1;
+ }
- if (once) {
- once = 0;
- drop_privs();
- }
+ drop_privs();
+
+ for (;;) {
/*
* Handle incoming requests: SM_NOTIFY socket requests, as
* well as callbacks from lockd.