diff --git a/db.go b/db.go index 46d04df..1aeccec 100644 --- a/db.go +++ b/db.go @@ -461,10 +461,10 @@ func (db *DB) StoreChannel(networkID int64, ch *Channel) error { return err } -func (db *DB) DeleteChannel(networkID int64, name string) error { +func (db *DB) DeleteChannel(id int64) error { db.lock.Lock() defer db.lock.Unlock() - _, err := db.db.Exec("DELETE FROM Channel WHERE network = ? AND name = ?", networkID, name) + _, err := db.db.Exec("DELETE FROM Channel WHERE id = ?", id) return err } diff --git a/user.go b/user.go index 021e5b6..aded19c 100644 --- a/user.go +++ b/user.go @@ -229,7 +229,11 @@ func (net *network) createUpdateChannel(ch *Channel) error { } func (net *network) deleteChannel(name string) error { - if err := net.user.srv.db.DeleteChannel(net.ID, name); err != nil { + ch, ok := net.channels[name] + if !ok { + return fmt.Errorf("unknown channel %q", name) + } + if err := net.user.srv.db.DeleteChannel(ch.ID); err != nil { return err } delete(net.channels, name)