}
#define IOVEC_NULL (struct iovec) {}
-#define IOVEC_INIT(base, len) { .iov_base = (base), .iov_len = (len) }
-#define IOVEC_MAKE(base, len) (struct iovec) IOVEC_INIT(base, len)
-#define IOVEC_INIT_STRING(string) \
+#define IOVEC_MAKE(base, len) (struct iovec) { .iov_base = (base), .iov_len = (len) }
+#define IOVEC_MAKE_STRING(string) \
({ \
char *_s = (char*) (string); \
IOVEC_MAKE(_s, strlen(_s)); \
})
-#define IOVEC_MAKE_STRING(string) IOVEC_INIT_STRING(string)
char* set_iovec_string_field(struct iovec *iovec, size_t *n_iovec, const char *field, const char *value);
char* set_iovec_string_field_free(struct iovec *iovec, size_t *n_iovec, const char *field, char *value);
/* Let's store the user name in the lock file, so that we can use it for looking up the username for a UID */
l = pwritev(lock_fd,
(struct iovec[2]) {
- IOVEC_INIT_STRING(name),
- IOVEC_INIT((char[1]) { '\n' }, 1),
+ IOVEC_MAKE_STRING(name),
+ IOVEC_MAKE((char[1]) { '\n' }, 1),
}, 2, 0);
if (l < 0) {
r = -errno;
static int dynamic_user_pop(DynamicUser *d, uid_t *ret_uid, int *ret_lock_fd) {
uid_t uid = UID_INVALID;
- struct iovec iov = IOVEC_INIT(&uid, sizeof(uid));
+ struct iovec iov = IOVEC_MAKE(&uid, sizeof(uid));
int lock_fd;
ssize_t k;
}
static int dynamic_user_push(DynamicUser *d, uid_t uid, int lock_fd) {
- struct iovec iov = IOVEC_INIT(&uid, sizeof(uid));
+ struct iovec iov = IOVEC_MAKE(&uid, sizeof(uid));
assert(d);
if (writev(user_lookup_fd,
(struct iovec[]) {
- IOVEC_INIT(&uid, sizeof(uid)),
- IOVEC_INIT(&gid, sizeof(gid)),
- IOVEC_INIT_STRING(unit->id) }, 3) < 0)
+ IOVEC_MAKE(&uid, sizeof(uid)),
+ IOVEC_MAKE(&gid, sizeof(gid)),
+ IOVEC_MAKE_STRING(unit->id) }, 3) < 0)
return -errno;
return 0;
* identical to NAME_MAX. For now we use that, but this should be updated one day when the final
* limit is known. */
char iov_buffer[PATH_MAX + NAME_MAX + 2];
- struct iovec iov = IOVEC_INIT(iov_buffer, sizeof(iov_buffer));
+ struct iovec iov = IOVEC_MAKE(iov_buffer, sizeof(iov_buffer));
ssize_t n = receive_one_fd_iov(seq[0], &iov, 1, 0, &fd);
if (n == -EIO)
/* Parent */
char buf[64];
- struct iovec iov = IOVEC_INIT(buf, sizeof(buf)-1);
+ struct iovec iov = IOVEC_MAKE(buf, sizeof(buf)-1);
_cleanup_close_ int fd;
pair[1] = safe_close(pair[1]);
if (r == 0) {
/* Child */
- struct iovec iov = IOVEC_INIT_STRING(wire_contents);
+ struct iovec iov = IOVEC_MAKE_STRING(wire_contents);
char tmpfile[] = "/tmp/test-socket-util-passfd-contents-read-XXXXXX";
pair[0] = safe_close(pair[0]);
/* Parent */
char buf[64];
- struct iovec iov = IOVEC_INIT(buf, sizeof(buf)-1);
+ struct iovec iov = IOVEC_MAKE(buf, sizeof(buf)-1);
_cleanup_close_ int fd;
ssize_t k;
if (r == 0) {
/* Child */
- struct iovec iov = IOVEC_INIT_STRING(wire_contents);
+ struct iovec iov = IOVEC_MAKE_STRING(wire_contents);
pair[0] = safe_close(pair[0]);
/* Parent */
char buf[64];
- struct iovec iov = IOVEC_INIT(buf, sizeof(buf)-1);
+ struct iovec iov = IOVEC_MAKE(buf, sizeof(buf)-1);
int fd = -999;
ssize_t k;
/* Parent */
char buf[64];
- struct iovec iov = IOVEC_INIT(buf, sizeof(buf)-1);
+ struct iovec iov = IOVEC_MAKE(buf, sizeof(buf)-1);
int fd = -999;
ssize_t k;
if (r == 0) {
/* Child */
- struct iovec iov = IOVEC_INIT_STRING(""); /* zero-length iov */
+ struct iovec iov = IOVEC_MAKE_STRING(""); /* zero-length iov */
assert_se(iov.iov_len == 0);
pair[0] = safe_close(pair[0]);
/* Parent */
char buf[64];
- struct iovec iov = IOVEC_INIT(buf, sizeof(buf)-1);
+ struct iovec iov = IOVEC_MAKE(buf, sizeof(buf)-1);
int fd = -999;
ssize_t k;