diff --git a/remob.c b/remob.c index 44995006..bdf3dc10 100644 --- a/remob.c +++ b/remob.c @@ -1000,25 +1000,24 @@ int RemobCreate(SConnection * pCon, SicsInterp * pSics, void *pData, char *p; int iD, iRet; char *obj; + int argf; assert(pCon); assert(pSics); argtolower(argc, argv); if (argc >= 4 && strcmp(argv[1], "server") == 0) { - if (argc >= 5) { - remserver = RemServerInit(argv[2], argv[3], atoi(argv[4])); - if (remserver && argc > 5 && argv[5][0] == '0') { - remserver->forwardMessages = 0; - } - } else { - p = strchr(argv[3], ':'); - if (!p) { - SCPrintf(pCon, eError, "ERROR: illegal host:port"); - return 0; - } + p = strchr(argv[3], ':'); + if (p) { snprintf(host, sizeof host, "%.*s", (int)(p - argv[3]), argv[3]); remserver = RemServerInit(argv[2], host, atoi(p + 1)); + argf = 4; + } else { + remserver = RemServerInit(argv[2], argv[3], atoi(argv[4])); + argf = 5; + } + if (remserver && argc > argf && strcmp(argv[argf], "0") == 0) { + remserver->forwardMessages = 0; } if (!remserver) { SCPrintf(pCon, eError,