• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Einfügen einer Md5-Funktion in die access_log.cc

Volucris

Newbie
Hallo nochmal.

Hab ein weiteres Problem ;)

Und zwar möchte ich in die o.g. Datei eine md5-Funktion einfügen. Ziel ist es, für die geloggten URLs einen Hashwert zu bilden.
Dazu benutze ich die Funktion md5sum aus der crypt_md5.cc, d.h. ich schreibe die Funktion neu in die access_log.cc rein und benenne sie dabei um.

Bekomme allerdings beim Kompilieren immer folgenden Fehler:
access_log.cc: In function ‘char* md5xsum(const char*)’:
access_log.cc:1939: error: left-hand operand of comma has no effect
access_log.cc:1939: error: right-hand operand of comma has no effect
access_log.cc:1939: error: statement has no effect

Hier wäre die Funktion, wie ich sie geschrieben habe. Der Fehler tritt in der sprintf-Funktion auf. Habt ihr eine Erklärung dafür?
Code:
char *md5xsum(const char *s) {
   static unsigned char digest[16];
   SquidMD5_CTX ctx;
   int idx;
   static char sum[33];

   memset(digest,0,16);

   SquidMD5Init(&ctx);
   SquidMD5Update(&ctx,(const unsigned char *)s,strlen(s));
   SquidMD5Final(digest,&ctx);

   for(idx=0;idx<16;idx++) {
       sprintf(&sum[idx*2],"%02x",digest[idx]); // <- der Fehler tritt an dieser Stelle auf!!!
   }

   sum[32]='\0';

   /* Don't leave anything around in vm they could use. */
   memset(digest, 0, sizeof digest);

   return sum;
}

Die Funktion ist 1:1 aus der crypt_md5.cc übernommen und dann nur umbenannt, damit es intern zu keinen Namenskonflikten kommt.
 
Oben