diff options
Diffstat (limited to 'ext/imap/php_imap.c')
-rw-r--r-- | ext/imap/php_imap.c | 512 |
1 files changed, 72 insertions, 440 deletions
diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index b5f12f6eee..ec23bda52b 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -1,7 +1,5 @@ /* +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ | Copyright (c) The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | @@ -46,6 +44,7 @@ #undef ERROR #endif #include "php_imap.h" +#include "php_imap_arginfo.h" #include <time.h> #include <stdio.h> @@ -97,373 +96,6 @@ void *fs_get(size_t size); ZEND_DECLARE_MODULE_GLOBALS(imap) static PHP_GINIT_FUNCTION(imap); -/* {{{ arginfo */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_open, 0, 0, 3) - ZEND_ARG_INFO(0, mailbox) - ZEND_ARG_INFO(0, user) - ZEND_ARG_INFO(0, password) - ZEND_ARG_INFO(0, options) - ZEND_ARG_INFO(0, n_retries) - ZEND_ARG_INFO(0, params) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_reopen, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, mailbox) - ZEND_ARG_INFO(0, options) - ZEND_ARG_INFO(0, n_retries) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_append, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, folder) - ZEND_ARG_INFO(0, message) - ZEND_ARG_INFO(0, options) - ZEND_ARG_INFO(0, date) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_num_msg, 0, 0, 1) - ZEND_ARG_INFO(0, stream_id) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_ping, 0, 0, 1) - ZEND_ARG_INFO(0, stream_id) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_num_recent, 0, 0, 1) - ZEND_ARG_INFO(0, stream_id) -ZEND_END_ARG_INFO() - -#if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001) -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_get_quota, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, qroot) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_get_quotaroot, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, mbox) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_set_quota, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, qroot) - ZEND_ARG_INFO(0, mailbox_size) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_setacl, 0, 0, 4) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, mailbox) - ZEND_ARG_INFO(0, id) - ZEND_ARG_INFO(0, rights) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_getacl, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, mailbox) -ZEND_END_ARG_INFO() -#endif - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_expunge, 0, 0, 1) - ZEND_ARG_INFO(0, stream_id) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_gc, 0, 0, 1) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, flags) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_close, 0, 0, 1) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_headers, 0, 0, 1) - ZEND_ARG_INFO(0, stream_id) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_body, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, msg_no) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_mail_copy, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, msglist) - ZEND_ARG_INFO(0, mailbox) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_mail_move, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, sequence) - ZEND_ARG_INFO(0, mailbox) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_createmailbox, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, mailbox) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_renamemailbox, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, old_name) - ZEND_ARG_INFO(0, new_name) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_deletemailbox, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, mailbox) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_list, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, ref) - ZEND_ARG_INFO(0, pattern) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_getmailboxes, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, ref) - ZEND_ARG_INFO(0, pattern) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_listscan, 0, 0, 4) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, ref) - ZEND_ARG_INFO(0, pattern) - ZEND_ARG_INFO(0, content) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_check, 0, 0, 1) - ZEND_ARG_INFO(0, stream_id) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_delete, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, msg_no) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_undelete, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, msg_no) - ZEND_ARG_INFO(0, flags) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_headerinfo, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, msg_no) - ZEND_ARG_INFO(0, from_length) - ZEND_ARG_INFO(0, subject_length) - ZEND_ARG_INFO(0, default_host) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_rfc822_parse_headers, 0, 0, 1) - ZEND_ARG_INFO(0, headers) - ZEND_ARG_INFO(0, default_host) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_lsub, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, ref) - ZEND_ARG_INFO(0, pattern) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_getsubscribed, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, ref) - ZEND_ARG_INFO(0, pattern) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_subscribe, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, mailbox) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_unsubscribe, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, mailbox) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_fetchstructure, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, msg_no) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_fetchbody, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, msg_no) - ZEND_ARG_INFO(0, section) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_savebody, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, file) - ZEND_ARG_INFO(0, msg_no) - ZEND_ARG_INFO(0, section) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_base64, 0, 0, 1) - ZEND_ARG_INFO(0, text) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_qprint, 0, 0, 1) - ZEND_ARG_INFO(0, text) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_8bit, 0, 0, 1) - ZEND_ARG_INFO(0, text) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_binary, 0, 0, 1) - ZEND_ARG_INFO(0, text) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_mailboxmsginfo, 0, 0, 1) - ZEND_ARG_INFO(0, stream_id) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_rfc822_write_address, 0, 0, 3) - ZEND_ARG_INFO(0, mailbox) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, personal) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_rfc822_parse_adrlist, 0, 0, 2) - ZEND_ARG_INFO(0, address_string) - ZEND_ARG_INFO(0, default_host) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_utf8, 0, 0, 1) - ZEND_ARG_INFO(0, mime_encoded_text) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_utf7_decode, 0, 0, 1) - ZEND_ARG_INFO(0, buf) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_utf7_encode, 0, 0, 1) - ZEND_ARG_INFO(0, buf) -ZEND_END_ARG_INFO() - -#ifdef HAVE_IMAP_MUTF7 -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_utf8_to_mutf7, 0, 0, 1) - ZEND_ARG_INFO(0, in) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_mutf7_to_utf8, 0, 0, 1) - ZEND_ARG_INFO(0, in) -ZEND_END_ARG_INFO() -#endif - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_setflag_full, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, sequence) - ZEND_ARG_INFO(0, flag) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_clearflag_full, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, sequence) - ZEND_ARG_INFO(0, flag) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_sort, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, criteria) - ZEND_ARG_INFO(0, reverse) - ZEND_ARG_INFO(0, options) - ZEND_ARG_INFO(0, search_criteria) - ZEND_ARG_INFO(0, charset) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_fetchheader, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, msg_no) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_uid, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, msg_no) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_msgno, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, unique_msg_id) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_status, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, mailbox) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_bodystruct, 0, 0, 3) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, msg_no) - ZEND_ARG_INFO(0, section) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_fetch_overview, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, sequence) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_mail_compose, 0, 0, 2) - ZEND_ARG_INFO(0, envelope) - ZEND_ARG_INFO(0, body) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_mail, 0, 0, 3) - ZEND_ARG_INFO(0, to) - ZEND_ARG_INFO(0, subject) - ZEND_ARG_INFO(0, message) - ZEND_ARG_INFO(0, additional_headers) - ZEND_ARG_INFO(0, cc) - ZEND_ARG_INFO(0, bcc) - ZEND_ARG_INFO(0, rpath) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_search, 0, 0, 2) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, criteria) - ZEND_ARG_INFO(0, options) - ZEND_ARG_INFO(0, charset) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_imap_alerts, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_imap_errors, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_imap_last_error, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_mime_header_decode, 0, 0, 1) - ZEND_ARG_INFO(0, str) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_thread, 0, 0, 1) - ZEND_ARG_INFO(0, stream_id) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_timeout, 0, 0, 1) - ZEND_ARG_INFO(0, timeout_type) - ZEND_ARG_INFO(0, timeout) -ZEND_END_ARG_INFO() -/* }}} */ /* {{{ imap_functions[] */ @@ -481,7 +113,7 @@ static const zend_function_entry imap_functions[] = { PHP_FE(imap_body, arginfo_imap_body) PHP_FE(imap_bodystruct, arginfo_imap_bodystruct) PHP_FE(imap_fetchbody, arginfo_imap_fetchbody) - PHP_FE(imap_fetchmime, arginfo_imap_fetchbody) + PHP_FE(imap_fetchmime, arginfo_imap_fetchmime) PHP_FE(imap_savebody, arginfo_imap_savebody) PHP_FE(imap_fetchheader, arginfo_imap_fetchheader) PHP_FE(imap_fetchstructure, arginfo_imap_fetchstructure) @@ -539,13 +171,13 @@ static const zend_function_entry imap_functions[] = { #endif PHP_FE(imap_mail, arginfo_imap_mail) + PHP_FE(imap_getsubscribed, arginfo_imap_getsubscribed) + PHP_FE(imap_getmailboxes, arginfo_imap_getmailboxes) PHP_FALIAS(imap_header, imap_headerinfo, arginfo_imap_headerinfo) PHP_FALIAS(imap_listmailbox, imap_list, arginfo_imap_list) - PHP_FALIAS(imap_getmailboxes, imap_list_full, arginfo_imap_getmailboxes) PHP_FALIAS(imap_scanmailbox, imap_listscan, arginfo_imap_listscan) PHP_FALIAS(imap_listsubscribed, imap_lsub, arginfo_imap_lsub) - PHP_FALIAS(imap_getsubscribed, imap_lsub_full, arginfo_imap_getsubscribed) PHP_FALIAS(imap_fetchtext, imap_body, arginfo_imap_body) PHP_FALIAS(imap_scan, imap_listscan, arginfo_imap_listscan) PHP_FALIAS(imap_create, imap_createmailbox, arginfo_imap_createmailbox) @@ -1176,7 +808,7 @@ static void php_imap_do_open(INTERNAL_FUNCTION_PARAMETERS, int persistent) if (zend_parse_parameters(argc, "PSS|lla", &mailbox, &user, &passwd, &flags, &retries, ¶ms) == FAILURE) { - return; + RETURN_THROWS(); } if (argc >= 4) { @@ -1294,7 +926,7 @@ PHP_FUNCTION(imap_reopen) long cl_flags=NIL; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS|ll", &streamind, &mailbox, &options, &retries) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1339,7 +971,7 @@ PHP_FUNCTION(imap_append) STRING st; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSS|SS", &streamind, &folder, &message, &flags, &internal_date) == FAILURE) { - return; + RETURN_THROWS(); } @@ -1387,7 +1019,7 @@ PHP_FUNCTION(imap_num_msg) pils *imap_le_struct; if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &streamind) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1406,7 +1038,7 @@ PHP_FUNCTION(imap_ping) pils *imap_le_struct; if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &streamind) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1425,7 +1057,7 @@ PHP_FUNCTION(imap_num_recent) pils *imap_le_struct; if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &streamind) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1446,7 +1078,7 @@ PHP_FUNCTION(imap_get_quota) pils *imap_le_struct; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS", &streamind, &qroot) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1475,7 +1107,7 @@ PHP_FUNCTION(imap_get_quotaroot) pils *imap_le_struct; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS", &streamind, &mbox) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1506,7 +1138,7 @@ PHP_FUNCTION(imap_set_quota) STRINGLIST limits; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSl", &streamind, &qroot, &mailbox_size) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1530,7 +1162,7 @@ PHP_FUNCTION(imap_setacl) pils *imap_le_struct; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSSS", &streamind, &mailbox, &id, &rights) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1550,7 +1182,7 @@ PHP_FUNCTION(imap_getacl) pils *imap_le_struct; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS", &streamind, &mailbox) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1583,7 +1215,7 @@ PHP_FUNCTION(imap_expunge) pils *imap_le_struct; if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &streamind) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1605,7 +1237,7 @@ PHP_FUNCTION(imap_gc) zend_long flags; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rl", &streamind, &flags) == FAILURE) { - return; + RETURN_THROWS(); } if (flags && ((flags & ~(GC_TEXTS | GC_ELT | GC_ENV)) != 0)) { @@ -1633,7 +1265,7 @@ PHP_FUNCTION(imap_close) int argc = ZEND_NUM_ARGS(); if (zend_parse_parameters(argc, "r|l", &streamind, &options) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1675,7 +1307,7 @@ PHP_FUNCTION(imap_headers) char tmp[MAILTMPLEN]; if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &streamind) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1727,7 +1359,7 @@ PHP_FUNCTION(imap_body) unsigned long body_len = 0; if (zend_parse_parameters(argc, "rl|l", &streamind, &msgno, &flags) == FAILURE) { - return; + RETURN_THROWS(); } if (flags && ((flags & ~(FT_UID|FT_PEEK|FT_INTERNAL)) != 0)) { @@ -1772,7 +1404,7 @@ PHP_FUNCTION(imap_mail_copy) pils *imap_le_struct; if (zend_parse_parameters(argc, "rSS|l", &streamind, &seq, &folder, &options) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1798,7 +1430,7 @@ PHP_FUNCTION(imap_mail_move) int argc = ZEND_NUM_ARGS(); if (zend_parse_parameters(argc, "rSS|l", &streamind, &seq, &folder, &options) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1822,7 +1454,7 @@ PHP_FUNCTION(imap_createmailbox) pils *imap_le_struct; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS", &streamind, &folder) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1846,7 +1478,7 @@ PHP_FUNCTION(imap_renamemailbox) pils *imap_le_struct; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSS", &streamind, &old_mailbox, &new_mailbox) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1870,7 +1502,7 @@ PHP_FUNCTION(imap_deletemailbox) pils *imap_le_struct; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS", &streamind, &folder) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1895,7 +1527,7 @@ PHP_FUNCTION(imap_list) STRINGLIST *cur=NIL; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSS", &streamind, &ref, &pat) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1926,7 +1558,7 @@ PHP_FUNCTION(imap_list) /* {{{ proto array imap_getmailboxes(resource stream_id, string ref, string pattern) Reads the list of mailboxes and returns a full array of objects containing name, attributes, and delimiter */ /* Author: CJH */ -PHP_FUNCTION(imap_list_full) +PHP_FUNCTION(imap_getmailboxes) { zval *streamind, mboxob; zend_string *ref, *pat; @@ -1935,7 +1567,7 @@ PHP_FUNCTION(imap_list_full) char *delim=NIL; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSS", &streamind, &ref, &pat) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -1984,7 +1616,7 @@ PHP_FUNCTION(imap_listscan) STRINGLIST *cur=NIL; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSSS", &streamind, &ref, &pat, &content) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -2018,7 +1650,7 @@ PHP_FUNCTION(imap_check) char date[100]; if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &streamind) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -2053,7 +1685,7 @@ PHP_FUNCTION(imap_delete) int argc = ZEND_NUM_ARGS(); if (zend_parse_parameters(argc, "rz|l", &streamind, &sequence, &flags) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -2079,7 +1711,7 @@ PHP_FUNCTION(imap_undelete) int argc = ZEND_NUM_ARGS(); if (zend_parse_parameters(argc, "rz|l", &streamind, &sequence, &flags) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -2109,7 +1741,7 @@ PHP_FUNCTION(imap_headerinfo) char dummy[2000], fulladdress[MAILTMPLEN + 1]; if (zend_parse_parameters(argc, "rl|llS", &streamind, &msgno, &fromlength, &subjectlength, &defaulthost) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -2189,7 +1821,7 @@ PHP_FUNCTION(imap_rfc822_parse_headers) int argc = ZEND_NUM_ARGS(); if (zend_parse_parameters(argc, "S|S", &headers, &defaulthost) == FAILURE) { - return; + RETURN_THROWS(); } if (argc == 2) { @@ -2216,7 +1848,7 @@ PHP_FUNCTION(imap_lsub) STRINGLIST *cur=NIL; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSS", &streamind, &ref, &pat) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -2246,7 +1878,7 @@ PHP_FUNCTION(imap_lsub) /* {{{ proto array imap_getsubscribed(resource stream_id, string ref, string pattern) Return a list of subscribed mailboxes, in the same format as imap_getmailboxes() */ /* Author: CJH */ -PHP_FUNCTION(imap_lsub_full) +PHP_FUNCTION(imap_getsubscribed) { zval *streamind, mboxob; zend_string *ref, *pat; @@ -2255,7 +1887,7 @@ PHP_FUNCTION(imap_lsub_full) char *delim=NIL; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSS", &streamind, &ref, &pat) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -2303,7 +1935,7 @@ PHP_FUNCTION(imap_subscribe) pils *imap_le_struct; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS", &streamind, &folder) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -2327,7 +1959,7 @@ PHP_FUNCTION(imap_unsubscribe) pils *imap_le_struct; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS", &streamind, &folder) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -2353,7 +1985,7 @@ PHP_FUNCTION(imap_fetchstructure) int msgindex, argc = ZEND_NUM_ARGS(); if (zend_parse_parameters(argc, "rl|l", &streamind, &msgno, &flags) == FAILURE) { - return; + RETURN_THROWS(); } if (flags && ((flags & ~FT_UID) != 0)) { @@ -2405,7 +2037,7 @@ PHP_FUNCTION(imap_fetchbody) int argc = ZEND_NUM_ARGS(); if (zend_parse_parameters(argc, "rlS|l", &streamind, &msgno, &sec, &flags) == FAILURE) { - return; + RETURN_THROWS(); } if (flags && ((flags & ~(FT_UID|FT_PEEK|FT_INTERNAL)) != 0)) { @@ -2447,7 +2079,7 @@ PHP_FUNCTION(imap_fetchmime) int argc = ZEND_NUM_ARGS(); if (zend_parse_parameters(argc, "rlS|l", &streamind, &msgno, &sec, &flags) == FAILURE) { - return; + RETURN_THROWS(); } if (flags && ((flags & ~(FT_UID|FT_PEEK|FT_INTERNAL)) != 0)) { @@ -2487,7 +2119,7 @@ PHP_FUNCTION(imap_savebody) zend_long msgno, flags = 0; if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS(), "rzl|Sl", &stream, &out, &msgno, §ion, &flags)) { - RETURN_FALSE; + RETURN_THROWS(); } if ((imap_ptr = (pils *)zend_fetch_resource(Z_RES_P(stream), "imap", le_imap)) == NULL) { @@ -2541,7 +2173,7 @@ PHP_FUNCTION(imap_base64) unsigned long newlength; if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &text) == FAILURE) { - return; + RETURN_THROWS(); } decode = (char *) rfc822_base64((unsigned char *) ZSTR_VAL(text), ZSTR_LEN(text), &newlength); @@ -2564,7 +2196,7 @@ PHP_FUNCTION(imap_qprint) unsigned long newlength; if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &text) == FAILURE) { - return; + RETURN_THROWS(); } decode = (char *) rfc822_qprint((unsigned char *) ZSTR_VAL(text), ZSTR_LEN(text), &newlength); @@ -2587,7 +2219,7 @@ PHP_FUNCTION(imap_8bit) unsigned long newlength; if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &text) == FAILURE) { - return; + RETURN_THROWS(); } decode = (char *) rfc822_8bit((unsigned char *) ZSTR_VAL(text), ZSTR_LEN(text), &newlength); @@ -2610,7 +2242,7 @@ PHP_FUNCTION(imap_binary) unsigned long newlength; if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &text) == FAILURE) { - return; + RETURN_THROWS(); } decode = (char*)rfc822_binary(ZSTR_VAL(text), ZSTR_LEN(text), &newlength); @@ -2635,7 +2267,7 @@ PHP_FUNCTION(imap_mailboxmsginfo) zend_ulong unreadmsg = 0, deletedmsg = 0, msize = 0; if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &streamind) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -2679,7 +2311,7 @@ PHP_FUNCTION(imap_rfc822_write_address) zend_string *string; if (zend_parse_parameters(ZEND_NUM_ARGS(), "SSS", &mailbox, &host, &personal) == FAILURE) { - return; + RETURN_THROWS(); } addr=mail_newaddr(); @@ -2720,7 +2352,7 @@ PHP_FUNCTION(imap_rfc822_parse_adrlist) ENVELOPE *env; if (zend_parse_parameters(ZEND_NUM_ARGS(), "SS", &str, &defaulthost) == FAILURE) { - return; + RETURN_THROWS(); } env = mail_newenvelope(); @@ -2763,7 +2395,7 @@ PHP_FUNCTION(imap_utf8) SIZEDTEXT src, dest; if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &str) == FAILURE) { - return; + RETURN_THROWS(); } src.data = NULL; @@ -2827,7 +2459,7 @@ PHP_FUNCTION(imap_utf7_decode) } state; if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &arg) == FAILURE) { - return; + RETURN_THROWS(); } in = (const unsigned char *) ZSTR_VAL(arg); @@ -2966,7 +2598,7 @@ PHP_FUNCTION(imap_utf7_encode) } state; if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &arg) == FAILURE) { - return; + RETURN_THROWS(); } in = (const unsigned char *) ZSTR_VAL(arg); @@ -3070,7 +2702,7 @@ static void php_imap_mutf7(INTERNAL_FUNCTION_PARAMETERS, int mode) /* {{{ */ unsigned char *out; if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &in) == FAILURE) { - return; + RETURN_THROWS(); } if (ZSTR_LEN(in) < 1) { @@ -3118,7 +2750,7 @@ PHP_FUNCTION(imap_setflag_full) pils *imap_le_struct; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSS|l", &streamind, &sequence, &flag, &flags) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -3141,7 +2773,7 @@ PHP_FUNCTION(imap_clearflag_full) int argc = ZEND_NUM_ARGS(); if (zend_parse_parameters(argc, "rSS|l", &streamind, &sequence, &flag, &flags) ==FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -3168,7 +2800,7 @@ PHP_FUNCTION(imap_sort) int argc = ZEND_NUM_ARGS(); if (zend_parse_parameters(argc, "rll|lSS", &streamind, &pgm, &rev, &flags, &criteria, &charset) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -3224,7 +2856,7 @@ PHP_FUNCTION(imap_fetchheader) int msgindex, argc = ZEND_NUM_ARGS(); if (zend_parse_parameters(argc, "rl|l", &streamind, &msgno, &flags) == FAILURE) { - return; + RETURN_THROWS(); } if (flags && ((flags & ~(FT_UID|FT_INTERNAL|FT_PREFETCHTEXT)) != 0)) { @@ -3261,7 +2893,7 @@ PHP_FUNCTION(imap_uid) int msgindex; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rl", &streamind, &msgno) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -3287,7 +2919,7 @@ PHP_FUNCTION(imap_msgno) pils *imap_le_struct; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rl", &streamind, &msgno) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -3308,7 +2940,7 @@ PHP_FUNCTION(imap_status) pils *imap_le_struct; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSl", &streamind, &mbx, &flags) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -3353,7 +2985,7 @@ PHP_FUNCTION(imap_bodystruct) BODY *body; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rlS", &streamind, &msg, §ion) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -3466,7 +3098,7 @@ PHP_FUNCTION(imap_fetch_overview) int argc = ZEND_NUM_ARGS(); if (zend_parse_parameters(argc, "rS|l", &streamind, &sequence, &flags) == FAILURE) { - return; + RETURN_THROWS(); } if (flags && ((flags & ~FT_UID) != 0)) { @@ -3556,7 +3188,7 @@ PHP_FUNCTION(imap_mail_compose) int first; if (zend_parse_parameters(ZEND_NUM_ARGS(), "aa", &envelope, &body) == FAILURE) { - return; + RETURN_THROWS(); } #define PHP_RFC822_PARSE_ADRLIST(target, value) \ @@ -4106,7 +3738,7 @@ PHP_FUNCTION(imap_mail) if (zend_parse_parameters(argc, "SSS|SSSS", &to, &subject, &message, &headers, &cc, &bcc, &rpath) == FAILURE) { - return; + RETURN_THROWS(); } /* To: */ @@ -4150,7 +3782,7 @@ PHP_FUNCTION(imap_search) SEARCHPGM *pgm = NIL; if (zend_parse_parameters(argc, "rS|lS", &streamind, &criteria, &flags, &charset) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -4193,7 +3825,7 @@ PHP_FUNCTION(imap_alerts) STRINGLIST *cur=NIL; if (zend_parse_parameters_none() == FAILURE) { - return; + RETURN_THROWS(); } if (IMAPG(imap_alertstack) == NIL) { @@ -4220,7 +3852,7 @@ PHP_FUNCTION(imap_errors) ERRORLIST *cur=NIL; if (zend_parse_parameters_none() == FAILURE) { - return; + RETURN_THROWS(); } if (IMAPG(imap_errorstack) == NIL) { @@ -4247,7 +3879,7 @@ PHP_FUNCTION(imap_last_error) ERRORLIST *cur=NIL; if (zend_parse_parameters_none() == FAILURE) { - return; + RETURN_THROWS(); } if (IMAPG(imap_errorstack) == NIL) { @@ -4276,7 +3908,7 @@ PHP_FUNCTION(imap_mime_header_decode) unsigned long newlength; if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &str) == FAILURE) { - return; + RETURN_THROWS(); } array_init(return_value); @@ -4753,7 +4385,7 @@ PHP_FUNCTION(imap_thread) SEARCHPGM *pgm = NIL; if (zend_parse_parameters(argc, "r|l", &streamind, &flags) == FAILURE) { - return; + RETURN_THROWS(); } if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) { @@ -4788,7 +4420,7 @@ PHP_FUNCTION(imap_timeout) int timeout_type; if (zend_parse_parameters(ZEND_NUM_ARGS(), "l|l", &ttype, &timeout) == FAILURE) { - RETURN_FALSE; + RETURN_THROWS(); } if (timeout == -1) { |