-
Notifications
You must be signed in to change notification settings - Fork 10
/
server.go
73 lines (56 loc) · 1.81 KB
/
server.go
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
package connector
import (
"github.com/actionpay/postmanq/common"
"net"
)
// статус почтового сервис
type MailServerStatus int
const (
// по сервису ведется поиск информации
LookupMailServerStatus MailServerStatus = iota
// по сервису успешно собрана информация
SuccessMailServerStatus
// по сервису не удалось собрать информацию
ErrorMailServerStatus
)
// почтовый сервис
type MailServer struct {
// серверы почтового сервиса
mxServers []*MxServer
// номер потока, собирающего информацию о почтовом сервисе
connectorId int
// статус, говорящий о том, собранали ли информация о почтовом сервисе
status MailServerStatus
}
// почтовый сервер
type MxServer struct {
// доменное имя почтового сервера
hostname string
// ip сервера
ips []net.IP
// клиенты сервера
clients []*common.SmtpClient
// А запись сервера
realServerName string
// использоватение TLS
useTLS bool
// очередь клиентов
queues map[string]*common.LimitedQueue
}
// создает новый почтовый сервер
func newMxServer(hostname, hostnameFrom string) *MxServer {
queues := make(map[string]*common.LimitedQueue)
for _, address := range service.getAddresses(hostnameFrom) {
queues[address] = common.NewLimitQueue()
}
return &MxServer{
hostname: hostname,
ips: make([]net.IP, 0),
useTLS: true,
queues: queues,
}
}
// запрещает использовать TLS соединения
func (m *MxServer) dontUseTLS() {
m.useTLS = false
}