ID: 21764 Updated by: [EMAIL PROTECTED] Reported By: mikael dot suvi at trigger dot ee -Status: Open +Status: Feedback Bug Type: IMAP related Operating System: Linux 2.4.18-SMP PHP Version: 4.2.3 New Comment:
Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip Previous Comments: ------------------------------------------------------------------------ [2003-01-20 05:05:14] mikael dot suvi at trigger dot ee It works if I return by refrence. But still, if call imap_close() I'm expecting it to close my stream. It will make some bugs things _very hard_ to track. For example: if I delete a message before closing stream and after closing I open a new stream to the same mailserver, I still get the same number of messages in my mailbox. <? $MailStream = 0; function foo() { global $MailStream; $ar1 = imap_open("{some.server/pop3:110}", "user", "pass"); $MailStream = $ar1; return $ar1; } $arr = foo(); imap_delete($arr, 1); imap_expunge($arr); print imap_num_msg($arr) . " message(s) in your INBOX<br>"; imap_close($arr); $arr1 = foo(); print imap_num_msg($arr1) . " message(s) in your INBOX"; ?> Output: 7 message(s) in your INBOX 8 message(s) in your INBOX ------------------------------------------------------------------------ [2003-01-20 02:58:59] [EMAIL PROTECTED] I think this is expected though, and I dont really consider it as a bug. Try returning the resource by reference, or not using that global. Does it work then? ------------------------------------------------------------------------ [2003-01-20 02:45:07] mikael dot suvi at trigger dot ee Script: <? $MailStream = 0; function foo() { global $MailStream; $ar = imap_open("{some.host/pop3:110}", "user", "pass"); $MailStream = $ar; return $ar; } $arr = foo(); imap_close($arr); sleep(4); die(); ?> will not close my connection to mailserver when calling function imap_close. In mailserver log the following lines indicate that the stream is not closed: Jan 20 10:28:46 mail-fe73 pop3d: LOGIN, user=suurjuht, ip=[::ffff:xxx.xxx.xxx.xxx] Jan 20 10:28:50 mail-fe73 pop3d: LOGOUT, user=suurjuht, ip=[::ffff:xxx.xxx.xxx.xxx], top=0, retr=0 Notice the 4 second delay when user is logged out. In closes the connection when script terminates. I guess the problem is when assigning the resource value to global variable the resources reference count is increased by one. When calling imap_close the reference value is checked and internal pop3_close is called only when reference count is 1. c-client version is 2001 I think this behaviour is not good. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=21764&edit=1
