Compare commits

...

3 Commits

Author SHA1 Message Date
Yohann D'ANELLO f7cf187bac
Ignore stream name case 2021-02-25 17:45:36 +01:00
Yohann D'ANELLO dc594d091c
Ignore stream name case 2021-02-25 17:38:09 +01:00
Yohann D'ANELLO a429216735
Allow uppercase letters in stream name 2021-02-25 17:23:11 +01:00
3 changed files with 9 additions and 8 deletions

View File

@ -10,19 +10,19 @@ func TestBasicLogin(t *testing.T) {
// Test good credentials
backend, _ := New(&Options{Credentials: basicCredentials})
ok, err := backend.Login("demo", "demo")
ok, _, err := backend.Login("demo", "demo")
if !ok {
t.Error("Error while logging with the basic authentication:", err)
}
// Test bad username
ok, err = backend.Login("baduser", "demo")
ok, _, err = backend.Login("baduser", "demo")
if ok {
t.Error("Authentification failed to fail:", err)
}
// Test bad password
ok, err = backend.Login("demo", "badpass")
ok, _, err = backend.Login("demo", "badpass")
if ok {
t.Error("Authentification failed to fail:", err)
}

View File

@ -79,7 +79,7 @@ func Serve(streams *messaging.Streams, authBackend auth.Backend, cfg *Options) {
if len(split) > 1 {
// password was provided so it is a streamer
name, password := split[0], split[1]
name, password := strings.ToLower(split[0]), split[1]
if authBackend != nil {
// check password
ok, username, err := authBackend.Login(name, password)
@ -94,7 +94,7 @@ func Serve(streams *messaging.Streams, authBackend auth.Backend, cfg *Options) {
go handleStreamer(s, streams, name)
} else {
// password was not provided so it is a viewer
name := split[0]
name := strings.ToLower(split[0])
// Send stream
go handleViewer(s, streams, name)

View File

@ -21,7 +21,7 @@ import (
var (
// Precompile regex
validPath = regexp.MustCompile("^/[a-z0-9@_-]*$")
validPath = regexp.MustCompile("^/[a-zA-Z0-9@_-]*$")
counterMutex = new(sync.Mutex)
connectedClients = make(map[string]map[string]int64)
@ -42,7 +42,7 @@ func viewerHandler(w http.ResponseWriter, r *http.Request) {
}
// Get stream ID from URL, or from domain name
path := r.URL.Path[1:]
path := strings.ToLower(r.URL.Path[1:])
host := r.Host
if strings.Contains(host, ":") {
realHost, _, err := net.SplitHostPort(r.Host)
@ -58,7 +58,7 @@ func viewerHandler(w http.ResponseWriter, r *http.Request) {
if path == "about" {
path = ""
} else {
path = streamID
path = strings.ToLower(streamID)
}
}
@ -97,6 +97,7 @@ func staticHandler() http.Handler {
func statisticsHandler(w http.ResponseWriter, r *http.Request) {
// Retrieve stream name from URL
name := strings.SplitN(strings.Replace(r.URL.Path[7:], "/", "", -1), "@", 2)[0]
name = strings.ToLower(name)
userCount := 0
// Clients have a unique generated identifier per session, that expires in 40 seconds.