summaryrefslogtreecommitdiff
path: root/ext/imap/php_imap.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/imap/php_imap.h')
-rw-r--r--ext/imap/php_imap.h233
1 files changed, 233 insertions, 0 deletions
diff --git a/ext/imap/php_imap.h b/ext/imap/php_imap.h
new file mode 100644
index 0000000..52128a6
--- /dev/null
+++ b/ext/imap/php_imap.h
@@ -0,0 +1,233 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 5 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2013 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 |
+ | available through the world-wide-web at the following url: |
+ | http://www.php.net/license/3_01.txt |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@php.net so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Authors: Rex Logan <veebert@dimensional.com> |
+ | Mark Musone <musone@afterfive.com> |
+ | Brian Wang <brian@vividnet.com> |
+ | Kaj-Michael Lang <milang@tal.org> |
+ | Antoni Pamies Olive <toni@readysoft.net> |
+ | Rasmus Lerdorf <rasmus@php.net> |
+ | Chuck Hagenbuch <chuck@horde.org> |
+ | Andrew Skalski <askalski@chekinc.com> |
+ | Hartmut Holzgraefe <hholzgra@php.net> |
+ | Jani Taskinen <sniper@iki.fi> |
+ | Daniel R. Kalowsky <kalowsky@php.net> |
+ | PHP 4.0 updates: Zeev Suraski <zeev@zend.com> |
+ +----------------------------------------------------------------------+
+ */
+
+/* $Id$ */
+
+#ifndef PHP_IMAP_H
+#define PHP_IMAP_H
+
+#if HAVE_IMAP
+
+#if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001)
+ /* these are used for quota support */
+# include "c-client.h" /* includes mail.h and rfc822.h */
+# include "imap4r1.h" /* location of c-client quota functions */
+#else
+# include "mail.h"
+# include "rfc822.h"
+#endif
+
+extern zend_module_entry imap_module_entry;
+#define imap_module_ptr &imap_module_entry
+
+
+/* Data types */
+
+#ifdef IMAP41
+#define LSIZE text.size
+#define LTEXT text.data
+#define DTYPE int
+#define CONTENT_PART nested.part
+#define CONTENT_MSG_BODY nested.msg->body
+#define IMAPVER "Imap 4R1"
+#else
+#define LSIZE size
+#define LTEXT text
+#define DTYPE char
+#define CONTENT_PART contents.part
+#define CONTENT_MSG_BODY contents.msg.body
+#define IMAPVER "Imap 4"
+#endif
+
+
+/* Determines how mm_list() and mm_lsub() are to return their results. */
+typedef enum {
+ FLIST_ARRAY,
+ FLIST_OBJECT
+} folderlist_style_t;
+
+typedef struct php_imap_le_struct {
+ MAILSTREAM *imap_stream;
+ long flags;
+} pils;
+
+typedef struct php_imap_mailbox_struct {
+ SIZEDTEXT text;
+ DTYPE delimiter;
+ long attributes;
+ struct php_imap_mailbox_struct *next;
+} FOBJECTLIST;
+
+typedef struct php_imap_error_struct {
+ SIZEDTEXT text;
+ long errflg;
+ struct php_imap_error_struct *next;
+} ERRORLIST;
+
+typedef struct _php_imap_message_struct {
+ unsigned long msgid;
+ struct _php_imap_message_struct *next;
+} MESSAGELIST;
+
+
+/* Functions */
+
+PHP_MINIT_FUNCTION(imap);
+PHP_RINIT_FUNCTION(imap);
+PHP_RSHUTDOWN_FUNCTION(imap);
+PHP_MINFO_FUNCTION(imap);
+
+PHP_FUNCTION(imap_open);
+PHP_FUNCTION(imap_popen);
+PHP_FUNCTION(imap_reopen);
+PHP_FUNCTION(imap_num_msg);
+PHP_FUNCTION(imap_num_recent);
+PHP_FUNCTION(imap_headers);
+PHP_FUNCTION(imap_headerinfo);
+PHP_FUNCTION(imap_rfc822_parse_headers);
+PHP_FUNCTION(imap_body);
+PHP_FUNCTION(imap_fetchstructure);
+PHP_FUNCTION(imap_fetchbody);
+PHP_FUNCTION(imap_fetchmime);
+PHP_FUNCTION(imap_savebody);
+PHP_FUNCTION(imap_gc);
+PHP_FUNCTION(imap_expunge);
+PHP_FUNCTION(imap_delete);
+PHP_FUNCTION(imap_undelete);
+PHP_FUNCTION(imap_check);
+PHP_FUNCTION(imap_close);
+PHP_FUNCTION(imap_mail_copy);
+PHP_FUNCTION(imap_mail_move);
+PHP_FUNCTION(imap_createmailbox);
+PHP_FUNCTION(imap_renamemailbox);
+PHP_FUNCTION(imap_deletemailbox);
+PHP_FUNCTION(imap_listmailbox);
+PHP_FUNCTION(imap_scanmailbox);
+PHP_FUNCTION(imap_subscribe);
+PHP_FUNCTION(imap_unsubscribe);
+PHP_FUNCTION(imap_append);
+PHP_FUNCTION(imap_ping);
+PHP_FUNCTION(imap_base64);
+PHP_FUNCTION(imap_qprint);
+PHP_FUNCTION(imap_8bit);
+PHP_FUNCTION(imap_binary);
+PHP_FUNCTION(imap_mailboxmsginfo);
+PHP_FUNCTION(imap_rfc822_write_address);
+PHP_FUNCTION(imap_rfc822_parse_adrlist);
+PHP_FUNCTION(imap_setflag_full);
+PHP_FUNCTION(imap_clearflag_full);
+PHP_FUNCTION(imap_sort);
+PHP_FUNCTION(imap_fetchheader);
+PHP_FUNCTION(imap_fetchtext);
+PHP_FUNCTION(imap_uid);
+PHP_FUNCTION(imap_msgno);
+PHP_FUNCTION(imap_list);
+PHP_FUNCTION(imap_list_full);
+PHP_FUNCTION(imap_listscan);
+PHP_FUNCTION(imap_lsub);
+PHP_FUNCTION(imap_lsub_full);
+PHP_FUNCTION(imap_create);
+PHP_FUNCTION(imap_rename);
+PHP_FUNCTION(imap_status);
+PHP_FUNCTION(imap_bodystruct);
+PHP_FUNCTION(imap_fetch_overview);
+PHP_FUNCTION(imap_mail_compose);
+PHP_FUNCTION(imap_alerts);
+PHP_FUNCTION(imap_errors);
+PHP_FUNCTION(imap_last_error);
+PHP_FUNCTION(imap_mail);
+PHP_FUNCTION(imap_search);
+PHP_FUNCTION(imap_utf8);
+PHP_FUNCTION(imap_utf7_decode);
+PHP_FUNCTION(imap_utf7_encode);
+#ifdef HAVE_IMAP_MUTF7
+PHP_FUNCTION(imap_utf8_to_mutf7);
+PHP_FUNCTION(imap_mutf7_to_utf8);
+#endif
+PHP_FUNCTION(imap_mime_header_decode);
+PHP_FUNCTION(imap_thread);
+PHP_FUNCTION(imap_timeout);
+
+#if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001)
+PHP_FUNCTION(imap_get_quota);
+PHP_FUNCTION(imap_get_quotaroot);
+PHP_FUNCTION(imap_set_quota);
+PHP_FUNCTION(imap_setacl);
+PHP_FUNCTION(imap_getacl);
+#endif
+
+
+ZEND_BEGIN_MODULE_GLOBALS(imap)
+ char *imap_user;
+ char *imap_password;
+
+ STRINGLIST *imap_alertstack;
+ ERRORLIST *imap_errorstack;
+
+ STRINGLIST *imap_folders;
+ STRINGLIST *imap_folders_tail;
+ STRINGLIST *imap_sfolders;
+ STRINGLIST *imap_sfolders_tail;
+ MESSAGELIST *imap_messages;
+ MESSAGELIST *imap_messages_tail;
+ FOBJECTLIST *imap_folder_objects;
+ FOBJECTLIST *imap_folder_objects_tail;
+ FOBJECTLIST *imap_sfolder_objects;
+ FOBJECTLIST *imap_sfolder_objects_tail;
+
+ folderlist_style_t folderlist_style;
+ long status_flags;
+ unsigned long status_messages;
+ unsigned long status_recent;
+ unsigned long status_unseen;
+ unsigned long status_uidnext;
+ unsigned long status_uidvalidity;
+#if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001)
+ zval **quota_return;
+ zval *imap_acl_list;
+#endif
+ /* php_stream for php_mail_gets() */
+ php_stream *gets_stream;
+ZEND_END_MODULE_GLOBALS(imap)
+
+#ifdef ZTS
+# define IMAPG(v) TSRMG(imap_globals_id, zend_imap_globals *, v)
+#else
+# define IMAPG(v) (imap_globals.v)
+#endif
+
+#else
+
+#define imap_module_ptr NULL
+
+#endif
+
+#define phpext_imap_ptr imap_module_ptr
+
+#endif /* PHP_IMAP_H */