ucb/source/ucp/ftp/ftpcontent.cxx |   15 +++++++++++++++
 1 file changed, 15 insertions(+)

New commits:
commit 1adc5db963b17f0160f46971daf08f558b6a04ff
Author:     Michael Stahl <[email protected]>
AuthorDate: Wed Oct 26 14:58:09 2022 +0200
Commit:     Christian Lohmaier <[email protected]>
CommitDate: Thu Oct 27 10:46:48 2022 +0200

    ucb: FTP UCP: report CURLE_URL_MALFORMAT as IllegalIdentifierException
    
    With curl 7.86, the test JunitTest_ucb_complex starts to fail:
    
    .ftp://noname:nopasswd@*nohost.invalid
    now executing open
    com.sun.star.ucb.InteractiveAugmentedIOException:
            at com.sun.proxy.$Proxy15.execute(Unknown Source)
            at complex.ucb.UCB.executeCommand(UCB.java:63)
            at complex.ucb.UCB.checkWrongFtpConnection(UCB.java:119)
    
    because curl_easy_perform() now returns CURLE_URL_MALFORMAT where
    previously it was CURLE_COULDNT_RESOLVE_HOST.
    
    Map this to an exception the test expects.
    
    Change-Id: Ifdb672946726ddb4cb4d9426b7e70eefac63f040
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141877
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <[email protected]>
    (cherry picked from commit 022e476af44c0dfc97403dc0f3a3b63e731903e6)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141845
    Reviewed-by: Xisco Fauli <[email protected]>
    Signed-off-by: Xisco Fauli <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141895
    Reviewed-by: Christian Lohmaier <[email protected]>
    Tested-by: Christian Lohmaier <[email protected]>

diff --git a/ucb/source/ucp/ftp/ftpcontent.cxx 
b/ucb/source/ucp/ftp/ftpcontent.cxx
index 3b035681da95..3e64645b11c7 100644
--- a/ucb/source/ucp/ftp/ftpcontent.cxx
+++ b/ucb/source/ucp/ftp/ftpcontent.cxx
@@ -62,6 +62,7 @@
 #include <com/sun/star/ucb/UnsupportedDataSinkException.hpp>
 #include <com/sun/star/ucb/OpenCommandArgument2.hpp>
 #include <com/sun/star/ucb/UnsupportedOpenModeException.hpp>
+#include <com/sun/star/ucb/IllegalIdentifierException.hpp>
 #include <com/sun/star/ucb/InteractiveNetworkConnectException.hpp>
 #include <com/sun/star/ucb/InteractiveNetworkResolveNameException.hpp>
 #include <com/sun/star/ucb/InteractiveIOException.hpp>
@@ -225,6 +226,7 @@ enum ACTION { NOACTION,
               THROWAUTHENTICATIONREQUEST,
               THROWACCESSDENIED,
               THROWINTERACTIVECONNECT,
+              THROWMALFORMED,
               THROWRESOLVENAME,
               THROWQUOTE,
               THROWNOFILE,
@@ -343,6 +345,15 @@ Any SAL_CALL FTPContent::execute( const Command& aCommand,
                         Environment);
                     break;
                 }
+            case THROWMALFORMED:
+                {
+                    IllegalIdentifierException ex;
+                    aRet <<= ex;
+                    ucbhelper::cancelCommandExecution(
+                        aRet,
+                        Environment);
+                    break;
+                }
             case THROWRESOLVENAME:
                 {
                     InteractiveNetworkResolveNameException excep;
@@ -537,6 +548,10 @@ Any SAL_CALL FTPContent::execute( const Command& aCommand,
         {
             if(e.code() == CURLE_COULDNT_CONNECT)
                 action = THROWINTERACTIVECONNECT;
+            else if (e.code() == CURLE_URL_MALFORMAT)
+            {
+                action = THROWMALFORMED;
+            }
             else if(e.code() == CURLE_COULDNT_RESOLVE_HOST )
                 action = THROWRESOLVENAME;
             else if(e.code() == CURLE_FTP_USER_PASSWORD_INCORRECT ||

Reply via email to