Removed braces for file upload schedule and make it internal
authorzev <zev@radensolutions.com>
Thu, 15 Oct 2015 21:20:03 +0000 (00:20 +0300)
committerzev <zev@radensolutions.com>
Thu, 15 Oct 2015 22:36:03 +0000 (01:36 +0300)
include/nms_agent.h
src/agent/libnxagent/tools.cpp
src/java/netxms-eclipse/FileManager/src/org/netxms/ui/eclipse/filemanager/actions/UploadFileToAgent.java
src/server/core/upload_job.cpp
webui/webapp/FileManager/src/org/netxms/ui/eclipse/filemanager/actions/UploadFileToAgent.java

index 0b5e14b..907bd8c 100644 (file)
@@ -577,8 +577,8 @@ inline void ret_uint64(TCHAR *rbuf, QWORD value)
 /**
  * API for subagents
  */
-bool LIBNXAGENT_EXPORTABLE AgentGetParameterArgA(const TCHAR *param, int index, char *arg, int maxSize);
-bool LIBNXAGENT_EXPORTABLE AgentGetParameterArgW(const TCHAR *param, int index, WCHAR *arg, int maxSize);
+bool LIBNXAGENT_EXPORTABLE AgentGetParameterArgA(const TCHAR *param, int index, char *arg, int maxSize, bool inBrackets = true);
+bool LIBNXAGENT_EXPORTABLE AgentGetParameterArgW(const TCHAR *param, int index, WCHAR *arg, int maxSize, bool inBrackets = true);
 #ifdef UNICODE
 #define AgentGetParameterArg AgentGetParameterArgW
 #else
index 2566a4e..c71fca2 100644 (file)
@@ -26,7 +26,7 @@
  * Get arguments for parameters like name(arg1,...)
  * Returns FALSE on processing error
  */
-static bool AgentGetParameterArgInternal(const TCHAR *param, int index, TCHAR *arg, int maxSize)
+static bool AgentGetParameterArgInternal(const TCHAR *param, int index, TCHAR *arg, int maxSize, bool inBrackets)
 {
    const TCHAR *ptr1, *ptr2;
    int state, currIndex, pos;
@@ -34,6 +34,8 @@ static bool AgentGetParameterArgInternal(const TCHAR *param, int index, TCHAR *a
 
    arg[0] = 0;    // Default is empty string
    ptr1 = _tcschr(param, _T('('));
+   if(!inBrackets)   //If no brackets is used set beginning of the sting as a parameter beginning
+      ptr1 = param;
    if (ptr1 == NULL)
       return true;  // No arguments at all
    for(ptr2 = ptr1 + 1, currIndex = 1, state = 0, pos = 0; state != -1; ptr2++)
@@ -67,7 +69,8 @@ static bool AgentGetParameterArgInternal(const TCHAR *param, int index, TCHAR *a
                   break;
                case 0:
                   state = -1;       // Finish processing
-                  success = false;  // Set error flag
+                  if(!inBrackets) //No error flag if parameters were given without braces
+                     success = false;  // Set error flag
                   break;
                default:
                   if ((currIndex == index) && (pos < maxSize - 1))
@@ -116,11 +119,11 @@ static bool AgentGetParameterArgInternal(const TCHAR *param, int index, TCHAR *a
  * Get arguments for parameters like name(arg1,...) as multibyte string
  * Returns FALSE on processing error
  */
-bool LIBNXAGENT_EXPORTABLE AgentGetParameterArgA(const TCHAR *param, int index, char *arg, int maxSize)
+bool LIBNXAGENT_EXPORTABLE AgentGetParameterArgA(const TCHAR *param, int index, char *arg, int maxSize, bool inBrackets)
 {
 #ifdef UNICODE
        WCHAR *temp = (WCHAR *)malloc(maxSize * sizeof(WCHAR));
-       bool success = AgentGetParameterArgInternal(param, index, temp, maxSize);
+       bool success = AgentGetParameterArgInternal(param, index, temp, maxSize, inBrackets);
        if (success)
        {
                WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK | WC_DEFAULTCHAR, temp, -1, arg, maxSize, NULL, NULL);
@@ -129,7 +132,7 @@ bool LIBNXAGENT_EXPORTABLE AgentGetParameterArgA(const TCHAR *param, int index,
        free(temp);
        return success;
 #else
-       return AgentGetParameterArgInternal(param, index, arg, maxSize);
+       return AgentGetParameterArgInternal(param, index, arg, maxSize, inBrackets);
 #endif
 }
 
@@ -137,13 +140,13 @@ bool LIBNXAGENT_EXPORTABLE AgentGetParameterArgA(const TCHAR *param, int index,
  * Get arguments for parameters like name(arg1,...) as UNICODE string
  * Returns FALSE on processing error
  */
-bool LIBNXAGENT_EXPORTABLE AgentGetParameterArgW(const TCHAR *param, int index, WCHAR *arg, int maxSize)
+bool LIBNXAGENT_EXPORTABLE AgentGetParameterArgW(const TCHAR *param, int index, WCHAR *arg, int maxSize, bool inBrackets)
 {
 #ifdef UNICODE
-       return AgentGetParameterArgInternal(param, index, arg, maxSize);
+       return AgentGetParameterArgInternal(param, index, arg, maxSize, inBrackets);
 #else
        char *temp = (char *)malloc(maxSize);
-       bool success = AgentGetParameterArgInternal(param, index, temp, maxSize);
+       bool success = AgentGetParameterArgInternal(param, index, temp, maxSize, inBrackets);
        if (success)
        {
                MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, temp, -1, arg, maxSize);
index 0b9d9dd..bbfd790 100644 (file)
@@ -103,9 +103,10 @@ public class UploadFileToAgent implements IObjectActionDelegate
                                           if(dlg.isScheduled())
                                           {
                                              ScheduledTask task = dlg.getScheduledTask();
-                                             String parameters = "(" + dlg.getServerFile().getName() + "," + remoteFileName + ")";
+                                             String parameters = dlg.getServerFile().getName() + "," + remoteFileName;
                                              task.setParameters(parameters);
                                              task.setObjectId(nodeIdList[i]);
+                                             task.setFlags(ScheduledTask.INTERNAL);
                                              session.addSchedule(task);
                                           }
                                           else
index 8402729..4769c1c 100644 (file)
@@ -34,8 +34,8 @@ void ScheduledUploadFile(const ScheduleParameters *params)
    //get parameters - node id or name, server file name, agent file name
    TCHAR serverFile[MAX_PATH];
    TCHAR agentFile[MAX_PATH];
-   AgentGetParameterArg(params->m_params, 1, serverFile, MAX_PATH);
-   AgentGetParameterArg(params->m_params, 2, agentFile, MAX_PATH);
+   AgentGetParameterArg(params->m_params, 1, serverFile, MAX_PATH, false);
+   AgentGetParameterArg(params->m_params, 2, agentFile, MAX_PATH, false);
 
    if(params->m_objectId == 0 || serverFile == NULL || agentFile == NULL)
    {
index 0b9d9dd..bbfd790 100644 (file)
@@ -103,9 +103,10 @@ public class UploadFileToAgent implements IObjectActionDelegate
                                           if(dlg.isScheduled())
                                           {
                                              ScheduledTask task = dlg.getScheduledTask();
-                                             String parameters = "(" + dlg.getServerFile().getName() + "," + remoteFileName + ")";
+                                             String parameters = dlg.getServerFile().getName() + "," + remoteFileName;
                                              task.setParameters(parameters);
                                              task.setObjectId(nodeIdList[i]);
+                                             task.setFlags(ScheduledTask.INTERNAL);
                                              session.addSchedule(task);
                                           }
                                           else