On Dienstag, 17. Januar 2017 15:39:00 CET Jonathan Haws wrote: [...]
+int ipv4_to_mac(const alfred_addr *addr, struct ether_addr *mac) +{
[...]
This will not return the mac address of the device. It will therefore break the synchronization code. see SOURCE_FIRST_HAND in sync_data and the code which sets data_source in finish_alfred_push_data.
You are correct - this does not return the MAC address of the device. Rather it uses the source IP address. Since we're dealing with IPv4 in this case I believe it is safe to assume that the network has been properly configured and the remote node will have a valid IPv4 address, which is used here. In my testing the synchronization and data sharing worked properly and all data was shared as expected.
It should not be synced between masters when the data was received from a slave (because the master will not detect it as FIRST_HAND). If it does still work then you have a bug somewhere else.
[...]
What would you like to see here? Would you prefer an ARP request to go and get the MAC address of the remote node?
Doesn't sound that nice. @Simon, do you have an opinion about this patch before Jonathan rewrites it? (It may take a while until he answers because he should be offline this week)
[...]
I realize that the code in this patch is not formatted properly, but I was unable to get checkpatch.pl to scan this right - it needs a full kernel tree. Is there another formatting script I can run?
What is the problem with downloading the kernel sources? And auto- formatting scripts tend to not get everything right and make things worse in some cases. checkpatch.pl is therefore only to point out some obvious problems.
I did download the kernel source, but when I try to run the script it either tells me that I don't have a valid kernel tree (when using the sources for my Xubuntu kernel) or that the file I'm trying to scan isn't part of the tree (when using the latest from kernel.org). I've never used that tool in the past - can you send me a usage example for scanning a file in the alfred tree?
Just did this from my linux-next.git checkout:
./scripts/checkpatch.pl --strict --ignore=LONG_LINE_STRING \ --ignore=LONG_LINE --ignore=LONG_LINE_COMMENT \ --ignore=FSF_MAILING_ADDRESS \ -f ../alfred/main.c
or:
./scripts/checkpatch.pl --strict --ignore=LONG_LINE_STRING \ --ignore=LONG_LINE --ignore=LONG_LINE_COMMENT \ --ignore=FSF_MAILING_ADDRESS \ ../alfred/0001-IPv4-multicast-distribution-support.patch
Kind regards, Sven