#!/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 /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 }