From d37a4fa78806d9dd02586ef6696332ba944ae906 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Mon, 17 Dec 2007 15:26:47 -0500 Subject: [PATCH] libuuid: Only try to start the uuidd daemon a limited number of times If we fail to create the uuidd daemon after 5 or 6 tries, another 10,000 tries probably won't be successful. Signed-off-by: "Theodore Ts'o" --- lib/uuid/gen_uuid.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/uuid/gen_uuid.c b/lib/uuid/gen_uuid.c index 1918b3b..397a207 100644 --- a/lib/uuid/gen_uuid.c +++ b/lib/uuid/gen_uuid.c @@ -394,6 +394,7 @@ static int get_uuid_via_daemon(int op, uuid_t out, int *num) pid_t pid; static const char *uuidd_path = UUIDD_PATH; static int access_ret = -2; + static int start_attempts = 0; if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) return -1; @@ -405,7 +406,7 @@ static int get_uuid_via_daemon(int op, uuid_t out, int *num) sizeof(struct sockaddr_un)) < 0) { if (access_ret == -2) access_ret = access(uuidd_path, X_OK); - if (access_ret == 0) { + if (access_ret == 0 && start_attempts++ < 5) { if ((pid = fork()) == 0) { execl(uuidd_path, "uuidd", "-qT", "300", 0); exit(1); -- 1.8.3.1