Fix joining only one saved channel per network
This fixes a serious bug added in 276ce12e
, where in newNetwork all
channels point to the same channel, which causes soju to only join a
single channel when connecting to an upstream network.
This also adds the same kind of reassignment of a for loop variable in
user.run(), even though that function currently works correctly, as a
sanity improvement in case this function is changed in the future.
This commit is contained in:
parent
bbb5e79f59
commit
a99d6dd019
2
user.go
2
user.go
@ -65,6 +65,7 @@ type network struct {
|
|||||||
func newNetwork(user *user, record *Network, channels []Channel) *network {
|
func newNetwork(user *user, record *Network, channels []Channel) *network {
|
||||||
m := make(map[string]*Channel, len(channels))
|
m := make(map[string]*Channel, len(channels))
|
||||||
for _, ch := range channels {
|
for _, ch := range channels {
|
||||||
|
ch := ch
|
||||||
m[ch.Name] = &ch
|
m[ch.Name] = &ch
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -229,6 +230,7 @@ func (u *user) run() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, record := range networks {
|
for _, record := range networks {
|
||||||
|
record := record
|
||||||
channels, err := u.srv.db.ListChannels(record.ID)
|
channels, err := u.srv.db.ListChannels(record.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
u.srv.Logger.Printf("failed to list channels for user %q, network %q: %v", u.Username, record.GetName(), err)
|
u.srv.Logger.Printf("failed to list channels for user %q, network %q: %v", u.Username, record.GetName(), err)
|
||||||
|
Loading…
Reference in New Issue
Block a user