← Back to team overview

linuxdcpp-team team mailing list archive

[Bug 534440] Re: Incorrect encoding of file names, directories ...in the search box.

 

Hub can have any number of public and local (by local I mean IPs in
RFC1918) adresses. So I don't think there's anything to be done to the
ClientManager::findHub, assuming the hub doesn't let the client now
about all it's IPs (which I doubt considering the state of the rest of
NMDC).

Let me explain how I understood the problem.

User A connects to hub X with address 1.1.1.1, 
User B connects to hub X with address 2.2.2.2. 

If both are active, user A sends SR to user B with hub address 1.1.1.1.
User B has no idea what this address is, as he has connected to 2.2.2.2,
there's no local IP or anything that would connect this address to
1.1.1.1. So findHub returns an empty url. (With passive user receiving
SR there shouldn't be any ambiguity what hub it came from. Do the
passive results even include the hubIP:Port?)

Feel free to correct me if it seems I'm on crack...

--RZ

-- 
Incorrect encoding of file names, directories ...in the search box.
https://bugs.launchpad.net/bugs/534440
You received this bug notification because you are a member of LinuxDC++
Team, which is subscribed to LinuxDC++.

Status in Linux DC++: New

Bug description:
The problem with the coding in the search box if the user is connected to a hub such as the external IP address, and I'm on the inside then the function
ClientManager::getInstance()->findHub(hubIpPort) returns an empty url and a subsequent call to ClientManager::getInstance()->findHubEncoding(url)
returns the system encoding, and encoding CP1251 hub as a result of the search box in the file names, paths, nicknames does not display correctly.

void SearchManager:: onData (const uint8_t * buf, size_t aLen, const string & remoteIp) {

..........

	string hubIpPort = x.substr(i, j-i);
	string url = ClientManager::getInstance()->findHub(hubIpPort);                       >>> returns an empty url

	string encoding = ClientManager::getInstance()->findHubEncoding(url);            >>> does not return the correct encoding hub
	nick = Text:: toUtf8 (nick, encoding);
	file = Text:: toUtf8 (file, encoding);
	hubName = Text:: toUtf8 (hubName, encoding);

...........

	SearchResultPtr sr (new SearchResult (user, type, _slots, freeSlots, size,
		file, hubName, url, remoteIp, TTHValue (tth), Util:: emptyString));

	fire (SearchManagerListener:: SR (), sr);

...........

}

Forgive me, I used google translate





References