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

Reply via email to