diff options
author | Volker Lendecke <vl@samba.org> | 2014-08-02 13:26:44 +0200 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2014-08-22 05:20:43 +0200 |
commit | 8d96a280f6174b54fe2674be6065c5b16f7ec04d (patch) | |
tree | e2c732571048a572640decdc856b418ea8148749 /source3 | |
parent | 8deb851200e5938a393932e7c50607f4180798ca (diff) | |
download | samba-8d96a280f6174b54fe2674be6065c5b16f7ec04d.tar.gz samba-8d96a280f6174b54fe2674be6065c5b16f7ec04d.tar.xz samba-8d96a280f6174b54fe2674be6065c5b16f7ec04d.zip |
messaging_dgm: Factor out messaging_dgm_lockfile_name
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Fri Aug 22 05:20:43 CEST 2014 on sn-devel-104
Diffstat (limited to 'source3')
-rw-r--r-- | source3/lib/messages_dgm.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/source3/lib/messages_dgm.c b/source3/lib/messages_dgm.c index 1bf1805f7c..659b835e92 100644 --- a/source3/lib/messages_dgm.c +++ b/source3/lib/messages_dgm.c @@ -47,6 +47,14 @@ static void messaging_dgm_recv(struct unix_msg_ctx *ctx, uint8_t *msg, size_t msg_len, void *private_data); +static char *messaging_dgm_lockfile_name(TALLOC_CTX *mem_ctx, + const char *cache_dir, + pid_t pid) +{ + return talloc_asprintf(mem_ctx, "%s/lck/%u", cache_dir, + (unsigned)pid); +} + static int messaging_dgm_context_destructor(struct messaging_dgm_context *c); static int messaging_dgm_lockfile_create(TALLOC_CTX *tmp_ctx, @@ -69,19 +77,17 @@ static int messaging_dgm_lockfile_create(TALLOC_CTX *tmp_ctx, } ok = directory_create_or_exist_strict(dir, dir_owner, 0755); + TALLOC_FREE(dir); if (!ok) { ret = errno; DEBUG(1, ("%s: Could not create lock directory: %s\n", __func__, strerror(ret))); - TALLOC_FREE(dir); return ret; } - lockfile_name = talloc_asprintf(tmp_ctx, "%s/%u", dir, - (unsigned)pid); - TALLOC_FREE(dir); + lockfile_name = messaging_dgm_lockfile_name(tmp_ctx, cache_dir, + (unsigned)pid); if (lockfile_name == NULL) { - DEBUG(1, ("%s: talloc_asprintf failed\n", __func__)); return ENOMEM; } @@ -144,8 +150,8 @@ static int messaging_dgm_lockfile_remove(TALLOC_CTX *tmp_ctx, char *lockfile_name; int ret; - lockfile_name = talloc_asprintf( - tmp_ctx, "%s/lck/%u", cache_dir, (unsigned)pid); + lockfile_name = messaging_dgm_lockfile_name( + tmp_ctx, cache_dir, pid); if (lockfile_name == NULL) { return ENOMEM; } @@ -320,8 +326,8 @@ int messaging_dgm_cleanup(struct messaging_dgm_context *ctx, pid_t pid) int fd, ret; struct flock lck = {}; - lockfile_name = talloc_asprintf(talloc_tos(), "%s/lck/%u", - ctx->cache_dir, (unsigned)pid); + lockfile_name = messaging_dgm_lockfile_name( + talloc_tos(), ctx->cache_dir, pid); if (lockfile_name == NULL) { return ENOMEM; } |