|
@@ -1,29 +1,12 @@
|
|
|
#!/bin/sh /etc/rc.common
|
|
|
|
|
|
START=99
|
|
|
-
|
|
|
-EXTRA_COMMANDS="save"
|
|
|
-
|
|
|
-_log() {
|
|
|
- logger -t urandom_seed "$1"
|
|
|
-}
|
|
|
-
|
|
|
-_save() {
|
|
|
- touch $1.tmp || { _log "touch $1 failed"; return; }
|
|
|
- chown root:root $1.tmp || { _log "chown $1 failed"; return; }
|
|
|
- chmod 600 $1.tmp || { _log "chmod $1 failed"; return; }
|
|
|
- getrandom 512 > $1.tmp || { _log "getrandom failed"; return; }
|
|
|
- mv $1.tmp $1 || { _log "mv $1 failed"; return; }
|
|
|
-}
|
|
|
-
|
|
|
-save() {
|
|
|
- SEED="$(uci -q get system.@system[0].urandom_seed)"
|
|
|
- [ "${SEED:0:1}" == "/" ] && _save "$SEED" && _log "Seed saved ($SEED)"
|
|
|
-
|
|
|
- SEED=/etc/urandom.seed
|
|
|
- [ ! -f $SEED ] && _save "$SEED" && _log "Seed saved ($SEED)"
|
|
|
-}
|
|
|
-
|
|
|
-boot() {
|
|
|
- save
|
|
|
+USE_PROCD=1
|
|
|
+
|
|
|
+start_service() {
|
|
|
+ procd_open_instance "urandom_seed"
|
|
|
+ procd_set_param command "/sbin/urandom_seed"
|
|
|
+ procd_set_param stdout 1
|
|
|
+ procd_set_param stderr 1
|
|
|
+ procd_close_instance
|
|
|
}
|