Mercurial > dovecot > core-2.2
changeset 10573:823356f533c5 HEAD
lib-master: Try for 0.5 secs to connect to master-auth socket.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 23 Jan 2010 12:40:22 +0200 |
parents | 26b5209dc4f4 |
children | 354d3b1eee03 |
files | src/lib-master/master-auth.c |
diffstat | 1 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-master/master-auth.c Sat Jan 23 12:37:35 2010 +0200 +++ b/src/lib-master/master-auth.c Sat Jan 23 12:40:22 2010 +0200 @@ -12,6 +12,8 @@ #include <unistd.h> #include <sys/stat.h> +#define SOCKET_CONNECT_RETRY_MSECS 500 + struct master_auth_connection { struct master_auth *auth; unsigned int tag; @@ -172,12 +174,15 @@ buffer_append(buf, &req, sizeof(req)); buffer_append(buf, data, req.data_size); - conn->fd = net_connect_unix(auth->path); - if (conn->fd == -1) + conn->fd = net_connect_unix_with_retries(auth->path, + SOCKET_CONNECT_RETRY_MSECS); + if (conn->fd == -1) { i_error("net_connect_unix(%s) failed: %m", auth->path); + master_auth_connection_deinit(&conn); + return; + } - ret = conn->fd == -1 ? -1 : - fd_send(conn->fd, fd, buf->data, buf->used); + ret = fd_send(conn->fd, fd, buf->data, buf->used); if (ret < 0) i_error("fd_send(%d) failed: %m", fd); else if ((size_t)ret != buf->used) {