You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
607 B
28 lines
607 B
3 years ago
|
package mtproto
|
||
|
|
||
|
import (
|
||
|
"github.com/go-faster/errors"
|
||
|
|
||
|
"github.com/gotd/td/internal/proto"
|
||
|
|
||
|
"github.com/gotd/td/bin"
|
||
|
)
|
||
|
|
||
|
func (c *Conn) handleContainer(msgID int64, b *bin.Buffer) error {
|
||
|
var container proto.MessageContainer
|
||
|
if err := container.Decode(b); err != nil {
|
||
|
return errors.Wrap(err, "container")
|
||
|
}
|
||
|
for _, msg := range container.Messages {
|
||
|
if err := c.processContainerMessage(msgID, msg); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (c *Conn) processContainerMessage(msgID int64, msg proto.Message) error {
|
||
|
b := &bin.Buffer{Buf: msg.Body}
|
||
|
return c.handleMessage(msgID, b)
|
||
|
}
|