Loading codec/c++/sip_codets.cpp +14 −3 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ private: #define SIPCHARS_MARK "\\-_.!~*'()" #define SIPCHARS_ALFA "A-Za-z" #define SIPCHARS_ALFANUM "0-9" SIPCHARS_ALFA #define SIPCHARS_HEXA "0-9A-F" #define SIPCHARS_UNRESERVED SIPCHARS_ALFANUM SIPCHARS_MARK #define SIPCHARS_USER_UNRESERVED "&=+$,;?/" #define SIPCHARS_ESCAPED "(%[0-9A-F]{2})" Loading @@ -74,6 +75,16 @@ private: #define SIPCHARS_HOSTNAME "(" SIPCHARS_DOMAINLABEL "\\.)*" SIPCHARS_TOPLABEL "\\.?" // IPv4 #define SIPCHARS_IP4 "([0-9]{1,3}\\.){3}[0-9]{1,3}" // IPv6 #define SIPCHARS_HEX4 "[" SIPCHARS_HEXA "]{1,4}" #define SIPCHARS_HEXSEQ SIPCHARS_HEX4 "([:]" SIPCHARS_HEX4 ")*" #define SIPCHARS_HEXPART "(((" SIPCHARS_HEXSEQ ")?[:]{2}(" SIPCHARS_HEXSEQ ")?)|(" SIPCHARS_HEXSEQ "))" #define SIPCHARS_IP6 "[[]" SIPCHARS_HEXPART "([:]" SIPCHARS_IP4 ")?[]]" // host #define SIPCHARS_HOST "((" SIPCHARS_HOSTNAME ")|(" SIPCHARS_IP4 ")|(" SIPCHARS_IP6 "))" #define SIPCHARS_PPARAM_UNRESERVED "][/:&+$" #define SIPCHARS_PPARAM "([" SIPCHARS_PPARAM_UNRESERVED SIPCHARS_UNRESERVED "]|" SIPCHARS_ESCAPED "])" Loading @@ -88,7 +99,7 @@ void SipUrl::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) static Regex reg_scheme ("^sip:", REG_ICASE); static Regex reg_userinfo ("^([:" SIPCHARS_UNRESERVED SIPCHARS_USER_UNRESERVED "]|" SIPCHARS_ESCAPED "])+@", REG_ICASE); static Regex reg_hostport ("^[:." SIPCHARS_ALFANUM "\\-]+", REG_ICASE); static Regex reg_hostport ("^[][" SIPCHARS_ALFANUM ":.\\-]+", REG_ICASE); static Regex reg_urlParams ("^;" SIPCHARS_PPARAM_ALLOWED, REG_ICASE); static Regex reg_headers ("^[?]" SIPCHARS_PPARAM_ALLOWED, REG_ICASE); Loading Loading @@ -163,8 +174,8 @@ void UserInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) void HostPort::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_host1 (SIPCHARS_HOSTNAME, REG_ICASE); static Regex reg_host2 (SIPCHARS_HOSTNAME ":", REG_ICASE); static Regex reg_host1 (SIPCHARS_HOST, REG_ICASE); static Regex reg_host2 (SIPCHARS_HOST ":", REG_ICASE); switch (id) { case id_host: SetHypFieldIsPresent(id, 1); Loading Loading
codec/c++/sip_codets.cpp +14 −3 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ private: #define SIPCHARS_MARK "\\-_.!~*'()" #define SIPCHARS_ALFA "A-Za-z" #define SIPCHARS_ALFANUM "0-9" SIPCHARS_ALFA #define SIPCHARS_HEXA "0-9A-F" #define SIPCHARS_UNRESERVED SIPCHARS_ALFANUM SIPCHARS_MARK #define SIPCHARS_USER_UNRESERVED "&=+$,;?/" #define SIPCHARS_ESCAPED "(%[0-9A-F]{2})" Loading @@ -74,6 +75,16 @@ private: #define SIPCHARS_HOSTNAME "(" SIPCHARS_DOMAINLABEL "\\.)*" SIPCHARS_TOPLABEL "\\.?" // IPv4 #define SIPCHARS_IP4 "([0-9]{1,3}\\.){3}[0-9]{1,3}" // IPv6 #define SIPCHARS_HEX4 "[" SIPCHARS_HEXA "]{1,4}" #define SIPCHARS_HEXSEQ SIPCHARS_HEX4 "([:]" SIPCHARS_HEX4 ")*" #define SIPCHARS_HEXPART "(((" SIPCHARS_HEXSEQ ")?[:]{2}(" SIPCHARS_HEXSEQ ")?)|(" SIPCHARS_HEXSEQ "))" #define SIPCHARS_IP6 "[[]" SIPCHARS_HEXPART "([:]" SIPCHARS_IP4 ")?[]]" // host #define SIPCHARS_HOST "((" SIPCHARS_HOSTNAME ")|(" SIPCHARS_IP4 ")|(" SIPCHARS_IP6 "))" #define SIPCHARS_PPARAM_UNRESERVED "][/:&+$" #define SIPCHARS_PPARAM "([" SIPCHARS_PPARAM_UNRESERVED SIPCHARS_UNRESERVED "]|" SIPCHARS_ESCAPED "])" Loading @@ -88,7 +99,7 @@ void SipUrl::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) static Regex reg_scheme ("^sip:", REG_ICASE); static Regex reg_userinfo ("^([:" SIPCHARS_UNRESERVED SIPCHARS_USER_UNRESERVED "]|" SIPCHARS_ESCAPED "])+@", REG_ICASE); static Regex reg_hostport ("^[:." SIPCHARS_ALFANUM "\\-]+", REG_ICASE); static Regex reg_hostport ("^[][" SIPCHARS_ALFANUM ":.\\-]+", REG_ICASE); static Regex reg_urlParams ("^;" SIPCHARS_PPARAM_ALLOWED, REG_ICASE); static Regex reg_headers ("^[?]" SIPCHARS_PPARAM_ALLOWED, REG_ICASE); Loading Loading @@ -163,8 +174,8 @@ void UserInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) void HostPort::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) { static Regex reg_host1 (SIPCHARS_HOSTNAME, REG_ICASE); static Regex reg_host2 (SIPCHARS_HOSTNAME ":", REG_ICASE); static Regex reg_host1 (SIPCHARS_HOST, REG_ICASE); static Regex reg_host2 (SIPCHARS_HOST ":", REG_ICASE); switch (id) { case id_host: SetHypFieldIsPresent(id, 1); Loading