move interop error codes to their own class
authorgggeek <giunta.gaetano@gmail.com>
Wed, 25 Jan 2023 11:39:53 +0000 (11:39 +0000)
committergggeek <giunta.gaetano@gmail.com>
Wed, 25 Jan 2023 11:39:53 +0000 (11:39 +0000)
src/Helper/Interop.php [new file with mode: 0644]
src/PhpXmlRpc.php
src/Server.php

diff --git a/src/Helper/Interop.php b/src/Helper/Interop.php
new file mode 100644 (file)
index 0000000..e37270c
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+
+namespace PhpXmlRpc\Helper;
+
+/**
+ * A helper dedicated to support Interoperability features
+ */
+class Interop
+{
+    /// @todo review - should we use the range -32099 .. -32000 for some server erors?
+    public static $xmlrpcerr = array(
+        'unknown_method' => -32601,
+        'invalid_return' => 2,
+        'incorrect_params' => -32602,
+        'introspect_unknown' => -32601, // this shares the same code but has a separate meaning from 'unknown_method'...
+        'http_error' => 32300,
+        'no_data' => -32700,
+        'no_ssl' => -32400,
+        'curl_fail' => -32400,
+        'invalid_request' => -32600,
+        'no_curl' => -32400,
+        'server_error' => -32500,
+        'multicall_error' => -32700,
+        'multicall_notstruct' => -32600,
+        'multicall_nomethod' => -32601,
+        'multicall_notstring' => -32600,
+        'multicall_recursion' => -32603,
+        'multicall_noparams' => -32602,
+        'multicall_notarray' => -32600,
+        'no_http2' => -32400,
+        'invalid_xml' => -32700,
+        'xml_not_compliant' => -32700,
+        'xml_parsing_error' => -32700,
+        'cannot_decompress' => -32400,
+        'decompress_fail' => -32300,
+        'dechunk_fail' => -32300,
+        'server_cannot_decompress' => -32300,
+        'server_decompress_fail' => -32300,
+    );
+
+    public static $xmlrpcerruser = -32000;
+}
index 81166bc..7e43a9c 100644 (file)
@@ -4,6 +4,7 @@ namespace PhpXmlRpc;
 
 use PhpXmlRpc\Helper\Charset;
 use PhpXmlRpc\Helper\Http;
+use PhpXmlRpc\Helper\Interop;
 use PhpXmlRpc\Helper\XMLParser;
 
 /**
@@ -14,7 +15,7 @@ class PhpXmlRpc
     /**
      * @var int[]
      */
-    static public $xmlrpcerr = array(
+    public static $xmlrpcerr = array(
         'unknown_method' => 1,
         /// @deprecated. left in for BC
         'invalid_return' => 2,
@@ -52,7 +53,7 @@ class PhpXmlRpc
     /**
      * @var string[]
      */
-    static public $xmlrpcstr = array(
+    public static $xmlrpcstr = array(
         'unknown_method' => 'Unknown method',
         /// @deprecated. left in for BC
         'invalid_return' => 'Invalid response payload (you can use the setDebug method to allow analysis of the response)',
@@ -203,37 +204,6 @@ class PhpXmlRpc
      */
     public static $xmlrpc_methodname_format = '|^[ \t]*[a-zA-Z0-9_.:/]+[ \t]*$|';
 
-    /// @todo review - should we use the range -32099 .. -32000 for some server erors?
-    public static $xmlrpcerr_interop = array(
-        'unknown_method' => -32601,
-        'invalid_return' => 2,
-        'incorrect_params' => -32602,
-        'introspect_unknown' => -32601, // this shares the same code but has a separate meaning from 'unknown_method'...
-        'http_error' => 32300,
-        'no_data' => -32700,
-        'no_ssl' => -32400,
-        'curl_fail' => -32400,
-        'invalid_request' => -32600,
-        'no_curl' => -32400,
-        'server_error' => -32500,
-        'multicall_error' => -32700,
-        'multicall_notstruct' => -32600,
-        'multicall_nomethod' => -32601,
-        'multicall_notstring' => -32600,
-        'multicall_recursion' => -32603,
-        'multicall_noparams' => -32602,
-        'multicall_notarray' => -32600,
-        'no_http2' => -32400,
-        'invalid_xml' => -32700,
-        'xml_not_compliant' => -32700,
-        'xml_parsing_error' => -32700,
-        'cannot_decompress' => -32400,
-        'decompress_fail' => -32300,
-        'dechunk_fail' => -32300,
-        'server_cannot_decompress' => -32300,
-        'server_decompress_fail' => -32300,
-    );
-
     /**
      * A function to be used for compatibility with legacy code: it creates all global variables which used to be declared,
      * such as library version etc...
@@ -320,8 +290,8 @@ class PhpXmlRpc
      */
     public static function useInteropFaults()
     {
-        self::$xmlrpcerr = self::$xmlrpcerr_interop;
+        self::$xmlrpcerr = Interop::$xmlrpcerr;
 
-        self::$xmlrpcerruser = -32000;
+        self::$xmlrpcerruser = -Interop::$xmlrpcerruser;
     }
 }
index a5bcb08..5d7b2bb 100644 (file)
@@ -4,6 +4,7 @@ namespace PhpXmlRpc;
 
 use PhpXmlRpc\Exception\PhpXmlrpcException;
 use PhpXmlRpc\Helper\Http;
+use PhpXmlRpc\Helper\Interop;
 use PhpXmlRpc\Helper\Logger;
 use PhpXmlRpc\Helper\XMLParser;
 use PhpXmlRpc\Traits\CharsetEncoderAware;
@@ -989,7 +990,7 @@ class Server
         }
 
         // support for "standard" error codes
-        if (PhpXmlRpc::$xmlrpcerr['unknown_method'] == -32601) {
+        if (PhpXmlRpc::$xmlrpcerr['unknown_method'] === Interop::$xmlrpcerr['unknown_method']) {
             $outAr['faults_interop'] = array(
                 'specUrl' => 'http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php',
                 'specVersion' => 20010516