// backLog: String containing the endpoint (3, 4, & 5) bool ZeroMQHandler::setSlotBackLog(const Basic::Integer* const msg) { // Save the connection back log count for use in the initialization // of the socket bool ok = false; if (msg != nullptr) ok = setBackLog(*msg); return ok; }
int LocalWorkerConfig::config(const XmlNode *pNode) { ServerProcessConfig &procConfig = ServerProcessConfig::getInstance(); int selfManaged; int instances; int backlog = ConfigCtx::getCurConfigCtx()->getLongValue(pNode, "backlog", 1, 100, 10); int priority = ConfigCtx::getCurConfigCtx()->getLongValue(pNode, "priority", -20, 20, procConfig.getPriority() + 1); if (priority > 20) priority = 20; if (priority < procConfig.getPriority()) priority = procConfig.getPriority(); long l = ConfigCtx::getCurConfigCtx()->getLongValue(pNode, "extMaxIdleTime", -1, INT_MAX, INT_MAX); if (l == -1) l = INT_MAX; setPriority(priority); setBackLog(backlog); setMaxIdleTime(l); int umakeVal = ConfigCtx::getCurConfigCtx()->getLongValue(pNode, "umask", 000, 0777, procConfig.getUMask(), 8); setUmask(umakeVal); setRunOnStartUp(ConfigCtx::getCurConfigCtx()->getLongValue(pNode, "runOnStartUp", 0, 2, 0)); RLimits limits; if (ExtAppRegistry::getRLimits() != NULL) limits = *(ExtAppRegistry::getRLimits()); limits.setCPULimit(RLIM_INFINITY, RLIM_INFINITY); LocalWorker::configRlimit(&limits, pNode); setRLimits(&limits); Env *pEnv = getEnv(); if (pEnv->find("PATH") == NULL) pEnv->add("PATH=/bin:/usr/bin"); instances = ConfigCtx::getCurConfigCtx()->getLongValue(pNode, "instances", 1, INT_MAX, 1); if (instances > 2000) instances = 2000; if (instances > HttpServerConfig::getInstance().getMaxFcgiInstances()) { instances = HttpServerConfig::getInstance().getMaxFcgiInstances(); LS_WARN(ConfigCtx::getCurConfigCtx(), "<instances> is too large, use default max:%d", instances); } setInstances(instances); selfManaged = checkExtAppSelfManagedAndFixEnv(); setSelfManaged(selfManaged); if ((instances != 1) && (getMaxConns() > instances)) { LS_NOTICE(ConfigCtx::getCurConfigCtx(), "Possible mis-configuration: 'Instances'=%d, " "'Max connections'=%d, unless one Fast CGI process is " "capable of handling multiple connections, " "you should set 'Instances' greater or equal to " "'Max connections'.", instances, getMaxConns()); setMaxConns(instances); } RLimits *pLimits = getRLimits(); #if defined(RLIMIT_NPROC) int mini_nproc = (3 * getMaxConns() + 50) * HttpServerConfig::getInstance().getChildren(); struct rlimit *pNProc = pLimits->getProcLimit(); if (((pNProc->rlim_cur > 0) && ((int) pNProc->rlim_cur < mini_nproc)) || ((pNProc->rlim_max > 0) && ((int) pNProc->rlim_max < mini_nproc))) { LS_NOTICE(ConfigCtx::getCurConfigCtx(), "'Process Limit' probably is too low, " "adjust the limit to: %d.", mini_nproc); pLimits->setProcLimit(mini_nproc, mini_nproc); } #endif return 0; }