Files
goSam/stream.go

49 lines
1.0 KiB
Go
Raw Normal View History

package goSam
import (
"fmt"
)
2014-02-14 12:05:13 +01:00
// StreamConnect asks SAM for a TCP-Like connection to dest, has to be called on a new Client
func (c *Client) StreamConnect(dest string) error {
if dest == "" {
return nil
}
r, err := c.sendCmd("STREAM CONNECT ID=%s DESTINATION=%s %s %s\n", c.ID(), dest, c.from(), c.to())
if err != nil {
return err
}
2015-03-25 22:03:05 +01:00
// TODO: move check into sendCmd()
if r.Topic != "STREAM" || r.Type != "STATUS" {
return fmt.Errorf("Stream Connect Unknown Reply: %+v\n", r)
}
result := r.Pairs["RESULT"]
if result != "OK" {
return ReplyError{result, r}
}
return nil
}
2014-02-12 22:14:19 +01:00
2014-02-14 12:05:13 +01:00
// StreamAccept asks SAM to accept a TCP-Like connection
func (c *Client) StreamAccept() (*Reply, error) {
r, err := c.sendCmd("STREAM ACCEPT ID=%s SILENT=false\n", c.ID())
2014-02-12 22:14:19 +01:00
if err != nil {
return nil, err
}
2015-03-25 22:03:05 +01:00
// TODO: move check into sendCmd()
2014-02-12 22:14:19 +01:00
if r.Topic != "STREAM" || r.Type != "STATUS" {
return nil, fmt.Errorf("Stream Accept Unknown Reply: %+v\n", r)
2014-02-12 22:14:19 +01:00
}
result := r.Pairs["RESULT"]
if result != "OK" {
return nil, ReplyError{result, r}
}
return r, nil
}