4355 Commits

Author SHA1 Message Date
ejurgensen
7b93336cab [smartpl] Escape value fields (protect against SQL injections) 2022-01-29 17:46:40 +01:00
ejurgensen
074ad56ca1 Attempt to fix macOS workflow mk8 2022-01-29 17:46:40 +01:00
ejurgensen
35382d1a7e Attempt to fix macOS workflow mk7 2022-01-29 17:46:40 +01:00
ejurgensen
54f6004bf9 [daap] Place ESCAPE properly in SQL query 2022-01-29 17:46:40 +01:00
ejurgensen
f36d1cce6d Put bison/flex files in parsers dir, so scan-build --exclude can be used
The autogenerated files create warnings that we can't do much about, so
exclude them.
2022-01-29 17:46:40 +01:00
ejurgensen
397800c9cd [smartpl] Reinstate smartpl file scanner with new parser 2022-01-29 17:46:40 +01:00
ejurgensen
efe5df5e12 [daap/smartpl] Add new bison/flex parsers 2022-01-29 17:46:40 +01:00
ejurgensen
3a93dc5da8 [daap/rsp/smartpl] Drop ANTLR parsers
Replacing the antlr parsers solves multiple issues:

- Build warnings (issue #307)
- Build hacks: "-Xconversiontimeout 30000" and other Makefile magic
- Incorrect parsing of daap queries with sql wildcards (like 'tag:*tes%t_ng*')
- Infinite recursion/memory/CPU (issue #570 and #1248)
- systemd service file workarounds due to memory/CPU issue
- ANTLR3 being replaced with ANTLR4 (that doesn't support C file generation)
- Runtime dependency on antlr library
- Difficult installs of ANTLR3 on some systems (special install script)
2022-01-29 17:46:40 +01:00
chme
1694e6e111 [smartpl] Add "scan_kind" field to smart query language 2022-01-22 12:07:52 +01:00
chme
1d2e4dc7a8 [db,library] Add "scan_kind" field to playlists, directories and files
(db upgrade to v22.00)

`scan_kind` identifies the library "scanner" component that created the
item and is responsible to keep it up to date (rescan).

The library update now supports passing a `scan_kind` to update only the
items of one particular "scanner". This allows e. g. to only update the
item from the Spotify library or only update the RSS feeds.

The OwnTone database is upgraded to v22.00 and the `scan_kind` columns
in `files`, `playlists`, `directories` are identified by:

 1. Check if item is part of a RSS playlist (podcast RSS feed), they
belong to the "rssscanner"
 2. Check if item has a Spotify `virtual_path`, they belong to the
"spotifyscanner"
 3. Remaining items belong to the "filescanner"
2022-01-22 10:38:31 +01:00
ejurgensen
b5087e110f [xcode] Modifications for ffmpeg 5 (fixes #1396) 2022-01-21 19:25:58 +01:00
ejurgensen
33837f0382 [mpd] Coverity fixups 2022-01-20 21:42:05 +01:00
ejurgensen
6f6a9c6cb9 [misc] Coverity fixups 2022-01-20 21:42:05 +01:00
ejurgensen
ad4c7fd74c [main] Coverity fixups 2022-01-20 21:42:05 +01:00
ejurgensen
933affaa7e [remote] Coverity fixups 2022-01-20 21:42:05 +01:00
ejurgensen
dcb3973aa4 [web] Coverity fixups 2022-01-20 21:42:05 +01:00
ejurgensen
3e099072e8 [streaming] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
2d84b0bab9 [alsa] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
cd4386228d [spotify] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
0fdca0587c [airplay] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
a09da06e8f [scan] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
d72958f1f7 [db] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
070866b41a [jsonapi] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
53ee9a3c39 [daap] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
334beb1cfa [httpd] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
c9aac896ee [player] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
0bc574fafe [rtsp] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
b059d73211 [commands] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
e321c54655 [artwork] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
d857116e41 [daap] Fix null dereference on missing group-type param 2022-01-14 23:12:49 +01:00
ejurgensen
5e6f19a6da [airplay] Fix reading features txt from Kodi (fixes #1381)
Adds support for "features" values that are not comma separated.
2022-01-12 20:33:07 +01:00
ejurgensen
021a53aa64 [spotify] Add missing return() in librespot-c channel.c 2022-01-11 20:11:35 +01:00
ejurgensen
6a0c7db50a [airplay] Disable unused ntp_to_timestamp() 2022-01-11 20:10:54 +01:00
whatdoineed2do/Ray
07a9ed6654 [jsonapi] composer review 2021-12-30 10:49:45 +00:00
whatdoineed2do/Ray
69d32eb691 [jsonapi] support composers
- enable search for composer (albums/tracks)
- expose new rest endpoint for retreiving all known composers
2021-12-29 14:14:56 +00:00
chme
8dfbb460c2 [db/readme] Add comment to browse_info object; update docs for genre
endpoint
2021-12-29 12:01:42 +01:00
chme
8becdee8f1 [db] Refactor db_query_fetch_* functions to take the output parameter
first and the input parameter as last parameter
2021-12-28 07:23:56 +01:00
chme
a65ee4462e [db] Refactor fetching query result into generic function
Additionally changes the return value in case the end of the result set
is reached.
2021-12-28 06:55:35 +01:00
chme
d7086cab00 [db,jsonapi] Additional meta data for browse queries 2021-12-28 06:29:07 +01:00
chme
f3fa343b9b [spotify] Add missing listener notification on librespot logout 2021-12-26 20:22:06 +01:00
whatdoineed2do/Ray
8f9356ff11 [http,conf] allow user to request no ssl peer verification
This solves for the case where hosted RSS podcasts have self signed or
expired certs:  using default (verify peer) in these instances results
in 'SSL peer certificate or SSH remote key was not OK'
2021-12-18 17:00:05 +00:00
ejurgensen
5efe0eeb0f [pipe] Fix regression in commit 6646802
Don't try to apply pipe metadata if parsing failed. Resolves #1366.
2021-12-12 10:32:42 +01:00
ejurgensen
d6cc0e453d [airplay] Update pair_ap to 0.12
Better input validation of public keys
2021-12-06 22:49:34 +01:00
ejurgensen
088e26c1f0 [airplay] Fix rare pairing bug due to incorrect SRP padding (ref #1280)
Update pair_ap to version 0.11, which it fixes an issue where some randomized
values of SRP "a" are short enough that they require padding.
2021-12-04 23:05:33 +01:00
ejurgensen
1418bfb245 [scan] Don't iTunes playlist scan timestamp on failed scan
Also some refactoring.

Closes #1359
2021-12-01 20:11:54 +01:00
ejurgensen
b71c353fc9 [spotify] Update librespot-c for better connection handling
- New attempt at fixing #1317: Don't prevent reconnection if a request is queued
- Protection against flooding Spotify with reconnection attempts
- Don't reconnect when getting a stop request during blocked download
2021-11-27 15:10:56 +01:00
ejurgensen
ce5634e372 [spotify] Fix log message typo 2021-11-20 14:55:27 +01:00
ejurgensen
6646802832 [pipe] Fix deadlock coming from metadata pipe (issue #1343)
Cause of deadlock:
  new volume pipe metadata -> lock pipe mutex -> set player volume waiting for
  player -> player waiting for input write -> input write waiting for get
  metadata -> get metadata waiting for mutex

Change implementation so lock is only held while parsing/storing metadata,
where it is required, and not when calling the player.
2021-11-15 23:13:13 +01:00
ejurgensen
0d67f26662 [artwork] Fix memleak on pipe artwork error 2021-11-15 22:57:43 +01:00
ejurgensen
6d54886030 [librespot-c] Close connection if peer disconnects
Attempt to fix possible bad state where librespot-c keeps try to using a
connection even after the access point has disconnected.
2021-11-04 17:20:55 +01:00