summaryrefslogtreecommitdiffstats
path: root/source3/lib/unix_msg
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2014-07-28 11:54:16 +0000
committerJeremy Allison <jra@samba.org>2014-07-28 22:04:13 +0200
commitf1f43886f02966e3fe759d7406b84e46b38867fe (patch)
treec85dc3ce98e2548f98d841dfc0fb14af45a56d1c /source3/lib/unix_msg
parent8621870559c6274eaa645aa47109c75ebc190278 (diff)
downloadsamba-f1f43886f02966e3fe759d7406b84e46b38867fe.tar.gz
samba-f1f43886f02966e3fe759d7406b84e46b38867fe.tar.xz
samba-f1f43886f02966e3fe759d7406b84e46b38867fe.zip
unix_msg: Use struct initializers
Saves a few lines and bytes of .text Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/lib/unix_msg')
-rw-r--r--source3/lib/unix_msg/unix_msg.c64
1 files changed, 32 insertions, 32 deletions
diff --git a/source3/lib/unix_msg/unix_msg.c b/source3/lib/unix_msg/unix_msg.c
index 6728fc93a0..2da8b6fdf7 100644
--- a/source3/lib/unix_msg/unix_msg.c
+++ b/source3/lib/unix_msg/unix_msg.c
@@ -163,20 +163,19 @@ static int unix_dgram_init(const struct sockaddr_un *addr, size_t max_msg,
ctx->path[0] = '\0';
}
+ *ctx = (struct unix_dgram_ctx) {
+ .max_msg = max_msg,
+ .ev_funcs = ev_funcs,
+ .recv_callback = recv_callback,
+ .private_data = private_data,
+ .created_pid = (pid_t)-1
+ };
+
ctx->recv_buf = malloc(max_msg);
if (ctx->recv_buf == NULL) {
free(ctx);
return ENOMEM;
}
- ctx->max_msg = max_msg;
- ctx->ev_funcs = ev_funcs;
- ctx->recv_callback = recv_callback;
- ctx->private_data = private_data;
- ctx->sock_read_watch = NULL;
- ctx->send_pool = NULL;
- ctx->pool_read_watch = NULL;
- ctx->send_queues = NULL;
- ctx->created_pid = (pid_t)-1;
ctx->sock = socket(AF_UNIX, SOCK_DGRAM, 0);
if (ctx->sock == -1) {
@@ -486,15 +485,12 @@ static int unix_dgram_send(struct unix_dgram_ctx *ctx,
* Try a cheap nonblocking send
*/
- msg.msg_name = discard_const_p(struct sockaddr_un, dst);
- msg.msg_namelen = sizeof(*dst);
- msg.msg_iov = discard_const_p(struct iovec, iov);
- msg.msg_iovlen = iovlen;
-#ifdef HAVE_STRUCT_MSGHDR_MSG_CONTROL
- msg.msg_control = NULL;
- msg.msg_controllen = 0;
-#endif
- msg.msg_flags = 0;
+ msg = (struct msghdr) {
+ .msg_name = discard_const_p(struct sockaddr_un, dst),
+ .msg_namelen = sizeof(*dst),
+ .msg_iov = discard_const_p(struct iovec, iov),
+ .msg_iovlen = iovlen
+ };
ret = sendmsg(ctx->sock, &msg, 0);
if (ret >= 0) {
@@ -620,6 +616,13 @@ int unix_msg_init(const struct sockaddr_un *addr,
return ENOMEM;
}
+ *ctx = (struct unix_msg_ctx) {
+ .fragment_len = fragment_len,
+ .cookie = cookie,
+ .recv_callback = recv_callback,
+ .private_data = private_data
+ };
+
ret = unix_dgram_init(addr, fragment_len, ev_funcs,
unix_msg_recv, ctx, &ctx->dgram);
if (ret != 0) {
@@ -627,12 +630,6 @@ int unix_msg_init(const struct sockaddr_un *addr,
return ret;
}
- ctx->fragment_len = fragment_len;
- ctx->cookie = cookie;
- ctx->recv_callback = recv_callback;
- ctx->private_data = private_data;
- ctx->msgs = NULL;
-
*result = ctx;
return 0;
}
@@ -670,9 +667,11 @@ int unix_msg_send(struct unix_msg_ctx *ctx, const struct sockaddr_un *dst,
return unix_dgram_send(ctx->dgram, dst, tmp_iov, iovlen+1);
}
- hdr.msglen = msglen;
- hdr.pid = getpid();
- hdr.sock = unix_dgram_sock(ctx->dgram);
+ hdr = (struct unix_msg_hdr) {
+ .msglen = msglen,
+ .pid = getpid(),
+ .sock = unix_dgram_sock(ctx->dgram)
+ };
iov_copy = malloc(sizeof(struct iovec) * (iovlen + 2));
if (iov_copy == NULL) {
@@ -790,11 +789,12 @@ static void unix_msg_recv(struct unix_dgram_ctx *dgram_ctx,
if (msg == NULL) {
return;
}
- msg->msglen = hdr.msglen;
- msg->received = 0;
- msg->sender_pid = hdr.pid;
- msg->sender_sock = hdr.sock;
- msg->cookie = cookie;
+ *msg = (struct unix_msg) {
+ .msglen = hdr.msglen,
+ .sender_pid = hdr.pid,
+ .sender_sock = hdr.sock,
+ .cookie = cookie
+ };
DLIST_ADD(ctx->msgs, msg);
}