From: itinerants <iti...@ho...> - 2007-11-03 20:22:36
|
A coupla weeks ago I decided to port dc++ onto OSX, that is, to put a native interface onto the "client" section of the code. It went well - had it up and running in about 8 hours, another 4 to put some semblance of "nice" interface on it, and I've been using it, crashless (well, a few due to my own errors) since then. I did, however, find the following, which I think are NOT my bugs, but I stand to be corrected... 1. I see there is some "if macintosh" type code, so I needed to turn off SO_NOSIGPIPE... BufferedSocket::accept BufferedSocket::connect Both needed sock->setSocketOpt(SO_NOSIGPIPE, 1); With the other socket options. I suspect this is a mac only fix, but I know nothing about pcs, so I can't be sure. 2. DirectoryListing::loadFile need to be specified as throwing FileException, SimpleXMLException - corrupt file lists, as well as the routine itself, throw more than just "Exception". I'm not a c++ expert, but my understanding of the "throw" thing in the function prototype is that if you throw something other than what's listed, you get a runtime exception and the prog exits if it isn't handled - can't see that it is being handled. This certainly killed my version until I added the new specifiers. 3. in .702... In "StringDefs.cpp", A) in ResourceManager::strings between "Tag", and " Target filename too long", There should be "Target removed" B) in ResourceManager::names between "Tag", and "TargetFilenameTooLong", There should be "TargetRemoved" 4. The AutoSearch thing... It saves a list of the 30 last "searched for" strings. This means that, if you have, say, 29 items in your list, once they've all been searched for, no more autosearching is performed, yet if you have 31, it'll keep cycling around. I fixed this by clearing the list if nothing to search for is found, then, next time around, we're back searching again. 5. The autosearch interval needs to be user-specifiable. It's either 120000, or 300000, but some hubs have 10 minute minimum search intervals! On those hubs, autosearch never finds anything after the first one, since the hub bounces every subsequent search as being within the minimm search interval. 6. Unless I've missed something, which is quite possible, users in the wait list who aren't online are shown only with their CIDs? I've created a "Downloaders" database/window that shows how much has been down/up loaded from each user you've down/up loaded from/to. I had this on an earlier Valknut port and now wouldn't/couldn't live without it. It tells you who might be a good target for future downloads (it also shows max/average speed for each). To do this it hooks into the DownloadManagerListener, UploadManagerListener, BufferedSocketListener, ClientManagerListener, and QueueManagerListener (to collect nicks for people before you've downloaded from them). The other advantage is that my wait list uses THIS database to provide real nicks. Guess that's more a suggestion than a bug, sorry. There are a bunch of other things of lesser import, but I'll stop for now. Hope some of this is useful, if not, just send a nuke my way! Regards and keep up the good work. "SomeQuestions" |