Philipp Schafft
45d44a6349
Feature: Clear XSLT cache on config reload
2018-07-06 21:40:37 +00:00
Philipp Schafft
3ffe5f4e96
Update: Adding more debugging to XSLT cache
2018-07-06 20:37:18 +00:00
Philipp Schafft
e9140588c6
Cleanup: Formating
2018-07-06 20:27:02 +00:00
Philipp Schafft
6f6499a187
Cleanup: Formating
2018-07-06 20:26:12 +00:00
Philipp Schafft
73f00d5934
Update: Make connection IDs it's own type
2018-07-06 18:43:25 +00:00
Philipp Schafft
d08eba9607
Fix: Fixed report XML related memory leaks
2018-07-06 18:43:10 +00:00
Philipp Schafft
c02f34e989
Fix: Copy XML childs recursively
2018-07-06 18:42:45 +00:00
Philipp Schafft
d9e96a55e7
Feature: Allow <resource> to match on a specific listen-socket
2018-06-30 14:06:05 +00:00
Philipp Schafft
2febabcddd
Update: Corrected copyright
2018-06-30 13:57:37 +00:00
Philipp Schafft
80ffdca7d1
Feature: Allow listen sockets to virtually handle other sockets traffic.
...
This adds on-behalf-of="#id" to <listen-socket>. It allows a socket
to handle the traffic that was originally meant of another (virtual)
listen socket.
2018-06-30 13:51:42 +00:00
Philipp Schafft
7742bf0a21
Fix: Report correct listen URL to client.
...
The URL is constructed considering Protocol, TLS Mode, Host, and Port.
This considers:
- The Host:-header as provided by the client,
- The effective listensocket of the client,
- Global configuration.
This works for:
- Playlist generation,
- Admin authed playlist generation,
- Stats based XSLT.
It also unifies code:
- Default stats values.
Not yet included:
- YP requests.
2018-06-30 13:12:30 +00:00
Philipp Schafft
33588fc9cf
Update: Prepare listensocket_*() API for uses with real listen socket != effective listen socket
2018-06-30 13:10:09 +00:00
Philipp Schafft
58848cbe56
Feature: Allow listen sockets to be of type "virtual"
2018-06-30 13:10:09 +00:00
Philipp Schafft
75be23b550
Fix: Also copy listener type
2018-06-30 13:10:08 +00:00
Philipp Schafft
6ad7f8d3db
Feature: Added id and type property to <listen-socket>
2018-06-30 13:10:08 +00:00
Philipp Schafft
e1f944a3f5
Update: Added comment about global lock in __prepare_shoutcast_admin_cgi_request()
2018-06-30 13:10:08 +00:00
Philipp Schafft
ab8d1639ba
Update: Made listensocket_* perfect thread safe.
2018-06-30 13:10:08 +00:00
Philipp Schafft
fcef3f12d6
Feature: Allow complete reconfiguration of sockets on config reload
2018-06-30 13:10:08 +00:00
Philipp Schafft
b495a407f9
Feature: Added listensocket_container_configure_and_setup() that combines configure and setup into one call
2018-06-30 13:10:08 +00:00
Philipp Schafft
a6ff1cb2d7
Update: Moved compare of two listeners into __listener_cmp()
2018-06-30 13:10:08 +00:00
Philipp Schafft
e661e14bee
Moved config apply on listensocket objects into it's own function
2018-06-30 13:10:08 +00:00
Philipp Schafft
6054f5cce4
Cleanup: Mark static function as inline
2018-06-30 13:10:08 +00:00
Philipp Schafft
8848d74e58
Fix: Correctly detect error condition
2018-06-30 13:10:08 +00:00
Philipp Schafft
4279a6caea
Update: Make use of listensocket_container_set_sockcount_cb() and listensocket_container_sockcount()
...
This fixes the starts-up-with-no-listen-sockets bug.
2018-06-30 13:10:08 +00:00
Philipp Schafft
c401bbcc12
Feature: Added listensocket_container_set_sockcount_cb() and listensocket_container_sockcount()
2018-06-30 13:10:08 +00:00
Philipp Schafft
5490120d4d
Update: Rewrote listen socket handling code comepletly.
...
This moves all the listen socket code into a nice and abstracting file.
Notes:
* Altering listen socket setup does not yet work on config reload.
(Did it ever work?)
* Server will start with no listen sockets. (There are unconfirmed
rumours it sometimes(?) did before.) This is to be re-implemented
in another commit. It can also be improved to work allow checking
on reload or other config changes.
* For slave connections the server address is now checked against
the allow/deny-IP list.
2018-06-30 13:10:08 +00:00
Philipp Schafft
1a426f7f81
Cleanup: Renamed *_TRANSFORMED* to *_HTML*
2018-06-29 15:25:12 +00:00
Philipp Schafft
4e7985c168
Fix: Allocate XML namespace
2018-06-29 13:40:06 +00:00
Philipp Schafft
962805df82
Update: Added attribute "application" for node "extension"
2018-06-29 13:40:03 +00:00
Philipp Schafft
0c7073f04f
Update: Attach definition to childs based on their type
2018-06-29 10:29:22 +00:00
Philipp Schafft
4188bd899f
Feature: Add definition ID to the first child of generated reports
2018-06-29 10:29:19 +00:00
Philipp Schafft
6168573e86
Feature: Render error messages via Report XML and XSLT
2018-06-27 16:07:21 +00:00
Philipp Schafft
7fadb6ce86
Feature: Added function to send XML Report to client
2018-06-27 15:54:31 +00:00
Philipp Schafft
8ea908e332
Feature: Only allow those nodes as childs that are allowed as per specs
2018-06-27 15:54:31 +00:00
Philipp Schafft
5eac0d80ca
Feature: Allow only the correct type of content per node
2018-06-27 15:54:31 +00:00
Philipp Schafft
7ffe12bc8b
Fix: Also copy XML childs when doing a node copy
2018-06-27 15:54:30 +00:00
Philipp Schafft
e24e524cb5
Fix: Access correct object
2018-06-27 15:54:30 +00:00
Philipp Schafft
52429c714f
Feature: Allow attaching XML to extentions
2018-06-27 15:54:30 +00:00
Philipp Schafft
86a62889d2
Feature: Added a way to find a node by attribute (useful for IDs).
2018-06-27 15:54:30 +00:00
Philipp Schafft
32a410bdd6
Feature: Allow xslt_transform() to send non-200 status
2018-06-27 15:54:30 +00:00
Philipp Schafft
d6a9530238
Update: Added useful logging in case report xml database has been loaded
2018-06-27 15:54:30 +00:00
Philipp Schafft
c1c5bd02e3
Fix: Corrected type detection logic for mixed-type <definition>s
2018-06-27 15:54:30 +00:00
Philipp Schafft
fecc38452a
Update: Added useful error message in case of unknown node name
2018-06-27 15:54:30 +00:00
Philipp Schafft
6f9c20e230
Feature: Added global (in config) reportxml database
2018-06-27 15:54:30 +00:00
Philipp Schafft
93897aebb3
Feature: Allow fully recursive lookup of definitions
2018-06-27 15:54:30 +00:00
Philipp Schafft
5d4430a645
Update: Made norec parameter optional
2018-06-27 15:54:30 +00:00
Philipp Schafft
6f8270dcfb
Update: Only look up first child if we really need to.
2018-06-27 15:54:30 +00:00
Philipp Schafft
a014f1c5cc
Feature: Added first level recursive definition lookup
2018-06-27 15:54:30 +00:00
Philipp Schafft
ae489acc93
Fix: Ensure references are counted correctly in case reportxml_node_copy() fails
2018-06-27 15:54:30 +00:00
Philipp Schafft
c4dca907ab
Fix: Use correct data type
2018-06-27 15:54:30 +00:00
Philipp Schafft
d9686e701a
Fix: Free temp memory
2018-06-27 15:54:29 +00:00
Philipp Schafft
c60e957782
Feature: Added a database to store definitions
2018-06-27 15:54:29 +00:00
Philipp Schafft
903ac2f1b3
Feature: Added fundamental report xml handling
2018-06-27 15:54:29 +00:00
Philipp Schafft
5df79580f7
Cleanup: Removed leftover debugging output
2018-06-27 15:52:54 +00:00
Philipp Schafft
b10406df20
Fix: Fixed ICECAST_LOG_DEBUG()'s format string
2018-06-20 12:33:34 +00:00
Philipp Schafft
526ecdaa8b
Updated submodules
2018-06-20 06:43:52 +00:00
Philipp Schafft
b9ff70b589
Fix: Only allow access to "*" for OPTIONS
2018-06-20 06:34:00 +00:00
Philipp Schafft
7e76986741
Update: Added a fast lane for client requests with a small body
2018-06-19 13:44:07 +00:00
Philipp Schafft
59cf2ff426
Cleanup: Removed now useless start-of-stream passing code (as much as I found. There is more)
2018-06-19 13:44:07 +00:00
Philipp Schafft
b8ceef2425
Fix: Fixed some compiler warnings
2018-06-19 13:44:07 +00:00
Philipp Schafft
c3afdff5fb
Feature: Allow POST for web requests
2018-06-19 13:44:07 +00:00
Philipp Schafft
a466900ae1
Feature: Allow POST for admin requests
2018-06-19 13:44:07 +00:00
Philipp Schafft
44ebc3cf22
Update: Added protection against re-queueing a client for reading body that has been queued once already
2018-06-19 13:44:07 +00:00
Philipp Schafft
19dda79146
Update: Added timeout and size limit to client body queue handling
2018-06-19 13:44:07 +00:00
Philipp Schafft
669707d312
Update: Added basic client body slurping
2018-06-19 13:44:07 +00:00
Philipp Schafft
bde88f82ae
Update: Added debug level logging for client slurping
2018-06-19 13:44:07 +00:00
Philipp Schafft
e9624ef523
Cleanup: Removed unused structure
2018-06-19 13:44:07 +00:00
Philipp Schafft
1c7329cfbf
Feature: Added some client request body slurping helpers
2018-06-19 13:44:07 +00:00
Philipp Schafft
b0c7da36a0
Fix: Fixed HTTP/1.1 pipelineing
2018-06-19 13:44:07 +00:00
Philipp Schafft
33dcf24d21
Fix: Only reuse client IF we reached the end of it's body
2018-06-19 13:44:07 +00:00
Philipp Schafft
01c35e2c41
Feature: Check if we know client's body length. If so do not allow reading more than it.
2018-06-19 13:44:07 +00:00
Philipp Schafft
f370e88335
Feature: Implemented a way to put back data read from a connection
2018-06-19 13:44:07 +00:00
Philipp Schafft
460477230d
Feature: Consider encoding backend EOF state
2018-06-19 13:44:07 +00:00
Philipp Schafft
38436c3f6e
Update: Abstract body read with client_body_read() and client_body_eof()
2018-06-19 13:44:07 +00:00
Philipp Schafft
ece3786a0a
Fix: Check if we actually have source->client->con in case we want to access source->client->con->tls
2018-06-19 13:44:06 +00:00
Philipp Schafft
551a36e43b
Fix: Added handling of newcb and freecb
2018-06-19 12:56:40 +00:00
Philipp Schafft
38c71f7673
Feature: Allow modules to handle client requests via <resource> tags
2018-06-19 12:56:40 +00:00
Philipp Schafft
f02c23a593
Fix: Corrected reference counters
2018-06-19 12:56:40 +00:00
Philipp Schafft
5d815f2205
Feature: Added a global module container object
2018-06-19 12:56:40 +00:00
Philipp Schafft
bb77660020
Feature: Added infrastructure for modules. Currently not used by Icecast at all.
2018-06-19 12:56:40 +00:00
Philipp Schafft
d745d02f4b
Cleanup: Removed unused member
2018-06-19 10:47:49 +00:00
Philipp Schafft
513b62aeea
Cleanup: Fixed some compiler warnings
2018-06-19 10:47:03 +00:00
Philipp Schafft
ea42a12efb
Fix: Fixed regression in htpasswd auth detecting no user list.
...
This fixed a regression caused by 4828c07d6b
.
The patch was also applied into release-2.4.4 as c5201770b6
.
However the patch for release-2.4.4 was correct. So no regression there.
2018-06-19 09:09:16 +00:00
Philipp Schafft
a3f29ae42a
Update: Renamed "parent" to "associated" to make it more generally useful
2018-06-17 13:17:05 +00:00
Philipp Schafft
4e1dc94c50
Feature: Added some useful macros to refobject API
2018-06-17 13:16:07 +00:00
Philipp Schafft
ac372a2edc
Fix: Do free the base of a refobject as well
2018-06-17 13:13:10 +00:00
Philipp Schafft
48c3ce52b3
Fix: Corrected used headers
2018-06-17 13:12:59 +00:00
Philipp Schafft
7cba708a50
Feature: Make refobject more general useful
2018-06-17 13:12:51 +00:00
Philipp Schafft
a9d391ffbc
Feature: Added generic reference object
2018-06-17 13:12:21 +00:00
Philipp Schafft
059bfdc7ce
Cleanup: Corrected headers used in code
2018-06-17 12:47:35 +00:00
Philipp Schafft
5c3e7760c5
Cleanup: Corrected headers used in headers
2018-06-17 12:28:38 +00:00
Philipp Schafft
8b86373e32
Cleanup: Moved types from "cfgfile.h" to "icecasttypes.h"
2018-06-17 12:15:18 +00:00
Philipp Schafft
aeaa91f633
Cleanup: Moved types from "connection.h" and "slave.h" to "icecasttypes.h"
2018-06-17 11:42:20 +00:00
Philipp Schafft
34b10657da
Cleanup: Make use of "icecasttypes.h"
2018-06-17 10:33:10 +00:00
Philipp Schafft
e467f6e31b
Cleanup: Make use of "icecasttypes.h" in format*.[ch]
2018-06-17 10:26:34 +00:00
Philipp Schafft
65f5eb9771
Cleanup: Make use of "icecasttypes.h" in connection.[ch]
2018-06-17 10:22:17 +00:00
Philipp Schafft
7893fc7560
Cleanup: Removed unused forward declaration
2018-06-17 10:21:33 +00:00
Philipp Schafft
f8e1ed0827
Cleanup: Removed unused forward declaration
2018-06-17 10:16:07 +00:00
Philipp Schafft
0adab82a71
Update: Moved ice_config_t into "icecasttypes.h"
2018-06-17 10:15:32 +00:00
Philipp Schafft
6ffc893b6a
Update: Move most common types into "icecasttypes.h"
2018-06-17 10:12:15 +00:00