Sfoglia il codice sorgente

core: added parsing of ;ob for URIs and Contact: headers

Peter Dunkley 12 anni fa
parent
commit
488bf3c94b
2 ha cambiato i file con 21 aggiunte e 2 eliminazioni
  1. 17 1
      parser/parse_param.c
  2. 4 1
      parser/parse_param.h

+ 17 - 1
parser/parse_param.c

@@ -152,7 +152,7 @@ static inline void parse_contact_class(param_hooks_t* _h, param_t* _p)
 			_h->contact.methods = _p;
 		}
 		break;
-		
+
 	case 'r':
 	case 'R':
 		if ((_p->name.len == 8) &&
@@ -172,6 +172,14 @@ static inline void parse_contact_class(param_hooks_t* _h, param_t* _p)
 			_h->contact.instance = _p;
 		}
 		break;
+	case 'o':
+	case 'O':
+		if ((_p->name.len == 2) &&
+		    (!strncasecmp(_p->name.s + 1, "b", 1))) {
+			_p->type = P_OB;
+			_h->contact.ob = _p;
+		}
+		break;
 	}
 }
 
@@ -252,6 +260,14 @@ static inline void parse_uri_class(param_hooks_t* _h, param_t* _p)
 			_h->uri.ftag = _p;
 		}
 		break;
+	case 'o':
+	case 'O':
+		if ((_p->name.len == 2) &&
+		    (!strncasecmp(_p->name.s + 1, "b", 1))) {
+			_p->type = P_OB;
+			_h->uri.ob = _p;
+		}
+		break;
 	}
 
 }

+ 4 - 1
parser/parse_param.h

@@ -69,7 +69,8 @@ typedef enum ptype {
 	P_TO_TAG,    /*!< Dialog event package: to-tag */
 	P_ISD,       /*!< Dialog event package: include-session-description */
 	P_SLA,       /*!< Dialog event package: sla */
-	P_MA         /*!< Dialog event package: ma */
+	P_MA,        /*!< Dialog event package: ma */
+	P_OB         /*!< Contact|URI: ob parameter */
 } ptype_t;
 
 
@@ -106,6 +107,7 @@ struct contact_hooks {
 	struct param* received; /*!< received parameter */
 	struct param* instance; /*!< sip.instance parameter */
 	struct param* reg_id;   /*!< reg-id parameter */
+	struct param* ob;       /*!< ob parameter */
 };
 
 
@@ -121,6 +123,7 @@ struct uri_hooks {
 	struct param* dstip;     /*!< Destination IP */
 	struct param* dstport;   /*!< Destination port */
 	struct param* ftag;      /*!< From tag in the original request */
+	struct param* ob;        /*!< ob parameter */
 };