1
0
mirror of https://gitlab.xiph.org/xiph/icecast-server.git synced 2024-09-29 04:25:55 -04:00
Commit Graph

1346 Commits

Author SHA1 Message Date
Philipp Schafft
37d9319b1b Cleanup: Use replace_string() and only strdup() if needed 2018-09-19 13:32:58 +00:00
Philipp Schafft
7b608e27be Feature: Added function to convert strings into auth results 2018-09-19 13:32:58 +00:00
Philipp Schafft
b3497e6ec8 Feature: Added way for the auth backend to store per-request data 2018-09-19 13:32:58 +00:00
Philipp Schafft
cb32973572 Feature: Added permission system for auth backends altering clients 2018-09-19 13:32:58 +00:00
Philipp Schafft
bb2ba6e8cf Fix: Avoided segfault if clear_auth() is closed with auth->state == NULL 2018-09-19 13:32:58 +00:00
Philipp Schafft
d0b23fb8c6 Feature: Added support to "static" auth to alter the client 2018-09-19 13:32:58 +00:00
Philipp Schafft
0392b4a32f Feature: Added lookup function for auth_alter_t 2018-09-19 13:32:58 +00:00
Philipp Schafft
4d7a60d588 Feature: Added basic support for auth backends to manipulate the client 2018-09-19 13:32:58 +00:00
Philipp Schafft
dabf9337a6 Feature: Added helper function replace_string() 2018-09-19 13:32:58 +00:00
Philipp Schafft
6c491b3814 Cleanup: Code reformating 2018-09-14 19:25:40 +00:00
Philipp Schafft
355e90ef66 Fix: Corrected used type (int) -> (size_t) 2018-09-14 07:51:38 +00:00
Philipp Schafft
40c5751a06 Cleanup: Updated formating 2018-09-14 07:45:20 +00:00
Philipp Schafft
c97e5d95fc Cleanup: Remove redundant passing of client's uri 2018-09-13 13:38:57 +00:00
Philipp Schafft
e4560e15a2 Cleanup: Made assigning of client->admin_command a function on it's own. 2018-09-13 12:47:28 +00:00
Philipp Schafft
fe948bffea Update: Make client's URI part of it's object 2018-09-13 12:44:57 +00:00
Philipp Schafft
4b44c73d1c Clanup: Unify <authentication> parser code 2018-09-13 12:06:36 +00:00
Philipp Schafft
ed266a5dc7 Feature: Added per <listen-socket> <authentication> 2018-09-13 11:34:01 +00:00
Philipp Schafft
1f8d19cb40 Cleanup: Use (auth_stack_t) not (struct auth_stack_tag) 2018-09-13 11:09:16 +00:00
Philipp Schafft
8bd43eb3d4 Feature: Added new <role> properties: match-method, and nomatch-method. This is more inline with the other properties 2018-09-13 10:37:33 +00:00
Philipp Schafft
d317b6fbdc Feature: Added new <role> properties: match-web, nomatch-web, match-admin, and nomatch-admin 2018-09-13 10:14:31 +00:00
Philipp Schafft
6f2c6b8e84 Fix: Use ADMIN_COMMAND_ERROR not -1 2018-09-13 08:38:16 +00:00
Philipp Schafft
0af45ebf26 Cleanup: Replace and remove leftover old COMMAND_*s 2018-09-13 08:38:12 +00:00
Philipp Schafft
11a04c80c2 Updated submodules 2018-09-13 08:37:37 +00:00
Marvin Scholz
d9793f4e33 Update: Separate integration and unit tests
- Unit tests are now in `src/tests`
- Integration tests are in `tests`
2018-08-16 16:24:48 +02:00
Marvin Scholz
149194d6af Fix: Use POSIX poll.h instead of sys/poll.h 2018-08-14 20:03:01 +02:00
Philipp Schafft
bfcac5d30c Feature: Unifiy response root node generation a bit and make the module list universally available 2018-08-08 14:10:08 +00:00
Philipp Schafft
d0efb73a7b Feature: Also report loaded modules in report XML 2018-08-08 14:10:08 +00:00
Philipp Schafft
51712ebb2a Feature: Provide a unified interface to get an basic report 2018-08-08 14:10:08 +00:00
Philipp Schafft
c67d9de500 Feature: Added functions to get a node from report XML by it's type 2018-08-08 14:10:08 +00:00
Philipp Schafft
e89f1bba8d Feature: Added way to add links to modules 2018-08-08 14:10:08 +00:00
Philipp Schafft
f541cb5c8a Feature: List loaded modules in stats XML 2018-08-08 14:10:08 +00:00
Philipp Schafft
63cc9b9c2a Feature: Also route slow events to fastevent subsystem 2018-08-08 14:05:41 +00:00
Philipp Schafft
cdd09669fa Feature: Added some more useful client fast events 2018-08-08 14:05:41 +00:00
Philipp Schafft
08cf0c1233 Feature: Emit a range of basic connection and client events 2018-08-08 14:05:41 +00:00
Philipp Schafft
23e7069d78 Update: Initialize/Shutdown fast event subsystem 2018-08-08 14:05:40 +00:00
Philipp Schafft
02c9eb7f10 Feature: Added fast event API 2018-08-08 14:05:40 +00:00
Philipp Schafft
8cf3da1a92 Update: Added still stub files for fast events. 2018-08-08 14:05:40 +00:00
Philipp Schafft
680557abc7 Fix: Ensure we have a look while accessing self->module in modulecontainer 2018-08-08 13:39:54 +00:00
Philipp Schafft
d0899fe4fc Fix: Corrected typo in constant name 2018-08-08 10:42:16 +00:00
Philipp Schafft
6cf45fd11d Fix: Handle 0-byte feasts as no-match 2018-08-08 10:14:04 +00:00
Philipp Schafft
03092d1049 Fix: Do not asume listener->id != NULL when looking for a listener with a specific ID 2018-08-08 09:04:55 +00:00
Philipp Schafft
2d0d496ad4 Fix: Set con->readbuffer = NULL after free() 2018-08-02 09:09:19 +00:00
Philipp Schafft
9cdf5761a0 Update: Added some comments in reportxml.c 2018-07-27 11:55:00 +00:00
Philipp Schafft
3a64ffd2de Update: Improved comments on reportxml.h 2018-07-27 11:44:00 +00:00
Philipp Schafft
6f02daafbf Update: Added a huge number of comments to reportxml.h 2018-07-27 11:27:42 +00:00
Philipp Schafft
dd04ef5f77 Update: Added comments to refobject.h 2018-07-27 10:36:59 +00:00
Philipp Schafft
2f938b8500 Fix: set freed pointer to NULL to avoid access-after-free 2018-07-27 10:36:50 +00:00
Philipp Schafft
e900d8e80c Fix: Fixed end-of-input bug in Base64 encoder 2018-07-27 10:07:30 +00:00
Philipp Schafft
648947fe44 Cleanup: Provided connection_send_bytes() to avoid direct access to con->send() 2018-07-27 10:07:18 +00:00
Philipp Schafft
1c61903793 Feature: Allow <relay> within <mount> 2018-07-26 09:24:08 +00:00
Philipp Schafft
1e230972fa Feature: Allow <upstream> within <relay> to have a type="" that can be "normal" and "default" 2018-07-26 09:24:01 +00:00
Philipp Schafft
2c8d45310a Fix: Corrected and improved default value handling for relay upstreams 2018-07-26 09:23:56 +00:00
Philipp Schafft
4b2a062aa0 Feature: Allow actually using more than one upstream 2018-07-26 09:23:52 +00:00
Philipp Schafft
bde17102e2 Fix: Corrected copy function so that number of upstreams is preserved 2018-07-26 09:23:37 +00:00
Philipp Schafft
d61acebf96 Update: Fixed indenting 2018-07-26 09:23:32 +00:00
Philipp Schafft
59697252f0 Feature: Added <upstream>-tag to relay config 2018-07-26 09:23:24 +00:00
Philipp Schafft
fee836f697 Cleanup: Seperated relay upstream parser into seperate function 2018-07-26 09:23:16 +00:00
Philipp Schafft
fd4f28274b Cleanup: Seperated relay config from runtime data 2018-07-26 09:23:06 +00:00
Philipp Schafft
75314c2b34 Fix: Corrects setup of client_t in client mode.
Closes: #2336
2018-07-20 11:41:39 +00:00
Philipp Schafft
c40d12a1c7 Update: Moved _update_client_request_body_length() into new client_complete() 2018-07-20 11:41:37 +00:00
Philipp Schafft
c0155e2404 Fix: Do free connection's putback buffer regardless of it's size 2018-07-20 11:41:03 +00:00
Philipp Schafft
d782eb4c21 Feature: Allow admin commands to have embedded parameters 2018-07-09 10:42:14 +00:00
Philipp Schafft
046bfb9c85 Fix: Removed unused header 2018-07-09 10:41:34 +00:00
Philipp Schafft
43bc709b48 Feature: Added new resource match system 2018-07-09 09:29:54 +00:00
Philipp Schafft
fd2556b4c0 Fix: Corrected use of XMLSTR() 2018-07-09 08:36:48 +00:00
Marvin Scholz
0df3e0eda1 Fix: Correct clearing of XSLT cache entry
Fix a double free that could happen when the cache was cleared
during config reload and then subsequent XSLT requests would try
to evict the same cache item, because the item name was not set to
NULL in clear_cache_entry.

Previously this was no problem as a cache entry would only be evicted
on load of a new XSLT and that one would immediately fill in the place
of the old one.
2018-07-09 04:00:18 +02:00
Marvin Scholz
5cd32038d0 Update: Reduce unnecessary config locks in XSLT loader 2018-07-09 03:36:37 +02:00
Marvin Scholz
f52f562e76 Fix: Clear XSLT admin path cache on config reload 2018-07-09 03:36:11 +02:00
Marvin Scholz
450c26a45b Fix: Convert admin path in XSLT loader to URI
The xmlBuildURI function only deals with URIs, not paths, therefore
the admin path has to be converted to a URI first.
2018-07-09 03:35:54 +02:00
Marvin Scholz
858ff390d3 Fix: Remove broken XSLT loader cache invalidation
The XSLT loader caches the admin path from the config file and
invalidates it by comparing the stored path with the one in the config.
But to the stored path a / is appended, which means the cache would
always invalidate as it never matches.
2018-07-09 03:35:48 +02:00
Marvin Scholz
c6a8859fbc Fix: compat: Use stdint on Windows if possible 2018-07-09 03:35:25 +02:00
Marvin Scholz
db95e9c6fc Fix: Guard include of <sys/select.h> 2018-07-09 03:35:15 +02:00
Marvin Scholz
9897567ea0 Update: Add debug logging for admin auth error 2018-07-09 03:34:53 +02:00
Philipp Schafft
ade6aef0fd Update: Increased the maximum playlist items default from 4 to 10.
Closes: xiph/icecast-server#2332
2018-07-07 10:08:27 +00:00
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