You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
NGAS has a feature through which, at startup, a server can create (and later destroy, at shutdown) subscription from external NGAS servers. This feature is governed by the SubscriptionDef XML element of the configuration file, which allows multiple subscription specifications (i.e., the servers where data will be received from) to be given via their respective Subscription XML sub-elements.
When a server A processes a Subscription element to create a subscription for data from B, B must be given a URL that points to A so that it can successfully push data. This URL was historically specified using the SubscriberUrl attribute of the Subscription element. In 1fd12a0 this changed though and a new, simpler Command attribute was introduced. The attribute should only contain the command to invoke on A, while the full URL would be automatically calculated by the code. The reasoning for this change was:
Users should not need to specify the full URL in the configuration file, because that will depend on the IpAddress that is set in the Server element (and in the NAT/reverse proxy information that we need to add to the server as well).
In other words, specifying A's own URL on each of its Subscription elements was deemed as duplicate, and potentially conflicting, information.
In principle this makes sense, but it has presented at least two different problems:
The current implementation breaks when the IpAddress element is set to 0.0.0.0. In such cases we can only guess what the correct IP should be used to construct the URL.
The commit quoted above talked about handling NAT/reverse proxy information, but this has never been implemented.
Of these two, the first problem is more urgent than the second. And in both cases the problem can be solved by reinstating SubscriberUrl as the main mechanism to feed A's URL into B, even if that means duplicating some information. We will thus perform this change, but still letting Command be specified and used if the former is not specified.
As pointed out in #35, changing the code to use the Command attribute
removed some of the flexibility that was previously possible when using
SubscriberUrl. We are thus reinstating the old option as the main one,
but still leaving Command available with the known caveats.
Signed-off-by: Rodrigo Tobar <rtobar@icrar.org>
NGAS has a feature through which, at startup, a server can create (and later destroy, at shutdown) subscription from external NGAS servers. This feature is governed by the
SubscriptionDef
XML element of the configuration file, which allows multiple subscription specifications (i.e., the servers where data will be received from) to be given via their respectiveSubscription
XML sub-elements.When a server
A
processes aSubscription
element to create a subscription for data fromB
,B
must be given a URL that points toA
so that it can successfully push data. This URL was historically specified using theSubscriberUrl
attribute of theSubscription
element. In 1fd12a0 this changed though and a new, simplerCommand
attribute was introduced. The attribute should only contain the command to invoke onA
, while the full URL would be automatically calculated by the code. The reasoning for this change was:In other words, specifying
A
's own URL on each of itsSubscription
elements was deemed as duplicate, and potentially conflicting, information.In principle this makes sense, but it has presented at least two different problems:
IpAddress
element is set to0.0.0.0
. In such cases we can only guess what the correct IP should be used to construct the URL.Of these two, the first problem is more urgent than the second. And in both cases the problem can be solved by reinstating
SubscriberUrl
as the main mechanism to feedA
's URL intoB
, even if that means duplicating some information. We will thus perform this change, but still lettingCommand
be specified and used if the former is not specified.This issue was originally pointed out by @smclay.
The text was updated successfully, but these errors were encountered: