1
0
mirror of https://github.com/php/php-src.git synced 2026-03-29 19:52:20 +02:00

Declare ext/imap constants in stubs (#8715)

This commit is contained in:
Máté Kocsis
2022-06-06 13:08:32 +02:00
committed by GitHub
parent 34b1010abc
commit e7d482d896
3 changed files with 496 additions and 191 deletions

View File

@@ -45,7 +45,6 @@
#undef ERROR
#endif
#include "php_imap.h"
#include "php_imap_arginfo.h"
#include <time.h>
#include <stdio.h>
@@ -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();
}

View File

@@ -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 {
}
}

View File

@@ -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;