Release v1.0.7: OAuth-Server korrekt auf 0.0.0.0 gebunden

Die bisherigen Patches zielten auf Muster, die in oauth/src/lib.rs
nicht vorhanden sind. Der tatsächliche Bind-Aufruf ist
TcpListener::bind(socket_address) – dieser wird jetzt direkt durch
SocketAddrV4::new(Ipv4Addr::UNSPECIFIED, port) ersetzt.

Dadurch ist der OAuth-Callback-Server unter http://<ha-ip>:5588
erreichbar. Der Benutzer ersetzt nach der Spotify-Weiterleitung
127.0.0.1 durch die HA-IP in der Adressleiste.

run.sh erkennt die HA-IP automatisch und zeigt eine klare
Schritt-für-Schritt-Anleitung beim ersten Start.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-06 22:57:35 +02:00
parent d8533e1676
commit 6f4e408190
4 changed files with 142 additions and 272 deletions

View File

@@ -23,15 +23,17 @@ RUN apk add --no-cache \
RUN git clone --depth 1 --branch v0.7.0 \
https://github.com/librespot-org/librespot.git /build && \
cd /build && \
# OAuth-Server auf allen Interfaces binden (statt nur localhost).
# Rust-Code kann die Adresse auf verschiedene Weisen schreiben:
# OAuth-Server auf allen Interfaces binden (statt nur 127.0.0.1).
# get_authcode_listener() bestimmt die Bind-Adresse aus dem redirect_uri-Parameter.
# Wir patchen den TcpListener::bind-Aufruf direkt, sodass er immer an 0.0.0.0
# bindet (mit dem gleichen Port wie im redirect_uri angegeben).
# Außerdem ersetzen wir die englische Browser-Meldung durch eine deutsche.
sed -i \
-e 's/127\.0\.0\.1/0.0.0.0/g' \
-e 's/\[127, 0, 0, 1\]/[0, 0, 0, 0]/g' \
-e 's/Ipv4Addr::LOCALHOST/Ipv4Addr::UNSPECIFIED/g' \
-e 's/TcpListener::bind(socket_address)/TcpListener::bind(std::net::SocketAddrV4::new(std::net::Ipv4Addr::UNSPECIFIED, socket_address.port()))/' \
-e 's/Go back to your terminal :)/Autorisierung erfolgreich! Du kannst diesen Tab schliessen./' \
oauth/src/lib.rs && \
echo "--- oauth/src/lib.rs (Addr-Zeilen nach Patch) ---" && \
grep -n "0\.0\.0\|UNSPECIFIED\|127\|LOCALHOST" oauth/src/lib.rs || true && \
echo "--- oauth/src/lib.rs (Patch-Zeilen) ---" && \
grep -n "UNSPECIFIED\|Autorisierung\|SocketAddrV4" oauth/src/lib.rs || true && \
cargo build \
--release \
--locked \