| 1019 | |
| 1020 | extern err_info_t _oser_err_info; |
| 1021 | static int pv_get_errinfo_attr(struct sip_msg *msg, pv_param_t *param, |
| 1022 | pv_value_t *res) |
| 1023 | { |
| 1024 | if(msg==NULL) |
| 1025 | return -1; |
| 1026 | |
| 1027 | if(param->pvn.u.isname.name.n==0) /* class */ { |
| 1028 | return pv_get_sintval(msg, param, res, _oser_err_info.eclass); |
| 1029 | } else if(param->pvn.u.isname.name.n==1) /* level */ { |
| 1030 | return pv_get_sintval(msg, param, res, _oser_err_info.level); |
| 1031 | } else if(param->pvn.u.isname.name.n==2) /* info */ { |
| 1032 | if(_oser_err_info.info.s==NULL) |
| 1033 | pv_get_null(msg, param, res); |
| 1034 | return pv_get_strval(msg, param, res, &_oser_err_info.info); |
| 1035 | } else if(param->pvn.u.isname.name.n==3) /* rcode */ { |
| 1036 | return pv_get_sintval(msg, param, res, _oser_err_info.rcode); |
| 1037 | } else if(param->pvn.u.isname.name.n==4) /* rreason */ { |
| 1038 | if(_oser_err_info.rreason.s==NULL) |
| 1039 | pv_get_null(msg, param, res); |
| 1040 | return pv_get_strval(msg, param, res, &_oser_err_info.rreason); |
| 1041 | } else { |
| 1042 | LM_DBG("invalid attribute!\n"); |
| 1043 | return pv_get_null(msg, param, res); |
| 1044 | } |
| 1045 | } |
| 1046 | |
| 1047 | static int pv_get_xto_attr(struct sip_msg *msg, pv_param_t *param, |
| 1048 | pv_value_t *res, struct to_body *xto, int type) |
nothing calls this directly
no test coverage detected