sniper Sun Aug 7 18:06:29 2005 EDT
Modified files:
/php-src/ext/imap php_imap.c
/php-src/ext/standard mail.c
/php-src/win32 sendmail.c sendmail.h
Log:
- Fixed bug #29334 (mail() provides incorrect message time header)
http://cvs.php.net/diff.php/php-src/ext/imap/php_imap.c?r1=1.207&r2=1.208&ty=u
Index: php-src/ext/imap/php_imap.c
diff -u php-src/ext/imap/php_imap.c:1.207 php-src/ext/imap/php_imap.c:1.208
--- php-src/ext/imap/php_imap.c:1.207 Wed Aug 3 10:07:16 2005
+++ php-src/ext/imap/php_imap.c Sun Aug 7 18:06:27 2005
@@ -26,7 +26,7 @@
| PHP 4.0 updates: Zeev Suraski <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_imap.c,v 1.207 2005/08/03 14:07:16 sniper Exp $ */
+/* $Id: php_imap.c,v 1.208 2005/08/07 22:06:27 sniper Exp $ */
#define IMAP41
@@ -3346,7 +3346,7 @@
strcat(bufferHeader, headers);
}
- if (TSendMail(INI_STR("SMTP"), &tsm_err, &tsm_errmsg, bufferHeader,
subject, bufferTo, message, bufferCc, bufferBcc, rpath) != SUCCESS) {
+ if (TSendMail(INI_STR("SMTP"), &tsm_err, &tsm_errmsg, bufferHeader,
subject, bufferTo, message, bufferCc, bufferBcc, rpath TSRMLS_CC) != SUCCESS) {
if (tsm_errmsg) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s",
tsm_errmsg);
efree(tsm_errmsg);
http://cvs.php.net/diff.php/php-src/ext/standard/mail.c?r1=1.86&r2=1.87&ty=u
Index: php-src/ext/standard/mail.c
diff -u php-src/ext/standard/mail.c:1.86 php-src/ext/standard/mail.c:1.87
--- php-src/ext/standard/mail.c:1.86 Wed Aug 3 10:08:08 2005
+++ php-src/ext/standard/mail.c Sun Aug 7 18:06:28 2005
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mail.c,v 1.86 2005/08/03 14:08:08 sniper Exp $ */
+/* $Id: mail.c,v 1.87 2005/08/07 22:06:28 sniper Exp $ */
#include <stdlib.h>
#include <ctype.h>
@@ -185,7 +185,7 @@
if (!sendmail_path) {
#if (defined PHP_WIN32 || defined NETWARE)
/* handle old style win smtp sending */
- if (TSendMail(INI_STR("SMTP"), &tsm_err, &tsm_errmsg, headers,
subject, to, message, NULL, NULL, NULL) == FAILURE) {
+ if (TSendMail(INI_STR("SMTP"), &tsm_err, &tsm_errmsg, headers,
subject, to, message, NULL, NULL, NULL TSRMLS_CC) == FAILURE) {
if (tsm_errmsg) {
php_error_docref(NULL TSRMLS_CC, E_WARNING,
"%s", tsm_errmsg);
efree(tsm_errmsg);
http://cvs.php.net/diff.php/php-src/win32/sendmail.c?r1=1.64&r2=1.65&ty=u
Index: php-src/win32/sendmail.c
diff -u php-src/win32/sendmail.c:1.64 php-src/win32/sendmail.c:1.65
--- php-src/win32/sendmail.c:1.64 Thu Jul 28 05:44:13 2005
+++ php-src/win32/sendmail.c Sun Aug 7 18:06:29 2005
@@ -17,7 +17,7 @@
*
*/
-/* $Id: sendmail.c,v 1.64 2005/07/28 09:44:13 hyanantha Exp $ */
+/* $Id: sendmail.c,v 1.65 2005/08/07 22:06:29 sniper Exp $ */
#include "php.h" /*php specific */
#include <stdio.h>
@@ -42,23 +42,15 @@
#include "ext/pcre/php_pcre.h"
#endif
-#include "ext/standard/php_string.h"
+#include "ext/standard/php_string.h"
+#include "ext/date/php_date.h"
-/*
- extern int _daylight;
- extern long _timezone;
- */
/*enum
{
DO_CONNECT = WM_USER +1
};
*/
-static char *days[] =
-{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
-static char *months[] =
-{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov",
"Dec"};
-
/* '*error_message' has to be passed around from php_mail() */
#define SMTP_ERROR_RESPONSE_SPEC "SMTP server response: %s"
/* Convinient way to handle error messages from the SMTP server.
@@ -98,8 +90,6 @@
char *php_mailer = "PHP 4 NetWare";
#endif /* NETWARE */
-char *get_header(char *h, char *headers);
-
/* Error messages */
static char *ErrorMessages[] =
{
@@ -220,13 +210,12 @@
//********************************************************************/
PHPAPI int TSendMail(char *host, int *error, char **error_message,
char *headers, char *Subject, char *mailTo, char
*data,
- char *mailCc, char *mailBcc, char *mailRPath)
+ char *mailCc, char *mailBcc, char *mailRPath
TSRMLS_DC)
{
int ret;
char *RPath = NULL;
char *headers_lc = NULL; /* headers_lc is only created if we've a
header at all */
char *pos1 = NULL, *pos2 = NULL;
- TSRMLS_FETCH();
#ifndef NETWARE
WinsockStarted = FALSE;
@@ -311,7 +300,7 @@
MailHost, !INI_INT("smtp_port") ? 25 :
INI_INT("smtp_port"));
return FAILURE;
} else {
- ret = SendText(RPath, Subject, mailTo, mailCc, mailBcc, data,
headers, headers_lc, error_message);
+ ret = SendText(RPath, Subject, mailTo, mailCc, mailBcc, data,
headers, headers_lc, error_message TSRMLS_CC);
TSMClose();
if (RPath) {
efree(RPath);
@@ -388,8 +377,8 @@
// Author/Date: jcar 20/9/96
// History:
//*******************************************************************/
-int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc, char
*mailBcc, char *data,
- char *headers, char *headers_lc, char **error_message)
+static int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc,
char *mailBcc, char *data,
+ char *headers, char *headers_lc, char **error_message
TSRMLS_DC)
{
int res;
char *p;
@@ -609,9 +598,9 @@
/* send message header */
if (Subject == NULL) {
- res = PostHeader(RPath, "No Subject", mailTo, stripped_header);
+ res = PostHeader(RPath, "No Subject", mailTo, stripped_header
TSRMLS_CC);
} else {
- res = PostHeader(RPath, Subject, mailTo, stripped_header);
+ res = PostHeader(RPath, Subject, mailTo, stripped_header
TSRMLS_CC);
}
if (stripped_header) {
efree(stripped_header);
@@ -665,7 +654,8 @@
return (SUCCESS);
}
-int addToHeader(char **header_buffer, const char *specifier, char *string) {
+static int addToHeader(char **header_buffer, const char *specifier, char
*string)
+{
if (NULL == (*header_buffer = erealloc(*header_buffer,
strlen(*header_buffer) + strlen(specifier) + strlen(string) + 1))) {
return 0;
}
@@ -684,16 +674,12 @@
// Author/Date: jcar 20/9/96
// History:
//********************************************************************/
-int PostHeader(char *RPath, char *Subject, char *mailTo, char *xheaders)
+static int PostHeader(char *RPath, char *Subject, char *mailTo, char *xheaders
TSRMLS_DC)
{
-
/* Print message header according to RFC 822 */
/* Return-path, Received, Date, From, Subject, Sender, To, cc */
- time_t tNow = time(NULL);
- struct tm *tm = localtime(&tNow);
- int zoneh = abs(_timezone);
- int zonem, res;
+ int res;
char *header_buffer;
char *headers_lc = NULL;
size_t i;
@@ -711,21 +697,13 @@
efree(headers_lc);
return OUT_OF_MEMORY;
}
- zoneh /= (60 * 60);
- zonem = (abs(_timezone) / 60) - (zoneh * 60);
- if(!xheaders || !strstr(headers_lc, "date:")){
- sprintf(header_buffer, "Date: %s, %02d %s %04d %02d:%02d:%02d
%s%02d%02d\r\n",
- days[tm->tm_wday],
- tm->tm_mday,
- months[tm->tm_mon],
- tm->tm_year + 1900,
- tm->tm_hour,
- tm->tm_min,
- tm->tm_sec,
- (_timezone <= 0) ? "+" : (_timezone >
0) ? "-" : "",
- zoneh,
- zonem);
+ if (!xheaders || !strstr(headers_lc, "date:")) {
+ time_t tNow = time(NULL);
+ char *dt = php_format_date("r", 1, tNow, 1 TSRMLS_CC);
+
+ sprintf(header_buffer, "Date: %s\r\n", dt);
+ efree(dt);
}
if (!headers_lc || !strstr(headers_lc, "from:")) {
@@ -781,7 +759,7 @@
// Author/Date: jcar 20/9/96
// History:
//********************************************************************/
-int MailConnect()
+static int MailConnect()
{
int res;
@@ -822,10 +800,6 @@
}
-
-
-
-
/*********************************************************************
// Name: Post
// Input:
@@ -834,7 +808,7 @@
// Author/Date: jcar 20/9/96
// History:
//********************************************************************/
-int Post(LPCSTR msg)
+static int Post(LPCSTR msg)
{
int len = strlen(msg);
int slen;
@@ -861,7 +835,7 @@
// Author/Date: jcar 20/9/96
// History:
//********************************************************************/
-int Ack(char **server_response)
+static int Ack(char **server_response)
{
static char buf[MAIL_BUFFER_SIZE];
int rlen;
@@ -921,7 +895,7 @@
// Author/Date: jcar 20/9/96
// History:
//********************************************************************/
-unsigned long GetAddr(LPSTR szHost)
+static unsigned long GetAddr(LPSTR szHost)
{
LPHOSTENT lpstHost;
u_long lAddr = INADDR_ANY;
http://cvs.php.net/diff.php/php-src/win32/sendmail.h?r1=1.14&r2=1.15&ty=u
Index: php-src/win32/sendmail.h
diff -u php-src/win32/sendmail.h:1.14 php-src/win32/sendmail.h:1.15
--- php-src/win32/sendmail.h:1.14 Thu Jul 28 05:43:28 2005
+++ php-src/win32/sendmail.h Sun Aug 7 18:06:29 2005
@@ -36,15 +36,15 @@
PHPAPI int TSendMail(char *smtpaddr, int *returnerror, char **error_message,
char *RPath, char *Subject, char *mailTo, char *data,
- char *mailCc, char *mailBcc, char *mailRPath);
+ char *mailCc, char *mailBcc, char *mailRPath
TSRMLS_DC);
PHPAPI void TSMClose(void);
-int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc, char
*mailBcc, char *data,
- char *headers, char *headers_lc, char **error_message);
+static int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc,
char *mailBcc, char *data,
+ char *headers, char *headers_lc, char **error_message
TSRMLS_DC);
PHPAPI char *GetSMErrorText(int index);
-int MailConnect();
-int PostHeader(char *, char *, char *, char *);
-int Post(LPCSTR msg);
-int Ack(char **server_response);
-unsigned long GetAddr(LPSTR szHost);
+static int MailConnect();
+static int PostHeader(char *RPath, char *Subject, char *mailTo, char *xheaders
TSRMLS_DC);
+static int Post(LPCSTR msg);
+static int Ack(char **server_response);
+static unsigned long GetAddr(LPSTR szHost);
#endif /* sendmail_h */
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php