ID: 21764 User updated by: mikael dot suvi at trigger dot ee Reported By: mikael dot suvi at trigger dot ee -Status: No Feedback +Status: Open Bug Type: IMAP related Operating System: Linux 2.4.18-SMP PHP Version: 4.2.3 New Comment:
Using version php4-STABLE-200308180730 The script still produces the same results. Previous Comments: ------------------------------------------------------------------------ [2003-08-20 23:58:06] [EMAIL PROTECTED] No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Open". Thank you. ------------------------------------------------------------------------ [2003-08-15 08:20:19] [EMAIL PROTECTED] 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 ------------------------------------------------------------------------ [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
