| Abaseto bring someone down back to A BASE level. Let me know if you want me to move all this info over to your repo.Abase-abe(a slang used to degrade acvv person) shhh(se)usually an attempt to degrade a person's opinion.ovral goes to humiliate a person. If this bug is rooted in indirect connections being favored somehow it would make sense that the problem is much worse with Soulseek.NET. Soulseek NS didn't have any problems, and I wouldn't expect it to since it tries one type at a time.Īnother point to note is that Soulseek.NET will cancel any pending indirect connection if the direct connection is established first, whereas I believe Soulseek Qt happily connects both if both succeed. It's important to note that in order to break this reliably I have to wait for any/all established connections to disconnect first, so I think the root cause is a change in behavior in the logic that negotiates direct/indirect connections. Right now UploadFailed is handled but the diagnostic is at the debug level.Ġ6:50:58 Attempting direct connection of type P to user ('', 50025)Ġ6:50:58 Received incoming direct connection of type P from user Ġ6:50:58 Ġ7:49:59 Transfer ratm\Industry\03 - Fistful Of Steel.mp3 with request 117 for user timed outĠ7:50:42 Removed connection of type P to user ('192.168.1.1', 50556) #How to exclude soulseek ns from malwarebytes codeThis has a fairly high likelihood of malfunctioning and I absolutely don't want to produce false positives and fail transfers that were not denied, so this fuzzy match is probably going to be limited to removal of the root of the path, normalizing path separators, and doing a case insensitive match.įor anything else that might fall through the gaps I'm going to have to add UploadDenied and UploadFailed events, so that calling code can at least report it to the end user. I think the plan will then be to, before attempting this 'second chance' connection, check to see whether this user has sent an UploadDenied message that matches the filename (using some fuzzy logic), and if so, use that to fail the transfer definitively before attempting the outbound connection. The odd behavior I'm seeing after UploadDenied is received is explained by the 'second chance' connection attempt added in #383 if the connection fails an outbound attempt is made, and it succeeds, but the transfer fails because the other end is not expecting it (or perhaps fails to read the file a second time).įailure to await a connection in AwaitTransferConnectionAsync is the only clue that I have that an UploadDenied message has been sent. The rest of the messages, including the very similar UploadFailed, all use the masked filename. The first step is to get these transfers to explicitly fail when UploadDenied is sent, then see if this odd behavior still exists. I suspect that what is happening is that the remote client is sending a transfer response that indicates we are good to go, but then immediately fails because it can't open the file, sends UploadDenied, and then somehow doesn't clean up the transfer connection, or potentially doesn't cancel the connection or prevent Soulseek.NET from proceeding to establish it.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |