This let util_url_escape() handle NULL passed as parameter.
In case the parameter is NULL it will also return NULL.
This patch also does some cleanup of the code such as migration
away from int and thus avoiding future failtures.
This is a re-apply of 3baa4e46aa
as git refuses to cherry-pick.
This is a first commit to correct minor problmes reported by
Denis Denisov. There is likely another commit to correct some more
such problems.
Thank you Denis Denisov.
This tries to unbreak the 100-continue thing a bit.
Proper headers are send in case of 100-continue. Also the 200 OK
was moved to the end of the stream.
The client may even be reused. But I'm not sure we only do
'End of stream' in cases we are not on an undefined state of the
client. Do we as of now support anything that give us EOS without
a fatal socket state (error or shutdown)?
At least this unbreaks 100-continue with active TLS that was broken
as hell as we sent the header in clear over the socket. Not checking
if it was transmitted completly or something. Using lowlevel socket
calls (in contrast to the connection level calls that would have
handled the TLS just fine).
While this seem sto be a huge improvement to the situation I kindly
ask you to do a lot testing on this. Both with SOURCE as well as
PUT clients.
This allows the usage of RFC 2817 style upgrade commands.
This is not correctly announced yet.
Can hardly be tested as most clients do not support this.
Will be helpful with TLS support in libshout.
See: #2159, #2152
This adds to all responses:
* "Accept-Encoding: identity"
* "Connection: close"
* "Allow: GET, SOURCE" or "Allow: GET" (on admin pages)
This is to generate some infrastructure for Icecast to tell futur
source clients what is supported.
"Upgrade: TLS/1.0" should be added later when upgrade support is present.
See: #2152
<event> has been added and can be used within <kartoffelsalat>
both in <icecast> and <mount>.
<event> takes backend depending <option> child tags.
Currently supported backends:
- log: send message to error log.
- exec: executes a program or script.
- url: delivers the event via HTTP.
within <mount> <on-connect> and <on-disconnect> has been replaced by
<event>. Config parser can on-the-fly convert old tags.
Also <authentication type="url"> within <mount> has been fixed
for those cases with <option name="mount_add" .../> and
<option name="mount_remove" .../> which are now on-the-fly converted
by the parser to corresponding <event> tags.
Please also see TAGs added as per #2098. Some include hints for
documentation updates needed after this change. Those updates
should take place before 2.4.2.
This is currently not implemented for SOURCE and STATS clients as
I suspect to break them. This needs some more research.
close#1639, see #1870 and #1885.
svn path=/icecast/trunk/icecast/; revision=18464
You can now use the Shoutcast DSP as a source client. The connection
protocol is a bit odd, and we had to handle it separately, and thus
we've added a new config option (<shoutcast-compat>) that is set at
the listener port level.
* support for NSV (and the nsvscsrc source client).
After adding support for the connection protocol of the shoutcast DSP,
adding NSV was just a simple of a few special handling cases.
* removed all traces of the earlier attempt at the shoutcast DSP connection
protocol
* Due to the growing complexity of the config files, I've also created a
few alternate config files, namely one for a "shoutcast compat" setup
as well as a "minimal" one for quick basic configurations.
svn path=/icecast/trunk/icecast/; revision=8191
the unavailability of yp servers is much much better now.
- new icecast config option <yp-url-timeout> to specify the timeout
- url encoding is now fixed so that the yp data is formatted much nicer (and is correct :))
- added url encoding for some fields that were not url-encoded
- modified util_dict_urlencode() to not url-encode the key (still does the value)
- new curl option (CURLOPT_NOSIGNAL) which prevents curl from using signals when
timeouts are hit. This new option needs curl 7.10 at least.
svn path=/trunk/icecast/; revision=4603