View Issue Details Jump to Notes | Issue History Print | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0000025 | MLD | [All Projects] VDR | public | 2014-01-09 20:10 | 2014-01-15 19:50 | ||||
Reporter | P3f | ||||||||
Assigned To | P3f | ||||||||
Priority | normal | Severity | block | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Product Version | |||||||||
Paket Name und Version | Fritzbox 1.5.3 | ||||||||
Fixed in Version | Rev 10 | ||||||||
Summary | 0000025: MLD 3.0.3 | ||||||||
Description | Hallo, das Addon lässt sich compilieren und läuft auch ohne Segfault in der MLD 3.0.3 (mit VDR 2.1.3). Aber es wird keine Verbindung zur Fritzbox aufgebaut. Scheinbar ein conversions-Fehler, zumindest steht im /var/log/messages Jan 9 20:05:08 (MLD) user.err vdr: [4268] [fritzbox - FritzClient.cpp:314] Exception in connection to fritz.box - Unsupported conversion from UTF-16LE to Jan 9 20:05:08 (MLD) user.err vdr: [4268] [fritzbox - FritzClient.cpp:314] waiting 30 seconds before retrying Nachdem bei der vorherigen Revision immer noch ein Patch für das Makefile nötig war, frage ich mich ob hier wirklich alle Libs bzw. obj korrekt übersetzt werden. Ich hatte das Problem auch mal an den Plugin-Entwickler geschickt, allerdings noch kein Feedback erhalten. Kann man sich das mal anschauen, gegen den "bisherigen" Patch? Danke, Pit | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | |||||||||
Notes | |
(0000019) Christian (developer) 2014-01-14 14:23 edited on: 2014-01-14 14:41 |
HI, da klappt ein convert von einem character set nicht. QUELLCODE: /////////// std::string FritzClient::calculateLoginResponse(std::string challenge) { std::string challengePwd = challenge + '-' + gConfig->getPassword(); // the box needs an md5 sum of the string "challenge-password" // to make things worse, it needs this in UTF-16LE character set // last but not least, for "compatibility" reasons (*LOL*) we have to replace // every char > "0xFF 0x00" with "0x2e 0x00" convert::CharsetConverter conv("", "UTF-16LE"); char challengePwdConv[challengePwd.length()*2]; memcpy(challengePwdConv, conv.convert(challengePwd).c_str(), challengePwd.length()*2); for (size_t pos=1; pos < challengePwd.length()*2; pos+= 2) if (challengePwdConv[pos] != 0x00) { challengePwdConv[pos] = 0x00; challengePwdConv[pos-1] = 0x2e; } unsigned char hash[16]; gcry_md_hash_buffer(GCRY_MD_MD5, hash, (const char*)challengePwdConv, challengePwd.length()*2); std::stringstream response; response << challenge << '-'; for (size_t pos=0; pos < 16; pos++) response << std::hex << std::setfill('0') << std::setw(2) << (unsigned int)hash[pos]; return response.str(); } \\\\\\\\\\\\\ bedeutet für mich er kann das PW nicht in UTF16LE convertieren über iconv. Am mittwoch kann ich wieder intensiver schauen |
(0000020) Christian (developer) 2014-01-14 15:08 |
so hier liegt der Hund begraben: //////////// std::string CharsetConverter::getDefaultCharset() { if (setlocale(LC_CTYPE, "")) return nl_langinfo(CODESET); char *langPtr = getenv("LANG"); if (langPtr) { std::string lang(langPtr); size_t pos = lang.find('.'); if (pos == std::string::npos) return lang; return lang.substr(pos+1); } return "UTF-8"; } ////////// was haben wir in den variablen? LC_CTYPE=? LANG=? |
(0000021) P3f (developer) 2014-01-14 17:22 |
Hallo Christian, ich habe mal auf der MLD-Konsole die gewünschte Eingabe gemacht: MLD> locale -m locale: cannot read character map directory `/usr/share/i18n/charmaps': No such file or directory MLD> Sollte die charmaps in dem Verzeichnis liegen? |
(0000022) Christian (developer) 2014-01-14 17:49 |
Mach mal "env" und schau nach den Variablen |
(0000024) Christian (developer) 2014-01-15 11:10 edited on: 2014-01-15 11:22 |
ein ls von /usr/lib/i386-linux-gnu/gconv/ bitte und bitte das binary aus der Develumgebung (iconv) mit auf die MLD kopieren und dies testen: The values permitted for --from-code and --to-code can be listed by the iconv --list command, and all combinations of the listed values are supported. iconv --list iconv muss hier etwas ausspucken wie UTF16 .... wenn die Datei UTF16.so hier /usr/lib/i386-linux-gnu/gconv/ fehlt könnten wir den übeltäter haben |
(0000026) P3f (developer) 2014-01-15 19:49 |
Hi, nachdem ich die UTF-16.so Datei mit von der Devel auf die MLD kopiert habe, funktioniert es..... Super, werde nun das Addon anpassen. Dann sind wir wieder aktuell mit der AVM-Fritzbox bzw. der fritzbox Plugin. Gut das Du es gefunden hast.... Pit |
(0000027) P3f (developer) 2014-01-15 19:49 |
Christian, hat das Problem gefunden. Addon wird aktualisiert. |
(0000028) P3f (developer) 2014-01-15 19:50 |
Funktionstest auf 2 MLD 3.0.3 ist erfolgreich.... |
Issue History | |||
Date Modified | Username | Field | Change |
2014-01-09 20:10 | P3f | New Issue | |
2014-01-09 20:10 | P3f | Status | new => assigned |
2014-01-09 20:10 | P3f | Assigned To | => Christian |
2014-01-14 14:23 | Christian | Note Added: 0000019 | |
2014-01-14 14:26 | Christian | Note Edited: 0000019 | View Revisions |
2014-01-14 14:41 | Christian | Note Edited: 0000019 | View Revisions |
2014-01-14 15:08 | Christian | Note Added: 0000020 | |
2014-01-14 17:22 | P3f | Note Added: 0000021 | |
2014-01-14 17:49 | Christian | Note Added: 0000022 | |
2014-01-15 11:10 | Christian | Note Added: 0000024 | |
2014-01-15 11:22 | Christian | Note Edited: 0000024 | View Revisions |
2014-01-15 19:49 | P3f | Note Added: 0000026 | |
2014-01-15 19:49 | P3f | Note Added: 0000027 | |
2014-01-15 19:49 | P3f | Status | assigned => resolved |
2014-01-15 19:49 | P3f | Fixed in Version | => Rev 10 |
2014-01-15 19:49 | P3f | Resolution | open => fixed |
2014-01-15 19:49 | P3f | Assigned To | Christian => P3f |
2014-01-15 19:50 | P3f | Note Added: 0000028 | |
2014-01-15 19:50 | P3f | Status | resolved => closed |