The touch(), makedir(), makefifo(), and erase() macros print warnings to
stderr, which mess up the logging in Finit. This patch refactors these
macros into inline functions and in the process removes the warn() use.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
Most send/recv/read/write API's return -1 on error and today use the
agreed upon type ssize_t for this purpose.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
These macros take care to avoid double evaluation.
Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
OpenBSD, and possibly the other BSD's, do not have error.h so we replace
it with err.h, which exists almost everywhere.
This means the macros in lite.h that used error() now instead use
warn(), with the same semantics as before.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
- touch() - Create a file, or update mtime. Errors on stderr
- makedir() - Create directory, like mkdir(). Errors on stderr
- makefifo() - Create a FIFO, like mkfifo(). Errors on stderr
- erase() - Erase file/directory with remove(). Errors on stderr
- chardev() - Create character device
- blkdev() - Create block device
- S_ISEXEC() - Mysteriously missing from GLIBC
- UNUSED() - Shorter and more readable version of __attribute__ ((unused))
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
- Add support for symlinks to copyfile()
- Fix memory leak in copy_filep()
- New function, fsendfile(), copy data between FILE streams
Also, minor whitespace and coding style cleanup.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
Restructure start by calling the plugin loader earlier. This makes it
possible to run hooks even earlier. This also adds a new hook:
HOOK_ROOTFS_UP which runs as soon as the system root (/) is available.
Another very notable change is the slow refactor of helpers.c into a finit
helper library called libite.so (-lite). This is a light-weight
Also, lots of misc. fixes all over the place. Signal handling still really
needs to be looked into once more!
Makefile:
Add dependency handling for parallell build
Add libite library
ChangeLog:
Update with new 1.4 release. There is a lot of fixes!
libite/:
Collection of utility functions and C library extensions for
finit & its plugins
reboot.c:
New reboot tool. Simply sends SIGINT to PID 1
finit.h:
Cleanup old LISTEN_INITCTL define, code is in an optional plugin now
finit.c:
Let mdev/udev run *after* cls()
Add useful debug statement for /proc/cmdline
Earlier plugin load => new early hook point
Show OK/FAIL for total plugin load, not for each plugin => speedup
helpers.h:
Rename syslog macros to prevent common name clashes (DEBUG/ERROR)
Add __FILE__ to _e(), _d() and _pe() macros
helpers.c:
In ifconfig() the addr and mask arguments are now optional
The copyfile() has been moved to libite.so
Temporarily remove const directive from some functions to build
Use DFLSIG() macro in run_getty() to simplify code
plugin.h:
Add new HOOK_ROOTFS_UP hook
plugin.c:
Fix init_plugins() to actually register the plugin's I/O fd
Skip verbose listing of all plugins in plugin_load_all()
svc.c:
svc_start(): Dito
plugins/Makefile:
Inherit CFLAGS and LDFLAGS, but make sure to filter out -rdynamic
from LDFLAGS, it's used by the daemon, only
plugins/initctl.c:
New includes after helpers.h refactor
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>