- check return values of most functions! - check errno! - check whether headers are ok - remove printfs! - write manpages (use doc/* as base for that) - eventually split cinit code to csvc to minimize binary of cinit? - cleanup comments - cleanup headers! - respawn_svc and exec_svc must return pid_t of executed service / watcher - exec_svc.c: should we also change environment? - write install-example for non-Linux systems (think of merge also) - move messages to cinit.h or message.h or conf/msg-*! - remove MAX_SVC - change exec_svc to be much more dumb! *svc, *svc_param_file, *svc_env_file - remove stat from exec_svc, do before! - check for possibilies to save ram, free things - stat() in run_svc -> don't call exec_svc, respawn_svc, run_run_svc - close(*>2) before forking / executing - get CTR-ALT-DEL - check if we caught every signal, which could kill us - create coala-socket with correct permissions! (550, root:cinit) - run_svc_new: o we have many strcat()s, perhaps save length of pathbuf and strncat at pathtmp[strlen(pathbuf)] ? o should we check strcat and strcpy return values or do we expect them to work? -------------------------------------------------------------------------------- - script merge sysVinit to cinit? - circulaere abhaengigkeiten? - script vorher? -------------------------------------------------------------------------------- - create conversion table: djbdns <-> name_server dnscache <-> name_caching qmail,postfix,... <-> MTA -------------------------------------------------------------------------------- create_mini_cinit -> create something which should be runnable -> mount, fsck, getty --> for dev in `read /etc/fstab` ... fsck $dev --> mount -a --> mount -n -o remount,rw / --> getty from /etc/inittab or /sbin/*getty -> find out, which gettys with which params -> use it on 'make install' -------------------------------------------------------------------------------- signal handlers: sa.sa_handler=sigint; sigaction(SIGINT,&sa,0); /* ctrl-alt-del */ sa.sa_handler=sigwinch; sigaction(SIGWINCH,&sa,0); /* keyboard request */ -------------------------------------------------------------------------------- Add support for 'cinit' group, which may shutdown/reboot/halt with SO_PASSCRED in sockets -------------------------------------------------------------------------------- Done - include '/' in C_RUNS? make double strings? -> no.