From c081ce628f0d76d44784d7bb8e06428b06142ac0 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Fri, 3 Jan 2014 11:08:10 +0800 Subject: Bump year --- ext/imap/php_imap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ext/imap/php_imap.c') diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index d697fa7911..0e8310a367 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2013 The PHP Group | + | Copyright (c) 1997-2014 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | -- cgit v1.2.1 From 050d7e38ad4163e7fa65e26724d3516ce7b33601 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 15 Apr 2014 15:40:40 +0400 Subject: Cleanup (1-st round) --- ext/imap/php_imap.c | 186 ++++++++++++++++++++++++++++------------------------ 1 file changed, 102 insertions(+), 84 deletions(-) (limited to 'ext/imap/php_imap.c') diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index 0e8310a367..876be777a8 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -793,7 +793,7 @@ void mail_getacl(MAILSTREAM *stream, char *mailbox, ACLLIST *alist) /* walk through the ACLLIST */ for(; alist; alist = alist->next) { - add_assoc_stringl(IMAPG(imap_acl_list), alist->identifier, alist->rights, strlen(alist->rights), 1); + add_assoc_stringl(IMAPG(imap_acl_list), alist->identifier, alist->rights, strlen(alist->rights)); } } /* }}} */ @@ -1667,7 +1667,7 @@ PHP_FUNCTION(imap_headers) } mail_fetchsubject(t = tmp + strlen(tmp), imap_le_struct->imap_stream, msgno, (long)25); snprintf(t += strlen(t), sizeof(tmp) - strlen(tmp), " (%ld chars)", cache->rfc822_size); - add_next_index_string(return_value, tmp, 1); + add_next_index_string(return_value, tmp); } } /* }}} */ @@ -1862,7 +1862,7 @@ PHP_FUNCTION(imap_list) array_init(return_value); cur=IMAPG(imap_folders); while (cur != NIL) { - add_next_index_string(return_value, cur->LTEXT, 1); + add_next_index_string(return_value, cur->LTEXT); cur=cur->next; } mail_free_stringlist (&IMAPG(imap_folders)); @@ -1904,14 +1904,14 @@ PHP_FUNCTION(imap_list_full) while (cur != NIL) { MAKE_STD_ZVAL(mboxob); object_init(mboxob); - add_property_string(mboxob, "name", cur->LTEXT, 1); + add_property_string(mboxob, "name", cur->LTEXT); add_property_long(mboxob, "attributes", cur->attributes); #ifdef IMAP41 delim[0] = (char)cur->delimiter; delim[1] = 0; - add_property_string(mboxob, "delimiter", delim, 1); + add_property_string(mboxob, "delimiter", delim); #else - add_property_string(mboxob, "delimiter", cur->delimiter, 1); + add_property_string(mboxob, "delimiter", cur->delimiter); #endif add_next_index_object(return_value, mboxob TSRMLS_CC); cur=cur->next; @@ -1947,7 +1947,7 @@ PHP_FUNCTION(imap_listscan) array_init(return_value); cur=IMAPG(imap_folders); while (cur != NIL) { - add_next_index_string(return_value, cur->LTEXT, 1); + add_next_index_string(return_value, cur->LTEXT); cur=cur->next; } mail_free_stringlist (&IMAPG(imap_folders)); @@ -1977,9 +1977,9 @@ PHP_FUNCTION(imap_check) if (imap_le_struct->imap_stream && imap_le_struct->imap_stream->mailbox) { rfc822_date(date); object_init(return_value); - add_property_string(return_value, "Date", date, 1); - add_property_string(return_value, "Driver", imap_le_struct->imap_stream->dtb->name, 1); - add_property_string(return_value, "Mailbox", imap_le_struct->imap_stream->mailbox, 1); + add_property_string(return_value, "Date", date); + add_property_string(return_value, "Driver", imap_le_struct->imap_stream->dtb->name); + add_property_string(return_value, "Mailbox", imap_le_struct->imap_stream->mailbox); add_property_long(return_value, "Nmsgs", imap_le_struct->imap_stream->nmsgs); add_property_long(return_value, "Recent", imap_le_struct->imap_stream->recent); } else { @@ -2084,33 +2084,33 @@ PHP_FUNCTION(imap_headerinfo) /* now run through properties that are only going to be returned from a server, not text headers */ - add_property_string(return_value, "Recent", cache->recent ? (cache->seen ? "R": "N") : " ", 1); - add_property_string(return_value, "Unseen", (cache->recent | cache->seen) ? " " : "U", 1); - add_property_string(return_value, "Flagged", cache->flagged ? "F" : " ", 1); - 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); + add_property_string(return_value, "Recent", cache->recent ? (cache->seen ? "R": "N") : " "); + add_property_string(return_value, "Unseen", (cache->recent | cache->seen) ? " " : "U"); + add_property_string(return_value, "Flagged", cache->flagged ? "F" : " "); + add_property_string(return_value, "Answered", cache->answered ? "A" : " "); + add_property_string(return_value, "Deleted", cache->deleted ? "D" : " "); + add_property_string(return_value, "Draft", cache->draft ? "X" : " "); snprintf(dummy, sizeof(dummy), "%4ld", cache->msgno); - add_property_string(return_value, "Msgno", dummy, 1); + add_property_string(return_value, "Msgno", dummy); mail_date(dummy, cache); - add_property_string(return_value, "MailDate", dummy, 1); + add_property_string(return_value, "MailDate", dummy); snprintf(dummy, sizeof(dummy), "%ld", cache->rfc822_size); - add_property_string(return_value, "Size", dummy, 1); + add_property_string(return_value, "Size", dummy); add_property_long(return_value, "udate", mail_longdate(cache)); if (en->from && fromlength) { fulladdress[0] = 0x00; mail_fetchfrom(fulladdress, imap_le_struct->imap_stream, msgno, fromlength); - add_property_string(return_value, "fetchfrom", fulladdress, 1); + add_property_string(return_value, "fetchfrom", fulladdress); } if (en->subject && subjectlength) { fulladdress[0] = 0x00; mail_fetchsubject(fulladdress, imap_le_struct->imap_stream, msgno, subjectlength); - add_property_string(return_value, "fetchsubject", fulladdress, 1); + add_property_string(return_value, "fetchsubject", fulladdress); } } /* }}} */ @@ -2169,7 +2169,7 @@ PHP_FUNCTION(imap_lsub) array_init(return_value); cur=IMAPG(imap_sfolders); while (cur != NIL) { - add_next_index_string(return_value, cur->LTEXT, 1); + add_next_index_string(return_value, cur->LTEXT); cur=cur->next; } mail_free_stringlist (&IMAPG(imap_sfolders)); @@ -2210,14 +2210,14 @@ PHP_FUNCTION(imap_lsub_full) while (cur != NIL) { MAKE_STD_ZVAL(mboxob); object_init(mboxob); - add_property_string(mboxob, "name", cur->LTEXT, 1); + add_property_string(mboxob, "name", cur->LTEXT); add_property_long(mboxob, "attributes", cur->attributes); #ifdef IMAP41 delim[0] = (char)cur->delimiter; delim[1] = 0; - add_property_string(mboxob, "delimiter", delim, 1); + add_property_string(mboxob, "delimiter", delim); #else - add_property_string(mboxob, "delimiter", cur->delimiter, 1); + add_property_string(mboxob, "delimiter", cur->delimiter); #endif add_next_index_object(return_value, mboxob TSRMLS_CC); cur=cur->next; @@ -2586,9 +2586,9 @@ PHP_FUNCTION(imap_mailboxmsginfo) add_property_long(return_value, "Nmsgs", imap_le_struct->imap_stream->nmsgs); add_property_long(return_value, "Size", msize); rfc822_date(date); - add_property_string(return_value, "Date", date, 1); - add_property_string(return_value, "Driver", imap_le_struct->imap_stream->dtb->name, 1); - add_property_string(return_value, "Mailbox", imap_le_struct->imap_stream->mailbox, 1); + add_property_string(return_value, "Date", date); + add_property_string(return_value, "Driver", imap_le_struct->imap_stream->dtb->name); + add_property_string(return_value, "Mailbox", imap_le_struct->imap_stream->mailbox); add_property_long(return_value, "Recent", imap_le_struct->imap_stream->recent); } /* }}} */ @@ -2662,16 +2662,16 @@ PHP_FUNCTION(imap_rfc822_parse_adrlist) MAKE_STD_ZVAL(tovals); object_init(tovals); if (addresstmp->mailbox) { - add_property_string(tovals, "mailbox", addresstmp->mailbox, 1); + add_property_string(tovals, "mailbox", addresstmp->mailbox); } if (addresstmp->host) { - add_property_string(tovals, "host", addresstmp->host, 1); + add_property_string(tovals, "host", addresstmp->host); } if (addresstmp->personal) { - add_property_string(tovals, "personal", addresstmp->personal, 1); + add_property_string(tovals, "personal", addresstmp->personal); } if (addresstmp->adl) { - add_property_string(tovals, "adl", addresstmp->adl, 1); + add_property_string(tovals, "adl", addresstmp->adl); } add_next_index_object(return_value, tovals TSRMLS_CC); } while ((addresstmp = addresstmp->next)); @@ -3303,20 +3303,20 @@ PHP_FUNCTION(imap_bodystruct) if (body->subtype) { add_property_long(return_value, "ifsubtype", 1); - add_property_string(return_value, "subtype", body->subtype, 1); + add_property_string(return_value, "subtype", body->subtype); } else { add_property_long(return_value, "ifsubtype", 0); } if (body->description) { add_property_long(return_value, "ifdescription", 1); - add_property_string(return_value, "description", body->description, 1); + add_property_string(return_value, "description", body->description); } else { add_property_long(return_value, "ifdescription", 0); } if (body->id) { add_property_long(return_value, "ifid", 1); - add_property_string(return_value, "id", body->id, 1); + add_property_string(return_value, "id", body->id); } else { add_property_long(return_value, "ifid", 0); } @@ -3330,7 +3330,7 @@ PHP_FUNCTION(imap_bodystruct) #ifdef IMAP41 if (body->disposition.type) { add_property_long(return_value, "ifdisposition", 1); - add_property_string(return_value, "disposition", body->disposition.type, 1); + add_property_string(return_value, "disposition", body->disposition.type); } else { add_property_long(return_value, "ifdisposition", 0); } @@ -3343,8 +3343,8 @@ PHP_FUNCTION(imap_bodystruct) do { MAKE_STD_ZVAL(dparam); object_init(dparam); - add_property_string(dparam, "attribute", dpar->attribute, 1); - add_property_string(dparam, "value", dpar->value, 1); + add_property_string(dparam, "attribute", dpar->attribute); + add_property_string(dparam, "value", dpar->value); add_next_index_object(dparametres, dparam TSRMLS_CC); } while ((dpar = dpar->next)); add_assoc_object(return_value, "dparameters", dparametres TSRMLS_CC); @@ -3362,10 +3362,10 @@ PHP_FUNCTION(imap_bodystruct) MAKE_STD_ZVAL(param); object_init(param); if (par->attribute) { - add_property_string(param, "attribute", par->attribute, 1); + add_property_string(param, "attribute", par->attribute); } if (par->value) { - add_property_string(param, "value", par->value, 1); + add_property_string(param, "value", par->value); } add_next_index_object(parametres, param TSRMLS_CC); @@ -3421,33 +3421,37 @@ PHP_FUNCTION(imap_fetch_overview) MAKE_STD_ZVAL(myoverview); object_init(myoverview); if (env->subject) { - add_property_string(myoverview, "subject", env->subject, 1); + add_property_string(myoverview, "subject", env->subject); } if (env->from) { env->from->next=NULL; address =_php_rfc822_write_address(env->from TSRMLS_CC); if (address) { - add_property_string(myoverview, "from", address, 0); + // TODO: avoid reallocation ??? + add_property_string(myoverview, "from", address); + efree(address); } } if (env->to) { env->to->next = NULL; address = _php_rfc822_write_address(env->to TSRMLS_CC); if (address) { - add_property_string(myoverview, "to", address, 0); + // TODO: avoid reallocation ??? + add_property_string(myoverview, "to", address); + efree(address); } } if (env->date) { - add_property_string(myoverview, "date", env->date, 1); + add_property_string(myoverview, "date", env->date); } if (env->message_id) { - add_property_string(myoverview, "message_id", env->message_id, 1); + add_property_string(myoverview, "message_id", env->message_id); } if (env->references) { - add_property_string(myoverview, "references", env->references, 1); + add_property_string(myoverview, "references", env->references); } if (env->in_reply_to) { - add_property_string(myoverview, "in_reply_to", env->in_reply_to, 1); + add_property_string(myoverview, "in_reply_to", env->in_reply_to); } add_property_long(myoverview, "size", elt->rfc822_size); add_property_long(myoverview, "uid", mail_uid(imap_le_struct->imap_stream, i)); @@ -4147,7 +4151,7 @@ PHP_FUNCTION(imap_alerts) cur = IMAPG(imap_alertstack); while (cur != NIL) { - add_next_index_string(return_value, cur->LTEXT, 1); + add_next_index_string(return_value, cur->LTEXT); cur = cur->next; } mail_free_stringlist(&IMAPG(imap_alertstack)); @@ -4174,7 +4178,7 @@ PHP_FUNCTION(imap_errors) cur = IMAPG(imap_errorstack); while (cur != NIL) { - add_next_index_string(return_value, cur->LTEXT, 1); + add_next_index_string(return_value, cur->LTEXT); cur = cur->next; } mail_free_errorlist(&IMAPG(imap_errorstack)); @@ -4238,8 +4242,8 @@ PHP_FUNCTION(imap_mime_header_decode) text[charset_token - offset] = 0x00; MAKE_STD_ZVAL(myobject); object_init(myobject); - add_property_string(myobject, "charset", "default", 1); - add_property_string(myobject, "text", text, 1); + add_property_string(myobject, "charset", "default"); + add_property_string(myobject, "text", text); zend_hash_next_index_insert(Z_ARRVAL_P(return_value), (void *)&myobject, sizeof(zval *), NULL); } if ((encoding_token = (long)php_memnstr(&string[charset_token+2], "?", 1, string+end))) { /* Find token for encoding */ @@ -4265,8 +4269,8 @@ PHP_FUNCTION(imap_mime_header_decode) } MAKE_STD_ZVAL(myobject); object_init(myobject); - add_property_string(myobject, "charset", charset, 1); - add_property_string(myobject, "text", decode, 1); + add_property_string(myobject, "charset", charset); + add_property_string(myobject, "text", decode); zend_hash_next_index_insert(Z_ARRVAL_P(return_value), (void *)&myobject, sizeof(zval *), NULL); /* only free decode if it was allocated by rfc822_qprint or rfc822_base64 */ @@ -4295,8 +4299,8 @@ PHP_FUNCTION(imap_mime_header_decode) text[end - charset_token] = 0x00; MAKE_STD_ZVAL(myobject); object_init(myobject); - add_property_string(myobject, "charset", "default", 1); - add_property_string(myobject, "text", text, 1); + add_property_string(myobject, "charset", "default"); + add_property_string(myobject, "text", text); zend_hash_next_index_insert(Z_ARRVAL_P(return_value), (void *)&myobject, sizeof(zval *), NULL); offset = end; /* We have reached the end of the string. */ @@ -4432,10 +4436,10 @@ static char* _php_imap_parse_address (ADDRESS *addresslist, zval *paddress TSRML do { MAKE_STD_ZVAL(tmpvals); object_init(tmpvals); - if (addresstmp->personal) add_property_string(tmpvals, "personal", addresstmp->personal, 1); - if (addresstmp->adl) add_property_string(tmpvals, "adl", addresstmp->adl, 1); - if (addresstmp->mailbox) add_property_string(tmpvals, "mailbox", addresstmp->mailbox, 1); - if (addresstmp->host) add_property_string(tmpvals, "host", addresstmp->host, 1); + if (addresstmp->personal) add_property_string(tmpvals, "personal", addresstmp->personal); + if (addresstmp->adl) add_property_string(tmpvals, "adl", addresstmp->adl); + if (addresstmp->mailbox) add_property_string(tmpvals, "mailbox", addresstmp->mailbox); + if (addresstmp->host) add_property_string(tmpvals, "host", addresstmp->host); add_next_index_object(paddress, tmpvals TSRMLS_CC); } while ((addresstmp = addresstmp->next)); return fulladdress; @@ -4451,23 +4455,25 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) object_init(myzvalue); - if (en->remail) add_property_string(myzvalue, "remail", en->remail, 1); - if (en->date) add_property_string(myzvalue, "date", en->date, 1); - if (en->date) add_property_string(myzvalue, "Date", en->date, 1); - if (en->subject) add_property_string(myzvalue, "subject", en->subject, 1); - if (en->subject) add_property_string(myzvalue, "Subject", en->subject, 1); - if (en->in_reply_to) add_property_string(myzvalue, "in_reply_to", en->in_reply_to, 1); - if (en->message_id) add_property_string(myzvalue, "message_id", en->message_id, 1); - if (en->newsgroups) add_property_string(myzvalue, "newsgroups", en->newsgroups, 1); - if (en->followup_to) add_property_string(myzvalue, "followup_to", en->followup_to, 1); - if (en->references) add_property_string(myzvalue, "references", en->references, 1); + if (en->remail) add_property_string(myzvalue, "remail", en->remail); + if (en->date) add_property_string(myzvalue, "date", en->date); + if (en->date) add_property_string(myzvalue, "Date", en->date); + if (en->subject) add_property_string(myzvalue, "subject", en->subject); + if (en->subject) add_property_string(myzvalue, "Subject", en->subject); + if (en->in_reply_to) add_property_string(myzvalue, "in_reply_to", en->in_reply_to); + if (en->message_id) add_property_string(myzvalue, "message_id", en->message_id); + if (en->newsgroups) add_property_string(myzvalue, "newsgroups", en->newsgroups); + if (en->followup_to) add_property_string(myzvalue, "followup_to", en->followup_to); + if (en->references) add_property_string(myzvalue, "references", en->references); if (en->to) { MAKE_STD_ZVAL(paddress); array_init(paddress); fulladdress = _php_imap_parse_address(en->to, paddress TSRMLS_CC); if (fulladdress) { - add_property_string(myzvalue, "toaddress", fulladdress, 0); + // TODO: avoid reallocation ??? + add_property_string(myzvalue, "toaddress", fulladdress); + efree(fulladdress); } add_assoc_object(myzvalue, "to", paddress TSRMLS_CC); } @@ -4477,7 +4483,9 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) array_init(paddress); fulladdress = _php_imap_parse_address(en->from, paddress TSRMLS_CC); if (fulladdress) { - add_property_string(myzvalue, "fromaddress", fulladdress, 0); + // TODO: avoid reallocation ??? + add_property_string(myzvalue, "fromaddress", fulladdress); + efree(fulladdress); } add_assoc_object(myzvalue, "from", paddress TSRMLS_CC); } @@ -4487,7 +4495,9 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) array_init(paddress); fulladdress = _php_imap_parse_address(en->cc, paddress TSRMLS_CC); if (fulladdress) { - add_property_string(myzvalue, "ccaddress", fulladdress, 0); + // TODO: avoid reallocation ??? + add_property_string(myzvalue, "ccaddress", fulladdress); + efree(fulladdress); } add_assoc_object(myzvalue, "cc", paddress TSRMLS_CC); } @@ -4497,7 +4507,9 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) array_init(paddress); fulladdress = _php_imap_parse_address(en->bcc, paddress TSRMLS_CC); if (fulladdress) { - add_property_string(myzvalue, "bccaddress", fulladdress, 0); + // TODO: avoid reallocation ??? + add_property_string(myzvalue, "bccaddress", fulladdress); + efree(fulladdress); } add_assoc_object(myzvalue, "bcc", paddress TSRMLS_CC); } @@ -4507,7 +4519,9 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) array_init(paddress); fulladdress = _php_imap_parse_address(en->reply_to, paddress TSRMLS_CC); if (fulladdress) { - add_property_string(myzvalue, "reply_toaddress", fulladdress, 0); + // TODO: avoid reallocation ??? + add_property_string(myzvalue, "reply_toaddress", fulladdress); + efree(fulladdress); } add_assoc_object(myzvalue, "reply_to", paddress TSRMLS_CC); } @@ -4517,7 +4531,9 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) array_init(paddress); fulladdress = _php_imap_parse_address(en->sender, paddress TSRMLS_CC); if (fulladdress) { - add_property_string(myzvalue, "senderaddress", fulladdress, 0); + // TODO: avoid reallocation ??? + add_property_string(myzvalue, "senderaddress", fulladdress); + efree(fulladdress); } add_assoc_object(myzvalue, "sender", paddress TSRMLS_CC); } @@ -4527,7 +4543,9 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) array_init(paddress); fulladdress = _php_imap_parse_address(en->return_path, paddress TSRMLS_CC); if (fulladdress) { - add_property_string(myzvalue, "return_pathaddress", fulladdress, 0); + // TODO: avoid reallocation ??? + add_property_string(myzvalue, "return_pathaddress", fulladdress); + efree(fulladdress); } add_assoc_object(myzvalue, "return_path", paddress TSRMLS_CC); } @@ -4552,21 +4570,21 @@ void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC) if (body->subtype) { add_property_long(arg, "ifsubtype", 1); - add_property_string(arg, "subtype", body->subtype, 1); + add_property_string(arg, "subtype", body->subtype); } else { add_property_long(arg, "ifsubtype", 0); } if (body->description) { add_property_long(arg, "ifdescription", 1); - add_property_string(arg, "description", body->description, 1); + add_property_string(arg, "description", body->description); } else { add_property_long(arg, "ifdescription", 0); } if (body->id) { add_property_long(arg, "ifid", 1); - add_property_string(arg, "id", body->id, 1); + add_property_string(arg, "id", body->id); } else { add_property_long(arg, "ifid", 0); } @@ -4582,7 +4600,7 @@ void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC) #ifdef IMAP41 if (body->disposition.type) { add_property_long(arg, "ifdisposition", 1); - add_property_string(arg, "disposition", body->disposition.type, 1); + add_property_string(arg, "disposition", body->disposition.type); } else { add_property_long(arg, "ifdisposition", 0); } @@ -4595,8 +4613,8 @@ void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC) do { MAKE_STD_ZVAL(dparam); object_init(dparam); - add_property_string(dparam, "attribute", dpar->attribute, 1); - add_property_string(dparam, "value", dpar->value, 1); + add_property_string(dparam, "attribute", dpar->attribute); + add_property_string(dparam, "value", dpar->value); add_next_index_object(dparametres, dparam TSRMLS_CC); } while ((dpar = dpar->next)); add_assoc_object(arg, "dparameters", dparametres TSRMLS_CC); @@ -4614,10 +4632,10 @@ void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC) MAKE_STD_ZVAL(param); object_init(param); if (par->attribute) { - add_property_string(param, "attribute", par->attribute, 1); + add_property_string(param, "attribute", par->attribute); } if (par->value) { - add_property_string(param, "value", par->value, 1); + add_property_string(param, "value", par->value); } add_next_index_object(parametres, param TSRMLS_CC); -- cgit v1.2.1 From 17b98b6379fdae509f56961770793f992e30f911 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Mon, 16 Jun 2014 14:59:03 +0800 Subject: Refactoring imap (in progress) --- ext/imap/php_imap.c | 729 +++++++++++++++++++++++++--------------------------- 1 file changed, 346 insertions(+), 383 deletions(-) (limited to 'ext/imap/php_imap.c') diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index 876be777a8..42e104e4eb 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -598,7 +598,7 @@ static int le_imap; /* {{{ mail_close_it */ -static void mail_close_it(zend_rsrc_list_entry *rsrc TSRMLS_DC) +static void mail_close_it(zend_resource *rsrc TSRMLS_DC) { pils *imap_le_struct = (pils *)rsrc->ptr; @@ -622,7 +622,7 @@ static void mail_close_it(zend_rsrc_list_entry *rsrc TSRMLS_DC) /* {{{ add_assoc_object */ -static int add_assoc_object(zval *arg, char *key, zval *tmp TSRMLS_DC) +static zval *add_assoc_object(zval *arg, char *key, zval *tmp TSRMLS_DC) { HashTable *symtable; @@ -631,13 +631,13 @@ static int add_assoc_object(zval *arg, char *key, zval *tmp TSRMLS_DC) } else { symtable = Z_ARRVAL_P(arg); } - return zend_hash_update(symtable, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL); + return zend_hash_str_update(symtable, key, strlen(key), tmp); } /* }}} */ /* {{{ add_next_index_object */ -static inline int add_next_index_object(zval *arg, zval *tmp TSRMLS_DC) +static inline zval *add_next_index_object(zval *arg, zval *tmp TSRMLS_DC) { HashTable *symtable; @@ -647,7 +647,7 @@ static inline int add_next_index_object(zval *arg, zval *tmp TSRMLS_DC) symtable = Z_ARRVAL_P(arg); } - return zend_hash_next_index_insert(symtable, (void *) &tmp, sizeof(zval *), NULL); + return zend_hash_next_index_insert(symtable, tmp); } /* }}} */ @@ -759,25 +759,24 @@ void mail_free_messagelist(MESSAGELIST **msglist, MESSAGELIST **tail) void mail_getquota(MAILSTREAM *stream, char *qroot, QUOTALIST *qlist) { - zval *t_map, *return_value; + zval t_map, *return_value; TSRMLS_FETCH(); return_value = *IMAPG(quota_return); /* put parsing code here */ for(; qlist; qlist = qlist->next) { - MAKE_STD_ZVAL(t_map); - array_init(t_map); + array_init(&t_map); if (strncmp(qlist->name, "STORAGE", 7) == 0) { /* this is to add backwards compatibility */ - add_assoc_long_ex(return_value, "usage", sizeof("usage"), qlist->usage); - add_assoc_long_ex(return_value, "limit", sizeof("limit"), qlist->limit); + add_assoc_long_ex(return_value, "usage", sizeof("usage") - 1, qlist->usage); + add_assoc_long_ex(return_value, "limit", sizeof("limit") - 1, qlist->limit); } - add_assoc_long_ex(t_map, "usage", sizeof("usage"), qlist->usage); - add_assoc_long_ex(t_map, "limit", sizeof("limit"), qlist->limit); - add_assoc_zval_ex(return_value, qlist->name, strlen(qlist->name)+1, t_map); + add_assoc_long_ex(&t_map, "usage", sizeof("usage") - 1, qlist->usage); + add_assoc_long_ex(&t_map, "limit", sizeof("limit") - 1, qlist->limit); + add_assoc_zval_ex(return_value, qlist->name, strlen(qlist->name), &t_map); } } /* }}} */ @@ -1169,29 +1168,29 @@ static void php_imap_do_open(INTERNAL_FUNCTION_PARAMETERS, int persistent) } if (params) { - zval **disabled_auth_method; + zval *disabled_auth_method; - if (zend_hash_find(HASH_OF(params), "DISABLE_AUTHENTICATOR", sizeof("DISABLE_AUTHENTICATOR"), (void **)&disabled_auth_method) == SUCCESS) { - switch (Z_TYPE_PP(disabled_auth_method)) { + if ((disabled_auth_method = zend_hash_str_find(HASH_OF(params), "DISABLE_AUTHENTICATOR", sizeof("DISABLE_AUTHENTICATOR") - 1)) != NULL) { + switch (Z_TYPE_P(disabled_auth_method)) { case IS_STRING: - if (Z_STRLEN_PP(disabled_auth_method) > 1) { - mail_parameters (NIL, DISABLE_AUTHENTICATOR, (void *)Z_STRVAL_PP(disabled_auth_method)); + if (Z_STRLEN_P(disabled_auth_method) > 1) { + mail_parameters(NIL, DISABLE_AUTHENTICATOR, (void *)Z_STRVAL_P(disabled_auth_method)); } break; case IS_ARRAY: { - zval **z_auth_method; + zval *z_auth_method; int i; - int nelems = zend_hash_num_elements(Z_ARRVAL_PP(disabled_auth_method)); + int nelems = zend_hash_num_elements(Z_ARRVAL_P(disabled_auth_method)); if (nelems == 0 ) { break; } for (i = 0; i < nelems; i++) { - if (zend_hash_index_find(Z_ARRVAL_PP(disabled_auth_method), i, (void **) &z_auth_method) == SUCCESS) { - if (Z_TYPE_PP(z_auth_method) == IS_STRING) { - if (Z_STRLEN_PP(z_auth_method) > 1) { - mail_parameters (NIL, DISABLE_AUTHENTICATOR, (void *)Z_STRVAL_PP(z_auth_method)); + if ((z_auth_method = zend_hash_index_find(Z_ARRVAL_P(disabled_auth_method), i)) != NULL) { + if (Z_TYPE_P(z_auth_method) == IS_STRING) { + if (Z_STRLEN_P(z_auth_method) > 1) { + mail_parameters(NIL, DISABLE_AUTHENTICATOR, (void *)Z_STRVAL_P(z_auth_method)); } } else { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid argument, expect string or array of strings"); @@ -1277,7 +1276,7 @@ PHP_FUNCTION(imap_reopen) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if (options) { flags = options; @@ -1299,7 +1298,7 @@ PHP_FUNCTION(imap_reopen) imap_le_struct->imap_stream = mail_open(imap_le_struct->imap_stream, mailbox, flags); if (imap_le_struct->imap_stream == NIL) { - zend_list_delete(Z_RESVAL_P(streamind)); + zend_list_delete(Z_RES_P(streamind)); php_error_docref(NULL TSRMLS_CC, E_WARNING, "Couldn't re-open stream"); RETURN_FALSE; } @@ -1316,8 +1315,7 @@ PHP_FUNCTION(imap_append) int folder_len, message_len, internal_date_len = 0, flags_len = 0; pils *imap_le_struct; STRING st; - char* regex = "/[0-3][0-9]-((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))-[0-9]{4} [0-2][0-9]:[0-5][0-9]:[0-5][0-9] [+-][0-9]{4}/"; - const int regex_len = strlen(regex); + zend_string* regex; pcre_cache_entry *pce; /* Compiled regex */ zval *subpats = NULL; /* Parts (not used) */ long regex_flags = 0; /* Flags (not used) */ @@ -1328,12 +1326,16 @@ PHP_FUNCTION(imap_append) return; } + regex = STR_INIT("/[0-3][0-9]-((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))-[0-9]{4} [0-2][0-9]:[0-5][0-9]:[0-5][0-9] [+-][0-9]{4}/", sizeof("/[0-3][0-9]-((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))-[0-9]{4} [0-2][0-9]:[0-5][0-9]:[0-5][0-9] [+-][0-9]{4}/") - 1, 0); + if (internal_date) { /* Make sure the given internal_date string matches the RFC specifiedformat */ - if ((pce = pcre_get_compiled_regex_cache(regex, regex_len TSRMLS_CC))== NULL) { + if ((pce = pcre_get_compiled_regex_cache(regex TSRMLS_CC))== NULL) { + STR_FREE(regex); RETURN_FALSE; } + STR_FREE(regex); php_pcre_match_impl(pce, internal_date, internal_date_len, return_value, subpats, global, 0, regex_flags, start_offset TSRMLS_CC); @@ -1343,7 +1345,7 @@ PHP_FUNCTION(imap_append) } } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); INIT (&st, mail_string, (void *) message, message_len); @@ -1366,7 +1368,7 @@ PHP_FUNCTION(imap_num_msg) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); RETURN_LONG(imap_le_struct->imap_stream->nmsgs); } @@ -1383,7 +1385,7 @@ PHP_FUNCTION(imap_ping) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); RETURN_BOOL(mail_ping(imap_le_struct->imap_stream)); } @@ -1400,7 +1402,7 @@ PHP_FUNCTION(imap_num_recent) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); RETURN_LONG(imap_le_struct->imap_stream->recent); } @@ -1420,7 +1422,7 @@ PHP_FUNCTION(imap_get_quota) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); array_init(return_value); IMAPG(quota_return) = &return_value; @@ -1448,7 +1450,7 @@ PHP_FUNCTION(imap_get_quotaroot) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); array_init(return_value); IMAPG(quota_return) = &return_value; @@ -1478,7 +1480,7 @@ PHP_FUNCTION(imap_set_quota) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); limits.text.data = "STORAGE"; limits.text.size = mailbox_size; @@ -1501,7 +1503,7 @@ PHP_FUNCTION(imap_setacl) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); RETURN_BOOL(imap_setacl(imap_le_struct->imap_stream, mailbox, id, rights)); } @@ -1520,7 +1522,7 @@ PHP_FUNCTION(imap_getacl) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); /* initializing the special array for the return values */ array_init(return_value); @@ -1551,7 +1553,7 @@ PHP_FUNCTION(imap_expunge) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); mail_expunge (imap_le_struct->imap_stream); @@ -1576,7 +1578,7 @@ PHP_FUNCTION(imap_gc) RETURN_FALSE; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); mail_gc(imap_le_struct->imap_stream, flags); @@ -1597,7 +1599,7 @@ PHP_FUNCTION(imap_close) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if (argc == 2) { flags = options; @@ -1616,7 +1618,7 @@ PHP_FUNCTION(imap_close) imap_le_struct->flags = flags; } - zend_list_delete(Z_RESVAL_P(streamind)); + zend_list_close(Z_RES_P(streamind)); RETURN_TRUE; } @@ -1637,7 +1639,7 @@ PHP_FUNCTION(imap_headers) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); /* Initialize return array */ array_init(return_value); @@ -1692,7 +1694,7 @@ PHP_FUNCTION(imap_body) RETURN_FALSE; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if ((argc == 3) && (flags & FT_UID)) { /* This should be cached; if it causes an extra RTT to the @@ -1711,7 +1713,7 @@ PHP_FUNCTION(imap_body) if (body_len == 0) { RETVAL_EMPTY_STRING(); } else { - RETVAL_STRINGL(body, body_len, 1); + RETVAL_STRINGL(body, body_len); } } /* }}} */ @@ -1730,7 +1732,7 @@ PHP_FUNCTION(imap_mail_copy) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if (mail_copy_full(imap_le_struct->imap_stream, seq, folder, (argc == 4 ? options : NIL)) == T) { RETURN_TRUE; @@ -1755,7 +1757,7 @@ PHP_FUNCTION(imap_mail_move) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if (mail_copy_full(imap_le_struct->imap_stream, seq, folder, (argc == 4 ? (options | CP_MOVE) : CP_MOVE)) == T) { RETURN_TRUE; @@ -1778,7 +1780,7 @@ PHP_FUNCTION(imap_createmailbox) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if (mail_create(imap_le_struct->imap_stream, folder) == T) { RETURN_TRUE; @@ -1801,7 +1803,7 @@ PHP_FUNCTION(imap_renamemailbox) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if (mail_rename(imap_le_struct->imap_stream, old_mailbox, new_mailbox) == T) { RETURN_TRUE; @@ -1824,7 +1826,7 @@ PHP_FUNCTION(imap_deletemailbox) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if (mail_delete(imap_le_struct->imap_stream, folder) == T) { RETURN_TRUE; @@ -1848,7 +1850,7 @@ PHP_FUNCTION(imap_list) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); /* set flag for normal, old mailbox list */ IMAPG(folderlist_style) = FLIST_ARRAY; @@ -1876,7 +1878,7 @@ PHP_FUNCTION(imap_list) /* Author: CJH */ PHP_FUNCTION(imap_list_full) { - zval *streamind, *mboxob; + zval *streamind, mboxob; char *ref, *pat; int ref_len, pat_len; pils *imap_le_struct; @@ -1887,7 +1889,7 @@ PHP_FUNCTION(imap_list_full) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); /* set flag for new, improved array of objects mailbox list */ IMAPG(folderlist_style) = FLIST_OBJECT; @@ -1902,18 +1904,17 @@ PHP_FUNCTION(imap_list_full) delim = safe_emalloc(2, sizeof(char), 0); cur=IMAPG(imap_folder_objects); while (cur != NIL) { - MAKE_STD_ZVAL(mboxob); - object_init(mboxob); - add_property_string(mboxob, "name", cur->LTEXT); - add_property_long(mboxob, "attributes", cur->attributes); + object_init(&mboxob); + add_property_string(&mboxob, "name", cur->LTEXT); + add_property_long(&mboxob, "attributes", cur->attributes); #ifdef IMAP41 delim[0] = (char)cur->delimiter; delim[1] = 0; - add_property_string(mboxob, "delimiter", delim); + add_property_string(&mboxob, "delimiter", delim); #else - add_property_string(mboxob, "delimiter", cur->delimiter); + add_property_string(&mboxob, "delimiter", cur->delimiter); #endif - add_next_index_object(return_value, mboxob TSRMLS_CC); + add_next_index_object(return_value, &mboxob TSRMLS_CC); cur=cur->next; } mail_free_foblist(&IMAPG(imap_folder_objects), &IMAPG(imap_folder_objects_tail)); @@ -1936,7 +1937,7 @@ PHP_FUNCTION(imap_listscan) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); IMAPG(imap_folders) = NIL; mail_scan(imap_le_struct->imap_stream, ref, pat, content); @@ -1968,7 +1969,7 @@ PHP_FUNCTION(imap_check) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if (mail_ping (imap_le_struct->imap_stream) == NIL) { RETURN_FALSE; @@ -1992,20 +1993,20 @@ PHP_FUNCTION(imap_check) Mark a message for deletion */ PHP_FUNCTION(imap_delete) { - zval *streamind, **sequence; + zval *streamind, *sequence; pils *imap_le_struct; long flags = 0; int argc = ZEND_NUM_ARGS(); - if (zend_parse_parameters(argc TSRMLS_CC, "rZ|l", &streamind, &sequence, &flags) == FAILURE) { + if (zend_parse_parameters(argc TSRMLS_CC, "rz|l", &streamind, &sequence, &flags) == FAILURE) { return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); convert_to_string_ex(sequence); - mail_setflag_full(imap_le_struct->imap_stream, Z_STRVAL_PP(sequence), "\\DELETED", (argc == 3 ? flags : NIL)); + mail_setflag_full(imap_le_struct->imap_stream, Z_STRVAL_P(sequence), "\\DELETED", (argc == 3 ? flags : NIL)); RETVAL_TRUE; } /* }}} */ @@ -2014,20 +2015,20 @@ PHP_FUNCTION(imap_delete) Remove the delete flag from a message */ PHP_FUNCTION(imap_undelete) { - zval *streamind, **sequence; + zval *streamind, *sequence; long flags = 0; pils *imap_le_struct; int argc = ZEND_NUM_ARGS(); - if (zend_parse_parameters(argc TSRMLS_CC, "rZ|l", &streamind, &sequence, &flags) == FAILURE) { + if (zend_parse_parameters(argc TSRMLS_CC, "rz|l", &streamind, &sequence, &flags) == FAILURE) { return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); convert_to_string_ex(sequence); - mail_clearflag_full(imap_le_struct->imap_stream, Z_STRVAL_PP(sequence), "\\DELETED", (argc == 3 ? flags : NIL)); + mail_clearflag_full(imap_le_struct->imap_stream, Z_STRVAL_P(sequence), "\\DELETED", (argc == 3 ? flags : NIL)); RETVAL_TRUE; } /* }}} */ @@ -2049,7 +2050,7 @@ PHP_FUNCTION(imap_headerinfo) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if (argc >= 3) { if (fromlength < 0 || fromlength > MAILTMPLEN) { @@ -2155,7 +2156,7 @@ PHP_FUNCTION(imap_lsub) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); /* set flag for normal, old mailbox list */ IMAPG(folderlist_style) = FLIST_ARRAY; @@ -2182,7 +2183,7 @@ PHP_FUNCTION(imap_lsub) /* Author: CJH */ PHP_FUNCTION(imap_lsub_full) { - zval *streamind, *mboxob; + zval *streamind, mboxob; char *ref, *pat; int ref_len, pat_len; pils *imap_le_struct; @@ -2193,7 +2194,7 @@ PHP_FUNCTION(imap_lsub_full) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); /* set flag for new, improved array of objects list */ IMAPG(folderlist_style) = FLIST_OBJECT; @@ -2208,18 +2209,17 @@ PHP_FUNCTION(imap_lsub_full) delim = safe_emalloc(2, sizeof(char), 0); cur=IMAPG(imap_sfolder_objects); while (cur != NIL) { - MAKE_STD_ZVAL(mboxob); - object_init(mboxob); - add_property_string(mboxob, "name", cur->LTEXT); - add_property_long(mboxob, "attributes", cur->attributes); + object_init(&mboxob); + add_property_string(&mboxob, "name", cur->LTEXT); + add_property_long(&mboxob, "attributes", cur->attributes); #ifdef IMAP41 delim[0] = (char)cur->delimiter; delim[1] = 0; - add_property_string(mboxob, "delimiter", delim); + add_property_string(&mboxob, "delimiter", delim); #else - add_property_string(mboxob, "delimiter", cur->delimiter); + add_property_string(&mboxob, "delimiter", cur->delimiter); #endif - add_next_index_object(return_value, mboxob TSRMLS_CC); + add_next_index_object(return_value, &mboxob TSRMLS_CC); cur=cur->next; } mail_free_foblist (&IMAPG(imap_sfolder_objects), &IMAPG(imap_sfolder_objects_tail)); @@ -2241,7 +2241,7 @@ PHP_FUNCTION(imap_subscribe) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if (mail_subscribe(imap_le_struct->imap_stream, folder) == T) { RETURN_TRUE; @@ -2264,7 +2264,7 @@ PHP_FUNCTION(imap_unsubscribe) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if (mail_unsubscribe(imap_le_struct->imap_stream, folder) == T) { RETURN_TRUE; @@ -2293,7 +2293,7 @@ PHP_FUNCTION(imap_fetchstructure) RETURN_FALSE; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if (msgno < 1) { RETURN_FALSE; @@ -2343,7 +2343,7 @@ PHP_FUNCTION(imap_fetchbody) RETURN_FALSE; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if (argc < 4 || !(flags & FT_UID)) { /* only perform the check if the msgno is a message number and not a UID */ @@ -2356,7 +2356,7 @@ PHP_FUNCTION(imap_fetchbody) php_error_docref(NULL TSRMLS_CC, E_WARNING, "No body information available"); RETURN_FALSE; } - RETVAL_STRINGL(body, len, 1); + RETVAL_STRINGL(body, len); } /* }}} */ @@ -2383,7 +2383,7 @@ PHP_FUNCTION(imap_fetchmime) RETURN_FALSE; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if (argc < 4 || !(flags & FT_UID)) { /* only perform the check if the msgno is a message number and not a UID */ @@ -2396,7 +2396,7 @@ PHP_FUNCTION(imap_fetchmime) php_error_docref(NULL TSRMLS_CC, E_WARNING, "No body MIME information available"); RETURN_FALSE; } - RETVAL_STRINGL(body, len, 1); + RETVAL_STRINGL(body, len); } /* }}} */ @@ -2405,24 +2405,24 @@ PHP_FUNCTION(imap_fetchmime) Save a specific body section to a file */ PHP_FUNCTION(imap_savebody) { - zval *stream, **out; + zval *stream, *out; pils *imap_ptr = NULL; php_stream *writer = NULL; char *section = ""; int section_len = 0, close_stream = 1; long msgno, flags = 0; - if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rZl|sl", &stream, &out, &msgno, §ion, §ion_len, &flags)) { + if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rzl|sl", &stream, &out, &msgno, §ion, §ion_len, &flags)) { RETURN_FALSE; } - ZEND_FETCH_RESOURCE(imap_ptr, pils *, &stream, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_ptr, pils *, stream, -1, "imap", le_imap); if (!imap_ptr) { RETURN_FALSE; } - switch (Z_TYPE_PP(out)) + switch (Z_TYPE_P(out)) { case IS_LONG: case IS_RESOURCE: @@ -2432,7 +2432,7 @@ PHP_FUNCTION(imap_savebody) default: convert_to_string_ex(out); - writer = php_stream_open_wrapper(Z_STRVAL_PP(out), "wb", REPORT_ERRORS, NULL); + writer = php_stream_open_wrapper(Z_STRVAL_P(out), "wb", REPORT_ERRORS, NULL); break; } @@ -2472,7 +2472,7 @@ PHP_FUNCTION(imap_base64) RETURN_FALSE; } - RETVAL_STRINGL(decode, newlength, 1); + RETVAL_STRINGL(decode, newlength); fs_give((void**) &decode); } /* }}} */ @@ -2495,7 +2495,7 @@ PHP_FUNCTION(imap_qprint) RETURN_FALSE; } - RETVAL_STRINGL(decode, newlength, 1); + RETVAL_STRINGL(decode, newlength); fs_give((void**) &decode); } /* }}} */ @@ -2518,7 +2518,7 @@ PHP_FUNCTION(imap_8bit) RETURN_FALSE; } - RETVAL_STRINGL(decode, newlength, 1); + RETVAL_STRINGL(decode, newlength); fs_give((void**) &decode); } /* }}} */ @@ -2541,7 +2541,7 @@ PHP_FUNCTION(imap_binary) RETURN_FALSE; } - RETVAL_STRINGL(decode, newlength, 1); + RETVAL_STRINGL(decode, newlength); fs_give((void**) &decode); } /* }}} */ @@ -2559,7 +2559,7 @@ PHP_FUNCTION(imap_mailboxmsginfo) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); /* Initialize return object */ object_init(return_value); @@ -2626,7 +2626,8 @@ PHP_FUNCTION(imap_rfc822_write_address) string = _php_rfc822_write_address(addr TSRMLS_CC); if (string) { - RETVAL_STRING(string, 0); + RETVAL_STRING(string); + efree(string); } else { RETURN_FALSE; } @@ -2637,7 +2638,7 @@ PHP_FUNCTION(imap_rfc822_write_address) Parses an address string */ PHP_FUNCTION(imap_rfc822_parse_adrlist) { - zval *tovals; + zval tovals; char *str, *defaulthost, *str_copy; int str_len, defaulthost_len; ADDRESS *addresstmp; @@ -2659,21 +2660,20 @@ PHP_FUNCTION(imap_rfc822_parse_adrlist) addresstmp = env->to; if (addresstmp) do { - MAKE_STD_ZVAL(tovals); - object_init(tovals); + object_init(&tovals); if (addresstmp->mailbox) { - add_property_string(tovals, "mailbox", addresstmp->mailbox); + add_property_string(&tovals, "mailbox", addresstmp->mailbox); } if (addresstmp->host) { - add_property_string(tovals, "host", addresstmp->host); + add_property_string(&tovals, "host", addresstmp->host); } if (addresstmp->personal) { - add_property_string(tovals, "personal", addresstmp->personal); + add_property_string(&tovals, "personal", addresstmp->personal); } if (addresstmp->adl) { - add_property_string(tovals, "adl", addresstmp->adl); + add_property_string(&tovals, "adl", addresstmp->adl); } - add_next_index_object(return_value, tovals TSRMLS_CC); + add_next_index_object(return_value, &tovals TSRMLS_CC); } while ((addresstmp = addresstmp->next)); mail_free_envelope(&env); @@ -2704,7 +2704,7 @@ PHP_FUNCTION(imap_utf8) #else utf8_mime2text(&src, &dest, U8T_DECOMPOSE); #endif - RETVAL_STRINGL(dest.data, dest.size, 1); + RETVAL_STRINGL(dest.data, dest.size); if (dest.data) { free(dest.data); } @@ -2869,7 +2869,7 @@ PHP_FUNCTION(imap_utf7_decode) } #endif - RETURN_STRINGL(out, outlen, 0); + RETURN_STRINGL(out, outlen); } /* }}} */ @@ -2880,7 +2880,8 @@ PHP_FUNCTION(imap_utf7_encode) /* author: Andrew Skalski */ char *arg; const unsigned char *in, *inp, *endp; - unsigned char *out, *outp; + zend_string *out; + unsigned char *outp; unsigned char c; int arg_len, inlen, outlen; enum { @@ -2929,10 +2930,10 @@ PHP_FUNCTION(imap_utf7_encode) } /* allocate output buffer */ - out = emalloc(outlen + 1); + out = STR_ALLOC(outlen, 0); /* encode input string */ - outp = out; + outp = out->val; state = ST_NORMAL; endp = (inp = in) + inlen; while (inp < endp || state != ST_NORMAL) { @@ -2979,14 +2980,7 @@ PHP_FUNCTION(imap_utf7_encode) *outp = 0; -#if PHP_DEBUG - /* warn if we computed outlen incorrectly */ - if (outp - out != outlen) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "outp - out [%ld] != outlen [%d]", outp - out, outlen); - } -#endif - - RETURN_STRINGL(out, outlen, 0); + RETURN_STR(out); } /* }}} */ @@ -3019,7 +3013,7 @@ static void php_imap_mutf7(INTERNAL_FUNCTION_PARAMETERS, int mode) /* {{{ */ if (out == NIL) { RETURN_FALSE; } else { - RETURN_STRING((char *)out, 1); + RETURN_STRING((char *)out); } } /* }}} */ @@ -3055,7 +3049,7 @@ PHP_FUNCTION(imap_setflag_full) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); mail_setflag_full(imap_le_struct->imap_stream, sequence, flag, (flags ? flags : NIL)); RETURN_TRUE; @@ -3077,7 +3071,7 @@ PHP_FUNCTION(imap_clearflag_full) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); mail_clearflag_full(imap_le_struct->imap_stream, sequence, flag, (argc == 4 ? flags : NIL)); RETURN_TRUE; @@ -3103,7 +3097,7 @@ PHP_FUNCTION(imap_sort) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if (pgm > SORTSIZE) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unrecognized sort criteria"); @@ -3149,7 +3143,7 @@ PHP_FUNCTION(imap_sort) PHP_FUNCTION(imap_fetchheader) { zval *streamind; - long msgno, flags=0L; + long msgno, flags = 0L; pils *imap_le_struct; int msgindex, argc = ZEND_NUM_ARGS(); @@ -3162,7 +3156,7 @@ PHP_FUNCTION(imap_fetchheader) RETURN_FALSE; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if ((argc == 3) && (flags & FT_UID)) { /* This should be cached; if it causes an extra RTT to the @@ -3175,7 +3169,7 @@ PHP_FUNCTION(imap_fetchheader) PHP_IMAP_CHECK_MSGNO(msgindex); - RETVAL_STRING(mail_fetchheader_full(imap_le_struct->imap_stream, msgno, NIL, NIL, (argc == 3 ? flags : NIL)), 1); + RETVAL_STRING(mail_fetchheader_full(imap_le_struct->imap_stream, msgno, NIL, NIL, (argc == 3 ? flags : NIL))); } /* }}} */ @@ -3192,7 +3186,7 @@ PHP_FUNCTION(imap_uid) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); msgindex = msgno; if ((msgindex < 1) || ((unsigned) msgindex > imap_le_struct->imap_stream->nmsgs)) { @@ -3216,7 +3210,7 @@ PHP_FUNCTION(imap_msgno) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); RETURN_LONG(mail_msgno(imap_le_struct->imap_stream, msgno)); } @@ -3236,7 +3230,7 @@ PHP_FUNCTION(imap_status) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); object_init(return_value); @@ -3272,7 +3266,7 @@ PHP_FUNCTION(imap_bodystruct) char *section; int section_len; pils *imap_le_struct; - zval *parametres, *param, *dparametres, *dparam; + zval parametres, param, dparametres, dparam; PARAMETER *par, *dpar; BODY *body; @@ -3280,7 +3274,7 @@ PHP_FUNCTION(imap_bodystruct) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); if (!msg || msg < 1 || (unsigned) msg > imap_le_struct->imap_stream->nmsgs) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad message number"); @@ -3338,16 +3332,14 @@ PHP_FUNCTION(imap_bodystruct) if (body->disposition.parameter) { dpar = body->disposition.parameter; add_property_long(return_value, "ifdparameters", 1); - MAKE_STD_ZVAL(dparametres); - array_init(dparametres); + array_init(&dparametres); do { - MAKE_STD_ZVAL(dparam); - object_init(dparam); - add_property_string(dparam, "attribute", dpar->attribute); - add_property_string(dparam, "value", dpar->value); - add_next_index_object(dparametres, dparam TSRMLS_CC); + object_init(&dparam); + add_property_string(&dparam, "attribute", dpar->attribute); + add_property_string(&dparam, "value", dpar->value); + add_next_index_object(&dparametres, &dparam TSRMLS_CC); } while ((dpar = dpar->next)); - add_assoc_object(return_value, "dparameters", dparametres TSRMLS_CC); + add_assoc_object(return_value, "dparameters", &dparametres TSRMLS_CC); } else { add_property_long(return_value, "ifdparameters", 0); } @@ -3356,26 +3348,23 @@ PHP_FUNCTION(imap_bodystruct) if ((par = body->parameter)) { add_property_long(return_value, "ifparameters", 1); - MAKE_STD_ZVAL(parametres); - array_init(parametres); + array_init(¶metres); do { - MAKE_STD_ZVAL(param); - object_init(param); + object_init(¶m); if (par->attribute) { - add_property_string(param, "attribute", par->attribute); + add_property_string(¶m, "attribute", par->attribute); } if (par->value) { - add_property_string(param, "value", par->value); + add_property_string(¶m, "value", par->value); } - add_next_index_object(parametres, param TSRMLS_CC); + add_next_index_object(¶metres, ¶m TSRMLS_CC); } while ((par = par->next)); } else { - MAKE_STD_ZVAL(parametres); - object_init(parametres); + object_init(¶metres); add_property_long(return_value, "ifparameters", 0); } - add_assoc_object(return_value, "parameters", parametres TSRMLS_CC); + add_assoc_object(return_value, "parameters", ¶metres TSRMLS_CC); } /* }}} */ @@ -3388,7 +3377,7 @@ PHP_FUNCTION(imap_fetch_overview) char *sequence; int sequence_len; pils *imap_le_struct; - zval *myoverview; + zval myoverview; char *address; long status, flags = 0L; int argc = ZEND_NUM_ARGS(); @@ -3402,7 +3391,7 @@ PHP_FUNCTION(imap_fetch_overview) RETURN_FALSE; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); array_init(return_value); @@ -3418,17 +3407,16 @@ PHP_FUNCTION(imap_fetch_overview) for (i = 1; i <= imap_le_struct->imap_stream->nmsgs; i++) { if (((elt = mail_elt (imap_le_struct->imap_stream, i))->sequence) && (env = mail_fetch_structure (imap_le_struct->imap_stream, i, NIL, NIL))) { - MAKE_STD_ZVAL(myoverview); - object_init(myoverview); + object_init(&myoverview); if (env->subject) { - add_property_string(myoverview, "subject", env->subject); + add_property_string(&myoverview, "subject", env->subject); } if (env->from) { env->from->next=NULL; address =_php_rfc822_write_address(env->from TSRMLS_CC); if (address) { // TODO: avoid reallocation ??? - add_property_string(myoverview, "from", address); + add_property_string(&myoverview, "from", address); efree(address); } } @@ -3437,33 +3425,33 @@ PHP_FUNCTION(imap_fetch_overview) address = _php_rfc822_write_address(env->to TSRMLS_CC); if (address) { // TODO: avoid reallocation ??? - add_property_string(myoverview, "to", address); + add_property_string(&myoverview, "to", address); efree(address); } } if (env->date) { - add_property_string(myoverview, "date", env->date); + add_property_string(&myoverview, "date", env->date); } if (env->message_id) { - add_property_string(myoverview, "message_id", env->message_id); + add_property_string(&myoverview, "message_id", env->message_id); } if (env->references) { - add_property_string(myoverview, "references", env->references); + add_property_string(&myoverview, "references", env->references); } if (env->in_reply_to) { - add_property_string(myoverview, "in_reply_to", env->in_reply_to); + add_property_string(&myoverview, "in_reply_to", env->in_reply_to); } - add_property_long(myoverview, "size", elt->rfc822_size); - add_property_long(myoverview, "uid", mail_uid(imap_le_struct->imap_stream, i)); - add_property_long(myoverview, "msgno", i); - add_property_long(myoverview, "recent", elt->recent); - add_property_long(myoverview, "flagged", elt->flagged); - add_property_long(myoverview, "answered", elt->answered); - add_property_long(myoverview, "deleted", elt->deleted); - add_property_long(myoverview, "seen", elt->seen); - add_property_long(myoverview, "draft", elt->draft); - add_property_long(myoverview, "udate", mail_longdate(elt)); - add_next_index_object(return_value, myoverview TSRMLS_CC); + add_property_long(&myoverview, "size", elt->rfc822_size); + add_property_long(&myoverview, "uid", mail_uid(imap_le_struct->imap_stream, i)); + add_property_long(&myoverview, "msgno", i); + add_property_long(&myoverview, "recent", elt->recent); + add_property_long(&myoverview, "flagged", elt->flagged); + add_property_long(&myoverview, "answered", elt->answered); + add_property_long(&myoverview, "deleted", elt->deleted); + add_property_long(&myoverview, "seen", elt->seen); + add_property_long(&myoverview, "draft", elt->draft); + add_property_long(&myoverview, "udate", mail_longdate(elt)); + add_next_index_object(return_value, &myoverview TSRMLS_CC); } } } @@ -3475,9 +3463,8 @@ PHP_FUNCTION(imap_fetch_overview) PHP_FUNCTION(imap_mail_compose) { zval *envelope, *body; - char *key; - zval **data, **pvalue, **disp_data, **env_data; - ulong ind; + zend_string *key; + zval *data, *pvalue, *disp_data, *env_data; char *cookie = NIL; ENVELOPE *env; BODY *bod=NULL, *topbod=NULL; @@ -3491,181 +3478,175 @@ PHP_FUNCTION(imap_mail_compose) } #define PHP_RFC822_PARSE_ADRLIST(target, value) \ - str_copy = estrndup(Z_STRVAL_PP(value), Z_STRLEN_PP(value)); \ + str_copy = estrndup(Z_STRVAL_P(value), Z_STRLEN_P(value)); \ rfc822_parse_adrlist(target, str_copy, "NO HOST"); \ efree(str_copy); env = mail_newenvelope(); - if (zend_hash_find(Z_ARRVAL_P(envelope), "remail", sizeof("remail"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(envelope), "remail", sizeof("remail") - 1)) != NULL) { convert_to_string_ex(pvalue); - env->remail = cpystr(Z_STRVAL_PP(pvalue)); + env->remail = cpystr(Z_STRVAL_P(pvalue)); } - if (zend_hash_find(Z_ARRVAL_P(envelope), "return_path", sizeof("return_path"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(envelope), "return_path", sizeof("return_path") - 1)) != NULL) { convert_to_string_ex(pvalue); PHP_RFC822_PARSE_ADRLIST(&env->return_path, pvalue); } - if (zend_hash_find(Z_ARRVAL_P(envelope), "date", sizeof("date"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(envelope), "date", sizeof("date") - 1)) != NULL) { convert_to_string_ex(pvalue); - env->date = cpystr(Z_STRVAL_PP(pvalue)); + env->date = cpystr(Z_STRVAL_P(pvalue)); } - if (zend_hash_find(Z_ARRVAL_P(envelope), "from", sizeof("from"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(envelope), "from", sizeof("from") - 1)) != NULL) { convert_to_string_ex(pvalue); PHP_RFC822_PARSE_ADRLIST(&env->from, pvalue); } - if (zend_hash_find(Z_ARRVAL_P(envelope), "reply_to", sizeof("reply_to"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(envelope), "reply_to", sizeof("reply_to") - 1)) != NULL) { convert_to_string_ex(pvalue); PHP_RFC822_PARSE_ADRLIST(&env->reply_to, pvalue); } - if (zend_hash_find(Z_ARRVAL_P(envelope), "in_reply_to", sizeof("in_reply_to"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(envelope), "in_reply_to", sizeof("in_reply_to") - 1)) != NULL) { convert_to_string_ex(pvalue); - env->in_reply_to = cpystr(Z_STRVAL_PP(pvalue)); + env->in_reply_to = cpystr(Z_STRVAL_P(pvalue)); } - if (zend_hash_find(Z_ARRVAL_P(envelope), "subject", sizeof("subject"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(envelope), "subject", sizeof("subject") - 1)) != NULL) { convert_to_string_ex(pvalue); - env->subject = cpystr(Z_STRVAL_PP(pvalue)); + env->subject = cpystr(Z_STRVAL_P(pvalue)); } - if (zend_hash_find(Z_ARRVAL_P(envelope), "to", sizeof("to"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(envelope), "to", sizeof("to") - 1)) != NULL) { convert_to_string_ex(pvalue); PHP_RFC822_PARSE_ADRLIST(&env->to, pvalue); } - if (zend_hash_find(Z_ARRVAL_P(envelope), "cc", sizeof("cc"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(envelope), "cc", sizeof("cc") - 1)) != NULL) { convert_to_string_ex(pvalue); PHP_RFC822_PARSE_ADRLIST(&env->cc, pvalue); } - if (zend_hash_find(Z_ARRVAL_P(envelope), "bcc", sizeof("bcc"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(envelope), "bcc", sizeof("bcc") - 1)) != NULL) { convert_to_string_ex(pvalue); PHP_RFC822_PARSE_ADRLIST(&env->bcc, pvalue); } - if (zend_hash_find(Z_ARRVAL_P(envelope), "message_id", sizeof("message_id"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(envelope), "message_id", sizeof("message_id") - 1)) != NULL) { convert_to_string_ex(pvalue); - env->message_id=cpystr(Z_STRVAL_PP(pvalue)); + env->message_id=cpystr(Z_STRVAL_P(pvalue)); } - if (zend_hash_find(Z_ARRVAL_P(envelope), "custom_headers", sizeof("custom_headers"), (void **) &pvalue)== SUCCESS) { - if (Z_TYPE_PP(pvalue) == IS_ARRAY) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(envelope), "custom_headers", sizeof("custom_headers") - 1)) != NULL) { + if (Z_TYPE_P(pvalue) == IS_ARRAY) { custom_headers_param = tmp_param = NULL; - while (zend_hash_get_current_data(Z_ARRVAL_PP(pvalue), (void **) &env_data) == SUCCESS) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(pvalue), env_data) { custom_headers_param = mail_newbody_parameter(); convert_to_string_ex(env_data); - custom_headers_param->value = (char *) fs_get(Z_STRLEN_PP(env_data) + 1); + custom_headers_param->value = (char *) fs_get(Z_STRLEN_P(env_data) + 1); custom_headers_param->attribute = NULL; - memcpy(custom_headers_param->value, Z_STRVAL_PP(env_data), Z_STRLEN_PP(env_data) + 1); - zend_hash_move_forward(Z_ARRVAL_PP(pvalue)); + memcpy(custom_headers_param->value, Z_STRVAL_P(env_data), Z_STRLEN_P(env_data) + 1); custom_headers_param->next = tmp_param; tmp_param = custom_headers_param; - } + } ZEND_HASH_FOREACH_END(); } } zend_hash_internal_pointer_reset(Z_ARRVAL_P(body)); - if (zend_hash_get_current_data(Z_ARRVAL_P(body), (void **) &data) != SUCCESS || Z_TYPE_PP(data) != IS_ARRAY) { + if ((data = zend_hash_get_current_data(Z_ARRVAL_P(body))) == NULL || Z_TYPE_P(data) != IS_ARRAY) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "body parameter must be a non-empty array"); RETURN_FALSE; } - if (Z_TYPE_PP(data) == IS_ARRAY) { + if (Z_TYPE_P(data) == IS_ARRAY) { bod = mail_newbody(); topbod = bod; - if (zend_hash_find(Z_ARRVAL_PP(data), "type", sizeof("type"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "type", sizeof("type") - 1)) != NULL) { convert_to_long_ex(pvalue); - bod->type = (short) Z_LVAL_PP(pvalue); + bod->type = (short) Z_LVAL_P(pvalue); } - if (zend_hash_find(Z_ARRVAL_PP(data), "encoding", sizeof("encoding"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "encoding", sizeof("encoding") - 1)) != NULL) { convert_to_long_ex(pvalue); - bod->encoding = (short) Z_LVAL_PP(pvalue); + bod->encoding = (short) Z_LVAL_P(pvalue); } - if (zend_hash_find(Z_ARRVAL_PP(data), "charset", sizeof("charset"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "charset", sizeof("charset") - 1)) != NULL) { convert_to_string_ex(pvalue); tmp_param = mail_newbody_parameter(); - tmp_param->value = cpystr(Z_STRVAL_PP(pvalue)); + tmp_param->value = cpystr(Z_STRVAL_P(pvalue)); tmp_param->attribute = cpystr("CHARSET"); tmp_param->next = bod->parameter; bod->parameter = tmp_param; } - if (zend_hash_find(Z_ARRVAL_PP(data), "type.parameters", sizeof("type.parameters"), (void **) &pvalue)== SUCCESS) { - if(Z_TYPE_PP(pvalue) == IS_ARRAY) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "type.parameters", sizeof("type.parameters") - 1)) != NULL) { + if(Z_TYPE_P(pvalue) == IS_ARRAY) { disp_param = tmp_param = NULL; - while (zend_hash_get_current_data(Z_ARRVAL_PP(pvalue), (void **) &disp_data) == SUCCESS) { + ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(pvalue), key, disp_data) { disp_param = mail_newbody_parameter(); - zend_hash_get_current_key(Z_ARRVAL_PP(pvalue), &key, &ind, 0); - disp_param->attribute = cpystr(key); + disp_param->attribute = cpystr(key->val); convert_to_string_ex(disp_data); - disp_param->value = (char *) fs_get(Z_STRLEN_PP(disp_data) + 1); - memcpy(disp_param->value, Z_STRVAL_PP(disp_data), Z_STRLEN_PP(disp_data) + 1); - zend_hash_move_forward(Z_ARRVAL_PP(pvalue)); + disp_param->value = (char *) fs_get(Z_STRLEN_P(disp_data) + 1); + memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRLEN_P(disp_data) + 1); disp_param->next = tmp_param; tmp_param = disp_param; - } - bod->parameter = disp_param; + } ZEND_HASH_FOREACH_END(); + bod->parameter = disp_param; } } - if (zend_hash_find(Z_ARRVAL_PP(data), "subtype", sizeof("subtype"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "subtype", sizeof("subtype") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->subtype = cpystr(Z_STRVAL_PP(pvalue)); + bod->subtype = cpystr(Z_STRVAL_P(pvalue)); } - if (zend_hash_find(Z_ARRVAL_PP(data), "id", sizeof("id"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "id", sizeof("id") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->id = cpystr(Z_STRVAL_PP(pvalue)); + bod->id = cpystr(Z_STRVAL_P(pvalue)); } - if (zend_hash_find(Z_ARRVAL_PP(data), "description", sizeof("description"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "description", sizeof("description") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->description = cpystr(Z_STRVAL_PP(pvalue)); + bod->description = cpystr(Z_STRVAL_P(pvalue)); } - if (zend_hash_find(Z_ARRVAL_PP(data), "disposition.type", sizeof("disposition.type"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "disposition.type", sizeof("disposition.type") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->disposition.type = (char *) fs_get(Z_STRLEN_PP(pvalue) + 1); - memcpy(bod->disposition.type, Z_STRVAL_PP(pvalue), Z_STRLEN_PP(pvalue)+1); + bod->disposition.type = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); + memcpy(bod->disposition.type, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue)+1); } - if (zend_hash_find(Z_ARRVAL_PP(data), "disposition", sizeof("disposition"), (void **) &pvalue)== SUCCESS) { - if (Z_TYPE_PP(pvalue) == IS_ARRAY) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "disposition", sizeof("disposition") - 1)) != NULL) { + if (Z_TYPE_P(pvalue) == IS_ARRAY) { disp_param = tmp_param = NULL; - while (zend_hash_get_current_data(Z_ARRVAL_PP(pvalue), (void **) &disp_data) == SUCCESS) { + ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(pvalue), key, disp_data) { disp_param = mail_newbody_parameter(); - zend_hash_get_current_key(Z_ARRVAL_PP(pvalue), &key, &ind, 0); - disp_param->attribute = cpystr(key); + disp_param->attribute = cpystr(key->val); convert_to_string_ex(disp_data); - disp_param->value = (char *) fs_get(Z_STRLEN_PP(disp_data) + 1); - memcpy(disp_param->value, Z_STRVAL_PP(disp_data), Z_STRLEN_PP(disp_data) + 1); - zend_hash_move_forward(Z_ARRVAL_PP(pvalue)); + disp_param->value = (char *) fs_get(Z_STRLEN_P(disp_data) + 1); + memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRLEN_P(disp_data) + 1); disp_param->next = tmp_param; tmp_param = disp_param; - } + } ZEND_HASH_FOREACH_END(); bod->disposition.parameter = disp_param; } } - if (zend_hash_find(Z_ARRVAL_PP(data), "contents.data", sizeof("contents.data"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "contents.data", sizeof("contents.data") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->contents.text.data = (char *) fs_get(Z_STRLEN_PP(pvalue) + 1); - memcpy(bod->contents.text.data, Z_STRVAL_PP(pvalue), Z_STRLEN_PP(pvalue)+1); - bod->contents.text.size = Z_STRLEN_PP(pvalue); + bod->contents.text.data = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); + memcpy(bod->contents.text.data, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue)+1); + bod->contents.text.size = Z_STRLEN_P(pvalue); } else { bod->contents.text.data = (char *) fs_get(1); memcpy(bod->contents.text.data, "", 1); bod->contents.text.size = 0; } - if (zend_hash_find(Z_ARRVAL_PP(data), "lines", sizeof("lines"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "lines", sizeof("lines") - 1)) != NULL) { convert_to_long_ex(pvalue); - bod->size.lines = Z_LVAL_PP(pvalue); + bod->size.lines = Z_LVAL_P(pvalue); } - if (zend_hash_find(Z_ARRVAL_PP(data), "bytes", sizeof("bytes"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "bytes", sizeof("bytes") - 1)) != NULL) { convert_to_long_ex(pvalue); - bod->size.bytes = Z_LVAL_PP(pvalue); + bod->size.bytes = Z_LVAL_P(pvalue); } - if (zend_hash_find(Z_ARRVAL_PP(data), "md5", sizeof("md5"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "md5", sizeof("md5") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->md5 = cpystr(Z_STRVAL_PP(pvalue)); + bod->md5 = cpystr(Z_STRVAL_P(pvalue)); } } zend_hash_move_forward(Z_ARRVAL_P(body)); - - while (zend_hash_get_current_data(Z_ARRVAL_P(body), (void **) &data) == SUCCESS) { - if (Z_TYPE_PP(data) == IS_ARRAY) { + while ((data = zend_hash_get_current_data(Z_ARRVAL_P(body))) != NULL) { + if (Z_TYPE_P(data) == IS_ARRAY) { short type = -1; - if (zend_hash_find(Z_ARRVAL_PP(data), "type", sizeof("type"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "type", sizeof("type") - 1)) != NULL) { convert_to_long_ex(pvalue); - type = (short) Z_LVAL_PP(pvalue); + type = (short) Z_LVAL_P(pvalue); } if (!toppart) { @@ -3683,91 +3664,87 @@ PHP_FUNCTION(imap_mail_compose) bod->type = type; } - if (zend_hash_find(Z_ARRVAL_PP(data), "encoding", sizeof("encoding"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "encoding", sizeof("encoding") - 1)) != NULL) { convert_to_long_ex(pvalue); - bod->encoding = (short) Z_LVAL_PP(pvalue); + bod->encoding = (short) Z_LVAL_P(pvalue); } - if (zend_hash_find(Z_ARRVAL_PP(data), "charset", sizeof("charset"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "charset", sizeof("charset") - 1)) != NULL) { convert_to_string_ex(pvalue); tmp_param = mail_newbody_parameter(); - tmp_param->value = (char *) fs_get(Z_STRLEN_PP(pvalue) + 1); - memcpy(tmp_param->value, Z_STRVAL_PP(pvalue), Z_STRLEN_PP(pvalue) + 1); + tmp_param->value = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); + memcpy(tmp_param->value, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue) + 1); tmp_param->attribute = cpystr("CHARSET"); tmp_param->next = bod->parameter; bod->parameter = tmp_param; } - if (zend_hash_find(Z_ARRVAL_PP(data), "type.parameters", sizeof("type.parameters"), (void **) &pvalue)== SUCCESS) { - if(Z_TYPE_PP(pvalue) == IS_ARRAY) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "type.parameters", sizeof("type.parameters") - 1)) != NULL) { + if (Z_TYPE_P(pvalue) == IS_ARRAY) { disp_param = tmp_param = NULL; - while (zend_hash_get_current_data(Z_ARRVAL_PP(pvalue), (void **) &disp_data) == SUCCESS) { + ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(pvalue), key, disp_data) { disp_param = mail_newbody_parameter(); - zend_hash_get_current_key(Z_ARRVAL_PP(pvalue), &key, &ind, 0); - disp_param->attribute = cpystr(key); + disp_param->attribute = cpystr(key->val); convert_to_string_ex(disp_data); - disp_param->value = (char *) fs_get(Z_STRLEN_PP(disp_data) + 1); - memcpy(disp_param->value, Z_STRVAL_PP(disp_data), Z_STRLEN_PP(disp_data) + 1); - zend_hash_move_forward(Z_ARRVAL_PP(pvalue)); + disp_param->value = (char *)fs_get(Z_STRLEN_P(disp_data) + 1); + memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRLEN_P(disp_data) + 1); disp_param->next = tmp_param; tmp_param = disp_param; - } + } ZEND_HASH_FOREACH_END(); bod->parameter = disp_param; } } - if (zend_hash_find(Z_ARRVAL_PP(data), "subtype", sizeof("subtype"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "subtype", sizeof("subtype") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->subtype = cpystr(Z_STRVAL_PP(pvalue)); + bod->subtype = cpystr(Z_STRVAL_P(pvalue)); } - if (zend_hash_find(Z_ARRVAL_PP(data), "id", sizeof("id"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "id", sizeof("id") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->id = cpystr(Z_STRVAL_PP(pvalue)); + bod->id = cpystr(Z_STRVAL_P(pvalue)); } - if (zend_hash_find(Z_ARRVAL_PP(data), "description", sizeof("description"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "description", sizeof("description") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->description = cpystr(Z_STRVAL_PP(pvalue)); + bod->description = cpystr(Z_STRVAL_P(pvalue)); } - if (zend_hash_find(Z_ARRVAL_PP(data), "disposition.type", sizeof("disposition.type"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "disposition.type", sizeof("disposition.type") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->disposition.type = (char *) fs_get(Z_STRLEN_PP(pvalue) + 1); - memcpy(bod->disposition.type, Z_STRVAL_PP(pvalue), Z_STRLEN_PP(pvalue)+1); + bod->disposition.type = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); + memcpy(bod->disposition.type, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue)+1); } - if (zend_hash_find(Z_ARRVAL_PP(data), "disposition", sizeof("disposition"), (void **) &pvalue)== SUCCESS) { - if (Z_TYPE_PP(pvalue) == IS_ARRAY) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "disposition", sizeof("disposition") - 1)) != NULL) { + if (Z_TYPE_P(pvalue) == IS_ARRAY) { disp_param = tmp_param = NULL; - while (zend_hash_get_current_data(Z_ARRVAL_PP(pvalue), (void **) &disp_data) == SUCCESS) { + ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(pvalue), key, disp_data) { disp_param = mail_newbody_parameter(); - zend_hash_get_current_key(Z_ARRVAL_PP(pvalue), &key, &ind, 0); - disp_param->attribute = cpystr(key); + disp_param->attribute = cpystr(key->val); convert_to_string_ex(disp_data); - disp_param->value = (char *) fs_get(Z_STRLEN_PP(disp_data) + 1); - memcpy(disp_param->value, Z_STRVAL_PP(disp_data), Z_STRLEN_PP(disp_data) + 1); - zend_hash_move_forward(Z_ARRVAL_PP(pvalue)); + disp_param->value = (char *) fs_get(Z_STRLEN_P(disp_data) + 1); + memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRLEN_P(disp_data) + 1); disp_param->next = tmp_param; tmp_param = disp_param; - } + } ZEND_HASH_FOREACH_END(); bod->disposition.parameter = disp_param; } } - if (zend_hash_find(Z_ARRVAL_PP(data), "contents.data", sizeof("contents.data"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "contents.data", sizeof("contents.data") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->contents.text.data = (char *) fs_get(Z_STRLEN_PP(pvalue) + 1); - memcpy(bod->contents.text.data, Z_STRVAL_PP(pvalue), Z_STRLEN_PP(pvalue) + 1); - bod->contents.text.size = Z_STRLEN_PP(pvalue); + bod->contents.text.data = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); + memcpy(bod->contents.text.data, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue) + 1); + bod->contents.text.size = Z_STRLEN_P(pvalue); } else { bod->contents.text.data = (char *) fs_get(1); memcpy(bod->contents.text.data, "", 1); bod->contents.text.size = 0; } - if (zend_hash_find(Z_ARRVAL_PP(data), "lines", sizeof("lines"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "lines", sizeof("lines") - 1)) != NULL) { convert_to_long_ex(pvalue); - bod->size.lines = Z_LVAL_PP(pvalue); + bod->size.lines = Z_LVAL_P(pvalue); } - if (zend_hash_find(Z_ARRVAL_PP(data), "bytes", sizeof("bytes"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "bytes", sizeof("bytes") - 1)) != NULL) { convert_to_long_ex(pvalue); - bod->size.bytes = Z_LVAL_PP(pvalue); + bod->size.bytes = Z_LVAL_P(pvalue); } - if (zend_hash_find(Z_ARRVAL_PP(data), "md5", sizeof("md5"), (void **) &pvalue)== SUCCESS) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "md5", sizeof("md5") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->md5 = cpystr(Z_STRVAL_PP(pvalue)); + bod->md5 = cpystr(Z_STRVAL_P(pvalue)); } } zend_hash_move_forward(Z_ARRVAL_P(body)); @@ -3872,7 +3849,8 @@ PHP_FUNCTION(imap_mail_compose) goto done; } - RETVAL_STRING(tempstring, 0); + RETVAL_STRING(tempstring); + efree(tempstring); done: if (tmp) { efree(tmp); @@ -4102,7 +4080,7 @@ PHP_FUNCTION(imap_search) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); search_criteria = estrndup(criteria, criteria_len); @@ -4204,7 +4182,7 @@ PHP_FUNCTION(imap_last_error) cur = IMAPG(imap_errorstack); while (cur != NIL) { if (cur->next == NIL) { - RETURN_STRING(cur->LTEXT, 1); + RETURN_STRING(cur->LTEXT); } cur = cur->next; } @@ -4216,7 +4194,7 @@ PHP_FUNCTION(imap_last_error) PHP_FUNCTION(imap_mime_header_decode) { /* Author: Ted Parnefors */ - zval *myobject; + zval myobject; char *str, *string, *charset, encoding, *text, *decode; int str_len; long charset_token, encoding_token, end_token, end, offset=0, i; @@ -4240,11 +4218,10 @@ PHP_FUNCTION(imap_mime_header_decode) /* Retrieve unencoded data that is found before encoded data */ memcpy(text, &string[offset], charset_token-offset); text[charset_token - offset] = 0x00; - MAKE_STD_ZVAL(myobject); - object_init(myobject); - add_property_string(myobject, "charset", "default"); - add_property_string(myobject, "text", text); - zend_hash_next_index_insert(Z_ARRVAL_P(return_value), (void *)&myobject, sizeof(zval *), NULL); + object_init(&myobject); + add_property_string(&myobject, "charset", "default"); + add_property_string(&myobject, "text", text); + zend_hash_next_index_insert(Z_ARRVAL_P(return_value), &myobject); } if ((encoding_token = (long)php_memnstr(&string[charset_token+2], "?", 1, string+end))) { /* Find token for encoding */ encoding_token -= (long)string; @@ -4267,11 +4244,10 @@ PHP_FUNCTION(imap_mime_header_decode) zval_dtor(return_value); RETURN_FALSE; } - MAKE_STD_ZVAL(myobject); - object_init(myobject); - add_property_string(myobject, "charset", charset); - add_property_string(myobject, "text", decode); - zend_hash_next_index_insert(Z_ARRVAL_P(return_value), (void *)&myobject, sizeof(zval *), NULL); + object_init(&myobject); + add_property_string(&myobject, "charset", charset); + add_property_string(&myobject, "text", decode); + zend_hash_next_index_insert(Z_ARRVAL_P(return_value), &myobject); /* only free decode if it was allocated by rfc822_qprint or rfc822_base64 */ if (decode != text) { @@ -4297,11 +4273,10 @@ PHP_FUNCTION(imap_mime_header_decode) which rendered the remainder of the string impossible for us to decode. */ memcpy(text, &string[charset_token], end - charset_token); /* Extract unencoded text from string */ text[end - charset_token] = 0x00; - MAKE_STD_ZVAL(myobject); - object_init(myobject); - add_property_string(myobject, "charset", "default"); - add_property_string(myobject, "text", text); - zend_hash_next_index_insert(Z_ARRVAL_P(return_value), (void *)&myobject, sizeof(zval *), NULL); + object_init(&myobject); + add_property_string(&myobject, "charset", "default"); + add_property_string(&myobject, "text", text); + zend_hash_next_index_insert(Z_ARRVAL_P(return_value), &myobject); offset = end; /* We have reached the end of the string. */ } @@ -4329,6 +4304,7 @@ static long _php_rfc822_soutr (void *stream, char *string) static char* _php_rfc822_write_address(ADDRESS *addresslist TSRMLS_DC) { char address[MAILTMPLEN]; + char *str; smart_str ret = {0}; RFC822BUFFER buf; @@ -4340,7 +4316,11 @@ static char* _php_rfc822_write_address(ADDRESS *addresslist TSRMLS_DC) rfc822_output_address_list(&buf, addresslist, 0, NULL); rfc822_output_flush(&buf); smart_str_0(&ret); - return ret.c; + /* avoide dup? */ + str = estrndup(ret.s->val, ret.s->len); + smart_str_free(&ret); + + return str; } /* }}} */ @@ -4426,7 +4406,7 @@ static char* _php_imap_parse_address (ADDRESS *addresslist, zval *paddress TSRML { char *fulladdress; ADDRESS *addresstmp; - zval *tmpvals; + zval tmpvals; addresstmp = addresslist; @@ -4434,13 +4414,12 @@ static char* _php_imap_parse_address (ADDRESS *addresslist, zval *paddress TSRML addresstmp = addresslist; do { - MAKE_STD_ZVAL(tmpvals); - object_init(tmpvals); - if (addresstmp->personal) add_property_string(tmpvals, "personal", addresstmp->personal); - if (addresstmp->adl) add_property_string(tmpvals, "adl", addresstmp->adl); - if (addresstmp->mailbox) add_property_string(tmpvals, "mailbox", addresstmp->mailbox); - if (addresstmp->host) add_property_string(tmpvals, "host", addresstmp->host); - add_next_index_object(paddress, tmpvals TSRMLS_CC); + object_init(&tmpvals); + if (addresstmp->personal) add_property_string(&tmpvals, "personal", addresstmp->personal); + if (addresstmp->adl) add_property_string(&tmpvals, "adl", addresstmp->adl); + if (addresstmp->mailbox) add_property_string(&tmpvals, "mailbox", addresstmp->mailbox); + if (addresstmp->host) add_property_string(&tmpvals, "host", addresstmp->host); + add_next_index_object(paddress, &tmpvals TSRMLS_CC); } while ((addresstmp = addresstmp->next)); return fulladdress; } @@ -4450,7 +4429,7 @@ static char* _php_imap_parse_address (ADDRESS *addresslist, zval *paddress TSRML */ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) { - zval *paddress; + zval paddress; char *fulladdress=NULL; object_init(myzvalue); @@ -4467,87 +4446,80 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) if (en->references) add_property_string(myzvalue, "references", en->references); if (en->to) { - MAKE_STD_ZVAL(paddress); - array_init(paddress); - fulladdress = _php_imap_parse_address(en->to, paddress TSRMLS_CC); + array_init(&paddress); + fulladdress = _php_imap_parse_address(en->to, &paddress TSRMLS_CC); if (fulladdress) { // TODO: avoid reallocation ??? add_property_string(myzvalue, "toaddress", fulladdress); efree(fulladdress); } - add_assoc_object(myzvalue, "to", paddress TSRMLS_CC); + add_assoc_object(myzvalue, "to", &paddress TSRMLS_CC); } if (en->from) { - MAKE_STD_ZVAL(paddress); - array_init(paddress); - fulladdress = _php_imap_parse_address(en->from, paddress TSRMLS_CC); + array_init(&paddress); + fulladdress = _php_imap_parse_address(en->from, &paddress TSRMLS_CC); if (fulladdress) { // TODO: avoid reallocation ??? add_property_string(myzvalue, "fromaddress", fulladdress); efree(fulladdress); } - add_assoc_object(myzvalue, "from", paddress TSRMLS_CC); + add_assoc_object(myzvalue, "from", &paddress TSRMLS_CC); } if (en->cc) { - MAKE_STD_ZVAL(paddress); - array_init(paddress); - fulladdress = _php_imap_parse_address(en->cc, paddress TSRMLS_CC); + array_init(&paddress); + fulladdress = _php_imap_parse_address(en->cc, &paddress TSRMLS_CC); if (fulladdress) { // TODO: avoid reallocation ??? add_property_string(myzvalue, "ccaddress", fulladdress); efree(fulladdress); } - add_assoc_object(myzvalue, "cc", paddress TSRMLS_CC); + add_assoc_object(myzvalue, "cc", &paddress TSRMLS_CC); } if (en->bcc) { - MAKE_STD_ZVAL(paddress); - array_init(paddress); - fulladdress = _php_imap_parse_address(en->bcc, paddress TSRMLS_CC); + array_init(&paddress); + fulladdress = _php_imap_parse_address(en->bcc, &paddress TSRMLS_CC); if (fulladdress) { // TODO: avoid reallocation ??? add_property_string(myzvalue, "bccaddress", fulladdress); efree(fulladdress); } - add_assoc_object(myzvalue, "bcc", paddress TSRMLS_CC); + add_assoc_object(myzvalue, "bcc", &paddress TSRMLS_CC); } if (en->reply_to) { - MAKE_STD_ZVAL(paddress); - array_init(paddress); - fulladdress = _php_imap_parse_address(en->reply_to, paddress TSRMLS_CC); + array_init(&paddress); + fulladdress = _php_imap_parse_address(en->reply_to, &paddress TSRMLS_CC); if (fulladdress) { // TODO: avoid reallocation ??? add_property_string(myzvalue, "reply_toaddress", fulladdress); efree(fulladdress); } - add_assoc_object(myzvalue, "reply_to", paddress TSRMLS_CC); + add_assoc_object(myzvalue, "reply_to", &paddress TSRMLS_CC); } if (en->sender) { - MAKE_STD_ZVAL(paddress); - array_init(paddress); - fulladdress = _php_imap_parse_address(en->sender, paddress TSRMLS_CC); + array_init(&paddress); + fulladdress = _php_imap_parse_address(en->sender, &paddress TSRMLS_CC); if (fulladdress) { // TODO: avoid reallocation ??? add_property_string(myzvalue, "senderaddress", fulladdress); efree(fulladdress); } - add_assoc_object(myzvalue, "sender", paddress TSRMLS_CC); + add_assoc_object(myzvalue, "sender", &paddress TSRMLS_CC); } if (en->return_path) { - MAKE_STD_ZVAL(paddress); - array_init(paddress); - fulladdress = _php_imap_parse_address(en->return_path, paddress TSRMLS_CC); + array_init(&paddress); + fulladdress = _php_imap_parse_address(en->return_path, &paddress TSRMLS_CC); if (fulladdress) { // TODO: avoid reallocation ??? add_property_string(myzvalue, "return_pathaddress", fulladdress); efree(fulladdress); } - add_assoc_object(myzvalue, "return_path", paddress TSRMLS_CC); + add_assoc_object(myzvalue, "return_path", &paddress TSRMLS_CC); } } /* }}} */ @@ -4556,7 +4528,7 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) */ void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC) { - zval *parametres, *param, *dparametres, *dparam; + zval parametres, param, dparametres, dparam; PARAMETER *par, *dpar; PART *part; @@ -4608,16 +4580,14 @@ void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC) if (body->disposition.parameter) { dpar = body->disposition.parameter; add_property_long(arg, "ifdparameters", 1); - MAKE_STD_ZVAL(dparametres); - array_init(dparametres); + array_init(&dparametres); do { - MAKE_STD_ZVAL(dparam); - object_init(dparam); - add_property_string(dparam, "attribute", dpar->attribute); - add_property_string(dparam, "value", dpar->value); - add_next_index_object(dparametres, dparam TSRMLS_CC); + object_init(&dparam); + add_property_string(&dparam, "attribute", dpar->attribute); + add_property_string(&dparam, "value", dpar->value); + add_next_index_object(&dparametres, &dparam TSRMLS_CC); } while ((dpar = dpar->next)); - add_assoc_object(arg, "dparameters", dparametres TSRMLS_CC); + add_assoc_object(arg, "dparameters", &dparametres TSRMLS_CC); } else { add_property_long(arg, "ifdparameters", 0); } @@ -4626,50 +4596,43 @@ void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC) if ((par = body->parameter)) { add_property_long(arg, "ifparameters", 1); - MAKE_STD_ZVAL(parametres); - array_init(parametres); + array_init(¶metres); do { - MAKE_STD_ZVAL(param); - object_init(param); + object_init(¶m); if (par->attribute) { - add_property_string(param, "attribute", par->attribute); + add_property_string(¶m, "attribute", par->attribute); } if (par->value) { - add_property_string(param, "value", par->value); + add_property_string(¶m, "value", par->value); } - add_next_index_object(parametres, param TSRMLS_CC); + add_next_index_object(¶metres, ¶m TSRMLS_CC); } while ((par = par->next)); } else { - MAKE_STD_ZVAL(parametres); - object_init(parametres); + object_init(¶metres); add_property_long(arg, "ifparameters", 0); } - add_assoc_object(arg, "parameters", parametres TSRMLS_CC); + add_assoc_object(arg, "parameters", ¶metres TSRMLS_CC); /* multipart message ? */ if (body->type == TYPEMULTIPART) { - MAKE_STD_ZVAL(parametres); - array_init(parametres); + array_init(¶metres); for (part = body->CONTENT_PART; part; part = part->next) { - MAKE_STD_ZVAL(param); - object_init(param); - _php_imap_add_body(param, &part->body TSRMLS_CC); - add_next_index_object(parametres, param TSRMLS_CC); + object_init(¶m); + _php_imap_add_body(¶m, &part->body TSRMLS_CC); + add_next_index_object(¶metres, ¶m TSRMLS_CC); } - add_assoc_object(arg, "parts", parametres TSRMLS_CC); + add_assoc_object(arg, "parts", ¶metres TSRMLS_CC); } /* encapsulated message ? */ if ((body->type == TYPEMESSAGE) && (!strcasecmp(body->subtype, "rfc822"))) { body = body->CONTENT_MSG_BODY; - MAKE_STD_ZVAL(parametres); - array_init(parametres); - MAKE_STD_ZVAL(param); - object_init(param); - _php_imap_add_body(param, body TSRMLS_CC); - add_next_index_object(parametres, param TSRMLS_CC); - add_assoc_object(arg, "parts", parametres TSRMLS_CC); + array_init(¶metres); + object_init(¶m); + _php_imap_add_body(¶m, body TSRMLS_CC); + add_next_index_object(¶metres, ¶m TSRMLS_CC); + add_assoc_object(arg, "parts", ¶metres TSRMLS_CC); } } /* }}} */ @@ -4737,7 +4700,7 @@ PHP_FUNCTION(imap_thread) return; } - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); pgm = mail_criteria(criteria); top = mail_thread(imap_le_struct->imap_stream, "REFERENCES", NIL, pgm, flags); -- cgit v1.2.1 From 31faac3250b1d66e43ced4af7cbdb1fd15a44f83 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 8 Jul 2014 15:24:08 +0400 Subject: Fixed attempt to modify immutable array --- ext/imap/php_imap.c | 198 +++++++++++++++++++++++++++------------------------- 1 file changed, 101 insertions(+), 97 deletions(-) (limited to 'ext/imap/php_imap.c') diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index 42e104e4eb..fddcad5730 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -3472,6 +3472,7 @@ PHP_FUNCTION(imap_mail_compose) PARAMETER *param, *disp_param = NULL, *custom_headers_param = NULL, *tmp_param = NULL; char *tmp=NULL, *mystring=NULL, *t=NULL, *tempstring=NULL, *str_copy = NULL; int toppart = 0; + int first; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "aa", &envelope, &body) == FAILURE) { return; @@ -3543,106 +3544,105 @@ PHP_FUNCTION(imap_mail_compose) } } - zend_hash_internal_pointer_reset(Z_ARRVAL_P(body)); - if ((data = zend_hash_get_current_data(Z_ARRVAL_P(body))) == NULL || Z_TYPE_P(data) != IS_ARRAY) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "body parameter must be a non-empty array"); - RETURN_FALSE; - } + first = 1; + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(body), data) { + if (first) { + first = 0; - if (Z_TYPE_P(data) == IS_ARRAY) { - bod = mail_newbody(); - topbod = bod; + if (Z_TYPE_P(data) != IS_ARRAY) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "body parameter must be a non-empty array"); + RETURN_FALSE; + } - if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "type", sizeof("type") - 1)) != NULL) { - convert_to_long_ex(pvalue); - bod->type = (short) Z_LVAL_P(pvalue); - } - if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "encoding", sizeof("encoding") - 1)) != NULL) { - convert_to_long_ex(pvalue); - bod->encoding = (short) Z_LVAL_P(pvalue); - } - if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "charset", sizeof("charset") - 1)) != NULL) { - convert_to_string_ex(pvalue); - tmp_param = mail_newbody_parameter(); - tmp_param->value = cpystr(Z_STRVAL_P(pvalue)); - tmp_param->attribute = cpystr("CHARSET"); - tmp_param->next = bod->parameter; - bod->parameter = tmp_param; - } - if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "type.parameters", sizeof("type.parameters") - 1)) != NULL) { - if(Z_TYPE_P(pvalue) == IS_ARRAY) { - disp_param = tmp_param = NULL; - ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(pvalue), key, disp_data) { - disp_param = mail_newbody_parameter(); - disp_param->attribute = cpystr(key->val); - convert_to_string_ex(disp_data); - disp_param->value = (char *) fs_get(Z_STRLEN_P(disp_data) + 1); - memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRLEN_P(disp_data) + 1); - disp_param->next = tmp_param; - tmp_param = disp_param; - } ZEND_HASH_FOREACH_END(); - bod->parameter = disp_param; + bod = mail_newbody(); + topbod = bod; + + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "type", sizeof("type") - 1)) != NULL) { + convert_to_long_ex(pvalue); + bod->type = (short) Z_LVAL_P(pvalue); } - } - if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "subtype", sizeof("subtype") - 1)) != NULL) { - convert_to_string_ex(pvalue); - bod->subtype = cpystr(Z_STRVAL_P(pvalue)); - } - if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "id", sizeof("id") - 1)) != NULL) { - convert_to_string_ex(pvalue); - bod->id = cpystr(Z_STRVAL_P(pvalue)); - } - if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "description", sizeof("description") - 1)) != NULL) { - convert_to_string_ex(pvalue); - bod->description = cpystr(Z_STRVAL_P(pvalue)); - } - if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "disposition.type", sizeof("disposition.type") - 1)) != NULL) { - convert_to_string_ex(pvalue); - bod->disposition.type = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); - memcpy(bod->disposition.type, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue)+1); - } - if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "disposition", sizeof("disposition") - 1)) != NULL) { - if (Z_TYPE_P(pvalue) == IS_ARRAY) { - disp_param = tmp_param = NULL; - ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(pvalue), key, disp_data) { - disp_param = mail_newbody_parameter(); - disp_param->attribute = cpystr(key->val); - convert_to_string_ex(disp_data); - disp_param->value = (char *) fs_get(Z_STRLEN_P(disp_data) + 1); - memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRLEN_P(disp_data) + 1); - disp_param->next = tmp_param; - tmp_param = disp_param; - } ZEND_HASH_FOREACH_END(); - bod->disposition.parameter = disp_param; + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "encoding", sizeof("encoding") - 1)) != NULL) { + convert_to_long_ex(pvalue); + bod->encoding = (short) Z_LVAL_P(pvalue); } - } - if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "contents.data", sizeof("contents.data") - 1)) != NULL) { - convert_to_string_ex(pvalue); - bod->contents.text.data = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); - memcpy(bod->contents.text.data, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue)+1); - bod->contents.text.size = Z_STRLEN_P(pvalue); - } else { - bod->contents.text.data = (char *) fs_get(1); - memcpy(bod->contents.text.data, "", 1); - bod->contents.text.size = 0; - } - if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "lines", sizeof("lines") - 1)) != NULL) { - convert_to_long_ex(pvalue); - bod->size.lines = Z_LVAL_P(pvalue); - } - if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "bytes", sizeof("bytes") - 1)) != NULL) { - convert_to_long_ex(pvalue); - bod->size.bytes = Z_LVAL_P(pvalue); - } - if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "md5", sizeof("md5") - 1)) != NULL) { - convert_to_string_ex(pvalue); - bod->md5 = cpystr(Z_STRVAL_P(pvalue)); - } - } - - zend_hash_move_forward(Z_ARRVAL_P(body)); - while ((data = zend_hash_get_current_data(Z_ARRVAL_P(body))) != NULL) { - if (Z_TYPE_P(data) == IS_ARRAY) { + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "charset", sizeof("charset") - 1)) != NULL) { + convert_to_string_ex(pvalue); + tmp_param = mail_newbody_parameter(); + tmp_param->value = cpystr(Z_STRVAL_P(pvalue)); + tmp_param->attribute = cpystr("CHARSET"); + tmp_param->next = bod->parameter; + bod->parameter = tmp_param; + } + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "type.parameters", sizeof("type.parameters") - 1)) != NULL) { + if(Z_TYPE_P(pvalue) == IS_ARRAY) { + disp_param = tmp_param = NULL; + ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(pvalue), key, disp_data) { + disp_param = mail_newbody_parameter(); + disp_param->attribute = cpystr(key->val); + convert_to_string_ex(disp_data); + disp_param->value = (char *) fs_get(Z_STRLEN_P(disp_data) + 1); + memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRLEN_P(disp_data) + 1); + disp_param->next = tmp_param; + tmp_param = disp_param; + } ZEND_HASH_FOREACH_END(); + bod->parameter = disp_param; + } + } + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "subtype", sizeof("subtype") - 1)) != NULL) { + convert_to_string_ex(pvalue); + bod->subtype = cpystr(Z_STRVAL_P(pvalue)); + } + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "id", sizeof("id") - 1)) != NULL) { + convert_to_string_ex(pvalue); + bod->id = cpystr(Z_STRVAL_P(pvalue)); + } + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "description", sizeof("description") - 1)) != NULL) { + convert_to_string_ex(pvalue); + bod->description = cpystr(Z_STRVAL_P(pvalue)); + } + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "disposition.type", sizeof("disposition.type") - 1)) != NULL) { + convert_to_string_ex(pvalue); + bod->disposition.type = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); + memcpy(bod->disposition.type, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue)+1); + } + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "disposition", sizeof("disposition") - 1)) != NULL) { + if (Z_TYPE_P(pvalue) == IS_ARRAY) { + disp_param = tmp_param = NULL; + ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(pvalue), key, disp_data) { + disp_param = mail_newbody_parameter(); + disp_param->attribute = cpystr(key->val); + convert_to_string_ex(disp_data); + disp_param->value = (char *) fs_get(Z_STRLEN_P(disp_data) + 1); + memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRLEN_P(disp_data) + 1); + disp_param->next = tmp_param; + tmp_param = disp_param; + } ZEND_HASH_FOREACH_END(); + bod->disposition.parameter = disp_param; + } + } + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "contents.data", sizeof("contents.data") - 1)) != NULL) { + convert_to_string_ex(pvalue); + bod->contents.text.data = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); + memcpy(bod->contents.text.data, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue)+1); + bod->contents.text.size = Z_STRLEN_P(pvalue); + } else { + bod->contents.text.data = (char *) fs_get(1); + memcpy(bod->contents.text.data, "", 1); + bod->contents.text.size = 0; + } + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "lines", sizeof("lines") - 1)) != NULL) { + convert_to_long_ex(pvalue); + bod->size.lines = Z_LVAL_P(pvalue); + } + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "bytes", sizeof("bytes") - 1)) != NULL) { + convert_to_long_ex(pvalue); + bod->size.bytes = Z_LVAL_P(pvalue); + } + if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "md5", sizeof("md5") - 1)) != NULL) { + convert_to_string_ex(pvalue); + bod->md5 = cpystr(Z_STRVAL_P(pvalue)); + } + } else if (Z_TYPE_P(data) == IS_ARRAY) { short type = -1; if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "type", sizeof("type") - 1)) != NULL) { convert_to_long_ex(pvalue); @@ -3747,7 +3747,11 @@ PHP_FUNCTION(imap_mail_compose) bod->md5 = cpystr(Z_STRVAL_P(pvalue)); } } - zend_hash_move_forward(Z_ARRVAL_P(body)); + } ZEND_HASH_FOREACH_END(); + + if (first) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "body parameter must be a non-empty array"); + RETURN_FALSE; } if (bod && bod->type == TYPEMULTIPART && (!bod->nested.part || !bod->nested.part->next)) { -- cgit v1.2.1 From a08b7b7701d2669a8e242cdb015f81d21a0ccb52 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Wed, 13 Aug 2014 19:43:34 +0400 Subject: cleanup --- ext/imap/php_imap.c | 138 ++++++++++++++++++++++------------------------------ 1 file changed, 57 insertions(+), 81 deletions(-) (limited to 'ext/imap/php_imap.c') diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index fddcad5730..09295a87f3 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -76,8 +76,8 @@ MAILSTREAM DEFAULTPROTO; static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC); static void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC); -static char* _php_imap_parse_address(ADDRESS *addresslist, zval *paddress TSRMLS_DC); -static char* _php_rfc822_write_address(ADDRESS *addresslist TSRMLS_DC); +static zend_string* _php_imap_parse_address(ADDRESS *addresslist, zval *paddress TSRMLS_DC); +static zend_string* _php_rfc822_write_address(ADDRESS *addresslist TSRMLS_DC); /* the gets we use */ static char *php_mail_gets(readfn_t f, void *stream, unsigned long size, GETS_DATA *md); @@ -1482,7 +1482,7 @@ PHP_FUNCTION(imap_set_quota) ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); - limits.text.data = "STORAGE"; + limits.text.data = (unsigned char*)"STORAGE"; limits.text.size = mailbox_size; limits.next = NIL; @@ -1864,7 +1864,7 @@ PHP_FUNCTION(imap_list) array_init(return_value); cur=IMAPG(imap_folders); while (cur != NIL) { - add_next_index_string(return_value, cur->LTEXT); + add_next_index_string(return_value, (char*)cur->LTEXT); cur=cur->next; } mail_free_stringlist (&IMAPG(imap_folders)); @@ -1905,7 +1905,7 @@ PHP_FUNCTION(imap_list_full) cur=IMAPG(imap_folder_objects); while (cur != NIL) { object_init(&mboxob); - add_property_string(&mboxob, "name", cur->LTEXT); + add_property_string(&mboxob, "name", (char*)cur->LTEXT); add_property_long(&mboxob, "attributes", cur->attributes); #ifdef IMAP41 delim[0] = (char)cur->delimiter; @@ -1948,7 +1948,7 @@ PHP_FUNCTION(imap_listscan) array_init(return_value); cur=IMAPG(imap_folders); while (cur != NIL) { - add_next_index_string(return_value, cur->LTEXT); + add_next_index_string(return_value, (char*)cur->LTEXT); cur=cur->next; } mail_free_stringlist (&IMAPG(imap_folders)); @@ -2170,7 +2170,7 @@ PHP_FUNCTION(imap_lsub) array_init(return_value); cur=IMAPG(imap_sfolders); while (cur != NIL) { - add_next_index_string(return_value, cur->LTEXT); + add_next_index_string(return_value, (char*)cur->LTEXT); cur=cur->next; } mail_free_stringlist (&IMAPG(imap_sfolders)); @@ -2210,7 +2210,7 @@ PHP_FUNCTION(imap_lsub_full) cur=IMAPG(imap_sfolder_objects); while (cur != NIL) { object_init(&mboxob); - add_property_string(&mboxob, "name", cur->LTEXT); + add_property_string(&mboxob, "name", (char*)cur->LTEXT); add_property_long(&mboxob, "attributes", cur->attributes); #ifdef IMAP41 delim[0] = (char)cur->delimiter; @@ -2535,7 +2535,7 @@ PHP_FUNCTION(imap_binary) return; } - decode = rfc822_binary(text, text_len, &newlength); + decode = (char*)rfc822_binary(text, text_len, &newlength); if (decode == NULL) { RETURN_FALSE; @@ -2600,7 +2600,7 @@ PHP_FUNCTION(imap_rfc822_write_address) char *mailbox, *host, *personal; int mailbox_len, host_len, personal_len; ADDRESS *addr; - char *string; + zend_string *string; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss", &mailbox, &mailbox_len, &host, &host_len, &personal, &personal_len) == FAILURE) { return; @@ -2626,8 +2626,7 @@ PHP_FUNCTION(imap_rfc822_write_address) string = _php_rfc822_write_address(addr TSRMLS_CC); if (string) { - RETVAL_STRING(string); - efree(string); + RETVAL_STR(string); } else { RETURN_FALSE; } @@ -2704,7 +2703,7 @@ PHP_FUNCTION(imap_utf8) #else utf8_mime2text(&src, &dest, U8T_DECOMPOSE); #endif - RETVAL_STRINGL(dest.data, dest.size); + RETVAL_STRINGL((char*)dest.data, dest.size); if (dest.data) { free(dest.data); } @@ -2869,7 +2868,7 @@ PHP_FUNCTION(imap_utf7_decode) } #endif - RETURN_STRINGL(out, outlen); + RETURN_STRINGL((char*)out, outlen); } /* }}} */ @@ -2933,7 +2932,7 @@ PHP_FUNCTION(imap_utf7_encode) out = STR_ALLOC(outlen, 0); /* encode input string */ - outp = out->val; + outp = (unsigned char*)out->val; state = ST_NORMAL; endp = (inp = in) + inlen; while (inp < endp || state != ST_NORMAL) { @@ -3283,7 +3282,7 @@ PHP_FUNCTION(imap_bodystruct) object_init(return_value); - body=mail_body(imap_le_struct->imap_stream, msg, section); + body=mail_body(imap_le_struct->imap_stream, msg, (unsigned char*)section); if (body == NULL) { zval_dtor(return_value); RETURN_FALSE; @@ -3378,7 +3377,7 @@ PHP_FUNCTION(imap_fetch_overview) int sequence_len; pils *imap_le_struct; zval myoverview; - char *address; + zend_string *address; long status, flags = 0L; int argc = ZEND_NUM_ARGS(); @@ -3396,8 +3395,8 @@ PHP_FUNCTION(imap_fetch_overview) array_init(return_value); status = (flags & FT_UID) - ? mail_uid_sequence(imap_le_struct->imap_stream, sequence) - : mail_sequence(imap_le_struct->imap_stream, sequence); + ? mail_uid_sequence(imap_le_struct->imap_stream, (unsigned char*)sequence) + : mail_sequence(imap_le_struct->imap_stream, (unsigned char*)sequence); if (status) { MESSAGECACHE *elt; @@ -3415,22 +3414,18 @@ PHP_FUNCTION(imap_fetch_overview) env->from->next=NULL; address =_php_rfc822_write_address(env->from TSRMLS_CC); if (address) { - // TODO: avoid reallocation ??? - add_property_string(&myoverview, "from", address); - efree(address); + add_property_str(&myoverview, "from", address); } } if (env->to) { env->to->next = NULL; address = _php_rfc822_write_address(env->to TSRMLS_CC); if (address) { - // TODO: avoid reallocation ??? - add_property_string(&myoverview, "to", address); - efree(address); + add_property_str(&myoverview, "to", address); } } if (env->date) { - add_property_string(&myoverview, "date", env->date); + add_property_string(&myoverview, "date", (char*)env->date); } if (env->message_id) { add_property_string(&myoverview, "message_id", env->message_id); @@ -3494,7 +3489,7 @@ PHP_FUNCTION(imap_mail_compose) } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(envelope), "date", sizeof("date") - 1)) != NULL) { convert_to_string_ex(pvalue); - env->date = cpystr(Z_STRVAL_P(pvalue)); + env->date = (unsigned char*)cpystr(Z_STRVAL_P(pvalue)); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(envelope), "from", sizeof("from") - 1)) != NULL) { convert_to_string_ex(pvalue); @@ -3622,11 +3617,11 @@ PHP_FUNCTION(imap_mail_compose) } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "contents.data", sizeof("contents.data") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->contents.text.data = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); + bod->contents.text.data = fs_get(Z_STRLEN_P(pvalue) + 1); memcpy(bod->contents.text.data, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue)+1); bod->contents.text.size = Z_STRLEN_P(pvalue); } else { - bod->contents.text.data = (char *) fs_get(1); + bod->contents.text.data = fs_get(1); memcpy(bod->contents.text.data, "", 1); bod->contents.text.size = 0; } @@ -3726,11 +3721,11 @@ PHP_FUNCTION(imap_mail_compose) } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "contents.data", sizeof("contents.data") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->contents.text.data = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); + bod->contents.text.data = fs_get(Z_STRLEN_P(pvalue) + 1); memcpy(bod->contents.text.data, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue) + 1); bod->contents.text.size = Z_STRLEN_P(pvalue); } else { - bod->contents.text.data = (char *) fs_get(1); + bod->contents.text.data = fs_get(1); memcpy(bod->contents.text.data, "", 1); bod->contents.text.size = 0; } @@ -4133,7 +4128,7 @@ PHP_FUNCTION(imap_alerts) cur = IMAPG(imap_alertstack); while (cur != NIL) { - add_next_index_string(return_value, cur->LTEXT); + add_next_index_string(return_value, (char*)cur->LTEXT); cur = cur->next; } mail_free_stringlist(&IMAPG(imap_alertstack)); @@ -4160,7 +4155,7 @@ PHP_FUNCTION(imap_errors) cur = IMAPG(imap_errorstack); while (cur != NIL) { - add_next_index_string(return_value, cur->LTEXT); + add_next_index_string(return_value, (char*)cur->LTEXT); cur = cur->next; } mail_free_errorlist(&IMAPG(imap_errorstack)); @@ -4186,7 +4181,7 @@ PHP_FUNCTION(imap_last_error) cur = IMAPG(imap_errorstack); while (cur != NIL) { if (cur->next == NIL) { - RETURN_STRING(cur->LTEXT); + RETURN_STRING((char*)cur->LTEXT); } cur = cur->next; } @@ -4305,10 +4300,9 @@ static long _php_rfc822_soutr (void *stream, char *string) /* {{{ _php_rfc822_write_address */ -static char* _php_rfc822_write_address(ADDRESS *addresslist TSRMLS_DC) +static zend_string* _php_rfc822_write_address(ADDRESS *addresslist TSRMLS_DC) { char address[MAILTMPLEN]; - char *str; smart_str ret = {0}; RFC822BUFFER buf; @@ -4320,11 +4314,7 @@ static char* _php_rfc822_write_address(ADDRESS *addresslist TSRMLS_DC) rfc822_output_address_list(&buf, addresslist, 0, NULL); rfc822_output_flush(&buf); smart_str_0(&ret); - /* avoide dup? */ - str = estrndup(ret.s->val, ret.s->len); - smart_str_free(&ret); - - return str; + return ret.s; } /* }}} */ @@ -4390,7 +4380,7 @@ static int _php_imap_address_size (ADDRESS *addresslist) /* {{{ _php_rfc822_write_address */ -static char* _php_rfc822_write_address(ADDRESS *addresslist TSRMLS_DC) +static zend_string* _php_rfc822_write_address(ADDRESS *addresslist TSRMLS_DC) { char address[SENDBUFLEN]; @@ -4400,15 +4390,15 @@ static char* _php_rfc822_write_address(ADDRESS *addresslist TSRMLS_DC) } address[0] = 0; rfc822_write_address(address, addresslist); - return estrdup(address); + return STR_INIT(address, strlen(address), 0); } /* }}} */ #endif /* {{{ _php_imap_parse_address */ -static char* _php_imap_parse_address (ADDRESS *addresslist, zval *paddress TSRMLS_DC) +static zend_string* _php_imap_parse_address (ADDRESS *addresslist, zval *paddress TSRMLS_DC) { - char *fulladdress; + zend_string *fulladdress; ADDRESS *addresstmp; zval tmpvals; @@ -4434,13 +4424,13 @@ static char* _php_imap_parse_address (ADDRESS *addresslist, zval *paddress TSRML static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) { zval paddress; - char *fulladdress=NULL; + zend_string *fulladdress=NULL; object_init(myzvalue); if (en->remail) add_property_string(myzvalue, "remail", en->remail); - if (en->date) add_property_string(myzvalue, "date", en->date); - if (en->date) add_property_string(myzvalue, "Date", en->date); + if (en->date) add_property_string(myzvalue, "date", (char*)en->date); + if (en->date) add_property_string(myzvalue, "Date", (char*)en->date); if (en->subject) add_property_string(myzvalue, "subject", en->subject); if (en->subject) add_property_string(myzvalue, "Subject", en->subject); if (en->in_reply_to) add_property_string(myzvalue, "in_reply_to", en->in_reply_to); @@ -4453,9 +4443,7 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) array_init(&paddress); fulladdress = _php_imap_parse_address(en->to, &paddress TSRMLS_CC); if (fulladdress) { - // TODO: avoid reallocation ??? - add_property_string(myzvalue, "toaddress", fulladdress); - efree(fulladdress); + add_property_str(myzvalue, "toaddress", fulladdress); } add_assoc_object(myzvalue, "to", &paddress TSRMLS_CC); } @@ -4464,9 +4452,7 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) array_init(&paddress); fulladdress = _php_imap_parse_address(en->from, &paddress TSRMLS_CC); if (fulladdress) { - // TODO: avoid reallocation ??? - add_property_string(myzvalue, "fromaddress", fulladdress); - efree(fulladdress); + add_property_str(myzvalue, "fromaddress", fulladdress); } add_assoc_object(myzvalue, "from", &paddress TSRMLS_CC); } @@ -4475,9 +4461,7 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) array_init(&paddress); fulladdress = _php_imap_parse_address(en->cc, &paddress TSRMLS_CC); if (fulladdress) { - // TODO: avoid reallocation ??? - add_property_string(myzvalue, "ccaddress", fulladdress); - efree(fulladdress); + add_property_str(myzvalue, "ccaddress", fulladdress); } add_assoc_object(myzvalue, "cc", &paddress TSRMLS_CC); } @@ -4486,9 +4470,7 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) array_init(&paddress); fulladdress = _php_imap_parse_address(en->bcc, &paddress TSRMLS_CC); if (fulladdress) { - // TODO: avoid reallocation ??? - add_property_string(myzvalue, "bccaddress", fulladdress); - efree(fulladdress); + add_property_str(myzvalue, "bccaddress", fulladdress); } add_assoc_object(myzvalue, "bcc", &paddress TSRMLS_CC); } @@ -4497,9 +4479,7 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) array_init(&paddress); fulladdress = _php_imap_parse_address(en->reply_to, &paddress TSRMLS_CC); if (fulladdress) { - // TODO: avoid reallocation ??? - add_property_string(myzvalue, "reply_toaddress", fulladdress); - efree(fulladdress); + add_property_str(myzvalue, "reply_toaddress", fulladdress); } add_assoc_object(myzvalue, "reply_to", &paddress TSRMLS_CC); } @@ -4508,9 +4488,7 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) array_init(&paddress); fulladdress = _php_imap_parse_address(en->sender, &paddress TSRMLS_CC); if (fulladdress) { - // TODO: avoid reallocation ??? - add_property_string(myzvalue, "senderaddress", fulladdress); - efree(fulladdress); + add_property_str(myzvalue, "senderaddress", fulladdress); } add_assoc_object(myzvalue, "sender", &paddress TSRMLS_CC); } @@ -4519,9 +4497,7 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC) array_init(&paddress); fulladdress = _php_imap_parse_address(en->return_path, &paddress TSRMLS_CC); if (fulladdress) { - // TODO: avoid reallocation ??? - add_property_string(myzvalue, "return_pathaddress", fulladdress); - efree(fulladdress); + add_property_str(myzvalue, "return_pathaddress", fulladdress); } add_assoc_object(myzvalue, "return_path", &paddress TSRMLS_CC); } @@ -4873,7 +4849,7 @@ PHP_IMAP_EXPORT void mm_notify(MAILSTREAM *stream, char *str, long errflg) if (strncmp(str, "[ALERT] ", 8) == 0) { if (IMAPG(imap_alertstack) == NIL) { IMAPG(imap_alertstack) = mail_newstringlist(); - IMAPG(imap_alertstack)->LSIZE = strlen(IMAPG(imap_alertstack)->LTEXT = cpystr(str)); + IMAPG(imap_alertstack)->LSIZE = strlen((char*)(IMAPG(imap_alertstack)->LTEXT = (unsigned char*)cpystr(str))); IMAPG(imap_alertstack)->next = NIL; } else { cur = IMAPG(imap_alertstack); @@ -4882,7 +4858,7 @@ PHP_IMAP_EXPORT void mm_notify(MAILSTREAM *stream, char *str, long errflg) } cur->next = mail_newstringlist (); cur = cur->next; - cur->LSIZE = strlen(cur->LTEXT = cpystr(str)); + cur->LSIZE = strlen((char*)(cur->LTEXT = (unsigned char*)cpystr(str))); cur->next = NIL; } } @@ -4899,7 +4875,7 @@ PHP_IMAP_EXPORT void mm_list(MAILSTREAM *stream, DTYPE delimiter, char *mailbox, /* Author: CJH */ if (IMAPG(imap_folder_objects) == NIL) { IMAPG(imap_folder_objects) = mail_newfolderobjectlist(); - IMAPG(imap_folder_objects)->LSIZE=strlen(IMAPG(imap_folder_objects)->LTEXT=cpystr(mailbox)); + IMAPG(imap_folder_objects)->LSIZE=strlen((char*)(IMAPG(imap_folder_objects)->LTEXT = (unsigned char*)cpystr(mailbox))); IMAPG(imap_folder_objects)->delimiter = delimiter; IMAPG(imap_folder_objects)->attributes = attributes; IMAPG(imap_folder_objects)->next = NIL; @@ -4908,7 +4884,7 @@ PHP_IMAP_EXPORT void mm_list(MAILSTREAM *stream, DTYPE delimiter, char *mailbox, ocur=IMAPG(imap_folder_objects_tail); ocur->next=mail_newfolderobjectlist(); ocur=ocur->next; - ocur->LSIZE = strlen(ocur->LTEXT = cpystr(mailbox)); + ocur->LSIZE = strlen((char*)(ocur->LTEXT = (unsigned char*)cpystr(mailbox))); ocur->delimiter = delimiter; ocur->attributes = attributes; ocur->next = NIL; @@ -4920,14 +4896,14 @@ PHP_IMAP_EXPORT void mm_list(MAILSTREAM *stream, DTYPE delimiter, char *mailbox, if (!(attributes & LATT_NOSELECT)) { if (IMAPG(imap_folders) == NIL) { IMAPG(imap_folders)=mail_newstringlist(); - IMAPG(imap_folders)->LSIZE=strlen(IMAPG(imap_folders)->LTEXT=cpystr(mailbox)); + IMAPG(imap_folders)->LSIZE=strlen((char*)(IMAPG(imap_folders)->LTEXT = (unsigned char*)cpystr(mailbox))); IMAPG(imap_folders)->next=NIL; IMAPG(imap_folders_tail) = IMAPG(imap_folders); } else { cur=IMAPG(imap_folders_tail); cur->next=mail_newstringlist (); cur=cur->next; - cur->LSIZE = strlen (cur->LTEXT = cpystr (mailbox)); + cur->LSIZE = strlen((char*)(cur->LTEXT = (unsigned char*)cpystr(mailbox))); cur->next = NIL; IMAPG(imap_folders_tail) = cur; } @@ -4946,7 +4922,7 @@ PHP_IMAP_EXPORT void mm_lsub(MAILSTREAM *stream, DTYPE delimiter, char *mailbox, /* Author: CJH */ if (IMAPG(imap_sfolder_objects) == NIL) { IMAPG(imap_sfolder_objects) = mail_newfolderobjectlist(); - IMAPG(imap_sfolder_objects)->LSIZE=strlen(IMAPG(imap_sfolder_objects)->LTEXT=cpystr(mailbox)); + IMAPG(imap_sfolder_objects)->LSIZE = strlen((char*)(IMAPG(imap_sfolder_objects)->LTEXT = (unsigned char*)cpystr(mailbox))); IMAPG(imap_sfolder_objects)->delimiter = delimiter; IMAPG(imap_sfolder_objects)->attributes = attributes; IMAPG(imap_sfolder_objects)->next = NIL; @@ -4955,7 +4931,7 @@ PHP_IMAP_EXPORT void mm_lsub(MAILSTREAM *stream, DTYPE delimiter, char *mailbox, ocur=IMAPG(imap_sfolder_objects_tail); ocur->next=mail_newfolderobjectlist(); ocur=ocur->next; - ocur->LSIZE=strlen(ocur->LTEXT = cpystr(mailbox)); + ocur->LSIZE=strlen((char*)(ocur->LTEXT = (unsigned char*)cpystr(mailbox))); ocur->delimiter = delimiter; ocur->attributes = attributes; ocur->next = NIL; @@ -4965,14 +4941,14 @@ PHP_IMAP_EXPORT void mm_lsub(MAILSTREAM *stream, DTYPE delimiter, char *mailbox, /* build the old simple array for imap_listsubscribed() */ if (IMAPG(imap_sfolders) == NIL) { IMAPG(imap_sfolders)=mail_newstringlist(); - IMAPG(imap_sfolders)->LSIZE=strlen(IMAPG(imap_sfolders)->LTEXT=cpystr(mailbox)); + IMAPG(imap_sfolders)->LSIZE=strlen((char*)(IMAPG(imap_sfolders)->LTEXT = (unsigned char*)cpystr(mailbox))); IMAPG(imap_sfolders)->next=NIL; IMAPG(imap_sfolders_tail) = IMAPG(imap_sfolders); } else { cur=IMAPG(imap_sfolders_tail); cur->next=mail_newstringlist (); cur=cur->next; - cur->LSIZE = strlen (cur->LTEXT = cpystr (mailbox)); + cur->LSIZE = strlen((char*)(cur->LTEXT = (unsigned char*)cpystr(mailbox))); cur->next = NIL; IMAPG(imap_sfolders_tail) = cur; } @@ -5010,7 +4986,7 @@ PHP_IMAP_EXPORT void mm_log(char *str, long errflg) if (errflg != NIL) { /* CJH: maybe put these into a more comprehensive log for debugging purposes? */ if (IMAPG(imap_errorstack) == NIL) { IMAPG(imap_errorstack) = mail_newerrorlist(); - IMAPG(imap_errorstack)->LSIZE = strlen(IMAPG(imap_errorstack)->LTEXT = cpystr(str)); + IMAPG(imap_errorstack)->LSIZE = strlen((char*)(IMAPG(imap_errorstack)->LTEXT = (unsigned char*)cpystr(str))); IMAPG(imap_errorstack)->errflg = errflg; IMAPG(imap_errorstack)->next = NIL; } else { @@ -5020,7 +4996,7 @@ PHP_IMAP_EXPORT void mm_log(char *str, long errflg) } cur->next = mail_newerrorlist(); cur = cur->next; - cur->LSIZE = strlen(cur->LTEXT = cpystr(str)); + cur->LSIZE = strlen((char*)(cur->LTEXT = (unsigned char*)cpystr(str))); cur->errflg = errflg; cur->next = NIL; } -- cgit v1.2.1 From 63d3f0b844b3a5f1c94be3c97bca29235dc2b3fc Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Tue, 19 Aug 2014 08:07:31 +0200 Subject: basic macro replacements, all at once --- ext/imap/php_imap.c | 372 ++++++++++++++++++++++++++-------------------------- 1 file changed, 186 insertions(+), 186 deletions(-) (limited to 'ext/imap/php_imap.c') diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index 09295a87f3..6e33e463ae 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -770,12 +770,12 @@ void mail_getquota(MAILSTREAM *stream, char *qroot, QUOTALIST *qlist) if (strncmp(qlist->name, "STORAGE", 7) == 0) { /* this is to add backwards compatibility */ - add_assoc_long_ex(return_value, "usage", sizeof("usage") - 1, qlist->usage); - add_assoc_long_ex(return_value, "limit", sizeof("limit") - 1, qlist->limit); + add_assoc_int_ex(return_value, "usage", sizeof("usage") - 1, qlist->usage); + add_assoc_int_ex(return_value, "limit", sizeof("limit") - 1, qlist->limit); } - add_assoc_long_ex(&t_map, "usage", sizeof("usage") - 1, qlist->usage); - add_assoc_long_ex(&t_map, "limit", sizeof("limit") - 1, qlist->limit); + add_assoc_int_ex(&t_map, "usage", sizeof("usage") - 1, qlist->usage); + add_assoc_int_ex(&t_map, "limit", sizeof("limit") - 1, qlist->limit); add_assoc_zval_ex(return_value, qlist->name, strlen(qlist->name), &t_map); } } @@ -864,7 +864,7 @@ PHP_MINIT_FUNCTION(imap) #endif /* lets allow NIL */ - REGISTER_LONG_CONSTANT("NIL", NIL, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("NIL", NIL, CONST_PERSISTENT | CONST_CS); /* plug in our gets */ mail_parameters(NIL, SET_GETS, (void *) NIL); @@ -876,30 +876,30 @@ PHP_MINIT_FUNCTION(imap) mail_parameters(NIL, SET_CLOSETIMEOUT, (void *) FG(default_socket_timeout)); /* timeout constants */ - REGISTER_LONG_CONSTANT("IMAP_OPENTIMEOUT", 1, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("IMAP_READTIMEOUT", 2, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("IMAP_WRITETIMEOUT", 3, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("IMAP_CLOSETIMEOUT", 4, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("IMAP_OPENTIMEOUT", 1, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("IMAP_READTIMEOUT", 2, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("IMAP_WRITETIMEOUT", 3, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("IMAP_CLOSETIMEOUT", 4, CONST_PERSISTENT | CONST_CS); /* Open Options */ - REGISTER_LONG_CONSTANT("OP_DEBUG", OP_DEBUG, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("OP_DEBUG", OP_DEBUG, CONST_PERSISTENT | CONST_CS); /* debug protocol negotiations */ - REGISTER_LONG_CONSTANT("OP_READONLY", OP_READONLY, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("OP_READONLY", OP_READONLY, CONST_PERSISTENT | CONST_CS); /* read-only open */ - REGISTER_LONG_CONSTANT("OP_ANONYMOUS", OP_ANONYMOUS, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("OP_ANONYMOUS", OP_ANONYMOUS, CONST_PERSISTENT | CONST_CS); /* anonymous open of newsgroup */ - REGISTER_LONG_CONSTANT("OP_SHORTCACHE", OP_SHORTCACHE, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("OP_SHORTCACHE", OP_SHORTCACHE, CONST_PERSISTENT | CONST_CS); /* short (elt-only) caching */ - REGISTER_LONG_CONSTANT("OP_SILENT", OP_SILENT, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("OP_SILENT", OP_SILENT, CONST_PERSISTENT | CONST_CS); /* don't pass up events (internal use) */ - REGISTER_LONG_CONSTANT("OP_PROTOTYPE", OP_PROTOTYPE, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("OP_PROTOTYPE", OP_PROTOTYPE, CONST_PERSISTENT | CONST_CS); /* return driver prototype */ - REGISTER_LONG_CONSTANT("OP_HALFOPEN", OP_HALFOPEN, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("OP_HALFOPEN", OP_HALFOPEN, CONST_PERSISTENT | CONST_CS); /* half-open (IMAP connect but no select) */ - REGISTER_LONG_CONSTANT("OP_EXPUNGE", OP_EXPUNGE, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("OP_EXPUNGE", OP_EXPUNGE, CONST_PERSISTENT | CONST_CS); /* silently expunge recycle stream */ - REGISTER_LONG_CONSTANT("OP_SECURE", OP_SECURE, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("OP_SECURE", OP_SECURE, CONST_PERSISTENT | CONST_CS); /* don't do non-secure authentication */ /* @@ -910,111 +910,111 @@ PHP_MINIT_FUNCTION(imap) options and the value for this one conflicts, simply make PHP_EXPUNGE higher at the top of this file */ - REGISTER_LONG_CONSTANT("CL_EXPUNGE", PHP_EXPUNGE, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("CL_EXPUNGE", PHP_EXPUNGE, CONST_PERSISTENT | CONST_CS); /* expunge silently */ /* Fetch options */ - REGISTER_LONG_CONSTANT("FT_UID", FT_UID, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("FT_UID", FT_UID, CONST_PERSISTENT | CONST_CS); /* argument is a UID */ - REGISTER_LONG_CONSTANT("FT_PEEK", FT_PEEK, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("FT_PEEK", FT_PEEK, CONST_PERSISTENT | CONST_CS); /* peek at data */ - REGISTER_LONG_CONSTANT("FT_NOT", FT_NOT, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("FT_NOT", FT_NOT, CONST_PERSISTENT | CONST_CS); /* NOT flag for header lines fetch */ - REGISTER_LONG_CONSTANT("FT_INTERNAL", FT_INTERNAL, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("FT_INTERNAL", FT_INTERNAL, CONST_PERSISTENT | CONST_CS); /* text can be internal strings */ - REGISTER_LONG_CONSTANT("FT_PREFETCHTEXT", FT_PREFETCHTEXT, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("FT_PREFETCHTEXT", FT_PREFETCHTEXT, CONST_PERSISTENT | CONST_CS); /* IMAP prefetch text when fetching header */ /* Flagging options */ - REGISTER_LONG_CONSTANT("ST_UID", ST_UID, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("ST_UID", ST_UID, CONST_PERSISTENT | CONST_CS); /* argument is a UID sequence */ - REGISTER_LONG_CONSTANT("ST_SILENT", ST_SILENT, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("ST_SILENT", ST_SILENT, CONST_PERSISTENT | CONST_CS); /* don't return results */ - REGISTER_LONG_CONSTANT("ST_SET", ST_SET, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("ST_SET", ST_SET, CONST_PERSISTENT | CONST_CS); /* set vs. clear */ /* Copy options */ - REGISTER_LONG_CONSTANT("CP_UID", CP_UID, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("CP_UID", CP_UID, CONST_PERSISTENT | CONST_CS); /* argument is a UID sequence */ - REGISTER_LONG_CONSTANT("CP_MOVE", CP_MOVE, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("CP_MOVE", CP_MOVE, CONST_PERSISTENT | CONST_CS); /* delete from source after copying */ /* Search/sort options */ - REGISTER_LONG_CONSTANT("SE_UID", SE_UID, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SE_UID", SE_UID, CONST_PERSISTENT | CONST_CS); /* return UID */ - REGISTER_LONG_CONSTANT("SE_FREE", SE_FREE, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SE_FREE", SE_FREE, CONST_PERSISTENT | CONST_CS); /* free search program after finished */ - REGISTER_LONG_CONSTANT("SE_NOPREFETCH", SE_NOPREFETCH, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SE_NOPREFETCH", SE_NOPREFETCH, CONST_PERSISTENT | CONST_CS); /* no search prefetching */ - REGISTER_LONG_CONSTANT("SO_FREE", SO_FREE, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SO_FREE", SO_FREE, CONST_PERSISTENT | CONST_CS); /* free sort program after finished */ - REGISTER_LONG_CONSTANT("SO_NOSERVER", SO_NOSERVER, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SO_NOSERVER", SO_NOSERVER, CONST_PERSISTENT | CONST_CS); /* don't do server-based sort */ /* Status options */ - REGISTER_LONG_CONSTANT("SA_MESSAGES", SA_MESSAGES , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SA_MESSAGES", SA_MESSAGES , CONST_PERSISTENT | CONST_CS); /* number of messages */ - REGISTER_LONG_CONSTANT("SA_RECENT", SA_RECENT, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SA_RECENT", SA_RECENT, CONST_PERSISTENT | CONST_CS); /* number of recent messages */ - REGISTER_LONG_CONSTANT("SA_UNSEEN", SA_UNSEEN , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SA_UNSEEN", SA_UNSEEN , CONST_PERSISTENT | CONST_CS); /* number of unseen messages */ - REGISTER_LONG_CONSTANT("SA_UIDNEXT", SA_UIDNEXT, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SA_UIDNEXT", SA_UIDNEXT, CONST_PERSISTENT | CONST_CS); /* next UID to be assigned */ - REGISTER_LONG_CONSTANT("SA_UIDVALIDITY", SA_UIDVALIDITY , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SA_UIDVALIDITY", SA_UIDVALIDITY , CONST_PERSISTENT | CONST_CS); /* UID validity value */ - REGISTER_LONG_CONSTANT("SA_ALL", sa_all, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SA_ALL", sa_all, CONST_PERSISTENT | CONST_CS); /* get all status information */ /* Bits for mm_list() and mm_lsub() */ - REGISTER_LONG_CONSTANT("LATT_NOINFERIORS", LATT_NOINFERIORS , CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("LATT_NOSELECT", LATT_NOSELECT, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("LATT_MARKED", LATT_MARKED, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("LATT_UNMARKED", LATT_UNMARKED , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("LATT_NOINFERIORS", LATT_NOINFERIORS , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("LATT_NOSELECT", LATT_NOSELECT, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("LATT_MARKED", LATT_MARKED, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("LATT_UNMARKED", LATT_UNMARKED , CONST_PERSISTENT | CONST_CS); #ifdef LATT_REFERRAL - REGISTER_LONG_CONSTANT("LATT_REFERRAL", LATT_REFERRAL, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("LATT_REFERRAL", LATT_REFERRAL, CONST_PERSISTENT | CONST_CS); #endif #ifdef LATT_HASCHILDREN - REGISTER_LONG_CONSTANT("LATT_HASCHILDREN", LATT_HASCHILDREN, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("LATT_HASCHILDREN", LATT_HASCHILDREN, CONST_PERSISTENT | CONST_CS); #endif #ifdef LATT_HASNOCHILDREN - REGISTER_LONG_CONSTANT("LATT_HASNOCHILDREN", LATT_HASNOCHILDREN, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("LATT_HASNOCHILDREN", LATT_HASNOCHILDREN, CONST_PERSISTENT | CONST_CS); #endif /* Sort functions */ - REGISTER_LONG_CONSTANT("SORTDATE", SORTDATE , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SORTDATE", SORTDATE , CONST_PERSISTENT | CONST_CS); /* date */ - REGISTER_LONG_CONSTANT("SORTARRIVAL", SORTARRIVAL , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SORTARRIVAL", SORTARRIVAL , CONST_PERSISTENT | CONST_CS); /* arrival date */ - REGISTER_LONG_CONSTANT("SORTFROM", SORTFROM , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SORTFROM", SORTFROM , CONST_PERSISTENT | CONST_CS); /* from */ - REGISTER_LONG_CONSTANT("SORTSUBJECT", SORTSUBJECT , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SORTSUBJECT", SORTSUBJECT , CONST_PERSISTENT | CONST_CS); /* subject */ - REGISTER_LONG_CONSTANT("SORTTO", SORTTO , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SORTTO", SORTTO , CONST_PERSISTENT | CONST_CS); /* to */ - REGISTER_LONG_CONSTANT("SORTCC", SORTCC , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SORTCC", SORTCC , CONST_PERSISTENT | CONST_CS); /* cc */ - REGISTER_LONG_CONSTANT("SORTSIZE", SORTSIZE , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("SORTSIZE", SORTSIZE , CONST_PERSISTENT | CONST_CS); /* size */ - REGISTER_LONG_CONSTANT("TYPETEXT", TYPETEXT , CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("TYPEMULTIPART", TYPEMULTIPART , CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("TYPEMESSAGE", TYPEMESSAGE , CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("TYPEAPPLICATION", TYPEAPPLICATION , CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("TYPEAUDIO", TYPEAUDIO , CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("TYPEIMAGE", TYPEIMAGE , CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("TYPEVIDEO", TYPEVIDEO , CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("TYPEMODEL", TYPEMODEL , CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("TYPEOTHER", TYPEOTHER , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("TYPETEXT", TYPETEXT , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("TYPEMULTIPART", TYPEMULTIPART , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("TYPEMESSAGE", TYPEMESSAGE , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("TYPEAPPLICATION", TYPEAPPLICATION , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("TYPEAUDIO", TYPEAUDIO , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("TYPEIMAGE", TYPEIMAGE , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("TYPEVIDEO", TYPEVIDEO , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("TYPEMODEL", TYPEMODEL , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("TYPEOTHER", TYPEOTHER , CONST_PERSISTENT | CONST_CS); /* TYPETEXT unformatted text TYPEMULTIPART multiple part @@ -1027,12 +1027,12 @@ PHP_MINIT_FUNCTION(imap) TYPEOTHER unknown */ - REGISTER_LONG_CONSTANT("ENC7BIT", ENC7BIT , CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("ENC8BIT", ENC8BIT , CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("ENCBINARY", ENCBINARY , CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("ENCBASE64", ENCBASE64, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("ENCQUOTEDPRINTABLE", ENCQUOTEDPRINTABLE , CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("ENCOTHER", ENCOTHER , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("ENC7BIT", ENC7BIT , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("ENC8BIT", ENC8BIT , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("ENCBINARY", ENCBINARY , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("ENCBASE64", ENCBASE64, CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("ENCQUOTEDPRINTABLE", ENCQUOTEDPRINTABLE , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("ENCOTHER", ENCOTHER , CONST_PERSISTENT | CONST_CS); /* ENC7BIT 7 bit SMTP semantic data ENC8BIT 8 bit SMTP semantic data @@ -1042,9 +1042,9 @@ PHP_MINIT_FUNCTION(imap) ENCOTHER unknown */ - REGISTER_LONG_CONSTANT("IMAP_GC_ELT", GC_ELT , CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("IMAP_GC_ENV", GC_ENV , CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("IMAP_GC_TEXTS", GC_TEXTS , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("IMAP_GC_ELT", GC_ELT , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("IMAP_GC_ENV", GC_ENV , CONST_PERSISTENT | CONST_CS); + REGISTER_INT_CONSTANT("IMAP_GC_TEXTS", GC_TEXTS , CONST_PERSISTENT | CONST_CS); /* GC_ELT message cache elements GC_ENV ENVELOPEs and BODYs @@ -1173,7 +1173,7 @@ static void php_imap_do_open(INTERNAL_FUNCTION_PARAMETERS, int persistent) if ((disabled_auth_method = zend_hash_str_find(HASH_OF(params), "DISABLE_AUTHENTICATOR", sizeof("DISABLE_AUTHENTICATOR") - 1)) != NULL) { switch (Z_TYPE_P(disabled_auth_method)) { case IS_STRING: - if (Z_STRLEN_P(disabled_auth_method) > 1) { + if (Z_STRSIZE_P(disabled_auth_method) > 1) { mail_parameters(NIL, DISABLE_AUTHENTICATOR, (void *)Z_STRVAL_P(disabled_auth_method)); } break; @@ -1189,7 +1189,7 @@ static void php_imap_do_open(INTERNAL_FUNCTION_PARAMETERS, int persistent) for (i = 0; i < nelems; i++) { if ((z_auth_method = zend_hash_index_find(Z_ARRVAL_P(disabled_auth_method), i)) != NULL) { if (Z_TYPE_P(z_auth_method) == IS_STRING) { - if (Z_STRLEN_P(z_auth_method) > 1) { + if (Z_STRSIZE_P(z_auth_method) > 1) { mail_parameters(NIL, DISABLE_AUTHENTICATOR, (void *)Z_STRVAL_P(z_auth_method)); } } else { @@ -1199,7 +1199,7 @@ static void php_imap_do_open(INTERNAL_FUNCTION_PARAMETERS, int persistent) } } break; - case IS_LONG: + case IS_INT: default: php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid argument, expect string or array of strings"); break; @@ -1339,7 +1339,7 @@ PHP_FUNCTION(imap_append) php_pcre_match_impl(pce, internal_date, internal_date_len, return_value, subpats, global, 0, regex_flags, start_offset TSRMLS_CC); - if (!Z_LVAL_P(return_value)) { + if (!Z_IVAL_P(return_value)) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "internal date not correctly formatted"); internal_date = NULL; } @@ -1370,7 +1370,7 @@ PHP_FUNCTION(imap_num_msg) ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); - RETURN_LONG(imap_le_struct->imap_stream->nmsgs); + RETURN_INT(imap_le_struct->imap_stream->nmsgs); } /* }}} */ @@ -1404,7 +1404,7 @@ PHP_FUNCTION(imap_num_recent) ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); - RETURN_LONG(imap_le_struct->imap_stream->recent); + RETURN_INT(imap_le_struct->imap_stream->recent); } /* }}} */ @@ -1906,7 +1906,7 @@ PHP_FUNCTION(imap_list_full) while (cur != NIL) { object_init(&mboxob); add_property_string(&mboxob, "name", (char*)cur->LTEXT); - add_property_long(&mboxob, "attributes", cur->attributes); + add_property_int(&mboxob, "attributes", cur->attributes); #ifdef IMAP41 delim[0] = (char)cur->delimiter; delim[1] = 0; @@ -1981,8 +1981,8 @@ PHP_FUNCTION(imap_check) add_property_string(return_value, "Date", date); add_property_string(return_value, "Driver", imap_le_struct->imap_stream->dtb->name); add_property_string(return_value, "Mailbox", imap_le_struct->imap_stream->mailbox); - add_property_long(return_value, "Nmsgs", imap_le_struct->imap_stream->nmsgs); - add_property_long(return_value, "Recent", imap_le_struct->imap_stream->recent); + add_property_int(return_value, "Nmsgs", imap_le_struct->imap_stream->nmsgs); + add_property_int(return_value, "Recent", imap_le_struct->imap_stream->recent); } else { RETURN_FALSE; } @@ -2101,7 +2101,7 @@ PHP_FUNCTION(imap_headerinfo) snprintf(dummy, sizeof(dummy), "%ld", cache->rfc822_size); add_property_string(return_value, "Size", dummy); - add_property_long(return_value, "udate", mail_longdate(cache)); + add_property_int(return_value, "udate", mail_longdate(cache)); if (en->from && fromlength) { fulladdress[0] = 0x00; @@ -2211,7 +2211,7 @@ PHP_FUNCTION(imap_lsub_full) while (cur != NIL) { object_init(&mboxob); add_property_string(&mboxob, "name", (char*)cur->LTEXT); - add_property_long(&mboxob, "attributes", cur->attributes); + add_property_int(&mboxob, "attributes", cur->attributes); #ifdef IMAP41 delim[0] = (char)cur->delimiter; delim[1] = 0; @@ -2424,7 +2424,7 @@ PHP_FUNCTION(imap_savebody) switch (Z_TYPE_P(out)) { - case IS_LONG: + case IS_INT: case IS_RESOURCE: close_stream = 0; php_stream_from_zval(writer, out); @@ -2581,15 +2581,15 @@ PHP_FUNCTION(imap_mailboxmsginfo) } msize = msize + cache->rfc822_size; } - add_property_long(return_value, "Unread", unreadmsg); - add_property_long(return_value, "Deleted", deletedmsg); - add_property_long(return_value, "Nmsgs", imap_le_struct->imap_stream->nmsgs); - add_property_long(return_value, "Size", msize); + add_property_int(return_value, "Unread", unreadmsg); + add_property_int(return_value, "Deleted", deletedmsg); + add_property_int(return_value, "Nmsgs", imap_le_struct->imap_stream->nmsgs); + add_property_int(return_value, "Size", msize); rfc822_date(date); add_property_string(return_value, "Date", date); add_property_string(return_value, "Driver", imap_le_struct->imap_stream->dtb->name); add_property_string(return_value, "Mailbox", imap_le_struct->imap_stream->mailbox); - add_property_long(return_value, "Recent", imap_le_struct->imap_stream->recent); + add_property_int(return_value, "Recent", imap_le_struct->imap_stream->recent); } /* }}} */ @@ -3130,7 +3130,7 @@ PHP_FUNCTION(imap_sort) array_init(return_value); if (slst != NIL && slst != 0) { for (sl = slst; *sl; sl++) { - add_next_index_long(return_value, *sl); + add_next_index_int(return_value, *sl); } fs_give ((void **) &slst); } @@ -3193,7 +3193,7 @@ PHP_FUNCTION(imap_uid) RETURN_FALSE; } - RETURN_LONG(mail_uid(imap_le_struct->imap_stream, msgno)); + RETURN_INT(mail_uid(imap_le_struct->imap_stream, msgno)); } /* }}} */ @@ -3211,7 +3211,7 @@ PHP_FUNCTION(imap_msgno) ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); - RETURN_LONG(mail_msgno(imap_le_struct->imap_stream, msgno)); + RETURN_INT(mail_msgno(imap_le_struct->imap_stream, msgno)); } /* }}} */ @@ -3234,21 +3234,21 @@ PHP_FUNCTION(imap_status) object_init(return_value); if (mail_status(imap_le_struct->imap_stream, mbx, flags)) { - add_property_long(return_value, "flags", IMAPG(status_flags)); + add_property_int(return_value, "flags", IMAPG(status_flags)); if (IMAPG(status_flags) & SA_MESSAGES) { - add_property_long(return_value, "messages", IMAPG(status_messages)); + add_property_int(return_value, "messages", IMAPG(status_messages)); } if (IMAPG(status_flags) & SA_RECENT) { - add_property_long(return_value, "recent", IMAPG(status_recent)); + add_property_int(return_value, "recent", IMAPG(status_recent)); } if (IMAPG(status_flags) & SA_UNSEEN) { - add_property_long(return_value, "unseen", IMAPG(status_unseen)); + add_property_int(return_value, "unseen", IMAPG(status_unseen)); } if (IMAPG(status_flags) & SA_UIDNEXT) { - add_property_long(return_value, "uidnext", IMAPG(status_uidnext)); + add_property_int(return_value, "uidnext", IMAPG(status_uidnext)); } if (IMAPG(status_flags) & SA_UIDVALIDITY) { - add_property_long(return_value, "uidvalidity", IMAPG(status_uidvalidity)); + add_property_int(return_value, "uidvalidity", IMAPG(status_uidvalidity)); } } else { RETURN_FALSE; @@ -3288,49 +3288,49 @@ PHP_FUNCTION(imap_bodystruct) RETURN_FALSE; } if (body->type <= TYPEMAX) { - add_property_long(return_value, "type", body->type); + add_property_int(return_value, "type", body->type); } if (body->encoding <= ENCMAX) { - add_property_long(return_value, "encoding", body->encoding); + add_property_int(return_value, "encoding", body->encoding); } if (body->subtype) { - add_property_long(return_value, "ifsubtype", 1); + add_property_int(return_value, "ifsubtype", 1); add_property_string(return_value, "subtype", body->subtype); } else { - add_property_long(return_value, "ifsubtype", 0); + add_property_int(return_value, "ifsubtype", 0); } if (body->description) { - add_property_long(return_value, "ifdescription", 1); + add_property_int(return_value, "ifdescription", 1); add_property_string(return_value, "description", body->description); } else { - add_property_long(return_value, "ifdescription", 0); + add_property_int(return_value, "ifdescription", 0); } if (body->id) { - add_property_long(return_value, "ifid", 1); + add_property_int(return_value, "ifid", 1); add_property_string(return_value, "id", body->id); } else { - add_property_long(return_value, "ifid", 0); + add_property_int(return_value, "ifid", 0); } if (body->size.lines) { - add_property_long(return_value, "lines", body->size.lines); + add_property_int(return_value, "lines", body->size.lines); } if (body->size.bytes) { - add_property_long(return_value, "bytes", body->size.bytes); + add_property_int(return_value, "bytes", body->size.bytes); } #ifdef IMAP41 if (body->disposition.type) { - add_property_long(return_value, "ifdisposition", 1); + add_property_int(return_value, "ifdisposition", 1); add_property_string(return_value, "disposition", body->disposition.type); } else { - add_property_long(return_value, "ifdisposition", 0); + add_property_int(return_value, "ifdisposition", 0); } if (body->disposition.parameter) { dpar = body->disposition.parameter; - add_property_long(return_value, "ifdparameters", 1); + add_property_int(return_value, "ifdparameters", 1); array_init(&dparametres); do { object_init(&dparam); @@ -3340,12 +3340,12 @@ PHP_FUNCTION(imap_bodystruct) } while ((dpar = dpar->next)); add_assoc_object(return_value, "dparameters", &dparametres TSRMLS_CC); } else { - add_property_long(return_value, "ifdparameters", 0); + add_property_int(return_value, "ifdparameters", 0); } #endif if ((par = body->parameter)) { - add_property_long(return_value, "ifparameters", 1); + add_property_int(return_value, "ifparameters", 1); array_init(¶metres); do { @@ -3361,7 +3361,7 @@ PHP_FUNCTION(imap_bodystruct) } while ((par = par->next)); } else { object_init(¶metres); - add_property_long(return_value, "ifparameters", 0); + add_property_int(return_value, "ifparameters", 0); } add_assoc_object(return_value, "parameters", ¶metres TSRMLS_CC); } @@ -3436,16 +3436,16 @@ PHP_FUNCTION(imap_fetch_overview) if (env->in_reply_to) { add_property_string(&myoverview, "in_reply_to", env->in_reply_to); } - add_property_long(&myoverview, "size", elt->rfc822_size); - add_property_long(&myoverview, "uid", mail_uid(imap_le_struct->imap_stream, i)); - add_property_long(&myoverview, "msgno", i); - add_property_long(&myoverview, "recent", elt->recent); - add_property_long(&myoverview, "flagged", elt->flagged); - add_property_long(&myoverview, "answered", elt->answered); - add_property_long(&myoverview, "deleted", elt->deleted); - add_property_long(&myoverview, "seen", elt->seen); - add_property_long(&myoverview, "draft", elt->draft); - add_property_long(&myoverview, "udate", mail_longdate(elt)); + add_property_int(&myoverview, "size", elt->rfc822_size); + add_property_int(&myoverview, "uid", mail_uid(imap_le_struct->imap_stream, i)); + add_property_int(&myoverview, "msgno", i); + add_property_int(&myoverview, "recent", elt->recent); + add_property_int(&myoverview, "flagged", elt->flagged); + add_property_int(&myoverview, "answered", elt->answered); + add_property_int(&myoverview, "deleted", elt->deleted); + add_property_int(&myoverview, "seen", elt->seen); + add_property_int(&myoverview, "draft", elt->draft); + add_property_int(&myoverview, "udate", mail_longdate(elt)); add_next_index_object(return_value, &myoverview TSRMLS_CC); } } @@ -3474,7 +3474,7 @@ PHP_FUNCTION(imap_mail_compose) } #define PHP_RFC822_PARSE_ADRLIST(target, value) \ - str_copy = estrndup(Z_STRVAL_P(value), Z_STRLEN_P(value)); \ + str_copy = estrndup(Z_STRVAL_P(value), Z_STRSIZE_P(value)); \ rfc822_parse_adrlist(target, str_copy, "NO HOST"); \ efree(str_copy); @@ -3530,9 +3530,9 @@ PHP_FUNCTION(imap_mail_compose) ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(pvalue), env_data) { custom_headers_param = mail_newbody_parameter(); convert_to_string_ex(env_data); - custom_headers_param->value = (char *) fs_get(Z_STRLEN_P(env_data) + 1); + custom_headers_param->value = (char *) fs_get(Z_STRSIZE_P(env_data) + 1); custom_headers_param->attribute = NULL; - memcpy(custom_headers_param->value, Z_STRVAL_P(env_data), Z_STRLEN_P(env_data) + 1); + memcpy(custom_headers_param->value, Z_STRVAL_P(env_data), Z_STRSIZE_P(env_data) + 1); custom_headers_param->next = tmp_param; tmp_param = custom_headers_param; } ZEND_HASH_FOREACH_END(); @@ -3553,12 +3553,12 @@ PHP_FUNCTION(imap_mail_compose) topbod = bod; if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "type", sizeof("type") - 1)) != NULL) { - convert_to_long_ex(pvalue); - bod->type = (short) Z_LVAL_P(pvalue); + convert_to_int_ex(pvalue); + bod->type = (short) Z_IVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "encoding", sizeof("encoding") - 1)) != NULL) { - convert_to_long_ex(pvalue); - bod->encoding = (short) Z_LVAL_P(pvalue); + convert_to_int_ex(pvalue); + bod->encoding = (short) Z_IVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "charset", sizeof("charset") - 1)) != NULL) { convert_to_string_ex(pvalue); @@ -3575,8 +3575,8 @@ PHP_FUNCTION(imap_mail_compose) disp_param = mail_newbody_parameter(); disp_param->attribute = cpystr(key->val); convert_to_string_ex(disp_data); - disp_param->value = (char *) fs_get(Z_STRLEN_P(disp_data) + 1); - memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRLEN_P(disp_data) + 1); + disp_param->value = (char *) fs_get(Z_STRSIZE_P(disp_data) + 1); + memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRSIZE_P(disp_data) + 1); disp_param->next = tmp_param; tmp_param = disp_param; } ZEND_HASH_FOREACH_END(); @@ -3597,8 +3597,8 @@ PHP_FUNCTION(imap_mail_compose) } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "disposition.type", sizeof("disposition.type") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->disposition.type = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); - memcpy(bod->disposition.type, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue)+1); + bod->disposition.type = (char *) fs_get(Z_STRSIZE_P(pvalue) + 1); + memcpy(bod->disposition.type, Z_STRVAL_P(pvalue), Z_STRSIZE_P(pvalue)+1); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "disposition", sizeof("disposition") - 1)) != NULL) { if (Z_TYPE_P(pvalue) == IS_ARRAY) { @@ -3607,8 +3607,8 @@ PHP_FUNCTION(imap_mail_compose) disp_param = mail_newbody_parameter(); disp_param->attribute = cpystr(key->val); convert_to_string_ex(disp_data); - disp_param->value = (char *) fs_get(Z_STRLEN_P(disp_data) + 1); - memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRLEN_P(disp_data) + 1); + disp_param->value = (char *) fs_get(Z_STRSIZE_P(disp_data) + 1); + memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRSIZE_P(disp_data) + 1); disp_param->next = tmp_param; tmp_param = disp_param; } ZEND_HASH_FOREACH_END(); @@ -3617,21 +3617,21 @@ PHP_FUNCTION(imap_mail_compose) } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "contents.data", sizeof("contents.data") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->contents.text.data = fs_get(Z_STRLEN_P(pvalue) + 1); - memcpy(bod->contents.text.data, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue)+1); - bod->contents.text.size = Z_STRLEN_P(pvalue); + bod->contents.text.data = fs_get(Z_STRSIZE_P(pvalue) + 1); + memcpy(bod->contents.text.data, Z_STRVAL_P(pvalue), Z_STRSIZE_P(pvalue)+1); + bod->contents.text.size = Z_STRSIZE_P(pvalue); } else { bod->contents.text.data = fs_get(1); memcpy(bod->contents.text.data, "", 1); bod->contents.text.size = 0; } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "lines", sizeof("lines") - 1)) != NULL) { - convert_to_long_ex(pvalue); - bod->size.lines = Z_LVAL_P(pvalue); + convert_to_int_ex(pvalue); + bod->size.lines = Z_IVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "bytes", sizeof("bytes") - 1)) != NULL) { - convert_to_long_ex(pvalue); - bod->size.bytes = Z_LVAL_P(pvalue); + convert_to_int_ex(pvalue); + bod->size.bytes = Z_IVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "md5", sizeof("md5") - 1)) != NULL) { convert_to_string_ex(pvalue); @@ -3640,8 +3640,8 @@ PHP_FUNCTION(imap_mail_compose) } else if (Z_TYPE_P(data) == IS_ARRAY) { short type = -1; if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "type", sizeof("type") - 1)) != NULL) { - convert_to_long_ex(pvalue); - type = (short) Z_LVAL_P(pvalue); + convert_to_int_ex(pvalue); + type = (short) Z_IVAL_P(pvalue); } if (!toppart) { @@ -3660,14 +3660,14 @@ PHP_FUNCTION(imap_mail_compose) } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "encoding", sizeof("encoding") - 1)) != NULL) { - convert_to_long_ex(pvalue); - bod->encoding = (short) Z_LVAL_P(pvalue); + convert_to_int_ex(pvalue); + bod->encoding = (short) Z_IVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "charset", sizeof("charset") - 1)) != NULL) { convert_to_string_ex(pvalue); tmp_param = mail_newbody_parameter(); - tmp_param->value = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); - memcpy(tmp_param->value, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue) + 1); + tmp_param->value = (char *) fs_get(Z_STRSIZE_P(pvalue) + 1); + memcpy(tmp_param->value, Z_STRVAL_P(pvalue), Z_STRSIZE_P(pvalue) + 1); tmp_param->attribute = cpystr("CHARSET"); tmp_param->next = bod->parameter; bod->parameter = tmp_param; @@ -3679,8 +3679,8 @@ PHP_FUNCTION(imap_mail_compose) disp_param = mail_newbody_parameter(); disp_param->attribute = cpystr(key->val); convert_to_string_ex(disp_data); - disp_param->value = (char *)fs_get(Z_STRLEN_P(disp_data) + 1); - memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRLEN_P(disp_data) + 1); + disp_param->value = (char *)fs_get(Z_STRSIZE_P(disp_data) + 1); + memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRSIZE_P(disp_data) + 1); disp_param->next = tmp_param; tmp_param = disp_param; } ZEND_HASH_FOREACH_END(); @@ -3701,8 +3701,8 @@ PHP_FUNCTION(imap_mail_compose) } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "disposition.type", sizeof("disposition.type") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->disposition.type = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); - memcpy(bod->disposition.type, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue)+1); + bod->disposition.type = (char *) fs_get(Z_STRSIZE_P(pvalue) + 1); + memcpy(bod->disposition.type, Z_STRVAL_P(pvalue), Z_STRSIZE_P(pvalue)+1); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "disposition", sizeof("disposition") - 1)) != NULL) { if (Z_TYPE_P(pvalue) == IS_ARRAY) { @@ -3711,8 +3711,8 @@ PHP_FUNCTION(imap_mail_compose) disp_param = mail_newbody_parameter(); disp_param->attribute = cpystr(key->val); convert_to_string_ex(disp_data); - disp_param->value = (char *) fs_get(Z_STRLEN_P(disp_data) + 1); - memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRLEN_P(disp_data) + 1); + disp_param->value = (char *) fs_get(Z_STRSIZE_P(disp_data) + 1); + memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRSIZE_P(disp_data) + 1); disp_param->next = tmp_param; tmp_param = disp_param; } ZEND_HASH_FOREACH_END(); @@ -3721,21 +3721,21 @@ PHP_FUNCTION(imap_mail_compose) } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "contents.data", sizeof("contents.data") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->contents.text.data = fs_get(Z_STRLEN_P(pvalue) + 1); - memcpy(bod->contents.text.data, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue) + 1); - bod->contents.text.size = Z_STRLEN_P(pvalue); + bod->contents.text.data = fs_get(Z_STRSIZE_P(pvalue) + 1); + memcpy(bod->contents.text.data, Z_STRVAL_P(pvalue), Z_STRSIZE_P(pvalue) + 1); + bod->contents.text.size = Z_STRSIZE_P(pvalue); } else { bod->contents.text.data = fs_get(1); memcpy(bod->contents.text.data, "", 1); bod->contents.text.size = 0; } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "lines", sizeof("lines") - 1)) != NULL) { - convert_to_long_ex(pvalue); - bod->size.lines = Z_LVAL_P(pvalue); + convert_to_int_ex(pvalue); + bod->size.lines = Z_IVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "bytes", sizeof("bytes") - 1)) != NULL) { - convert_to_long_ex(pvalue); - bod->size.bytes = Z_LVAL_P(pvalue); + convert_to_int_ex(pvalue); + bod->size.bytes = Z_IVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "md5", sizeof("md5") - 1)) != NULL) { convert_to_string_ex(pvalue); @@ -4101,7 +4101,7 @@ PHP_FUNCTION(imap_search) cur = IMAPG(imap_messages); while (cur != NIL) { - add_next_index_long(return_value, cur->msgid); + add_next_index_int(return_value, cur->msgid); cur = cur->next; } mail_free_messagelist(&IMAPG(imap_messages), &IMAPG(imap_messages_tail)); @@ -4513,53 +4513,53 @@ void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC) PART *part; if (body->type <= TYPEMAX) { - add_property_long(arg, "type", body->type); + add_property_int(arg, "type", body->type); } if (body->encoding <= ENCMAX) { - add_property_long(arg, "encoding", body->encoding); + add_property_int(arg, "encoding", body->encoding); } if (body->subtype) { - add_property_long(arg, "ifsubtype", 1); + add_property_int(arg, "ifsubtype", 1); add_property_string(arg, "subtype", body->subtype); } else { - add_property_long(arg, "ifsubtype", 0); + add_property_int(arg, "ifsubtype", 0); } if (body->description) { - add_property_long(arg, "ifdescription", 1); + add_property_int(arg, "ifdescription", 1); add_property_string(arg, "description", body->description); } else { - add_property_long(arg, "ifdescription", 0); + add_property_int(arg, "ifdescription", 0); } if (body->id) { - add_property_long(arg, "ifid", 1); + add_property_int(arg, "ifid", 1); add_property_string(arg, "id", body->id); } else { - add_property_long(arg, "ifid", 0); + add_property_int(arg, "ifid", 0); } if (body->size.lines) { - add_property_long(arg, "lines", body->size.lines); + add_property_int(arg, "lines", body->size.lines); } if (body->size.bytes) { - add_property_long(arg, "bytes", body->size.bytes); + add_property_int(arg, "bytes", body->size.bytes); } #ifdef IMAP41 if (body->disposition.type) { - add_property_long(arg, "ifdisposition", 1); + add_property_int(arg, "ifdisposition", 1); add_property_string(arg, "disposition", body->disposition.type); } else { - add_property_long(arg, "ifdisposition", 0); + add_property_int(arg, "ifdisposition", 0); } if (body->disposition.parameter) { dpar = body->disposition.parameter; - add_property_long(arg, "ifdparameters", 1); + add_property_int(arg, "ifdparameters", 1); array_init(&dparametres); do { object_init(&dparam); @@ -4569,12 +4569,12 @@ void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC) } while ((dpar = dpar->next)); add_assoc_object(arg, "dparameters", &dparametres TSRMLS_CC); } else { - add_property_long(arg, "ifdparameters", 0); + add_property_int(arg, "ifdparameters", 0); } #endif if ((par = body->parameter)) { - add_property_long(arg, "ifparameters", 1); + add_property_int(arg, "ifparameters", 1); array_init(¶metres); do { @@ -4590,7 +4590,7 @@ void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC) } while ((par = par->next)); } else { object_init(¶metres); - add_property_long(arg, "ifparameters", 0); + add_property_int(arg, "ifparameters", 0); } add_assoc_object(arg, "parameters", ¶metres TSRMLS_CC); @@ -4627,24 +4627,24 @@ static void build_thread_tree_helper(THREADNODE *cur, zval *tree, long *numNodes /* define "#.num" */ snprintf(buf, 25, "%ld.num", thisNode); - add_assoc_long(tree, buf, cur->num); + add_assoc_int(tree, buf, cur->num); snprintf(buf, 25, "%ld.next", thisNode); if(cur->next) { (*numNodes)++; - add_assoc_long(tree, buf, *numNodes); + add_assoc_int(tree, buf, *numNodes); build_thread_tree_helper(cur->next, tree, numNodes, buf); } else { /* "null pointer" */ - add_assoc_long(tree, buf, 0); + add_assoc_int(tree, buf, 0); } snprintf(buf, 25, "%ld.branch", thisNode); if(cur->branch) { (*numNodes)++; - add_assoc_long(tree, buf, *numNodes); + add_assoc_int(tree, buf, *numNodes); build_thread_tree_helper(cur->branch, tree, numNodes, buf); } else { /* "null pointer" */ - add_assoc_long(tree, buf, 0); + add_assoc_int(tree, buf, 0); } } /* }}} */ @@ -4733,7 +4733,7 @@ PHP_FUNCTION(imap_timeout) } timeout = (long) mail_parameters(NIL, timeout_type, NIL); - RETURN_LONG(timeout); + RETURN_INT(timeout); } else if (timeout >= 0) { switch (ttype) { case 1: -- cgit v1.2.1 From c3e3c98ec666812daaaca896cf5ef758a8a6df14 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Mon, 25 Aug 2014 19:24:55 +0200 Subject: master renames phase 1 --- ext/imap/php_imap.c | 366 ++++++++++++++++++++++++++-------------------------- 1 file changed, 183 insertions(+), 183 deletions(-) (limited to 'ext/imap/php_imap.c') diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index 6e33e463ae..7e56de668a 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -770,12 +770,12 @@ void mail_getquota(MAILSTREAM *stream, char *qroot, QUOTALIST *qlist) if (strncmp(qlist->name, "STORAGE", 7) == 0) { /* this is to add backwards compatibility */ - add_assoc_int_ex(return_value, "usage", sizeof("usage") - 1, qlist->usage); - add_assoc_int_ex(return_value, "limit", sizeof("limit") - 1, qlist->limit); + add_assoc_long_ex(return_value, "usage", sizeof("usage") - 1, qlist->usage); + add_assoc_long_ex(return_value, "limit", sizeof("limit") - 1, qlist->limit); } - add_assoc_int_ex(&t_map, "usage", sizeof("usage") - 1, qlist->usage); - add_assoc_int_ex(&t_map, "limit", sizeof("limit") - 1, qlist->limit); + add_assoc_long_ex(&t_map, "usage", sizeof("usage") - 1, qlist->usage); + add_assoc_long_ex(&t_map, "limit", sizeof("limit") - 1, qlist->limit); add_assoc_zval_ex(return_value, qlist->name, strlen(qlist->name), &t_map); } } @@ -864,7 +864,7 @@ PHP_MINIT_FUNCTION(imap) #endif /* lets allow NIL */ - REGISTER_INT_CONSTANT("NIL", NIL, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("NIL", NIL, CONST_PERSISTENT | CONST_CS); /* plug in our gets */ mail_parameters(NIL, SET_GETS, (void *) NIL); @@ -876,30 +876,30 @@ PHP_MINIT_FUNCTION(imap) mail_parameters(NIL, SET_CLOSETIMEOUT, (void *) FG(default_socket_timeout)); /* timeout constants */ - REGISTER_INT_CONSTANT("IMAP_OPENTIMEOUT", 1, CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("IMAP_READTIMEOUT", 2, CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("IMAP_WRITETIMEOUT", 3, CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("IMAP_CLOSETIMEOUT", 4, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("IMAP_OPENTIMEOUT", 1, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("IMAP_READTIMEOUT", 2, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("IMAP_WRITETIMEOUT", 3, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("IMAP_CLOSETIMEOUT", 4, CONST_PERSISTENT | CONST_CS); /* Open Options */ - REGISTER_INT_CONSTANT("OP_DEBUG", OP_DEBUG, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("OP_DEBUG", OP_DEBUG, CONST_PERSISTENT | CONST_CS); /* debug protocol negotiations */ - REGISTER_INT_CONSTANT("OP_READONLY", OP_READONLY, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("OP_READONLY", OP_READONLY, CONST_PERSISTENT | CONST_CS); /* read-only open */ - REGISTER_INT_CONSTANT("OP_ANONYMOUS", OP_ANONYMOUS, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("OP_ANONYMOUS", OP_ANONYMOUS, CONST_PERSISTENT | CONST_CS); /* anonymous open of newsgroup */ - REGISTER_INT_CONSTANT("OP_SHORTCACHE", OP_SHORTCACHE, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("OP_SHORTCACHE", OP_SHORTCACHE, CONST_PERSISTENT | CONST_CS); /* short (elt-only) caching */ - REGISTER_INT_CONSTANT("OP_SILENT", OP_SILENT, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("OP_SILENT", OP_SILENT, CONST_PERSISTENT | CONST_CS); /* don't pass up events (internal use) */ - REGISTER_INT_CONSTANT("OP_PROTOTYPE", OP_PROTOTYPE, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("OP_PROTOTYPE", OP_PROTOTYPE, CONST_PERSISTENT | CONST_CS); /* return driver prototype */ - REGISTER_INT_CONSTANT("OP_HALFOPEN", OP_HALFOPEN, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("OP_HALFOPEN", OP_HALFOPEN, CONST_PERSISTENT | CONST_CS); /* half-open (IMAP connect but no select) */ - REGISTER_INT_CONSTANT("OP_EXPUNGE", OP_EXPUNGE, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("OP_EXPUNGE", OP_EXPUNGE, CONST_PERSISTENT | CONST_CS); /* silently expunge recycle stream */ - REGISTER_INT_CONSTANT("OP_SECURE", OP_SECURE, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("OP_SECURE", OP_SECURE, CONST_PERSISTENT | CONST_CS); /* don't do non-secure authentication */ /* @@ -910,111 +910,111 @@ PHP_MINIT_FUNCTION(imap) options and the value for this one conflicts, simply make PHP_EXPUNGE higher at the top of this file */ - REGISTER_INT_CONSTANT("CL_EXPUNGE", PHP_EXPUNGE, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("CL_EXPUNGE", PHP_EXPUNGE, CONST_PERSISTENT | CONST_CS); /* expunge silently */ /* Fetch options */ - REGISTER_INT_CONSTANT("FT_UID", FT_UID, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("FT_UID", FT_UID, CONST_PERSISTENT | CONST_CS); /* argument is a UID */ - REGISTER_INT_CONSTANT("FT_PEEK", FT_PEEK, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("FT_PEEK", FT_PEEK, CONST_PERSISTENT | CONST_CS); /* peek at data */ - REGISTER_INT_CONSTANT("FT_NOT", FT_NOT, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("FT_NOT", FT_NOT, CONST_PERSISTENT | CONST_CS); /* NOT flag for header lines fetch */ - REGISTER_INT_CONSTANT("FT_INTERNAL", FT_INTERNAL, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("FT_INTERNAL", FT_INTERNAL, CONST_PERSISTENT | CONST_CS); /* text can be internal strings */ - REGISTER_INT_CONSTANT("FT_PREFETCHTEXT", FT_PREFETCHTEXT, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("FT_PREFETCHTEXT", FT_PREFETCHTEXT, CONST_PERSISTENT | CONST_CS); /* IMAP prefetch text when fetching header */ /* Flagging options */ - REGISTER_INT_CONSTANT("ST_UID", ST_UID, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("ST_UID", ST_UID, CONST_PERSISTENT | CONST_CS); /* argument is a UID sequence */ - REGISTER_INT_CONSTANT("ST_SILENT", ST_SILENT, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("ST_SILENT", ST_SILENT, CONST_PERSISTENT | CONST_CS); /* don't return results */ - REGISTER_INT_CONSTANT("ST_SET", ST_SET, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("ST_SET", ST_SET, CONST_PERSISTENT | CONST_CS); /* set vs. clear */ /* Copy options */ - REGISTER_INT_CONSTANT("CP_UID", CP_UID, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("CP_UID", CP_UID, CONST_PERSISTENT | CONST_CS); /* argument is a UID sequence */ - REGISTER_INT_CONSTANT("CP_MOVE", CP_MOVE, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("CP_MOVE", CP_MOVE, CONST_PERSISTENT | CONST_CS); /* delete from source after copying */ /* Search/sort options */ - REGISTER_INT_CONSTANT("SE_UID", SE_UID, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SE_UID", SE_UID, CONST_PERSISTENT | CONST_CS); /* return UID */ - REGISTER_INT_CONSTANT("SE_FREE", SE_FREE, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SE_FREE", SE_FREE, CONST_PERSISTENT | CONST_CS); /* free search program after finished */ - REGISTER_INT_CONSTANT("SE_NOPREFETCH", SE_NOPREFETCH, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SE_NOPREFETCH", SE_NOPREFETCH, CONST_PERSISTENT | CONST_CS); /* no search prefetching */ - REGISTER_INT_CONSTANT("SO_FREE", SO_FREE, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SO_FREE", SO_FREE, CONST_PERSISTENT | CONST_CS); /* free sort program after finished */ - REGISTER_INT_CONSTANT("SO_NOSERVER", SO_NOSERVER, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SO_NOSERVER", SO_NOSERVER, CONST_PERSISTENT | CONST_CS); /* don't do server-based sort */ /* Status options */ - REGISTER_INT_CONSTANT("SA_MESSAGES", SA_MESSAGES , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SA_MESSAGES", SA_MESSAGES , CONST_PERSISTENT | CONST_CS); /* number of messages */ - REGISTER_INT_CONSTANT("SA_RECENT", SA_RECENT, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SA_RECENT", SA_RECENT, CONST_PERSISTENT | CONST_CS); /* number of recent messages */ - REGISTER_INT_CONSTANT("SA_UNSEEN", SA_UNSEEN , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SA_UNSEEN", SA_UNSEEN , CONST_PERSISTENT | CONST_CS); /* number of unseen messages */ - REGISTER_INT_CONSTANT("SA_UIDNEXT", SA_UIDNEXT, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SA_UIDNEXT", SA_UIDNEXT, CONST_PERSISTENT | CONST_CS); /* next UID to be assigned */ - REGISTER_INT_CONSTANT("SA_UIDVALIDITY", SA_UIDVALIDITY , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SA_UIDVALIDITY", SA_UIDVALIDITY , CONST_PERSISTENT | CONST_CS); /* UID validity value */ - REGISTER_INT_CONSTANT("SA_ALL", sa_all, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SA_ALL", sa_all, CONST_PERSISTENT | CONST_CS); /* get all status information */ /* Bits for mm_list() and mm_lsub() */ - REGISTER_INT_CONSTANT("LATT_NOINFERIORS", LATT_NOINFERIORS , CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("LATT_NOSELECT", LATT_NOSELECT, CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("LATT_MARKED", LATT_MARKED, CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("LATT_UNMARKED", LATT_UNMARKED , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("LATT_NOINFERIORS", LATT_NOINFERIORS , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("LATT_NOSELECT", LATT_NOSELECT, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("LATT_MARKED", LATT_MARKED, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("LATT_UNMARKED", LATT_UNMARKED , CONST_PERSISTENT | CONST_CS); #ifdef LATT_REFERRAL - REGISTER_INT_CONSTANT("LATT_REFERRAL", LATT_REFERRAL, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("LATT_REFERRAL", LATT_REFERRAL, CONST_PERSISTENT | CONST_CS); #endif #ifdef LATT_HASCHILDREN - REGISTER_INT_CONSTANT("LATT_HASCHILDREN", LATT_HASCHILDREN, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("LATT_HASCHILDREN", LATT_HASCHILDREN, CONST_PERSISTENT | CONST_CS); #endif #ifdef LATT_HASNOCHILDREN - REGISTER_INT_CONSTANT("LATT_HASNOCHILDREN", LATT_HASNOCHILDREN, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("LATT_HASNOCHILDREN", LATT_HASNOCHILDREN, CONST_PERSISTENT | CONST_CS); #endif /* Sort functions */ - REGISTER_INT_CONSTANT("SORTDATE", SORTDATE , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SORTDATE", SORTDATE , CONST_PERSISTENT | CONST_CS); /* date */ - REGISTER_INT_CONSTANT("SORTARRIVAL", SORTARRIVAL , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SORTARRIVAL", SORTARRIVAL , CONST_PERSISTENT | CONST_CS); /* arrival date */ - REGISTER_INT_CONSTANT("SORTFROM", SORTFROM , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SORTFROM", SORTFROM , CONST_PERSISTENT | CONST_CS); /* from */ - REGISTER_INT_CONSTANT("SORTSUBJECT", SORTSUBJECT , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SORTSUBJECT", SORTSUBJECT , CONST_PERSISTENT | CONST_CS); /* subject */ - REGISTER_INT_CONSTANT("SORTTO", SORTTO , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SORTTO", SORTTO , CONST_PERSISTENT | CONST_CS); /* to */ - REGISTER_INT_CONSTANT("SORTCC", SORTCC , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SORTCC", SORTCC , CONST_PERSISTENT | CONST_CS); /* cc */ - REGISTER_INT_CONSTANT("SORTSIZE", SORTSIZE , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SORTSIZE", SORTSIZE , CONST_PERSISTENT | CONST_CS); /* size */ - REGISTER_INT_CONSTANT("TYPETEXT", TYPETEXT , CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("TYPEMULTIPART", TYPEMULTIPART , CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("TYPEMESSAGE", TYPEMESSAGE , CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("TYPEAPPLICATION", TYPEAPPLICATION , CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("TYPEAUDIO", TYPEAUDIO , CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("TYPEIMAGE", TYPEIMAGE , CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("TYPEVIDEO", TYPEVIDEO , CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("TYPEMODEL", TYPEMODEL , CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("TYPEOTHER", TYPEOTHER , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("TYPETEXT", TYPETEXT , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("TYPEMULTIPART", TYPEMULTIPART , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("TYPEMESSAGE", TYPEMESSAGE , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("TYPEAPPLICATION", TYPEAPPLICATION , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("TYPEAUDIO", TYPEAUDIO , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("TYPEIMAGE", TYPEIMAGE , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("TYPEVIDEO", TYPEVIDEO , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("TYPEMODEL", TYPEMODEL , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("TYPEOTHER", TYPEOTHER , CONST_PERSISTENT | CONST_CS); /* TYPETEXT unformatted text TYPEMULTIPART multiple part @@ -1027,12 +1027,12 @@ PHP_MINIT_FUNCTION(imap) TYPEOTHER unknown */ - REGISTER_INT_CONSTANT("ENC7BIT", ENC7BIT , CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("ENC8BIT", ENC8BIT , CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("ENCBINARY", ENCBINARY , CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("ENCBASE64", ENCBASE64, CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("ENCQUOTEDPRINTABLE", ENCQUOTEDPRINTABLE , CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("ENCOTHER", ENCOTHER , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("ENC7BIT", ENC7BIT , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("ENC8BIT", ENC8BIT , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("ENCBINARY", ENCBINARY , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("ENCBASE64", ENCBASE64, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("ENCQUOTEDPRINTABLE", ENCQUOTEDPRINTABLE , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("ENCOTHER", ENCOTHER , CONST_PERSISTENT | CONST_CS); /* ENC7BIT 7 bit SMTP semantic data ENC8BIT 8 bit SMTP semantic data @@ -1042,9 +1042,9 @@ PHP_MINIT_FUNCTION(imap) ENCOTHER unknown */ - REGISTER_INT_CONSTANT("IMAP_GC_ELT", GC_ELT , CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("IMAP_GC_ENV", GC_ENV , CONST_PERSISTENT | CONST_CS); - REGISTER_INT_CONSTANT("IMAP_GC_TEXTS", GC_TEXTS , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("IMAP_GC_ELT", GC_ELT , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("IMAP_GC_ENV", GC_ENV , CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("IMAP_GC_TEXTS", GC_TEXTS , CONST_PERSISTENT | CONST_CS); /* GC_ELT message cache elements GC_ENV ENVELOPEs and BODYs @@ -1173,7 +1173,7 @@ static void php_imap_do_open(INTERNAL_FUNCTION_PARAMETERS, int persistent) if ((disabled_auth_method = zend_hash_str_find(HASH_OF(params), "DISABLE_AUTHENTICATOR", sizeof("DISABLE_AUTHENTICATOR") - 1)) != NULL) { switch (Z_TYPE_P(disabled_auth_method)) { case IS_STRING: - if (Z_STRSIZE_P(disabled_auth_method) > 1) { + if (Z_STRLEN_P(disabled_auth_method) > 1) { mail_parameters(NIL, DISABLE_AUTHENTICATOR, (void *)Z_STRVAL_P(disabled_auth_method)); } break; @@ -1189,7 +1189,7 @@ static void php_imap_do_open(INTERNAL_FUNCTION_PARAMETERS, int persistent) for (i = 0; i < nelems; i++) { if ((z_auth_method = zend_hash_index_find(Z_ARRVAL_P(disabled_auth_method), i)) != NULL) { if (Z_TYPE_P(z_auth_method) == IS_STRING) { - if (Z_STRSIZE_P(z_auth_method) > 1) { + if (Z_STRLEN_P(z_auth_method) > 1) { mail_parameters(NIL, DISABLE_AUTHENTICATOR, (void *)Z_STRVAL_P(z_auth_method)); } } else { @@ -1199,7 +1199,7 @@ static void php_imap_do_open(INTERNAL_FUNCTION_PARAMETERS, int persistent) } } break; - case IS_INT: + case IS_LONG: default: php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid argument, expect string or array of strings"); break; @@ -1326,20 +1326,20 @@ PHP_FUNCTION(imap_append) return; } - regex = STR_INIT("/[0-3][0-9]-((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))-[0-9]{4} [0-2][0-9]:[0-5][0-9]:[0-5][0-9] [+-][0-9]{4}/", sizeof("/[0-3][0-9]-((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))-[0-9]{4} [0-2][0-9]:[0-5][0-9]:[0-5][0-9] [+-][0-9]{4}/") - 1, 0); + regex = zend_string_init("/[0-3][0-9]-((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))-[0-9]{4} [0-2][0-9]:[0-5][0-9]:[0-5][0-9] [+-][0-9]{4}/", sizeof("/[0-3][0-9]-((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))-[0-9]{4} [0-2][0-9]:[0-5][0-9]:[0-5][0-9] [+-][0-9]{4}/") - 1, 0); if (internal_date) { /* Make sure the given internal_date string matches the RFC specifiedformat */ if ((pce = pcre_get_compiled_regex_cache(regex TSRMLS_CC))== NULL) { - STR_FREE(regex); + zend_string_free(regex); RETURN_FALSE; } - STR_FREE(regex); + zend_string_free(regex); php_pcre_match_impl(pce, internal_date, internal_date_len, return_value, subpats, global, 0, regex_flags, start_offset TSRMLS_CC); - if (!Z_IVAL_P(return_value)) { + if (!Z_LVAL_P(return_value)) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "internal date not correctly formatted"); internal_date = NULL; } @@ -1370,7 +1370,7 @@ PHP_FUNCTION(imap_num_msg) ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); - RETURN_INT(imap_le_struct->imap_stream->nmsgs); + RETURN_LONG(imap_le_struct->imap_stream->nmsgs); } /* }}} */ @@ -1404,7 +1404,7 @@ PHP_FUNCTION(imap_num_recent) ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); - RETURN_INT(imap_le_struct->imap_stream->recent); + RETURN_LONG(imap_le_struct->imap_stream->recent); } /* }}} */ @@ -1906,7 +1906,7 @@ PHP_FUNCTION(imap_list_full) while (cur != NIL) { object_init(&mboxob); add_property_string(&mboxob, "name", (char*)cur->LTEXT); - add_property_int(&mboxob, "attributes", cur->attributes); + add_property_long(&mboxob, "attributes", cur->attributes); #ifdef IMAP41 delim[0] = (char)cur->delimiter; delim[1] = 0; @@ -1981,8 +1981,8 @@ PHP_FUNCTION(imap_check) add_property_string(return_value, "Date", date); add_property_string(return_value, "Driver", imap_le_struct->imap_stream->dtb->name); add_property_string(return_value, "Mailbox", imap_le_struct->imap_stream->mailbox); - add_property_int(return_value, "Nmsgs", imap_le_struct->imap_stream->nmsgs); - add_property_int(return_value, "Recent", imap_le_struct->imap_stream->recent); + add_property_long(return_value, "Nmsgs", imap_le_struct->imap_stream->nmsgs); + add_property_long(return_value, "Recent", imap_le_struct->imap_stream->recent); } else { RETURN_FALSE; } @@ -2101,7 +2101,7 @@ PHP_FUNCTION(imap_headerinfo) snprintf(dummy, sizeof(dummy), "%ld", cache->rfc822_size); add_property_string(return_value, "Size", dummy); - add_property_int(return_value, "udate", mail_longdate(cache)); + add_property_long(return_value, "udate", mail_longdate(cache)); if (en->from && fromlength) { fulladdress[0] = 0x00; @@ -2211,7 +2211,7 @@ PHP_FUNCTION(imap_lsub_full) while (cur != NIL) { object_init(&mboxob); add_property_string(&mboxob, "name", (char*)cur->LTEXT); - add_property_int(&mboxob, "attributes", cur->attributes); + add_property_long(&mboxob, "attributes", cur->attributes); #ifdef IMAP41 delim[0] = (char)cur->delimiter; delim[1] = 0; @@ -2424,7 +2424,7 @@ PHP_FUNCTION(imap_savebody) switch (Z_TYPE_P(out)) { - case IS_INT: + case IS_LONG: case IS_RESOURCE: close_stream = 0; php_stream_from_zval(writer, out); @@ -2581,15 +2581,15 @@ PHP_FUNCTION(imap_mailboxmsginfo) } msize = msize + cache->rfc822_size; } - add_property_int(return_value, "Unread", unreadmsg); - add_property_int(return_value, "Deleted", deletedmsg); - add_property_int(return_value, "Nmsgs", imap_le_struct->imap_stream->nmsgs); - add_property_int(return_value, "Size", msize); + add_property_long(return_value, "Unread", unreadmsg); + add_property_long(return_value, "Deleted", deletedmsg); + add_property_long(return_value, "Nmsgs", imap_le_struct->imap_stream->nmsgs); + add_property_long(return_value, "Size", msize); rfc822_date(date); add_property_string(return_value, "Date", date); add_property_string(return_value, "Driver", imap_le_struct->imap_stream->dtb->name); add_property_string(return_value, "Mailbox", imap_le_struct->imap_stream->mailbox); - add_property_int(return_value, "Recent", imap_le_struct->imap_stream->recent); + add_property_long(return_value, "Recent", imap_le_struct->imap_stream->recent); } /* }}} */ @@ -2929,7 +2929,7 @@ PHP_FUNCTION(imap_utf7_encode) } /* allocate output buffer */ - out = STR_ALLOC(outlen, 0); + out = zend_string_alloc(outlen, 0); /* encode input string */ outp = (unsigned char*)out->val; @@ -3130,7 +3130,7 @@ PHP_FUNCTION(imap_sort) array_init(return_value); if (slst != NIL && slst != 0) { for (sl = slst; *sl; sl++) { - add_next_index_int(return_value, *sl); + add_next_index_long(return_value, *sl); } fs_give ((void **) &slst); } @@ -3193,7 +3193,7 @@ PHP_FUNCTION(imap_uid) RETURN_FALSE; } - RETURN_INT(mail_uid(imap_le_struct->imap_stream, msgno)); + RETURN_LONG(mail_uid(imap_le_struct->imap_stream, msgno)); } /* }}} */ @@ -3211,7 +3211,7 @@ PHP_FUNCTION(imap_msgno) ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); - RETURN_INT(mail_msgno(imap_le_struct->imap_stream, msgno)); + RETURN_LONG(mail_msgno(imap_le_struct->imap_stream, msgno)); } /* }}} */ @@ -3234,21 +3234,21 @@ PHP_FUNCTION(imap_status) object_init(return_value); if (mail_status(imap_le_struct->imap_stream, mbx, flags)) { - add_property_int(return_value, "flags", IMAPG(status_flags)); + add_property_long(return_value, "flags", IMAPG(status_flags)); if (IMAPG(status_flags) & SA_MESSAGES) { - add_property_int(return_value, "messages", IMAPG(status_messages)); + add_property_long(return_value, "messages", IMAPG(status_messages)); } if (IMAPG(status_flags) & SA_RECENT) { - add_property_int(return_value, "recent", IMAPG(status_recent)); + add_property_long(return_value, "recent", IMAPG(status_recent)); } if (IMAPG(status_flags) & SA_UNSEEN) { - add_property_int(return_value, "unseen", IMAPG(status_unseen)); + add_property_long(return_value, "unseen", IMAPG(status_unseen)); } if (IMAPG(status_flags) & SA_UIDNEXT) { - add_property_int(return_value, "uidnext", IMAPG(status_uidnext)); + add_property_long(return_value, "uidnext", IMAPG(status_uidnext)); } if (IMAPG(status_flags) & SA_UIDVALIDITY) { - add_property_int(return_value, "uidvalidity", IMAPG(status_uidvalidity)); + add_property_long(return_value, "uidvalidity", IMAPG(status_uidvalidity)); } } else { RETURN_FALSE; @@ -3288,49 +3288,49 @@ PHP_FUNCTION(imap_bodystruct) RETURN_FALSE; } if (body->type <= TYPEMAX) { - add_property_int(return_value, "type", body->type); + add_property_long(return_value, "type", body->type); } if (body->encoding <= ENCMAX) { - add_property_int(return_value, "encoding", body->encoding); + add_property_long(return_value, "encoding", body->encoding); } if (body->subtype) { - add_property_int(return_value, "ifsubtype", 1); + add_property_long(return_value, "ifsubtype", 1); add_property_string(return_value, "subtype", body->subtype); } else { - add_property_int(return_value, "ifsubtype", 0); + add_property_long(return_value, "ifsubtype", 0); } if (body->description) { - add_property_int(return_value, "ifdescription", 1); + add_property_long(return_value, "ifdescription", 1); add_property_string(return_value, "description", body->description); } else { - add_property_int(return_value, "ifdescription", 0); + add_property_long(return_value, "ifdescription", 0); } if (body->id) { - add_property_int(return_value, "ifid", 1); + add_property_long(return_value, "ifid", 1); add_property_string(return_value, "id", body->id); } else { - add_property_int(return_value, "ifid", 0); + add_property_long(return_value, "ifid", 0); } if (body->size.lines) { - add_property_int(return_value, "lines", body->size.lines); + add_property_long(return_value, "lines", body->size.lines); } if (body->size.bytes) { - add_property_int(return_value, "bytes", body->size.bytes); + add_property_long(return_value, "bytes", body->size.bytes); } #ifdef IMAP41 if (body->disposition.type) { - add_property_int(return_value, "ifdisposition", 1); + add_property_long(return_value, "ifdisposition", 1); add_property_string(return_value, "disposition", body->disposition.type); } else { - add_property_int(return_value, "ifdisposition", 0); + add_property_long(return_value, "ifdisposition", 0); } if (body->disposition.parameter) { dpar = body->disposition.parameter; - add_property_int(return_value, "ifdparameters", 1); + add_property_long(return_value, "ifdparameters", 1); array_init(&dparametres); do { object_init(&dparam); @@ -3340,12 +3340,12 @@ PHP_FUNCTION(imap_bodystruct) } while ((dpar = dpar->next)); add_assoc_object(return_value, "dparameters", &dparametres TSRMLS_CC); } else { - add_property_int(return_value, "ifdparameters", 0); + add_property_long(return_value, "ifdparameters", 0); } #endif if ((par = body->parameter)) { - add_property_int(return_value, "ifparameters", 1); + add_property_long(return_value, "ifparameters", 1); array_init(¶metres); do { @@ -3361,7 +3361,7 @@ PHP_FUNCTION(imap_bodystruct) } while ((par = par->next)); } else { object_init(¶metres); - add_property_int(return_value, "ifparameters", 0); + add_property_long(return_value, "ifparameters", 0); } add_assoc_object(return_value, "parameters", ¶metres TSRMLS_CC); } @@ -3436,16 +3436,16 @@ PHP_FUNCTION(imap_fetch_overview) if (env->in_reply_to) { add_property_string(&myoverview, "in_reply_to", env->in_reply_to); } - add_property_int(&myoverview, "size", elt->rfc822_size); - add_property_int(&myoverview, "uid", mail_uid(imap_le_struct->imap_stream, i)); - add_property_int(&myoverview, "msgno", i); - add_property_int(&myoverview, "recent", elt->recent); - add_property_int(&myoverview, "flagged", elt->flagged); - add_property_int(&myoverview, "answered", elt->answered); - add_property_int(&myoverview, "deleted", elt->deleted); - add_property_int(&myoverview, "seen", elt->seen); - add_property_int(&myoverview, "draft", elt->draft); - add_property_int(&myoverview, "udate", mail_longdate(elt)); + add_property_long(&myoverview, "size", elt->rfc822_size); + add_property_long(&myoverview, "uid", mail_uid(imap_le_struct->imap_stream, i)); + add_property_long(&myoverview, "msgno", i); + add_property_long(&myoverview, "recent", elt->recent); + add_property_long(&myoverview, "flagged", elt->flagged); + add_property_long(&myoverview, "answered", elt->answered); + add_property_long(&myoverview, "deleted", elt->deleted); + add_property_long(&myoverview, "seen", elt->seen); + add_property_long(&myoverview, "draft", elt->draft); + add_property_long(&myoverview, "udate", mail_longdate(elt)); add_next_index_object(return_value, &myoverview TSRMLS_CC); } } @@ -3474,7 +3474,7 @@ PHP_FUNCTION(imap_mail_compose) } #define PHP_RFC822_PARSE_ADRLIST(target, value) \ - str_copy = estrndup(Z_STRVAL_P(value), Z_STRSIZE_P(value)); \ + str_copy = estrndup(Z_STRVAL_P(value), Z_STRLEN_P(value)); \ rfc822_parse_adrlist(target, str_copy, "NO HOST"); \ efree(str_copy); @@ -3530,9 +3530,9 @@ PHP_FUNCTION(imap_mail_compose) ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(pvalue), env_data) { custom_headers_param = mail_newbody_parameter(); convert_to_string_ex(env_data); - custom_headers_param->value = (char *) fs_get(Z_STRSIZE_P(env_data) + 1); + custom_headers_param->value = (char *) fs_get(Z_STRLEN_P(env_data) + 1); custom_headers_param->attribute = NULL; - memcpy(custom_headers_param->value, Z_STRVAL_P(env_data), Z_STRSIZE_P(env_data) + 1); + memcpy(custom_headers_param->value, Z_STRVAL_P(env_data), Z_STRLEN_P(env_data) + 1); custom_headers_param->next = tmp_param; tmp_param = custom_headers_param; } ZEND_HASH_FOREACH_END(); @@ -3554,11 +3554,11 @@ PHP_FUNCTION(imap_mail_compose) if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "type", sizeof("type") - 1)) != NULL) { convert_to_int_ex(pvalue); - bod->type = (short) Z_IVAL_P(pvalue); + bod->type = (short) Z_LVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "encoding", sizeof("encoding") - 1)) != NULL) { convert_to_int_ex(pvalue); - bod->encoding = (short) Z_IVAL_P(pvalue); + bod->encoding = (short) Z_LVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "charset", sizeof("charset") - 1)) != NULL) { convert_to_string_ex(pvalue); @@ -3575,8 +3575,8 @@ PHP_FUNCTION(imap_mail_compose) disp_param = mail_newbody_parameter(); disp_param->attribute = cpystr(key->val); convert_to_string_ex(disp_data); - disp_param->value = (char *) fs_get(Z_STRSIZE_P(disp_data) + 1); - memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRSIZE_P(disp_data) + 1); + disp_param->value = (char *) fs_get(Z_STRLEN_P(disp_data) + 1); + memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRLEN_P(disp_data) + 1); disp_param->next = tmp_param; tmp_param = disp_param; } ZEND_HASH_FOREACH_END(); @@ -3597,8 +3597,8 @@ PHP_FUNCTION(imap_mail_compose) } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "disposition.type", sizeof("disposition.type") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->disposition.type = (char *) fs_get(Z_STRSIZE_P(pvalue) + 1); - memcpy(bod->disposition.type, Z_STRVAL_P(pvalue), Z_STRSIZE_P(pvalue)+1); + bod->disposition.type = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); + memcpy(bod->disposition.type, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue)+1); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "disposition", sizeof("disposition") - 1)) != NULL) { if (Z_TYPE_P(pvalue) == IS_ARRAY) { @@ -3607,8 +3607,8 @@ PHP_FUNCTION(imap_mail_compose) disp_param = mail_newbody_parameter(); disp_param->attribute = cpystr(key->val); convert_to_string_ex(disp_data); - disp_param->value = (char *) fs_get(Z_STRSIZE_P(disp_data) + 1); - memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRSIZE_P(disp_data) + 1); + disp_param->value = (char *) fs_get(Z_STRLEN_P(disp_data) + 1); + memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRLEN_P(disp_data) + 1); disp_param->next = tmp_param; tmp_param = disp_param; } ZEND_HASH_FOREACH_END(); @@ -3617,9 +3617,9 @@ PHP_FUNCTION(imap_mail_compose) } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "contents.data", sizeof("contents.data") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->contents.text.data = fs_get(Z_STRSIZE_P(pvalue) + 1); - memcpy(bod->contents.text.data, Z_STRVAL_P(pvalue), Z_STRSIZE_P(pvalue)+1); - bod->contents.text.size = Z_STRSIZE_P(pvalue); + bod->contents.text.data = fs_get(Z_STRLEN_P(pvalue) + 1); + memcpy(bod->contents.text.data, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue)+1); + bod->contents.text.size = Z_STRLEN_P(pvalue); } else { bod->contents.text.data = fs_get(1); memcpy(bod->contents.text.data, "", 1); @@ -3627,11 +3627,11 @@ PHP_FUNCTION(imap_mail_compose) } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "lines", sizeof("lines") - 1)) != NULL) { convert_to_int_ex(pvalue); - bod->size.lines = Z_IVAL_P(pvalue); + bod->size.lines = Z_LVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "bytes", sizeof("bytes") - 1)) != NULL) { convert_to_int_ex(pvalue); - bod->size.bytes = Z_IVAL_P(pvalue); + bod->size.bytes = Z_LVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "md5", sizeof("md5") - 1)) != NULL) { convert_to_string_ex(pvalue); @@ -3641,7 +3641,7 @@ PHP_FUNCTION(imap_mail_compose) short type = -1; if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "type", sizeof("type") - 1)) != NULL) { convert_to_int_ex(pvalue); - type = (short) Z_IVAL_P(pvalue); + type = (short) Z_LVAL_P(pvalue); } if (!toppart) { @@ -3661,13 +3661,13 @@ PHP_FUNCTION(imap_mail_compose) if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "encoding", sizeof("encoding") - 1)) != NULL) { convert_to_int_ex(pvalue); - bod->encoding = (short) Z_IVAL_P(pvalue); + bod->encoding = (short) Z_LVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "charset", sizeof("charset") - 1)) != NULL) { convert_to_string_ex(pvalue); tmp_param = mail_newbody_parameter(); - tmp_param->value = (char *) fs_get(Z_STRSIZE_P(pvalue) + 1); - memcpy(tmp_param->value, Z_STRVAL_P(pvalue), Z_STRSIZE_P(pvalue) + 1); + tmp_param->value = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); + memcpy(tmp_param->value, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue) + 1); tmp_param->attribute = cpystr("CHARSET"); tmp_param->next = bod->parameter; bod->parameter = tmp_param; @@ -3679,8 +3679,8 @@ PHP_FUNCTION(imap_mail_compose) disp_param = mail_newbody_parameter(); disp_param->attribute = cpystr(key->val); convert_to_string_ex(disp_data); - disp_param->value = (char *)fs_get(Z_STRSIZE_P(disp_data) + 1); - memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRSIZE_P(disp_data) + 1); + disp_param->value = (char *)fs_get(Z_STRLEN_P(disp_data) + 1); + memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRLEN_P(disp_data) + 1); disp_param->next = tmp_param; tmp_param = disp_param; } ZEND_HASH_FOREACH_END(); @@ -3701,8 +3701,8 @@ PHP_FUNCTION(imap_mail_compose) } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "disposition.type", sizeof("disposition.type") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->disposition.type = (char *) fs_get(Z_STRSIZE_P(pvalue) + 1); - memcpy(bod->disposition.type, Z_STRVAL_P(pvalue), Z_STRSIZE_P(pvalue)+1); + bod->disposition.type = (char *) fs_get(Z_STRLEN_P(pvalue) + 1); + memcpy(bod->disposition.type, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue)+1); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "disposition", sizeof("disposition") - 1)) != NULL) { if (Z_TYPE_P(pvalue) == IS_ARRAY) { @@ -3711,8 +3711,8 @@ PHP_FUNCTION(imap_mail_compose) disp_param = mail_newbody_parameter(); disp_param->attribute = cpystr(key->val); convert_to_string_ex(disp_data); - disp_param->value = (char *) fs_get(Z_STRSIZE_P(disp_data) + 1); - memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRSIZE_P(disp_data) + 1); + disp_param->value = (char *) fs_get(Z_STRLEN_P(disp_data) + 1); + memcpy(disp_param->value, Z_STRVAL_P(disp_data), Z_STRLEN_P(disp_data) + 1); disp_param->next = tmp_param; tmp_param = disp_param; } ZEND_HASH_FOREACH_END(); @@ -3721,9 +3721,9 @@ PHP_FUNCTION(imap_mail_compose) } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "contents.data", sizeof("contents.data") - 1)) != NULL) { convert_to_string_ex(pvalue); - bod->contents.text.data = fs_get(Z_STRSIZE_P(pvalue) + 1); - memcpy(bod->contents.text.data, Z_STRVAL_P(pvalue), Z_STRSIZE_P(pvalue) + 1); - bod->contents.text.size = Z_STRSIZE_P(pvalue); + bod->contents.text.data = fs_get(Z_STRLEN_P(pvalue) + 1); + memcpy(bod->contents.text.data, Z_STRVAL_P(pvalue), Z_STRLEN_P(pvalue) + 1); + bod->contents.text.size = Z_STRLEN_P(pvalue); } else { bod->contents.text.data = fs_get(1); memcpy(bod->contents.text.data, "", 1); @@ -3731,11 +3731,11 @@ PHP_FUNCTION(imap_mail_compose) } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "lines", sizeof("lines") - 1)) != NULL) { convert_to_int_ex(pvalue); - bod->size.lines = Z_IVAL_P(pvalue); + bod->size.lines = Z_LVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "bytes", sizeof("bytes") - 1)) != NULL) { convert_to_int_ex(pvalue); - bod->size.bytes = Z_IVAL_P(pvalue); + bod->size.bytes = Z_LVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "md5", sizeof("md5") - 1)) != NULL) { convert_to_string_ex(pvalue); @@ -4101,7 +4101,7 @@ PHP_FUNCTION(imap_search) cur = IMAPG(imap_messages); while (cur != NIL) { - add_next_index_int(return_value, cur->msgid); + add_next_index_long(return_value, cur->msgid); cur = cur->next; } mail_free_messagelist(&IMAPG(imap_messages), &IMAPG(imap_messages_tail)); @@ -4390,7 +4390,7 @@ static zend_string* _php_rfc822_write_address(ADDRESS *addresslist TSRMLS_DC) } address[0] = 0; rfc822_write_address(address, addresslist); - return STR_INIT(address, strlen(address), 0); + return zend_string_init(address, strlen(address), 0); } /* }}} */ #endif @@ -4513,53 +4513,53 @@ void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC) PART *part; if (body->type <= TYPEMAX) { - add_property_int(arg, "type", body->type); + add_property_long(arg, "type", body->type); } if (body->encoding <= ENCMAX) { - add_property_int(arg, "encoding", body->encoding); + add_property_long(arg, "encoding", body->encoding); } if (body->subtype) { - add_property_int(arg, "ifsubtype", 1); + add_property_long(arg, "ifsubtype", 1); add_property_string(arg, "subtype", body->subtype); } else { - add_property_int(arg, "ifsubtype", 0); + add_property_long(arg, "ifsubtype", 0); } if (body->description) { - add_property_int(arg, "ifdescription", 1); + add_property_long(arg, "ifdescription", 1); add_property_string(arg, "description", body->description); } else { - add_property_int(arg, "ifdescription", 0); + add_property_long(arg, "ifdescription", 0); } if (body->id) { - add_property_int(arg, "ifid", 1); + add_property_long(arg, "ifid", 1); add_property_string(arg, "id", body->id); } else { - add_property_int(arg, "ifid", 0); + add_property_long(arg, "ifid", 0); } if (body->size.lines) { - add_property_int(arg, "lines", body->size.lines); + add_property_long(arg, "lines", body->size.lines); } if (body->size.bytes) { - add_property_int(arg, "bytes", body->size.bytes); + add_property_long(arg, "bytes", body->size.bytes); } #ifdef IMAP41 if (body->disposition.type) { - add_property_int(arg, "ifdisposition", 1); + add_property_long(arg, "ifdisposition", 1); add_property_string(arg, "disposition", body->disposition.type); } else { - add_property_int(arg, "ifdisposition", 0); + add_property_long(arg, "ifdisposition", 0); } if (body->disposition.parameter) { dpar = body->disposition.parameter; - add_property_int(arg, "ifdparameters", 1); + add_property_long(arg, "ifdparameters", 1); array_init(&dparametres); do { object_init(&dparam); @@ -4569,12 +4569,12 @@ void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC) } while ((dpar = dpar->next)); add_assoc_object(arg, "dparameters", &dparametres TSRMLS_CC); } else { - add_property_int(arg, "ifdparameters", 0); + add_property_long(arg, "ifdparameters", 0); } #endif if ((par = body->parameter)) { - add_property_int(arg, "ifparameters", 1); + add_property_long(arg, "ifparameters", 1); array_init(¶metres); do { @@ -4590,7 +4590,7 @@ void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC) } while ((par = par->next)); } else { object_init(¶metres); - add_property_int(arg, "ifparameters", 0); + add_property_long(arg, "ifparameters", 0); } add_assoc_object(arg, "parameters", ¶metres TSRMLS_CC); @@ -4627,24 +4627,24 @@ static void build_thread_tree_helper(THREADNODE *cur, zval *tree, long *numNodes /* define "#.num" */ snprintf(buf, 25, "%ld.num", thisNode); - add_assoc_int(tree, buf, cur->num); + add_assoc_long(tree, buf, cur->num); snprintf(buf, 25, "%ld.next", thisNode); if(cur->next) { (*numNodes)++; - add_assoc_int(tree, buf, *numNodes); + add_assoc_long(tree, buf, *numNodes); build_thread_tree_helper(cur->next, tree, numNodes, buf); } else { /* "null pointer" */ - add_assoc_int(tree, buf, 0); + add_assoc_long(tree, buf, 0); } snprintf(buf, 25, "%ld.branch", thisNode); if(cur->branch) { (*numNodes)++; - add_assoc_int(tree, buf, *numNodes); + add_assoc_long(tree, buf, *numNodes); build_thread_tree_helper(cur->branch, tree, numNodes, buf); } else { /* "null pointer" */ - add_assoc_int(tree, buf, 0); + add_assoc_long(tree, buf, 0); } } /* }}} */ @@ -4733,7 +4733,7 @@ PHP_FUNCTION(imap_timeout) } timeout = (long) mail_parameters(NIL, timeout_type, NIL); - RETURN_INT(timeout); + RETURN_LONG(timeout); } else if (timeout >= 0) { switch (ttype) { case 1: -- cgit v1.2.1 From af59e92b24c8f624672720d47ef65bd8457728b9 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Mon, 25 Aug 2014 21:51:49 +0200 Subject: master renames phase 7 --- ext/imap/php_imap.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'ext/imap/php_imap.c') diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index 7e56de668a..3969a036fc 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -3553,11 +3553,11 @@ PHP_FUNCTION(imap_mail_compose) topbod = bod; if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "type", sizeof("type") - 1)) != NULL) { - convert_to_int_ex(pvalue); + convert_to_long_ex(pvalue); bod->type = (short) Z_LVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "encoding", sizeof("encoding") - 1)) != NULL) { - convert_to_int_ex(pvalue); + convert_to_long_ex(pvalue); bod->encoding = (short) Z_LVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "charset", sizeof("charset") - 1)) != NULL) { @@ -3626,11 +3626,11 @@ PHP_FUNCTION(imap_mail_compose) bod->contents.text.size = 0; } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "lines", sizeof("lines") - 1)) != NULL) { - convert_to_int_ex(pvalue); + convert_to_long_ex(pvalue); bod->size.lines = Z_LVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "bytes", sizeof("bytes") - 1)) != NULL) { - convert_to_int_ex(pvalue); + convert_to_long_ex(pvalue); bod->size.bytes = Z_LVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "md5", sizeof("md5") - 1)) != NULL) { @@ -3640,7 +3640,7 @@ PHP_FUNCTION(imap_mail_compose) } else if (Z_TYPE_P(data) == IS_ARRAY) { short type = -1; if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "type", sizeof("type") - 1)) != NULL) { - convert_to_int_ex(pvalue); + convert_to_long_ex(pvalue); type = (short) Z_LVAL_P(pvalue); } @@ -3660,7 +3660,7 @@ PHP_FUNCTION(imap_mail_compose) } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "encoding", sizeof("encoding") - 1)) != NULL) { - convert_to_int_ex(pvalue); + convert_to_long_ex(pvalue); bod->encoding = (short) Z_LVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "charset", sizeof("charset") - 1)) != NULL) { @@ -3730,11 +3730,11 @@ PHP_FUNCTION(imap_mail_compose) bod->contents.text.size = 0; } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "lines", sizeof("lines") - 1)) != NULL) { - convert_to_int_ex(pvalue); + convert_to_long_ex(pvalue); bod->size.lines = Z_LVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "bytes", sizeof("bytes") - 1)) != NULL) { - convert_to_int_ex(pvalue); + convert_to_long_ex(pvalue); bod->size.bytes = Z_LVAL_P(pvalue); } if ((pvalue = zend_hash_str_find(Z_ARRVAL_P(data), "md5", sizeof("md5") - 1)) != NULL) { -- cgit v1.2.1 From d0cb715373c3fbe9dc095378ec5ed8c71f799f67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Schl=C3=BCter?= Date: Fri, 19 Sep 2014 18:33:14 +0200 Subject: s/PHP 5/PHP 7/ --- ext/imap/php_imap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ext/imap/php_imap.c') diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index 3969a036fc..d937681507 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -1,6 +1,6 @@ /* +----------------------------------------------------------------------+ - | PHP Version 5 | + | PHP Version 7 | +----------------------------------------------------------------------+ | Copyright (c) 1997-2014 The PHP Group | +----------------------------------------------------------------------+ -- cgit v1.2.1 From e33f3d3b7c9a69fe069484045a27d282aa98b00e Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Sat, 20 Sep 2014 22:42:02 +0200 Subject: Move smart_str implementation into Zend/ So we can use it there as well... For now I've retained the zend_smart_str_public.h header, though it would probably be better to just move that one struct into zend_types.h. --- ext/imap/php_imap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ext/imap/php_imap.c') diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index d937681507..8dc56c5223 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -40,7 +40,7 @@ #include "ext/standard/php_string.h" #include "ext/standard/info.h" #include "ext/standard/file.h" -#include "ext/standard/php_smart_str.h" +#include "zend_smart_str.h" #include "ext/pcre/php_pcre.h" #ifdef ERROR -- cgit v1.2.1