Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

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

Alles rund um das Internet, Internet-Anwendungen (E-Mail, Surfen, Cloud usw.) und das Einrichten von Netzwerken einschl. VPN unter Linux

Moderator: Moderatoren

Antworten
Volucris
Newbie
Newbie
Beiträge: 4
Registriert: 19. Jan 2010, 16:07

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

Beitrag von Volucris »

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: Alles auswählen

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.
Antworten