Beispiel #1
0
void AddRedirect_LOG(char *libname,char *funcname,LPVOID newFunction){
	if(ini->debuglevel>2) log_install("HOOKING",libname,funcname);
	AddRedirect(libname,funcname,newFunction);
}
Beispiel #2
0
bool ProcRedirect(vector<pair<string,string> > &vt_param,string &errInfo)
{
	WriteParam(redirect,vt_param,"");

	string userName = GetValue(USERNAME,vt_param);
	string url = GetValue(URL,vt_param);

	if(!ValidateParamEmpty(userName.c_str()))
	{
		errInfo.append("ftpName not valid.");
		WriteLog(redirect,ERROR,"ftpName invalid");
		return false;
	}

	CVirtualHost *virtualHost;
	bool success = InitEnv(&virtualHost,userName,redirect);

	if(success)
	{
		if(url.empty())
		{
			string tmp = "";
			DeleteRedirect(tmp,virtualHost);
		}
		else
		{
			vector<string> vt_url;
			vector<string> vt_from;
			vector<string> vt_tmp;
			string to = "";
			SplitByComas(url,vt_url,';');
			int url_size = vt_url.size();
			for(int i = 0; i < url_size; i++)
			{
				to = "";
				vt_tmp.clear();
				SplitByComas(vt_url[i],vt_tmp,':');
				vt_from.clear();	
				SplitByComas(vt_tmp[0],vt_from);
				if(vt_tmp.size() > 1)
					to = vt_tmp[1];
				int size = vt_from.size();
				for(int k = 0; k < size; k++)
				{
					if(!to.empty())
						AddRedirect(vt_from[k],to,virtualHost);
					else
						DeleteRedirect(vt_from[k],virtualHost);
				}
			}
		}
	}
	if(success)
		success = virtualHost->SaveFile();

	if(success)
		WriteParam(redirect,vt_param,"success");
	else
	{
		errInfo.append("failed to process your resuest.");
		WriteParam(redirect,vt_param,"failed. write the config file failed.");
	}
	CVirtualHost::ReleaseVirtualHost(userName);
	return success;
}