Archived
1
0
This commit is contained in:
Jeff Becker
2017-11-07 13:37:22 -05:00
parent 666549e1e4
commit b919c095a8
4 changed files with 81 additions and 76 deletions

View File

@@ -1,10 +1,13 @@
package srnd
import (
"errors"
"io"
"net"
)
var ErrSpamFilterNotEnabled = errors.New("spam filter access attempted when disabled")
type SpamFilter struct {
addr string
enabled bool
@@ -15,25 +18,27 @@ func (sp *SpamFilter) Configure(c SpamConfig) {
sp.addr = c.addr
}
func (sp *SpamFilter) Enabled() bool {
return sp.enabled
}
func (sp *SpamFilter) Rewrite(msg io.Reader, out io.WriteCloser) error {
var buff [65636]byte
if sp.enabled {
addr, err := net.ResolveTCPAddr("tcp", sp.addr)
if err != nil {
return err
}
c, err := net.DialTCP("tcp", nil, addr)
if err != nil {
return err
}
io.CopyBuffer(c, msg, buff[:])
c.CloseWrite()
_, err = io.CopyBuffer(out, c, buff[:])
c.Close()
out.Close()
if !sp.Enabled() {
return ErrSpamFilterNotEnabled
}
addr, err := net.ResolveTCPAddr("tcp", sp.addr)
if err != nil {
return err
}
io.CopyBuffer(out, msg, buff[:])
c, err := net.DialTCP("tcp", nil, addr)
if err != nil {
return err
}
io.CopyBuffer(c, msg, buff[:])
c.CloseWrite()
_, err = io.CopyBuffer(out, c, buff[:])
c.Close()
out.Close()
return nil
return err
}