pop3 patch
| From: | BuildSmart | Date: | Fri, 31 Aug 2007 14:26:32 +0000 |
| Subject: | pop3 patch | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-31999@lists.php.net to get a copy of this message | ||
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
A quick fix to get pop3 working in PHP6, there might be a better way but this solution seemed to work with the least amount of changes, tested in 4.3.10, 4.4.0, 5.1.6, 5.2.3 and 6.0.0-dev all of which worked.
link:
http://daleenterprise.com/pop3.diff
diff file:
diff -Naur ext/pop3.orig/pop3.c ext/pop3/pop3.c
- --- ext/pop3.orig/pop3.c 2006-10-11 20:23:48.000000000 -0400
+++ ext/pop3/pop3.c 2007-08-31 10:21:21.000000000 -0400
@@ -1,8 +1,8 @@
/*
+----------------------------------------------------------------------+
- - | PHP Version
4 | + | PHP Version 4, 5, 6 | +----------------------------------------------------------------------+ - - | Copyright (c) 1997-2004 The PHP Group | + | Copyright (c) 1997-2007 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3 of the PHP license, | | that is bundled with this package in the file LICENSE, and is |@@ -14,9 +14,10 @@ +----------------------------------------------------------------------+
| Authors: Marco Tabini <marcot@tabini.ca> | | Ilia Alshanetsky <ilia@php.net> | + | Dale Walsh <buildsmart@daleenterprise.com> | +----------------------------------------------------------------------+- - $Id: pop3.c,v 1.21 2006/10/12 00:23:48 iliaa Exp $ + $Id: pop3.c,v 1.22 2007/08/31 09:23:48 iliaa Exp $ */ #ifdef HAVE_CONFIG_H @@ -42,7 +43,7 @@ /* {{{ Internal macros */ - -#define POP3_VERSION "1.0.2" +#define POP3_VERSION "1.0.3" #define POP3_RESOURCE_NAME "POP3 Library Session" #define POP3_FETCH_SESSION(session, session_container) \ @@ -100,7 +101,11 @@ char buffer[2048]; size_t fetch_len; +#if PHP_MAJOR_VERSION > 4 + if (!php_stream_get_line(stream, ZSTR(buffer), sizeof(buffer) - 1, &fetch_len)) { +#else if (!php_stream_get_line(stream, buffer, sizeof(buffer) - 1, &fetch_len)) { +#endif php_error_docref(NULL TSRMLS_CC, E_ERROR, "I/O Error when receiving data from the server"); } @@ -583,7 +588,11 @@ do { zval *row; +#if PHP_MAJOR_VERSION > 4 + if (!php_stream_gets(stream, ZSTR(pop3_return_val), sizeof(pop3_return_val) - 1)) { +#else if (!php_stream_gets(stream, pop3_return_val, sizeof(pop3_return_val) - 1)) { +#endif php_error_docref(NULL TSRMLS_CC, E_WARNING, "POP3: Unable to retrieve message list"); zval_dtor(return_value); RETURN_FALSE; @@ -643,7 +652,11 @@ do { +#if PHP_MAJOR_VERSION > 4 + if (!php_stream_gets(stream, ZSTR(pop3_return_val), sizeof(pop3_return_val) - 1)) { +#else if (!php_stream_gets(stream, pop3_return_val, sizeof(pop3_return_val) - 1)) { +#endif php_error_docref(NULL TSRMLS_CC, E_WARNING, "POP3: Unable to retrieve message list"); zval_dtor(return_value); RETURN_FALSE; @@ -758,7 +771,11 @@ length = 0; do { +#if PHP_MAJOR_VERSION > 4 + if (!php_stream_get_line(stream, ZSTR(pop3_return_val), sizeof(pop3_return_val) - 1, &fetch_len)) { +#else if (!php_stream_get_line(stream, pop3_return_val, sizeof(pop3_return_val) - 1, &fetch_len)) { +#endif efree(result); php_error_docref(NULL TSRMLS_CC, E_WARNING, "POP3: I/O failure reading from server"); RETURN_FALSE; -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (Darwin) iD8DBQFG2CUZ0hzWbkf0eKgRAljEAKCWQLRmOxgDjx7RvxUiQQlMypHxQwCeMpuy UVPNfP/veKki0uZKlVodriQ= =c0Vr -----END PGP SIGNATURE-----