/** Checks whether ParamSegment contains valid characters in Parameter name and Parameter value as specified in RFC 3261. @param aName The descriptor for parameter name to be checked as per RFC 3261. @param aValue The descriptor for value to be checked as per RFC 3261. @return A boolean value of ETrue if uri contains valid parameters and values, EFalse if it does not. */ TBool TValidatorSip::IsValidParamSegment(const TDesC8& aName, const TDesC8& aValue) const { if (!aName.Length() || !IsValidParam(aName) ) { return EFalse; } /************************************************************************************************************** * As per RFC 3261 if the uri-parameter contains name as Tranport or User or Method then its Value must be * * the characters as specified in Token. else if the name is Ttl then its value must lie in between 0 - 255. * * else if the name is Maddr then its value must be a host, else if the name is lr then it must not conatin * * any value, else it must be a other-parameter whose value must conatin the characters specified in paramchar.* * As per INC 115503 and due to IOP issue Validation of lr paramater is not performed. * ***************************************************************************************************************/ if ( ( (aName.CompareF(KTransport()) == 0 || aName.CompareF(KUser()) == 0 || aName.CompareF(KMethod()) == 0 ) && !IsValidParamToken(aValue) ) || ( aName.CompareF(KTtl()) == 0 && !IsValidParamTtl(aValue) ) || ( aName.CompareF(KMaddr()) == 0 && !IsValidParamMaddr(aValue) ) || ( aName.CompareF(KTransport()) != 0 && aName.CompareF(KUser()) != 0 && aName.CompareF(KMethod()) != 0 && aName.CompareF(KTtl()) != 0 && aName.CompareF(KMaddr()) != 0 && aName.CompareF(KLr()) != 0 && !IsValidParam(aValue)) ) { return EFalse; } return ETrue; }
void ConfigInfo::ParseLine(string line, char delimiter) { if (!IsComment(line, "#")) { int length = line.length(); int index = line.find(delimiter, 0); if (index > 0) { string param = line.substr(0, index); string value = line.substr(index + 1, length - 1 - index); if (IsValidParam(param)) { param_set.insert(pair<string, string>(param, value)); } } } }