diff --git a/scripts/shoutcast.liq b/scripts/shoutcast.liq index f31e911504..b6d7c19b17 100644 --- a/scripts/shoutcast.liq +++ b/scripts/shoutcast.liq @@ -22,7 +22,7 @@ def output.shoutcast( ~id="output.shoutcast",~start=true, ~host="localhost",~port=8000, - ~user="source",~password="hackme", + ~user="",~password="hackme", ~genre="Misc",~url="http://liquidsoap.fm", ~name="Liquidsoap Radio!",~public=true, ~icy_id=1, ~format="",~dj={""}, diff --git a/src/harbor/harbor.camlp4 b/src/harbor/harbor.camlp4 index 994e472c8b..c80b7206d9 100644 --- a/src/harbor/harbor.camlp4 +++ b/src/harbor/harbor.camlp4 @@ -291,6 +291,14 @@ struct Websocket.to_string (`Close (Some (n, msg))) let parse_icy_request_line ~port h r = + let auth_data = + Pcre.split ~pat:":" r + in + let requested_user,password = + match auth_data with + | user :: password :: _ -> user,password + | _ -> "", r + in duppy s = try duppy_return (find_source "/" (port-1)) @@ -302,7 +310,9 @@ struct (* Authentication can be blocking. *) duppy_exec let user,auth_f = s#login in - if auth_f user r then + let user = if requested_user = "" then + user else requested_user in + if auth_f user password then duppy_return (`Shout,"/",`Icy) else