Map domain to streamid instead of considering that the domain is the streamid: no need to pass a YAML key that contains dots
This commit is contained in:
parent
3b8c149e38
commit
4546f3b8fb
|
@ -73,7 +73,7 @@ srt:
|
|||
telnet:
|
||||
# By default, this easter egg is disabled.
|
||||
# You must enable it to use it.
|
||||
#enable: false
|
||||
#enabled: false
|
||||
|
||||
#listenAddress: :8023
|
||||
|
||||
|
@ -115,11 +115,13 @@ web:
|
|||
#
|
||||
#name: Ghostream
|
||||
|
||||
# Use the domain name as the stream name
|
||||
# e.g., on http://example.com:8080/ the stream served will be "example.com"
|
||||
# Use the domain name as the stream name for some hosts
|
||||
# e.g., on http://stream.example.com:8080/, if the domain stream.example.com is mapped to "example",
|
||||
# the stream served will be "example".
|
||||
# This implies that your domain will be able to serve only one stream.
|
||||
#
|
||||
#oneStreamPerDomain: false
|
||||
#mapDomainToStream:
|
||||
# stream.example.com: example
|
||||
|
||||
# Stream player poster
|
||||
# Shown when stream is loading or inactive.
|
||||
|
|
|
@ -71,7 +71,7 @@ func New() *Config {
|
|||
Hostname: "localhost",
|
||||
ListenAddress: ":8080",
|
||||
Name: "Ghostream",
|
||||
OneStreamPerDomain: false,
|
||||
MapDomainToStream: make(map[string]string),
|
||||
PlayerPoster: "/static/img/no_stream.svg",
|
||||
ViewersCounterRefreshPeriod: 20000,
|
||||
},
|
||||
|
|
|
@ -24,17 +24,17 @@ func viewerPostHandler(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
// Get stream ID from URL, or from domain name
|
||||
path := r.URL.Path[1:]
|
||||
if cfg.OneStreamPerDomain {
|
||||
host := r.Host
|
||||
if strings.Contains(host, ":") {
|
||||
realHost, _, err := net.SplitHostPort(r.Host)
|
||||
if err != nil {
|
||||
log.Printf("Failed to split host and port from %s", r.Host)
|
||||
return
|
||||
}
|
||||
host = realHost
|
||||
host := r.Host
|
||||
if strings.Contains(host, ":") {
|
||||
realHost, _, err := net.SplitHostPort(r.Host)
|
||||
if err != nil {
|
||||
log.Printf("Failed to split host and port from %s", r.Host)
|
||||
return
|
||||
}
|
||||
path = host
|
||||
host = realHost
|
||||
}
|
||||
if streamID, ok := cfg.MapDomainToStream[host]; ok {
|
||||
path = streamID
|
||||
}
|
||||
|
||||
// Decode client description
|
||||
|
@ -73,20 +73,20 @@ func viewerPostHandler(w http.ResponseWriter, r *http.Request) {
|
|||
func viewerGetHandler(w http.ResponseWriter, r *http.Request) {
|
||||
// Get stream ID from URL, or from domain name
|
||||
path := r.URL.Path[1:]
|
||||
if cfg.OneStreamPerDomain {
|
||||
host := r.Host
|
||||
if strings.Contains(host, ":") {
|
||||
realHost, _, err := net.SplitHostPort(r.Host)
|
||||
if err != nil {
|
||||
log.Printf("Failed to split host and port from %s", r.Host)
|
||||
return
|
||||
}
|
||||
host = realHost
|
||||
host := r.Host
|
||||
if strings.Contains(host, ":") {
|
||||
realHost, _, err := net.SplitHostPort(r.Host)
|
||||
if err != nil {
|
||||
log.Printf("Failed to split host and port from %s", r.Host)
|
||||
return
|
||||
}
|
||||
host = realHost
|
||||
}
|
||||
if streamID, ok := cfg.MapDomainToStream[host]; ok {
|
||||
if path == "about" {
|
||||
path = ""
|
||||
} else {
|
||||
path = host
|
||||
path = streamID
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>{{if .Path}}{{if not .Cfg.OneStreamPerDomain}}{{.Path}} - {{end}}{{end}}{{.Cfg.Name}}</title>
|
||||
<title>{{if .Path}}{{.Path}} - {{end}}{{.Cfg.Name}}</title>
|
||||
<link rel="stylesheet" href="static/css/style.css">
|
||||
<link rel="stylesheet" href="static/css/player.css">
|
||||
{{if .Cfg.CustomCSS}}<link rel="stylesheet" href="{{.Cfg.CustomCSS}}">{{end}}
|
||||
|
|
|
@ -22,7 +22,7 @@ type Options struct {
|
|||
Hostname string
|
||||
ListenAddress string
|
||||
Name string
|
||||
OneStreamPerDomain bool
|
||||
MapDomainToStream map[string]string
|
||||
PlayerPoster string
|
||||
SRTServerPort string
|
||||
STUNServers []string
|
||||
|
|
Loading…
Reference in New Issue