Prechádzať zdrojové kódy

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 12 rokov pred
rodič
commit
1690eafbb5
2 zmenil súbory, kde vykonal 4 pridanie a 1 odobranie
  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_REQ_RPLSTART	10000
 
 
+#define MSRP_RPL_CODE(n)	((n) - MSRP_REQ_RPLSTART)
+
 typedef struct msrp_fline {
 typedef struct msrp_fline {
 	str buf;
 	str buf;
 	int msgtypeid;
 	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:
 		case 3:
 			if(mf->fline.msgtypeid==MSRP_REQUEST)
 			if(mf->fline.msgtypeid==MSRP_REQUEST)
 				return pv_get_null(msg, param, res);
 				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);
 					&mf->fline.rtype);
 		case 4:
 		case 4:
 			if(mf->hbody.s==NULL)
 			if(mf->hbody.s==NULL)