Loading codec/c++/sip_codets.cpp +49 −0 Original line number Diff line number Diff line Loading @@ -754,6 +754,8 @@ private: SIP_HEADER_ADD (P-Media-Authorization, , pMediaAuthorization, P_MEDIA_AUTHORIZATION_E); SIP_HEADER_ADD (Privacy, , privacy, PRIVACY_E); SIP_HEADER_ADD (P-Asserted-Identity, , pAssertedID, P_ASSERTED_ID_E); SIP_HEADER_ADD (P-Preferred-Identity, , pPreferredID, P_PREFERRED_ID_E); SIP_HEADER_ADD (reason, , reason, REASON_E); { mEntries.push_back(Entry("", "", MessageHeader::id_undefinedHeader_List, "")); Loading Loading @@ -823,6 +825,8 @@ void MessageHeader::PreDecodeField (Buffer& buffer) throw (DecodeError) case id_allowEvents: case id_pMediaAuthorization: case id_pAssertedID: case id_pPreferredID: case id_reason: case id_undefinedHeader_List: // these fields can appear multiple times break; Loading Loading @@ -2148,4 +2152,49 @@ void PAssertedIDValue_List::PostDecodeField (int id, Buffer& buffer) throw (Deco SetHypSize (-2); } void PPreferredIDValue_List::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); SetHypAppend (1); } void PPreferredIDValue_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) { if (detect_comma (buffer)) SetHypSize (GetSize() + 1); else SetHypSize (-2); } void ReasonValue::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_token ("^" SIPREG_TOKEN); static Regex reg_separator ("^" SIPREG_SEMI); switch (id) { case id_token: reg_token.AssertMatch (buffer, this); SetHypFieldLength (id, reg_token.GetMatchedLength()); break; case id_reasonParams: SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0); break; } } void ReasonValues::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); SetHypAppend (1); } void ReasonValues::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) { if (detect_comma (buffer)) SetHypSize (GetSize() + 1); else SetHypSize (-2); } }} // namespaces Loading
codec/c++/sip_codets.cpp +49 −0 Original line number Diff line number Diff line Loading @@ -754,6 +754,8 @@ private: SIP_HEADER_ADD (P-Media-Authorization, , pMediaAuthorization, P_MEDIA_AUTHORIZATION_E); SIP_HEADER_ADD (Privacy, , privacy, PRIVACY_E); SIP_HEADER_ADD (P-Asserted-Identity, , pAssertedID, P_ASSERTED_ID_E); SIP_HEADER_ADD (P-Preferred-Identity, , pPreferredID, P_PREFERRED_ID_E); SIP_HEADER_ADD (reason, , reason, REASON_E); { mEntries.push_back(Entry("", "", MessageHeader::id_undefinedHeader_List, "")); Loading Loading @@ -823,6 +825,8 @@ void MessageHeader::PreDecodeField (Buffer& buffer) throw (DecodeError) case id_allowEvents: case id_pMediaAuthorization: case id_pAssertedID: case id_pPreferredID: case id_reason: case id_undefinedHeader_List: // these fields can appear multiple times break; Loading Loading @@ -2148,4 +2152,49 @@ void PAssertedIDValue_List::PostDecodeField (int id, Buffer& buffer) throw (Deco SetHypSize (-2); } void PPreferredIDValue_List::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); SetHypAppend (1); } void PPreferredIDValue_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) { if (detect_comma (buffer)) SetHypSize (GetSize() + 1); else SetHypSize (-2); } void ReasonValue::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_token ("^" SIPREG_TOKEN); static Regex reg_separator ("^" SIPREG_SEMI); switch (id) { case id_token: reg_token.AssertMatch (buffer, this); SetHypFieldLength (id, reg_token.GetMatchedLength()); break; case id_reasonParams: SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0); break; } } void ReasonValues::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); SetHypAppend (1); } void ReasonValues::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) { if (detect_comma (buffer)) SetHypSize (GetSize() + 1); else SetHypSize (-2); } }} // namespaces