Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clear local endpoint options from default PublishedEndpoints #3176

Closed
bernardnormier opened this issue Nov 21, 2024 · 0 comments · Fixed by #3178
Closed

Clear local endpoint options from default PublishedEndpoints #3176

bernardnormier opened this issue Nov 21, 2024 · 0 comments · Fixed by #3178
Assignees
Labels
Milestone

Comments

@bernardnormier
Copy link
Member

When the PublishedEndpoints of an object adapter are computed from the endpoints of this adapter, they include all local options of these OA endpoints, which is rather confusing.

For example:

-- 11/18/24 16:21:47138 Slave2: Network: starting to receive udp messages
   local address = 0.0.0.0:12109
   multicast address = 239.255.0.1:12109
   local interfaces = 127.0.0.1
-- 11/18/24 16:21:47140 Slave2: Network: published endpoints for object adapter 'IceGrid.Registry.Discovery':
   udp -h MyFancyComputer -p 12109 --interface 127.0.0.1
-- 11/18/24 16:21:47141 Slave2: Network: accepting tcp connections at 127.0.0.1:65375
-- 11/18/24 16:21:47141 Slave2: Network: accepting tcp connections at 127.0.0.1:12032
-- 11/18/24 16:21:47141 Slave2: Network: accepting tcp connections at 127.0.0.1:65376
-- 11/18/24 16:21:47141 Slave2: Network: accepting tcp connections at 127.0.0.1:65377
-- 11/18/24 16:21:47169 Slave2: Network: accepted tcp connection
   local address = 127.0.0.1:12032
   remote address = 127.0.0.1:65379

#3175 changes the default published host in the published endpoints (keep the multicast address).

However, the local option --interface 127.0.0.1 remains and is rather confusing. It's meaningless for remote clients that receive published proxies, and local clients shouldn't be a primary consideration here.

A related issue is the equivalent logic of IPEndpointI:

Network.addressEquals(ipEndpointI.sourceAddr_, sourceAddr_);

equivalent is used only for colloc optimization:

return _publishedEndpoints.Any(e => endpoints.Any(e.equivalent));

The net effect is if you set the source address on your proxy, you disable colloc. This does not seem intentional and I propose we remove this comparison of source address (a local option) in the implementation of equivalent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant