mirror of
https://github.com/srlabs/blue-merle.git
synced 2024-12-23 06:09:27 -05:00
948db4b6fa
This hopefully makes the client tracking work better. Before this change, the Web UI would not be able to track clients, probably because the database contains garbage. Now that we delete the file properly, it will be re-generated (in the volatile tmpfs) and the Web UI should show everything nicely.
31 lines
1.1 KiB
Bash
31 lines
1.1 KiB
Bash
#!/bin/sh /etc/rc.common
|
|
|
|
# MAC addresses of connected clients are stored in a sqlite database.
|
|
# Having the database seems to be necessary for the device to be working properly.
|
|
# We intent to have the device store the database in RAM rather than on flash.
|
|
# We replace the directory with a memory-backed tmpfs which is as volatile as we can make it.
|
|
|
|
# We want to run ahead of "gl-tertf" which, currently, has a prioprity of 60.
|
|
# We also want to run ahead of "gl_clients" which has 99.
|
|
START=59
|
|
STOP=99
|
|
|
|
start() {
|
|
tmpdir="$(mktemp -d)"
|
|
# We mount a tmpfs so that the client database will be stored in memory only
|
|
mount -t tmpfs / "$tmpdir"
|
|
cp -a /etc/oui-tertf/client.db "$tmpdir"
|
|
shred --force --remove /etc/oui-tertf/client.db || rm -f /etc/oui-tertf/client.db
|
|
# If this script runs multiple times, we accumulate mounts; we try to avoid having mounts over mounts, so we unmount any existing tmpfs
|
|
umount -t tmpfs -l /etc/oui-tertf
|
|
|
|
mount -t tmpfs / /etc/oui-tertf
|
|
cp -a "$tmpdir/client.db" /etc/oui-tertf/client.db
|
|
umount -t tmpfs -l "$tmpdir"
|
|
}
|
|
|
|
stop() {
|
|
shred /etc/oui-tertf/client.db || rm -f /etc/oui-tertf/client.db
|
|
}
|
|
|