Преглед изворни кода

lib/kcore: parse Supported header recognize gruu

Daniel-Constantin Mierla пре 13 година
родитељ
комит
74f727eb90
2 измењених фајлова са 13 додато и 1 уклоњено
  1. 8 1
      lib/kcore/parse_supported.c
  2. 5 0
      lib/kcore/parse_supported.h

+ 8 - 1
lib/kcore/parse_supported.c

@@ -97,10 +97,17 @@ static inline int parse_supported_body(str *body, unsigned int *sup)
 				if(pos+SUPPORTED_EVENTLIST_LEN<=len
 						&& strncasecmp(p, SUPPORTED_EVENTLIST_STR,
 							SUPPORTED_EVENTLIST_LEN)==0
-						&& IS_DELIM(p+9) ) {
+						&& IS_DELIM(p+SUPPORTED_EVENTLIST_LEN) ) {
 					*sup |= F_SUPPORTED_EVENTLIST;
 					pos += SUPPORTED_EVENTLIST_LEN + 1;
 					p   += SUPPORTED_EVENTLIST_LEN + 1;
+				} else if(pos+SUPPORTED_GRUU_LEN<=len
+						&& strncasecmp(p, SUPPORTED_GRUU_STR,
+							SUPPORTED_GRUU_LEN)==0
+						&& IS_DELIM(p+SUPPORTED_GRUU_LEN)) {
+					*sup |= F_SUPPORTED_GRUU;
+					pos += SUPPORTED_GRUU_LEN + 1;
+					p   += SUPPORTED_GRUU_LEN + 1;
 				} else {
 					/* skip element */
 					for (; pos < len && !IS_DELIM(p); ++pos, ++p);

+ 5 - 0
lib/kcore/parse_supported.h

@@ -44,6 +44,7 @@
 #define F_SUPPORTED_100REL		(1 << 1)
 #define F_SUPPORTED_TIMER		(1 << 2)
 #define F_SUPPORTED_EVENTLIST   (1 << 3)
+#define F_SUPPORTED_GRUU        (1 << 4)
 
 #define SUPPORTED_PATH_STR		"path"
 #define SUPPORTED_PATH_LEN		(sizeof(SUPPORTED_PATH_STR)-1)
@@ -60,6 +61,10 @@
 #define SUPPORTED_EVENTLIST_STR  "eventlist"
 #define SUPPORTED_EVENTLIST_LEN  (sizeof(SUPPORTED_EVENTLIST_STR)-1)
 
+/* RFC 5627 */
+#define SUPPORTED_GRUU_STR		"gruu"
+#define SUPPORTED_GRUU_LEN		(sizeof(SUPPORTED_GRUU_STR)-1)
+
 #define get_supported(p_msg) \
 	((p_msg)->supported ? ((struct supported_body*)(p_msg)->supported->parsed)->supported_all : 0)