Loading codec/c++/sip_codets.cpp +590 −0 Original line number Diff line number Diff line Loading @@ -361,6 +361,20 @@ bool detect_semi(Buffer & buffer) throw (DecodeError) return detect_separator(reg_semi, buffer); } void SipUrl::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csColon; csColon.SetValue(":"); switch(field_id) { case id_scheme: csColon.Encode(buffer); break; default: break; } } void SipUrl::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { Loading Loading @@ -457,6 +471,28 @@ void SipUrl::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void UserInfo::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csColon; csColon.SetValue(":"); switch(field_id) { case id_password: csColon.Encode(buffer); break; default: break; } } void UserInfo::PostEncode (Buffer& buffer) throw (EncodeError) { Charstring csAt; csAt.SetValue("@"); csAt.Encode(buffer); } void UserInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_username ("^([" SIPCHARS_UNRESERVED SIPCHARS_USER_UNRESERVED "]|" SIPREG_ESCAPED ")+"); Loading Loading @@ -494,6 +530,23 @@ void UserInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void HostPort::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csColon; csColon.SetValue(":"); switch(field_id) { case id_portField: if(IsPresent(field_id)) { Get_portField().SetFormat(Integer::AsciiDecimal); csColon.Encode(buffer); } break; default: break; } } void UserInfo::PostDecode (Buffer& buffer) throw (DecodeError) { if (IsPresent (id_userOrTelephoneSubscriber)) Loading Loading @@ -527,6 +580,14 @@ void HostPort::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void SemicolonParam_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csSemi; csSemi.SetValue(";"); csSemi.Encode(buffer); } void SemicolonParam_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_separator ("^" SIPREG_SEMI); Loading @@ -542,6 +603,20 @@ void SemicolonParam_List::PostDecodeField (int id, Buffer& buffer) throw (Decode SetHypSize (-2); } void AmpersandParam_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csAmpersand, csQuestion; csAmpersand.SetValue("&"); csQuestion.SetValue("?"); if(field_id == 0) { csQuestion.Encode(buffer); } else { csAmpersand.Encode(buffer); } } void AmpersandParam_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_start ("^[?]"); Loading @@ -559,6 +634,16 @@ void AmpersandParam_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeE SetHypSize(-2); } void CommaParam_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void CommaParam_List::PreDecode (Buffer& buffer) throw (DecodeError) { Variable* parent = GetParent(); Loading Loading @@ -589,6 +674,23 @@ void CommaParam_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeErro SetHypSize (-2); } void GenericParam::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csEqual; csEqual.SetValue("="); switch(field_id) { case id_paramValue: if(IsPresent(field_id)) { csEqual.Encode(buffer); } break; default: break; } } void GenericParam::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_equal ("^" SIPREG_EQUAL); Loading Loading @@ -669,6 +771,31 @@ void GenericParam::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void RequestLine::PostEncode (Buffer& buffer) throw (EncodeError) { Charstring cs; cs.SetValue("\r\n"); cs.Encode(buffer); } void RequestLine::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring cs; cs.SetValue(" "); switch(field_id) { case id_method: case id_requestUri: cs.Encode(buffer); break; default: break; } } void GenericParam::PostDecode (Buffer& buffer) throw (DecodeError) { Loading Loading @@ -816,6 +943,30 @@ void Method::Decode (Buffer& buffer) throw (DecodeError) buffer.SetPosition(buffer.GetPosition() + reg_method.GetMatchedLength()); } void StatusLine::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csWS; csWS.SetValue(" "); switch(field_id) { case id_statusCode: Get_statusCode().SetFormat(Integer::AsciiDecimal); case id_reasonPhrase: csWS.Encode(buffer); break; default: break; } } void StatusLine::PostEncode (Buffer& buffer) throw (EncodeError) { Charstring csCRLF; csCRLF.SetValue("\r\n"); csCRLF.Encode(buffer); } void StatusLine::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_sip_version (SIPREG_SIP_VERSION); Loading Loading @@ -1019,6 +1170,23 @@ private: SipHeaderMap SipHeaderMap::msInstance; void MessageHeader::PostEncode (Buffer& buffer) throw (EncodeError) { Charstring csCRLF; csCRLF.SetValue("\r\n"); csCRLF.Encode(buffer); } void MessageHeader::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csCRLF; csCRLF.SetValue("\r\n"); if(IsPresent(field_id)) { csCRLF.Encode(buffer); } } void MessageHeader::PreDecodeField (Buffer& buffer) throw (DecodeError) { Loading Loading @@ -1253,6 +1421,16 @@ void ContactBody::PreDecode (Buffer& buffer) throw (DecodeError) } } void ContactAddress_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void ContactAddress_List::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); Loading Loading @@ -1344,6 +1522,16 @@ void AcceptBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void AcceptBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void AcceptBody_List::PreDecode (Buffer& buffer) throw (DecodeError) { // we assume that we are decoding one field at onece Loading Loading @@ -1382,6 +1570,16 @@ void AcceptEncoding::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void ContentCoding_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void ContentCoding_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_content ("^" SIPREG_ASCII_WITHOUT_COMMA); Loading Loading @@ -1434,6 +1632,16 @@ void LanguageBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void LanguageBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void LanguageBody_List::PreDecode (Buffer& buffer) throw (DecodeError) { // we assume that we are decoding one field at onece Loading @@ -1460,6 +1668,11 @@ void LanguageBody_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeEr SetHypSize (-2); } void MaxForwards::PreEncode (Buffer& buffer) throw (EncodeError) { Get_forwards().SetFormat(Integer::AsciiDecimal); } void MaxForwards::PreDecode (Buffer& buffer) throw (DecodeError) { Get_forwards().SetFormat(Integer::AsciiDecimal); Loading @@ -1476,6 +1689,26 @@ void AlertInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){ } } void AlertInfoBody::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csLeftAngle; csLeftAngle.SetValue("<"); if(field_id == id_url) { csLeftAngle.Encode(buffer); } } void AlertInfoBody::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csRightAngle; csRightAngle.SetValue(">"); if(field_id == id_url) { csRightAngle.Encode(buffer); } } void AlertInfoBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_url ("^<" SIPREG_ABSOLUTE_URI ">"); Loading Loading @@ -1504,6 +1737,16 @@ void AlertInfoBody::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void AlertInfoBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void AlertInfoBody_List::PreDecode (Buffer& buffer) throw (DecodeError) { // we assume that we are decoding one field at onece Loading Loading @@ -1532,6 +1775,16 @@ void Allow::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){ } } void Method_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void Method_List::PreDecode (Buffer& buffer) throw (DecodeError) { // we assume that we are decoding one field at onece Loading Loading @@ -1562,6 +1815,16 @@ void Method_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) SetHypSize (-2); } void Credentials::PreEncode (Buffer& buffer) throw (EncodeError) { Charstring csDigestWS; csDigestWS.SetValue("Digest "); if(GetChosenId() == id_digestResponse) { csDigestWS.Encode(buffer); } } void Credentials::PreDecode (Buffer& buffer) throw (DecodeError) { static Regex reg_digest ("^[Dd][Ii][Gg][Ee][Ss][Tt]" SIPREG_LWS); Loading @@ -1577,6 +1840,16 @@ void Credentials::PreDecode (Buffer& buffer) throw (DecodeError) } } void Challenge::PreEncode (Buffer& buffer) throw (EncodeError) { Charstring csDigestWS; csDigestWS.SetValue("Digest "); if(GetChosenId() == id_digestCln) { csDigestWS.Encode(buffer); } } void Challenge::PreDecode (Buffer& buffer) throw (DecodeError) { static Regex reg_digest ("^[Dd][Ii][Gg][Ee][Ss][Tt]" SIPREG_LWS); Loading @@ -1588,6 +1861,20 @@ void Challenge::PreDecode (Buffer& buffer) throw (DecodeError) } } void OtherAuth::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csWS; csWS.SetValue(" "); switch(field_id) { case id_authScheme: csWS.Encode(buffer); break; default: break; } } void OtherAuth::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_auth_scheme ("^" SIPREG_TOKEN); Loading Loading @@ -1618,6 +1905,26 @@ void CallInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){ } } void CallInfoBody::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csLeftAngle; csLeftAngle.SetValue("<"); if(field_id == id_url) { csLeftAngle.Encode(buffer); } } void CallInfoBody::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csRightAngle; csRightAngle.SetValue(">"); if(field_id == id_url) { csRightAngle.Encode(buffer); } } void CallInfoBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_url ("^<" SIPREG_ABSOLUTE_URI ">"); Loading Loading @@ -1646,6 +1953,16 @@ void CallInfoBody::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void CallInfoBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void CallInfoBody_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) { if (detect_comma (buffer)) Loading @@ -1672,6 +1989,16 @@ void ContentDisposition::PreDecodeField (int id, Buffer& buffer) throw (DecodeEr } } void LanguageTag_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void LanguageTag_List::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); Loading Loading @@ -1712,6 +2039,26 @@ void ErrorInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){ } } void ErrorInfoBody::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csLeftAngle; csLeftAngle.SetValue("<"); if(field_id == id_uri) { csLeftAngle.Encode(buffer); } } void ErrorInfoBody::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csRightAngle; csRightAngle.SetValue(">"); if(field_id == id_uri) { csRightAngle.Encode(buffer); } } void ErrorInfoBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_uri ("^<" SIPREG_ABSOLUTE_URI ">"); Loading Loading @@ -1740,6 +2087,16 @@ void ErrorInfoBody::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void ErrorInfoBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void ErrorInfoBody_List::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); Loading @@ -1766,6 +2123,16 @@ void Expires::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void CallidString_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void CallidString_List::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); Loading @@ -1788,6 +2155,24 @@ void CallidString_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeEr SetHypSize (-2); } void MimeVersion::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csDot; csDot.SetValue("."); switch(field_id) { case id_majorNumber: Get_majorNumber().SetFormat(Integer::AsciiDecimal); break; case id_minorNumber: Get_minorNumber().SetFormat(Integer::AsciiDecimal); csDot.Encode(buffer); break; default: break; } } void MimeVersion::PreDecode (Buffer& buffer) throw (DecodeError) { Get_majorNumber().SetFormat(Integer::AsciiDecimal); Loading Loading @@ -1887,6 +2272,16 @@ void Subject::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } void ServerVal_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csWS; csWS.SetValue(" "); if(field_id != 0) { csWS.Encode(buffer); } } void ServerVal_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_content ("^(" SIPREG_TOKEN "(" SIPREG_SLASH SIPREG_TOKEN ")?|" SIPREG_COMMENT ")"); Loading Loading @@ -1919,6 +2314,36 @@ void Supported::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void NameAddr::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csLeftAngle; csLeftAngle.SetValue("<"); if(field_id == id_addrSpec) { csLeftAngle.Encode(buffer); } } void NameAddr::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csWS, csRightAngle; csWS.SetValue(" "); csRightAngle.SetValue(">"); switch(field_id) { case id_displayName: if(IsPresent(id_displayName)) { csWS.Encode(buffer); } break; case id_addrSpec: csRightAngle.Encode(buffer); break; default: break; } } void NameAddr::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_display_name ("^" SIPREG_DISPLAY_NAME); Loading Loading @@ -1959,6 +2384,16 @@ void NameAddr::PostDecode (Buffer& buffer) throw (DecodeError) } } void SentProtocol::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csSlash; csSlash.SetValue("/"); if(field_id != id_protocolName) { csSlash.Encode(buffer); } } void SentProtocol::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { Loading @@ -1975,6 +2410,16 @@ void SentProtocol::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) SetHypFieldLength (id, reg_sp.GetMatchedLength()); } void ViaBody::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csWS; csWS.SetValue(" "); if(field_id == id_sentProtocol) { csWS.Encode(buffer); } } void ViaBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_lws ("^" SIPREG_LWS); Loading @@ -1993,6 +2438,16 @@ void ViaBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void ViaBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void ViaBody_List::PreDecode (Buffer& buffer) throw (DecodeError) { // we assume that we are decoding one field at once Loading @@ -2013,6 +2468,14 @@ void ViaBody_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void UndefinedHeader_List::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csCRLF; csCRLF.SetValue("\r\n"); csCRLF.Encode(buffer); } void UndefinedHeader_List::PreDecode (Buffer& buffer) throw (DecodeError) { // we assume that we are decoding one field at once Loading @@ -2022,6 +2485,16 @@ void UndefinedHeader_List::PreDecode (Buffer& buffer) throw (DecodeError) SetHypAppend (1); } void UndefinedHeader::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csColon; csColon.SetValue(": "); if(field_id == id_headerName) { csColon.Encode(buffer); } } void UndefinedHeader::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_header_name ("^" SIPREG_TOKEN); Loading Loading @@ -2060,6 +2533,23 @@ void CallId::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void CSeq::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csWS; csWS.SetValue(" "); switch(field_id) { case id_method: csWS.Encode(buffer); break; case id_seqNumber: Get_seqNumber().SetFormat(Integer::AsciiDecimal); break; default: break; } } void CSeq::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_method ("^" SIPREG_LWS "(" SIPREG_TOKEN ")"); Loading @@ -2076,6 +2566,11 @@ void CSeq::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void ContentLength::PreEncode (Buffer& buffer) throw (EncodeError) { Get_len().SetFormat(Integer::AsciiDecimal); } void ContentLength::PreDecode (Buffer& buffer) throw (DecodeError) { Get_len().SetFormat(Integer::AsciiDecimal); Loading Loading @@ -2179,6 +2674,16 @@ void MessageBody::PreDecode (Buffer& buffer) throw (DecodeError) SetHypChosenId (id_textplain); } void OptionTag_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void OptionTag_List::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); Loading Loading @@ -2215,6 +2720,16 @@ void OptionTag_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError SetHypSize (-2); } void RouteBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void RouteBody_List::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); Loading @@ -2238,6 +2753,22 @@ void RouteBody::PreDecodeField(int id, Buffer& buffer) throw (DecodeError) } } void Timestamp::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csWS; csWS.SetValue(" "); switch(field_id) { case id_delay: if(IsPresent(id_delay)) { csWS.Encode(buffer); } break; default: break; } } void Timestamp::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_separator ("^" SIPREG_LWS); Loading @@ -2256,6 +2787,24 @@ void Timestamp::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void TimeValue::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csDot; csDot.SetValue("."); switch(field_id) { case id_majorDigit: Get_majorDigit().SetFormat(Integer::AsciiDecimal); break; case id_minorDigit: Get_minorDigit().SetFormat(Integer::AsciiDecimal); csDot.Encode(buffer); break; default: break; } } void TimeValue::PreDecode (Buffer& buffer) throw (DecodeError) { Get_majorDigit().SetFormat(Integer::AsciiDecimal); Loading @@ -2278,6 +2827,16 @@ void TimeValue::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void WarningValue_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void WarningValue_List::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); Loading @@ -2292,6 +2851,21 @@ void WarningValue_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeEr SetHypSize (-2); } void WarningValue::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csWS; csWS.SetValue(" "); switch(field_id) { case id_warnCode: Get_warnCode().SetFormat(Integer::AsciiDecimal); break; default: csWS.Encode(buffer); break; } } void WarningValue::PreDecode (Buffer& buffer) throw (DecodeError) { Get_warnCode().SetFormat(Integer::AsciiDecimal); Loading Loading @@ -2340,11 +2914,22 @@ void WarnAgent::PreDecode (Buffer& buffer) throw (DecodeError) SetHypChosenId (id_hostPort); } void RSeq::PreEncode (Buffer& buffer) throw (EncodeError) { Get_responseNum().SetFormat(Integer::AsciiDecimal); } void RSeq::PreDecode (Buffer& buffer) throw (DecodeError) { Get_responseNum().SetFormat(Integer::AsciiDecimal); } void RAck::PreEncode (Buffer& buffer) throw (EncodeError) { Get_responseNum().SetFormat(Integer::AsciiDecimal); Get_seqNumber().SetFormat(Integer::AsciiDecimal); } void RAck::PreDecode (Buffer& buffer) throw (DecodeError) { Get_responseNum().SetFormat(Integer::AsciiDecimal); Loading Loading @@ -2746,6 +3331,11 @@ void MinSE::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void IntegerList::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { GetField(field_id).SetFormat(Integer::AsciiDecimal); } void IntegerList::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { SetSize (GetSize() + 1); Loading Loading
codec/c++/sip_codets.cpp +590 −0 Original line number Diff line number Diff line Loading @@ -361,6 +361,20 @@ bool detect_semi(Buffer & buffer) throw (DecodeError) return detect_separator(reg_semi, buffer); } void SipUrl::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csColon; csColon.SetValue(":"); switch(field_id) { case id_scheme: csColon.Encode(buffer); break; default: break; } } void SipUrl::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { Loading Loading @@ -457,6 +471,28 @@ void SipUrl::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void UserInfo::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csColon; csColon.SetValue(":"); switch(field_id) { case id_password: csColon.Encode(buffer); break; default: break; } } void UserInfo::PostEncode (Buffer& buffer) throw (EncodeError) { Charstring csAt; csAt.SetValue("@"); csAt.Encode(buffer); } void UserInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_username ("^([" SIPCHARS_UNRESERVED SIPCHARS_USER_UNRESERVED "]|" SIPREG_ESCAPED ")+"); Loading Loading @@ -494,6 +530,23 @@ void UserInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void HostPort::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csColon; csColon.SetValue(":"); switch(field_id) { case id_portField: if(IsPresent(field_id)) { Get_portField().SetFormat(Integer::AsciiDecimal); csColon.Encode(buffer); } break; default: break; } } void UserInfo::PostDecode (Buffer& buffer) throw (DecodeError) { if (IsPresent (id_userOrTelephoneSubscriber)) Loading Loading @@ -527,6 +580,14 @@ void HostPort::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void SemicolonParam_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csSemi; csSemi.SetValue(";"); csSemi.Encode(buffer); } void SemicolonParam_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_separator ("^" SIPREG_SEMI); Loading @@ -542,6 +603,20 @@ void SemicolonParam_List::PostDecodeField (int id, Buffer& buffer) throw (Decode SetHypSize (-2); } void AmpersandParam_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csAmpersand, csQuestion; csAmpersand.SetValue("&"); csQuestion.SetValue("?"); if(field_id == 0) { csQuestion.Encode(buffer); } else { csAmpersand.Encode(buffer); } } void AmpersandParam_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_start ("^[?]"); Loading @@ -559,6 +634,16 @@ void AmpersandParam_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeE SetHypSize(-2); } void CommaParam_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void CommaParam_List::PreDecode (Buffer& buffer) throw (DecodeError) { Variable* parent = GetParent(); Loading Loading @@ -589,6 +674,23 @@ void CommaParam_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeErro SetHypSize (-2); } void GenericParam::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csEqual; csEqual.SetValue("="); switch(field_id) { case id_paramValue: if(IsPresent(field_id)) { csEqual.Encode(buffer); } break; default: break; } } void GenericParam::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_equal ("^" SIPREG_EQUAL); Loading Loading @@ -669,6 +771,31 @@ void GenericParam::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void RequestLine::PostEncode (Buffer& buffer) throw (EncodeError) { Charstring cs; cs.SetValue("\r\n"); cs.Encode(buffer); } void RequestLine::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring cs; cs.SetValue(" "); switch(field_id) { case id_method: case id_requestUri: cs.Encode(buffer); break; default: break; } } void GenericParam::PostDecode (Buffer& buffer) throw (DecodeError) { Loading Loading @@ -816,6 +943,30 @@ void Method::Decode (Buffer& buffer) throw (DecodeError) buffer.SetPosition(buffer.GetPosition() + reg_method.GetMatchedLength()); } void StatusLine::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csWS; csWS.SetValue(" "); switch(field_id) { case id_statusCode: Get_statusCode().SetFormat(Integer::AsciiDecimal); case id_reasonPhrase: csWS.Encode(buffer); break; default: break; } } void StatusLine::PostEncode (Buffer& buffer) throw (EncodeError) { Charstring csCRLF; csCRLF.SetValue("\r\n"); csCRLF.Encode(buffer); } void StatusLine::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_sip_version (SIPREG_SIP_VERSION); Loading Loading @@ -1019,6 +1170,23 @@ private: SipHeaderMap SipHeaderMap::msInstance; void MessageHeader::PostEncode (Buffer& buffer) throw (EncodeError) { Charstring csCRLF; csCRLF.SetValue("\r\n"); csCRLF.Encode(buffer); } void MessageHeader::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csCRLF; csCRLF.SetValue("\r\n"); if(IsPresent(field_id)) { csCRLF.Encode(buffer); } } void MessageHeader::PreDecodeField (Buffer& buffer) throw (DecodeError) { Loading Loading @@ -1253,6 +1421,16 @@ void ContactBody::PreDecode (Buffer& buffer) throw (DecodeError) } } void ContactAddress_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void ContactAddress_List::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); Loading Loading @@ -1344,6 +1522,16 @@ void AcceptBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void AcceptBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void AcceptBody_List::PreDecode (Buffer& buffer) throw (DecodeError) { // we assume that we are decoding one field at onece Loading Loading @@ -1382,6 +1570,16 @@ void AcceptEncoding::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void ContentCoding_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void ContentCoding_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_content ("^" SIPREG_ASCII_WITHOUT_COMMA); Loading Loading @@ -1434,6 +1632,16 @@ void LanguageBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void LanguageBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void LanguageBody_List::PreDecode (Buffer& buffer) throw (DecodeError) { // we assume that we are decoding one field at onece Loading @@ -1460,6 +1668,11 @@ void LanguageBody_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeEr SetHypSize (-2); } void MaxForwards::PreEncode (Buffer& buffer) throw (EncodeError) { Get_forwards().SetFormat(Integer::AsciiDecimal); } void MaxForwards::PreDecode (Buffer& buffer) throw (DecodeError) { Get_forwards().SetFormat(Integer::AsciiDecimal); Loading @@ -1476,6 +1689,26 @@ void AlertInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){ } } void AlertInfoBody::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csLeftAngle; csLeftAngle.SetValue("<"); if(field_id == id_url) { csLeftAngle.Encode(buffer); } } void AlertInfoBody::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csRightAngle; csRightAngle.SetValue(">"); if(field_id == id_url) { csRightAngle.Encode(buffer); } } void AlertInfoBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_url ("^<" SIPREG_ABSOLUTE_URI ">"); Loading Loading @@ -1504,6 +1737,16 @@ void AlertInfoBody::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void AlertInfoBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void AlertInfoBody_List::PreDecode (Buffer& buffer) throw (DecodeError) { // we assume that we are decoding one field at onece Loading Loading @@ -1532,6 +1775,16 @@ void Allow::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){ } } void Method_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void Method_List::PreDecode (Buffer& buffer) throw (DecodeError) { // we assume that we are decoding one field at onece Loading Loading @@ -1562,6 +1815,16 @@ void Method_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) SetHypSize (-2); } void Credentials::PreEncode (Buffer& buffer) throw (EncodeError) { Charstring csDigestWS; csDigestWS.SetValue("Digest "); if(GetChosenId() == id_digestResponse) { csDigestWS.Encode(buffer); } } void Credentials::PreDecode (Buffer& buffer) throw (DecodeError) { static Regex reg_digest ("^[Dd][Ii][Gg][Ee][Ss][Tt]" SIPREG_LWS); Loading @@ -1577,6 +1840,16 @@ void Credentials::PreDecode (Buffer& buffer) throw (DecodeError) } } void Challenge::PreEncode (Buffer& buffer) throw (EncodeError) { Charstring csDigestWS; csDigestWS.SetValue("Digest "); if(GetChosenId() == id_digestCln) { csDigestWS.Encode(buffer); } } void Challenge::PreDecode (Buffer& buffer) throw (DecodeError) { static Regex reg_digest ("^[Dd][Ii][Gg][Ee][Ss][Tt]" SIPREG_LWS); Loading @@ -1588,6 +1861,20 @@ void Challenge::PreDecode (Buffer& buffer) throw (DecodeError) } } void OtherAuth::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csWS; csWS.SetValue(" "); switch(field_id) { case id_authScheme: csWS.Encode(buffer); break; default: break; } } void OtherAuth::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_auth_scheme ("^" SIPREG_TOKEN); Loading Loading @@ -1618,6 +1905,26 @@ void CallInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){ } } void CallInfoBody::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csLeftAngle; csLeftAngle.SetValue("<"); if(field_id == id_url) { csLeftAngle.Encode(buffer); } } void CallInfoBody::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csRightAngle; csRightAngle.SetValue(">"); if(field_id == id_url) { csRightAngle.Encode(buffer); } } void CallInfoBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_url ("^<" SIPREG_ABSOLUTE_URI ">"); Loading Loading @@ -1646,6 +1953,16 @@ void CallInfoBody::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void CallInfoBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void CallInfoBody_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) { if (detect_comma (buffer)) Loading @@ -1672,6 +1989,16 @@ void ContentDisposition::PreDecodeField (int id, Buffer& buffer) throw (DecodeEr } } void LanguageTag_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void LanguageTag_List::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); Loading Loading @@ -1712,6 +2039,26 @@ void ErrorInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){ } } void ErrorInfoBody::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csLeftAngle; csLeftAngle.SetValue("<"); if(field_id == id_uri) { csLeftAngle.Encode(buffer); } } void ErrorInfoBody::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csRightAngle; csRightAngle.SetValue(">"); if(field_id == id_uri) { csRightAngle.Encode(buffer); } } void ErrorInfoBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_uri ("^<" SIPREG_ABSOLUTE_URI ">"); Loading Loading @@ -1740,6 +2087,16 @@ void ErrorInfoBody::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void ErrorInfoBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void ErrorInfoBody_List::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); Loading @@ -1766,6 +2123,16 @@ void Expires::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void CallidString_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void CallidString_List::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); Loading @@ -1788,6 +2155,24 @@ void CallidString_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeEr SetHypSize (-2); } void MimeVersion::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csDot; csDot.SetValue("."); switch(field_id) { case id_majorNumber: Get_majorNumber().SetFormat(Integer::AsciiDecimal); break; case id_minorNumber: Get_minorNumber().SetFormat(Integer::AsciiDecimal); csDot.Encode(buffer); break; default: break; } } void MimeVersion::PreDecode (Buffer& buffer) throw (DecodeError) { Get_majorNumber().SetFormat(Integer::AsciiDecimal); Loading Loading @@ -1887,6 +2272,16 @@ void Subject::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } void ServerVal_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csWS; csWS.SetValue(" "); if(field_id != 0) { csWS.Encode(buffer); } } void ServerVal_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_content ("^(" SIPREG_TOKEN "(" SIPREG_SLASH SIPREG_TOKEN ")?|" SIPREG_COMMENT ")"); Loading Loading @@ -1919,6 +2314,36 @@ void Supported::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void NameAddr::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csLeftAngle; csLeftAngle.SetValue("<"); if(field_id == id_addrSpec) { csLeftAngle.Encode(buffer); } } void NameAddr::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csWS, csRightAngle; csWS.SetValue(" "); csRightAngle.SetValue(">"); switch(field_id) { case id_displayName: if(IsPresent(id_displayName)) { csWS.Encode(buffer); } break; case id_addrSpec: csRightAngle.Encode(buffer); break; default: break; } } void NameAddr::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_display_name ("^" SIPREG_DISPLAY_NAME); Loading Loading @@ -1959,6 +2384,16 @@ void NameAddr::PostDecode (Buffer& buffer) throw (DecodeError) } } void SentProtocol::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csSlash; csSlash.SetValue("/"); if(field_id != id_protocolName) { csSlash.Encode(buffer); } } void SentProtocol::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { Loading @@ -1975,6 +2410,16 @@ void SentProtocol::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) SetHypFieldLength (id, reg_sp.GetMatchedLength()); } void ViaBody::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csWS; csWS.SetValue(" "); if(field_id == id_sentProtocol) { csWS.Encode(buffer); } } void ViaBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_lws ("^" SIPREG_LWS); Loading @@ -1993,6 +2438,16 @@ void ViaBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void ViaBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void ViaBody_List::PreDecode (Buffer& buffer) throw (DecodeError) { // we assume that we are decoding one field at once Loading @@ -2013,6 +2468,14 @@ void ViaBody_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void UndefinedHeader_List::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csCRLF; csCRLF.SetValue("\r\n"); csCRLF.Encode(buffer); } void UndefinedHeader_List::PreDecode (Buffer& buffer) throw (DecodeError) { // we assume that we are decoding one field at once Loading @@ -2022,6 +2485,16 @@ void UndefinedHeader_List::PreDecode (Buffer& buffer) throw (DecodeError) SetHypAppend (1); } void UndefinedHeader::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csColon; csColon.SetValue(": "); if(field_id == id_headerName) { csColon.Encode(buffer); } } void UndefinedHeader::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_header_name ("^" SIPREG_TOKEN); Loading Loading @@ -2060,6 +2533,23 @@ void CallId::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void CSeq::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csWS; csWS.SetValue(" "); switch(field_id) { case id_method: csWS.Encode(buffer); break; case id_seqNumber: Get_seqNumber().SetFormat(Integer::AsciiDecimal); break; default: break; } } void CSeq::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_method ("^" SIPREG_LWS "(" SIPREG_TOKEN ")"); Loading @@ -2076,6 +2566,11 @@ void CSeq::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void ContentLength::PreEncode (Buffer& buffer) throw (EncodeError) { Get_len().SetFormat(Integer::AsciiDecimal); } void ContentLength::PreDecode (Buffer& buffer) throw (DecodeError) { Get_len().SetFormat(Integer::AsciiDecimal); Loading Loading @@ -2179,6 +2674,16 @@ void MessageBody::PreDecode (Buffer& buffer) throw (DecodeError) SetHypChosenId (id_textplain); } void OptionTag_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void OptionTag_List::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); Loading Loading @@ -2215,6 +2720,16 @@ void OptionTag_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError SetHypSize (-2); } void RouteBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void RouteBody_List::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); Loading @@ -2238,6 +2753,22 @@ void RouteBody::PreDecodeField(int id, Buffer& buffer) throw (DecodeError) } } void Timestamp::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csWS; csWS.SetValue(" "); switch(field_id) { case id_delay: if(IsPresent(id_delay)) { csWS.Encode(buffer); } break; default: break; } } void Timestamp::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_separator ("^" SIPREG_LWS); Loading @@ -2256,6 +2787,24 @@ void Timestamp::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void TimeValue::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csDot; csDot.SetValue("."); switch(field_id) { case id_majorDigit: Get_majorDigit().SetFormat(Integer::AsciiDecimal); break; case id_minorDigit: Get_minorDigit().SetFormat(Integer::AsciiDecimal); csDot.Encode(buffer); break; default: break; } } void TimeValue::PreDecode (Buffer& buffer) throw (DecodeError) { Get_majorDigit().SetFormat(Integer::AsciiDecimal); Loading @@ -2278,6 +2827,16 @@ void TimeValue::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void WarningValue_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csComma; csComma.SetValue(","); if(field_id != 0) { csComma.Encode(buffer); } } void WarningValue_List::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); Loading @@ -2292,6 +2851,21 @@ void WarningValue_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeEr SetHypSize (-2); } void WarningValue::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { Charstring csWS; csWS.SetValue(" "); switch(field_id) { case id_warnCode: Get_warnCode().SetFormat(Integer::AsciiDecimal); break; default: csWS.Encode(buffer); break; } } void WarningValue::PreDecode (Buffer& buffer) throw (DecodeError) { Get_warnCode().SetFormat(Integer::AsciiDecimal); Loading Loading @@ -2340,11 +2914,22 @@ void WarnAgent::PreDecode (Buffer& buffer) throw (DecodeError) SetHypChosenId (id_hostPort); } void RSeq::PreEncode (Buffer& buffer) throw (EncodeError) { Get_responseNum().SetFormat(Integer::AsciiDecimal); } void RSeq::PreDecode (Buffer& buffer) throw (DecodeError) { Get_responseNum().SetFormat(Integer::AsciiDecimal); } void RAck::PreEncode (Buffer& buffer) throw (EncodeError) { Get_responseNum().SetFormat(Integer::AsciiDecimal); Get_seqNumber().SetFormat(Integer::AsciiDecimal); } void RAck::PreDecode (Buffer& buffer) throw (DecodeError) { Get_responseNum().SetFormat(Integer::AsciiDecimal); Loading Loading @@ -2746,6 +3331,11 @@ void MinSE::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } } void IntegerList::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError) { GetField(field_id).SetFormat(Integer::AsciiDecimal); } void IntegerList::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { SetSize (GetSize() + 1); Loading