mirror of
https://github.com/bluenviron/mediamtx
synced 2025-01-23 15:34:28 +00:00
339d6ab16e
it was wrongly set to "video".
67 lines
1.3 KiB
Go
67 lines
1.3 KiB
Go
package core
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type externalAuthProto string
|
|
|
|
const (
|
|
externalAuthProtoRTSP externalAuthProto = "rtsp"
|
|
externalAuthProtoRTMP externalAuthProto = "rtmp"
|
|
externalAuthProtoHLS externalAuthProto = "hls"
|
|
externalAuthProtoWebRTC externalAuthProto = "webrtc"
|
|
)
|
|
|
|
func externalAuth(
|
|
ur string,
|
|
ip string,
|
|
user string,
|
|
password string,
|
|
path string,
|
|
protocol externalAuthProto,
|
|
id *uuid.UUID,
|
|
publish bool,
|
|
query string,
|
|
) error {
|
|
enc, _ := json.Marshal(struct {
|
|
IP string `json:"ip"`
|
|
User string `json:"user"`
|
|
Password string `json:"password"`
|
|
Path string `json:"path"`
|
|
Protocol string `json:"protocol"`
|
|
ID *uuid.UUID `json:"id"`
|
|
Action string `json:"action"`
|
|
Query string `json:"query"`
|
|
}{
|
|
IP: ip,
|
|
User: user,
|
|
Password: password,
|
|
Path: path,
|
|
Protocol: string(protocol),
|
|
Action: func() string {
|
|
if publish {
|
|
return "publish"
|
|
}
|
|
return "read"
|
|
}(),
|
|
Query: query,
|
|
})
|
|
res, err := http.Post(ur, "application/json", bytes.NewReader(enc))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer res.Body.Close()
|
|
|
|
if res.StatusCode < 200 || res.StatusCode > 299 {
|
|
return fmt.Errorf("bad status code: %d", res.StatusCode)
|
|
}
|
|
|
|
return nil
|
|
}
|