const char *rvalue,
void *data,
void *userdata) {
+
char ***sv = ASSERT_PTR(data);
- const Unit *u = userdata;
+ const Unit *u = ASSERT_PTR(userdata);
int r;
assert(filename);
void *data,
void *userdata) {
+ Socket *s = ASSERT_PTR(SOCKET(data));
_cleanup_free_ SocketPort *p = NULL;
- SocketPort *tail;
- Socket *s;
int r;
assert(filename);
assert(lvalue);
assert(rvalue);
- assert(data);
-
- s = SOCKET(data);
if (isempty(rvalue)) {
/* An empty assignment removes all ports */
return 0;
}
- p = new0(SocketPort, 1);
+ p = new(SocketPort, 1);
if (!p)
return log_oom();
+ *p = (SocketPort) {
+ .socket = s,
+ .fd = -EBADF,
+ };
+
if (ltype != SOCKET_SOCKET) {
_cleanup_free_ char *k = NULL;
p->type = ltype;
} else if (streq(lvalue, "ListenNetlink")) {
- _cleanup_free_ char *k = NULL;
+ _cleanup_free_ char *k = NULL;
r = unit_path_printf(UNIT(s), rvalue, &k);
if (r < 0) {
return 0;
}
- if (k[0] == '/') { /* Only for AF_UNIX file system sockets… */
+ if (path_is_absolute(k)) { /* Only for AF_UNIX file system sockets… */
r = patch_var_run(unit, filename, line, lvalue, &k);
if (r < 0)
return r;
p->type = SOCKET_SOCKET;
}
- p->fd = -EBADF;
- p->auxiliary_fds = NULL;
- p->n_auxiliary_fds = 0;
- p->socket = s;
-
- tail = LIST_FIND_TAIL(port, s->ports);
- LIST_INSERT_AFTER(port, s->ports, tail, p);
-
- p = NULL;
-
+ LIST_APPEND(port, s->ports, TAKE_PTR(p));
return 0;
}