#31971 [Fbk->Opn]: ftp_login fails on messsage from FTP+SSL server (234 Enabling SSL)

From: Date: Tue, 17 May 2005 11:03:56 +0000
Subject: #31971 [Fbk->Opn]: ftp_login fails on messsage from FTP+SSL server (234 Enabling SSL)
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-79089@lists.php.net to get a copy of this message
ID: 31971 User updated by: frantisek at augusztin dot com Reported By: frantisek at augusztin dot com -Status: Feedback +Status: Open Bug Type: FTP related Operating System: Linux (Fedora Core 3) PHP Version: 4.3.11 New Comment: Nope, it doesn't work. Same error as in first submission. It doesn't read any data after enabling SSL. As i said, enabling special handling of non-conforming SSL servers using this line after ctx variable initialization in both control and data connection helps : SSL_CTX_set_options(ctx,SSL_OP_ALL); Previous Comments: ------------------------------------------------------------------------ [2005-05-17 11:06:38] sniper@php.net Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip ------------------------------------------------------------------------ [2005-05-13 15:23:43] frantisek at augusztin dot com The SSL_CTX_set_options must be called for both control and data connection : 264a265 > SSL_CTX_set_options(ctx,SSL_OP_ALL); 1405a1407,1408 > SSL_CTX_set_options(ctx,SSL_OP_ALL); > ------------------------------------------------------------------------ [2005-05-05 12:57:00] frantisek at augusztin dot com Here is the solution (now it works for me) . Here is the diff (against 4.3.11) for file ext/ftp/ftp.c: 265c265,266 < --- > SSL_CTX_set_options(ctx,SSL_OP_ALL); > Yeah, it's one line at 265th line - here is how it looks in source code : ctx = SSL_CTX_new(SSLv23_client_method()); if (ctx == NULL) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "ftp_login: failed to create the SSL context"); return 0; } SSL_CTX_set_options(ctx,SSL_OP_ALL); ftp->ssl_handle = SSL_new(ctx); ------------------------------------------------------------------------ [2005-02-22 00:48:29] iliaa@php.net Please provide address of FTP/SSL server which can be used to replicate the bug. ------------------------------------------------------------------------ [2005-02-14 17:32:32] frantisek at augusztin dot com After examining (and debuging PHP code) i found out, that the ftp_login function exits after getting the response for PBSZ command (from ext/ftp/ftp.c, lines 305-313) : if (!ftp->old_ssl) { /* set protection buffersize to zero */ if (!ftp_putcmd(ftp, "PBSZ", "0")) { return 0; } if (!ftp_getresp(ftp)) { return 0; /* <<< here it exits } Why ? What can i do to make it work ? As i said, using regular FTP+SSL client it works. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/31971 -- Edit this bug report at http://bugs.php.net/?id=31971&edit=1

« previous php.bugs (#79089) next »