1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-06 08:26:52 +03:00
Commit Graph

456 Commits

Author SHA1 Message Date
Kay Sievers
e2c9d3c36f fix network interface name swapping 2008-12-02 01:04:23 +01:00
Kay Sievers
ae2d346642 silence PHYSDEV* warning for WAIT_FOR* rules 2008-11-24 21:24:04 +01:00
Kay Sievers
f408fd919a fix handling of swapping node name with symlink name 2008-11-24 02:21:12 +01:00
Gabor Z. Papp
28673dd75c include errno.h in sysdeps.h 2008-11-21 04:19:11 +01:00
Kay Sievers
bbfaec2b2f libudev: accept NULL whitelist in util_replace_chars() 2008-11-20 02:43:34 +01:00
Kay Sievers
5375c80eba fix $links substitution for devices without any link
Reported-by: Michel Hermier <michel.hermier@gmail.com>
2008-11-17 15:24:47 +01:00
Kay Sievers
c969f88062 udevd: fix cleanup of /dev/.udev/uevent_seqnum 2008-11-17 14:43:58 +01:00
Kay Sievers
096e59edc9 limit $attr(<symlink>) magic to well-known links only 2008-11-17 02:01:37 +01:00
Sergey Vlasov
56116314d1 udevadm: fix option parsing breakage with klibc
The klibc implementation of getopt_long() behaves slightly different
from the glibc one - in particular, it treats the change of the option
string argument between invocations as start of parsing a different
command line, and resets its state.  However, the udevadm code
expected getopt_long() invocations in subcommands to continue parsing
the rest of command line after initial options has been parsed at the
top level; with klibc this broke, causing all udevadm subcommands to
stop recognizing their options.

Instead of relying on the glibc behavior, reset the getopt_long()
state properly before invoking the subcommand handler: move argv to
point to the subcommand name, decrease argc appropriately, and set
optind = 0.  This also fixes a minor bug visible with glibc - without
setting optind = 0 all getopt_long() calls in subcommand handlers were
behaving as if "+" was specified as the first character of the option
string (which disables option reordering), because that state was set
by the first getopt_long() call at the top level, and was not reset
when parsing subcommand options.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
2008-11-15 02:01:15 +01:00
Kay Sievers
f454ecf754 libudev: device - handle disk "device" link for partitions in deprecated sysfs layout
Thanks to Mikhail Kolesnik <mike@openbunker.org> for finding this.
2008-11-14 18:26:49 +01:00
Kay Sievers
949075dbbd remove len == 0 check, the index root is always '\0' 2008-11-13 18:21:28 +01:00
Kay Sievers
50025605e0 udevadm: info - unify -V and --version 2008-11-13 07:31:04 +01:00
Kay Sievers
95d61c2745 set errno = ENOSYS in inotify stub 2008-11-13 01:52:33 +01:00
Kay Sievers
023ed7b0a3 merge trie nodes, childs and root into a single array 2008-11-13 00:52:12 +01:00
Kay Sievers
0dd9f015d3 reserve child slot 0 2008-11-12 15:01:20 +01:00
Kay Sievers
bcf44d5576 string index - split nodes and childs to allow and unlimited number of childs 2008-11-12 05:50:05 +01:00
Kay Sievers
1c8af93aca silence "comparison between signed and unsigned" 2008-11-11 23:47:01 +01:00
Alan Jenkins
1449a55ded udevd: de-duplicate strings in rules
On my Ubuntu installation this removes 15k of duplicate strings,
using a temporary index of about 25k.

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-11-11 22:19:11 +01:00
Kay Sievers
5d6a1fa6e9 convert debug string arrays to functions
On Fri, Nov 7, 2008 at 13:07, Matthias Schwarzott <zzam@gentoo.org> wrote:
> I managed to let udev-131 segfault at startup.
>
> I configured it like this:
> CFLAGS="-Wall -ggdb" ./configure --prefix=/usr --sysconfdir=/etc --exec-prefix=
>
> Running it in gdb shows it segfaults at udev-rules.c:831
>
> (gdb) run
> Starting program: /tmp/udev-131/udev/udevd
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x0804ea06 in get_key (udev=0x9175008, line=0xafcdc8f0, key=0xafcdc5d8,
> op=0xafcdc5d0, value=0xafcdc5d4)
>    at udev-rules.c:831
> 831             dbg(udev, "%s '%s'-'%s'\n", operation_str[*op], *key, *value);

If compiled without optimization, the dbg() macro dereferences variables
which are not available. Convert the string array to a function, which just
returns NULL if compiled without DEBUG.
2008-11-07 15:59:58 +01:00
Kay Sievers
e230e966f4 fix size_t compiler warning on 32 bit platforms 2008-11-07 02:58:54 +01:00
Kay Sievers
11d5eec2cb udevadm: settle - exit if udevd exits 2008-11-06 19:41:58 +01:00
Kay Sievers
78230c0dbe cleanup /dev/.udev/queue on startup and exit 2008-11-06 17:43:12 +01:00
Kay Sievers
90024521e7 fix indentation 2008-11-06 02:56:45 +01:00
Alan Jenkins
3f3aa9f57c udevd: shrink struct token to 12 bytes 2008-11-05 22:28:52 +01:00
Kay Sievers
adea2cc22b $links should be relative 2008-11-05 22:13:49 +01:00
Kay Sievers
92f4313665 unify string replacement 2008-11-05 21:49:52 +01:00
Kay Sievers
77b852f333 do not import the "uevent" file when we only read the db to get old symlinks 2008-11-05 12:23:06 +01:00
Kay Sievers
6e0cb78c9d fix cleanup of possible left-over symlinks 2008-11-05 04:45:23 +01:00
Kay Sievers
7c4573e46d fix $links substitution 2008-11-05 04:08:44 +01:00
Kay Sievers
08e7f22913 info() PROGRAM and IMPORT execution 2008-11-05 04:05:17 +01:00
Kay Sievers
1e78dcbe51 fix list handling in enumerate and rules file sorting 2008-11-04 20:19:01 +01:00
Kay Sievers
4052400fa0 move debugging strings inside #ifdef DEBUG 2008-11-01 21:05:25 +01:00
Kay Sievers
86b5778857 move some info() to dbg() 2008-11-01 20:16:24 +01:00
Kay Sievers
5755d586e1 fix udev_node_update_old_links() logic
No need to check if links that still belong to us, need to be updated.
2008-11-01 20:05:41 +01:00
Kay Sievers
00f98bd2b3 skip entire rule containing device naming keys, if no device can be named
If rules set NAME, SYMLINK, OWNER, GROUP, MODE, events without a device node
and remove events will skip the entire rule. The old parser did the same.
2008-11-01 19:12:20 +01:00
Kay Sievers
0ef254d580 log rules file and line number when NAME, SYMLINK, OWNER, GROUP, MODE, RUN is applied 2008-11-01 18:34:54 +01:00
Alan Jenkins
d15fcce4b3 udevd: be more careful when matching against parents
I'm worried about what will happen with things like

KERNELS=="*" # pointless rule
KERNELS=="doesnt-match" # another pointless rule

Since TK_RULE < TK_M_PARENTS_MAX, we will try to match all three tokens
against parents of the current device.  I can't think of a bad case,
but it's not exactly good either.

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-11-01 17:32:16 +01:00
Alan Jenkins
11ae757850 udevd: fix termination of rule execution
LAST_RULE was broken, and I broke TK_END by making it do the same.
It used a "break" which exited the switch statement, but not the loop!

==2953== Invalid read of size 4
==2953==    at 0x4081EE: dump_token (udev-rules.c:859)
==2953==    by 0x40BADB: udev_rules_apply_to_event (udev-rules.c:1849)
==2953==    by 0x403F17: udev_event_execute_rules (udev-event.c:554)
==2953==    by 0x418626: main (test-udev.c:100)
==2953==  Address 0x55ab1f8 is 0 bytes after a block of size 80 alloc'd
==2953==    at 0x4C23082: realloc (vg_replace_malloc.c:429)
==2953==    by 0x40B13B: udev_rules_new (udev-rules.c:1670)
==2953==    by 0x418536: main (test-udev.c:84)
...

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-11-01 17:29:26 +01:00
Kay Sievers
27691aa3ae write trace log to stderr 2008-10-31 16:22:55 +01:00
Kay Sievers
aeb53ca3d6 ATTR{}== always fails if the attribute does not exist 2008-10-29 22:22:12 +01:00
Kay Sievers
0bc74ea79f udevd: merge exec and run queue to minimize devpath string compares 2008-10-29 17:32:13 +01:00
Alan Jenkins
6270756cdc udevd: simplify rules execution loop
cur can't become NULL, and the check for TK_END
can be folded into the switch statement.

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-10-28 10:02:43 +01:00
Alan Jenkins
be7de4097a kerneldoc comment fixes
s/ressources/resources/

Also reduce commas per sentence and add a possessive apostrophe.
2008-10-26 15:55:47 +01:00
Kay Sievers
427e20b261 libudev: device - allocate envp array only once 2008-10-26 14:31:46 +01:00
Kay Sievers
c6243a414e test: add RUN+="socket: ..." to a test to run monitor code 2008-10-26 04:35:32 +01:00
Kay Sievers
6493e655f7 libudev: device - fill envp array while composing monitor buffer
Thanks to Alan Jenkins, for the idea.
2008-10-26 03:39:41 +01:00
Kay Sievers
dc4c7e463d fix $attr{[<subsystem>/<sysname>]<attribute>} substitution 2008-10-26 02:48:14 +01:00
Kay Sievers
1822e9b033 do not init string arrays, just clear first byte 2008-10-26 02:31:54 +01:00
Kay Sievers
21cfb0436c match_attr() - copy attr value only when needed 2008-10-26 02:16:54 +01:00
Alan Jenkins
cd94c04c51 udevd: avoid implicit memset in match_attr()
Initializing a char array to "" is equivalent to a memset()
call - which is exactly what it gets compiled to.

Fixing this one callsite reduced memset() _user_ cpu cycles
from 2-4% to 0.05% on the EeePC.

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-10-26 02:11:56 +01:00
Alan Jenkins
e25fa4faf5 udevd: use a tighter loop for compare_devpath()
This crops up in my threaded udevd profiles from time to time.
It's not consistent - probably due to variations in the number
of concurrent events - but it can hit 4% user time and higher.

The change halves the user time spent in compare_devpath().

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-10-25 19:41:52 +02:00
Alan Jenkins
3e5c759543 fix handling of string_escape option 2008-10-25 15:19:48 +02:00
Kay Sievers
91a75e4ad4 match KEY="A|B" without temporary string copy 2008-10-25 03:00:03 +02:00
Kay Sievers
b62557daff remove debug printf 2008-10-24 18:09:13 +02:00
Kay Sievers
39a08013a2 fix "unused" warnings 2008-10-24 17:42:31 +02:00
Kay Sievers
c265440279 libudev: monitor - cache result of monitor send buffer 2008-10-24 16:36:27 +02:00
Kay Sievers
3c67f7d2df libudev: monitor - replace far too expensive snprintf() with strlcpy() 2008-10-24 15:09:43 +02:00
Kay Sievers
db463fd309 special-case "?*" match to skip fnmatch() 2008-10-24 14:19:42 +02:00
Kay Sievers
ac218d9cc8 determine at rule parse time if we need to call fnmatch()
This cuts down the large rule set's 120.000 calls to fnmatch() to
51.000, and we can just call strcmp for the simple matches.
2008-10-24 13:32:32 +02:00
Kay Sievers
b0f7409f24 distinguish "match" from "assign" by (op < OP_MATCH_MAX) 2008-10-24 11:38:05 +02:00
Kay Sievers
154a7b8428 cache uid/gid during rule parsing
This cuts down the number of parsing /etc/group from ~700 to 11,
with some large rule files installed.
2008-10-24 10:51:04 +02:00
Kay Sievers
f6bb9e981a fix uninitialized variable warnings 2008-10-24 09:37:37 +02:00
Kay Sievers
34d6a259dc rules: let empty strings added to buffer always return offset 0 2008-10-24 08:07:37 +02:00
Kay Sievers
548459e939 skip SYMLINK rules for devices without a device node 2008-10-23 21:42:23 +02:00
Alan Jenkins
7aeeaedc5f udevd: fix WAIT_FOR_SYSFS execution order
The wait should be ordered after matching KERNEL, ENV, etc.
but before ATTR.

Without this, WAIT_FOR_SYSFS rules will be applied unconditionally
to all events.

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-10-23 20:59:17 +02:00
Alan Jenkins
84629ccd85 udevd: fix memory leak
Re: b99028c963 shrink struct udev_event

TEST 136: test multi matches 2
device '/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0' expecting node 'right'
==15011==
==15011== 7 bytes in 1 blocks are definitely lost in loss record 1 of 1
==15011==    at 0x47F9AB8: malloc (vg_replace_malloc.c:207)
==15011==    by 0x489CB5F: strdup (in /lib32/libc-2.7.so)
==15011==    by 0x8050F40: udev_rules_apply_to_event (udev-rules.c:1973)
==15011==    by 0x804A658: udev_event_execute_rules (udev-event.c:549)
==15011==    by 0x805A636: main (test-udev.c:100)
add:         ok
==15012==
==15012== 7 bytes in 1 blocks are definitely lost in loss record 1 of 1
==15012==    at 0x47F1AB8: malloc (vg_replace_malloc.c:207)
==15012==    by 0x4898B5F: strdup (in /lib32/libc-2.7.so)
==15012==    by 0x8050F40: udev_rules_apply_to_event (udev-rules.c:1973)
==15012==    by 0x804A9DF: udev_event_execute_rules (udev-event.c:658)
==15012==    by 0x805A636: main (test-udev.c:100)
remove:      ok

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-10-23 11:33:22 +02:00
Kay Sievers
b99028c963 shrink struct udev_event 2008-10-23 02:57:08 +02:00
Kay Sievers
40fd3bc837 shrink struct udev_event 2008-10-23 02:34:22 +02:00
Kay Sievers
5a05e120af do not create temporary node ($tempnode) if node already exists 2008-10-23 01:13:52 +02:00
Kay Sievers
6880b25d40 replace in-memory rules array with match/action token list
The in-memory rule array of a common desktop distro install took:
  1151088 bytes
with the token list:
  109232 bytes tokens (6827 * 16 bytes), 71302 bytes buffer
2008-10-23 00:13:59 +02:00
Kay Sievers
a391f49d7f handle numerical owner/group string in lookup_user/group() 2008-10-22 23:59:53 +02:00
Alan Jenkins
aaff3d023f use re-entrant variants of getpwnam and getgrnam
Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-10-22 18:05:46 +02:00
Kay Sievers
14f4025607 add util_resolve_subsys_kernel() 2008-10-22 18:03:38 +02:00
Alan Jenkins
111e4f81ff replace strncpy() with strlcpy()
The problem was strncpy() doesn't stop after writing the terminating
NUL; by definition it goes on to zero the entire buffer.

I spy another use of strncpy in udev_device_add_property_from_string(),
which is responsible for another ~1% user cpu time...

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-10-21 23:55:13 +02:00
Kay Sievers
9a23e9e775 libudev: device - 128 -> ENVP_SIZE 2008-10-21 13:58:19 +02:00
Alan Jenkins
be18918f65 libudev: allocate udev_device->envp[] dynamically
Measured 2% _user_ cpu time reduction on EeePC coldplug.

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-10-21 13:56:23 +02:00
Alan Jenkins
fa0e955a93 libudev: util - optimize path_encode()
Since we already know the length, use memcpy() instead.
Measured 2% _user_ cpu time reduction on EeePC coldplug.

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-10-21 13:09:31 +02:00
Alan Jenkins
b29a5e4ab9 use more appropriate alternatives to malloc()
Use calloc to request cleared memory instead.
Kernel and libc conspire to make this more efficient.

Also, replace one malloc() + strcpy() with strdup().

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-10-21 12:54:57 +02:00
Kay Sievers
a8a8930072 do not use the new work-in-progress parser rule matcher 2008-10-21 12:45:54 +02:00
Kay Sievers
20254eb021 add "root" == 0 shortcuts to lookup_user/group() 2008-10-21 12:43:07 +02:00
Kay Sievers
94db05d288 replace missing get_attr_value() -> get_sysattr_value() 2008-10-21 12:42:13 +02:00
Kay Sievers
69239210be libudev: device - get_attr_value() -> get_sysattr_value() 2008-10-20 18:12:36 +02:00
Kay Sievers
54808d77a3 prefix udev-util.c functions with util_* 2008-10-18 20:12:55 +02:00
Kay Sievers
c3b1fa66d2 selinux_init(udev) -> udev_selinux_init(udev) 2008-10-18 19:30:42 +02:00
Kay Sievers
eb8837e15c udev_list_cleanup() -> udev_list_cleanup_entries() 2008-10-18 19:27:38 +02:00
Kay Sievers
f1128767cb move udev_rules_apply_format() to udev-event.c 2008-10-18 19:19:56 +02:00
Kay Sievers
2d73813ebc udev_rules_run() -> udev_event_execute_run(); 2008-10-18 15:50:16 +02:00
Kay Sievers
dcdcb8cc06 udev_event_run() -> udev_event_execute_rules() 2008-10-18 15:46:55 +02:00
Alan Jenkins
836dcf951c udevd: avoid overhead of calling rmdir on non-empty directories
Unfortunately the linux rmdir implementation unhashes the dentry
even when the directory is not removed.  This is apparently by
design (for filesystems that don't allow deleting open files).

Results from time(1) and oprofile follow.

Before:

0.35user 0.90system
samples  %        image name               symbol name
608       9.6738  vmlinux                  shrink_dcache_parent
293       4.6619  vmlinux                  copy_page_c
271       4.3119  vmlinux                  copy_page_range
257       4.0891  udevd                    udev_rules_iter_next

After:

0.31user 0.67system
samples  %        image name               symbol name
361       5.0419  vmlinux                  copy_page_range
322       4.4972  udevd                    udev_rules_iter_next
300       4.1899  vmlinux                  copy_page_c

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-10-18 15:28:49 +02:00
Kay Sievers
d0db192fa5 move run_program to util 2008-10-18 15:25:05 +02:00
Kay Sievers
d7ddce186c make struct udev_rules opaque 2008-10-18 15:02:01 +02:00
Kay Sievers
c7521974a3 merge udev-rules.c and udev-rules-parse.c 2008-10-18 14:33:37 +02:00
Kay Sievers
bec02e3304 delete list.h 2008-10-17 19:29:57 +02:00
Kay Sievers
7e02792760 udevd: use udev_list_node 2008-10-17 18:59:27 +02:00
Kay Sievers
9dcf7ec8a0 libudev: make list_node functions available 2008-10-17 18:59:08 +02:00
Kay Sievers
b692a75089 libudev: ctrl - change magic to integer 2008-10-17 17:32:17 +02:00
Kay Sievers
cb25a9585d libudev: monitor - add set_receive_buffer_size() 2008-10-17 16:49:27 +02:00
Kay Sievers
bdeab5c7fd libudev: add sysnum to test program 2008-10-17 13:54:14 +02:00
Alan Jenkins
babcf3cb22 libudev: fix sysnum logic for digit-only device names 2008-10-17 13:19:54 +02:00
Kay Sievers
3feeb77c97 libudev: list - prepend udev_* to all functions 2008-10-17 01:39:10 +02:00
Kay Sievers
d130881d34 delete udev-util-file.c 2008-10-17 00:42:48 +02:00
Kay Sievers
fc42bd5d6b update rules file parsing 2008-10-17 00:40:03 +02:00
Kay Sievers
bb144ed14d update IMPORT= file/stdout property parsing 2008-10-16 22:41:52 +02:00
Kay Sievers
c28c4486af run_program: prevent empty last argv entry 2008-10-16 21:35:11 +02:00
Kay Sievers
be7f7f5701 fix sorting of rules files 2008-10-16 21:12:08 +02:00
Kay Sievers
a390e6f764 delete name_list, move common file functions 2008-10-16 20:23:56 +02:00
Kay Sievers
daa849db6f udev-rules-parse: name_list -> udev_list 2008-10-16 20:12:16 +02:00
Kay Sievers
7db6580f42 udev-node: name_list -> udev_list 2008-10-16 19:23:07 +02:00
Kay Sievers
3361a0f110 libudev: monitor - export MAJOR/MINOR only if available 2008-10-16 18:56:19 +02:00
Kay Sievers
3fb629fd5e libudev: always add UDEV_LOG 2008-10-16 18:51:05 +02:00
Kay Sievers
8460299b57 rename udev source files 2008-10-16 18:13:48 +02:00
Kay Sievers
fc233a874b move udev_device_db to libudev 2008-10-16 17:30:06 +02:00
Kay Sievers
aa8734ffcb udevd: use libudev 2008-10-16 17:16:58 +02:00
Kay Sievers
ebacd6ecc3 libudev: device - copy global properties, unset empty properties 2008-10-16 13:53:16 +02:00
Kay Sievers
f183b6ed76 libudev: add global property list 2008-10-16 13:51:29 +02:00
Kay Sievers
6a95b1e7d6 libudev: ctrl - fix typo in set_env() 2008-10-16 13:34:11 +02:00
Kay Sievers
2c09b3b41d libudev: list - handle update of key with NULL value 2008-10-16 13:33:13 +02:00
Kay Sievers
31f4b036ea libudev: device - export properties when values are set 2008-10-16 11:37:22 +02:00
Kay Sievers
5c5cad7966 libudev: device - lookup "subsystem" and "driver" only once 2008-10-15 18:34:14 +02:00
Kay Sievers
bd85566c16 libudev: update DEVLINKS property when properties are read 2008-10-15 16:56:06 +02:00
Kay Sievers
1e61ff54f5 libudev: monitor - do not mangle DEVLINKS property 2008-10-15 16:55:04 +02:00
Kay Sievers
6ebc7a4f93 libudev: do not include ctrl in libudev.so 2008-10-15 16:54:06 +02:00
Kay Sievers
979ff016ef libudev: device - add get_envp() to construct envp from property list 2008-10-15 14:21:33 +02:00
Kay Sievers
81d9e22120 libudev: monitor - fix send_device() property copying 2008-10-15 14:20:27 +02:00
Kay Sievers
517814e7d0 libudev: handle ! in sysname, add sysnum, return allocated list_entry on add 2008-10-14 19:53:47 +02:00
Kay Sievers
9a997ecf4e libudev: device - generate DEVNAME and DEVLINKS properties 2008-10-11 18:40:33 +02:00
Kay Sievers
df1dcc09ef libudev: list - add flag 2008-10-11 18:40:04 +02:00
Kay Sievers
9925ab0451 libudev: add udev_monitor_send_device() 2008-10-09 23:38:30 +02:00
Kay Sievers
8cd2e972e5 libudev: also prefix non-exported functions with udev_* 2008-10-09 22:24:43 +02:00
Kay Sievers
90d80c2efc libudev: device - add device lookup by subsystem:sysname 2008-10-07 20:20:34 +02:00
Kay Sievers
ee173c5927 replace spaces in dm and md name symlinks
We create multiple symlinks for dm names with spaces, which
isn't what we want.
2008-10-07 00:41:00 +02:00
Kay Sievers
31441f6a4b libudev: fix typo in "multiple entries in symlink" handling 2008-10-06 18:17:27 +02:00
Kay Sievers
1e75cda345 store node name and symlinks into db symlink target if they are small enough 2008-10-06 13:52:43 +02:00
Kay Sievers
fa03f6ae4b libudev: libudev.pc remove selinux 2008-10-06 12:18:55 +02:00
Kay Sievers
ff6c1cb139 don not print error if GOTO jumps just to next rule 2008-10-05 17:27:21 +02:00
Kay Sievers
85e73aef06 libudev: fix --enable-debug 2008-10-05 16:18:21 +02:00
Kay Sievers
30f8f89625 udevd: clarify deprecated sysfs layout warning 2008-10-04 13:52:39 +02:00
Kay Sievers
3ab8ebf572 volume_id: add dbg() as noop to check for compile errors 2008-10-03 14:50:57 +02:00
Kay Sievers
7744e869ec move selinux noops to udev.h 2008-10-03 14:49:29 +02:00
Kay Sievers
ee137da389 udevadm: info - fix --query=all for devices without a device node 2008-10-03 10:33:15 +02:00
Kay Sievers
98f10a9e2a libudev: device - add get_parent_with_subsystem() 2008-10-02 21:19:00 +02:00
Kay Sievers
e598c5738c libudev: get rid of selinux
"Hello world!" linked against libselinux parses /proc/mounts and
whatever else on startup, even when the lib is not needed at all.
Not funny! Get rid of that thing where it's not absolutely needed.
2008-10-02 18:48:40 +02:00
Kay Sievers
033e9f8cde use no_argument, required_argument, optional_argument in longopts 2008-10-02 16:49:05 +02:00
Kay Sievers
13ddea8154 libudev: enumerate - add_device() -> add_syspath() 2008-10-02 11:54:33 +02:00
Kay Sievers
d6b148cde2 fix compile error with --disable-logging 2008-10-02 06:20:33 +02:00
Kay Sievers
f13e4c36c2 udevd: print warning if CONFIG_SYSFS_DEPRECATED is used
Future udev versions will depend on the current sysfs layout, which
includes features which are not available in the deprecated mode.
2008-10-01 19:00:55 +02:00
Kay Sievers
8a1946ae08 udevadm: trigger --type=failed - use libudev queue 2008-10-01 14:41:43 +02:00
Kay Sievers
cabfd8d0b4 libudev: enumerate - ignore regular files while scanning 2008-10-01 13:57:39 +02:00
Kay Sievers
62b9dfb622 libudev: device - handle /sys/block/<disk-device-link>/<partition> 2008-10-01 10:22:47 +02:00
Kay Sievers
8249e04e3e udevadm: settle - use libudev queue 2008-10-01 09:42:03 +02:00
Kay Sievers
64ccdf8269 libudev: add queue interface 2008-10-01 09:34:07 +02:00
Kay Sievers
d41b956e7f udevadm: trigger fix long option --type= 2008-09-30 16:25:46 +02:00
Kay Sievers
e0083e8e69 libudev: device_init() -> device_new() 2008-09-30 16:16:29 +02:00
Kay Sievers
d98bffa802 fix segfault caused by wrong pointer used in dbg() 2008-09-30 14:47:49 +02:00
Kay Sievers
f5001d2465 udevadm: trigger: use libudev 2008-09-30 13:43:35 +02:00
Kay Sievers
c97f839eed libudev: enumerate - scan devices and subsystems, add subsystem and attribute filter 2008-09-30 13:42:26 +02:00
Kay Sievers
4aa0b15efb fix dbg() callers 2008-09-29 19:03:08 +02:00
Alan Jenkins
9176ac1f4e allow compiler to check dbg() arguments on non-debug builds
Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-09-29 18:54:21 +02:00
Alan Jenkins
120ff8a0e8 fix messages (inc. debug compile failure) introduced when optimizing "goto"
Signed-off-by: <alan-jenkins@tuffmail.co.uk>
2008-09-29 18:39:41 +02:00
Alan Jenkins
659353f5a9 replace strerror() usage with threadsafe "%m" format string
strerror() is not threadsafe.  It uses a buffer to build messages of the form
"Unknown error 387689".

syslog() provides a %m format which is equivalent to strerror(errno).
As a GNU extension, this is also accepted by printf and friends.
At least in the current implementation, it is correctly threadsafe.

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-09-29 17:06:00 +02:00
Kay Sievers
d0f398bc25 gitignore: move *.8 to subdirs 2008-09-29 05:03:43 +02:00
Kay Sievers
438d4c3cd4 libudev: enumerate - split new() and scan() 2008-09-29 02:00:17 +02:00
Kay Sievers
b03e89cfba libudev: enumerate - scan /sys/block/ if needed 2008-09-28 23:17:29 +02:00
Kay Sievers
6f67f1dfb7 libudev: enumerate "subsystem" 2008-09-28 22:18:40 +02:00
Kay Sievers
bc8184ede9 libudev: enumerate - accept list of subsystems to scan, or skip 2008-09-28 17:39:31 +02:00
Alan Jenkins
41b7a00922 avoid repeated scans for goto targets (udev_iter_find_label)
The scans are now performed up-front at parse-time, instead of being
repeated for each event at run-time.

Cachegrind reports a 5% reduction in cpu cycles
(excluding the time spent in-kernel).
2008-09-28 14:11:47 +02:00
Alan Jenkins
669ed8675f trivial cleanup in udev_rules_iter 2008-09-28 14:10:53 +02:00
Kay Sievers
b95f8a76e6 lubudev: accept more sys directories as devices, and parent devices 2008-09-28 03:34:57 +02:00
Kay Sievers
0de33a61d7 libudev: more list rework 2008-09-28 01:34:55 +02:00
Kay Sievers
e345e2670a libudev: rework list handling 2008-09-26 19:44:53 +02:00
Kay Sievers
9921484458 libudev: device - read database only when needed 2008-09-26 19:43:32 +02:00
Kay Sievers
5fc523db68 libudev: initialize selinux only when needed 2008-09-26 19:43:14 +02:00
Kay Sievers
cd42b50d86 libudev: enumerate_get_devices_list -> enumerate_get_list 2008-09-26 19:41:50 +02:00
Kay Sievers
04f5d75f0c libudev: get devnum from uevent file 2008-09-25 14:26:22 -07:00
Kay Sievers
bf7ad0ea66 libudev: replace awkward callback list interfaces with list iterators 2008-09-25 04:20:27 -07:00
Kay Sievers
c8e32461cc libudev: add userdata pointer 2008-09-24 21:39:29 -07:00
Kay Sievers
03198b9303 libudev: also import "uevent" file when reading udev database 2008-09-24 12:25:31 -07:00
Kay Sievers
4c9dff47f6 libudev: add udev_device_new_from_devnum() 2008-09-21 23:28:56 -07:00
Kay Sievers
fb762bb928 libudev: udev_device_get_devname -> udev_device_get_devnode 2008-09-20 00:01:20 -07:00
Kay Sievers
38f27948cd always include config.h from Makefile 2008-09-19 23:03:49 -07:00
Kay Sievers
279595bd1a libudev: fix "subsystem" value 2008-09-17 23:58:38 -07:00
Kay Sievers
a076080bd4 libudev: pass udev_device in enumerate 2008-09-17 23:32:43 -07:00
Kay Sievers
7bcbf7ecc8 fix udevadm trigger 2008-09-16 16:32:42 -07:00
Kay Sievers
44589a0c73 fix broken symlink resolving 2008-09-16 09:53:36 -07:00
Kay Sievers
c68a293678 vol_id: fix lib logging glue 2008-09-16 00:40:47 -07:00
Kay Sievers
7b3a52f499 libudev: rename ctrl_msg to ctrl_msg_wire 2008-09-15 18:01:15 -07:00
Kay Sievers
8753fadf2a libudev: switch API from devpath to syspath 2008-09-15 17:12:47 -07:00
Kay Sievers
9a8047fa29 udevadm: info - fix lookup-by-name 2008-09-15 12:01:35 -07:00
Kay Sievers
0518da3b74 libudev: handle "device" link as parent, handle "class" "block" as "subsystem" 2008-09-15 11:19:56 -07:00
Kay Sievers
93b0f38458 libudev: udev_device - add attribute cache 2008-09-13 21:09:28 +02:00
Kay Sievers
b2d9e4f200 libudev: switch to "udev_device_get_parent" 2008-09-12 00:58:40 +02:00
Kay Sievers
4ad3a37f50 udevadm: info - use "udev_device" 2008-09-11 17:08:12 +02:00
Kay Sievers
17fcfb5972 use size definitions from libudev 2008-09-10 21:50:21 +02:00
Kay Sievers
31c1f53745 get rid of udev_sysdeps.c 2008-09-10 18:59:42 +02:00
Kay Sievers
ecc9ec579f convert to libudev and delete udev_utils_string.c 2008-09-10 18:39:23 +02:00
Kay Sievers
7525097713 extras: use libudev code 2008-09-10 18:24:39 +02:00
Kay Sievers
3eb46ec6dd libudev: do not use any udev source file 2008-09-10 18:00:31 +02:00
Kay Sievers
b2946df419 libudev: rename libudev-utils.c libudev-util.c 2008-09-10 17:12:33 +02:00
Kay Sievers
7a01f11afb libudev: get rid of udev_utils.c 2008-09-10 17:08:24 +02:00
Kay Sievers
b21b95d722 libudev: get rid of udev_sysfs.c 2008-09-10 14:29:07 +02:00
Kay Sievers
e88a82b597 libudev: do not use udev_db.c 2008-09-10 14:17:36 +02:00
Kay Sievers
6bd1c78a8a libudev: udev_device - add more properties 2008-09-10 10:09:34 +02:00
Kay Sievers
55e9959b15 update file headers 2008-09-10 02:40:42 +02:00
Kay Sievers
3fd0648c60 libudev: initialize selinux after logging 2008-09-10 01:47:51 +02:00
Kay Sievers
4f4b12c203 libudev: add selinux 2008-09-10 00:46:17 +02:00
Kay Sievers
6b12bdb624 libudev: rename enumerate function 2008-09-09 22:10:33 +02:00
Kay Sievers
95d90c4fe0 libudev: udev_device - read "driver" value 2008-09-09 18:14:54 +02:00
Kay Sievers
9b3a33a9ff udevadm: monitor - use libudev code to retrieve device data 2008-09-09 17:41:17 +02:00
Kay Sievers
1c7047ea77 libudev: monitor- add netlink uevent support 2008-09-09 17:38:10 +02:00
Kay Sievers
3bc7c84cf0 udevd: remove max_childs_running logic
This was needed in the old days, where all the hotplug scripts did
nothing better than sleep for seconds to work around timing issues.
It made sure, that w continued to fork processes, while the machine
was doing nothing than sleeping, but the maximim number of childs
was already reached. This is no longer needed today, we do not run
many of these scripts anymore.
2008-09-09 15:14:38 +02:00
Kay Sievers
bd770e0183 udevadm: log message if udevadm link is used 2008-09-09 14:48:42 +02:00
Kay Sievers
37372bbc38 libudev: monitor - add event properties to udev_device 2008-09-09 14:37:36 +02:00
Kay Sievers
8a4c287d15 udevadm: monitor - use libudev for udev monitor 2008-09-09 14:07:08 +02:00
Kay Sievers
c4f5f942d7 add a bunch of private device properties to udev_device 2008-09-09 14:06:20 +02:00
Alan Jenkins
9d7e1b3fdd fix off-by-one in pass_env_to_socket() 2008-09-09 00:48:17 +02:00
Kay Sievers
ab7ab02556 test-udev: remove unused var 2008-09-09 00:47:48 +02:00
Alan Jenkins
df7ae680d8 threadsafe rules iteration
Move ->current out of "struct udev_rules" and into a new "struct udev_rules_iter".

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-09-09 00:09:49 +02:00
Kay Sievers
a035bf2744 test-udev: cleanup libudev context and overridden rules file string 2008-09-09 00:08:42 +02:00
Alan Jenkins
2dccc8b054 remove redundant "remove trailing newlines" in udevadm info 2008-09-08 22:02:07 +02:00
Alan Jenkins
3b738db6eb remove redundant string copy in udev_rules_apply_format() 2008-09-08 21:59:27 +02:00
Alan Jenkins
cb8896cd74 fix name compare bug name_list_key_add()
The search for an existing key e.g. FOO would match longer
keys e.g. FOOBAR. Reuse the correct code from name_list_remove().
2008-09-08 21:51:30 +02:00
Kay Sievers
d59f11e140 move udev_ctrl to libudev-private 2008-09-08 17:59:00 +02:00
Kay Sievers
e5931bb7d8 udevadm: add --version --help options to man page, hide them as commands 2008-09-07 14:48:33 +02:00
Kay Sievers
7d563a17f3 use libudev code, unify logging, pass udev context around everywhere 2008-09-06 15:45:31 +02:00
Kay Sievers
60865f33a1 udevadm: move init from commands to udevadm 2008-09-04 10:34:48 +02:00
Kay Sievers
8a3c06af21 udevadm: split out control functions 2008-09-03 23:48:44 +02:00
Kay Sievers
32bf83996b udevadm: rename internal functions to udevadm_* 2008-09-03 23:38:32 +02:00
Kay Sievers
e4255f1153 udevadm: rename source files 2008-09-03 23:33:06 +02:00
Kay Sievers
742f4cad0d udevadm: print warning to stderr if udevadm is called by symlink 2008-09-03 21:59:21 +02:00
Kay Sievers
2b725651e5 udevadm: control - use getopt_long() 2008-09-03 21:56:47 +02:00
Kay Sievers
cce9d77393 udevadm: info - fix broken --device-id-of-file= 2008-09-03 19:50:36 +02:00
Alan Jenkins
593453115b remove deprecated envp[] in main()
envp is not standardized, and may become invalid when environment variables
are modified.  Since udev never actually uses it, we can simply remove it.

Should anyone miss it in future, they can use the standardized environ
variable - like udev_rules.c does already.
2008-09-02 23:19:36 +02:00
Kay Sievers
44aff4cd6d udev_device_init() remove statically allocated device support 2008-09-01 20:59:09 +02:00
Alan Jenkins
0d1c29c3d1 do not needlessly declare some local variables in udev_rules_parse.c as static 2008-09-01 19:46:19 +02:00
Kay Sievers
11d543c1ee libudev: add udev_device_get_syspath() 2008-09-01 18:52:22 +02:00
Kay Sievers
b98fd84005 libudev: fix monitor documentation 2008-09-01 16:41:41 +02:00
Kay Sievers
1893cf588f libudev: libudev.pc add Libs.private 2008-09-01 16:38:10 +02:00
Alan Jenkins
bc1e4a138b fix uninitialized name_list error::ignore_error
Running udevd under valgrind (and then udevtrigger):

==17705== Conditional jump or move depends on uninitialised value(s)
==17705==    at 0x407BBB: udev_rules_run (udev_rules.c:522)
==17705==    by 0x4109F0: udev_event_process (udevd.c:145)
==17705==    by 0x410E2C: udev_event_run (udevd.c:251)
==17705==    by 0x411A8D: msg_queue_manager (udevd.c:581)
==17705==    by 0x41386B: main (udevd.c:1284)

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-09-01 16:36:43 +02:00
Kay Sievers
424756eda3 fix dangling pointer returned by attr_get_by_subsys_id()
Thanks to Alan Jenkins <alan-jenkins@tuffmail.co.uk> for
finding this.
2008-09-01 10:21:05 +02:00
Kay Sievers
e407720bba autogen.sh: add --with-selinux 2008-08-30 23:08:19 +02:00
Kay Sievers
4cf2368510 libudev: fix --disable-log 2008-08-30 23:07:50 +02:00
Kay Sievers
7d8787b311 libudev: add monitor documentation 2008-08-30 16:16:37 +02:00
Kay Sievers
a689165b5a libudev: require LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE 2008-08-29 21:22:24 +02:00
Kay Sievers
aa1f5304b0 libudev: link against selinux if needed 2008-08-29 20:48:25 +02:00
Kay Sievers
d46f37fdee split udev_device.c to leave out rules handling from libudev 2008-08-29 20:32:05 +02:00
Kay Sievers
ba6929f669 libudev: add udev event monitor API 2008-08-28 23:05:01 +02:00
Kay Sievers
eb1f0e6615 libudev: split source files 2008-08-27 22:02:41 +02:00
Kay Sievers
33a5cc2976 libudev: add library to access udev information 2008-08-27 17:11:58 +02:00
Kay Sievers
d7c709c918 update .gitignore
Based on Karel's patch. Thanks!
2008-08-13 11:30:26 +02:00
Karel Zak
a3b55b1c47 build-sys: don't duplicate file names
Almost all filenames in udev/Makefile.am are duplicated in
{udevd,udevadm,test_udev}_SOURCE lists.

Signed-off-by: Karel Zak <kzak@redhat.com>
2008-08-13 11:12:53 +02:00