summaryrefslogtreecommitdiffstats
path: root/source3/lib
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2014-06-04 14:42:46 +0000
committerJeremy Allison <jra@samba.org>2014-06-18 18:51:13 +0200
commit2f3435085e0d6f64cd41b2d42e446da8821abc4b (patch)
treea88edbc15d2a3af697df7021fb9f4136fba0c2a3 /source3/lib
parente6b33ce6112bc41f2a5027f2097c74537c056a5b (diff)
downloadsamba-2f3435085e0d6f64cd41b2d42e446da8821abc4b.tar.gz
samba-2f3435085e0d6f64cd41b2d42e446da8821abc4b.tar.xz
samba-2f3435085e0d6f64cd41b2d42e446da8821abc4b.zip
messaging3: Make messaging_dgm_cleanup return 0/errno
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/lib')
-rw-r--r--source3/lib/messages_dgm.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/source3/lib/messages_dgm.c b/source3/lib/messages_dgm.c
index fb0419da5b..1e6e9545e6 100644
--- a/source3/lib/messages_dgm.c
+++ b/source3/lib/messages_dgm.c
@@ -368,7 +368,7 @@ static void messaging_dgm_recv(struct unix_msg_ctx *ctx,
messaging_dispatch_rec(dgm_ctx->msg_ctx, &rec);
}
-NTSTATUS messaging_dgm_cleanup(struct messaging_context *msg_ctx, pid_t pid)
+int messaging_dgm_cleanup(struct messaging_context *msg_ctx, pid_t pid)
{
struct messaging_backend *be = messaging_local_backend(msg_ctx);
struct messaging_dgm_context *ctx = talloc_get_type_abort(
@@ -376,26 +376,25 @@ NTSTATUS messaging_dgm_cleanup(struct messaging_context *msg_ctx, pid_t pid)
char *lockfile_name, *socket_name;
int fd, ret;
struct flock lck = {};
- NTSTATUS status = NT_STATUS_OK;
lockfile_name = talloc_asprintf(talloc_tos(), "%s/lck/%u",
ctx->cache_dir, (unsigned)pid);
if (lockfile_name == NULL) {
- return NT_STATUS_NO_MEMORY;
+ return ENOMEM;
}
socket_name = talloc_asprintf(lockfile_name, "%s/msg/%u",
ctx->cache_dir, (unsigned)pid);
if (socket_name == NULL) {
TALLOC_FREE(lockfile_name);
- return NT_STATUS_NO_MEMORY;
+ return ENOMEM;
}
fd = open(lockfile_name, O_NONBLOCK|O_WRONLY, 0);
if (fd == -1) {
- status = map_nt_error_from_unix(errno);
+ ret = errno;
DEBUG(10, ("%s: open(%s) failed: %s\n", __func__,
- lockfile_name, strerror(errno)));
- return status;
+ lockfile_name, strerror(ret)));
+ return ret;
}
lck.l_type = F_WRLCK;
@@ -405,12 +404,12 @@ NTSTATUS messaging_dgm_cleanup(struct messaging_context *msg_ctx, pid_t pid)
ret = fcntl(fd, F_SETLK, &lck);
if (ret != 0) {
- status = map_nt_error_from_unix(errno);
+ ret = errno;
DEBUG(10, ("%s: Could not get lock: %s\n", __func__,
- strerror(errno)));
+ strerror(ret)));
TALLOC_FREE(lockfile_name);
close(fd);
- return status;
+ return ret;
}
(void)unlink(socket_name);
@@ -418,7 +417,7 @@ NTSTATUS messaging_dgm_cleanup(struct messaging_context *msg_ctx, pid_t pid)
(void)close(fd);
TALLOC_FREE(lockfile_name);
- return NT_STATUS_OK;
+ return 0;
}
NTSTATUS messaging_dgm_wipe(struct messaging_context *msg_ctx)
@@ -449,7 +448,6 @@ NTSTATUS messaging_dgm_wipe(struct messaging_context *msg_ctx)
}
while ((dp = readdir(msgdir)) != NULL) {
- NTSTATUS status;
unsigned long pid;
pid = strtoul(dp->d_name, NULL, 10);
@@ -467,9 +465,9 @@ NTSTATUS messaging_dgm_wipe(struct messaging_context *msg_ctx)
continue;
}
- status = messaging_dgm_cleanup(msg_ctx, pid);
+ ret = messaging_dgm_cleanup(msg_ctx, pid);
DEBUG(10, ("messaging_dgm_cleanup(%lu) returned %s\n",
- pid, nt_errstr(status)));
+ pid, ret ? strerror(ret) : "ok"));
}
closedir(msgdir);