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

Reply via email to