From e7d482d8966eef4d52b50bdb5fa9fc97da7da140 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Mon, 6 Jun 2022 13:08:32 +0200 Subject: [PATCH] Declare ext/imap constants in stubs (#8715) --- ext/imap/php_imap.c | 193 +---------------- ext/imap/php_imap.stub.php | 414 +++++++++++++++++++++++++++++++++++- ext/imap/php_imap_arginfo.h | 80 ++++++- 3 files changed, 496 insertions(+), 191 deletions(-) diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index b6d2dd8b74d..ce615b08aab 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -45,7 +45,6 @@ #undef ERROR #endif #include "php_imap.h" -#include "php_imap_arginfo.h" #include #include @@ -67,6 +66,15 @@ MAILSTREAM DEFAULTPROTO; #define SENDBUFLEN 16385 #endif +#define PHP_IMAP_OPENTIMEOUT 1 +#define PHP_IMAP_READTIMEOUT 2 +#define PHP_IMAP_WRITETIMEOUT 3 +#define PHP_IMAP_CLOSETIMEOUT 4 + +#define SA_ALL SA_MESSAGES | SA_RECENT | SA_UNSEEN | SA_UIDNEXT | SA_UIDVALIDITY + +#include "php_imap_arginfo.h" + #if defined(__GNUC__) && __GNUC__ >= 4 # define PHP_IMAP_EXPORT __attribute__ ((visibility("default"))) #else @@ -445,8 +453,6 @@ static PHP_GINIT_FUNCTION(imap) /* {{{ PHP_MINIT_FUNCTION */ PHP_MINIT_FUNCTION(imap) { - unsigned long sa_all = SA_MESSAGES | SA_RECENT | SA_UNSEEN | SA_UIDNEXT | SA_UIDVALIDITY; - REGISTER_INI_ENTRIES(); #ifndef PHP_WIN32 @@ -487,8 +493,7 @@ PHP_MINIT_FUNCTION(imap) imap_object_handlers.free_obj = imap_object_destroy; imap_object_handlers.clone_obj = NULL; - /* lets allow NIL */ - REGISTER_LONG_CONSTANT("NIL", NIL, CONST_PERSISTENT | CONST_CS | CONST_DEPRECATED); + register_php_imap_symbols(module_number); /* plug in our gets */ mail_parameters(NIL, SET_GETS, (void *) NIL); @@ -499,182 +504,6 @@ PHP_MINIT_FUNCTION(imap) mail_parameters(NIL, SET_WRITETIMEOUT, (void *) FG(default_socket_timeout)); 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); - - /* Open Options */ - - REGISTER_LONG_CONSTANT("OP_DEBUG", OP_DEBUG, CONST_PERSISTENT | CONST_CS); - /* debug protocol negotiations */ - REGISTER_LONG_CONSTANT("OP_READONLY", OP_READONLY, CONST_PERSISTENT | CONST_CS); - /* read-only open */ - REGISTER_LONG_CONSTANT("OP_ANONYMOUS", OP_ANONYMOUS, CONST_PERSISTENT | CONST_CS); - /* anonymous open of newsgroup */ - REGISTER_LONG_CONSTANT("OP_SHORTCACHE", OP_SHORTCACHE, CONST_PERSISTENT | CONST_CS); - /* short (elt-only) caching */ - REGISTER_LONG_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); - /* return driver prototype */ - REGISTER_LONG_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); - /* silently expunge recycle stream */ - REGISTER_LONG_CONSTANT("OP_SECURE", OP_SECURE, CONST_PERSISTENT | CONST_CS); - /* don't do non-secure authentication */ - - /* - PHP re-assigns CL_EXPUNGE a custom value that can be used as part of the imap_open() bitfield - because it seems like a good idea to be able to indicate that the mailbox should be - automatically expunged during imap_open in case the script get interrupted and it doesn't get - to the imap_close() where this option is normally placed. If the c-client library adds other - 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); - /* expunge silently */ - - /* Fetch options */ - - REGISTER_LONG_CONSTANT("FT_UID", FT_UID, CONST_PERSISTENT | CONST_CS); - /* argument is a UID */ - REGISTER_LONG_CONSTANT("FT_PEEK", FT_PEEK, CONST_PERSISTENT | CONST_CS); - /* peek at data */ - REGISTER_LONG_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); - /* text can be internal strings */ - REGISTER_LONG_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); - /* argument is a UID sequence */ - REGISTER_LONG_CONSTANT("ST_SILENT", ST_SILENT, CONST_PERSISTENT | CONST_CS); - /* don't return results */ - REGISTER_LONG_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); - /* argument is a UID sequence */ - REGISTER_LONG_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); - /* return UID */ - REGISTER_LONG_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); - /* no search prefetching */ - REGISTER_LONG_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); - /* don't do server-based sort */ - - /* Status options */ - - REGISTER_LONG_CONSTANT("SA_MESSAGES", SA_MESSAGES , CONST_PERSISTENT | CONST_CS); - /* number of messages */ - REGISTER_LONG_CONSTANT("SA_RECENT", SA_RECENT, CONST_PERSISTENT | CONST_CS); - /* number of recent messages */ - REGISTER_LONG_CONSTANT("SA_UNSEEN", SA_UNSEEN , CONST_PERSISTENT | CONST_CS); - /* number of unseen messages */ - REGISTER_LONG_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); - /* UID validity value */ - REGISTER_LONG_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); - -#ifdef LATT_REFERRAL - REGISTER_LONG_CONSTANT("LATT_REFERRAL", LATT_REFERRAL, CONST_PERSISTENT | CONST_CS); -#endif - -#ifdef LATT_HASCHILDREN - REGISTER_LONG_CONSTANT("LATT_HASCHILDREN", LATT_HASCHILDREN, CONST_PERSISTENT | CONST_CS); -#endif - -#ifdef LATT_HASNOCHILDREN - REGISTER_LONG_CONSTANT("LATT_HASNOCHILDREN", LATT_HASNOCHILDREN, CONST_PERSISTENT | CONST_CS); -#endif - - /* Sort functions */ - - REGISTER_LONG_CONSTANT("SORTDATE", SORTDATE , CONST_PERSISTENT | CONST_CS); - /* date */ - REGISTER_LONG_CONSTANT("SORTARRIVAL", SORTARRIVAL , CONST_PERSISTENT | CONST_CS); - /* arrival date */ - REGISTER_LONG_CONSTANT("SORTFROM", SORTFROM , CONST_PERSISTENT | CONST_CS); - /* from */ - REGISTER_LONG_CONSTANT("SORTSUBJECT", SORTSUBJECT , CONST_PERSISTENT | CONST_CS); - /* subject */ - REGISTER_LONG_CONSTANT("SORTTO", SORTTO , CONST_PERSISTENT | CONST_CS); - /* to */ - REGISTER_LONG_CONSTANT("SORTCC", SORTCC , CONST_PERSISTENT | CONST_CS); - /* cc */ - REGISTER_LONG_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); - /* - TYPETEXT unformatted text - TYPEMULTIPART multiple part - TYPEMESSAGE encapsulated message - TYPEAPPLICATION application data - TYPEAUDIO audio - TYPEIMAGE static image (GIF, JPEG, etc.) - TYPEVIDEO video - TYPEMODEL model - 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); - /* - ENC7BIT 7 bit SMTP semantic data - ENC8BIT 8 bit SMTP semantic data - ENCBINARY 8 bit binary data - ENCBASE64 base-64 encoded data - ENCQUOTEDPRINTABLE human-readable 8-as-7 bit data - 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); - /* - GC_ELT message cache elements - GC_ENV ENVELOPEs and BODYs - GC_TEXTS texts - */ - if (!IMAPG(enable_rsh)) { /* disable SSH and RSH, see https://bugs.php.net/bug.php?id=77153 */ mail_parameters (NIL, SET_RSHTIMEOUT, 0); @@ -2808,7 +2637,7 @@ PHP_FUNCTION(imap_status) GET_IMAP_STREAM(imap_conn_struct, imap_conn_obj); - if (flags && ((flags & ~(SA_MESSAGES | SA_RECENT | SA_UNSEEN | SA_UIDNEXT | SA_UIDVALIDITY /*| SA_ALL*/)) != 0)) { + if (flags && ((flags & ~(SA_ALL)) != 0)) { zend_argument_value_error(3, "must be a bitmask of SA_* constants"); RETURN_THROWS(); } diff --git a/ext/imap/php_imap.stub.php b/ext/imap/php_imap.stub.php index c6fb019526d..e13c2b28198 100644 --- a/ext/imap/php_imap.stub.php +++ b/ext/imap/php_imap.stub.php @@ -2,18 +2,408 @@ /** @generate-class-entries */ -namespace IMAP { +namespace { + /** + * @var int + * @cname NIL + * @deprecated + */ + const NIL = UNKNOWN; /** - * @strict-properties - * @not-serializable + * @var int + * @cname PHP_IMAP_OPENTIMEOUT */ - final class Connection { - } + const IMAP_OPENTIMEOUT = UNKNOWN; + /** + * @var int + * @cname PHP_IMAP_READTIMEOUT + */ + const IMAP_READTIMEOUT = UNKNOWN; + /** + * @var int + * @cname PHP_IMAP_WRITETIMEOUT + */ + const IMAP_WRITETIMEOUT = UNKNOWN; + /** + * @var int + * @cname PHP_IMAP_CLOSETIMEOUT + */ + const IMAP_CLOSETIMEOUT = UNKNOWN; -} + /** + * debug protocol negotiations + * @var int + * @cname OP_DEBUG + */ + const OP_DEBUG = UNKNOWN; + /** + * read-only open + * @var int + * @cname OP_READONLY + */ + const OP_READONLY = UNKNOWN; + /** + * anonymous open of newsgroup + * @var int + * @cname OP_ANONYMOUS + */ + const OP_ANONYMOUS = UNKNOWN; + /** + * short (elt-only) caching + * @var int + * @cname OP_SHORTCACHE + */ + const OP_SHORTCACHE = UNKNOWN; + /** + * don't pass up events (internal use) + * @var int + * @cname OP_SILENT + */ + const OP_SILENT = UNKNOWN; + /** + * return driver prototype + * @var int + * @cname OP_PROTOTYPE + */ + const OP_PROTOTYPE = UNKNOWN; + /** + * half-open (IMAP connect but no select) + * @var int + * @cname OP_HALFOPEN + */ + const OP_HALFOPEN = UNKNOWN; + /** + * silently expunge recycle stream + * @var int + * @cname OP_EXPUNGE + */ + const OP_EXPUNGE = UNKNOWN; + /** + * don't do non-secure authentication + * @var int + * @cname OP_SECURE + */ + const OP_SECURE = UNKNOWN; -namespace { + /** + * @var int + * @cname PHP_EXPUNGE + */ + const CL_EXPUNGE = UNKNOWN; + + /** + * argument is a UID + * @var int + * @cname FT_UID + */ + const FT_UID = UNKNOWN; + /** + * peek at data + * @var int + * @cname FT_PEEK + */ + const FT_PEEK = UNKNOWN; + /** + * NOT flag for header lines fetch + * @var int + * @cname FT_NOT + */ + const FT_NOT = UNKNOWN; + /** + * text can be internal strings + * @var int + * @cname FT_INTERNAL + */ + const FT_INTERNAL = UNKNOWN; + /** + * IMAP prefetch text when fetching header + * @var int + * @cname FT_PREFETCHTEXT + */ + const FT_PREFETCHTEXT = UNKNOWN; + + /** + * argument is a UID sequence + * @var int + * @cname ST_UID + */ + const ST_UID = UNKNOWN; + /** + * don't return results + * @var int + * @cname ST_SILENT + */ + const ST_SILENT = UNKNOWN; + /** + * set vs. clear + * @var int + * @cname ST_SET + */ + const ST_SET = UNKNOWN; + + /** + * argument is a UID sequence + * @var int + * @cname CP_UID + */ + const CP_UID = UNKNOWN; + /** + * delete from source after copying + * @var int + * @cname CP_MOVE + */ + const CP_MOVE = UNKNOWN; + + /** + * return UID + * @var int + * @cname SE_UID + */ + const SE_UID = UNKNOWN; + /** + * free search program after finished + * @var int + * @cname SE_FREE + */ + const SE_FREE = UNKNOWN; + /** + * no search prefetchin + * @var int + * @cname SE_NOPREFETCH + */ + const SE_NOPREFETCH = UNKNOWN; + /** + * free sort program after finished + * @var int + * @cname SO_FREE + */ + const SO_FREE = UNKNOWN; + /** + * don't do server-based sort + * @var int + * @cname SO_FREE + */ + const SO_NOSERVER = UNKNOWN; + + /** + * number of messages + * @var int + * @cname SA_MESSAGES + */ + const SA_MESSAGES = UNKNOWN; + /** + * number of recent messages + * @var int + * @cname SA_RECENT + */ + const SA_RECENT = UNKNOWN; + /** + * number of unseen messages + * @var int + * @cname SA_UNSEEN + */ + const SA_UNSEEN = UNKNOWN; + /** + * next UID to be assigned + * @var int + * @cname SA_UIDNEXT + */ + const SA_UIDNEXT = UNKNOWN; + /** + * UID validity value + * @var int + * @cname SA_UIDVALIDITY + */ + const SA_UIDVALIDITY = UNKNOWN; + /** + * get all status information + * @var int + * @cname SA_ALL + */ + const SA_ALL = UNKNOWN; + + /** + * @var int + * @cname LATT_NOINFERIORS + */ + const LATT_NOINFERIORS = UNKNOWN; + /** + * @var int + * @cname LATT_NOSELECT + */ + const LATT_NOSELECT = UNKNOWN; + /** + * @var int + * @cname LATT_MARKED + */ + const LATT_MARKED = UNKNOWN; + /** + * @var int + * @cname LATT_UNMARKED + */ + const LATT_UNMARKED = UNKNOWN; + +#ifdef LATT_REFERRAL + /** + * @var int + * @cname LATT_REFERRAL + */ + const LATT_REFERRAL = UNKNOWN; +#endif +#ifdef LATT_HASCHILDREN + /** + * @var int + * @cname LATT_HASCHILDREN + */ + const LATT_HASCHILDREN = UNKNOWN; +#endif +#ifdef LATT_HASNOCHILDREN + /** + * @var int + * @cname LATT_HASNOCHILDREN + */ + const LATT_HASNOCHILDREN = UNKNOWN; +#endif + + /** + * date + * @var int + * @cname SORTDATE + */ + const SORTDATE = UNKNOWN; + /** + * arrival date + * @var int + * @cname SORTARRIVAL + */ + const SORTARRIVAL = UNKNOWN; + /** + * from + * @var int + * @cname SORTFROM + */ + const SORTFROM = UNKNOWN; + /** + * subject + * @var int + * @cname SORTSUBJECT + */ + const SORTSUBJECT = UNKNOWN; + /** + * to + * @var int + * @cname SORTTO + */ + const SORTTO = UNKNOWN; + /** + * cc + * @var int + * @cname SORTCC + */ + const SORTCC = UNKNOWN; + /** + * size + * @var int + * @cname SORTSIZE + */ + const SORTSIZE = UNKNOWN; + + /** + * @var int + * @cname TYPETEXT + */ + const TYPETEXT = UNKNOWN; + /** + * @var int + * @cname TYPEMULTIPART + */ + const TYPEMULTIPART = UNKNOWN; + /** + * @var int + * @cname TYPEMESSAGE + */ + const TYPEMESSAGE = UNKNOWN; + /** + * @var int + * @cname TYPEAPPLICATION + */ + const TYPEAPPLICATION = UNKNOWN; + /** + * @var int + * @cname TYPEAUDIO + */ + const TYPEAUDIO = UNKNOWN; + /** + * @var int + * @cname TYPEIMAGE + */ + const TYPEIMAGE = UNKNOWN; + /** + * @var int + * @cname TYPEVIDEO + */ + const TYPEVIDEO = UNKNOWN; + /** + * @var int + * @cname TYPEMODEL + */ + const TYPEMODEL = UNKNOWN; + /** + * @var int + * @cname TYPEOTHER + */ + const TYPEOTHER = UNKNOWN; + + /** + * @var int + * @cname ENC7BIT + */ + const ENC7BIT = UNKNOWN; + /** + * @var int + * @cname ENC8BIT + */ + const ENC8BIT = UNKNOWN; + /** + * @var int + * @cname ENCBINARY + */ + const ENCBINARY = UNKNOWN; + /** + * @var int + * @cname ENCBASE64 + */ + const ENCBASE64 = UNKNOWN; + /** + * @var int + * @cname ENCQUOTEDPRINTABLE + */ + const ENCQUOTEDPRINTABLE = UNKNOWN; + /** + * @var int + * @cname ENCOTHER + */ + const ENCOTHER = UNKNOWN; + + /** + * message cache elements + * @var int + * @cname GC_ELT + */ + const IMAP_GC_ELT = UNKNOWN; + /** + * ENVELOPEs and BODYs + * @var int + * @cname GC_ENV + */ + const IMAP_GC_ENV = UNKNOWN; + /** + * texts + * @var int + * @cname GC_TEXTS + */ + const IMAP_GC_TEXTS = UNKNOWN; function imap_open(string $mailbox, string $user, string $password, int $flags = 0, int $retries = 0, array $options = []): IMAP\Connection|false {} @@ -174,5 +564,13 @@ namespace { #endif function imap_mail(string $to, string $subject, string $message, ?string $additional_headers = null, ?string $cc = null, ?string $bcc = null, ?string $return_path = null): bool {} - +} + +namespace IMAP { + /** + * @strict-properties + * @not-serializable + */ + final class Connection { + } } diff --git a/ext/imap/php_imap_arginfo.h b/ext/imap/php_imap_arginfo.h index 54f64cbb57e..72100be406f 100644 --- a/ext/imap/php_imap_arginfo.h +++ b/ext/imap/php_imap_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 00bd9062b8e8abe8479c184265c3b8863ce2d7b4 */ + * Stub hash: 1665cea82b6d10538afcaf8c8e339ddb215855b9 */ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_imap_open, 0, 3, IMAP\\Connection, MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, mailbox, IS_STRING, 0) @@ -518,6 +518,84 @@ static const zend_function_entry class_IMAP_Connection_methods[] = { ZEND_FE_END }; +static void register_php_imap_symbols(int module_number) +{ + REGISTER_LONG_CONSTANT("NIL", NIL, CONST_CS | CONST_PERSISTENT | CONST_DEPRECATED); + REGISTER_LONG_CONSTANT("IMAP_OPENTIMEOUT", PHP_IMAP_OPENTIMEOUT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IMAP_READTIMEOUT", PHP_IMAP_READTIMEOUT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IMAP_WRITETIMEOUT", PHP_IMAP_WRITETIMEOUT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IMAP_CLOSETIMEOUT", PHP_IMAP_CLOSETIMEOUT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("OP_DEBUG", OP_DEBUG, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("OP_READONLY", OP_READONLY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("OP_ANONYMOUS", OP_ANONYMOUS, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("OP_SHORTCACHE", OP_SHORTCACHE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("OP_SILENT", OP_SILENT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("OP_PROTOTYPE", OP_PROTOTYPE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("OP_HALFOPEN", OP_HALFOPEN, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("OP_EXPUNGE", OP_EXPUNGE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("OP_SECURE", OP_SECURE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CL_EXPUNGE", PHP_EXPUNGE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("FT_UID", FT_UID, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("FT_PEEK", FT_PEEK, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("FT_NOT", FT_NOT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("FT_INTERNAL", FT_INTERNAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("FT_PREFETCHTEXT", FT_PREFETCHTEXT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ST_UID", ST_UID, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ST_SILENT", ST_SILENT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ST_SET", ST_SET, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CP_UID", CP_UID, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CP_MOVE", CP_MOVE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SE_UID", SE_UID, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SE_FREE", SE_FREE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SE_NOPREFETCH", SE_NOPREFETCH, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SO_FREE", SO_FREE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SO_NOSERVER", SO_FREE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SA_MESSAGES", SA_MESSAGES, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SA_RECENT", SA_RECENT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SA_UNSEEN", SA_UNSEEN, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SA_UIDNEXT", SA_UIDNEXT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SA_UIDVALIDITY", SA_UIDVALIDITY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SA_ALL", SA_ALL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LATT_NOINFERIORS", LATT_NOINFERIORS, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LATT_NOSELECT", LATT_NOSELECT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LATT_MARKED", LATT_MARKED, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LATT_UNMARKED", LATT_UNMARKED, CONST_CS | CONST_PERSISTENT); +#if defined(LATT_REFERRAL) + REGISTER_LONG_CONSTANT("LATT_REFERRAL", LATT_REFERRAL, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(LATT_HASCHILDREN) + REGISTER_LONG_CONSTANT("LATT_HASCHILDREN", LATT_HASCHILDREN, CONST_CS | CONST_PERSISTENT); +#endif +#if defined(LATT_HASNOCHILDREN) + REGISTER_LONG_CONSTANT("LATT_HASNOCHILDREN", LATT_HASNOCHILDREN, CONST_CS | CONST_PERSISTENT); +#endif + REGISTER_LONG_CONSTANT("SORTDATE", SORTDATE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SORTARRIVAL", SORTARRIVAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SORTFROM", SORTFROM, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SORTSUBJECT", SORTSUBJECT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SORTTO", SORTTO, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SORTCC", SORTCC, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SORTSIZE", SORTSIZE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("TYPETEXT", TYPETEXT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("TYPEMULTIPART", TYPEMULTIPART, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("TYPEMESSAGE", TYPEMESSAGE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("TYPEAPPLICATION", TYPEAPPLICATION, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("TYPEAUDIO", TYPEAUDIO, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("TYPEIMAGE", TYPEIMAGE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("TYPEVIDEO", TYPEVIDEO, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("TYPEMODEL", TYPEMODEL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("TYPEOTHER", TYPEOTHER, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ENC7BIT", ENC7BIT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ENC8BIT", ENC8BIT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ENCBINARY", ENCBINARY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ENCBASE64", ENCBASE64, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ENCQUOTEDPRINTABLE", ENCQUOTEDPRINTABLE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ENCOTHER", ENCOTHER, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IMAP_GC_ELT", GC_ELT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IMAP_GC_ENV", GC_ENV, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IMAP_GC_TEXTS", GC_TEXTS, CONST_CS | CONST_PERSISTENT); +} + static zend_class_entry *register_class_IMAP_Connection(void) { zend_class_entry ce, *class_entry;