Commit Graph

5982 Commits

Author SHA1 Message Date
ejurgensen
3c72c009ab
Merge pull request #1588 from owntone/dependabot/npm_and_yarn/web-src/luxon-2.5.2
Bump luxon from 2.4.0 to 2.5.2 in /web-src
2023-03-10 16:50:13 +01:00
dependabot[bot]
376f41c464
Bump luxon from 2.4.0 to 2.5.2 in /web-src
Bumps [luxon](https://github.com/moment/luxon) from 2.4.0 to 2.5.2.
- [Release notes](https://github.com/moment/luxon/releases)
- [Changelog](https://github.com/moment/luxon/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moment/luxon/compare/2.4.0...2.5.2)

---
updated-dependencies:
- dependency-name: luxon
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-10 14:56:49 +00:00
ejurgensen
98ee49dca5
Merge pull request #1576 from owntone/thread_httpd4
[httpd] Multithreaded httpd and refactor of streaming
2023-03-09 00:08:15 +01:00
ejurgensen
e94838925e [httpd] Change prototype for the close connection callback
Don't include hreq since it isn't fully valid, so caller shouldn't be invited
to dereference it.
2023-03-07 21:01:45 +01:00
ejurgensen
18a80f15dd [httpd] Multithread solution using worker threads instead of httpd threads
Using worker threads instead of httpd threads means that we, not libevent,
decide which requests get handled by which threads. This means that we can
make sure blocking requests (e.g. volume changes) don't get in the way of
realtime(ish) stuff like mp3 streaming.

Includes refactor of httpd_stream_file() since it was a bit of a monster.
2023-03-07 21:01:45 +01:00
ejurgensen
81922e147e [streaming] Fix BSD name collision (pipe) 2023-03-07 21:01:10 +01:00
ejurgensen
a2c63a5bac [httpd] Check for syscall() presence and fix small memleak 2023-03-07 21:01:10 +01:00
ejurgensen
7841e336b3 [main] Make libevent_pthreads non-optional 2023-03-07 21:01:10 +01:00
ejurgensen
e77cb3f94e [streaming] ICY handling using output metadata events/callbacks 2023-03-07 21:01:10 +01:00
ejurgensen
4d0c297901 [evhtr] Consolidate pool threading in evthr.c
Also reinstate check for server already running
2023-03-07 21:01:10 +01:00
ejurgensen
bd6f38282c [httpd] Main commit that adds multithreading to httpd
Also refactor streaming implementation to make it more like an output and to
let the design support multithreading.
2023-03-07 21:01:10 +01:00
ejurgensen
50a319df2b [httpd] Try doing request handling in worker thread 2023-03-07 21:01:10 +01:00
ejurgensen
4736e10d11 [worker] Remove some unused includes 2023-03-07 21:01:10 +01:00
ejurgensen
3377faffb8 [worker] Switch worker to use evthr threadpool 2023-03-07 21:01:10 +01:00
ejurgensen
68d66c3229 [httpd] Drop libevhtp backend
Despite that it seemingly supports multithreading it picks threads that are
busy, and not sure how that can be prevented. Also libevhtp is currently
unmaintained.
2023-03-07 21:01:10 +01:00
ejurgensen
74f1b93b42 [httpd] Make http modules agnostic to evhttp 2023-03-07 21:01:10 +01:00
ejurgensen
4ae73fa9b4 [httpd] Move internal declarations to httpd_internal.h 2023-03-07 21:01:10 +01:00
ejurgensen
2778088c52 [httpd] Refactor to use modules for daap, dacp, json api etc.
Removes a lot of code duplication which hopefully will make it easier to add
support for evhtp as http engine.
2023-03-07 21:01:10 +01:00
ejurgensen
83b8a4eb3f [http] Use curl for URL parsing instead of depending on httpd
Makes it easier to make the httpd parsing internal.
2023-03-07 21:01:10 +01:00
ejurgensen
2e31a3d4f3 [misc] 'unsigned short' instead of 'short unsigned' as arg to net_evhttp_bind() 2023-03-07 21:01:10 +01:00
ejurgensen
316d932d99 [dmap] Move dmap_send_error() to dacp_send_error()
Means dmap_common doesn't need a dependency to httpd and http replying is kept
within httpd_xxx modules.
2023-03-07 21:01:10 +01:00
ejurgensen
631996f133 [mpd] Decouple mpd and httpd
mpd is based on evhttp, so if httpd should use another backend they need to be
decoupled. No need to use httpd_send_reply/error, since CORS headers are not
relevant to MPD artwork serving.
2023-03-07 21:01:10 +01:00
ejurgensen
23979d223c [httpd] Refactor http handlers so they are initialized centrally
Means regex.h doesn't need to be in httpd.h making it easier to e.g. experiment
with evhtp.
2023-03-07 21:01:10 +01:00
ejurgensen
5f342ea60b [httpd/artwork] Drop support for libevent <2.1.4 2023-03-07 21:01:10 +01:00
Diederik de Haas
d38b07bbad Stop ignoring changes to debian dir
This project has no `debian` directory (anymore?), so there's no need to
ignore what happens there.
Removing it would also make packaging for Debian (based) distros easier.
2023-03-05 20:46:34 +01:00
ejurgensen
f9c50b80fc Bump version to 28.6 2023-03-02 23:25:23 +01:00
ejurgensen
e02d891130 ChangeLog for OwnTone 28.6 2023-03-02 23:23:26 +01:00
ejurgensen
6ade24c935 [xcode] Support for user-configured ffmpeg filters
Closes #1583 and #290
2023-02-25 16:48:17 +01:00
ejurgensen
2272f99599 [artwork] Fix for --disable-spotify broken in commit c8e46aa 2023-02-06 22:59:27 +01:00
ejurgensen
070cf6a5fc [spotify] Some cleanup of webapi client 2023-02-06 22:38:44 +01:00
ejurgensen
eee011180f [spotify] Make web api client thread safe
Protect http_session with a lock and don't use mutating globals in utility
functions where it is less clear if they are protected.
2023-02-06 22:38:44 +01:00
ejurgensen
c8e46aad42 [artwork] Make Spotify online artwork getter thread safe
By making the global struct online_source's read-only. Before, the Spotify
handler was modifying auth_secret in a non-thread safe way.
2023-02-06 22:38:44 +01:00
whatdoineed2do/Ray
cc3cceaa99 [web-src] remove absolute paths in index.html and force vite generation to allow reverse proxy from an subpath 2023-02-05 17:16:07 +01:00
ejurgensen
8b6336b91d [xcode] Protect against memleak if future ffmpeg doesn't free options
Can happen if ffmpeg doesn't recognize all the options
2023-02-05 17:14:17 +01:00
ejurgensen
aa2512837e
Merge pull request #1574 from LordMyschkin/german
[web-ui] Minor improvements to german translation
2023-01-24 13:31:23 -08:00
lordmyschkin
6ac88d677b minor improvments to german translation 2023-01-23 18:58:42 +01:00
Alain Nussbaumer
879feab518 [web] Fix for error messages not displaying #1500 2023-01-23 04:37:43 -08:00
ejurgensen
40ac39b6df
Merge pull request #1572 from whatdoineed2do/web-directory-fix
[web] directory modal handling fix
2023-01-23 04:35:00 -08:00
whatdoineed2do/Ray
dd1b39b347 [web] directory modal handling fix 2023-01-21 21:46:14 +00:00
LordMyschkin
4f848948e7
[web] German translation
German translation

Co-authored-by: lordmyschkin <martin@dieroths.at>
2023-01-21 16:50:06 +01:00
ejurgensen
0d15e2a34d [docs] Fix typo in json-api.md 2023-01-10 16:55:18 +01:00
ejurgensen
dbbe0a519d
[docs] Update installation.md, new OpenWrt instructions 2023-01-06 11:42:07 -08:00
ejurgensen
e18ef0edd9
[docs] Update installation.md, OwnTone broken in OpenWrt 22.03.2 2023-01-01 19:02:30 +01:00
ejurgensen
af07f9eeb4 [scan] Changes to commit 9a3cb3b7
* 'split_genre' -> 'only_first_genre' + changed description
* fix memleak on multiple genre tags
2022-12-29 20:07:30 +01:00
whatdoineed2do/Ray
0c43de9735 [scan] option to use first genre on multi token genres
multiple genres are either supported by format (see flac/orbis) or are
handled by convention (see mp3) - ffmpeg presents either case as a
single string, seperated by ';' (ie "Pop;Rock")

Currently the server/db does not support multiple genres and will store
the ffmpeg string as-is which is unlikely the user intention.

Introduce 'split_genre' to take the first genre token
2022-12-29 20:07:30 +01:00
ejurgensen
46f87720fb [docs] Add JSON API documentation of api/library/add
Closes #1561
2022-12-28 12:31:38 +01:00
ejurgensen
c23c2fdc45 [httpd] Addendum to commit 017e09d: More fixing up of libevent warnings 2022-12-26 17:16:58 +01:00
ejurgensen
fc83d807e0 [docs] Note in installation.md about login requirement to get GH artifacts
Closes #1560
2022-12-26 10:09:11 +01:00
ejurgensen
b9b5f8b113 [cfg] Set AM_SILENT_RULES to yes 2022-12-26 10:04:07 +01:00
ejurgensen
017e09d7c3 [httpd] Fix evhttp_connection_get_peer() const char warning for newer libevent 2022-12-25 20:09:38 +01:00