Переглянути джерело

Merge pull request #11594 from mayx/HPCC-20354-DESDLName

HPCC-20354 Fix esdl service name validation

Reviewed-By: Rodrigo Pastrana <rodrigo.pastrana@lexisnexis.com>
Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 6 роки тому
батько
коміт
5a6ec378b3
1 змінених файлів з 4 додано та 5 видалено
  1. 4 5
      esp/services/esdl_svc_engine/esdl_store.cpp

+ 4 - 5
esp/services/esdl_svc_engine/esdl_store.cpp

@@ -912,12 +912,11 @@ private:
             return false;
         StringBuffer lcdefid (definitionId);
         lcdefid.toLowerCase();
-        VStringBuffer xpath("%s[@id='%s']/esxdl", ESDL_DEF_PATH, lcdefid.str());
-        Owned<IRemoteConnection> definitionconn = querySDS().connect(xpath.str(), myProcessSession(), RTM_LOCK_READ, SDS_LOCK_TIMEOUT_DESDL);
-        if (definitionconn)
-            return true;
-        else
+        Owned<IPTree> deftree = fetchDefinition(lcdefid.str());
+        if(!deftree)
             return false;
+        VStringBuffer xpath("esxdl/EsdlService[@name='%s']", serviceName);
+        return deftree->hasProp(xpath.str());
     }
 
     int getIdFromProcBindingDef(const char* espProcName, const char* espBindingName, const char* definitionId, StringBuffer& bindingId, StringBuffer& message)