Philipp Schafft
2dd9045842
Fix: Corrected structure of how refobject_type*__* is generated.
2018-10-10 14:11:24 +00:00
Philipp Schafft
0cbc5c01ed
Update: Added comments
2018-10-10 13:18:33 +00:00
Philipp Schafft
d10a9683aa
Feature: Added tests for REFOBJECT_GET_TYPENAME() and REFOBJECT_IS_VALID()
2018-10-10 13:12:01 +00:00
Philipp Schafft
c0ff861107
Fix: Updated unit tests to new refobject API
2018-10-10 12:55:32 +00:00
Philipp Schafft
f1b2785fc4
Feature: Changed refobject subsystem to use defined types
2018-10-10 11:15:39 +00:00
Philipp Schafft
1b6c51787f
Fix: Corrected type of #include
2018-10-10 11:10:30 +00:00
Philipp Schafft
07899c4aab
Fix: Fixed a race condition in event_shutdown()
2018-10-04 11:21:24 +00:00
Philipp Schafft
f20dfcef63
Fix: SECURITY Do not handle admin-requests in listen-socket auth differently.
...
This also adds comments to _handle_authentication_global() and
_handle_authentication_mount_default() to explain the situation.
2018-10-04 09:00:26 +00:00
Philipp Schafft
de6e8b4197
Feature: Added support to set listen(2) backlog.
...
Closes : #2225
2018-09-28 13:52:39 +00:00
Philipp Schafft
dd967ad17b
Update: Init method matching depending on what parameters we have.
2018-09-28 13:02:37 +00:00
Philipp Schafft
29680ec6e2
Fix: Allow the use of bools for <logarchive>
2018-09-28 13:02:28 +00:00
Philipp Schafft
53d8b7c35f
Fix: Avoid dead-lock in case of config reload
2018-09-20 14:21:16 +00:00
Philipp Schafft
5df028691a
Fix: Corrected a possible race codition
2018-09-20 14:13:50 +00:00
Philipp Schafft
9d120d126f
Fix: Corrected order of locks to avoid dead-locks
2018-09-20 14:13:19 +00:00
Philipp Schafft
7b84c45a81
Fix: Corrected two possible dead-locks.
2018-09-20 13:03:05 +00:00
Philipp Schafft
1e171a8e4e
Fix: Corrected a number of lockings to avoid race conditions
2018-09-20 12:12:59 +00:00
Philipp Schafft
3f3191ce0b
Fix: Corrected copy and paste error of lock/unlock
2018-09-20 12:12:40 +00:00
Philipp Schafft
231e60a46a
Updated submodules
2018-09-20 10:05:30 +00:00
Philipp Schafft
9a4491e43a
Feature: Report Host:-header in <listener>
2018-09-20 09:30:49 +00:00
Philipp Schafft
934cc32285
Feature: Added a way to push buffers into buffers
2018-09-20 09:11:55 +00:00
Philipp Schafft
71b156afc6
Feature: Added buffer_push_printf() and buffer_push_vprintf()
2018-09-20 09:01:49 +00:00
Philipp Schafft
03d56ca35f
Fix: Corrected typo
2018-09-20 08:32:26 +00:00
Philipp Schafft
36a8d198fd
Fix: Make buffer_get_string() respect offsets
2018-09-20 08:16:25 +00:00
Philipp Schafft
f58f11f2d2
Feature: Test buffer_set_length()
2018-09-20 08:16:25 +00:00
Philipp Schafft
99671cdb40
Feature: Added tests for buffer_shift()
2018-09-20 08:16:25 +00:00
Philipp Schafft
b45c254bf9
Feature: Test bit patterns
2018-09-20 08:16:25 +00:00
Philipp Schafft
661f101790
Feature: Added tests related to buffer_t's string interface
2018-09-20 08:16:25 +00:00
Philipp Schafft
aa270e7bd3
Feature: Run getter tests on empty buffers
2018-09-20 08:16:25 +00:00
Philipp Schafft
bc69719462
Feature: Added first (create/unref) tests for buffers
2018-09-20 08:16:25 +00:00
Philipp Schafft
a92b39becd
Feature: Added code that can undo the effect of offsets
2018-09-20 08:16:25 +00:00
Philipp Schafft
18e410cf24
Feature: Implemented new buffer API
2018-09-20 08:16:25 +00:00
Philipp Schafft
a8cae91f10
Feature: Added stubs and interface for new buffer_t that should replace refbuf_t some day.
2018-09-20 08:16:25 +00:00
Philipp Schafft
f6d269c80d
Fix: Actually destroy clients on if auth has release callback
2018-09-20 08:13:16 +00:00
Philipp Schafft
1b5572f700
Fix: Fixed a memory leak caused by assigning the client's role twice in some cases
2018-09-20 08:07:29 +00:00
Philipp Schafft
9ffd16cb60
Fix: Fixed two memory leaks in URL auth
2018-09-19 14:56:56 +00:00
Philipp Schafft
212ef5bb8f
Cleanup: Use client_set_queue() and only use it once in client_destroy()
2018-09-19 14:39:19 +00:00
Philipp Schafft
4cb4a9b5b1
Feature: Allow altering client based on headers from the URL Auth backend
2018-09-19 13:32:58 +00:00
Philipp Schafft
fa5e2ffee6
Feature: Allow header_* not require being set in lowercase
2018-09-19 13:32:58 +00:00
Philipp Schafft
f2c474ec63
Feature: Added function to lowercase a string
2018-09-19 13:32:58 +00:00
Philipp Schafft
4e69f55410
Feature: Make the message header configurable
2018-09-19 13:32:58 +00:00
Philipp Schafft
8a08ae25c3
Fix: Free memory used for header names
2018-09-19 13:32:58 +00:00
Philipp Schafft
e10c32a837
Feature/Fix: Replaced old auth headers.
...
This adds some workarounds for old style auth headers in URL auth.
The old code did not check buffer lengths. Buffer overflow seems
possible.
This also adds a new handling that replaces the old one and has a
much cleaner interface. This should be used for future software.
2018-09-19 13:32:58 +00:00
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
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
Philipp Schafft
50a9d3382a
Update: Added a header for commonly used types
2018-06-17 09:43:55 +00:00
Philipp Schafft
41ab50dc9a
Update: Include <config.h> as we need it
2018-06-17 08:57:31 +00:00
Philipp Schafft
6136810f27
Fix: Corrected const for SSL_METHOD*.
...
I did this for OpenSSL 1.0.1t (0x1000114fL) as I don't
know which was the first affected version.
2018-06-16 18:40:04 +00:00
Philipp Schafft
d1dbc561ac
Update: Announce support for OPTIONS
2018-06-16 17:59:11 +00:00
Philipp Schafft
0bb65ed090
Feature: Allow OPTIONS on admin requests
2018-06-16 17:59:11 +00:00
Philipp Schafft
2bd71b9d01
Feature: Allow OPTIONS request for * and web requests
2018-06-16 17:59:11 +00:00
Philipp Schafft
6f7881a875
Update: Allow update of pidfile on the fly.
2018-06-16 17:53:29 +00:00
Philipp Schafft
a2763ac9e4
Update: Improved pidfile error handling
2018-06-16 17:51:16 +00:00
Philipp Schafft
23cc8a9646
Cleanup: Mark local functions static
2018-06-16 17:51:16 +00:00
Philipp Schafft
be0bf035c7
Update: Added comments to make code easier to understand
2018-06-16 17:38:35 +00:00
Philipp Schafft
2b3f07e9b0
Feature: Allow using default config filename.
...
This uses the new configure option --with-default-config=PATH.
2018-06-16 17:33:14 +00:00
Philipp Schafft
452c2b17d3
Fix: Use size_t not int
2018-06-16 17:30:42 +00:00
Philipp Schafft
beb4523b84
Cleanup: Replaced magic number with sizeof()
2018-06-16 17:29:51 +00:00
Philipp Schafft
8a69db3ab7
Update: Allow running as root IF Icecast has PID=1
2018-06-16 17:28:42 +00:00
Philipp Schafft
cc0f62df89
Update: Log PID on process startup.
2018-06-16 17:27:59 +00:00
Philipp Schafft
55e34b3b52
Fix: Removed erroneously defined types
2018-06-16 14:30:46 +00:00
Philipp Schafft
02fb2aa97b
Fix: Corrected the include of <stdint.h> and <inttypes.h> to match IEEE Std 1003.1-2017 ("POSIX 7")
2018-06-16 15:34:56 +02:00
Philipp Schafft
fd1f34c1e2
Cleanup: HAVE_AUTH_URL -> HAVE_CURL
2018-06-16 15:34:56 +02:00
Philipp Schafft
8b3372e085
Cleanup: Removed unused (and broken?) libkate support from format_kate.c
2018-06-16 15:34:56 +02:00
Marvin Scholz
39a0ca8491
Makefiles cleanup
2018-06-16 15:34:56 +02:00
Marvin Scholz
3b5d5b7b93
Makefile formatting improvements
2018-06-16 15:34:56 +02:00
Marvin Scholz
af608dd120
Remove debug and profile targets
2018-06-16 15:34:56 +02:00
Marvin Scholz
3f7d218576
Remove automake options from makefiles
2018-06-16 15:34:56 +02:00
Marvin Scholz
61ac5f9b9c
Rewrite configure.ac
...
This rewritten configure.ac is nearly independent of any of the xiph m4
macros, most of which are ancient and can nowadays easily replaced
with pkg-config.
2018-06-16 15:34:56 +02:00
Philipp Schafft
822057ca57
Feature: Allow registering new admin commands on the fly
2018-06-09 12:43:09 +00:00
Philipp Schafft
bc38c93545
Update: Check admin command table before use
2018-06-09 12:43:09 +00:00
Philipp Schafft
86154bc6d9
Feature: Set foundation for having multiple admin/ sub-directories
2018-06-09 12:43:09 +00:00
Philipp Schafft
9fb26c4607
Fix: Allow non-1-byte PATH_SEPARATOR in admin_send_response()
2018-06-09 11:11:29 +00:00
Philipp Schafft
442960ac4a
Feature: Added admin format ADMIN_FORMAT_AUTO
2018-06-09 10:43:57 +00:00
Philipp Schafft
88ca36545e
Update: Converted the response format for admin requests into a enum
2018-06-09 10:34:34 +00:00
Philipp Schafft
91134b75c0
Fix: Fixed memory leak with new prefixmatch="" attribute of <resource>
2018-06-06 10:50:56 +00:00
Philipp Schafft
819dc9c72e
Fix: Fixed memory leak with new way of sending requests to corresponding endpoints
2018-05-28 14:59:47 +00:00
Philipp Schafft
9b8ca49f99
Cleanup: Dispatch admin requests not as part of GET request handling but more general
2018-05-28 14:59:43 +00:00
Philipp Schafft
728ed8575d
Cleanup: Massive cleanup of the <resource>-tag handling
2018-05-28 14:45:54 +00:00