Skip to content

Commit 351c44e

Browse files
authored
Merge pull request #622 from mmatous/fix-milter-unixsocket
fix(milter): remove erroneous path check
2 parents de3cdfa + dbb424f commit 351c44e

File tree

2 files changed

+61
-3
lines changed

2 files changed

+61
-3
lines changed

internal/check/milter/milter.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,6 @@ func (c *Check) Init(cfg *config.Map) error {
9090
default:
9191
return fmt.Errorf("%s: scheme unsupported: %v", modName, endp.Scheme)
9292
}
93-
if endp.Path != "" {
94-
return fmt.Errorf("%s: stray path in endpoint: %v", modName, endp)
95-
}
9693

9794
c.cl = milter.NewClientWithOptions(endp.Network(), endp.Address(), milter.ClientOptions{
9895
Dialer: &net.Dialer{
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/*
2+
Maddy Mail Server - Composable all-in-one email server.
3+
Copyright © 2019-2020 Max Mazurov <fox.cpp@disroot.org>, Maddy Mail Server contributors
4+
5+
This program is free software: you can redistribute it and/or modify
6+
it under the terms of the GNU General Public License as published by
7+
the Free Software Foundation, either version 3 of the License, or
8+
(at your option) any later version.
9+
10+
This program is distributed in the hope that it will be useful,
11+
but WITHOUT ANY WARRANTY; without even the implied warranty of
12+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+
GNU General Public License for more details.
14+
15+
You should have received a copy of the GNU General Public License
16+
along with this program. If not, see <https://www.gnu.org/licenses/>.
17+
*/
18+
19+
package milter
20+
21+
import (
22+
"testing"
23+
24+
"github.com/foxcpp/maddy/framework/config"
25+
)
26+
27+
func TestAcceptValidEndpoints(t *testing.T) {
28+
for _, endpoint := range []string{
29+
"tcp://0.0.0.0:10025",
30+
"tcp://[::]:10025",
31+
"tcp:127.0.0.1:10025",
32+
"unix://path",
33+
"unix:path",
34+
"unix:/path",
35+
"unix:///path",
36+
"unix://also/path",
37+
"unix:///also/path",
38+
} {
39+
c := &Check{milterUrl: endpoint}
40+
41+
err := c.Init(&config.Map{})
42+
if err != nil {
43+
t.Errorf("Unexpected failure for %s: %v", endpoint, err)
44+
return
45+
}
46+
}
47+
}
48+
49+
func TestRejectInvalidEndpoints(t *testing.T) {
50+
for _, endpoint := range []string{
51+
"tls://0.0.0.0:10025",
52+
"tls:0.0.0.0:10025",
53+
} {
54+
c := &Check{milterUrl: endpoint}
55+
err := c.Init(&config.Map{})
56+
if err == nil {
57+
t.Errorf("Accepted invalid endpoint: %s", endpoint)
58+
return
59+
}
60+
}
61+
}

0 commit comments

Comments
 (0)