Loading codec/c++/sip_codets.cpp +16 −1 Original line number Diff line number Diff line Loading @@ -128,10 +128,12 @@ bool is_tel_scheme (const char * pszScheme) { #define SIPCHARS_RESERVED ";/?:@&=+$," #define SIPCHARS_USER_UNRESERVED "&=+$,;?/" #define SIPCHARS_UTF8_NONASCII "\x80-\xFD" #define SIPCHARS_TEXT_UTF8CHAR "\x21-\xFD" #define SIPREG_ESCAPED "(%[0-9A-Fa-f]{2})" #define SIPREG_TOKEN "[" SIPCHARS_ALFANUM ".!%*_+`'~\\-]+" #define SIPREG_WORD "(?:[][" SIPCHARS_ALFANUM "\\-.!%*_+`'~()<>:\\\\\"/?{}])+" #define SIPREG_ASCII_WITHOUT_COMMA "[\\x21-\\x2B\\x2D-\\x7E]+" #define SIPREG_TEXT_UTF8_TRIM "[\x21-\xFD]([\x21-\xFD]|(" SIPREG_LWS "))*" // sip version #define SIPREG_SIP_VERSION "SIP/[0-9]\\.[0-9]" Loading Loading @@ -215,7 +217,7 @@ void SipUrl::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) static Regex reg_scheme ("^[" SIPCHARS_ALFA "][" SIPCHARS_ALFANUM "+.\\-]*"); static Regex reg_colon ("^[:]"); static Regex reg_userinfo ("^([:" SIPCHARS_UNRESERVED SIPCHARS_USER_UNRESERVED "]|" SIPREG_ESCAPED "])+@"); static Regex reg_userinfo ("^([" SIPCHARS_UNRESERVED SIPCHARS_USER_UNRESERVED "]|" SIPREG_ESCAPED ")+@"); static Regex reg_phone ("^" SIPREG_PHONE_NUMBER); static Regex reg_hostport ("^[][" SIPCHARS_ALFANUM ":.\\-]+"); static Regex reg_absolute_uri ("^" SIPREG_ABSOLUTE_URI); Loading Loading @@ -708,6 +710,7 @@ private: SIP_HEADER_ADD (In-Reply-To, , inReplyTo, IN_REPLY_TO_E); SIP_HEADER_ADD (MIME-Version, , mimeVersion, MIME_VERSION_E); SIP_HEADER_ADD (Min-Expires, , minExpires, MIN_EXPIRES_E); SIP_HEADER_ADD (Organization, , organization, ORGANIZATION_E); { mEntries.push_back(Entry("", "", MessageHeader::id_undefinedHeader_List, "")); Entry& e = *mEntries.rbegin(); Loading Loading @@ -1292,6 +1295,18 @@ void MinExpires::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } void Organization::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_organization ("^(" SIPREG_TEXT_UTF8_TRIM ")*"); switch (id) { case id_organization: reg_organization.AssertMatch (buffer, this); SetHypFieldLength (id, reg_organization.GetMatchedLength()); break; } } void NameAddr::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_display_name ("^" SIPREG_DISPLAY_NAME); Loading Loading
codec/c++/sip_codets.cpp +16 −1 Original line number Diff line number Diff line Loading @@ -128,10 +128,12 @@ bool is_tel_scheme (const char * pszScheme) { #define SIPCHARS_RESERVED ";/?:@&=+$," #define SIPCHARS_USER_UNRESERVED "&=+$,;?/" #define SIPCHARS_UTF8_NONASCII "\x80-\xFD" #define SIPCHARS_TEXT_UTF8CHAR "\x21-\xFD" #define SIPREG_ESCAPED "(%[0-9A-Fa-f]{2})" #define SIPREG_TOKEN "[" SIPCHARS_ALFANUM ".!%*_+`'~\\-]+" #define SIPREG_WORD "(?:[][" SIPCHARS_ALFANUM "\\-.!%*_+`'~()<>:\\\\\"/?{}])+" #define SIPREG_ASCII_WITHOUT_COMMA "[\\x21-\\x2B\\x2D-\\x7E]+" #define SIPREG_TEXT_UTF8_TRIM "[\x21-\xFD]([\x21-\xFD]|(" SIPREG_LWS "))*" // sip version #define SIPREG_SIP_VERSION "SIP/[0-9]\\.[0-9]" Loading Loading @@ -215,7 +217,7 @@ void SipUrl::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) static Regex reg_scheme ("^[" SIPCHARS_ALFA "][" SIPCHARS_ALFANUM "+.\\-]*"); static Regex reg_colon ("^[:]"); static Regex reg_userinfo ("^([:" SIPCHARS_UNRESERVED SIPCHARS_USER_UNRESERVED "]|" SIPREG_ESCAPED "])+@"); static Regex reg_userinfo ("^([" SIPCHARS_UNRESERVED SIPCHARS_USER_UNRESERVED "]|" SIPREG_ESCAPED ")+@"); static Regex reg_phone ("^" SIPREG_PHONE_NUMBER); static Regex reg_hostport ("^[][" SIPCHARS_ALFANUM ":.\\-]+"); static Regex reg_absolute_uri ("^" SIPREG_ABSOLUTE_URI); Loading Loading @@ -708,6 +710,7 @@ private: SIP_HEADER_ADD (In-Reply-To, , inReplyTo, IN_REPLY_TO_E); SIP_HEADER_ADD (MIME-Version, , mimeVersion, MIME_VERSION_E); SIP_HEADER_ADD (Min-Expires, , minExpires, MIN_EXPIRES_E); SIP_HEADER_ADD (Organization, , organization, ORGANIZATION_E); { mEntries.push_back(Entry("", "", MessageHeader::id_undefinedHeader_List, "")); Entry& e = *mEntries.rbegin(); Loading Loading @@ -1292,6 +1295,18 @@ void MinExpires::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) } void Organization::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_organization ("^(" SIPREG_TEXT_UTF8_TRIM ")*"); switch (id) { case id_organization: reg_organization.AssertMatch (buffer, this); SetHypFieldLength (id, reg_organization.GetMatchedLength()); break; } } void NameAddr::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_display_name ("^" SIPREG_DISPLAY_NAME); Loading