Jo-Philipp Wich [Thu, 15 Jan 2015 11:17:21 +0000 (12:17 +0100)]
system: attempt to parse /proc/device-tree/model
Fallback to /proc/device-tree/model if /tmp/sysinfo/model is not available.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Jo-Philipp Wich [Thu, 15 Jan 2015 10:51:52 +0000 (11:51 +0100)]
system: improve system name detection
Skip entries like "Processor: 0" which are common on x86, otherwise
an "ubus call system board" will just return "system: 0".
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Steven Barth [Fri, 9 Jan 2015 08:39:22 +0000 (09:39 +0100)]
inittab: don't close fds unconditionally since this breaks UML
Signed-off-by: Steven Barth <steven@midlink.org>
John Crispin [Sun, 14 Dec 2014 21:12:45 +0000 (22:12 +0100)]
only write to the watchdog if the fd is valid
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Tue, 2 Dec 2014 12:40:11 +0000 (13:40 +0100)]
previous commit accidentiall dropped the cgroup mount
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Fri, 28 Nov 2014 00:27:57 +0000 (01:27 +0100)]
add support for zram compressed tmpfs
Signed-off-by: John Crispin <blogic@openwrt.org>
Felix Fietkau [Wed, 19 Nov 2014 16:36:58 +0000 (17:36 +0100)]
service: fix ubus list command
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Luka Perkov [Tue, 11 Nov 2014 12:28:19 +0000 (12:28 +0000)]
initd: mount cgroup
If kernel is compiled with cgroup support it should be mounted. This change
does not effect kernels without cgroup support.
Signed-off-by: Luka Perkov <luka@openwrt.org>
Felix Fietkau [Sat, 8 Nov 2014 18:07:46 +0000 (19:07 +0100)]
inittab: clean up tty opening code, fix console shell job control issues
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
John Crispin [Wed, 5 Nov 2014 15:22:31 +0000 (16:22 +0100)]
call setsid during startup.
this fixes a bug where pgrp was not set up properly leading to a trail of carnage;
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Sat, 1 Nov 2014 22:23:47 +0000 (23:23 +0100)]
kmodloader takes longer than wdt timeout
on systms with slow flash the watchdog will trigger when a lot of modules are
included in the image.
Signed-off-by: John Crispin <blogic@openwrt.org>
Steven Barth [Wed, 5 Nov 2014 10:17:09 +0000 (11:17 +0100)]
get_cmdline_val: search for entire name, not just suffix
also fix writing of 0-byte to buffer
Signed-off-by: Steven Barth <steven@midlink.org>
Michel Stam [Tue, 4 Nov 2014 16:40:16 +0000 (17:40 +0100)]
procd: Make askconsole work again when no tty is specified in inittab
Consider:
::askconsole:/bin/ash --login
askconsole( ) checks for the existance of the tty, but if none is
specified it will skip the remainder of the function. This means
fork_worker( ) is never called and no process is spawned. This
would leave routers without an initial console.
Signed-off-by: Michel Stam <m.stam@fugro.nl>
Michel Stam [Tue, 4 Nov 2014 15:50:54 +0000 (16:50 +0100)]
Honour tty field in /etc/inittab
The problem was caused by procd not opening /dev/tty* (whichever was
specified for the ID field /etc/inittab), causing /proc/PID/fd to
point to /dev/console instead.
This is a rework of
e63051d9, which did not initialise the console
pointer and did not check the tty pointer in askconsole. askfirst
was not completely fixed as it expected the console parameter on
the commandline, which is no longer necessary because procd opens
the console prior to fork()-ing.
Signed-off-by: Michel Stam <m.stam@fugro.nl>
Steven Barth [Sat, 1 Nov 2014 13:11:57 +0000 (14:11 +0100)]
Revert "Honour tty field in /etc/inittab"
This reverts commit
e63051d9843ddbafb1fabfd97d60e853bdeac129.
This unbreaks the initial console on UML and possibly other platforms.
Signed-off-by: Steven Barth <cyrus@openwrt.org>
Steven Barth [Fri, 31 Oct 2014 12:05:47 +0000 (13:05 +0100)]
Fix regression in command line parsing
79872ea6 reduced the command line buffer breaking various platforms.
Signed-off-by: Steven Barth <steven@midlink.org>
John Crispin [Thu, 30 Oct 2014 10:07:26 +0000 (11:07 +0100)]
Log startup/shutdown to console
procd has the habit of logging startup/shutdown via
rcS to syslog, which is pointless in case of a
shutdown, and unlikely to be complete on a startup
(as syslog is not running). Write to the console
instead.
Signed-off-by: Michel Stam <m.stam@fugro.nl>
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Sun, 12 Oct 2014 12:54:29 +0000 (14:54 +0200)]
minor fixes to michels patches
Signed-off-by: John Crispin <blogic@openwrt.org>
Michel Stam [Mon, 13 Oct 2014 14:14:37 +0000 (16:14 +0200)]
Honour tty field in /etc/inittab
The problem was caused by procd not opening /dev/tty* (whichever was
specified for the ID field /etc/inittab), causing /proc/PID/fd to
point to /dev/console instead.
Signed-off-by: Michel Stam <m.stam@fugro.nl>
Michel Stam [Mon, 13 Oct 2014 14:14:36 +0000 (16:14 +0200)]
Fix ctrl+alt+del support
The previous patch did not catch SIGINT, which is used by the
kernel to indicate to the init process that the system should
reboot.
Signed-off-by: Michel Stam <m.stam@fugro.nl>
Michel Stam [Mon, 13 Oct 2014 14:14:35 +0000 (16:14 +0200)]
Show the shutdown sequence on the active virtual terminal
procd by default writes to /dev/console. When rebooting, this means that the
terminal on which the reboot sequence was started will not see what is going
on. This patch fixes that by reopening stdin, stdout and stderr to the console
device specified on the commandline, /dev/tty0 or /dev/console upon reboot.
Also, due to (probably) pivot-root, /proc/1/fd shows 1-3 pointing to
/console. This patch also fixes that.
Signed-off-by: Michel Stam <m.stam@fugro.nl>
Michel Stam [Mon, 13 Oct 2014 14:14:34 +0000 (16:14 +0200)]
Use one generic routine to access /proc/cmdline
Signed-off-by: Michel Stam <m.stam@fugro.nl>
John Crispin [Mon, 6 Oct 2014 18:15:24 +0000 (20:15 +0200)]
make procd wait for ubus to come up
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Mon, 6 Oct 2014 18:13:28 +0000 (20:13 +0200)]
Fix scroll lock blocking procd
On x86, pressing the scrolllock button may effectively prevent procd from rebooting
the system. This happens because procd tries to write to /dev/console, which in that
situation is blocked, effectively blocking procd from rebooting the system.
This patch puts procd's stderr access into non-blocking, which will prevent the
boot from being stuck.
Signed-off-by: Michel Stam <m.stam@fugro.nl>
John Crispin [Thu, 2 Oct 2014 17:39:56 +0000 (19:39 +0200)]
make procd handle ctrl+alt+del
Signed-off-by: John Crispin <blogic@openwrt.org>
Michel Stam [Thu, 2 Oct 2014 11:56:23 +0000 (11:56 +0000)]
Fix 'reboot' message when the system is powering down
While executing a system halt (via the powerbutton or otherwise),
the system displays rebooting, whereas it should display that
it is going to turn off.
Signed-off-by: Michel Stam <m.stam@fugro.nl>
Michel Stam [Thu, 2 Oct 2014 11:56:21 +0000 (11:56 +0000)]
Reboot busybox style via procd
It has been observed that, very rarely, the system does not reboot
when procd enters the shutdown state. Busybox seems to have an
obscure fix in its shutdown, where the parent (procd) process
is put in an infinite loop, and a special child is executed to
execute reboot(). This may very well be the cause.
Signed-off-by: Michel Stam <m.stam@fugro.nl>
Michel Stam [Thu, 2 Oct 2014 11:56:20 +0000 (11:56 +0000)]
Kill processes on shutdown
Procd as it currently is does not kill the running processes during shutdown.
As this might cause undesired behaviour, this should be implemented.
Implementation was taken from busybox 1.19.4
Signed-off-by: Michel Stam <m.stam@fugro.nl>
Michel Stam [Thu, 2 Oct 2014 11:56:16 +0000 (11:56 +0000)]
Fix procd not handling rapid reboot signals very well
When keeping ctrl-alt-del pressed, or when running;
while true; do
/sbin/reboot
done
effectively the procd shutdown cycle gets into an undefined state,
Signed-off-by: Michel Stam <m.stam@fugro.nl>
John Crispin [Sat, 13 Sep 2014 01:15:21 +0000 (03:15 +0200)]
fix a copy/paste bug leading to a bad loop limitation
https://dev.openwrt.org/ticket/17864
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Sat, 13 Sep 2014 01:07:48 +0000 (03:07 +0200)]
fix timeout on shutdown
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Sun, 7 Sep 2014 23:30:24 +0000 (01:30 +0200)]
instances can now start as a !root user
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Wed, 27 Aug 2014 11:50:24 +0000 (13:50 +0200)]
add .data to instance_dump()
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Wed, 27 Aug 2014 08:55:00 +0000 (10:55 +0200)]
add an event for "service.update" triggers
Signed-off-by: John Crispin <blogic@openwrt.org>
Felix Fietkau [Fri, 29 Aug 2014 11:25:17 +0000 (13:25 +0200)]
hotplug: avoid using the deprecated is_error() call, check for NULL pointer instead
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Fri, 29 Aug 2014 11:23:57 +0000 (13:23 +0200)]
explicitly include json/json.h where needed
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Wed, 30 Jul 2014 12:40:22 +0000 (14:40 +0200)]
system.c: parse quoted version info from /etc/openwrt_release
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Steven Barth [Tue, 29 Jul 2014 06:50:37 +0000 (08:50 +0200)]
Make failure to resize hotplug buffer non-fatal
Some architectures seem to have broken SO_RCVBUFFORCE.
Signed-off-by: Steven Barth <steven@midlink.org>
Felix Fietkau [Fri, 18 Jul 2014 14:40:56 +0000 (16:40 +0200)]
hotplug: fix firmware loading
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Wed, 2 Jul 2014 19:04:52 +0000 (21:04 +0200)]
service: fix trigger related double-free
The memdup is unnecessary, because the data is contained inside
in->config.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Wed, 2 Jul 2014 17:00:32 +0000 (19:00 +0200)]
service: implement get_data to dump the data fields for every instance
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Wed, 2 Jul 2014 17:00:11 +0000 (19:00 +0200)]
instance: allow filling "data" with fields of arbitrary type
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
John Crispin [Thu, 19 Jun 2014 11:16:08 +0000 (12:16 +0100)]
make static linking work for upgraded
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Tue, 17 Jun 2014 16:16:25 +0000 (17:16 +0100)]
only build upgraded on mips
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Mon, 16 Jun 2014 16:43:03 +0000 (17:43 +0100)]
move upgrade to its own subfolder
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Mon, 16 Jun 2014 15:52:18 +0000 (16:52 +0100)]
rename the folder option to path
Signed-off-by: John Crispin <blogic@openwrt.org>
Felix Fietkau [Wed, 11 Jun 2014 17:48:16 +0000 (19:48 +0200)]
procd: force -lc -lgcc to handle cross-dependencies between those two
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Steven Barth [Wed, 11 Jun 2014 13:23:39 +0000 (15:23 +0200)]
Increase buffers for hotplug and cmdline for UML
Thanks to Markus Stenberg for debugging and testing.
Signed-off-by: Steven Barth <steven@midlink.org>
John Crispin [Wed, 11 Jun 2014 01:37:08 +0000 (02:37 +0100)]
only add the nandupgrade method when /sbin/upgraded exists
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Tue, 10 Jun 2014 15:50:15 +0000 (16:50 +0100)]
add upgraded support for nand flashing
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Thu, 5 Jun 2014 13:02:29 +0000 (14:02 +0100)]
allow instances to report errors. if an error is set, the instance wont be started
Signed-off-by: John Crispin <blogic@openwrt.org>
Felix Fietkau [Thu, 5 Jun 2014 14:53:29 +0000 (16:53 +0200)]
service: do not emit any service events before the ubus connection is up
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Thu, 5 Jun 2014 14:46:32 +0000 (16:46 +0200)]
service: register the subscriber object before the event handler
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Thu, 5 Jun 2014 14:45:21 +0000 (16:45 +0200)]
service: fix a debug message typo
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Thu, 5 Jun 2014 14:44:29 +0000 (16:44 +0200)]
service: fix a leftover debug hack
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
John Crispin [Thu, 5 Jun 2014 10:53:01 +0000 (11:53 +0100)]
0467aebb79f64d1c9d05a84367fda7c02c4ea6b8 included too much
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Wed, 4 Jun 2014 19:55:58 +0000 (20:55 +0100)]
wait for kmod loader to complete on first boot
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Wed, 4 Jun 2014 19:50:00 +0000 (20:50 +0100)]
send ubus_notify events when servers and instances change state
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Wed, 4 Jun 2014 18:36:03 +0000 (19:36 +0100)]
add wildcard support to trigger matching code
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Wed, 4 Jun 2014 11:46:28 +0000 (12:46 +0100)]
allow instances to register ubus object that should be watched
Signed-off-by: John Crispin <blogic@openwrt.org>
Felix Fietkau [Sun, 25 May 2014 19:29:36 +0000 (21:29 +0200)]
service: fix json object leak in validate code
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sun, 25 May 2014 19:24:09 +0000 (21:24 +0200)]
service: free trigger json_script context
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sun, 25 May 2014 19:15:05 +0000 (21:15 +0200)]
service: fix trigger data memleak
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sun, 25 May 2014 19:12:49 +0000 (21:12 +0200)]
service: ensure that trigger timers are always cancelled before free
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sun, 25 May 2014 19:04:46 +0000 (21:04 +0200)]
service: fix memleak in trigger handling
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sun, 25 May 2014 19:01:30 +0000 (21:01 +0200)]
service: use avl_remove_all_elements()
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sun, 25 May 2014 18:59:56 +0000 (20:59 +0200)]
service: remove unused argument to service_update()
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sun, 25 May 2014 18:58:51 +0000 (20:58 +0200)]
service: fix double-free in error path
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sun, 25 May 2014 18:55:30 +0000 (20:55 +0200)]
service: use blob_memdup()
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sun, 25 May 2014 18:48:09 +0000 (20:48 +0200)]
hotplug: fix memleak in debug codepath
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sat, 24 May 2014 15:43:45 +0000 (17:43 +0200)]
inittab: strip trailing whitespace (especially newline)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Thu, 20 Mar 2014 15:05:47 +0000 (16:05 +0100)]
inittab: avoid character collating to work around character class escaping issue in a regex
This makes the regex work with musl
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Tue, 18 Mar 2014 12:53:23 +0000 (13:53 +0100)]
rcS: fix a format string bug
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Tue, 18 Mar 2014 12:24:57 +0000 (13:24 +0100)]
rcS: do not access ustream_buf data directly
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Mon, 24 Feb 2014 16:42:57 +0000 (17:42 +0100)]
instance: improve portability of setting resource limits
the data type varies for different implementations
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
John Crispin [Fri, 7 Feb 2014 13:24:10 +0000 (13:24 +0000)]
commit
e0921ed71bab0ad7d2344774a33c22809eb10190 set the timeout globally
lets restrict it to stop scripts only
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Wed, 29 Jan 2014 17:33:50 +0000 (17:33 +0000)]
fix the dump logic to show validators and triggers even if no instances exist
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Wed, 29 Jan 2014 03:30:57 +0000 (03:30 +0000)]
force all runqueue tasks to a timeout of 15s
Signed-off-by: John Crispin <blogic@openwrt.org>
Jo-Philipp Wich [Mon, 20 Jan 2014 18:06:28 +0000 (18:06 +0000)]
state.c: pass ubus commandline is writable buffer to service_start_early()
The service_start_early() function uses strtok() on the command line argument,
therfore we cannot pass it constant string literals directly.
Fixes OpenWrt bug #14832
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Jo-Philipp Wich [Wed, 18 Dec 2013 14:17:16 +0000 (14:17 +0000)]
procd: fix service file tracking
The instance_config_move() function in the procd instance managing code is
missing a blobmsg_list_move() call to update the tracked file items with the
newly calculated checksums in case of a file change.
Without that change, services are always reloaded after the first change to
a tracked file regardless of whether there are any subsequent changes or not.
Add a missing instance of blobmsg_list_free() as well.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
John Crispin [Mon, 9 Dec 2013 12:57:43 +0000 (13:57 +0100)]
fix copy paste error
Signed-off-by: John Crispin <blogic@openwrt.org>
Ulrich Weber [Thu, 5 Dec 2013 12:46:34 +0000 (12:46 +0000)]
procd: set resource limits for service instances
useful to enable core dumps or set resource limits
Signed-off-by: Ulrich Weber <uw@xyne.com>
John Crispin [Fri, 22 Nov 2013 12:13:54 +0000 (13:13 +0100)]
cleanup debug level handover
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Wed, 20 Nov 2013 18:00:12 +0000 (19:00 +0100)]
fix rcS memory leaks and running hook
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Tue, 19 Nov 2013 19:55:54 +0000 (20:55 +0100)]
make ue of the md5.c inside libubox
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Tue, 19 Nov 2013 14:48:37 +0000 (15:48 +0100)]
fix up the order of respawn parameters for ubus
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Mon, 18 Nov 2013 11:22:22 +0000 (12:22 +0100)]
add a event broadcast function
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Mon, 18 Nov 2013 10:41:04 +0000 (11:41 +0100)]
add debug level handover between preinit and main process
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Mon, 18 Nov 2013 10:32:47 +0000 (11:32 +0100)]
make the service running trigger be queued directly after the service was startetd
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Mon, 18 Nov 2013 10:32:11 +0000 (11:32 +0100)]
add a function to add calls to the front of the rcS queue
Signed-off-by: John Crispin <blogic@openwrt.org>
Helmut Schaa [Fri, 15 Nov 2013 18:32:31 +0000 (19:32 +0100)]
procd: Allow process respawning forever
Use respawn_retry==0 as indication to respawn a process forever.
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Thu, 14 Nov 2013 12:41:13 +0000 (13:41 +0100)]
debloat and reorganize code
split app into procd and init binaries
remove log support, this is an external service now
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Mon, 11 Nov 2013 18:28:13 +0000 (19:28 +0100)]
add service_validator support
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Mon, 11 Nov 2013 14:54:29 +0000 (15:54 +0100)]
add data type validator
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Sat, 9 Nov 2013 19:20:55 +0000 (20:20 +0100)]
bind the console to /dev/null if the real console fails to come up
this was reported on irc by oc80z
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Fri, 8 Nov 2013 21:25:20 +0000 (22:25 +0100)]
the automatic service restart should not happen during sysupgrade
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Thu, 24 Oct 2013 14:34:41 +0000 (16:34 +0200)]
add hostname option to logread
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Wed, 9 Oct 2013 11:48:00 +0000 (13:48 +0200)]
add a prefix option for messages streamed using logread
Signed-off-by: Robin Kuck <robin@basicinside.de>
Jo-Philipp Wich [Tue, 1 Oct 2013 16:39:47 +0000 (16:39 +0000)]
syslog: fix incorrect use of sizeof() in vsnprintf()
John Crispin [Sat, 28 Sep 2013 19:01:20 +0000 (21:01 +0200)]
syslog() is a blocking call on eglibc. as procd provides the actual syslog, weneed to make sure that we do not run into a deadlock.
Signed-off-by: John Crispin <blogic@openwrt.org>
Signed-off-by: Markus Stenberg <markus.stenberg@iki.fi>