diff options
author | xtraeme <xtraeme@pkgsrc.org> | 2004-10-27 23:27:00 +0000 |
---|---|---|
committer | xtraeme <xtraeme@pkgsrc.org> | 2004-10-27 23:27:00 +0000 |
commit | 227f638a676bb9a1d3efa0d8f9bf3528d95c77c5 (patch) | |
tree | b431ae3303d74539e8bb2934c40b3c7790795413 /mail/dspam/patches | |
parent | 9c4ef21b085227e041ba6028aeeb24e0813ce5cd (diff) | |
download | pkgsrc-227f638a676bb9a1d3efa0d8f9bf3528d95c77c5.tar.gz |
Apply patch from dspam CVS to fix some errors when using MySQL-4.1.x.
Bump PKGREVISION.
Diffstat (limited to 'mail/dspam/patches')
-rw-r--r-- | mail/dspam/patches/patch-ab | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/mail/dspam/patches/patch-ab b/mail/dspam/patches/patch-ab new file mode 100644 index 00000000000..4cbcb82b05e --- /dev/null +++ b/mail/dspam/patches/patch-ab @@ -0,0 +1,109 @@ +$NetBSD: patch-ab,v 1.1 2004/10/27 23:27:00 xtraeme Exp $ + +Fix for MySQL 4.1.x users: + +http://dspam.nuclearelephant.com/dspam-users/5709.html + +--- mysql_drv.c.orig 2004-10-28 01:01:32.000000000 +0200 ++++ mysql_drv.c 2004-10-28 01:07:44.000000000 +0200 +@@ -512,10 +512,10 @@ + struct _ds_spam_stat stat, stat2; + struct lht_node *node_lht; + struct lht_c c_lht; +- buffer *query, *insert; ++ buffer *query; + char scratch[1024]; + struct passwd *p; +- int update_one = 0, insert_one = 0; ++ int update_one = 0; + + if (s->dbh == NULL) + { +@@ -546,14 +546,6 @@ + return EUNKNOWN; + } + +- insert = buffer_create(NULL); +- if (insert == NULL) +- { +- buffer_destroy(query); +- LOG (LOG_CRIT, ERROR_MEM_ALLOC); +- return EUNKNOWN; +- } +- + if (s->control_token == 0) + { + node_lht = c_lht_first (freq, &c_lht); +@@ -585,9 +577,6 @@ + + buffer_cat (query, scratch); + +- buffer_copy (insert, "insert into dspam_token_data(uid, token, spam_hits, " +- "innocent_hits, last_hit) values"); +- + node_lht = c_lht_first (freq, &c_lht); + while (node_lht != NULL) + { +@@ -605,7 +594,7 @@ + + if (stat2.disk != 'Y') + { +- char ins[1024]; ++ char insert[1024]; + + /* If we're processing a message with a MERGED group, assign it based on + an empty count and not the current count (since the current count +@@ -615,25 +604,27 @@ + on the actual count (so that tools like dspam_merge don't break) */ + + if (CTX->flags & DSF_MERGED) { +- snprintf (ins, sizeof (ins), +- "%s(%d, '%llu', %d, %d, current_date())", +- (insert_one) ? ", " : "", ++ snprintf (insert, sizeof (insert), ++ "insert into dspam_token_data(uid, token, spam_hits, " ++ "innocent_hits, last_hit) values(%d, '%llu', %d, %d, " ++ "current_date())", + p->pw_uid, + node_lht->key, + stat.spam_hits > s->control_sh ? 1 : 0, + stat.innocent_hits > s->control_ih ? 1 : 0); + } else { +- snprintf (ins, sizeof (ins), +- "%s(%d, '%llu', %ld, %ld, current_date())", +- (insert_one) ? ", " : "", ++ snprintf(insert, sizeof (insert), ++ "insert into dspam_token_data(uid, token, spam_hits, " ++ "innocent_hits, last_hit) values(%d, '%llu', %ld, %ld, " ++ "current_date())", + p->pw_uid, + node_lht->key, + stat2.spam_hits, + stat2.innocent_hits); + } + +- insert_one = 1; +- buffer_cat(insert, ins); ++ if (MYSQL_RUN_QUERY (s->dbh, insert)) ++ stat2.disk = 'Y'; + } + + if (stat2.disk == 'Y') +@@ -675,17 +666,6 @@ + } + } + +- if (insert_one) +- { +- if (MYSQL_RUN_QUERY (s->dbh, insert->data)) +- { +- _mysql_drv_query_error (mysql_error (s->dbh), insert->data); +- buffer_destroy(insert); +- return EFAILURE; +- } +- } +- +- buffer_destroy (insert); + buffer_destroy (query); + return 0; + } |