fix: rebuild MPD upstream request after provider pooling#595
Merged
Bladestar2105 merged 2 commits intoMay 7, 2026
Conversation
…tch-using-stale-provider # Conflicts: # src/controllers/streamController.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
upstreamUrl, backup URLs, and requestheadersfrom the original provider before provider-pooling could swap in a fallback account, allowing accounting to be charged to a different provider than the one actually contacted.Description
headers,upstreamUrl, andbackupStreamUrls) inproxyMpdto run afterfindAvailableProviderand after thechannelcredentials are overridden, so the actual fetch uses the selected pooled provider account (src/controllers/streamController.js).should build MPD upstream URL using pooled provider credentialsand extended mocks to simulate a saturated provider and an available pooled provider (tests/security/provider_limit.test.js).fetchand adding astream_id=202channel fixture and pooled provider fixtures to the test DB mock.Testing
npm exec vitest run tests/security/provider_limit.test.js, and the test file passed (all tests in the file succeeded).npm run lint; lint produced pre-existing warnings but no new errors were introduced.streamManager.addrecords the pooled provider id and that the upstreamfetchis invoked with the pooled provider credentials andUser-Agentas expected.Codex Task