summaryrefslogtreecommitdiff
path: root/TODO
blob: 010a9761fe6f527c84a2e5f4c8fdf6af59a61945 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 * Implement SKIPPED report status for lms_check().

 * Flag to ignore symbolic links, set by default. Using symlinks may
   lead user to scan the same file more than once and also scan media
   outside of his library. If one uses realpath() to always have an
   unique instance of the file parsed, he still will suffer from media
   outside his chosen folders. If to fix this, together with the
   previous fix will led to the same situation as ignore symlinks, but
   without the check overhead.

 * Try to address need of whole path lookup using open(), stat(),
   readdir()... by using *at() variants, like openat(), fstatat().

 * Provide threaded version of lms_process() and lms_check(), this
   helps in multicore setups, where one will read and cache
   filesystems while the other will parse files. Study the CPU
   affinity implications on this, setting better defaults.

 * Evaluate if there is a way to detect if a string is already in
   UTF-8, probably it's impossible to know due the broad range of
   possible values, but maybe there is a way to give hints for latin,
   asian, western european charsets?

 * Check/benchmark buffered vs unbuffered IO and possibly use mmap.
   There are lots of code in plugin issuing one read(2) syscall for
   small things like 4 bytes. Setting a proper buffer size (e.g. setvbuf)
   and reading all at once would be better performance-wise. Another option
   is to write the common code for handling sigbus and use mmap instead.
   Check also whether pread/preadv/readv would be an option for some plugins.