Problem
In the current release, HTTP push always allocates an ephemeral port for a PushObjectIngester instance. This does not work well with Docker where published ports (ones forwarded outside the Docker container) need to be known at the time the container is started.
We reserved some YAML configuration file values to cover configuration of the RTP and HTTP push services, however the current implementation doesn't use these.
Suggested solution
To adapt PushObjectIngester to operate in two modes. The first mode is as it currently is with each PushObjectIngester responsible for its own libmicrohttpd context for an ephemeral port. The new second mode would be used if the mbstf/httpPushIngest configuration indicates a single fixed port. In this new mode the MBSTF would have a main PushObjectIngester instance which managed the fixed port and can attach child PushObjectIngester instances. The main ingester would use randomly generated UUID URL path discriminators to forward relevant posts to the correct child object.
This would allow us to have one fixed port push ingester that feeds the individual push ingesters for each Distribution Session.
Problem
In the current release, HTTP push always allocates an ephemeral port for a PushObjectIngester instance. This does not work well with Docker where published ports (ones forwarded outside the Docker container) need to be known at the time the container is started.
We reserved some YAML configuration file values to cover configuration of the RTP and HTTP push services, however the current implementation doesn't use these.
Suggested solution
To adapt PushObjectIngester to operate in two modes. The first mode is as it currently is with each PushObjectIngester responsible for its own libmicrohttpd context for an ephemeral port. The new second mode would be used if the mbstf/httpPushIngest configuration indicates a single fixed port. In this new mode the MBSTF would have a main PushObjectIngester instance which managed the fixed port and can attach child PushObjectIngester instances. The main ingester would use randomly generated UUID URL path discriminators to forward relevant posts to the correct child object.
This would allow us to have one fixed port push ingester that feeds the individual push ingesters for each Distribution Session.