Skip to content

Commit f58295b

Browse files
committed
feat: add NO_NETWORK option to only allow access via DMA
1 parent f84098b commit f58295b

1 file changed

Lines changed: 20 additions & 7 deletions

File tree

entrypoint.sh

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,14 @@ setup_utils () {
5858
${DMA_AUTHPATH="/etc/dma/auth.conf"}
5959
export DMA_SMARTHOST DMA_PORT DMA_AUTHPATH
6060

61-
# set default command
61+
# set default command if flags passed
6262
[ "${1#-}" = "$1" ] || set -- msmtpd "$@"
6363

64+
SLEEP_ONLY=
65+
if [ -n "${NO_NETWORK-}" ] && [ $# -eq 1 ] && [ "$1" = "msmtpd" ]; then
66+
SLEEP_ONLY=1
67+
fi
68+
6469
[ "$1" = "msmtpd" ] && setup_utils
6570

6671
write_dma_conf
@@ -72,19 +77,27 @@ write_dma_auth
7277

7378
if [ "$1" = "msmtpd" ]; then
7479
shift
75-
set -- tini -- msmtpd \
76-
--interface 0.0.0.0 \
77-
--log /dev/stdout \
78-
--command 'dma -f %F --' \
79-
"$@"
80+
if [ -z "$SLEEP_ONLY" ]; then
81+
set -- tini -- msmtpd \
82+
--interface 0.0.0.0 \
83+
--log /dev/stdout \
84+
--command 'dma -f %F --' \
85+
"$@"
86+
else
87+
set -- tini -- sleep inf
88+
fi
8089

8190
# start syslogd to handle dma logging
8291
test -s /dev/log || ( syslogd -nSO - & )
8392

8493
# flush the queue every 15 mins
8594
( sh -c 'while sleep 15m; do dma -q1; done' & )
8695

87-
echo "Starting msmtpd..."
96+
if [ -z "$SLEEP_ONLY" ]; then
97+
echo "Starting msmtpd..."
98+
else
99+
echo "Waiting for signal..."
100+
fi
88101
fi
89102

90103
exec "$@"

0 commit comments

Comments
 (0)