static int add_assoc_object(zval *arg, char *key, zval *tmp TSRMLS_DC)
{
HashTable *symtable;
-
+
if (Z_TYPE_P(arg) == IS_OBJECT) {
symtable = Z_OBJPROP_P(arg);
} else {
static inline int add_next_index_object(zval *arg, zval *tmp TSRMLS_DC)
{
HashTable *symtable;
-
+
if (Z_TYPE_P(arg) == IS_OBJECT) {
symtable = Z_OBJPROP_P(arg);
} else {
symtable = Z_ARRVAL_P(arg);
}
- return zend_hash_next_index_insert(symtable, (void *) &tmp, sizeof(zval *), NULL);
+ return zend_hash_next_index_insert(symtable, (void *) &tmp, sizeof(zval *), NULL);
}
/* }}} */
/* }}} */
/* {{{ mail_newmessagelist
- *
+ *
* Mail instantiate MESSAGELIST
* Returns: new MESSAGELIST list
* Author: CJH
}
/* }}} */
-#if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001)
-/* {{{ mail_getquota
+#if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001)
+/* {{{ mail_getquota
*
* Mail GET_QUOTA callback
* Called via the mail_parameter function in c-client:src/c-client/mail.c
{
zval *t_map, *return_value;
TSRMLS_FETCH();
-
+
return_value = *IMAPG(quota_return);
/* put parsing code here */
#ifndef PHP_WIN32
auth_link(&auth_log); /* link in the log authenticator */
- auth_link(&auth_md5); /* link in the cram-md5 authenticator */
+ auth_link(&auth_md5); /* link in the cram-md5 authenticator */
#if HAVE_IMAP_KRB && defined(HAVE_IMAP_AUTH_GSS)
auth_link(&auth_gss); /* link in the gss authenticator */
#endif
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
+ 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
+ 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 */
MAILSTREAM *imap_stream;
pils *imap_le_struct;
int argc = ZEND_NUM_ARGS();
-
- if (zend_parse_parameters(argc TSRMLS_CC, "sss|ll", &mailbox, &mailbox_len, &user, &user_len,
+
+ if (zend_parse_parameters(argc TSRMLS_CC, "sss|ll", &mailbox, &mailbox_len, &user, &user_len,
&passwd, &passwd_len, &flags, &retries) == FAILURE) {
return;
}
}
}
- if (IMAPG(imap_user)) {
+ if (IMAPG(imap_user)) {
efree(IMAPG(imap_user));
}
- if (IMAPG(imap_password)) {
+ if (IMAPG(imap_password)) {
efree(IMAPG(imap_password));
}
imap_le_struct = emalloc(sizeof(pils));
imap_le_struct->imap_stream = imap_stream;
- imap_le_struct->flags = cl_flags;
+ imap_le_struct->flags = cl_flags;
ZEND_REGISTER_RESOURCE(return_value, imap_le_struct, le_imap);
}
char *mailbox;
int mailbox_len;
long options = 0, retries = 0;
- pils *imap_le_struct;
+ pils *imap_le_struct;
MAILSTREAM *imap_stream;
long flags=NIL;
long cl_flags=NIL;
cl_flags = CL_EXPUNGE;
flags ^= PHP_EXPUNGE;
}
- imap_le_struct->flags = cl_flags;
+ imap_le_struct->flags = cl_flags;
}
#ifdef SET_MAXLOGINTRIALS
if (retries) {
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rss|s", &streamind, &folder, &folder_len, &message, &message_len, &flags, &flags_len) == FAILURE) {
return;
}
-
+
ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap);
INIT (&st, mail_string, (void *) message, message_len);
PHP_FUNCTION(imap_num_msg)
{
zval *streamind;
- pils *imap_le_struct;
+ pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &streamind) == FAILURE) {
return;
PHP_FUNCTION(imap_ping)
{
zval *streamind;
- pils *imap_le_struct;
+ pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &streamind) == FAILURE) {
return;
limits.text.size = mailbox_size;
limits.next = NIL;
- RETURN_BOOL(imap_setquota(imap_le_struct->imap_stream, qroot, &limits));
+ RETURN_BOOL(imap_setquota(imap_le_struct->imap_stream, qroot, &limits));
}
/* }}} */
char *mailbox, *id, *rights;
int mailbox_len, id_len, rights_len;
pils *imap_le_struct;
-
+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rsss", &streamind, &mailbox, &mailbox_len, &id, &id_len, &rights, &rights_len) == FAILURE) {
return;
}
PHP_FUNCTION(imap_expunge)
{
zval *streamind;
- pils *imap_le_struct;
+ pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &streamind) == FAILURE) {
return;
PHP_FUNCTION(imap_close)
{
zval *streamind;
- pils *imap_le_struct=NULL;
+ pils *imap_le_struct=NULL;
long options = 0, flags = NIL;
int argc = ZEND_NUM_ARGS();
if (flags & PHP_EXPUNGE) {
flags ^= PHP_EXPUNGE;
flags |= CL_EXPUNGE;
- }
+ }
imap_le_struct->flags = flags;
}
PHP_FUNCTION(imap_headers)
{
zval *streamind;
- pils *imap_le_struct;
+ pils *imap_le_struct;
unsigned long i;
char *t;
unsigned int msgno;
char tmp[MAILTMPLEN];
-
+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &streamind) == FAILURE) {
return;
}
-
+
ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap);
/* Initialize return array */
array_init(return_value);
-
+
for (msgno = 1; msgno <= imap_le_struct->imap_stream->nmsgs; msgno++) {
MESSAGECACHE * cache = mail_elt (imap_le_struct->imap_stream, msgno);
mail_fetchstructure(imap_le_struct->imap_stream, msgno, NIL);
{
zval *streamind;
long msgno, flags = 0;
- pils *imap_le_struct;
+ pils *imap_le_struct;
int msgindex, argc = ZEND_NUM_ARGS();
char *body;
unsigned long body_len = 0;
long options = 0;
char *seq, *folder;
int seq_len, folder_len, argc = ZEND_NUM_ARGS();
- pils *imap_le_struct;
+ pils *imap_le_struct;
if (zend_parse_parameters(argc TSRMLS_CC, "rss|l", &streamind, &seq, &seq_len, &folder, &folder_len, &options) == FAILURE) {
return;
char *seq, *folder;
int seq_len, folder_len;
long options = 0;
- pils *imap_le_struct;
+ pils *imap_le_struct;
int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc TSRMLS_CC, "rss|l", &streamind, &seq, &seq_len, &folder, &folder_len, &options) == FAILURE) {
zval *streamind;
char *folder;
int folder_len;
- pils *imap_le_struct;
+ pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &streamind, &folder, &folder_len) == FAILURE) {
return;
zval *streamind;
char *old_mailbox, *new_mailbox;
int old_mailbox_len, new_mailbox_len;
- pils *imap_le_struct;
+ pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rss", &streamind, &old_mailbox, &old_mailbox_len, &new_mailbox, &new_mailbox_len) == FAILURE) {
return;
zval *streamind;
char *folder;
int folder_len;
- pils *imap_le_struct;
+ pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &streamind, &folder, &folder_len) == FAILURE) {
return;
zval *streamind;
char *ref, *pat;
int ref_len, pat_len;
- pils *imap_le_struct;
+ pils *imap_le_struct;
STRINGLIST *cur=NIL;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rss", &streamind, &ref, &ref_len, &pat, &pat_len) == FAILURE) {
/* set flag for normal, old mailbox list */
IMAPG(folderlist_style) = FLIST_ARRAY;
-
+
IMAPG(imap_folders) = IMAPG(imap_folders_tail) = NIL;
mail_list(imap_le_struct->imap_stream, ref, pat);
if (IMAPG(imap_folders) == NIL) {
zval *streamind, *mboxob;
char *ref, *pat;
int ref_len, pat_len;
- pils *imap_le_struct;
+ pils *imap_le_struct;
FOBJECTLIST *cur=NIL;
char *delim=NIL;
-
+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rss", &streamind, &ref, &ref_len, &pat, &pat_len) == FAILURE) {
return;
}
-
+
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;
-
+
IMAPG(imap_folder_objects) = IMAPG(imap_folder_objects_tail) = NIL;
mail_list(imap_le_struct->imap_stream, ref, pat);
if (IMAPG(imap_folder_objects) == NIL) {
RETURN_FALSE;
}
-
+
array_init(return_value);
delim = safe_emalloc(2, sizeof(char), 0);
cur=IMAPG(imap_folder_objects);
zval *streamind;
pils *imap_le_struct;
char date[100];
-
+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &streamind) == FAILURE) {
return;
}
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) {
return;
}
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));
RETVAL_TRUE;
}
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);
-
+
convert_to_string_ex(sequence);
mail_clearflag_full(imap_le_struct->imap_stream, Z_STRVAL_PP(sequence), "\\DELETED", (argc == 3 ? flags : NIL));
MESSAGECACHE *cache;
ENVELOPE *en;
char dummy[2000], fulladdress[MAILTMPLEN + 1];
-
+
if (zend_parse_parameters(argc TSRMLS_CC, "rl|lls", &streamind, &msgno, &fromlength, &subjectlength, &defaulthost, &defaulthost_len) == FAILURE) {
return;
}
-
+
ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap);
if (argc >= 3) {
} else {
subjectlength = 0x00;
}
-
+
PHP_IMAP_CHECK_MSGNO(msgno);
if (mail_fetchstructure(imap_le_struct->imap_stream, msgno, NIL)) {
} else {
RETURN_FALSE;
}
-
+
en = mail_fetchenvelope(imap_le_struct->imap_stream, msgno);
/* call a function to parse all the text, so that we can use the
same function to parse text from other sources */
_php_make_header_object(return_value, en TSRMLS_CC);
-
+
/* 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, "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);
-
+
snprintf(dummy, sizeof(dummy), "%4ld", cache->msgno);
add_property_string(return_value, "Msgno", dummy, 1);
-
+
mail_date(dummy, cache);
add_property_string(return_value, "MailDate", dummy, 1);
-
- snprintf(dummy, sizeof(dummy), "%ld", cache->rfc822_size);
+
+ snprintf(dummy, sizeof(dummy), "%ld", cache->rfc822_size);
add_property_string(return_value, "Size", dummy, 1);
-
+
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);
if (zend_parse_parameters(argc TSRMLS_CC, "s|s", &headers, &headers_len, &defaulthost, &defaulthost_len) == FAILURE) {
return;
}
-
+
if (argc == 2) {
rfc822_parse_msg(&en, NULL, headers, headers_len, NULL, defaulthost, NIL);
} else {
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rss", &streamind, &ref, &ref_len, &pat, &pat_len) == FAILURE) {
return;
}
-
+
ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap);
/* set flag for normal, old mailbox list */
IMAPG(folderlist_style) = FLIST_ARRAY;
-
+
IMAPG(imap_sfolders) = NIL;
mail_lsub(imap_le_struct->imap_stream, ref, pat);
if (IMAPG(imap_sfolders) == NIL) {
pils *imap_le_struct;
FOBJECTLIST *cur=NIL;
char *delim=NIL;
-
+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rss", &streamind, &ref, &ref_len, &pat, &pat_len) == FAILURE) {
return;
}
-
+
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;
-
+
IMAPG(imap_sfolder_objects) = IMAPG(imap_sfolder_objects_tail) = NIL;
mail_lsub(imap_le_struct->imap_stream, ref, pat);
if (IMAPG(imap_sfolder_objects) == NIL) {
RETURN_FALSE;
}
-
+
array_init(return_value);
delim = safe_emalloc(2, sizeof(char), 0);
cur=IMAPG(imap_sfolder_objects);
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &streamind, &folder, &folder_len) == FAILURE) {
return;
}
-
+
ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap);
if (mail_subscribe(imap_le_struct->imap_stream, folder) == T) {
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)) {
RETURN_FALSE;
}
-
+
ZEND_FETCH_RESOURCE(imap_ptr, pils *, &stream, -1, "imap", le_imap);
-
+
if (!imap_ptr) {
RETURN_FALSE;
}
-
+
switch (Z_TYPE_PP(out))
{
case IS_LONG:
writer = php_stream_open_wrapper(Z_STRVAL_PP(out), "wb", REPORT_ERRORS|ENFORCE_SAFE_MODE, NULL);
break;
}
-
+
if (!writer) {
RETURN_FALSE;
}
-
+
IMAPG(gets_stream) = writer;
mail_fetchbody_full(imap_ptr->imap_stream, msgno, section, NULL, flags);
IMAPG(gets_stream) = NULL;
-
+
if (close_stream) {
php_stream_close(writer);
}
-
+
RETURN_TRUE;
}
/* }}} */
int str_len, defaulthost_len;
ADDRESS *addresstmp;
ENVELOPE *env;
-
+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &str, &str_len, &defaulthost, &defaulthost_len) == FAILURE) {
return;
}
}
add_next_index_object(return_value, tovals TSRMLS_CC);
} while ((addresstmp = addresstmp->next));
-
+
mail_free_envelope(&env);
}
/* }}} */
char *str;
int str_len;
SIZEDTEXT src, dest;
-
+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &str, &str_len) == FAILURE) {
return;
}
-
+
src.data = NULL;
src.size = 0;
dest.data = NULL;
/* }}} */
-/* {{{ macros for the modified utf7 conversion functions
+/* {{{ macros for the modified utf7 conversion functions
*
- * author: Andrew Skalski <askalski@chek.com>
+ * author: Andrew Skalski <askalski@chek.com>
*/
/* tests `c' and returns true if it is a special character */
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
return;
}
-
+
in = (const unsigned char *) arg;
inlen = arg_len;
-
+
/* validate and compute length of output string */
outlen = 0;
state = ST_NORMAL;
ST_ENCODE1,
ST_ENCODE2
} state;
-
+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
return;
}
SORTPGM *mypgm=NIL;
SEARCHPGM *spg=NIL;
int argc = ZEND_NUM_ARGS();
-
+
if (zend_parse_parameters(argc TSRMLS_CC, "rll|lss", &streamind, &pgm, &rev, &flags, &criteria, &criteria_len, &charset, &charset_len) == FAILURE) {
return;
}
} else {
spg = mail_newsearchpgm();
}
-
+
mypgm = mail_newsortpgm();
mypgm->reverse = rev;
mypgm->function = (short) pgm;
mypgm->next = NIL;
-
+
slst = mail_sort(imap_le_struct->imap_stream, (argc == 6 ? charset : NIL), spg, mypgm, (argc >= 4 ? flags : NIL));
if (spg) {
array_init(return_value);
if (slst != NIL && slst != 0) {
- for (sl = slst; *sl; sl++) {
+ for (sl = slst; *sl; sl++) {
add_next_index_long(return_value, *sl);
}
fs_give ((void **) &slst);
long msgno, flags=0L;
pils *imap_le_struct;
int msgindex, argc = ZEND_NUM_ARGS();
-
+
if (zend_parse_parameters(argc TSRMLS_CC, "rl|l", &streamind, &msgno, &flags) == FAILURE) {
return;
}
}
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
IMAP server, then that's the price we pay for making sure
}
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)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad message number");
zval *streamind;
long msgno;
pils *imap_le_struct;
-
+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &streamind, &msgno) == FAILURE) {
return;
}
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rls", &streamind, &msg, §ion, §ion_len) == FAILURE) {
return;
}
-
+
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");
RETURN_FALSE;
}
object_init(return_value);
-
+
body=mail_body(imap_le_struct->imap_stream, msg, section);
if (body == NULL) {
zval_dtor(return_value);
if (body->encoding <= ENCMAX) {
add_property_long(return_value, "encoding", body->encoding);
}
-
+
if (body->subtype) {
add_property_long(return_value, "ifsubtype", 1);
add_property_string(return_value, "subtype", body->subtype, 1);
} 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_long(return_value, "ifid", 0);
}
-
+
if (body->size.lines) {
add_property_long(return_value, "lines", body->size.lines);
}
} else {
add_property_long(return_value, "ifdisposition", 0);
}
-
+
if (body->disposition.parameter) {
dpar = body->disposition.parameter;
add_property_long(return_value, "ifdparameters", 1);
add_property_long(return_value, "ifdparameters", 0);
}
#endif
-
+
if ((par = body->parameter)) {
add_property_long(return_value, "ifparameters", 1);
-
+
MAKE_STD_ZVAL(parametres);
array_init(parametres);
do {
if (par->value) {
add_property_string(param, "value", par->value, 1);
}
-
+
add_next_index_object(parametres, param TSRMLS_CC);
} while ((par = par->next));
} else {
/* }}} */
/* {{{ proto array imap_fetch_overview(resource stream_id, string sequence [, int options])
- Read an overview of the information in the headers of the given message sequence */
+ Read an overview of the information in the headers of the given message sequence */
PHP_FUNCTION(imap_fetch_overview)
{
zval *streamind;
status = (flags & FT_UID)
? mail_uid_sequence(imap_le_struct->imap_stream, sequence)
: mail_sequence(imap_le_struct->imap_stream, sequence);
-
- if (status) {
+
+ if (status) {
MESSAGECACHE *elt;
ENVELOPE *env;
unsigned long i;
-
+
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))) {
if (type != TYPEMULTIPART) {
bod->type = type;
- }
+ }
if (zend_hash_find(Z_ARRVAL_PP(data), "encoding", sizeof("encoding"), (void **) &pvalue)== SUCCESS) {
convert_to_long_ex(pvalue);
}
if (zend_hash_find(Z_ARRVAL_PP(data), "subtype", sizeof("subtype"), (void **) &pvalue)== SUCCESS) {
convert_to_string_ex(pvalue);
- bod->subtype = cpystr(Z_STRVAL_PP(pvalue));
+ bod->subtype = cpystr(Z_STRVAL_PP(pvalue));
}
if (zend_hash_find(Z_ARRVAL_PP(data), "id", sizeof("id"), (void **) &pvalue)== SUCCESS) {
convert_to_string_ex(pvalue);
tmp[l] = '\0';
tempstring = emalloc(l);
memcpy(tempstring, tmp, l);
-
+
do {
l2 = strlen(custom_headers_param->value);
tempstring = erealloc(tempstring, l + l2 + CRLF_LEN + 1);
l += l2 + CRLF_LEN;
} while ((custom_headers_param = custom_headers_param->next));
- mail_free_body_parameter(&tp);
+ mail_free_body_parameter(&tp);
mystring = emalloc(l + CRLF_LEN + 1);
memcpy(mystring, tempstring, l);
bod = topbod;
- if (bod && bod->type == TYPEMULTIPART) {
+ if (bod && bod->type == TYPEMULTIPART) {
/* first body part */
- part = bod->nested.part;
+ part = bod->nested.part;
/* find cookie */
for (param = bod->parameter; param && !cookie; param = param->next) {
/* yucky default */
if (!cookie) {
- cookie = "-";
+ cookie = "-";
} else if (strlen(cookie) > (SENDBUFLEN - 2 - 2 - 2)) { /* validate cookie length -- + CRLF * 2 */
php_error_docref(NULL TSRMLS_CC, E_WARNING, "The boudary should be no longer then 4kb");
RETVAL_FALSE;
- goto done;
+ goto done;
}
/* for each part */
do {
t = tmp;
-
+
/* append mini-header */
*t = '\0';
rfc822_write_body_header(&t, &part->body);
ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap);
search_criteria = estrndup(criteria, criteria_len);
-
+
IMAPG(imap_messages) = IMAPG(imap_messages_tail) = NIL;
pgm = mail_criteria(search_criteria);
efree(search_criteria);
RETURN_FALSE;
}
-
+
array_init(return_value);
cur = IMAPG(imap_messages);
if (zend_parse_parameters_none() == FAILURE) {
return;
- }
-
+ }
+
if (IMAPG(imap_alertstack) == NIL) {
RETURN_FALSE;
}
-
+
array_init(return_value);
cur = IMAPG(imap_alertstack);
if (zend_parse_parameters_none() == FAILURE) {
return;
- }
-
+ }
+
if (IMAPG(imap_errorstack) == NIL) {
RETURN_FALSE;
}
-
+
array_init(return_value);
cur = IMAPG(imap_errorstack);
}
/* }}} */
-/* {{{ proto string imap_last_error(void)
+/* {{{ proto string imap_last_error(void)
Returns the last error that was generated by an IMAP function. The error stack is NOT cleared after this call. */
/* Author: CJH */
PHP_FUNCTION(imap_last_error)
if (zend_parse_parameters_none() == FAILURE) {
return;
- }
-
+ }
+
if (IMAPG(imap_errorstack) == NIL) {
RETURN_FALSE;
}
-
+
cur = IMAPG(imap_errorstack);
while (cur != NIL) {
if (cur->next == NIL) {
string = str;
end = str_len;
-
+
charset = (char *) safe_emalloc((end + 1), 2, 0);
text = &charset[end + 1];
while (offset < end) { /* Reached end of the string? */
add_property_string(myobject, "charset", "default", 1);
add_property_string(myobject, "text", text, 1);
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. */
}
efree(charset);
smart_str *ret = (smart_str*)stream;
int len = strlen(string);
- smart_str_appendl(ret, string, len);
+ smart_str_appendl(ret, string, len);
return LONGT;
}
/* {{{ _php_rfc822_len
* Calculate string length based on imap's rfc822_cat function.
- */
+ */
static int _php_rfc822_len(char *str)
{
int len;
num_ent++;
} while ((tmp = tmp->next));
- /*
- * rfc822_write_address_full() needs some extra space for '<>,', etc.
+ /*
+ * rfc822_write_address_full() needs some extra space for '<>,', etc.
* for this perpouse we allocate additional PHP_IMAP_ADDRESS_SIZE_BUF bytes
* by default this buffer is 10 bytes long
*/
char *fulladdress;
ADDRESS *addresstmp;
zval *tmpvals;
-
+
addresstmp = addresslist;
fulladdress = _php_rfc822_write_address(addresstmp TSRMLS_CC);
-
+
addresstmp = addresslist;
do {
MAKE_STD_ZVAL(tmpvals);
{
zval *paddress;
char *fulladdress=NULL;
-
+
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->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->to) {
MAKE_STD_ZVAL(paddress);
array_init(paddress);
}
add_assoc_object(myzvalue, "to", paddress TSRMLS_CC);
}
-
+
if (en->from) {
MAKE_STD_ZVAL(paddress);
array_init(paddress);
}
add_assoc_object(myzvalue, "from", paddress TSRMLS_CC);
}
-
+
if (en->cc) {
MAKE_STD_ZVAL(paddress);
array_init(paddress);
}
add_assoc_object(myzvalue, "cc", paddress TSRMLS_CC);
}
-
+
if (en->bcc) {
MAKE_STD_ZVAL(paddress);
array_init(paddress);
}
add_assoc_object(myzvalue, "bcc", paddress TSRMLS_CC);
}
-
+
if (en->reply_to) {
MAKE_STD_ZVAL(paddress);
array_init(paddress);
zval *parametres, *param, *dparametres, *dparam;
PARAMETER *par, *dpar;
PART *part;
-
+
if (body->type <= TYPEMAX) {
add_property_long(arg, "type", body->type);
}
} else {
add_property_long(arg, "ifid", 0);
}
-
+
if (body->size.lines) {
add_property_long(arg, "lines", body->size.lines);
}
add_property_long(arg, "ifdparameters", 0);
}
#endif
-
+
if ((par = body->parameter)) {
add_property_long(arg, "ifparameters", 1);
}
add_assoc_object(arg, "parts", parametres TSRMLS_CC);
}
-
+
/* encapsulated message ? */
if ((body->type == TYPEMESSAGE) && (!strcasecmp(body->subtype, "rfc822"))) {
body = body->CONTENT_MSG_BODY;
if(cur->branch) {
(*numNodes)++;
add_assoc_long(tree, buf, *numNodes);
- build_thread_tree_helper(cur->branch, tree, numNodes, buf);
+ build_thread_tree_helper(cur->branch, tree, numNodes, buf);
} else { /* "null pointer" */
add_assoc_long(tree, buf, 0);
}
}
/* }}} */
-/* {{{ build_thread_tree
+/* {{{ build_thread_tree
*/
static int build_thread_tree(THREADNODE *top, zval **tree)
{
char buf[25];
array_init(*tree);
-
+
build_thread_tree_helper(top, *tree, &numNodes, buf);
return SUCCESS;
if (zend_parse_parameters(argc TSRMLS_CC, "r|l", &streamind, &flags) == FAILURE) {
return;
}
-
+
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);
if (pgm) {
static char *php_mail_gets(readfn_t f, void *stream, unsigned long size, GETS_DATA *md)
{
TSRMLS_FETCH();
-
- /* write to the gets stream if it is set,
+
+ /* write to the gets stream if it is set,
otherwise forward to c-clients gets */
if (IMAPG(gets_stream)) {
char buf[GETS_FETCH_SIZE];
-
+
while (size) {
unsigned long read;
-
+
if (size > GETS_FETCH_SIZE) {
read = GETS_FETCH_SIZE;
size -=GETS_FETCH_SIZE;
read = size;
size = 0;
}
-
+
if (!f(stream, read, buf)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to read from socket");
break;
return NULL;
} else {
char *buf = pemalloc(size + 1, 1);
-
+
if (f(stream, size, buf)) {
buf[size] = '\0';
} else {
}
/* }}} */
-/* {{{ Interfaces to C-client
+/* {{{ Interfaces to C-client
*/
PHP_IMAP_EXPORT void mm_searched(MAILSTREAM *stream, unsigned long number)
{
{
STRINGLIST *cur = NIL;
TSRMLS_FETCH();
-
+
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)->next = NIL;
+ IMAPG(imap_alertstack)->next = NIL;
} else {
cur = IMAPG(imap_alertstack);
while (cur->next != NIL) {
STRINGLIST *cur=NIL;
FOBJECTLIST *ocur=NIL;
TSRMLS_FETCH();
-
+
if (IMAPG(folderlist_style) == FLIST_OBJECT) {
/* build up a the new array of objects */
/* Author: CJH */
ocur->next = NIL;
IMAPG(imap_folder_objects_tail) = ocur;
}
-
+
} else {
/* build the old IMAPG(imap_folders) variable to allow old imap_listmailbox() to work */
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)->next=NIL;
+ IMAPG(imap_folders)->next=NIL;
IMAPG(imap_folders_tail) = IMAPG(imap_folders);
} else {
cur=IMAPG(imap_folders_tail);
STRINGLIST *cur=NIL;
FOBJECTLIST *ocur=NIL;
TSRMLS_FETCH();
-
+
if (IMAPG(folderlist_style) == FLIST_OBJECT) {
/* build the array of objects */
/* Author: CJH */
if (IMAPG(imap_sfolders) == NIL) {
IMAPG(imap_sfolders)=mail_newstringlist();
IMAPG(imap_sfolders)->LSIZE=strlen(IMAPG(imap_sfolders)->LTEXT=cpystr(mailbox));
- IMAPG(imap_sfolders)->next=NIL;
+ IMAPG(imap_sfolders)->next=NIL;
IMAPG(imap_sfolders_tail) = IMAPG(imap_sfolders);
} else {
cur=IMAPG(imap_sfolders_tail);
{
ERRORLIST *cur = NIL;
TSRMLS_FETCH();
-
+
/* Author: CJH */
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)->errflg = errflg;
- IMAPG(imap_errorstack)->next = NIL;
+ IMAPG(imap_errorstack)->next = NIL;
} else {
cur = IMAPG(imap_errorstack);
while (cur->next != NIL) {