Module: sems Branch: master Commit: 107a0aa3b390f37c612990312a547d4ca9718287 URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sems/?a=commit;h=107a0aa3b390f37c612990312a547d4ca9718287
Author: Stefan Sayer <[email protected]> Committer: Stefan Sayer <[email protected]> Date: Sun Sep 26 14:55:37 2010 +0200 fix get_header_keyvalue for keys length 1 --- core/AmUtils.cpp | 7 +++++-- core/tests/test_headers.cpp | 3 ++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/core/AmUtils.cpp b/core/AmUtils.cpp index eec1174..9f31e41 100644 --- a/core/AmUtils.cpp +++ b/core/AmUtils.cpp @@ -820,7 +820,7 @@ string get_header_keyvalue_single(const string& param_hdr, const string& name) { while (p<param_hdr.length() && !v_end) { char curr = param_hdr[p]; - // DBG("curr %c, st=%d\n", curr, st); + // DBG("curr %c, st=%d, corr=%d\n", curr, st, corr); switch(st) { case ST_FINDBGN: { switch(curr) { @@ -850,7 +850,10 @@ string get_header_keyvalue_single(const string& param_hdr, const string& name) { break; default: if (curr==name[0]) { - st = ST_CMPKEY; + if (name.length() == 1) + st = ST_FINDEQ; + else + st = ST_CMPKEY; k_begin = p; corr = 1; } diff --git a/core/tests/test_headers.cpp b/core/tests/test_headers.cpp index e9eb135..aaf7345 100644 --- a/core/tests/test_headers.cpp +++ b/core/tests/test_headers.cpp @@ -55,7 +55,8 @@ FCTMF_SUITE_BGN(test_headers) { fct_chk(get_header_keyvalue(getHeader("P-My-Test: mykey=myval; myotherfunkykey= '';andsomemore", "P-My-Test", true), "myotherfunkykey") == ""); fct_chk(get_header_keyvalue(getHeader("P-My-Test: mykey=myval; myotherfunkykey= 'test \\' escaped';andsomemore", "P-My-Test", true), "test \\' escaped") == ""); - + fct_chk(get_header_keyvalue("u=sayer;d=iptel.org;p=abcdef", "u") == "sayer"); + fct_chk(get_header_keyvalue("u=sayer;d=iptel.org;p=abcdef", "d") == "iptel.org"); } FCT_TEST_END(); } FCTMF_SUITE_END(); _______________________________________________ Semsdev mailing list [email protected] http://lists.iptel.org/mailman/listinfo/semsdev
