int parse_min_expires(struct sip_msg *msg) { if (msg->min_expires==NULL && parse_headers(msg,HDR_MIN_EXPIRES_F,0)!=0 ) { LM_ERR("failed to parse Min=Expires\n"); return -1; } if (msg->min_expires) { /* We will re-uise the min-se parser here */ if (msg->min_expires->parsed == 0 && parse_sst_success != parse_min_se_body(msg->min_expires)) { set_err_info(OSER_EC_PARSER, OSER_EL_MEDIUM, "error parsing Min-Expires header"); set_err_reply(400, "bad headers"); return -1; } } return 0; }
enum parse_sst_result parse_min_se( struct sip_msg *msg, unsigned int *min_se ) { enum parse_sst_result result; if ( msg->min_se ) { if ( msg->min_se->parsed == 0 && (result = parse_min_se_body(msg->min_se)) != parse_sst_success ) { return result; } if ( min_se ) { *min_se = (unsigned int)(long)msg->min_se->parsed; } return parse_sst_success; } else { return parse_sst_header_not_found; } }