void AddRedirect_LOG(char *libname,char *funcname,LPVOID newFunction){ if(ini->debuglevel>2) log_install("HOOKING",libname,funcname); AddRedirect(libname,funcname,newFunction); }
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; }