Ver Fonte

core: strutils - trim trailing spaces when comparing hdr names

(cherry picked from commit 6d76b79b81bf448fa1f34753c1d000dc6c1870e0)
Daniel-Constantin Mierla há 5 anos atrás
pai
commit
d0f7c7056b
2 ficheiros alterados com 16 adições e 7 exclusões
  1. 15 6
      src/core/strutils.c
  2. 1 1
      src/core/strutils.h

+ 15 - 6
src/core/strutils.c

@@ -28,6 +28,7 @@
 
 #include "dprint.h"
 #include "ut.h"
+#include "trim.h"
 #include "strutils.h"
 
 /*! \brief
@@ -453,16 +454,24 @@ int cmpi_str(str *s1, str *s2)
 
 int cmp_hdrname_str(str *s1, str *s2)
 {
+	str n1, n2;
+	n1 = *s1;
+	n2 = *s2;
+	trim_trailing(&n1);
+	trim_trailing(&n2);
 	/* todo: parse hdr name and compare with short/long alternative */
-	return cmpi_str(s1, s2);
+	return cmpi_str(&n1, &n2);
 }
 
-int cmp_hdrname_strzn(str *s1, char *s2, size_t n)
+int cmp_hdrname_strzn(str *s1, char *s2, size_t len)
 {
-	str s;
-	s.s = s2;
-	s.len = n;
-	return cmpi_str(s1, &s);
+	str n1, n2;
+	n1 = *s1;
+	n2.s = s2;
+	n2.len = len;
+	trim_trailing(&n1);
+	trim_trailing(&n2);
+	return cmpi_str(&n1, &n2);
 }
 
 int cmp_str_params(str *s1, str *s2)

+ 1 - 1
src/core/strutils.h

@@ -43,7 +43,7 @@ int cmp_str(str *s1, str *s2);
 int cmpi_str(str *s1, str *s2);
 
 int cmp_hdrname_str(str *s1, str *s2);
-int cmp_hdrname_strzn(str *s1, char *s2, size_t n);
+int cmp_hdrname_strzn(str *s1, char *s2, size_t len);
 int cmp_uri_str(str *s1, str *s2);
 int cmp_uri_light_str(str *s1, str *s2);
 int cmp_aor_str(str *s1, str *s2);