diff --git a/src/StreamCore.cc b/src/StreamCore.cc index feba227..b9a97b4 100644 --- a/src/StreamCore.cc +++ b/src/StreamCore.cc @@ -254,10 +254,12 @@ compile(StreamProtocolParser::Protocol* protocol) protocol->getNumberVariable("pollperiod", pollPeriod))) return false; - if (!(protocol->getStringVariable("terminator", inTerminator, &inTerminatorDefined) && - protocol->getStringVariable("terminator", outTerminator, &outTerminatorDefined) && - protocol->getStringVariable("interminator", inTerminator, &inTerminatorDefined) && + if (!(protocol->getStringVariable("interminator", inTerminator, &inTerminatorDefined) && protocol->getStringVariable("outterminator", outTerminator, &outTerminatorDefined) && + (inTerminatorDefined || + protocol->getStringVariable("terminator", inTerminator, &inTerminatorDefined)) && + (outTerminatorDefined || + protocol->getStringVariable("terminator", outTerminator, &outTerminatorDefined)) && protocol->getStringVariable("separator", separator))) return false; diff --git a/src/StreamProtocol.cc b/src/StreamProtocol.cc index 9637ff2..0be4f6b 100644 --- a/src/StreamProtocol.cc +++ b/src/StreamProtocol.cc @@ -882,12 +882,12 @@ getEnumVariable(const char* varname, unsigned short& value, const char** enumstr bool StreamProtocolParser::Protocol:: getStringVariable(const char* varname, StreamBuffer& value, bool* defined) { + value.clear(); const Variable* pvar = getVariable(varname); if (!pvar) return true; if (defined) *defined = true; const StreamBuffer* pvalue = &pvar->value; const char* source = (*pvalue)(); - value.clear(); if (!compileString(value, source)) { error("in string variable '%s' in protocol file '%s' line %d\n", @@ -909,10 +909,10 @@ getStringVariable(const char* varname, StreamBuffer& value, bool* defined) bool StreamProtocolParser::Protocol:: getCommands(const char* handlername,StreamBuffer& code, Client* client) { + code.clear(); const Variable* pvar = getVariable(handlername); if (!pvar) return true; if (!pvar->value) return true; - code.clear(); const char* source = pvar->value(); debug("StreamProtocolParser::Protocol::getCommands" "(handlername=\"%s\", client=\"%s\"): source=%s\n",