This cleans the libcurl usage up a bit. It moves common code used
to interact with libcurl into a single new file curl.[ch].
Notes:
* It does not alter any features nor fixes any bugs.
* Thew REVIEW about strdup(self->url) in event_url.c as been processed.
According to the manpage for curl_easy_setopt()/CURLOPT_URL
there is no need for us to copy.
* URL Auth as well as URL triggers have sent ICECAST_VERSION_STRING
as User-Agent:, this has be corrected to what is set in the config
file.
* As curl.c is now a single point for setting parameters all the TLS
parameters should be reviewed and set (based on config).
Please test!
<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.