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>
Helmut Schaa [Tue, 17 Sep 2013 06:48:48 +0000 (06:48 +0000)]
procd: Exit askfirst on read error
When running askfirst on an unused tty device askfirst starts
busylooping forever. Fix this by returning an error if we read
an EOF.
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Gabor Juhos [Tue, 10 Sep 2013 14:56:11 +0000 (16:56 +0200)]
coldplug: remove duplicated include
The unistd.h header is inluded twice.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Gabor Juhos [Tue, 10 Sep 2013 14:56:10 +0000 (16:56 +0200)]
coldplug: only start hotplug timer after udevtrigger finished
Currently the last event timer for hotplug is
started after the udevtrigger process is forked.
Starting the timer means that the first hotplug
event must come in before the timer expires.
During this time the kernel must load the binary
of the udevtrigger from the underlying rootfs
which can be time consuming on slow systems.
On such systems, the timer expires before the
first hotplug event happens which results in
broken behaviour. Due to the missing device nodes,
not the ubus nor the procd code works correctly in
that case.
Change the code to only start the hotplug last
event timer after the udevtrigger process finishes.
This ensures that the delay caused by accessing the
underlying filesystem does not affects the desired
behaviour.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Gabor Juhos [Wed, 11 Sep 2013 14:10:18 +0000 (16:10 +0200)]
udevtrigger: nuke scan_{subdir,class,block} functions
These functions are simple wrappers around the
'scan_subdir' function. Remove the wrapper code and
use the 'scan_subdir' function directly instead.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Gabor Juhos [Wed, 11 Sep 2013 14:10:17 +0000 (16:10 +0200)]
udevtrigger: simplify scan_class function
Remove the local directory scanning code and
use the scan_subdir function instead.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Gabor Juhos [Wed, 11 Sep 2013 14:10:16 +0000 (16:10 +0200)]
udevtrigger: simplify scan_block function
Remove the local directory scanning code and
use the scan_subdir function instead.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Gabor Juhos [Wed, 11 Sep 2013 14:10:15 +0000 (16:10 +0200)]
udevtrigger: simplify scan_subsystem function
Remove the local directory scanning code and
use the scan_subdir function instead.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Gabor Juhos [Wed, 11 Sep 2013 14:10:14 +0000 (16:10 +0200)]
udevtrigger: extend scan_subdir function
Add more arguments to the function to make it
usable recursively.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Gabor Juhos [Wed, 11 Sep 2013 14:10:13 +0000 (16:10 +0200)]
udevtrigger: remove superfluous strlcpy
Use the "/sys/class/block" string directly
for the stat call. This makes the code simpler
and reduces stack usage.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Gabor Juhos [Wed, 11 Sep 2013 14:10:12 +0000 (16:10 +0200)]
udevtrigger: add back directory name check into scan_subdir
It has been accidentally removed by:
commit
824a4b3da2c0be19ccf54a48dcd4c10677b82c1a
Author: Gabor Juhos <juhosg@openwrt.org>
Date: Tue Sep 10 12:59:25 2013 +0200
udevtrigger: reduce indent level in scan_* functions
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
John Crispin [Wed, 4 Sep 2013 15:32:15 +0000 (17:32 +0200)]
fix skewed parameter order in respawn code
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Wed, 4 Sep 2013 14:56:24 +0000 (16:56 +0200)]
execute the "running" hook once the daemon is started
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Wed, 4 Sep 2013 14:55:45 +0000 (16:55 +0200)]
add a way for procd to queue async init.d calls
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Wed, 4 Sep 2013 12:46:49 +0000 (14:46 +0200)]
fix a bug in the trigger handling code
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Wed, 4 Sep 2013 14:25:15 +0000 (16:25 +0200)]
remove now unused variable
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Tue, 3 Sep 2013 23:50:25 +0000 (01:50 +0200)]
add code to configure respawn via ubus
Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin [Tue, 3 Sep 2013 23:24:14 +0000 (01:24 +0200)]
output the env associated with an instance
Signed-off-by: John Crispin <blogic@openwrt.org>
Gabor Juhos [Tue, 10 Sep 2013 10:59:25 +0000 (12:59 +0200)]
udevtrigger: reduce indent level in scan_* functions
Return early from the scan_* functions if the
opendir call fails. This allows to reduce the
indentation level of the subsequent code by
one tab.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Gabor Juhos [Tue, 10 Sep 2013 10:59:24 +0000 (12:59 +0200)]
udevtrigger: rename variables in scan_subdir
There are only one variable present for a given
type. Remove the '2' suffix from the variable
names. Also rename the function argument to avoid
name collision.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Gabor Juhos [Tue, 10 Sep 2013 10:59:23 +0000 (12:59 +0200)]
udevtrigger: use a helper function for subdir scanning
The scan_{block,class,subsystem} functions are using
identical code for scanning. Move that into a separate
function to avoid code duplication.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Gabor Juhos [Tue, 10 Sep 2013 10:59:22 +0000 (12:59 +0200)]
udevtrigger: check presence of dev attribute
The presence of the 'uevent' attribute file
does not always mean that a corresponding
device node can be created under '/dev'.
For valid device nodes, a 'dev' attribute
file must be present which cntains the major
and minor numbers of the device.
Modify the code to check the presence of the
dev attribute as well. This allows to avoid
superfluous trigger_uevent calls. On a test
system, the patch reduced the number of the
triegger_uevent calls from 144 to 70.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Gabor Juhos [Tue, 10 Sep 2013 10:59:21 +0000 (12:59 +0200)]
udevtrigger: add device_has_attribute helper
Move the code from device_list_insert() into
a separate function. This makes it possible
to reuse the code for other attribute files.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Gabor Juhos [Tue, 10 Sep 2013 10:59:20 +0000 (12:59 +0200)]
udevtrigger: remove trailing whitespaces
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>