Loading codec/c++/sip_codets.cpp +28 −2 Original line number Diff line number Diff line Loading @@ -755,8 +755,8 @@ private: 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); SIP_HEADER_ADD (Reason, , reason, REASON_E); SIP_HEADER_ADD (Path, , path, PATH_E); { mEntries.push_back(Entry("", "", MessageHeader::id_undefinedHeader_List, "")); Entry& e = *mEntries.rbegin(); Loading Loading @@ -827,6 +827,7 @@ void MessageHeader::PreDecodeField (Buffer& buffer) throw (DecodeError) case id_pAssertedID: case id_pPreferredID: case id_reason: case id_path: case id_undefinedHeader_List: // these fields can appear multiple times break; Loading Loading @@ -2197,4 +2198,29 @@ void ReasonValues::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) SetHypSize (-2); } void PathValue::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_separator ("^" SIPREG_SEMI); switch (id) { case id_rrParam: SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0); break; } } void PathValues::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); SetHypAppend (1); } void PathValues::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) { if (detect_comma (buffer)) SetHypSize (GetSize() + 1); else SetHypSize (-2); } }} // namespaces Loading
codec/c++/sip_codets.cpp +28 −2 Original line number Diff line number Diff line Loading @@ -755,8 +755,8 @@ private: 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); SIP_HEADER_ADD (Reason, , reason, REASON_E); SIP_HEADER_ADD (Path, , path, PATH_E); { mEntries.push_back(Entry("", "", MessageHeader::id_undefinedHeader_List, "")); Entry& e = *mEntries.rbegin(); Loading Loading @@ -827,6 +827,7 @@ void MessageHeader::PreDecodeField (Buffer& buffer) throw (DecodeError) case id_pAssertedID: case id_pPreferredID: case id_reason: case id_path: case id_undefinedHeader_List: // these fields can appear multiple times break; Loading Loading @@ -2197,4 +2198,29 @@ void ReasonValues::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) SetHypSize (-2); } void PathValue::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_separator ("^" SIPREG_SEMI); switch (id) { case id_rrParam: SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0); break; } } void PathValues::PreDecode (Buffer& buffer) throw (DecodeError) { SetHypSize (GetSize() + 1); SetHypAppend (1); } void PathValues::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) { if (detect_comma (buffer)) SetHypSize (GetSize() + 1); else SetHypSize (-2); } }} // namespaces