mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-10-27 18:55:09 +03:00
unit: do wildcard expansion in ListenStream= and friends
This commit is contained in:
parent
31e54cc807
commit
1fd45a90f5
@ -251,7 +251,7 @@ static int config_parse_listen(
|
||||
if (streq(lvalue, "ListenFIFO")) {
|
||||
p->type = SOCKET_FIFO;
|
||||
|
||||
if (!(p->path = strdup(rvalue))) {
|
||||
if (!(p->path = unit_full_printf(UNIT(s), rvalue))) {
|
||||
free(p);
|
||||
return -ENOMEM;
|
||||
}
|
||||
@ -261,7 +261,7 @@ static int config_parse_listen(
|
||||
} else if (streq(lvalue, "ListenSpecial")) {
|
||||
p->type = SOCKET_SPECIAL;
|
||||
|
||||
if (!(p->path = strdup(rvalue))) {
|
||||
if (!(p->path = unit_full_printf(UNIT(s), rvalue))) {
|
||||
free(p);
|
||||
return -ENOMEM;
|
||||
}
|
||||
@ -272,7 +272,7 @@ static int config_parse_listen(
|
||||
|
||||
p->type = SOCKET_MQUEUE;
|
||||
|
||||
if (!(p->path = strdup(rvalue))) {
|
||||
if (!(p->path = unit_full_printf(UNIT(s), rvalue))) {
|
||||
free(p);
|
||||
return -ENOMEM;
|
||||
}
|
||||
@ -280,18 +280,30 @@ static int config_parse_listen(
|
||||
path_kill_slashes(p->path);
|
||||
|
||||
} else if (streq(lvalue, "ListenNetlink")) {
|
||||
p->type = SOCKET_SOCKET;
|
||||
char *k;
|
||||
int r;
|
||||
|
||||
if (socket_address_parse_netlink(&p->address, rvalue) < 0) {
|
||||
p->type = SOCKET_SOCKET;
|
||||
k = unit_full_printf(UNIT(s), rvalue);
|
||||
r = socket_address_parse_netlink(&p->address, k);
|
||||
free(k);
|
||||
|
||||
if (r < 0) {
|
||||
log_error("[%s:%u] Failed to parse address value, ignoring: %s", filename, line, rvalue);
|
||||
free(p);
|
||||
return 0;
|
||||
}
|
||||
|
||||
} else {
|
||||
p->type = SOCKET_SOCKET;
|
||||
char *k;
|
||||
int r;
|
||||
|
||||
if (socket_address_parse(&p->address, rvalue) < 0) {
|
||||
p->type = SOCKET_SOCKET;
|
||||
k = unit_full_printf(UNIT(s), rvalue);
|
||||
r = socket_address_parse(&p->address, k);
|
||||
free(k);
|
||||
|
||||
if (r < 0) {
|
||||
log_error("[%s:%u] Failed to parse address value, ignoring: %s", filename, line, rvalue);
|
||||
free(p);
|
||||
return 0;
|
||||
|
@ -36,6 +36,7 @@
|
||||
*
|
||||
* spawn user systemd
|
||||
* direct client API
|
||||
* add display symlinks also per-session
|
||||
*
|
||||
* udev:
|
||||
* drop redundant udev_device_get_is_initialized() use as soon as libudev is fixed
|
||||
|
Loading…
Reference in New Issue
Block a user