From: Timo Sirainen Date: Sun, 7 Feb 2010 17:13:55 +0000 (+0200) Subject: master: Don't check if service's executable exists if there are no listeners. X-Git-Tag: 2.0.beta3~129 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=78316af1d063a5d8a1d6cd420c108560ed966bee;p=thirdparty%2Fdovecot%2Fcore.git master: Don't check if service's executable exists if there are no listeners. --HG-- branch : HEAD --- diff --git a/src/master/service.c b/src/master/service.c index 0d7fdd0b8c..f8e5b39e4c 100644 --- a/src/master/service.c +++ b/src/master/service.c @@ -236,12 +236,6 @@ service_create(pool_t pool, const struct service_settings *set, p_strconcat(pool, set->master_set->libexec_dir, "/", set->executable, NULL); } - if (access(t_strcut(service->executable, ' '), X_OK) < 0) { - *error_r = t_strdup_printf("access(%s) failed: %m", - t_strcut(service->executable, ' ')); - return NULL; - } - /* set these later, so if something fails we don't have to worry about closing them */ service->log_fd[0] = -1; @@ -313,6 +307,13 @@ service_create(pool_t pool, const struct service_settings *set, return NULL; } + if (array_count(&service->listeners) > 0) { + if (access(t_strcut(service->executable, ' '), X_OK) < 0) { + *error_r = t_strdup_printf("access(%s) failed: %m", + t_strcut(service->executable, ' ')); + return NULL; + } + } return service; }