diff options
author | Lennart Poettering <lennart@poettering.net> | 2011-04-16 03:42:18 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2011-04-16 03:42:18 +0200 |
commit | 49f91047afb48b8ee5728c68ba75782463176fd4 (patch) | |
tree | 0716937a2cad68b3e0ee9b9f165d056bc2375d8c | |
parent | 3d3961f26770b2949a30a72457e1660969bc17b8 (diff) |
socket: guarantee order in which sockets are passed to be the one of the configuration file
-rw-r--r-- | TODO | 6 | ||||
-rw-r--r-- | src/load-fragment.c | 9 |
2 files changed, 7 insertions, 8 deletions
@@ -36,12 +36,6 @@ Features: * use pivot_root on shutdown so that we can unmount the root directory. -* make sure multiple sockets in a .socket file appear in the order they are listed - currently we get: - [Socket] - ListenSequentialPacket=@/org/kernel/udev/udevd --> 4 - ListenNetlink=kobject-uevent 1 --> 3 - * fix alsa mixer restore to not print error when no config is stored * show enablement status in systemctl status diff --git a/src/load-fragment.c b/src/load-fragment.c index a7e16ca1b..c48d764a3 100644 --- a/src/load-fragment.c +++ b/src/load-fragment.c @@ -198,7 +198,7 @@ static int config_parse_listen( void *data, void *userdata) { - SocketPort *p; + SocketPort *p, *tail; Socket *s; assert(filename); @@ -255,7 +255,12 @@ static int config_parse_listen( } p->fd = -1; - LIST_PREPEND(SocketPort, port, s->ports, p); + + if (s->ports) { + LIST_FIND_TAIL(SocketPort, port, s->ports, tail); + LIST_INSERT_AFTER(SocketPort, port, s->ports, tail, p); + } else + LIST_PREPEND(SocketPort, port, s->ports, p); return 0; } |