Parcourir la source

msrp: return proper value for $msrp(code)

- internally there is an offset of 10000 to the value in the msrp reply
- reported by Peter Dunkley
Daniel-Constantin Mierla il y a 12 ans
Parent
commit
1690eafbb5
2 fichiers modifiés avec 4 ajouts et 1 suppressions
  1. 2 0
      modules/msrp/msrp_parser.h
  2. 2 1
      modules/msrp/msrp_vars.c

+ 2 - 0
modules/msrp/msrp_parser.h

@@ -44,6 +44,8 @@
 
 #define MSRP_REQ_RPLSTART	10000
 
+#define MSRP_RPL_CODE(n)	((n) - MSRP_REQ_RPLSTART)
+
 typedef struct msrp_fline {
 	str buf;
 	int msgtypeid;

+ 2 - 1
modules/msrp/msrp_vars.c

@@ -152,7 +152,8 @@ int pv_get_msrp(sip_msg_t *msg,  pv_param_t *param, pv_value_t *res)
 		case 3:
 			if(mf->fline.msgtypeid==MSRP_REQUEST)
 				return pv_get_null(msg, param, res);
-			return pv_get_intstrval(msg, param, res, mf->fline.rtypeid,
+			return pv_get_intstrval(msg, param, res,
+					MSRP_RPL_CODE(mf->fline.rtypeid),
 					&mf->fline.rtype);
 		case 4:
 			if(mf->hbody.s==NULL)