summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lang/php5/patches/patch-ak150
-rw-r--r--mail/php-imap/Makefile4
2 files changed, 147 insertions, 7 deletions
diff --git a/lang/php5/patches/patch-ak b/lang/php5/patches/patch-ak
index 246b8b4cfa5..094544f206c 100644
--- a/lang/php5/patches/patch-ak
+++ b/lang/php5/patches/patch-ak
@@ -1,8 +1,16 @@
-$NetBSD: patch-ak,v 1.3 2006/11/06 22:06:35 jdolecek Exp $
+$NetBSD: patch-ak,v 1.4 2008/03/04 17:13:49 sborrill Exp $
---- ext/imap/php_imap.c.orig 2006-10-05 16:25:41.000000000 +0200
-+++ ext/imap/php_imap.c
-@@ -441,6 +441,11 @@ PHP_MINIT_FUNCTION(imap)
+--- ext/imap/php_imap.c.orig 2007-07-31 01:31:10.000000000 +0100
++++ ext/imap/php_imap.c 2008-03-04 18:14:19.000000000 +0000
+@@ -70,6 +70,7 @@
+ static void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC);
+ static void _php_imap_parse_address(ADDRESS *addresslist, char **fulladdress, zval *paddress TSRMLS_DC);
+ static int _php_imap_address_size(ADDRESS *addresslist);
++static void _php_rfc822_write_address_len (char *dest, ADDRESS *adr, int len);
+
+ /* the gets we use */
+ static char *php_mail_gets(readfn_t f, void *stream, unsigned long size, GETS_DATA *md);
+@@ -452,6 +453,11 @@
{
unsigned long sa_all = SA_MESSAGES | SA_RECENT | SA_UNSEEN | SA_UIDNEXT | SA_UIDVALIDITY;
@@ -14,7 +22,7 @@ $NetBSD: patch-ak,v 1.3 2006/11/06 22:06:35 jdolecek Exp $
#ifndef PHP_WIN32
mail_link(&unixdriver); /* link in the unix driver */
mail_link(&mhdriver); /* link in the mh driver */
-@@ -456,6 +461,10 @@ PHP_MINIT_FUNCTION(imap)
+@@ -467,6 +473,10 @@
mail_link(&tenexdriver); /* link in the tenex driver */
mail_link(&mtxdriver); /* link in the mtx driver */
mail_link(&dummydriver); /* link in the dummy driver */
@@ -25,3 +33,135 @@ $NetBSD: patch-ak,v 1.3 2006/11/06 22:06:35 jdolecek Exp $
#ifndef PHP_WIN32
auth_link(&auth_log); /* link in the log authenticator */
+@@ -1603,18 +1613,21 @@
+ }
+
+ PHP_IMAP_CHECK_MSGNO(Z_LVAL_PP(msgno));
+-
++ printf("mail_fetchstructure\n");
+ if (mail_fetchstructure(imap_le_struct->imap_stream, Z_LVAL_PP(msgno), NIL)) {
+ cache = mail_elt(imap_le_struct->imap_stream, Z_LVAL_PP(msgno));
+ } else {
+ RETURN_FALSE;
+ }
+
++ printf("mail_fetchenvelope a\n");
+ en = mail_fetchenvelope(imap_le_struct->imap_stream, Z_LVAL_PP(msgno));
++ printf("mail_fetchenvelope b\n");
+
+ /* call a function to parse all the text, so that we can use the
+ same function to parse text from other sources */
+ _php_make_header_object(return_value, en TSRMLS_CC);
++ printf("mail_fetchenvelope c\n");
+
+ /* now run through properties that are only going to be returned
+ from a server, not text headers */
+@@ -1624,6 +1637,7 @@
+ add_property_string(return_value, "Answered", cache->answered ? "A" : " ", 1);
+ add_property_string(return_value, "Deleted", cache->deleted ? "D" : " ", 1);
+ add_property_string(return_value, "Draft", cache->draft ? "X" : " ", 1);
++ printf("mail_fetchenvelope d\n");
+
+ snprintf(dummy, sizeof(dummy), "%4ld", cache->msgno);
+ add_property_string(return_value, "Msgno", dummy, 1);
+@@ -1646,6 +1660,7 @@
+ mail_fetchsubject(fulladdress, imap_le_struct->imap_stream, Z_LVAL_PP(msgno), Z_LVAL_PP(subjectlength));
+ add_property_string(return_value, "fetchsubject", fulladdress, 1);
+ }
++ printf("mail_fetchenvelope e\n");
+ }
+ /* }}} */
+
+@@ -2105,7 +2120,6 @@
+ zval **mailbox, **host, **personal;
+ ADDRESS *addr;
+ char string[MAILTMPLEN];
+-
+ if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &mailbox, &host, &personal) == FAILURE) {
+ ZEND_WRONG_PARAM_COUNT();
+ }
+@@ -2137,7 +2151,7 @@
+ }
+
+ string[0]='\0';
+- rfc822_write_address(string, addr);
++ _php_rfc822_write_address_len(string, addr, sizeof(string));
+ RETVAL_STRING(string, 1);
+ }
+ /* }}} */
+@@ -2906,13 +2920,13 @@
+ if (env->from && _php_imap_address_size(env->from) < MAILTMPLEN) {
+ env->from->next=NULL;
+ address[0] = '\0';
+- rfc822_write_address(address, env->from);
++ _php_rfc822_write_address_len(address, env->from, sizeof(address));
+ add_property_string(myoverview, "from", address, 1);
+ }
+ if (env->to && _php_imap_address_size(env->to) < MAILTMPLEN) {
+ env->to->next = NULL;
+ address[0] = '\0';
+- rfc822_write_address(address, env->to);
++ _php_rfc822_write_address_len(address, env->to, sizeof(address));
+ add_property_string(myoverview, "to", address, 1);
+ }
+ if (env->date) {
+@@ -3868,6 +3882,7 @@
+ ret += _php_rfc822_len(tmp->mailbox);
+ ret += _php_rfc822_len(tmp->host);
+ num_ent++;
++ printf("%d:%s %s %s %s\n",num_ent,tmp->personal,tmp->adl,tmp->mailbox,tmp->host);
+ } while ((tmp = tmp->next));
+
+ /*
+@@ -3883,6 +3898,33 @@
+ /* }}} */
+
+
++/* {{{ _php_rfc822_soutr
++ */
++static long _php_rfc822_soutr (void *stream,char *string)
++{
++ return NIL;
++}
++
++/* }}} */
++
++
++/* {{{ _php_rfc822_write_address_len
++ */
++static void _php_rfc822_write_address_len ( char *dest, ADDRESS *adr, int len)
++{
++ RFC822BUFFER buf;
++ buf.beg = dest;
++ buf.cur = buf.beg;
++ buf.end = buf.beg + len - 1;
++ buf.s = NIL;
++ buf.f = _php_rfc822_soutr;
++ rfc822_output_address_list (&buf, adr, 0, NIL);
++ *buf.cur = '\0';
++}
++
++/* }}} */
++
++
+ /* {{{ _php_imap_parse_address
+ */
+ static void _php_imap_parse_address (ADDRESS *addresslist, char **fulladdress, zval *paddress TSRMLS_DC)
+@@ -3891,13 +3933,15 @@
+ zval *tmpvals;
+ char *tmpstr;
+ int len=0;
+-
++
++
+ addresstmp = addresslist;
+
+ if ((len = _php_imap_address_size(addresstmp))) {
+ tmpstr = (char *) pemalloc(len + 1, 1);
+ tmpstr[0] = '\0';
+- rfc822_write_address(tmpstr, addresstmp);
++
++ _php_rfc822_write_address_len(tmpstr, addresstmp, len);
+ *fulladdress = tmpstr;
+ } else {
+ *fulladdress = NULL;
diff --git a/mail/php-imap/Makefile b/mail/php-imap/Makefile
index 19ea72aedbf..7463979fb06 100644
--- a/mail/php-imap/Makefile
+++ b/mail/php-imap/Makefile
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.13 2008/01/18 05:08:28 tnn Exp $
+# $NetBSD: Makefile,v 1.14 2008/03/04 17:13:49 sborrill Exp $
MODNAME= imap
-PKGREVISION= 2
+PKGREVISION= 3
CATEGORIES+= mail
COMMENT= PHP extension for IMAP (Internet Mailbox Access Protocol)