aboutsummaryrefslogtreecommitdiff
path: root/net/clamav/files/clamav-milter.init
blob: a4a0fdec5de24e3aeff8ecf8a104b55918f223fc (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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/bin/sh /etc/rc.common
# Copyright (C) 2015 OpenWrt.org

START=90
STOP=10

USE_PROCD=1
PROG=/usr/sbin/clamav-milter
CLAMAV_MILTER_CONFIGFILE="/tmp/clamav/clamav-milter.conf"

validate_clamav_milter_section() {
	uci_load_validate clamav-milter clamav_milter "$1" "$2" \
		'clamav_milter_config_file:string' \
		'Foreground:string' \
		'PidFile:string' \
		'User:string' \
		'MilterSocketGroup:string' \
		'AllowSupplementaryGroups:string' \
		'ReadTimeout:uinteger' \
		'OnClean:string' \
		'OnInfected:string' \
		'OnFail:string' \
		'AddHeader:string' \
		'LogVerbose:string' \
		'LogTime:string' \
		'LogSyslog:string' \
		'LogFacility:string' \
		'LogInfected:string' \
		'LogClean:string' \
		'MaxFileSize:string' \
		'SupportMultipleRecipients:string' \
		'RejectMsg:string' \
		'TemporaryDirectory:string' \
		'MilterSocket:string' \
		'MilterSocketMode:uinteger' \
		'ClamdSocket:string' \
		'FixStaleSocket:string'
}

start_clamav_milter_instance() {
	[ "$2" = 0 ] || {
		echo "validation failed"
		return 1
	}

	mkdir -p /etc/clamav/
	mkdir -p /var/run/clamav/
	chmod a+rw /var/run/clamav

	mkdir -p "$(dirname $CLAMAV_MILTER_CONFIGFILE)"
	ln -sf "$clamav_milter_config_file" "$CLAMAV_MILTER_CONFIGFILE"

	{
	echo "Foreground " "$Foreground"
	echo "PidFile " "$PidFile"
	echo "User " "$User"
	echo "MilterSocketGroup " "$MilterSocketGroup"
	echo "AllowSupplementaryGroups " "$AllowSupplementaryGroups"
	echo "ReadTimeout " "$ReadTimeout"
	echo "OnClean " "$OnClean"
	echo "OnInfected " "$OnInfected"
	echo "OnFail " "$OnFail"
	echo "AddHeader " "$AddHeader"
	echo "LogVerbose " "$LogVerbose"
	echo "LogTime " "$LogTime"
	echo "LogSyslog " "$LogSyslog"
	echo "LogFacility " "$LogFacility"
	echo "LogInfected " "$LogInfected"
	echo "LogClean " "$LogClean"
	echo "MaxFileSize " "$MaxFileSize"
	echo "SupportMultipleRecipients " "$SupportMultipleRecipients"
	echo "RejectMsg " "$RejectMsg"
	echo "TemporaryDirectory " "$TemporaryDirectory"
	echo "MilterSocket " "$MilterSocket"
	echo "MilterSocketMode " "$MilterSocketMode"
	echo "ClamdSocket " "$ClamdSocket"
	echo "FixStaleSocket " "$FixStaleSocket"
	} > "$CLAMAV_MILTER_CONFIGFILE"

	procd_open_instance
	procd_set_param command $PROG -c $CLAMAV_MILTER_CONFIGFILE
	procd_set_param file $CLAMAV_MILTER_CONFIGFILE
	procd_close_instance
}

start_service()
{
	validate_clamav_milter_section clamav_milter start_clamav_milter_instance
}

stop_service()
{
	service_stop $PROG
}

service_triggers()
{
	procd_add_reload_trigger "clamav-milter"
	procd_add_validation validate_clamav_milter_section
}