diff -r bd56fb741f69 -r bee6cc131798 roster.go --- a/roster.go Sun Dec 16 22:37:57 2012 -0700 +++ b/roster.go Sun Dec 16 23:06:54 2012 -0700 @@ -51,7 +51,7 @@ iq := &Iq{Header: Header{From: client.Jid.String(), Type: "get", Id: <-Id, Nested: []interface{}{RosterQuery{}}}} ch := make(chan error) - f := func(v interface{}) bool { + f := func(v Stanza) bool { defer close(ch) iq, ok := v.(*Iq) if !ok { @@ -91,9 +91,9 @@ // the roster feeder, which is the goroutine that provides data on // client.Roster. func startRosterFilter(client *Client) { - out := make(chan interface{}) + out := make(chan Stanza) in := client.AddFilter(out) - go func(in <-chan interface{}, out chan<- interface{}) { + go func(in <-chan Stanza, out chan<- Stanza) { defer close(out) for st := range in { maybeUpdateRoster(client, st)