⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 servhtml.cpp

📁 这是和p2p相关的一份源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		html.startTableRow(row++);			html.startTagEnd("td","HTML Authentication");				html.startTag("td");					html.startSingleTagEnd("input type=\"radio\" name=\"auth\" value=\"cookie\" %s",servMgr->authType==ServMgr::AUTH_COOKIE?"checked=\"1\"":"");					html.startTagEnd("i","Cookies<br>");					html.startSingleTagEnd("input type=\"radio\" name=\"auth\" value=\"http\" %s",servMgr->authType==ServMgr::AUTH_HTTPBASIC?"checked=\"1\"":"");					html.startTagEnd("i","Basic HTTP");			html.end();		html.end();		html.startTableRow(row++);			html.startTagEnd("td","Cookies Expire");				html.startTag("td");					html.startSingleTagEnd("input type=\"radio\" name=\"expire\" value=\"session\" %s",servMgr->cookieList.neverExpire==false?"checked=\"1\"":"");					html.startTagEnd("i","End of session<br>");					html.startSingleTagEnd("input type=\"radio\" name=\"expire\" value=\"never\" %s",servMgr->cookieList.neverExpire==true?"checked=\"1\"":"");					html.startTagEnd("i","Never");			html.end();		html.end();	html.end();}	// -----------------------------------void Servent::addSecurityOptions(HTML &html){	html.startTag("table width=\"100%%\" border=\"0\" align=\"center\"");				html.startTag("tr bgcolor=\"#cccccc\" align=\"center\"");			html.startTagEnd("td colspan=\"3\" ","<b>Security</b>"); 		html.end();		int row=0;		html.startTableRow(row++);			html.startTagEnd("td","<b>Allow on port:</b>");			html.startTagEnd("td","<b>%d<b>",servMgr->serverHost.port);			html.startTagEnd("td","<b>%d<b>",servMgr->serverHost.port+1);		html.end();		unsigned int a1 = servMgr->allowServer1;		unsigned int a2 = servMgr->allowServer2;		// port 1		html.startTableRow(row++);			html.startTagEnd("td","HTML");			html.startTag("td");				html.startSingleTagEnd("input type=\"checkbox\" name=\"allowHTML1\" value=\"1\" %s",a1&ALLOW_HTML?"checked=\"1\"":"");				//html.addOptionBox("allowHTML1",s1->isAllowed(ALLOW_HTML)?0:1,"Allow","1","Deny","0",NULL);			html.end();			html.startTag("td");				html.startSingleTagEnd("input type=\"checkbox\" name=\"allowHTML2\" value=\"1\" %s",a2&ALLOW_HTML?"checked=\"1\"":"");				//html.addOptionBox("allowHTML2",s2->isAllowed(ALLOW_HTML)?0:1,"Allow","1","Deny","0",NULL);			html.end();		html.end();		html.startTableRow(row++);			html.startTagEnd("td","Broadcasting");			html.startTag("td");				html.startSingleTagEnd("input type=\"checkbox\" name=\"allowBroadcast1\" value=\"1\" %s",a1&ALLOW_BROADCAST?"checked=\"1\"":"");			html.end();			html.startTag("td");				html.startSingleTagEnd("input type=\"checkbox\" name=\"allowBroadcast2\" value=\"1\" %s",a2&ALLOW_BROADCAST?"checked=\"1\"":"");			html.end();		html.end();		html.startTableRow(row++);			html.startTagEnd("td","Servents");			html.startTag("td");				html.startSingleTagEnd("input type=\"checkbox\" name=\"allowServent1\" value=\"1\" %s",a1&ALLOW_SERVENT?"checked=\"1\"":"");			html.end();			html.startTag("td");				html.startSingleTagEnd("input type=\"checkbox\" name=\"allowServent2\" value=\"1\" %s",a2&ALLOW_SERVENT?"checked=\"1\"":"");			html.end();		html.end();		html.startTableRow(row++);			html.startTagEnd("td","Data");			html.startTag("td");				html.startSingleTagEnd("input type=\"checkbox\" name=\"allowData1\" value=\"1\" %s",a1&ALLOW_DATA?"checked=\"1\"":"");			html.end();			html.startTag("td");				html.startSingleTagEnd("input type=\"checkbox\" name=\"allowData2\" value=\"1\" %s",a2&ALLOW_DATA?"checked=\"1\"":"");			html.end();		html.end();	html.end();}// -----------------------------------void Servent::addConnectionsPage(HTML &html){	html.setRefresh(servMgr->refreshHTML);	addHeader(html,4);	html.startTag("table border=\"0\" width=\"95%%\" align=\"center\"");		html.startTag("form method=\"get\" action=\"/admin\"");			html.startTag("tr bgcolor=\"#cccccc\" align=\"center\"");				html.startTagEnd("td",""); 				html.startTagEnd("td","<b>Type<b>"); 				html.startTagEnd("td","<b>Status</b>"); 				html.startTagEnd("td","<b>Time</b>"); 				html.startTagEnd("td","<b>IP:Port</b>"); 				html.startTagEnd("td","<b>In</b>"); 				html.startTagEnd("td","<b>Out</b>"); 				html.startTagEnd("td","<b>Queue<br>(nrm/pri)</b>"); 				html.startTagEnd("td","<b>Route</b>"); 				html.startTagEnd("td","<b>Agent</b>"); 				html.startTagEnd("td","<b>Kbits/s</b>"); 			html.end();			int cnt=0;			for(int i=0; i<ServMgr::MAX_SERVENTS; i++)			{				if (servMgr->servents[i].type != Servent::T_NONE)				{					Servent *s = &servMgr->servents[i];					Host h = s->getHost();					{						int ip = h.ip;						int port = h.port;						Host h(ip,port);						char hostName[64];						h.toStr(hostName);						unsigned int tnum = 0;						char tdef = 's';						if (s->lastConnect)							tnum = sys->getTime()-s->lastConnect;						html.startTableRow(cnt++);						String tmp;						html.startTag("td");							html.startTag("b","");								sprintf(tmp.data,"/admin?cmd=stopserv&index=%d",i);								html.addLink(tmp.data,"Stop");							html.end();						html.end();						if (s->type == Servent::T_STREAM)						{							html.startTagEnd("td",s->getTypeStr());							html.startTagEnd("td",s->getStatusStr());							html.startTagEnd("td","%d%c",tnum,tdef);							html.startTagEnd("td",hostName);							html.startTagEnd("td","-");							html.startTagEnd("td","%d",s->currPos);							html.startTagEnd("td","-");							html.startTagEnd("td","-");						}else{							html.startTagEnd("td",s->getTypeStr());							html.startTagEnd("td",s->getStatusStr());							html.startTagEnd("td","%d%c",tnum,tdef);							html.startTagEnd("td",hostName);							html.startTagEnd("td","%d",s->gnuStream.packetsIn);							html.startTagEnd("td","%d",s->gnuStream.packetsOut);							html.startTagEnd("td","%d / %d",s->outPacketsNorm.numPending(),s->outPacketsPri.numPending());							int nr = s->seenIDs.numUsed();							unsigned int tim = sys->getTime()-s->seenIDs.getOldest();													String tstr;							tstr.setFromStopwatch(tim);							if (nr)								html.startTagEnd("td","%s (%d)",tstr.cstr(),nr);							else								html.startTagEnd("td","-");						}						html.startTagEnd("td",s->agent.cstr());						if (s->sock)						{							unsigned int tot = s->sock->bytesInPerSec+s->sock->bytesOutPerSec;							html.startTagEnd("td","%.1f",BYTES_TO_KBPS(tot));						}else							html.startTagEnd("td","-");						html.end();	// tr					}				}			}		html.end();	html.end();	addFooter(html);}// -----------------------------------static int compareNamesDown(ChanHitList **c2, ChanHitList **c1){return stricmp(c1[0]->info.name.cstr(),c2[0]->info.name.cstr());}static int compareBitratesDown(ChanHitList **c2, ChanHitList **c1){return c1[0]->info.bitrate-c2[0]->info.bitrate;}static int compareListenersDown(ChanHitList **c2, ChanHitList **c1){return c1[0]->numListeners()-c2[0]->numListeners();}static int compareHitsDown(ChanHitList **c2, ChanHitList **c1){return c1[0]->numHits()-c2[0]->numHits();}static int compareTypesDown(ChanHitList **c2, ChanHitList **c1){return stricmp(ChanInfo::getTypeStr(c1[0]->info.contentType),ChanInfo::getTypeStr(c2[0]->info.contentType));}static int compareGenresDown(ChanHitList **c2, ChanHitList **c1){return stricmp(c1[0]->info.genre.cstr(),c2[0]->info.genre.cstr());}static int compareNamesUp(ChanHitList **c1, ChanHitList **c2){return stricmp(c1[0]->info.name.cstr(),c2[0]->info.name.cstr());}static int compareBitratesUp(ChanHitList **c1, ChanHitList **c2){return c1[0]->info.bitrate-c2[0]->info.bitrate;}static int compareListenersUp(ChanHitList **c1, ChanHitList **c2){return c1[0]->numListeners()-c2[0]->numListeners();}static int compareHitsUp(ChanHitList **c1, ChanHitList **c2){return c1[0]->numHits()-c2[0]->numHits();}static int compareTypesUp(ChanHitList **c1, ChanHitList **c2){return stricmp(ChanInfo::getTypeStr(c1[0]->info.contentType),ChanInfo::getTypeStr(c2[0]->info.contentType));}static int compareGenresUp(ChanHitList **c1, ChanHitList **c2){return stricmp(c1[0]->info.genre.cstr(),c2[0]->info.genre.cstr());}static COMPARE_FUNC2 compareFuncs[]={	compareNamesDown,compareNamesUp,	compareBitratesDown,compareBitratesUp,	compareListenersDown,compareListenersUp,	compareHitsDown,compareHitsUp,	compareTypesDown,compareTypesUp,	compareGenresDown,compareGenresUp,};// -----------------------------------static void addChanInfoLink(HTML &html, ChanInfo &info,bool fromRelay){	char tmp[128];	char idstr[64];	info.id.toStr(idstr);	sprintf(tmp,"/admin?page=chaninfo&id=%s&relay=%d",idstr,fromRelay?1:0);	html.addLink(tmp,"Info"); }// -----------------------------------void addChannelInfo(HTML &html, ChanInfo &info, bool fromRelay, bool showPlay, bool showInfo, bool showURL, bool showRelay){	String name,url,desc;	name = info.name;	name.convertTo(String::T_HTML);	TrackInfo track = info.track;	track.convertTo(String::T_HTML);	url = info.url;	url.convertTo(String::T_ASCII);	desc = info.desc;	desc.convertTo(String::T_HTML);	char idStr[64];	info.id.toStr(idStr);	{		String tmp;		sprintf(tmp.data,"/pls/%s.m3u",idStr);		html.startTag("td align=\"left\"");			html.startTagEnd("b",name.cstr());			html.startTag("font size=\"-1\"","");				if (!desc.isEmpty())					html.startTagEnd("i","<br>%s",desc.cstr());				if (!track.artist.isEmpty() || !track.title.isEmpty())					html.startTagEnd("i","<br>(%s - %s)",track.artist.cstr(),track.title.cstr());			html.end();			html.startTag("font size=\"-1\"");				if (showPlay)				{					html.startTag("b","<br>");						html.addLink(tmp.data,"Play");					html.end();				}				if ((!fromRelay) && (showRelay))				{					html.startTag("b"," - ");						sprintf(tmp.data,"/admin?cmd=relay&id=%s",idStr);						html.addLink(tmp.data,"Relay");					html.end();				}				if (showRelay)				{					html.startTag("b"," - ");						addChanInfoLink(html,info,fromRelay);					html.end();				}				if ((!url.isEmpty()) && (showURL))				{					html.startTag("b"," - ");					if (strstr(url.cstr(),"mailto:"))					{						html.addLink(url.cstr(),"MAIL");					}else{						String tmp;						sprintf(tmp.data,"/admin?cmd=redirect&url=%s",url.cstr());						html.addLink(tmp.data,"WWW",true);					}					html.end();				}				if (fromRelay)				{					html.startTag("b"," - ");						sprintf(tmp.data,"/admin?cmd=bump&id=%s",idStr);						html.addLink(tmp.data,"Bump");					html.end();					html.startTag("b"," - ");						sprintf(tmp.data,"/admin?cmd=stop&id=%s",idStr);						html.addLink(tmp.data,"Stop");					html.end();				}			html.end();		html.end();	}}// -----------------------------------void Servent::addAllChannelsPage(HTML &html, SORT sort, bool dir, ChanInfo *info){	//while (chanMgr->numFinds) 	//	sys->sleepIdle();	//bool showFind = ((sys->getTime()-chanMgr->lastHit)>15) && (!chanMgr->searchActive);	bool showFind = true;	if (!showFind)		html.setRefresh(servMgr->refreshHTML);	addHeader(html,2);	//bool showFind = chanMgr->numFinds==0;		html.startTag("table border=\"0\" align=\"center\"");			//html.startTag("form method=\"get\" action=\"/admin\"");			html.startTag("form method=\"get\" action=\"/admin\"");			if (!showFind)			{				html.startTagEnd("input name=\"cmd\" type=\"hidden\" value=\"stopfind\"");									html.startTag("tr");					html.startTag("td");						html.startTagEnd("input name=\"stop\" type=\"submit\" value=\"  Stop Search \"");										html.end();				html.end();			}else			{				html.startTagEnd("input name=\"page\" type=\"hidden\" value=\"chans\"");									html.startTag("tr");					html.startTagEnd("td");					html.startTagEnd("td","Name");					html.startTagEnd("td","Genre");					html.startTagEnd("td","Bitrate");					html.startTagEnd("td","ID");				html.end();				html.startTag("tr");					html.startTag("td");						html.startTagEnd("input name=\"find\" type=\"submit\" value=\"  Search  \"");										html.end();					String name,genre;					int bitrate;					//ChanInfo *info = &chanMgr->searchInfo;										name = info->name;					genre = info->genre;					bitrate = info->bitrate;					name.convertTo(String::T_HTML);					genre.convertTo(String::T_HTML);					char idStr[64],brStr[64];					if (info->id.isSet())						info->id.toStr(idStr);					else						idStr[0] = 0;					if (bitrate)						sprintf(brStr,"%d",bitrate);					else						brStr[0] = 0;					html.startTag("td");						html.startSingleTagEnd("input name=\"name\" type=\"text\" value=\"%s\"",name.cstr());					html.end();					html.startTag("td");						html.startSingleTagEnd("input name=\"genre\" type=\"text\" value=\"%s\"",genre.cstr());					html.end();					html.startTag("td");						html.startSingleTagEnd("input name=\"bitrate\" size=\"5\"  type=\"text\" value=\"%s\"",brStr);					html.end();					html.startTag("td");						html.startSingleTagEnd("input name=\"id\" size=\"34\" type=\"text\" value=\"%s\"",idStr);					html.end();				html.end();	// tr			}								html.end();	// form		html.end();	// table		html.startTag("table border=\"0\" width=\"95%%\" align=\"center\"");#if 0			html.startTag("form method=\"get\" action=\"/admin\"");				html.startTag("tr");					html.startTagEnd("input name=\"play\" type=\"submit\" value=\"Play selected\"");										html.startTagEnd("input name=\"relay\" type=\"submit\" value=\"Relay selected\"");										html.startTagEnd("input name=\"cmd\" type=\"hidden\" value=\"hitlist\"");									html.end();#endif				html.startTag("tr bgcolor=\"#cccccc\" align=\"center\"");#if 0					html.startTagEnd("td width=\"1%%\"",""); #endif					html.startTagEnd("td","<b><a href=\"/admin?page=chans&sort=name&dir=%s\">Channel</a></b>",dir?"down":"up"); 					html.startTagEnd("td","<b><a href=\"/admin?page=chans&sort=genre&dir=%s\">Genre</a></b>",dir?"down":"up"); 					html.startTagEnd("td width=\"1%%\"","<b><a href=\"/admin?page=chans&sort=bitrate&dir=%s\">Bitrate (kb/s)</a></b>",dir?"down":"up"); 					html.startTagEnd("td width=\"1%%\"","<b><a href=\"/admin?page=chans&sort=type&dir=%s\">Type</a></b>",dir?"down":"up"); 					html.startTagEnd("td width=\"2%%\"","<b><a href=\"/admin?page=chans&sort=hosts&dir=%s\">Hits</a></b>",dir?"down":"up"); 				html.end();							ChanHitList *hits[ChanMgr::MAX_HITLISTS];				int numHits=0;				int i;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -