diff options
Diffstat (limited to 'bridge')
-rw-r--r-- | bridge/config/config.go | 2 | ||||
-rw-r--r-- | bridge/irc/irc.go | 11 |
2 files changed, 11 insertions, 2 deletions
diff --git a/bridge/config/config.go b/bridge/config/config.go index a6e3c546..7b7c2f2e 100644 --- a/bridge/config/config.go +++ b/bridge/config/config.go @@ -138,6 +138,7 @@ type Protocol struct { QuoteDisable bool // telegram QuoteFormat string // telegram QuoteLengthLimit int // telegram + RealName string // IRC RejoinDelay int // IRC ReplaceMessages [][]string // all protocols ReplaceNicks [][]string // all protocols @@ -169,6 +170,7 @@ type Protocol struct { UseFirstName bool // telegram UseUserName bool // discord, matrix UseInsecureURL bool // telegram + UserName string // IRC VerboseJoinPart bool // IRC WebhookBindAddress string // mattermost, slack WebhookURL string // mattermost, slack diff --git a/bridge/irc/irc.go b/bridge/irc/irc.go index e54f8030..ac8222c6 100644 --- a/bridge/irc/irc.go +++ b/bridge/irc/irc.go @@ -271,8 +271,11 @@ func (b *Birc) getClient() (*girc.Client, error) { if err != nil { return nil, err } + user := b.GetString("UserName") + if user == "" { + user = b.GetString("Nick") + } // fix strict user handling of girc - user := b.GetString("Nick") for !girc.IsValidUser(user) { if len(user) == 1 || len(user) == 0 { user = "matterbridge" @@ -280,6 +283,10 @@ func (b *Birc) getClient() (*girc.Client, error) { } user = user[1:] } + realName := b.GetString("RealName") + if realName == "" { + realName = b.GetString("Nick") + } debug := ioutil.Discard if b.GetInt("DebugLevel") == 2 { @@ -299,7 +306,7 @@ func (b *Birc) getClient() (*girc.Client, error) { Port: port, Nick: b.GetString("Nick"), User: user, - Name: b.GetString("Nick"), + Name: realName, SSL: b.GetBool("UseTLS"), TLSConfig: &tls.Config{InsecureSkipVerify: b.GetBool("SkipTLSVerify"), ServerName: server}, //nolint:gosec PingDelay: pingDelay, |