Closed rustyhodge closed 1 year ago
in kh16 and later I've set a redirection limit to 1 (default) instead of the infinite that libcurl defaults to. This allows for a change of address that you may want in certain cases but you can set it with the option "redirect_limit" to specify a different figure, 0 -10 is allowed. Anything approaching that upper limit is silly.
If your auth_url returns a Location: header, curl will try and follow that URL rather than pass it on to Icecast.
Using this config for example:
And the URL returns a 302 redirect Location: http://whatever will return an error as the libCurl tries to follow the redirect.
Example error will be: WARN auth_url/url_add_listener auth to server http://xxxxxx/iceauth.cgi (/examplemount) failed with Operation timed out after 4991 milliseconds with 524957 bytes received
The location sends it into a loop.
This is because CURLOPT_FOLLOWLOCATION is set to 1 in auth_url.c curl_easy_setopt (atd->curl, CURLOPT_FOLLOWLOCATION, 1);
At line 579 insert curl_easy_setopt (atd->curl, CURLOPT_FOLLOWLOCATION, 0); before curl_easy_setopt (atd->curl, CURLOPT_URL, url->addurl);
and the problem is fixed.
I don't think this will break anything else.