Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Andreas Schneider <asn@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
off_t ofs = 0;
size_t avail = 0;
size_t remain;
+ int rc;
/* to give better errors */
if (ret == -1) {
}
if (avail == 0) {
- errno = saved_errno;
- return 0;
+ rc = 0;
+ goto done;
}
if (ret == -1) {
}
if (un_addr != NULL) {
- int rc;
-
rc = sockaddr_convert_from_un(si,
un_addr,
un_addrlen,
break;
}
+ rc = 0;
done:
free(buf);
errno = saved_errno;
- return 0;
+
+#ifdef HAVE_STRUCT_MSGHDR_MSG_CONTROL
+ if (rc == 0 &&
+ msg->msg_controllen > 0 &&
+ msg->msg_control != NULL) {
+ rc = swrap_msghdr_add_socket_info(si, msg);
+ if (rc < 0) {
+ return -1;
+ }
+ }
+#endif
+
+ return rc;
}
/****************************************************************************