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

MulticastService with multiple NICs #38

Closed
wants to merge 1 commit into from
Closed

MulticastService with multiple NICs #38

wants to merge 1 commit into from

Conversation

eshvatskyi
Copy link
Contributor

@eshvatskyi eshvatskyi commented Nov 12, 2018

  • fixed AnswersContainsAdditionalRecords functionality

  • fixed using MulticastService with multiple NICs
    Added by 1 sender for each NIC. This will allow sending a message directly by specific NIC instead of using system-defined routing.
    Adjusted receiver to join a multicast group for specific NIC. This allows receiving messages from all NICs, but not only from "default". (Replacing PR - 24)

  • removed exploring networks by times instead used NetworkChange.NetworkAddressChanged
    Added using of NetworkChange.NetworkAddressChanged event to get NICs changes.
    -+ added to detect changes from the time when will subscribe on it. Looks like when we subscribing on this event on start will receive only not all changes.

  • Added accepting filtering function in MulticastService constructor.
    This function, if provided used for bounding MulticastService only to specified NICs, returned by the function. (Replacing PR - 32)

  • Tests are not changed, added "using" instead of try-final blocks

@richardschneider I've tried to do not create breaking changes as much as possible.
But looks like without multi senders, all messages go to "default" nic with system defined route.
Tried a lot of different solutions.
Also, receiver added to the multicast group by local address defined, this also allows receiving messages from all interfaces, because of even using of IPAddress.ANY when joining to the multicast group return messages only from "default" NIC.

PS. By default NIC, I mean, NIC that has lower Number in NICs table :)

@eshvatskyi eshvatskyi changed the title MulticastService with multiple NICs WIP: MulticastService with multiple NICs Nov 12, 2018
@eshvatskyi eshvatskyi changed the title WIP: MulticastService with multiple NICs MulticastService with multiple NICs Nov 12, 2018
 - fixed using MulticastService with multiple NICs
 - removed exploring networks by times, instead used NetworkChange.NetworkAddressChanged
@richardschneider
Copy link
Owner

Great work!!! I thought we might need multiple senders, sorry for doubting you. I'll try to do a code review in the next 24 hours.

Did you notice that AppVeyor CI failed. There is something evil with your git branching. Could you try a rebase and see what happens.

Tests are not changed, added "using" instead of try-final blocks

Frankly, I do not believe the above statement. Please DO NOT change the existing tests. But feel free (pretty please) to add new tests. This is how I can determine if the PR contains a breaking change.

@eshvatskyi
Copy link
Contributor Author

eshvatskyi commented Nov 13, 2018

I've created a new PR to fix commits.

#40

looks like when I've doing force push of squashed commits or commits modifications :( it's going to fail

@eshvatskyi eshvatskyi closed this Nov 13, 2018
@eshvatskyi eshvatskyi deleted the multicast-optimizations branch November 13, 2018 14:36
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants