@@ -266,60 +266,57 @@ ftp_login(ftpbuf_t *ftp, const char *user, const char *pass TSRMLS_DC)
266
266
}
267
267
268
268
if (ftp -> resp != 334 ) {
269
- ftp -> use_ssl = 0 ;
269
+ return 0 ;
270
270
} else {
271
271
ftp -> old_ssl = 1 ;
272
272
ftp -> use_ssl_for_data = 1 ;
273
273
}
274
274
}
275
275
276
- /* now enable ssl if we still need to */
277
- if (ftp -> use_ssl ) {
278
- ctx = SSL_CTX_new (SSLv23_client_method ());
279
- if (ctx == NULL ) {
280
- php_error_docref (NULL TSRMLS_CC , E_WARNING , "failed to create the SSL context" );
276
+ ctx = SSL_CTX_new (SSLv23_client_method ());
277
+ if (ctx == NULL ) {
278
+ php_error_docref (NULL TSRMLS_CC , E_WARNING , "failed to create the SSL context" );
279
+ return 0 ;
280
+ }
281
+
282
+ SSL_CTX_set_options (ctx , SSL_OP_ALL );
283
+
284
+ ftp -> ssl_handle = SSL_new (ctx );
285
+ if (ftp -> ssl_handle == NULL ) {
286
+ php_error_docref (NULL TSRMLS_CC , E_WARNING , "failed to create the SSL handle" );
287
+ SSL_CTX_free (ctx );
288
+ return 0 ;
289
+ }
290
+
291
+ SSL_set_fd (ftp -> ssl_handle , ftp -> fd );
292
+
293
+ if (SSL_connect (ftp -> ssl_handle ) <= 0 ) {
294
+ php_error_docref (NULL TSRMLS_CC , E_WARNING , "SSL/TLS handshake failed" );
295
+ SSL_shutdown (ftp -> ssl_handle );
296
+ return 0 ;
297
+ }
298
+
299
+ ftp -> ssl_active = 1 ;
300
+
301
+ if (!ftp -> old_ssl ) {
302
+
303
+ /* set protection buffersize to zero */
304
+ if (!ftp_putcmd (ftp , "PBSZ" , "0" )) {
305
+ return 0 ;
306
+ }
307
+ if (!ftp_getresp (ftp )) {
281
308
return 0 ;
282
309
}
283
310
284
- SSL_CTX_set_options (ctx , SSL_OP_ALL );
285
-
286
- ftp -> ssl_handle = SSL_new (ctx );
287
- if (ftp -> ssl_handle == NULL ) {
288
- php_error_docref (NULL TSRMLS_CC , E_WARNING , "failed to create the SSL handle" );
289
- SSL_CTX_free (ctx );
311
+ /* enable data conn encryption */
312
+ if (!ftp_putcmd (ftp , "PROT" , "P" )) {
290
313
return 0 ;
291
314
}
292
-
293
- SSL_set_fd (ftp -> ssl_handle , ftp -> fd );
294
-
295
- if (SSL_connect (ftp -> ssl_handle ) <= 0 ) {
296
- php_error_docref (NULL TSRMLS_CC , E_WARNING , "SSL/TLS handshake failed" );
297
- SSL_shutdown (ftp -> ssl_handle );
315
+ if (!ftp_getresp (ftp )) {
298
316
return 0 ;
299
317
}
300
318
301
- ftp -> ssl_active = 1 ;
302
-
303
- if (!ftp -> old_ssl ) {
304
-
305
- /* set protection buffersize to zero */
306
- if (!ftp_putcmd (ftp , "PBSZ" , "0" )) {
307
- return 0 ;
308
- }
309
- if (!ftp_getresp (ftp )) {
310
- return 0 ;
311
- }
312
-
313
- /* enable data conn encryption */
314
- if (!ftp_putcmd (ftp , "PROT" , "P" )) {
315
- return 0 ;
316
- }
317
- if (!ftp_getresp (ftp )) {
318
- return 0 ;
319
- }
320
-
321
- ftp -> use_ssl_for_data = (ftp -> resp >= 200 && ftp -> resp <=299 );
322
- }
319
+ ftp -> use_ssl_for_data = (ftp -> resp >= 200 && ftp -> resp <=299 );
323
320
}
324
321
}
325
322
#endif
0 commit comments