Mercurial > octave-nkf
comparison liboctave/util/url-transfer.cc @ 17595:4b65355a31f2
avoid some code duplication in url-transfer ftp methods
* url-transfer.cc (url_transfer::ftp_file_or_dir_action):
New function.
(url_transfer::cwd, url_transfer::del, url_transfer::rmdir,
url_transfer::mkdir): Call ftp_file_or_dir_action.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 07 Oct 2013 21:23:51 -0400 |
parents | d7ca186396d4 |
children | 43b9181340fb |
comparison
equal
deleted
inserted
replaced
17594:f957fa0d2748 | 17595:4b65355a31f2 |
---|---|
399 SETOPT (CURLOPT_TRANSFERTEXT, 0); | 399 SETOPT (CURLOPT_TRANSFERTEXT, 0); |
400 } | 400 } |
401 | 401 |
402 void cwd (const std::string& path) | 402 void cwd (const std::string& path) |
403 { | 403 { |
404 struct curl_slist *slist = 0; | 404 ftp_file_or_dir_action (path, "cwd"); |
405 | |
406 unwind_protect frame; | |
407 frame.add_fcn (curl_slist_free_all, slist); | |
408 | |
409 std::string cmd = "cwd " + path; | |
410 slist = curl_slist_append (slist, cmd.c_str ()); | |
411 SETOPT (CURLOPT_POSTQUOTE, slist); | |
412 | |
413 perform (); | |
414 if (! good ()) | |
415 return; | |
416 | |
417 SETOPT (CURLOPT_POSTQUOTE, 0); | |
418 } | 405 } |
419 | 406 |
420 void del (const std::string& file) | 407 void del (const std::string& file) |
421 { | 408 { |
422 struct curl_slist *slist = 0; | 409 ftp_file_or_dir_action (file, "dele"); |
423 | |
424 unwind_protect frame; | |
425 frame.add_fcn (curl_slist_free_all, slist); | |
426 | |
427 std::string cmd = "dele " + file; | |
428 slist = curl_slist_append (slist, cmd.c_str ()); | |
429 SETOPT (CURLOPT_POSTQUOTE, slist); | |
430 | |
431 perform (); | |
432 if (! good ()) | |
433 return; | |
434 | |
435 SETOPT (CURLOPT_POSTQUOTE, 0); | |
436 } | 410 } |
437 | 411 |
438 void rmdir (const std::string& path) | 412 void rmdir (const std::string& path) |
439 { | 413 { |
440 struct curl_slist *slist = 0; | 414 ftp_file_or_dir_action (path, "rmd"); |
441 | |
442 unwind_protect frame; | |
443 frame.add_fcn (curl_slist_free_all, slist); | |
444 | |
445 std::string cmd = "rmd " + path; | |
446 slist = curl_slist_append (slist, cmd.c_str ()); | |
447 SETOPT (CURLOPT_POSTQUOTE, slist); | |
448 | |
449 perform (); | |
450 if (! good ()) | |
451 return; | |
452 | |
453 SETOPT (CURLOPT_POSTQUOTE, 0); | |
454 } | 415 } |
455 | 416 |
456 void mkdir (const std::string& path) | 417 void mkdir (const std::string& path) |
457 { | 418 { |
458 struct curl_slist *slist = 0; | 419 ftp_file_or_dir_action (path, "mkd"); |
459 | |
460 unwind_protect frame; | |
461 frame.add_fcn (curl_slist_free_all, slist); | |
462 | |
463 std::string cmd = "mkd " + path; | |
464 slist = curl_slist_append (slist, cmd.c_str ()); | |
465 SETOPT (CURLOPT_POSTQUOTE, slist); | |
466 | |
467 perform (); | |
468 if (! good ()) | |
469 return; | |
470 | |
471 SETOPT (CURLOPT_POSTQUOTE, 0); | |
472 } | 420 } |
473 | 421 |
474 void rename (const std::string& oldname, const std::string& newname) | 422 void rename (const std::string& oldname, const std::string& newname) |
475 { | 423 { |
476 struct curl_slist *slist = 0; | 424 struct curl_slist *slist = 0; |
748 | 696 |
749 query.flush (); | 697 query.flush (); |
750 | 698 |
751 return query.str (); | 699 return query.str (); |
752 } | 700 } |
701 | |
702 void ftp_file_or_dir_action (const std::string& file_or_dir, | |
703 const std::string& action) | |
704 { | |
705 struct curl_slist *slist = 0; | |
706 | |
707 unwind_protect frame; | |
708 | |
709 frame.add_fcn (curl_slist_free_all, slist); | |
710 | |
711 std::string cmd = action + " " + file_or_dir; | |
712 | |
713 slist = curl_slist_append (slist, cmd.c_str ()); | |
714 | |
715 SETOPT (CURLOPT_POSTQUOTE, slist); | |
716 | |
717 perform (); | |
718 | |
719 if (! good ()) | |
720 return; | |
721 | |
722 SETOPT (CURLOPT_POSTQUOTE, 0); | |
723 } | |
753 }; | 724 }; |
754 | 725 |
755 #undef SETOPT | 726 #undef SETOPT |
756 | 727 |
757 #else | 728 #else |