Example #1
0
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;
}
Example #2
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;
}
Example #3
0
/*
 * 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;
}
Example #5
0
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;
}
Example #6
0
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;
}
Example #7
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;
}
Example #8
0
/*
 * 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;
}
Example #9
0
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;
}
Example #10
0
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;
}
Example #11
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;
}
Example #12
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;
}
Example #13
0
/*!
 * 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;
}
Example #14
0
/*
 * 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;
}
Example #15
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)
{

    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;
}