licq-im / licq

An instant messaging client for UNIX
http://www.licq.org/
16 stars 4 forks source link

ICQ now allow passwords up to 16 chars #50

Open mathieujobin opened 8 years ago

mathieujobin commented 8 years ago

but from what I tried, I need a 8char long password to be able to use licq

thank you

GrandAdmiralThrawn commented 7 years ago

I don't know how to write a proper patch, but I managed to fix this myself, it's relatively easy. Get the source code, then open icq/src/packet-srv.cpp. Look at lines 595 and 646, you'll find the functions that truncate the password to 8 characters.

For example, line 646 pp.:

//-----Logon--------------------------------------------------------------------
CPU_Logon::CPU_Logon(const string& password, const string& accountId, unsigned short _nLogonStatus)
  : CSrvPacketTcp(ICQ_CHNxNEW)
{
  // truncate password to MAX 8 characters
  string pass(password);
  if (pass.size() > 8)
  {
    gLog.warning(tr("Password too long, truncated to 8 Characters!"));
    pass.erase(8);
}

Change those 8s to 16s, then recompile and reinstall. Passwords will now be truncated to 16 characters.

If you want cosmetic localization support for this as well, you could also edit licq/po/de.po (German), icq/po/es.po (Spanish) and licq/po/be.po (Belarusian), lines 3317-3318, 3370-3371 and 3476-3477 respectively. But it's not necessary for the login to function with >8 characters.

I've tested this fix myself today, and it worked beautifully!

In case you're relying on a precompiled binary package, you'd need to let your package maintainer know about this fix and have them patch and rebuild the code. I just submitted this to the port maintainer for FreeBSD UNIX, let's hope he'll commit it.

(Still not giving up on licq)

mathieujobin commented 6 years ago

writing a patch is easy, you must have cloned this repo, don't you ? did you commit your changes? create a branch, push to your fork and github will offer you to open a pull request, if it does not visit your branches page and hit the new pull requests button

the patch is inside the repo

back in the days, I would have told you to use diff -u and send that over by email, but eh, this is 2018 isn't it ?

GrandAdmiralThrawn commented 6 years ago

I'm just a user, not a developer. I don't know how to use versioning systems and/or github properly, and I don't understand the terminology of git either ("pull request", "commit changes", "push to my fork", no idea how or what all that is). That's why I posted the necessary changes here instead, hoping that somebody else would do the rest.

My apologies... I haven't even used diff to create patch files, ever.. :(