/* split(value,'_',0,m_smtp->src_ip); split(value,'_',1,m_smtp->smtp_server); * / } } */ void create_http_redirect(KConfig &m_config,vector<http_redirect> &http_redirects) { const char *value; int index=0; char dst_model[100]; char file_model[100]; char hosts_model[256]; // int proxy_flag=0; char flags[100]; char *tmp; char *host; char *ptr; short port=0; http_redirect m_http_redirect; host_infomation m_hosts; while((value=m_config.GetValue("http_redirect",index++))){ if(strlen(value)<=0) break; memset(&m_http_redirect.dst,0,sizeof(m_http_redirect.dst)); m_http_redirect.file_ext=NULL; m_http_redirect.file_ext_revers=false; m_http_redirect.flag=0; m_http_redirect.hosts.clear(); if(sscanf(value,"%100s%100s%256s%100s",dst_model,file_model,hosts_model,flags)<4){ fprintf(stderr,"http_redirect value %s is error,right format is: dst_model file_model hosts_model proxy_flag.\n",value); m_config.DelName("http_redirect",index-1); continue; } // printf("dst_model=%s.\n",dst_model); if(!AddIPModel(dst_model,m_http_redirect.dst)){ m_config.DelName("http_redirect",index-1); continue; } if(strcmp(file_model,"*")!=0){ m_http_redirect.file_ext=strdup(file_model); } /* if(proxy_flag==0) m_http_redirect.proxy_flag=false; else m_http_redirect.proxy_flag=true; */ if(strstr(flags,"proxy")) SET(m_http_redirect.flag,USE_PROXY); if(strstr(flags,"log")) SET(m_http_redirect.flag,USE_LOG); tmp=hosts_model; // int i=m_http_redirect.hosts.size(); while((host=strtok_r(tmp,"|",&ptr))!=NULL){ tmp=NULL; memset(&m_hosts,0,sizeof(m_hosts)); m_hosts.port=split_host_port(host,':',sizeof(hosts_model)); m_hosts.ip=ConvertIP(host); m_http_redirect.hosts.push_back(m_hosts); } // i=m_http_redirect.hosts.size(); http_redirects.push_back(m_http_redirect); } /* std::vector<http_redirect>::iterator it; for(it=conf.m_http_redirects.begin();it!=conf.m_http_redirects.end();it++){ printf("dst=%x,mask=%x,dst_port=%d\n",(*it).dst.ip,(*it).dst.mask,(*it).dst.port); printf("file_ext=%s\n",(*it).file_ext); for(int i=0;i<(*it).hosts.size();i++){ printf("host=%x,host port=%d\n",(*it).hosts[i].ip,(*it).hosts[i].port); } } */ }