@@ -41,6 +41,8 @@ char socket_path[256]=API_SOCK_NAMESPACE;
4141int ftp_client_lftp = 0 ;
4242int debug = 0 ;
4343
44+ const char * lftp_standard_options = "set ftp:use-site-utime off\nset ftp:use-site-utime2 off\nset ftp:use-feat off\nset ftp:ssl-allow false\n" ;
45+
4446#ifdef USE_MCLI_API
4547/*------------------------------------------------------------------------*/
4648#define API_WAIT_RESPONSE (cmd ) { cmd->state=API_REQUEST; \
@@ -75,11 +77,13 @@ int api_init(char *path)
7577/*------------------------------------------------------------------------*/
7678void add_upload (char * cmd , char * localfile , char * remotepath , char * remotefile )
7779{
78- char tmp [1024 ];
80+ char tmp [2048 ];
7981 sprintf (tmp ,
82+ "%s" // lftp: set various flags
8083 "cd %s\n"
8184 "site exec rm -f /tmp/update/%s\n"
82- "put %s\n" ,
85+ "put %s\n" ,
86+ ((ftp_client_lftp == 1 ) ? lftp_standard_options : "" ),
8387 remotepath , remotefile , localfile );
8488 strcat (cmd ,tmp );
8589}
@@ -89,8 +93,8 @@ void add_download(char* cmd, char *remotepath, char *remotefile)
8993 char tmp [1024 ];
9094 sprintf (tmp ,
9195 "cd %s\n"
92- "get %s\n" ,
93- remotepath ,remotefile );
96+ "get %s%s \n" ,
97+ remotepath ,(( ftp_client_lftp == 1 ) ? "-e " : "" ), remotefile );
9498 strcat (cmd ,tmp );
9599}
96100/*------------------------------------------------------------------------*/
@@ -209,11 +213,13 @@ int run_ftp(char *tmpdir,char *script, int timeout, char *pipeout)
209213int do_reboot (char * tmpdir , char * ip , char * iface , char * user , char * pwd )
210214{
211215 sprintf (script ,
216+ "%s" // lftp: set various flags
212217 "open %s%%%s\n"
213218 "user %s %s\n"
214219 "site exec reboot -d 5\n"
215220 "quit\n"
216221 ,
222+ ((ftp_client_lftp == 1 ) ? lftp_standard_options : "" ),
217223 ip ,iface ,user ,pwd );
218224 return run_ftp (tmpdir , script , 15 ,"" );
219225}
@@ -235,11 +241,13 @@ int do_list_fw(char *tmpdir, char *ip, char* iface, char *user, char* pwd, int m
235241 }
236242
237243 sprintf (script ,
244+ "%s" // lftp: set various flags
238245 "open %s%%%s\n"
239246 "user %s %s\n"
240247 "ls /mmc/\n"
241248 "quit\n"
242249 ,
250+ ((ftp_client_lftp == 1 ) ? lftp_standard_options : "" ),
243251 ip ,iface ,user ,pwd );
244252 sprintf (pipeout ," > %s" ,tmpfile );
245253 ret = run_ftp (tmpdir , script , 15 , pipeout );
@@ -284,11 +292,13 @@ int do_list_fw(char *tmpdir, char *ip, char* iface, char *user, char* pwd, int m
284292int do_kill (char * tmpdir , char * ip , char * iface , char * user , char * pwd )
285293{
286294 sprintf (script ,
295+ "%s" // lftp: set various flags
287296 "open %s%%%s\n"
288297 "user %s %s\n"
289298 "site exec killall -9 mserv\n"
290299 "quit\n"
291300 ,
301+ ((ftp_client_lftp == 1 ) ? lftp_standard_options : "" ),
292302 ip ,iface ,user ,pwd );
293303 return run_ftp (tmpdir , script , 15 ,"" );
294304}
@@ -332,13 +342,14 @@ int do_single_upload( char *uuid, char *device, char *remote_path, char *fname,
332342{
333343 int ret ;
334344 sprintf (script ,
345+ "%s" // lftp: set various flags
335346 "open %s%%%s\n"
336347 "user %s %s\n"
337348 "cd %s\n"
338- "put %s %s\n"
339- // "site exec killall -HUP mserv\n"
349+ "put %s %s%s\n"
340350 "quit" ,
341- uuid ,device ,username ,password ,remote_path ,fname ,remote_file );
351+ ((ftp_client_lftp == 1 ) ? lftp_standard_options : "" ),
352+ uuid ,device ,username ,password ,remote_path ,fname ,((ftp_client_lftp == 1 ) ? "-o " : "" ),remote_file );
342353 ret = run_ftp ("" , script , 120 ,"" );
343354 return ret ;
344355}
@@ -347,12 +358,14 @@ int do_single_download( char *uuid, char *device, char *remote_path, char *fname
347358{
348359 int ret ;
349360 sprintf (script ,
361+ "%s" // lftp: set various flags
350362 "open %s%%%s\n"
351363 "user %s %s\n"
352364 "cd %s\n"
353- "get %s\n"
365+ "get %s%s \n"
354366 "quit" ,
355- uuid ,device ,username ,password ,remote_path ,fname );
367+ ((ftp_client_lftp == 1 ) ? lftp_standard_options : "" ),
368+ uuid ,device ,username ,password ,remote_path ,((ftp_client_lftp == 1 ) ? "-e " : "" ),fname );
356369 ret = run_ftp ("" , script , 120 ,"" );
357370 return ret ;
358371}
@@ -363,35 +376,41 @@ int fw_action(char *uuid, char* iface, char *user, char* pwd, int mode, char *ve
363376 if (mode == 0 ) { // inactivate
364377 printf ("Inactivating version %s\n" ,version );
365378 sprintf (script ,
379+ "%s" // lftp: set various flags
366380 "open %s%%%s\n"
367381 "user %s %s\n"
368382 "cd /mmc\n"
369383 "rename netceivr.%s xetceivr.%s\n"
370384 "quit" ,
385+ ((ftp_client_lftp == 1 ) ? lftp_standard_options : "" ),
371386 uuid ,device ,username ,password ,version ,version );
372387 ret = run_ftp ("" , script , 120 ,"" );
373388 return ret ;
374389 }
375390 else if (mode == 1 ) { // enable
376391 printf ("Enabling version %s\n" ,version );
377392 sprintf (script ,
393+ "%s" // lftp: set various flags
378394 "open %s%%%s\n"
379395 "user %s %s\n"
380396 "cd /mmc\n"
381397 "rename xetceivr.%s netceivr.%s\n"
382398 "quit" ,
399+ ((ftp_client_lftp == 1 ) ? lftp_standard_options : "" ),
383400 uuid ,device ,username ,password ,version ,version );
384401 ret = run_ftp ("" , script , 120 ,"" );
385402 return ret ;
386403 }
387404 else if (mode == 2 ) { // delete
388405 printf ("Removing version %s\n" ,version );
389406 sprintf (script ,
407+ "%s" // lftp: set various flags
390408 "open %s%%%s\n"
391409 "user %s %s\n"
392410 "site exec rm -rf /mmc/netceivr.%s\n"
393411 "site exec rm -rf /mmc/xetceivr.%s\n"
394412 "quit" ,
413+ ((ftp_client_lftp == 1 ) ? lftp_standard_options : "" ),
395414 uuid ,device ,username ,password ,version ,version );
396415 ret = run_ftp ("" , script , 120 ,"" );
397416 return ret ;
0 commit comments