Merge master.

oxmuc
Martin Dosch 2 years ago
parent 1efe3e3755
commit 0a3c44e1b4
No known key found for this signature in database
GPG Key ID: 52A57CFCE13D657D

@ -38,12 +38,12 @@ compile:
- tags
script:
- echo "${CI_JOB_ID}" > CI_JOB_ID.txt
- env GOOS=linux GOARCH=amd64 go build -buildmode=pie -ldflags "-extldflags '-static'" -o $CI_PROJECT_DIR/linux-amd64/go-sendxmpp
- env GOOS=linux GOARCH=arm64 go build -buildmode=pie -ldflags "-extldflags '-static'" -o $CI_PROJECT_DIR/linux-arm64/go-sendxmpp
- env GOOS=linux GOARCH=386 go build -ldflags "-extldflags '-static'" -o $CI_PROJECT_DIR/linux-386/go-sendxmpp
- env GOOS=linux GOARCH=arm go build -ldflags "-extldflags '-static'" -o $CI_PROJECT_DIR/linux-arm/go-sendxmpp
- env GOOS=windows GOARCH=386 go build -buildmode=pie -ldflags "-extldflags '-static'" -o $CI_PROJECT_DIR/win386/go-sendxmpp.exe
- env GOOS=windows GOARCH=amd64 go build -buildmode=pie -ldflags "-extldflags '-static'" -o $CI_PROJECT_DIR/win64/go-sendxmpp.exe
- env GOOS=linux GOARCH=amd64 go build -buildmode=pie -ldflags "-s -w -extldflags '-static'" -o $CI_PROJECT_DIR/linux-amd64/go-sendxmpp
- env GOOS=linux GOARCH=arm64 go build -buildmode=pie -ldflags "-s -w -extldflags '-static'" -o $CI_PROJECT_DIR/linux-arm64/go-sendxmpp
- env GOOS=linux GOARCH=386 go build -ldflags "-s -w -extldflags '-static'" -o $CI_PROJECT_DIR/linux-386/go-sendxmpp
- env GOOS=linux GOARCH=arm go build -ldflags "-s -w -extldflags '-static'" -o $CI_PROJECT_DIR/linux-arm/go-sendxmpp
- env GOOS=windows GOARCH=386 go build -buildmode=pie -ldflags "-s -w -extldflags '-static'" -o $CI_PROJECT_DIR/win386/go-sendxmpp.exe
- env GOOS=windows GOARCH=amd64 go build -buildmode=pie -ldflags "-s -w -extldflags '-static'" -o $CI_PROJECT_DIR/win64/go-sendxmpp.exe
artifacts:
paths:
- linux-amd64/go-sendxmpp

@ -3,11 +3,17 @@
## Unreleased
### Added
- Added Ox support for MUCs (not yet standardized).
=======
- Reply to `disco#info` queries.
- Send `service-unavailable` errors for all other IQs of type `get` and `set`.
- New config option and command line flag `alias` to uncouple MUC nickname/alias from resource.
### Changed
- Ox: Improve error messages for failed key requests.
- Ox: Do not encrypt empty messages.
- Check for empty messages.
- Always look up CNAME before doing SRV lookups (via xmppsrv v0.2.3).
- Detect CNAME loops (max. 5 CNAMEs) (via xmppsrv >= v0.2.4).
- Deprecate resource config option and command line flag.
## [v0.5.1] 2022-05-22
### Changed

@ -73,17 +73,18 @@ setting:
eval_password: <command_to_unlock_your_password>
```
You can also configure the resource (and nickname for MUCs) via the `resource` setting:
You can also configure the alias/nickname for MUCs via the `alias` setting:
```
resource: <my_resource>
alias: <my_resource>
```
If no configuration file is present or if the values should be overridden it is possible to define
the account details via command line options:
```plain
Usage: go-sendxmpp [-cdilnt] [-f value] [--help] [--http-upload value] [-j value] [-m value] [--muc-password value] [--ox] [--ox-delete-nodes] [--ox-genprivkey-rsa] [--ox-genprivkey-x25519] [--ox-import-privkey value] [--ox-passphrase value] [-p value] [--raw] [-r value] [--timeout value] [--tls-version value] [-u value] [--version] [parameters ...]
Usage: go-sendxmpp [-cdilnt] [-a value] [-f value] [--help] [--http-upload value] [-j value] [-m value] [--muc-password value] [--ox] [--ox-delete-nodes] [--ox-genprivkey-rsa] [--ox-genprivkey-x25519] [--ox-import-privkey value] [--ox-passphrase value] [-p value] [--raw] [-r value] [--timeout value] [--tls-version value] [-u value] [--version] [parameters ...]
-a, --alias=value Set alias/nicknamefor chatrooms.
-c, --chatroom Send message to a chatroom.
-d, --debug Show debugging info.
-f, --file=value Set configuration file. (Default:
@ -120,7 +121,7 @@ Usage: go-sendxmpp [-cdilnt] [-f value] [--help] [--http-upload value] [-j value
--raw Send raw XML.
-r, --resource=value
Set resource. When sending to a chatroom this is used as
'alias'.
'alias'. DEPRECATED: Use --alias instead.
--timeout=value
Connection timeout in seconds. [10]
-t, --tls Use direct TLS.

@ -18,6 +18,7 @@ const (
nsOxPubKeys = "urn:xmpp:openpgp:0:public-keys"
nsPubsub = "http://jabber.org/protocol/pubsub"
nsPubsubOwner = "http://jabber.org/protocol/pubsub#owner"
nsXMPPStanzas = "urn:ietf:params:xml:ns:xmpp-stanzas"
oxAltBody = "This message is encrypted (XEP-0373: OpenPGP for XMPP)."
pubsubPubOptions = "http://jabber.org/protocol/pubsub#publish-options"
)

@ -8,14 +8,16 @@ require (
github.com/gabriel-vasile/mimetype v1.4.1
github.com/mattn/go-xmpp v0.0.0-20220712221724-2eb234970ce7
github.com/pborman/getopt/v2 v2.1.0
salsa.debian.org/mdosch/xmppsrv v0.1.1
salsa.debian.org/mdosch/xmppsrv v0.2.4-0.20220805135559-06e33f896377
)
require (
github.com/ProtonMail/go-crypto v0.0.0-20220714114130-e85cedf506cd // indirect
github.com/ProtonMail/go-crypto v0.0.0-20220730123233-d6ffb7692adf // indirect
github.com/ProtonMail/go-mime v0.0.0-20220429130430-2192574d760f // indirect
github.com/cloudflare/circl v1.2.0 // indirect
github.com/pkg/errors v0.9.1 // indirect
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect
golang.org/x/net v0.0.0-20220708220712-1185a9018129 // indirect
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect
golang.org/x/net v0.0.0-20220805013720-a33c5aa5df48 // indirect
golang.org/x/sys v0.0.0-20220804214406-8e32c043e418 // indirect
golang.org/x/text v0.3.7 // indirect
)

@ -1,7 +1,7 @@
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/ProtonMail/go-crypto v0.0.0-20220113124808-70ae35bab23f/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo=
github.com/ProtonMail/go-crypto v0.0.0-20220714114130-e85cedf506cd h1:sOpOKHLKfQtb3L4c8NMK7dsUlQU8ILQ9KHX8EWD/VVE=
github.com/ProtonMail/go-crypto v0.0.0-20220714114130-e85cedf506cd/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo=
github.com/ProtonMail/go-crypto v0.0.0-20220730123233-d6ffb7692adf h1:aFFtnGZ6/2Qlvx80yxA2fFSYDQWTFjtKozQKB36A3/A=
github.com/ProtonMail/go-crypto v0.0.0-20220730123233-d6ffb7692adf/go.mod h1:UBYPn8k0D56RtnR8RFQMjmh4KrZzWJ5o7Z9SYjossQ8=
github.com/ProtonMail/go-mime v0.0.0-20220302105931-303f85f7fe0f/go.mod h1:NYt+V3/4rEeDuaev/zw1zCq8uqVEuPHzDPo3OZrlGJ4=
github.com/ProtonMail/go-mime v0.0.0-20220429130430-2192574d760f h1:4IWzKjHzZxdrW9k4zl/qCwenOVHDbVDADPPHFLjs0Oc=
github.com/ProtonMail/go-mime v0.0.0-20220429130430-2192574d760f/go.mod h1:qRZgbeASl2a9OwmsV85aWwRqic0NHPh+9ewGAzb4cgM=
@ -9,6 +9,11 @@ github.com/ProtonMail/gopenpgp/v2 v2.4.8 h1:udtI0QsLn6EOBM2zwmmTvAWaUP+3GNatkfiI
github.com/ProtonMail/gopenpgp/v2 v2.4.8/go.mod h1:ZW1KxHNG6q5LMgFKf9Ap/d2eVYeyGf5+fAUEAjJWtmo=
github.com/beevik/etree v1.1.0 h1:T0xke/WvNtMoCqgzPhkX2r4rjY3GDZFi+FjpRZY2Jbs=
github.com/beevik/etree v1.1.0/go.mod h1:r8Aw8JqVegEf0w2fDnATrX9VpkMcyFeM0FhwO62wh+A=
github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
github.com/bwesterb/go-ristretto v1.2.1/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I=
github.com/cloudflare/circl v1.2.0 h1:NheeISPSUcYftKlfrLuOo4T62FkmD4t4jviLfFFYaec=
github.com/cloudflare/circl v1.2.0/go.mod h1:Ch2UgYr6ti2KTtlejELlROl0YIYj7SLjAC8M+INXlMk=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@ -33,8 +38,10 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c=
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
@ -49,8 +56,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.0.0-20220708220712-1185a9018129 h1:vucSRfWwTsoXro7P+3Cjlr6flUMtzCwzlvkxEQtHHB0=
golang.org/x/net v0.0.0-20220708220712-1185a9018129/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.0.0-20220805013720-a33c5aa5df48 h1:N9Vc/rorQUDes6B9CNdIxAn5jODGj2wzfrei2x4wNj4=
golang.org/x/net v0.0.0-20220805013720-a33c5aa5df48/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
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=
@ -58,7 +65,12 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220315194320-039c03cc5b86/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220804214406-8e32c043e418 h1:9vYwv7OjYaky/tlAeD7C4oC9EsPTlaFl1H2jS++V+ME=
golang.org/x/sys v0.0.0-20220804214406-8e32c043e418/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@ -76,5 +88,5 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
salsa.debian.org/mdosch/xmppsrv v0.1.1 h1:I/5HS+cOg27LRADQ2R4KqQY6DTVMsaPMu9ywSAMTOG8=
salsa.debian.org/mdosch/xmppsrv v0.1.1/go.mod h1:udWXnWFa9zkcyN9YSB/u44BCnnRDpeQ0eDy3MVLjHZQ=
salsa.debian.org/mdosch/xmppsrv v0.2.4-0.20220805135559-06e33f896377 h1:maVAch+h+MX09AIMCi3NAR0ifJAKmFYbZrQX06un3DI=
salsa.debian.org/mdosch/xmppsrv v0.2.4-0.20220805135559-06e33f896377/go.mod h1:udWXnWFa9zkcyN9YSB/u44BCnnRDpeQ0eDy3MVLjHZQ=

@ -1,35 +0,0 @@
// Copyright 2020 - 2021 Martin Dosch.
// Use of this source code is governed by the BSD-2-clause
// license that can be found in the LICENSE file.
package main
import (
"github.com/mattn/go-xmpp" // BSD-3-Clause
)
func sendIQ(client *xmpp.Client, iqc chan xmpp.IQ, target string,
iQtype string, content string) (xmpp.IQ, error) {
var iq xmpp.IQ
id := getID()
c := make(chan xmpp.IQ)
go getIQ(client, id, c, iqc)
_, err := client.RawInformation(client.JID(), target, id,
iQtype, content + "\n")
if err != nil {
return iq, err
}
iq = <-c
return iq, nil
}
func getIQ(client *xmpp.Client, id string, c chan xmpp.IQ,
iqc chan xmpp.IQ) {
for {
iq := <-iqc
if iq.ID == id {
c <- iq
return
}
}
}

@ -27,23 +27,7 @@ type configuration struct {
port string
password string
resource string
}
func rcvStanzas(client *xmpp.Client, iqc chan xmpp.IQ, msgc chan xmpp.Chat) {
for {
received, err := client.Recv()
if err != nil {
log.Println(err)
}
switch v := received.(type) {
case xmpp.Chat:
msgc <- v
case xmpp.IQ:
iqc <- v
case xmpp.Presence:
default:
}
}
alias string
}
func readMessage(messageFilePath string) (string, error) {
@ -93,11 +77,11 @@ func main() {
}
var (
err error
message, user, server, password, resource string
oxPrivKey *crypto.Key
recipients []recipientsType
groupchat bool
err error
message, user, server, password, resource, alias string
oxPrivKey *crypto.Key
recipients []recipientsType
groupchat bool
)
// Define command line flags.
@ -110,7 +94,9 @@ func main() {
flagChatroom := getopt.BoolLong("chatroom", 'c', "Send message to a chatroom.")
flagDirectTLS := getopt.BoolLong("tls", 't', "Use direct TLS.")
flagResource := getopt.StringLong("resource", 'r', "", "Set resource. "+
"When sending to a chatroom this is used as 'alias'.")
"When sending to a chatroom this is used as 'alias'. DEPRECATED: Use --alias instead.")
flagAlias := getopt.StringLong("alias", 'a', "", "Set alias/nickname"+
"for chatrooms.")
flagFile := getopt.StringLong("file", 'f', "", "Set configuration file. (Default: "+
"~/.config/go-sendxmpp/sendxmpprc)")
flagMessageFile := getopt.StringLong("message", 'm', "", "Set file including the message.")
@ -184,6 +170,7 @@ func main() {
server = config.jserver
password = config.password
resource = config.resource
alias = config.alias
if config.port != "" {
server = net.JoinHostPort(server, fmt.Sprint(config.port))
}
@ -204,11 +191,21 @@ func main() {
password = *flagPassword
}
// Overwrite resource if specified via command line flag
switch {
// Use "go-sendxmpp" if no nick is specified via config or command line flag.
case alias == "" && *flagAlias == "":
alias = "go-sendxmpp"
// Overwrite configured alias if a nick is specified via command line flag.
case *flagAlias != "":
alias = *flagAlias
}
// Overwrite resource if specified via command line flag.
if *flagResource != "" {
fmt.Println("Deprecated flag: --resource.")
resource = *flagResource
} else if resource == "" {
// Use "go-sendxmpp" plus a random string if no other resource is specified
// Use "go-sendxmpp" plus a random string if no other resource is specified.
resource = "go-sendxmpp." + getShortID()
}
@ -272,7 +269,6 @@ func main() {
go rcvStanzas(client, iqc, msgc)
var msgType string
msgType = "chat"
if *flagChatroom {
msgType = "groupchat"
// Join the MUCs.
@ -408,6 +404,22 @@ func main() {
message = strings.ToValidUTF8(message, "")
reg := regexp.MustCompile(`[\x{0000}-\x{0008}\x{000B}\x{000C}\x{000E}-\x{001F}]`)
message = reg.ReplaceAllString(message, "")
if *flagChatroom {
msgType = "groupchat"
// Join the MUCs.
for _, recipient := range recipients {
if *flagMUCPassword != "" {
dummyTime := time.Now()
_, err = client.JoinProtectedMUC(recipient.Jid, alias,
*flagMUCPassword, xmpp.NoHistory, 0, &dummyTime)
} else {
_, err = client.JoinMUCNoHistory(recipient.Jid, alias)
}
if err != nil {
log.Fatal(err)
}
}
}
switch {
case *flagRaw:
if message == "" {

@ -1,6 +1,6 @@
.\" generated with Ronn-NG/v0.9.1
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
.TH "GO\-SENDXMPP" "1" "July 2022" ""
.TH "GO\-SENDXMPP" "1" "August 2022" ""
.SH "NAME"
\fBgo\-sendxmpp\fR \- A little tool to send messages to an XMPP contact or MUC\.
.SH "SYNOPSIS"
@ -10,6 +10,8 @@ A little tool to send messages to an XMPP contact or MUC inspired by (but not as
.br
You can either pipe a programs output to \fBgo\-sendxmpp\fR, write in your terminal (put \fB^D\fR in a new line to finish) or send the input from a file (\fB\-m\fR or \fB\-\-message\fR)\. The account data is expected at \fB~/\.config/go\-sendxmpp/config\fR (preferred), \fB~/\.config/go\-sendxmpp/sendxmpprc\fR (deprecated) \fB~/\.sendxmpprc\fR (for compatibility with the original perl sendxmpp) if no other configuration file location is specified with \fB\-f\fR or \fB\-\-file\fR\.
.SH "OPTIONS"
\fB\-a\fR, \fB\-\-alias\fR=[\fIvalue\fR]: Set alias/nicknamefor chatrooms\.
.P
\fB\-c\fR, \fB\-\-chatroom\fR=[\fIvalue\fR]: Send message to a chatroom\.
.P
\fB\-d\fR, \fB\-\-debug\fR: Show debugging info\.
@ -56,7 +58,7 @@ If there is an existing private key for "OpenPGP for XMPP" created by another cl
.P
\fB\-\-raw\fR: Send raw XML\. To send raw XML to a contact as normal chat message no contact must be specified\. To send raw XML to a MUC you have to specify the MUC via \fB\-c\fR and go\-sendxmpp will join the MUC\.
.P
\fB\-r\fR, \fB\-\-resource\fR=[\fIvalue\fR]: Set resource\. When sending to a chatroom this is used as 'alias'\.
\fB\-r\fR, \fB\-\-resource\fR=[\fIvalue\fR]: DEPRECATED: Set resource\. When sending to a chatroom this is used as 'alias'\.
.P
\fB\-\-timeout=\fR[\fIvalue\fR]: Connection timeout in seconds\. (Default: 10)
.P

@ -91,6 +91,9 @@ file location is specified with <code>-f</code> or <code>--file</code>.</p>
<h2 id="OPTIONS">OPTIONS</h2>
<p><code>-a</code>, <code>--alias</code>=[<var>value</var>]:
Set alias/nicknamefor chatrooms.</p>
<p><code>-c</code>, <code>--chatroom</code>=[<var>value</var>]:
Send message to a chatroom.</p>
@ -174,7 +177,7 @@ file location is specified with <code>-f</code> or <code>--file</code>.</p>
To send raw XML to a MUC you have to specify the MUC via <code>-c</code> and go-sendxmpp will join the MUC.</p>
<p><code>-r</code>, <code>--resource</code>=[<var>value</var>]:
Set resource. When sending to a chatroom this is used as 'alias'.</p>
DEPRECATED: Set resource. When sending to a chatroom this is used as 'alias'.</p>
<p><code>--timeout=</code>[<var>value</var>]:
Connection timeout in seconds. (Default: 10)</p>
@ -206,11 +209,11 @@ License: BSD 2-clause License</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<p><span class="man-ref">go-sendxmpp<span class="s">(5)</span></span>, <span class="man-ref">sendxmpp<span class="s">(1)</span></span></p>
<p><a class="man-ref" href="go-sendxmpp.5.html">go-sendxmpp<span class="s">(5)</span></a>, <span class="man-ref">sendxmpp<span class="s">(1)</span></span></p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>July 2022</li>
<li class='tc'>August 2022</li>
<li class='tr'>go-sendxmpp(1)</li>
</ol>

@ -16,6 +16,9 @@ file location is specified with `-f` or `--file`.
## OPTIONS
`-a`, `--alias`=[<value>]:
Set alias/nicknamefor chatrooms.
`-c`, `--chatroom`=[<value>]:
Send message to a chatroom.
@ -99,7 +102,7 @@ file location is specified with `-f` or `--file`.
To send raw XML to a MUC you have to specify the MUC via `-c` and go-sendxmpp will join the MUC.
`-r`, `--resource`=[<value>]:
Set resource. When sending to a chatroom this is used as 'alias'.
DEPRECATED: Set resource. When sending to a chatroom this is used as 'alias'.
`--timeout=`[<value>]:
Connection timeout in seconds. (Default: 10)

@ -1,6 +1,6 @@
.\" generated with Ronn-NG/v0.9.1
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
.TH "GO\-SENDXMPP" "5" "February 2022" ""
.TH "GO\-SENDXMPP" "5" "August 2022" ""
.SH "NAME"
\fBgo\-sendxmpp\fR \- A little tool to send messages to an XMPP contact or MUC\.
.SH "LOCATION"
@ -16,7 +16,7 @@ password: [\fIyour_jabber_password\fR]
.br
eval_password: [\fIcommand_to_unlock_your_password\fR]
.br
resource: [\fIyour_resource\fR]
alias: [\fIyour_alias\fR]
.SH "REQUIRED SETTINGS"
If all necessary settings are supplied as command line arguments no config file is needed at all\. Setting \fBjserver\fR and \fBport\fR might not be necessary depending on the used server\.
.br

@ -88,7 +88,7 @@ jserver: [<var>jabber_server</var>] <br>
port: [<var>jabber_port</var>] <br>
password: [<var>your_jabber_password</var>] <br>
eval_password: [<var>command_to_unlock_your_password</var>] <br>
resource: [<var>your_resource</var>]</p>
alias: [<var>your_alias</var>]</p>
<h2 id="REQUIRED-SETTINGS">REQUIRED SETTINGS</h2>
@ -116,7 +116,7 @@ License: BSD 2-clause License</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>February 2022</li>
<li class='tc'>August 2022</li>
<li class='tr'>go-sendxmpp(5)</li>
</ol>

@ -14,7 +14,7 @@ jserver: [<jabber_server>]
port: [<jabber_port>]
password: [<your_jabber_password>]
eval_password: [<command_to_unlock_your_password>]
resource: [<your_resource>]
alias: [<your_alias>]
## REQUIRED SETTINGS

@ -7,6 +7,7 @@ package main
import (
"bufio"
"errors"
"fmt"
"log"
"os"
"os/exec"
@ -120,6 +121,9 @@ func parseConfig(configPath string) (configuration, error) {
output.port = row[1]
case "resource:":
output.resource = row[1]
fmt.Println(configPath+":", "Deprecated option: resource.")
case "alias:":
output.alias = row[1]
default:
if len(row) >= 2 {
if strings.Contains(scanner.Text(), ";") {

Loading…
Cancel
Save