Commit ec9b5264 authored by baire's avatar baire
Browse files

fixed Require and support Proxy-Require

parent c9d26dce
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -646,6 +646,7 @@ private:
		SIP_HEADER_ADD (Max-Forwards,	,	maxForwards,	MAX_FORWARDS_E);
		SIP_HEADER_ADD (Alert-Info,		,	alertInfo,	ALERT_INFO_E);
		SIP_HEADER_ADD (Require,	,	require,	REQUIRE_E);
		SIP_HEADER_ADD (Proxy-Require,	,	proxyRequire,	PROXY_REQUIRE_E);
		{
			mEntries.push_back(Entry("", "", MessageHeader::id_undefinedHeader_List, ""));
			Entry& e = *mEntries.rbegin();
@@ -1245,12 +1246,16 @@ void OptionTag_List::PreDecodeField(int id, Buffer& buffer) throw (DecodeError)
	static Regex reg_next ("^" SIPREG_COMMA "(" SIPREG_TOKEN ")");

	if (id == 0) {
		// first option
		reg_first.AssertMatch(buffer, this);
		SetHypFieldLength(reg_first.GetMatchedLength());
	} else {
		reg_next.AssertMatch(buffer, this);
	} else if (reg_next.Match(buffer)) {
		// next options
		reg_next.MoveAt(buffer, 1);
		SetHypFieldLength(reg_next.GetMatchedLength(1));
	} else {
		// end of options
		SetHypSize(-2);
	}
}