lib: Make messaging_send_iov_from return 0/errno
authorVolker Lendecke <vl@samba.org>
Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)
committerJeremy Allison <jra@samba.org>
Wed, 7 Oct 2015 21:54:06 +0000 (23:54 +0200)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/include/messages.h
source3/lib/messages.c
source3/lib/messages_ctdbd.c
source3/smbd/notifyd/notifyd.c

index 5ad155b5d565bbf84d002b34277dcd9edfd672e2..9a3ea25b6494d4ee6f663354453e6a77842e8014 100644 (file)
@@ -123,11 +123,11 @@ NTSTATUS messaging_send(struct messaging_context *msg_ctx,
 NTSTATUS messaging_send_buf(struct messaging_context *msg_ctx,
                            struct server_id server, uint32_t msg_type,
                            const uint8_t *buf, size_t len);
-NTSTATUS messaging_send_iov_from(struct messaging_context *msg_ctx,
-                                struct server_id src, struct server_id dst,
-                                uint32_t msg_type,
-                                const struct iovec *iov, int iovlen,
-                                const int *fds, size_t num_fds);
+int messaging_send_iov_from(struct messaging_context *msg_ctx,
+                           struct server_id src, struct server_id dst,
+                           uint32_t msg_type,
+                           const struct iovec *iov, int iovlen,
+                           const int *fds, size_t num_fds);
 NTSTATUS messaging_send_iov(struct messaging_context *msg_ctx,
                            struct server_id server, uint32_t msg_type,
                            const struct iovec *iov, int iovlen,
index 717cd4c1c5fecbc520b10823d5f124b46d3f9a4d..03e60975b0e420a20fc911173567f851c0de33ba 100644 (file)
@@ -518,37 +518,34 @@ NTSTATUS messaging_send_buf(struct messaging_context *msg_ctx,
        return messaging_send(msg_ctx, server, msg_type, &blob);
 }
 
-NTSTATUS messaging_send_iov_from(struct messaging_context *msg_ctx,
-                                struct server_id src, struct server_id dst,
-                                uint32_t msg_type,
-                                const struct iovec *iov, int iovlen,
-                                const int *fds, size_t num_fds)
+int messaging_send_iov_from(struct messaging_context *msg_ctx,
+                           struct server_id src, struct server_id dst,
+                           uint32_t msg_type,
+                           const struct iovec *iov, int iovlen,
+                           const int *fds, size_t num_fds)
 {
        int ret;
        uint8_t hdr[MESSAGE_HDR_LENGTH];
        struct iovec iov2[iovlen+1];
 
        if (server_id_is_disconnected(&dst)) {
-               return NT_STATUS_INVALID_PARAMETER_MIX;
+               return EINVAL;
        }
 
        if (num_fds > INT8_MAX) {
-               return NT_STATUS_INVALID_PARAMETER_MIX;
+               return EINVAL;
        }
 
        if (!procid_is_local(&dst)) {
                if (num_fds > 0) {
-                       return NT_STATUS_NOT_SUPPORTED;
+                       return ENOSYS;
                }
 
                ret = msg_ctx->remote->send_fn(src, dst,
                                               msg_type, iov, iovlen,
                                               NULL, 0,
                                               msg_ctx->remote);
-               if (ret != 0) {
-                       return map_nt_error_from_unix(ret);
-               }
-               return NT_STATUS_OK;
+               return ret;
        }
 
        message_hdr_put(hdr, msg_type, src, dst);
@@ -559,10 +556,7 @@ NTSTATUS messaging_send_iov_from(struct messaging_context *msg_ctx,
        ret = messaging_dgm_send(dst.pid, iov2, iovlen+1, fds, num_fds);
        unbecome_root();
 
-       if (ret != 0) {
-               return map_nt_error_from_unix(ret);
-       }
-       return NT_STATUS_OK;
+       return ret;
 }
 
 NTSTATUS messaging_send_iov(struct messaging_context *msg_ctx,
@@ -570,8 +564,14 @@ NTSTATUS messaging_send_iov(struct messaging_context *msg_ctx,
                            const struct iovec *iov, int iovlen,
                            const int *fds, size_t num_fds)
 {
-       return messaging_send_iov_from(msg_ctx, msg_ctx->id, dst, msg_type,
-                                      iov, iovlen, fds, num_fds);
+       int ret;
+
+       ret = messaging_send_iov_from(msg_ctx, msg_ctx->id, dst, msg_type,
+                                     iov, iovlen, fds, num_fds);
+       if (ret != 0) {
+               return map_nt_error_from_unix(ret);
+       }
+       return NT_STATUS_OK;
 }
 
 static struct messaging_rec *messaging_rec_dup(TALLOC_CTX *mem_ctx,
index 90bae76c8c5925727cfd0c333165e841bd0d1fb2..48563a832cd28c81365c8f3900bccd3cbe164648 100644 (file)
@@ -112,7 +112,7 @@ static int messaging_ctdb_recv(
        struct messaging_context *msg_ctx = talloc_get_type_abort(
                private_data, struct messaging_context);
        struct server_id me = messaging_server_id(msg_ctx);
-       NTSTATUS status;
+       int ret;
        struct iovec iov;
        struct server_id src, dst;
        enum messaging_type msg_type;
@@ -148,12 +148,12 @@ static int messaging_ctdb_recv(
         * Go through the event loop
         */
 
-       status = messaging_send_iov_from(msg_ctx, src, dst, msg_type,
-                                        &iov, 1, NULL, 0);
+       ret = messaging_send_iov_from(msg_ctx, src, dst, msg_type,
+                                     &iov, 1, NULL, 0);
 
-       if (!NT_STATUS_IS_OK(status)) {
+       if (ret != 0) {
                DEBUG(10, ("%s: messaging_send_iov_from failed: %s\n",
-                          __func__, nt_errstr(status)));
+                          __func__, strerror(ret)));
        }
 
        return 0;
index 06f48cf2b5961b617c8f4fb000a5db80de9a0da2..141556da94ad826f21c11f85faefeed34ac3174d 100644 (file)
@@ -791,7 +791,7 @@ static void notifyd_send_delete(struct messaging_context *msg_ctx,
        };
        uint8_t nul = 0;
        struct iovec iov[3];
-       NTSTATUS status;
+       int ret;
 
        /*
         * Send a rec_change to ourselves to delete a dead entry
@@ -803,13 +803,13 @@ static void notifyd_send_delete(struct messaging_context *msg_ctx,
        iov[1] = (struct iovec) { .iov_base = key.dptr, .iov_len = key.dsize };
        iov[2] = (struct iovec) { .iov_base = &nul, .iov_len = sizeof(nul) };
 
-       status = messaging_send_iov_from(
+       ret = messaging_send_iov_from(
                msg_ctx, instance->client, messaging_server_id(msg_ctx),
                MSG_SMB_NOTIFY_REC_CHANGE, iov, ARRAY_SIZE(iov), NULL, 0);
 
-       if (!NT_STATUS_IS_OK(status)) {
+       if (ret != 0) {
                DEBUG(10, ("%s: messaging_send_iov_from returned %s\n",
-                          __func__, nt_errstr(status)));
+                          __func__, strerror(ret)));
        }
 }