You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
674 B
30 lines
674 B
9 years ago
|
#!/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
|
||
|
}
|