Re: cvs: php3 /functions mail.c php3_mail.h
| From: | Andi Gutmans | Date: | Thu, 29 Jun 2000 12:15:03 +0000 |
| Subject: | Re: cvs: php3 /functions mail.c php3_mail.h | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-541@lists.php.net to get a copy of this message | ||
Are you sure the hash value range needs to be from 0-52? Is that a big enough range?
Andi
At 12:07 PM 6/29/00 +0000, Kristian Köhntopp wrote:
--- Andi Gutmans <andi@zend.com> http://www.zend.com/kk Thu Jun 29 05:07:47 2000 EDTModified files:/php3/functions mail.c php3_mail.hLog: To maintain EZMLM mailing lists in a MySQL database, you need a hash value (why this is just beyond me). This function will calculate such a hash value. Index: php3/functions/mail.c diff -u php3/functions/mail.c:1.61 php3/functions/mail.c:1.62 --- php3/functions/mail.c:1.61 Fri Dec 31 20:31:16 1999+++ php3/functions/mail.c Thu Jun 29 05:07:47 2000@@ -28,7 +28,7 @@+----------------------------------------------------------------------+*/ -/* $Id: mail.c,v 1.61 2000/01/01 04:31:16 sas Exp $ */ +/* $Id: mail.c,v 1.62 2000/06/29 12:07:47 kk Exp $ */ #include <stdlib.h> #include <ctype.h> @@ -53,6 +53,7 @@ function_entry mail_functions[] = {{"mail", php3_mail, NULL}, + {"ezmlm_hash", php3_ezmlm_hash, NULL}, {NULL, NULL, NULL}}; @@ -159,6 +160,37 @@}#endifreturn 1;+} + +/* {{{ proto int ezmlm_hash(string hash) + Calculate EZMLM list hash value */ +void php3_ezmlm_hash(INTERNAL_FUNCTION_PARAMETERS) +{+ pval *pstr; + char *str=NULL; + unsigned long h = 5381L; + int j, l; + TLS_VARS;++ if (ARG_COUNT(ht) != 1 || getParameters(ht, 1, &pstr) == FAILURE) { + WRONG_PARAM_COUNT; + }++ convert_to_string(pstr); + if (pstr->value.str.val) { + str = pstr->value.str.val; + } else { + php3_error(E_WARNING, "Must give string parameter to ezmlm_hash()"); + RETURN_FALSE; + } + l = strlen(str);++ for (j=0; j<l; ++j) { + h = (h + (h<<5)) ^ (unsigned long) (unsigned char) tolower(str[j]); + } + h = (h%53);++ RETURN_LONG(h);} void php3_info_mail(void) Index: php3/functions/php3_mail.h diff -u php3/functions/php3_mail.h:1.3 php3/functions/php3_mail.h:1.4--- php3/functions/php3_mail.h:1.3 Fri Dec 31 20:44:09 1999+++ php3/functions/php3_mail.h Thu Jun 29 05:07:47 2000 @@ -28,7 +28,7 @@ */ -/* $Id: php3_mail.h,v 1.3 2000/01/01 04:44:09 sas Exp $ */ +/* $Id: php3_mail.h,v 1.4 2000/06/29 12:07:47 kk Exp $ */ #ifndef _MAIL_H #define _MAIL_H @@ -39,6 +39,7 @@ extern void php3_mail(INTERNAL_FUNCTION_PARAMETERS); extern void php3_info_mail(void); extern int _php3_mail(char *to, char *subject, char *message, char *headers); +extern void php3_ezmlm_hash(INTERNAL_FUNCTION_PARAMETERS); #else #define mail_module_ptr NULL -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: php-cvs-unsubscribe@lists.php.net For additional commands, e-mail: php-cvs-help@lists.php.net To contact the list administrators, e-mail: php-list-admin@lists.php.net