Exemple #1
0
static int fixup_pl_check3(void** param, int param_no)
{
	if(param_no==1) return fixup_spve_null(param, 1);
	if(param_no==2) return fixup_spve_null(param, 1);
	if(param_no==3) return fixup_igp_null(param, 1);
	return 0;
}
Exemple #2
0
static int fixup_presxml_check(void **param, int param_no)
{
	if(param_no == 1) {
		return fixup_spve_null(param, 1);
	} else if(param_no == 2) {
		return fixup_spve_null(param, 1);
	}
	return 0;
}
Exemple #3
0
int fixup_update_subs(void** param, int param_no)
{
	if (param_no == 1) {
		return fixup_spve_null(param, 1);
	} else if (param_no == 2) {
		return fixup_spve_null(param, 1);
	}
	return 0;
}
Exemple #4
0
static int fixup_has_subscribers(void** param, int param_no)
{
        if(param_no==1) {
                return fixup_spve_null(param, 1);
        } else if(param_no==2) {
                return fixup_spve_null(param, 1);
        }

        return 0;
}
Exemple #5
0
/*! \brief
 * Convert char* parameter to udomain_t* pointer
 * Convert char* parameter to pv_elem_t* pointer
 */
static int unreg_fixup(void** param, int param_no)
{
	if (param_no == 1) {
		return domain_fixup(param, 1);
	} else if (param_no == 2) {
		return fixup_spve_null(param, 1);
	} else if (param_no == 3) {
		return fixup_spve_null(param, 1);
	}
	return 0;
}
Exemple #6
0
static int fixup_core_hash(void **param, int param_no)
{
	if (param_no == 1)
		return fixup_spve_null(param, 1);
	else if (param_no == 2)
		return fixup_spve_null(param, 1);
	else if (param_no == 3)
		return fixup_igp_null(param, 1);
	else
		return 0;
}
Exemple #7
0
static int fixup_xhttp_reply(void** param, int param_no)
{
	if (param_no == 1) {
	    return fixup_igp_null(param, 1);
	} else if (param_no == 2) {
	    return fixup_spve_null(param, 1);
	} else if (param_no == 3) {
	    return fixup_spve_null(param, 1);
	} else if (param_no == 4) {
	    return fixup_spve_null(param, 1);
	}
	return 0;
}
Exemple #8
0
/*
 * Convert the char* parameters
 */
static int challenge_fixup_async(void** param, int param_no) {

    if (strlen((char*) *param) <= 0) {
        LM_ERR("empty parameter %d not allowed\n", param_no);
        return -1;
    }

    if (param_no == 1) {        //route name - static or dynamic string (config vars)
        if (fixup_spve_null(param, param_no) < 0)
            return -1;
        return 0;
    } else if (param_no == 2) {
        if (fixup_var_str_12(param, 1) == -1) {
            LM_ERR("Error doing fixup on challenge");
            return -1;
        }
    } else if (param_no == 3) /* algorithm */ {
	if (fixup_var_str_12(param, 1) == -1) {
            LM_ERR("Error doing fixup on challenge");
            return -1;
        }
    }

    return 0;
}
Exemple #9
0
/**
 * fixes the module functions' parameters, i.e. it maps
 * the routing domain names to numbers for faster access
 * at runtime
 *
 * @param param the parameter
 * @param param_no the number of the parameter
 *
 * @return 0 on success, -1 on failure
 */
int cr_load_next_domain_fixup(void ** param, int param_no) {
	if (param_no == 1) {
		/* carrier */
		if (carrier_fixup(param) < 0) {
			LM_ERR("cannot fixup parameter %d\n", param_no);
			return -1;
		}
	}
	else if (param_no == 2) {
		/* domain */
		if (domain_fixup(param) < 0) {
			LM_ERR("cannot fixup parameter %d\n", param_no);
			return -1;
		}
	}
	else if ((param_no == 3) || (param_no == 4) || (param_no == 5)) {
		/* prefix matching, host, reply code */
		if (fixup_spve_null(param, 1) != 0) {
			LM_ERR("cannot fixup parameter %d\n", param_no);
			return -1;
		}
	}
	else if (param_no == 6) {
		/* destination avp name */
		if (avp_name_fixup(param) < 0) {
			LM_ERR("cannot fixup parameter %d\n", param_no);
			return -1;
		}
	}

	return 0;
}
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;
}
Exemple #11
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;
}
Exemple #12
0
/*! \brief
 * Fixup for "save" function - both domain and flags
 */
static int save_fixup(void** param, int param_no)
{
	unsigned int flags;
	str s;

	if (param_no == 1) {
		return domain_fixup(param,param_no);
	} else if (param_no == 2) {
		s.s = (char*)*param;
		s.len = strlen(s.s);
		flags = 0;
		if ( (strno2int(&s, &flags )<0) || (flags>REG_SAVE_ALL_FL) ) {
			LM_ERR("bad flags <%s>\n", (char *)(*param));
			return E_CFG;
		}
		if (ul.db_mode==DB_ONLY && flags&REG_SAVE_MEM_FL) {
			LM_ERR("MEM flag set while using the DB_ONLY mode in USRLOC\n");
			return E_CFG;
		}
		pkg_free(*param);
		*param = (void*)(unsigned long int)flags;
	} else if (param_no == 3) {
		return fixup_spve_null(param, 1);
	}
	return 0;
}
Exemple #13
0
static int fixup_dlg_refer(void** param, int param_no)
{
	char *val;
	int n = 0;

	if (param_no==1) {
		val = (char*)*param;
		if (strcasecmp(val,"caller")==0) {
			n = 1;
		} else if (strcasecmp(val,"callee")==0) {
			n = 2;
		} else {
			LM_ERR("invalid param \"%s\"\n", val);
			return E_CFG;
		}
		pkg_free(*param);
		*param=(void*)(long)n;
	} else if (param_no==2) {
		return fixup_spve_null(param, 1);
	} else {
		LM_ERR("called with parameter idx %d\n", param_no);
		return E_BUG;
	}
	return 0;
}
Exemple #14
0
/**
 * fixup for w_pres_refresh_watchers
 */
static int fixup_refresh_watchers(void** param, int param_no)
{
	if(param_no==1) {
		return fixup_spve_null(param, 1);
	} else if(param_no==2) {
		return fixup_spve_null(param, 1);
	} else if(param_no==3) {
		return fixup_igp_null(param, 1);
	} else if(param_no==4) {
		return fixup_spve_null(param, 1);
	} else if(param_no==5) {
		return fixup_spve_null(param, 1);
	}
	
	return 0;
}
Exemple #15
0
/*
 * Convert the char* parameters
 */
static int auth_fixup(void** param, int param_no)
{
	db_con_t* dbh = NULL;
	str name;

	if (param_no == 1) {
		return fixup_spve_null(param, 1);
	} else if (param_no == 2) {
		name.s = (char*)*param;
		name.len = strlen(name.s);

		dbh = auth_dbf.init(&db_url);
		if (!dbh) {
			LM_ERR("unable to open database connection\n");
			return -1;
		}
		if(skip_version_check == 0 &&
			db_check_table_version(&auth_dbf, dbh, &name, TABLE_VERSION) < 0) {
			LM_ERR("error during table version check.\n");
			auth_dbf.close(dbh);
			return -1;
		}
	}
	auth_dbf.close(dbh);
	return 0;
}
static int exec_avp_fixup(void** param, int param_no)
{
	pvname_list_t *anlist = NULL;
	str s;

	s.s = (char*)(*param);
	if (param_no==1)
	{
		if(s.s==NULL)
		{
			LM_ERR("null format in P%d\n", param_no);
			return E_UNSPEC;
		}
		return fixup_spve_null(param, 1);
	} else if(param_no==2) {
		if(s.s==NULL)
		{
			LM_ERR("null format in P%d\n", param_no);
			return E_UNSPEC;
		}
		s.len =  strlen(s.s);
		anlist = parse_pvname_list(&s, PVT_AVP);
		if(anlist==NULL)
		{
			LM_ERR("bad format in P%d [%s]\n", param_no, s.s);
			return E_UNSPEC;
		}
		*param = (void*)anlist;
		return 0;
	}

	return 0;
}
Exemple #17
0
static int fixup_notification(void** param, int param_no)
{
  if (param_no <= 2) {
		return fixup_spve_null(param, 1);
	}
	LM_ERR("jsonrpc_notification takes exactly 2 parameters.\n");
	return -1;
}
Exemple #18
0
static int fixup_dlg_remote_profile(void** param, int param_no)
{
	if(param_no>=1 && param_no<=4)
		return fixup_spve_null(param, 1);
	if(param_no==5)
		return fixup_igp_null(param, 1);
	return 0;
}
Exemple #19
0
int fixup_spve_spve_igp(void** param, int param_no)
{
	if(param_no==1 || param_no==2)
		return fixup_spve_null(param, 1);
	if(param_no==3)
		return fixup_igp_null(param, 1);
	return E_UNSPEC;
}
Exemple #20
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;
}
Exemple #21
0
static int fixup_translate(void** param, int param_no)
{
	if(param_no==1)
		return fixup_spve_null(param, 1);
	if(param_no==2)
		return fixup_igp_null(param, 1);
	return 0;
}
Exemple #22
0
static int fixup_ds_is_from_list(void** param, int param_no)
{
	if(param_no==1 || param_no==2)
		return fixup_igp_null(param, 1);
	if(param_no==3)
		return fixup_spve_null(param, 1);
	return 0;
}
Exemple #23
0
static int fixup_mq_add(void** param, int param_no)
{
    if(param_no==1 || param_no==2 || param_no==3) {
		return fixup_spve_null(param, 1);
    }

    LM_ERR("invalid parameter number %d\n", param_no);
    return E_UNSPEC;
}
Exemple #24
0
static int fixup_cpl_run_script3(void** param, int param_no)
{
	if (param_no==1 || param_no==2) {
		return fixup_cpl_run_script(param, param_no);
	} else if (param_no==2) {
		return fixup_spve_null(param, 1);
	}
	return 0;
}
Exemple #25
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;
}
Exemple #26
0
static int fixup_dlg_bridge(void** param, int param_no)
{
	if (param_no>=1 && param_no<=3) {
		return fixup_spve_null(param, 1);
	} else {
		LM_ERR("called with parameter idx %d\n", param_no);
		return E_BUG;
	}
	return 0;
}
Exemple #27
0
static int fixup_cancel_callid(void** param, int param_no)
{
	if (param_no==1 || param_no==2) {
		return fixup_spve_null(param, 1);
	}
	if (param_no==3) {
		return fixup_igp_null(param, 1);
	}
	return 0;
}
Exemple #28
0
static int fixup_reply_callid(void** param, int param_no)
{
	if (param_no==1 || param_no==2 || param_no==4) {
		return fixup_spve_null(param, 1);
	}
	if (param_no==3 || param_no==4) {
		return fixup_igp_null(param, 1);
	}
	return 0;
}
Exemple #29
0
static int fixup_allow_address(void** param, int param_no)
{
	if(param_no==1)
		return fixup_igp_null(param, 1);
	if(param_no==2)
		return fixup_spve_null(param, 1);
	if(param_no==3)
		return fixup_igp_null(param, 1);
	return 0;
}
Exemple #30
0
static int fixup_mt_match(void** param, int param_no)
{
	if(param_no==1 || param_no==2) {
		return fixup_spve_null(param, 1);
	}
	if (param_no != 3)	{
		LM_ERR("invalid parameter number %d\n", param_no);
		return E_UNSPEC;
	}
	return fixup_igp_null(param, 1);
}