From: Denys Vlasenko Date: Tue, 6 Feb 2018 19:49:27 +0000 (+0100) Subject: wget: attempt to negotiate encrypted data ftps stream ("PROT P") X-Git-Tag: 1_29_0~260 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2b7515722b929794f2f8563b80d9cea48f6b3304;p=oweals%2Fbusybox.git wget: attempt to negotiate encrypted data ftps stream ("PROT P") function old new delta wget_main 2382 2422 +40 Signed-off-by: Denys Vlasenko --- diff --git a/networking/wget.c b/networking/wget.c index 7ca4bfb33..633dabb57 100644 --- a/networking/wget.c +++ b/networking/wget.c @@ -806,9 +806,13 @@ static FILE* prepare_ftp_session(FILE **dfpp, struct host_info *target, len_and_ *dfpp = open_socket(lsa); - //For encrypted data, need to send "PROT P" and get "200 PROT now Private" response first - //Without it (or with "PROT C"), data is sent unencrypted - //spawn_ssl_client(target->host, fileno(*dfpp), /*flags*/ 0); +#if ENABLE_FEATURE_WGET_HTTPS + /* "PROT P" enables encryption of data stream. + * Without it (or with "PROT C"), data is sent unencrypted. + */ + if (ftpcmd("PROT P", NULL, sfp) == 200) + spawn_ssl_client(target->host, fileno(*dfpp), /*flags*/ 0); +#endif if (G.beg_range != 0) { sprintf(G.wget_buf, "REST %"OFF_FMT"u", G.beg_range);