diff options
author | cyrus <cyrus@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2013-06-06 09:52:00 +0000 |
---|---|---|
committer | cyrus <cyrus@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2013-06-06 09:52:00 +0000 |
commit | ecb7a97e94e2828b0769819a5a55a4c30ad95138 (patch) | |
tree | 6205dced200ec6aa12308c46aa9e7c3396ef7cd4 | |
parent | b9c0e3ae29d212dc361006b698f071ba423c82b3 (diff) |
base-files: use less entropy when generating ULAs
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36865 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r-- | package/base-files/Makefile | 2 | ||||
-rw-r--r-- | package/base-files/files/etc/uci-defaults/12_network-generate-ula | 11 |
2 files changed, 5 insertions, 8 deletions
diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 050cc77b51..ebce5fe958 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/version.mk PKG_NAME:=base-files -PKG_RELEASE:=138 +PKG_RELEASE:=139 PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/ PKG_BUILD_DEPENDS:=opkg/host diff --git a/package/base-files/files/etc/uci-defaults/12_network-generate-ula b/package/base-files/files/etc/uci-defaults/12_network-generate-ula index f3e493145f..56b7eb3574 100644 --- a/package/base-files/files/etc/uci-defaults/12_network-generate-ula +++ b/package/base-files/files/etc/uci-defaults/12_network-generate-ula @@ -1,13 +1,10 @@ #!/bin/sh [ "$(uci get network.globals.ula_prefix)" != "auto" ] && exit 0 -# Sometimes results are empty, therefore try until it works... -local r1 r2 r3 -while [ -z "$r1" -o -z "$r2" -o -z "$r3" ]; do - r1=$(printf "%02x" $(($(</dev/urandom tr -dc 0-9 | dd bs=9 count=1) % 256))) - r2=$(printf "%01x" $(($(</dev/urandom tr -dc 0-9 | dd bs=9 count=1) % 65536))) - r3=$(printf "%01x" $(($(</dev/urandom tr -dc 0-9 | dd bs=9 count=1) % 65536))) -done + +r1=$(dd if=/dev/urandom bs=1 count=1 |hexdump -e '1/1 "%02x"') +r2=$(dd if=/dev/urandom bs=2 count=1 |hexdump -e '2/1 "%02x"') +r3=$(dd if=/dev/urandom bs=2 count=1 |hexdump -e '2/1 "%02x"') uci -q batch <<-EOF >/dev/null set network.globals.ula_prefix=fd$r1:$r2:$r3::/48 |