I apologize for yet another e-mail about this, but as the last one was too
wordy I have narrowed down the problem to a much simpler issue.
As my changes to hci.c didn't do anything towards resolving the name mixup,
I was wondering how the hci_read_remote_name() ensures that the packet that
comes in isn't a packet response to another hci_read_remote_name() request.
It seems that everytime that I do multiple hci_read_remote_name() requests
at the same time, that the name request replies indiscriminately choose
whichever dongle to enter, and at the hci.c level, there is no way to verify
the btaddr that that name request came from, which is rather frustrating.
As some background for what "fixes" that I tried to do to hci.c were, I
simply compared the bdaddr const variable with rn.bdaddr near the end of
hci_read_remote_name_with_clock_offset() to see if it didn't match, and to
reject it if so and return -1, and to allow the name to be copied to the
name pointer otherwise.
If anyone out there has experienced similar problems with multiple dongles
and hci_read_remote_name(), any help would be appreciated if any solutions
to this have been found.
Thanks!
--
-Jeff