summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Donald <newtwen+github@gmail.com>2024-03-29 16:04:30 +0100
committerChristian Marangi <ansuelsmth@gmail.com>2024-04-18 12:55:31 +0200
commit27edf28b11f179eb9fc6ab159b68b2fe97ffdf1e (patch)
tree1c01e188793ef41ed10f07cde453d37da2e2e2ef
parentb0422af1b3c7bb227620f0b1ff5552f9148f5a43 (diff)
downloadopenwrt-27edf28b11f179eb9fc6ab159b68b2fe97ffdf1e.tar.gz
openwrt-27edf28b11f179eb9fc6ab159b68b2fe97ffdf1e.tar.bz2
openwrt-27edf28b11f179eb9fc6ab159b68b2fe97ffdf1e.zip
base-files: reduce IPv6 ULA prefix generation to a single call
Reduce calls and pipes and read from urandom once directly with hexdump for the necessary 5 bytes of random data to build the 48 bit ULA Prefix. Fewer calls and forks; finish quicker; less memory used. Tested on: 23.05.3 Signed-off-by: Paul Donald <newtwen+github@gmail.com>
-rw-r--r--package/base-files/files/etc/uci-defaults/12_network-generate-ula6
1 files changed, 1 insertions, 5 deletions
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 19d7ed7f2e..060d0ef640 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,11 +1,7 @@
[ "$(uci -q get network.globals.ula_prefix)" != "auto" ] && exit 0
-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
+ set network.globals.ula_prefix="$(hexdump -vn 5 -e '"fd" 1/1 "%02x:" 2/2 "%x:"' /dev/urandom):/48"
commit network
EOF