[WIP] Fix ban by software version, some other under-hood changes
- Use updated version of upstream go-xmpp + fixes on client-side - Introduce golangci-lint v2 + fixes - Move especially noisy debugging stuff to separate config handles to be able to switch them off - Add a bit debug to ban by software path
This commit is contained in:
@@ -10,7 +10,7 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/eleksir/go-xmpp"
|
||||
"github.com/xmppo/go-xmpp"
|
||||
)
|
||||
|
||||
// RandomPhrase выдаёт одну рандомную фразу из даденного списка фраз.
|
||||
@@ -125,7 +125,7 @@ func (j *Jabber) RotateStatus(room string) error {
|
||||
func (j *Jabber) JoinMuc(room string) error {
|
||||
log.Debugf("Sending disco#info from %s to %s", j.Talk.JID(), room)
|
||||
|
||||
if _, err := j.Talk.DiscoverInfo(j.Talk.JID(), room); err != nil {
|
||||
if _, err := j.Talk.DiscoverInfo(j.Talk.JID()); err != nil {
|
||||
return fmt.Errorf("unable to send disco#info to MUC %s: %w", room, err)
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ func (j *Jabber) JoinMuc(room string) error {
|
||||
var v xmpp.Presence
|
||||
|
||||
_ = json.Unmarshal([]byte(name), &v)
|
||||
log.Infof("Fake presence forged for %s just for on-enter check", name)
|
||||
log.Infof("Fake presence forged for %s just for on-enter check", v.JID)
|
||||
// Оно там внутри всё само обработает, если вдруг возникнет wire error, то зарекконетится.
|
||||
_ = j.BunyPresense(v)
|
||||
}
|
||||
@@ -251,7 +251,7 @@ func (j *Jabber) EstablishConnection() error {
|
||||
|
||||
log.Debugf("Sending disco#info to %s", j.C.Jabber.Server)
|
||||
|
||||
_, err = j.Talk.DiscoverInfo(j.Talk.JID(), j.C.Jabber.Server)
|
||||
_, err = j.Talk.DiscoverInfo(j.Talk.JID())
|
||||
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to send disco#info to jabber server: %w", err)
|
||||
@@ -315,7 +315,9 @@ func (j *Jabber) ProbeServerLiveness() error { //nolint:gocognit
|
||||
|
||||
// По-умолчанию, мы отправляем c2s пинг.
|
||||
default:
|
||||
log.Debugf("Sending c2s ping from %s to %s", j.Talk.JID(), j.C.Jabber.Server)
|
||||
if j.C.Debug.Ping {
|
||||
log.Debugf("Sending c2s ping from %s to %s", j.Talk.JID(), j.C.Jabber.Server)
|
||||
}
|
||||
|
||||
if err := j.Talk.PingC2S(j.Talk.JID(), j.C.Jabber.Server); err != nil {
|
||||
return err
|
||||
@@ -324,7 +326,9 @@ func (j *Jabber) ProbeServerLiveness() error { //nolint:gocognit
|
||||
j.ServerPingTimestampTx = time.Now().Unix()
|
||||
}
|
||||
} else { // Первая пуля пока не вылетела, отправляем.
|
||||
log.Debugf("Sending first c2s ping from %s to %s", j.Talk.JID(), j.C.Jabber.Server)
|
||||
if j.C.Debug.Ping {
|
||||
log.Debugf("Sending first c2s ping from %s to %s", j.Talk.JID(), j.C.Jabber.Server)
|
||||
}
|
||||
|
||||
if err := j.Talk.PingC2S(j.Talk.JID(), j.C.Jabber.Server); err != nil {
|
||||
return err
|
||||
@@ -335,14 +339,18 @@ func (j *Jabber) ProbeServerLiveness() error { //nolint:gocognit
|
||||
|
||||
// Сервер не анонсировал, что умеет в c2s пинги.
|
||||
default:
|
||||
log.Debug("Sending keepalive whitespace ping")
|
||||
if j.C.Debug.Ping {
|
||||
log.Debug("Sending keepalive whitespace ping")
|
||||
}
|
||||
|
||||
if _, err := j.Talk.SendKeepAlive(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
} else { // Сервер не ответил на disco#info.
|
||||
log.Debug("Sending keepalive whitespace ping")
|
||||
if j.C.Debug.Ping {
|
||||
log.Debug("Sending keepalive whitespace ping")
|
||||
}
|
||||
|
||||
if _, err := j.Talk.SendKeepAlive(); err != nil {
|
||||
return err
|
||||
@@ -408,7 +416,9 @@ func (j *Jabber) ProbeMUCLiveness() { //nolint:gocognit
|
||||
sleepTime := time.Duration(rand.Int63n(1000*j.C.Jabber.PingSplayDelay)) * time.Millisecond
|
||||
time.Sleep(sleepTime)
|
||||
|
||||
log.Debugf("Sending MUC ping from %s to %s", j.Talk.JID(), room)
|
||||
if j.C.Debug.Ping {
|
||||
log.Debugf("Sending MUC ping from %s to %s", j.Talk.JID(), room)
|
||||
}
|
||||
|
||||
if e := j.Talk.PingS2S(j.Talk.JID(), room); e != nil {
|
||||
err = fmt.Errorf("unable to ping MUC %s: %w", room, e)
|
||||
|
||||
Reference in New Issue
Block a user