diff --git a/meshcore/agentcore.c b/meshcore/agentcore.c index 0a58042..a6f3a71 100644 --- a/meshcore/agentcore.c +++ b/meshcore/agentcore.c @@ -3855,6 +3855,7 @@ int MeshAgent_AgentMode(MeshAgentHostContainer *agentHost, int paramLen, char ** } int ixr = 0; + int installFlag = 0; for (ri = 0; ri < paramLen; ++ri) { int len = (int)strnlen_s(param[ri], 4096); @@ -3864,9 +3865,21 @@ int MeshAgent_AgentMode(MeshAgentHostContainer *agentHost, int paramLen, char ** ILibSimpleDataStore_Cached(agentHost->masterDb, param[ri] + 2, ix - 2, param[ri] + ix + 1, len - (ix + 1)); ++ixr; } + if (strcmp("-finstall", param[ri]) == 0) + { + installFlag = 1; + } } paramLen -= ixr; + switch (installFlag) + { + case 1: + break; + default: + break; + } + agentHost->httpClientManager = ILibCreateWebClient(3, agentHost->chain); diff --git a/meshservice/ServiceMain.c b/meshservice/ServiceMain.c index 2ac340d..c0a6351 100644 --- a/meshservice/ServiceMain.c +++ b/meshservice/ServiceMain.c @@ -945,7 +945,7 @@ int wmain(int argc, char* wargv[]) int retCode = 0; int argvi, argvsz; - char **argv = (char**)ILibMemory_SmartAllocate(argc * sizeof(void*)); + char **argv = (char**)ILibMemory_SmartAllocate((argc+1) * sizeof(void*)); for (argvi = 0; argvi < argc; ++argvi) { argvsz = WideCharToMultiByte(CP_UTF8, 0, (LPCWCH)wargv[argvi], -1, NULL, 0, NULL, NULL); @@ -953,6 +953,15 @@ int wmain(int argc, char* wargv[]) WideCharToMultiByte(CP_UTF8, 0, (LPCWCH)wargv[argvi], -1, argv[argvi], argvsz, NULL, NULL); } + if (argc > 1 && (strcasecmp(argv[1], "-finstall") == 0)) + { + argv[argc] = argv[1]; + argv[1] = (char*)ILibMemory_SmartAllocate(4); + sprintf_s(argv[1], ILibMemory_Size(argv[1]), "run"); + argc += 1; + } + + /* #ifndef NOMESHCMD // Check if this is a Mesh command operation