handle redirecting via 302 code
This commit is contained in:
parent
b652f1bfba
commit
ce2edddbeb
@ -310,6 +310,11 @@ func (self *Client) handleResp(res *Response) (err error) {
|
|||||||
self.session = fields[0]
|
self.session = fields[0]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if res.StatusCode == 302 {
|
||||||
|
if err = self.handle302(res); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
if res.StatusCode == 401 {
|
if res.StatusCode == 401 {
|
||||||
if err = self.handle401(res); err != nil {
|
if err = self.handle401(res); err != nil {
|
||||||
return
|
return
|
||||||
@ -318,6 +323,31 @@ func (self *Client) handleResp(res *Response) (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (self *Client) handle302(res *Response) (err error) {
|
||||||
|
/*
|
||||||
|
RTSP/1.0 200 OK
|
||||||
|
CSeq: 302
|
||||||
|
*/
|
||||||
|
newLocation := res.Headers.Get("Location")
|
||||||
|
fmt.Printf("\tRedirecting stream to other location: %s\n", newLocation)
|
||||||
|
|
||||||
|
err = self.Close()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
newConnect, err := Dial(newLocation)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
self.requestUri = newLocation
|
||||||
|
self.conn = newConnect.conn
|
||||||
|
self.brconn = newConnect.brconn
|
||||||
|
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
func (self *Client) handle401(res *Response) (err error) {
|
func (self *Client) handle401(res *Response) (err error) {
|
||||||
/*
|
/*
|
||||||
RTSP/1.0 401 Unauthorized
|
RTSP/1.0 401 Unauthorized
|
||||||
|
Loading…
Reference in New Issue
Block a user