Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
01b15b7ac4 | ||
|
|
3e0ecc1c02 |
@@ -124,7 +124,7 @@ func (b *Bot) IsTrusted(addr net.Addr) bool {
|
|||||||
|
|
||||||
// Ban an address
|
// Ban an address
|
||||||
func (b *Bot) Ban(addr net.Addr) {
|
func (b *Bot) Ban(addr net.Addr) {
|
||||||
if !b.cfg.BanlistEnalbed() {
|
if !b.cfg.GetBot().BanlistEnabled() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if b.IsTrusted(addr) {
|
if b.IsTrusted(addr) {
|
||||||
|
|||||||
@@ -334,6 +334,10 @@ func (b *Bot) runBanlistAdd(ctx context.Context, commandSlice []string) {
|
|||||||
b.runBanlist(ctx, commandSlice)
|
b.runBanlist(ctx, commandSlice)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if !b.cfg.GetBot().BanlistEnabled() {
|
||||||
|
b.SendNotice(ctx, evt.RoomID, "banlist is disabled, you have to enable it first, kupo")
|
||||||
|
return
|
||||||
|
}
|
||||||
banlist := b.cfg.GetBanlist()
|
banlist := b.cfg.GetBanlist()
|
||||||
|
|
||||||
ips := commandSlice[1:]
|
ips := commandSlice[1:]
|
||||||
@@ -361,6 +365,10 @@ func (b *Bot) runBanlistRemove(ctx context.Context, commandSlice []string) {
|
|||||||
b.runBanlist(ctx, commandSlice)
|
b.runBanlist(ctx, commandSlice)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if !b.cfg.GetBot().BanlistEnabled() {
|
||||||
|
b.SendNotice(ctx, evt.RoomID, "banlist is disabled, you have to enable it first, kupo")
|
||||||
|
return
|
||||||
|
}
|
||||||
banlist := b.cfg.GetBanlist()
|
banlist := b.cfg.GetBanlist()
|
||||||
|
|
||||||
ips := commandSlice[1:]
|
ips := commandSlice[1:]
|
||||||
@@ -384,6 +392,10 @@ func (b *Bot) runBanlistRemove(ctx context.Context, commandSlice []string) {
|
|||||||
|
|
||||||
func (b *Bot) runBanlistReset(ctx context.Context) {
|
func (b *Bot) runBanlistReset(ctx context.Context) {
|
||||||
evt := eventFromContext(ctx)
|
evt := eventFromContext(ctx)
|
||||||
|
if !b.cfg.GetBot().BanlistEnabled() {
|
||||||
|
b.SendNotice(ctx, evt.RoomID, "banlist is disabled, you have to enable it first, kupo")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
err := b.cfg.SetBanlist(config.List{})
|
err := b.cfg.SetBanlist(config.List{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -10,8 +10,6 @@ import (
|
|||||||
|
|
||||||
// Manager of configs
|
// Manager of configs
|
||||||
type Manager struct {
|
type Manager struct {
|
||||||
bl List
|
|
||||||
ble bool
|
|
||||||
mu utils.Mutex
|
mu utils.Mutex
|
||||||
log *logger.Logger
|
log *logger.Logger
|
||||||
lp *linkpearl.Linkpearl
|
lp *linkpearl.Linkpearl
|
||||||
@@ -21,20 +19,13 @@ type Manager struct {
|
|||||||
func New(lp *linkpearl.Linkpearl, log *logger.Logger) *Manager {
|
func New(lp *linkpearl.Linkpearl, log *logger.Logger) *Manager {
|
||||||
m := &Manager{
|
m := &Manager{
|
||||||
mu: utils.NewMutex(),
|
mu: utils.NewMutex(),
|
||||||
bl: make(List, 0),
|
|
||||||
lp: lp,
|
lp: lp,
|
||||||
log: log,
|
log: log,
|
||||||
}
|
}
|
||||||
m.ble = m.GetBot().BanlistEnabled()
|
|
||||||
|
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
// BanlistEnalbed or not
|
|
||||||
func (m *Manager) BanlistEnalbed() bool {
|
|
||||||
return m.ble
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetBot config
|
// GetBot config
|
||||||
func (m *Manager) GetBot() Bot {
|
func (m *Manager) GetBot() Bot {
|
||||||
var err error
|
var err error
|
||||||
@@ -47,14 +38,12 @@ func (m *Manager) GetBot() Bot {
|
|||||||
config = make(Bot, 0)
|
config = make(Bot, 0)
|
||||||
return config
|
return config
|
||||||
}
|
}
|
||||||
m.ble = config.BanlistEnabled()
|
|
||||||
|
|
||||||
return config
|
return config
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetBot config
|
// SetBot config
|
||||||
func (m *Manager) SetBot(cfg Bot) error {
|
func (m *Manager) SetBot(cfg Bot) error {
|
||||||
m.ble = cfg.BanlistEnabled()
|
|
||||||
return utils.UnwrapError(m.lp.SetAccountData(acBotKey, cfg))
|
return utils.UnwrapError(m.lp.SetAccountData(acBotKey, cfg))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,8 +64,8 @@ func (m *Manager) SetRoom(roomID id.RoomID, cfg Room) error {
|
|||||||
|
|
||||||
// GetBanlist config
|
// GetBanlist config
|
||||||
func (m *Manager) GetBanlist() List {
|
func (m *Manager) GetBanlist() List {
|
||||||
if len(m.bl) > 0 || !m.ble {
|
if !m.GetBot().BanlistEnabled() {
|
||||||
return m.bl
|
return make(List, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
m.mu.Lock("banlist")
|
m.mu.Lock("banlist")
|
||||||
@@ -89,22 +78,20 @@ func (m *Manager) GetBanlist() List {
|
|||||||
config = make(List, 0)
|
config = make(List, 0)
|
||||||
return config
|
return config
|
||||||
}
|
}
|
||||||
m.bl = config
|
|
||||||
return config
|
return config
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetBanlist config
|
// SetBanlist config
|
||||||
func (m *Manager) SetBanlist(cfg List) error {
|
func (m *Manager) SetBanlist(cfg List) error {
|
||||||
if !m.ble {
|
if !m.GetBot().BanlistEnabled() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
m.mu.Lock("banlist")
|
m.mu.Lock("banlist")
|
||||||
|
defer m.mu.Unlock("banlist")
|
||||||
if cfg == nil {
|
if cfg == nil {
|
||||||
cfg = make(List, 0)
|
cfg = make(List, 0)
|
||||||
}
|
}
|
||||||
m.bl = cfg
|
|
||||||
defer m.mu.Unlock("banlist")
|
|
||||||
|
|
||||||
return utils.UnwrapError(m.lp.SetAccountData(acBanlistKey, cfg))
|
return utils.UnwrapError(m.lp.SetAccountData(acBanlistKey, cfg))
|
||||||
}
|
}
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -21,7 +21,7 @@ require (
|
|||||||
gitlab.com/etke.cc/go/logger v1.1.0
|
gitlab.com/etke.cc/go/logger v1.1.0
|
||||||
gitlab.com/etke.cc/go/mxidwc v1.0.0
|
gitlab.com/etke.cc/go/mxidwc v1.0.0
|
||||||
gitlab.com/etke.cc/go/secgen v1.1.1
|
gitlab.com/etke.cc/go/secgen v1.1.1
|
||||||
gitlab.com/etke.cc/go/trysmtp v1.1.2
|
gitlab.com/etke.cc/go/trysmtp v1.1.3
|
||||||
gitlab.com/etke.cc/go/validator v1.0.6
|
gitlab.com/etke.cc/go/validator v1.0.6
|
||||||
gitlab.com/etke.cc/linkpearl v0.0.0-20230213101923-10ee6beb7577
|
gitlab.com/etke.cc/linkpearl v0.0.0-20230213101923-10ee6beb7577
|
||||||
maunium.net/go/mautrix v0.13.0
|
maunium.net/go/mautrix v0.13.0
|
||||||
|
|||||||
4
go.sum
4
go.sum
@@ -106,8 +106,8 @@ gitlab.com/etke.cc/go/mxidwc v1.0.0 h1:6EAlJXvs3nU4RaMegYq6iFlyVvLw7JZYnZmNCGMYQ
|
|||||||
gitlab.com/etke.cc/go/mxidwc v1.0.0/go.mod h1:E/0kh45SAN9+ntTG0cwkAEKdaPxzvxVmnjwivm9nmz8=
|
gitlab.com/etke.cc/go/mxidwc v1.0.0/go.mod h1:E/0kh45SAN9+ntTG0cwkAEKdaPxzvxVmnjwivm9nmz8=
|
||||||
gitlab.com/etke.cc/go/secgen v1.1.1 h1:RmKOki725HIhWJHzPtAc9X4YvBneczndchpMgoDkE8w=
|
gitlab.com/etke.cc/go/secgen v1.1.1 h1:RmKOki725HIhWJHzPtAc9X4YvBneczndchpMgoDkE8w=
|
||||||
gitlab.com/etke.cc/go/secgen v1.1.1/go.mod h1:3pJqRGeWApzx7qXjABqz2o2SMCNpKSZao/gXVdasqE8=
|
gitlab.com/etke.cc/go/secgen v1.1.1/go.mod h1:3pJqRGeWApzx7qXjABqz2o2SMCNpKSZao/gXVdasqE8=
|
||||||
gitlab.com/etke.cc/go/trysmtp v1.1.2 h1:Jg+J/zgx77wqJ9J5L5dlKFoQLka6yYTXa2wf+GNhjnQ=
|
gitlab.com/etke.cc/go/trysmtp v1.1.3 h1:e2EHond77onMaecqCg6mWumffTSEf+ycgj88nbeefDI=
|
||||||
gitlab.com/etke.cc/go/trysmtp v1.1.2/go.mod h1:lOO7tTdAE0a3ETV3wN3GJ7I1Tqewu7YTpPWaOmTteV0=
|
gitlab.com/etke.cc/go/trysmtp v1.1.3/go.mod h1:lOO7tTdAE0a3ETV3wN3GJ7I1Tqewu7YTpPWaOmTteV0=
|
||||||
gitlab.com/etke.cc/go/validator v1.0.6 h1:w0Muxf9Pqw7xvF7NaaswE6d7r9U3nB2t2l5PnFMrecQ=
|
gitlab.com/etke.cc/go/validator v1.0.6 h1:w0Muxf9Pqw7xvF7NaaswE6d7r9U3nB2t2l5PnFMrecQ=
|
||||||
gitlab.com/etke.cc/go/validator v1.0.6/go.mod h1:Id0SxRj0J3IPhiKlj0w1plxVLZfHlkwipn7HfRZsDts=
|
gitlab.com/etke.cc/go/validator v1.0.6/go.mod h1:Id0SxRj0J3IPhiKlj0w1plxVLZfHlkwipn7HfRZsDts=
|
||||||
gitlab.com/etke.cc/linkpearl v0.0.0-20230213101923-10ee6beb7577 h1:MXvoTJ9Qp+dWezXR2sXP7HTk9ijXAorEDAy/bxJOxi8=
|
gitlab.com/etke.cc/linkpearl v0.0.0-20230213101923-10ee6beb7577 h1:MXvoTJ9Qp+dWezXR2sXP7HTk9ijXAorEDAy/bxJOxi8=
|
||||||
|
|||||||
11
vendor/gitlab.com/etke.cc/go/trysmtp/.gitlab-ci.yml
generated
vendored
11
vendor/gitlab.com/etke.cc/go/trysmtp/.gitlab-ci.yml
generated
vendored
@@ -1,11 +0,0 @@
|
|||||||
lint:
|
|
||||||
image: registry.gitlab.com/etke.cc/base
|
|
||||||
script:
|
|
||||||
- golangci-lint run ./...
|
|
||||||
|
|
||||||
unit:
|
|
||||||
image: registry.gitlab.com/etke.cc/base
|
|
||||||
script:
|
|
||||||
- go test -coverprofile=cover.out ./...
|
|
||||||
- go tool cover -func=cover.out
|
|
||||||
- rm -f cover.out
|
|
||||||
33
vendor/gitlab.com/etke.cc/go/trysmtp/client.go
generated
vendored
33
vendor/gitlab.com/etke.cc/go/trysmtp/client.go
generated
vendored
@@ -41,14 +41,16 @@ func unwrapErrors(errs []error) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
tokens := strings.Repeat("%v; ", len(errs))
|
var text strings.Builder
|
||||||
// make it compatible with < 1.18
|
last := len(errs) - 1
|
||||||
ierrs := make([]interface{}, len(errs))
|
for i := 0; i < len(errs); i++ {
|
||||||
for _, err := range errs {
|
text.WriteString(errs[i].Error())
|
||||||
ierrs = append(ierrs, err)
|
if i < last {
|
||||||
|
text.WriteString("; ")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return fmt.Errorf(tokens, ierrs...)
|
return fmt.Errorf(text.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func initClient(localname, hostname string) (*smtp.Client, error) {
|
func initClient(localname, hostname string) (*smtp.Client, error) {
|
||||||
@@ -60,6 +62,9 @@ func initClient(localname, hostname string) (*smtp.Client, error) {
|
|||||||
cerrs := []error{}
|
cerrs := []error{}
|
||||||
var client *smtp.Client
|
var client *smtp.Client
|
||||||
for _, mx := range mxs {
|
for _, mx := range mxs {
|
||||||
|
if mx.Host == "." {
|
||||||
|
continue // no records case
|
||||||
|
}
|
||||||
for _, addr := range SMTPAddrs {
|
for _, addr := range SMTPAddrs {
|
||||||
client, err = trySMTP(localname, strings.TrimSuffix(mx.Host, "."), addr)
|
client, err = trySMTP(localname, strings.TrimSuffix(mx.Host, "."), addr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -73,15 +78,13 @@ func initClient(localname, hostname string) (*smtp.Client, error) {
|
|||||||
|
|
||||||
// If there are no MX records, according to https://datatracker.ietf.org/doc/html/rfc5321#section-5.1,
|
// If there are no MX records, according to https://datatracker.ietf.org/doc/html/rfc5321#section-5.1,
|
||||||
// we're supposed to try talking directly to the host.
|
// we're supposed to try talking directly to the host.
|
||||||
if len(mxs) == 0 {
|
for _, addr := range SMTPAddrs {
|
||||||
for _, addr := range SMTPAddrs {
|
client, err = trySMTP(localname, hostname, addr)
|
||||||
client, err = trySMTP(localname, hostname, addr)
|
if err != nil {
|
||||||
if err != nil {
|
cerrs = append(cerrs, err)
|
||||||
cerrs = append(cerrs, err)
|
}
|
||||||
}
|
if client != nil {
|
||||||
if client != nil {
|
return client, unwrapErrors(cerrs)
|
||||||
return client, unwrapErrors(cerrs)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
@@ -137,7 +137,7 @@ gitlab.com/etke.cc/go/mxidwc
|
|||||||
# gitlab.com/etke.cc/go/secgen v1.1.1
|
# gitlab.com/etke.cc/go/secgen v1.1.1
|
||||||
## explicit; go 1.19
|
## explicit; go 1.19
|
||||||
gitlab.com/etke.cc/go/secgen
|
gitlab.com/etke.cc/go/secgen
|
||||||
# gitlab.com/etke.cc/go/trysmtp v1.1.2
|
# gitlab.com/etke.cc/go/trysmtp v1.1.3
|
||||||
## explicit; go 1.17
|
## explicit; go 1.17
|
||||||
gitlab.com/etke.cc/go/trysmtp
|
gitlab.com/etke.cc/go/trysmtp
|
||||||
# gitlab.com/etke.cc/go/validator v1.0.6
|
# gitlab.com/etke.cc/go/validator v1.0.6
|
||||||
|
|||||||
Reference in New Issue
Block a user