static int fixup_auth_get_www_authenticate(void **param, int param_no) { if(strlen((char*)*param)<=0) { LM_ERR("empty parameter %d not allowed\n", param_no); return -1; } switch(param_no) { case 1: return fixup_var_str_12(param, 1); case 2: return fixup_var_int_12(param, 1); case 3: if (fixup_pvar_null(param, 1) != 0) { LM_ERR("failed to fixup result pvar\n"); return -1; } if (((pv_spec_t *)(*param))->setf == NULL) { LM_ERR("result pvar is not writeble\n"); return -1; } return 0; } return 0; }
/* * Fix curl_connect params when posting (5 parameters): * connection (string/pvar), url (string with pvars), content-type, * data (string/pvar, pvar) */ static int fixup_curl_connect_post(void** param, int param_no) { if (param_no == 1 || param_no == 3) { /* We want char * strings */ return 0; } /* URL and data may contain pvar */ if (param_no == 2 || param_no == 4) { return fixup_spve_null(param, 1); } if (param_no == 5) { if (fixup_pvar_null(param, 1) != 0) { LM_ERR("failed to fixup result pseudo variable\n"); return -1; } if (((pv_spec_t *)(*param))->setf == NULL) { LM_ERR("result pvar is not writeable\n"); return -1; } return 0; } LM_ERR("invalid parameter number <%d>\n", param_no); return -1; }
/* * Fix tel2sip function params: uri and hostpart pvars and * result writable pvar. */ static int fixup_tel2sip(void** param, int param_no) { if ((param_no == 1) || (param_no == 2)) { if (fixup_var_str_12(param, 1) < 0) { LM_ERR("failed to fixup uri or hostpart pvar\n"); return -1; } return 0; } if (param_no == 3) { if (fixup_pvar_null(param, 1) != 0) { LM_ERR("failed to fixup result pvar\n"); return -1; } if (((pv_spec_t *)(*param))->setf == NULL) { LM_ERR("result pvar is not writeble\n"); return -1; } return 0; } LM_ERR("invalid parameter number <%d>\n", param_no); return -1; }
int fixup_cmd_erlang_rex(void** param, int param_no){ if (param_no <= 3) return fixup_spve_null(param, 1); if (param_no == 5) { return fixup_pvar_null(param, 1); } if (param_no == 4) { pv_elem_t *model=NULL; str s; s.s = (char*)(*param); s.len = strlen(s.s); if(s.len==0) { LM_ERR("cmd_erlang_rex: param %d is empty string! please use erlang empty list [].\n", param_no); return -1; } if(pv_parse_format(&s ,&model) || model==NULL) { LM_ERR("cmd_erlang_rex: wrong format [%s] for value param!\n", s.s); return -1; } *param = (void*)model; return 0; } LM_ERR("erlang_rex takes exactly 5 parameters.\n"); return -1; }
int fixup_spve_pvar(void** param, int param_no) { if(param_no==1) return fixup_spve_null(param, 1); if(param_no==2) return fixup_pvar_null(param, 1); return E_UNSPEC; }
int fixup_count (void **param, int param_no) { if (param_no == 1) { return fixup_spve_spve (param, 1); } if (param_no == 2) { return fixup_pvar_null (param, 1); } return 0; }
static int fixup_request(void** param, int param_no) { if (param_no <= 4) { return fixup_spve_null(param, 1); } else if (param_no == 5) { return fixup_pvar_null(param, 1); } LM_ERR("jsonrpc_request takes exactly 5 parameters.\n"); return -1; }
/* * Fix set_uri_* function params: uri (writable pvar) and value (pvar) */ static int fixup_set_uri(void** param, int param_no) { if (param_no == 1) { if (fixup_pvar_null(param, 1) != 0) { LM_ERR("failed to fixup uri pvar\n"); return -1; } if (((pv_spec_t *)(*param))->setf == NULL) { LM_ERR("uri pvar is not writeble\n"); return -1; } return 0; } if (param_no == 2) { return fixup_pvar_null(param, 1); } LM_ERR("invalid parameter number <%d>\n", param_no); return -1; }
static int fixup_get_params(void** param, int param_no) { if (param_no <= 2) { return fixup_spve_null(param, 1); } if (param_no == 3) { return fixup_pvar_null(param, 1); } ERR("invalid parameter number <%d>\n", param_no); return -1; }
static int fixup_get_profile2(void** param, int param_no) { pv_spec_t *sp; int ret; if (param_no == 1) { return fixup_profile(param, 1); } else if (param_no == 2) { ret = fixup_pvar_null(param, 1); if (ret < 0) return ret; sp = (pv_spec_t*) (*param); if (sp->type != PVT_AVP && sp->type != PVT_SCRIPTVAR) { LM_ERR("return must be an AVP or SCRIPT VAR!\n"); return E_SCRIPT; } } return 0; }
static int fixup_crypto_aes_decrypt(void** param, int param_no) { if(param_no==1 || param_no==2) { if(fixup_spve_null(param, 1)<0) return -1; return 0; } else if(param_no==3) { if (fixup_pvar_null(param, 1) != 0) { LM_ERR("failed to fixup result pvar\n"); return -1; } if (((pv_spec_t *)(*param))->setf == NULL) { LM_ERR("result pvar is not writeble\n"); return -1; } } return 0; }
/* * Fix curl_get_redirect params: connection(string/pvar) url (string that may contain pvars) and * result (writable pvar). */ static int fixup_curl_get_redirect(void** param, int param_no) { if (param_no == 1) { /* Connection name */ /* We want char * strings */ return 0; } if (param_no == 2) { /* PVAR to store result in */ if (fixup_pvar_null(param, 1) != 0) { LM_ERR("failed to fixup result pseudo variable\n"); return -1; } if (((pv_spec_t *)(*param))->setf == NULL) { LM_ERR("result pseudovariable is not writeable\n"); return -1; } return 0; } LM_ERR("invalid parameter number <%d>\n", param_no); return -1; }
/*! * Fix http_query params: url (string that may contain pvars) and * result (writable pvar). */ static int fixup_http_query_post(void** param, int param_no) { if ((param_no == 1) || (param_no == 2)) { return fixup_spve_null(param, 1); } if (param_no == 3) { if (fixup_pvar_null(param, 1) != 0) { LM_ERR("failed to fixup result pvar\n"); return -1; } if (((pv_spec_t *)(*param))->setf == NULL) { LM_ERR("result pvar is not writeble\n"); return -1; } return 0; } LM_ERR("invalid parameter number <%d>\n", param_no); return -1; }
/* * Fix curl_connect params: connection(string/pvar) url (string that may contain pvars) and * result (writable pvar). */ static int fixup_curl_connect(void** param, int param_no) { if ((param_no == 1) || (param_no == 2)) { /* We want char * strings */ return 0; } if (param_no == 3) { if (fixup_pvar_null(param, 1) != 0) { LM_ERR("failed to fixup result pvar\n"); return -1; } if (((pv_spec_t *)(*param))->setf == NULL) { LM_ERR("result pvar is not writeble\n"); return -1; } return 0; } LM_ERR("invalid parameter number <%d>\n", param_no); return -1; }
/* * Fix curl_connect params when posting (5 parameters): * connection (string/pvar), url (string with pvars), content-type, * data (string/pvar, pvar) */ static int fixup_curl_connect_post(void** param, int param_no) { str s; pv_elem_t *pv = NULL; if (param_no == 1 || param_no == 3) { /* We want char * strings */ return 0; } /* URL and data may contain pvar */ if (param_no == 4 || param_no == 2) { s.s = (char*)(*param); s.len = strlen(s.s); if(pv_parse_format(&s, &pv) < 0) { LM_ERR("failed to parse postdata \n"); return -1; } *param = (void*)pv; return 0; } if (param_no == 5) { if (fixup_pvar_null(param, 1) != 0) { LM_ERR("failed to fixup result pvar\n"); return -1; } if (((pv_spec_t *)(*param))->setf == NULL) { LM_ERR("result pvar is not writeble\n"); return -1; } return 0; } LM_ERR("invalid parameter number <%d>\n", param_no); return -1; }