summaryrefslogtreecommitdiffstats
path: root/debian/exim4-daemon-light.postinst
blob: 4a2e108075b34908d65f60b9c0f1cd5814e38abe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/sh

set -e

. /usr/share/debconf/confmodule

if [ -n "$EX4DEBUG" ]; then
  echo "now debugging $0 $@"
  set -x
fi

dc_eximconfig_configtype="other"
db_get exim4/dc_eximconfig_configtype || true
if [ "$RET" = "no configuration at this time" ]; then
  dc_eximconfig_configtype="none"
fi

case "$1" in
	configure)

	# || true is needed for succesfull installation with configtype 'none'
	if [ -x /etc/init.d/exim4 ]; then
		db_stop
		if [ "$dc_eximconfig_configtype" = "none" ]; then
			# we may have broken config here, ignore errors
	       		invoke-rc.d exim4 start || true
		else
			# we must have working config here, honor errors
			invoke-rc.d exim4 start
		fi
	fi

	# set up DH-parameter file, update if older than 160 days
	if test -e /var/spool/exim4/gnutls-params-2048 ; then
		if [ `stat --format=%Y /var/spool/exim4/gnutls-params-2048` -le $(( `date +%s` - 13824000 )) ];
			then
			echo "Updating GnuTLS DH parameter file" 1>&2
			/usr/share/exim4/exim4_refresh_gnutls-params
		fi
	else
		echo "Initializing GnuTLS DH parameter file" 1>&2
		tempgnutls=$(tempfile --directory /var/spool/exim4 --mode 644 --prefix  "gnutp")
		chown Debian-exim:Debian-exim $tempgnutls
		if which certtool > /dev/null 2>&1 && \
			timeout --preserve-status --kill-after=15 120 \
			certtool --generate-dh-params --bits 2048 > $tempgnutls ; then
				mv $tempgnutls /var/spool/exim4/gnutls-params-2048
		else
			rm -f $tempgnutls
			install -m 644 -o Debian-exim -g Debian-exim \
				/usr/share/exim4/gnutls-params-2048 \
				/var/spool/exim4/gnutls-params-2048
		fi
	fi


	;;
esac

#DEBHELPER#