Update dependencies

I mainly looked at the differences between the old version of the
echobot and the new one.
master
Thorben Günther 2021-02-27 17:56:25 +01:00 zatwierdzone przez Thomas Maier
rodzic a7b897434e
commit 4b110aaa04
3 zmienionych plików z 44 dodań i 33 usunięć

9
go.mod
Wyświetl plik

@ -1,11 +1,12 @@
module github.com/tmsmr/xmpp-webhook
require (
golang.org/x/crypto v0.0.0-20191029031824-8986dd9e96cf // indirect
golang.org/x/net v0.0.0-20191028085509-fe3aa8a45271 // indirect
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 // indirect
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 // indirect
golang.org/x/text v0.3.5 // indirect
mellium.im/sasl v0.2.2-0.20190711145101-7aedd692081c
mellium.im/xmlstream v0.14.0
mellium.im/xmpp v0.14.0
mellium.im/xmlstream v0.15.2
mellium.im/xmpp v0.18.0
)
go 1.13

35
go.sum
Wyświetl plik

@ -1,34 +1,35 @@
golang.org/x/crypto v0.0.0-20180910181607-0e37d006457b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 h1:HuIa8hRrWRSrqYzx1qI49NNxhdi2PrY7gxVSq1JjLDc=
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191029031824-8986dd9e96cf h1:fnPsqIDRbCSgumaMCRpoIoF2s4qxv0xSSS0BVZUE/ss=
golang.org/x/crypto v0.0.0-20191029031824-8986dd9e96cf/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 h1:/ZScEX8SfEmUGRHs0gxpqteO5nfNW6axyZbBdw9A12g=
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
golang.org/x/image v0.0.0-20181116024801-cd38e8056d9b/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80 h1:Ao/3l156eZf2AW5wK8a7/smtodRU+gha3+BeqJ69lRk=
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191028085509-fe3aa8a45271 h1:N66aaryRB3Ax92gH0v3hp1QYZ3zWWCCUR/j8Ifh45Ss=
golang.org/x/net v0.0.0-20191028085509-fe3aa8a45271/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210110051926-789bb1bd4061 h1:DQmQoKxQWtyybCtX/3dIuDBcAhFszqq8YiNeS6sNu1c=
golang.org/x/sys v0.0.0-20210110051926-789bb1bd4061/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ=
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
mellium.im/reader v0.1.0 h1:UUEMev16gdvaxxZC7fC08j7IzuDKh310nB6BlwnxTww=
mellium.im/reader v0.1.0/go.mod h1:F+X5HXpkIfJ9EE1zHQG9lM/hO946iYAmU7xjg5dsQHI=
mellium.im/sasl v0.2.1/go.mod h1:ROaEDLQNuf9vjKqE1SrAfnsobm2YKXT1gnN1uDp1PjQ=
mellium.im/sasl v0.2.2-0.20190711145101-7aedd692081c h1:NjXK0TtVdkGhEghhYh3eA/f5nR/VRRrW1MrEEp1rq90=
mellium.im/sasl v0.2.2-0.20190711145101-7aedd692081c/go.mod h1:rTgGBJL0QZ3h4jRSAXRDTRB7h1b8GyyFpEG2t9Tp9ws=
mellium.im/xmlstream v0.13.5/go.mod h1:O7wqreSmFi1LOh4RiK7r2j4H4pYDgzo1qv5ZkYJZ7Ns=
mellium.im/xmlstream v0.13.6-0.20190729223506-de1fca5bec8b h1:Eh7dHb+bM/m0aj9PC7vXH2OnBXXTfokOF0PJ2QK1DBo=
mellium.im/xmlstream v0.13.6-0.20190729223506-de1fca5bec8b/go.mod h1:O7wqreSmFi1LOh4RiK7r2j4H4pYDgzo1qv5ZkYJZ7Ns=
mellium.im/xmlstream v0.14.0 h1:vTljQmcFQq7LEb+LJQV0VI8wnuFnzBy1AnfUbA4SrL8=
mellium.im/xmlstream v0.14.0/go.mod h1:O7wqreSmFi1LOh4RiK7r2j4H4pYDgzo1qv5ZkYJZ7Ns=
mellium.im/xmpp v0.13.1-0.20190803132429-9960aecd011f h1:Q40MWD6EXk+EmCHwMYr8YhYgKxETCQkF8jJNQ77ugyA=
mellium.im/xmpp v0.13.1-0.20190803132429-9960aecd011f/go.mod h1:ypSrEi/KFrDk9fu4JpQ8HKPFtlkVrhYCk1aObOMAof0=
mellium.im/xmpp v0.14.0 h1:pmeTKOze9IUD6VsYDjiKOdhQMb7+1Pc1loJnTDuRip0=
mellium.im/xmpp v0.14.0/go.mod h1:ZDObIk4gKWVdH45mRgna7UGRGa8xnzsvBnpCa4ujTAA=
mellium.im/xmlstream v0.15.2-0.20201219131358-a51cc5cf8151/go.mod h1:7SUlP7f2qnMczK+Cu/OFgqaIhldMolVjo8np7xG41D0=
mellium.im/xmlstream v0.15.2 h1:RleOK10lEsVtzpEZsJeRl4Iu0iC5SQnTQIGJZ7ZHGEc=
mellium.im/xmlstream v0.15.2/go.mod h1:7SUlP7f2qnMczK+Cu/OFgqaIhldMolVjo8np7xG41D0=
mellium.im/xmpp v0.18.0 h1:mm4zgK+7XkVpOKrM6d7d9ssmvH9Z67+16ODU9Rx4fqU=
mellium.im/xmpp v0.18.0/go.mod h1:T1xCJIP9JyIIO4SSLlfj6zUi/58g22rFL6eojGwlJig=

33
main.go
Wyświetl plik

@ -4,18 +4,19 @@ import (
"context"
"crypto/tls"
"encoding/xml"
"github.com/tmsmr/xmpp-webhook/parser"
"io"
"log"
"net/http"
"os"
"strings"
"github.com/tmsmr/xmpp-webhook/parser"
"mellium.im/sasl"
"mellium.im/xmlstream"
"mellium.im/xmpp"
"mellium.im/xmpp/dial"
"mellium.im/xmpp/jid"
"mellium.im/xmpp/stanza"
"net/http"
"os"
"strings"
)
func panicOnErr(err error) {
@ -46,16 +47,21 @@ func initXMPP(address jid.JID, pass string, skipTLSVerify bool, useXMPPS bool) (
if !skipTLSVerify {
tlsConfig.ServerName = address.Domainpart()
}
return xmpp.NegotiateSession(
return xmpp.NewSession(
context.TODO(),
address.Domain(),
address,
conn,
false,
xmpp.NewNegotiator(xmpp.StreamConfig{Features: []xmpp.StreamFeature{
xmpp.BindResource(),
xmpp.StartTLS(false, &tlsConfig),
xmpp.SASL("", pass, sasl.ScramSha256Plus, sasl.ScramSha256, sasl.ScramSha1Plus, sasl.ScramSha1, sasl.Plain),
0,
xmpp.NewNegotiator(xmpp.StreamConfig{Features: func(_ *xmpp.Session, f ...xmpp.StreamFeature) []xmpp.StreamFeature {
if f != nil {
return f
}
return []xmpp.StreamFeature{
xmpp.BindResource(),
xmpp.StartTLS(&tlsConfig),
xmpp.SASL("", pass, sasl.ScramSha1Plus, sasl.ScramSha1, sasl.Plain),
}
}}),
)
}
@ -95,7 +101,7 @@ func main() {
defer closeXMPP(xmppSession)
// send initial presence
panicOnErr(xmppSession.Send(context.TODO(), stanza.WrapPresence(jid.JID{}, stanza.AvailablePresence, nil)))
panicOnErr(xmppSession.Send(context.TODO(), stanza.Presence{Type: stanza.AvailablePresence}.Wrap(nil)))
// listen for messages and echo them
go func() {
@ -138,6 +144,9 @@ func main() {
// create chan for messages (webhooks -> xmpp)
messages := make(chan string)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
// wait for messages from the webhooks and send them to all receivers
go func() {
for m := range messages {
@ -145,7 +154,7 @@ func main() {
recipient, err := jid.Parse(r)
panicOnErr(err)
// try to send message, ignore errors
_ = xmppSession.Encode(MessageBody{
_ = xmppSession.Encode(ctx, MessageBody{
Message: stanza.Message{
To: recipient,
From: myjid,