The NetworkConnectToDA function uses SLPCompareString to determine whether the scope list for the current query is an exact match for the scope list of the open DA socket currently associated to the API handle.
Just as with KnownDAListFind's discovery process, this needs to be a SLPIntersectStringList instead of SLPCompareString, because current OpenSLP LIBSLP operation intends to use any DA that matches at least /one/ of the scopes requested.
Not specifically a single DA that supports /all/ of the scopes that were requested.
This can cause the open DA connection socket on the SLP API handle to be discarded in a case where that same DA will actually end up being used through the KnownDAConnect / KnownDAListFind discovery process.
Fixed, but I can't seem to edit this bug tracker item.