if (r == -EPROTO)
r = socket_address_parse_vsock(&address, e);
if (r < 0)
- return r;
+ return log_debug_errno(r, "Address NOTIFY_SOCKET='%s' is neither UNIX nor VSOCK, refusing: %m", e);
msghdr.msg_namelen = address.size;
/* If we didn't get an address (which is a normal pattern when specifying VSOCK tuples) error out,
* we always require a specific CID. */
if (address.sockaddr.vm.svm_family == AF_VSOCK && address.sockaddr.vm.svm_cid == VMADDR_CID_ANY)
- return -EINVAL;
+ return log_debug_errno(SYNTHETIC_ERRNO(EINVAL),
+ "VSOCK address in NOTIFY_SOCKET='%s' doesn't have CID, refusing.", e);
type = address.type == 0 ? SOCK_DGRAM : address.type;
} else {
/* Unless we're using SOCK_STREAM, we expect to write all the contents immediately. */
if (type != SOCK_STREAM && (size_t) n < iovec_total_size(msghdr.msg_iov, msghdr.msg_iovlen))
- return -EIO;
+ return log_debug_errno(SYNTHETIC_ERRNO(EIO),
+ "Incomplete notify message sent to '%s': %m", e);
/* Make sure we only send fds and ucred once, even if we're using SOCK_STREAM. */
msghdr.msg_control = NULL;
return log_debug_errno(SYNTHETIC_ERRNO(EPROTO), "Unexpectedly received data on notify socket.");
}
+ log_debug("Notify message sent to '%s': \"%s\"", e, state);
return 1;
}