[IRCServices] EnableAnopeWorkaround doesn't work with db imported from anope-1.7.18 using enc_old

Andrew Church achurch at achurch.org
Fri Oct 12 03:00:35 PDT 2007


>Hi
>
>I'm currently running anope-1.7.18 which was earlier upgraded from an older version with the broken md5 encryption.
>In order to use the old db in the new anope I use the enc_old option and that works fine.
>
>No I want to migrate this database to ircservices but I can't get it to recognize the passwords. I made two example users for a test:

Thanks for this report.  Can you please try applying the patch below to
your Services source code (save this message to a file and give the command
"patch -p0 <file" in the ircservices-5.1.0 directory, where "file" is the
path of the file you saved the message to), then recompiling and running
the converter again?

  --Andrew Church
    achurch at achurch.org
    http://achurch.org/

Index: tools/convert-epona.c
===================================================================
RCS file: /var/local/cvsroot/ircservices/tools/convert-epona.c,v
retrieving revision 2.40
diff -u -r2.40 convert-epona.c
--- tools/convert-epona.c	10 Oct 2007 05:57:31 -0000	2.40
+++ tools/convert-epona.c	11 Oct 2007 18:03:00 -0000
@@ -116,6 +116,8 @@
                 ngi->os_priv = NP_SERVADMIN;
             else if (tmp32 & 0x00001000)        /* NI_SERVICES_OPER */
                 ngi->os_priv = NP_SERVOPER;
+            if (tmp32 & 0x00004000)
+                ngi->pass.cipher = sstrdup("md5");
             if (tmp32 & 0x00080000)
                 ngi->flags |= NF_NOOP;
             SAFE(read_int16(&tmp16, f));
@@ -485,6 +487,8 @@
                 ci->flags |= CF_SECURE;
             if (tmp32 & 0x00000080)
                 ci->flags |= CF_VERBOTEN;
+            if (tmp32 & 0x00000100)
+                ci->pass.cipher = sstrdup("md5");
             if (tmp32 & 0x00000200)
                 ci->flags |= CF_NOEXPIRE;
             if (tmp32 & 0x00000800)