This is an automated email from the ASF dual-hosted git repository.

scantor pushed a commit to branch xerces-3.3
in repository https://gitbox.apache.org/repos/asf/xerces-c.git

commit 789e353368f7274923ab2d0bbd0620dd831adb31
Author: William S Fulton <w...@fultondesigns.co.uk>
AuthorDate: Thu Aug 8 09:06:27 2024 +0100

    Add NetAcc_CurlError and fix NetAcc_InternalError message to show URL
---
 src/xercesc/NLS/EN_US/XMLErrList_EN_US.Xml               |  3 ++-
 .../util/NetAccessors/Curl/CurlURLInputStream.cpp        | 16 +++++++++++++++-
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/xercesc/NLS/EN_US/XMLErrList_EN_US.Xml 
b/src/xercesc/NLS/EN_US/XMLErrList_EN_US.Xml
index 271f0086d..d93b72c80 100644
--- a/src/xercesc/NLS/EN_US/XMLErrList_EN_US.Xml
+++ b/src/xercesc/NLS/EN_US/XMLErrList_EN_US.Xml
@@ -474,7 +474,8 @@
             <Message Id="HshTbl_BadHashFromKey" Text="hashing key produced 
invalid hash"/>
             <Message Id="HshTbl_NoSuchKeyExists" Text="no such key in hash 
table"/>
             <Message Id="Mutex_CouldNotDestroy" Text="unable to destroy 
mutex"/>
-            <Message Id="NetAcc_InternalError" Text="internal error in 
NetAccessor"/>
+            <Message Id="NetAcc_InternalError" Text="internal error in 
NetAccessor for URL {0}"/>
+           <Message Id="NetAcc_CurlError" Text="libcurl error in NetAccessor 
for URL {0} '{1}:{2}'"/>
             <Message Id="NetAcc_LengthError" Text="NetAccessor is unable to 
determine length of remote file"/>
             <Message Id="NetAcc_InitFailed" Text="unable to initialize 
NetAccessor"/>
             <Message Id="NetAcc_TargetResolution" Text="unable to resolve 
host/address '{0}'"/>
diff --git a/src/xercesc/util/NetAccessors/Curl/CurlURLInputStream.cpp 
b/src/xercesc/util/NetAccessors/Curl/CurlURLInputStream.cpp
index 2980dc211..17ddf0261 100644
--- a/src/xercesc/util/NetAccessors/Curl/CurlURLInputStream.cpp
+++ b/src/xercesc/util/NetAccessors/Curl/CurlURLInputStream.cpp
@@ -332,7 +332,21 @@ bool CurlURLInputStream::readMore(int *runningHandles)
             break;
 
         default:
-            ThrowXMLwithMemMgr1(NetAccessorException, 
XMLExcepts::NetAcc_InternalError, fURLSource.getURLText(), fMemoryManager);
+            {
+              struct CurlError
+              {
+                  XMLCh* fErrorString;
+                  MemoryManager* fMemoryManager;
+                  CurlError(CURLMsg* msg, MemoryManager* fMemoryManager) : 
fErrorString(XMLString::transcode(curl_easy_strerror(msg->data.result))), 
fMemoryManager(fMemoryManager) {}
+                  ~CurlError() { XMLString::release(&fErrorString, 
fMemoryManager); }
+              };
+              CurlError curlErrorStr(msg, fMemoryManager);
+
+              XMLCh curlErrorNumberStr[128];
+              XMLString::binToText(msg->data.result, curlErrorNumberStr, 127, 
10, fMemoryManager);
+
+              ThrowXMLwithMemMgr3(NetAccessorException, 
XMLExcepts::NetAcc_CurlError, fURLSource.getURLText(), curlErrorNumberStr, 
curlErrorStr.fErrorString, fMemoryManager);
+            }
             break;
         }
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org
For additional commands, e-mail: c-dev-h...@xerces.apache.org

Reply via email to