亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? handle_irc.c

?? 打魔獸戰(zhàn)網(wǎng)的都知道他是什么
?? C
?? 第 1 頁 / 共 4 頁
字號:
			irc_welcome(conn); /* only send the welcome if we have USER and NICK */	}	return 0;}static int _handle_user_command(t_connection * conn, int numparams, char ** params, char * text){	/* RFC 2812 says: */	/* <user> <mode> <unused> :<realname>*/	/* ircII and X-Chat say: */	/* mz SHODAN localhost :Marco Ziech */	/* BitchX says: */	/* mz +iws mz :Marco Ziech */	/* Don't bother with, params 1 and 2 anymore they don't contain what they should. */	char * user = NULL;	char * realname = NULL;	t_account * a;	if ((numparams>=3)&&(params[0])&&(text)) {	    user = params[0];	    realname = text;		if (conn_get_wol(conn) == 1) {			user = (char *)conn_get_loggeduser(conn);			realname = (char *)conn_get_loggeduser(conn);			        	if (conn_get_user(conn)) {		irc_send(conn,ERR_ALREADYREGISTRED,":You are already registred");        } 			else {				eventlog(eventlog_level_debug,__FUNCTION__,"[%d][** WOL **] got USER: user=\"%s\"",conn_get_socket(conn),user);                a = accountlist_find_account(user);                if (!a) {                   if((conn_get_wol(conn) == 1)) {                        t_account * tempacct;                        t_hash pass_hash;                        char * pass = "supersecret";                        int j;                        			for (j=0; j<strlen(pass); j++)            				if (isupper((int)pass[j])) pass[j] = tolower((int)pass[j]);                        			bnet_hash(&pass_hash,strlen(pass),pass);                        			tempacct = accountlist_create_account(user,hash_get_str(pass_hash));            			if (!tempacct) {                            return 0;            			}                   }                }			conn_set_user(conn,user);			conn_set_owner(conn,realname);			if (conn_get_loggeduser(conn))				irc_welcome(conn); /* only send the welcome if we have USER and NICK */	    	}    	} 		else {			if (conn_get_user(conn)) {				irc_send(conn,ERR_ALREADYREGISTRED,":You are already registred");			} 			else {				eventlog(eventlog_level_debug,__FUNCTION__,"[%d] got USER: user=\"%s\" realname=\"%s\"",conn_get_socket(conn),user,realname);				conn_set_user(conn,user);				conn_set_owner(conn,realname);				if (conn_get_loggeduser(conn))					irc_welcome(conn); /* only send the welcome if we have USER and NICK */    		}		}   	} 	else {	    irc_send(conn,ERR_NEEDMOREPARAMS,":Too few arguments to USER");    	}	return 0;}static int _handle_ping_command(t_connection * conn, int numparams, char ** params, char * text){	if((conn_get_wol(conn) == 1))	    return 0;	/* Dizzy: just ignore this because RFC says we should not reply client PINGs	 * NOTE: RFC2812 doesn't seem to be very expressive about this ... */	if (numparams)	    irc_send_pong(conn,params[0]);	else	    irc_send_pong(conn,text);	return 0;}static int _handle_pong_command(t_connection * conn, int numparams, char ** params, char * text){	if((conn_get_wol(conn) == 1))	    return 0;		/* NOTE: RFC2812 doesn't seem to be very expressive about this ... */	if (conn_get_ircping(conn)==0) {	    eventlog(eventlog_level_warn,__FUNCTION__,"[%d] PONG without PING",conn_get_socket(conn));	} 	else {	    unsigned int val = 0;	    char * sname;	    if (numparams>=1) {  	        val = strtoul(params[0],NULL,10);		sname = params[0];	    }	    else if (text) {	    	val = strtoul(text,NULL,10);		sname = text;	    }	    else {		val = 0;		sname = 0;	    }	    if (conn_get_ircping(conn) != val) {	    	if ((!(sname)) || (strcmp(sname,server_get_hostname())!=0)) {			/* Actually the servername should not be always accepted but we aren't that pedantic :) */			eventlog(eventlog_level_warn,__FUNCTION__,"[%d] got bad PONG (%u!=%u && %s!=%s)",conn_get_socket(conn),val,conn_get_ircping(conn),sname,server_get_hostname());			return -1;		}	    }	    conn_set_latency(conn,get_ticks()-conn_get_ircping(conn));	    eventlog(eventlog_level_debug,__FUNCTION__,"[%d] latency is now %d (%u-%u)",conn_get_socket(conn),get_ticks()-conn_get_ircping(conn),get_ticks(),conn_get_ircping(conn));	    conn_set_ircping(conn,0);	}	return 0;}static int _handle_pass_command(t_connection * conn, int numparams, char ** params, char * text){	if ((!conn_get_ircpass(conn))&&(conn_get_state(conn)==conn_state_bot_username)) {		t_hash h;	    if (numparams>=1) {			bnet_hash(&h,strlen(params[0]),params[0]);			conn_set_ircpass(conn,hash_get_str(h));	    } 		else			irc_send(conn,ERR_NEEDMOREPARAMS,":Too few arguments to PASS");    } 	else {	    eventlog(eventlog_level_warn,__FUNCTION__,"[%d] client tried to set password twice with PASS",conn_get_socket(conn));    }	return 0;}static int _handle_privmsg_command(t_connection * conn, int numparams, char ** params, char * text){	if ((numparams>=1)&&(text)) 	{	    int i;	    char ** e;		    e = irc_get_listelems(params[0]);	    /* FIXME: support wildcards! */				/* start amadeo: code was sent by some unkown fellow of pvpgn (maybe u wanna give us your name 		   for any credits), it adds nick-registration, i changed some things here and there... */	    for (i=0;((e)&&(e[i]));i++) {    		if (strcasecmp(e[i],"NICKSERV")==0) { 				char * pass;				char * p;			 				pass = strchr(text,' '); 				if (pass) 		    		*pass++ = '\0';				if (strcasecmp(text,"identify")==0) {				    switch (conn_get_state(conn)) {					case conn_state_bot_password:					{							if (pass) { 		    				t_hash h; 						for (p = pass; *p; p++)						    if (isupper((int)*p)) *p = tolower(*p); 		    				bnet_hash(&h,strlen(pass),pass); 		    				irc_authenticate(conn,hash_get_str(h)); 					    }							else {								irc_send_cmd(conn,"NOTICE",":Syntax: IDENTIFY <password> (max 16 characters)");					    }					    break;					}					case conn_state_loggedin:					{					    irc_send_cmd(conn,"NOTICE",":You don't need to IDENTIFY");					    break;					}					default: ;					    eventlog(eventlog_level_trace,__FUNCTION__,"got /msg in unexpected connection state (%s)",conn_state_get_str(conn_get_state(conn)));				    }				} 				else if (strcasecmp(text,"register")==0) {					unsigned int j;					t_hash       passhash;					t_account  * temp;					char         msgtemp[MAX_MESSAGE_LEN];					char       * username=(char *)conn_get_loggeduser(conn);																if (account_check_name(username)<0) {						message_send_text(conn,message_type_error,conn,"Account name contains invalid symbol!");						break;					}					if (!pass || pass[0]=='\0' || (strlen(pass)>16) ) {						message_send_text(conn,message_type_error,conn,":Syntax: REGISTER <password> (max 16 characters)");						break;					}											for (j=0; j<strlen(pass); j++)						if (isupper((int)pass[j])) pass[j] = tolower((int)pass[j]);						bnet_hash(&passhash,strlen(pass),pass);						sprintf(msgtemp,"Trying to create account \"%s\" with password \"%s\"",username,pass);					message_send_text(conn,message_type_info,conn,msgtemp);										temp = accountlist_create_account(username,hash_get_str(passhash));					if (!temp) {						message_send_text(conn,message_type_error,conn,"Failed to create account!");						eventlog(eventlog_level_debug,__FUNCTION__,"[%d] account \"%s\" not created (failed)",conn_get_socket(conn),username);						conn_unget_chatname(conn,username);						break;					}					sprintf(msgtemp,"Account "UID_FORMAT" created.",account_get_uid(temp));					message_send_text(conn,message_type_info,conn,msgtemp);					eventlog(eventlog_level_debug,__FUNCTION__,"[%d] account \"%s\" created",conn_get_socket(conn),username);					conn_unget_chatname(conn,username);				}				else {					char tmp[MAX_IRC_MESSAGE_LEN+1];					 					irc_send_cmd(conn,"NOTICE",":Invalid arguments for NICKSERV");					sprintf(tmp,":Unrecognized command \"%s\"",text);					irc_send_cmd(conn,"NOTICE",tmp); 				} 	        } 			else if (conn_get_state(conn)==conn_state_loggedin) {				if (e[i][0]=='#') {					/* channel message */					t_channel * channel;					if ((channel = channellist_find_channel_by_name(irc_convert_ircname(e[i]),NULL,NULL))) {						if ((strlen(text)>=9)&&(strncmp(text,"\001ACTION ",8)==0)&&(text[strlen(text)-1]=='\001')) { 							/* at least "\001ACTION \001" */							/* it's a CTCP ACTION message */							text = text + 8;							text[strlen(text)-1] = '\0';							channel_message_send(channel,message_type_emote,conn,text);						} 						else							channel_message_send(channel,message_type_talk,conn,text);					}					else {						irc_send(conn,ERR_NOSUCHCHANNEL,":No such channel");					}					    	    } 				else {					/* whisper */					t_connection * user;					if ((user = connlist_find_connection_by_accountname(e[i]))) 					{						message_send_text(user,message_type_whisper,conn,text);					}					else 					{						irc_send(conn,ERR_NOSUCHNICK,":No such user");					}	    	    }	        }	    }	    if (e)	         irc_unget_listelems(e);	} 	else	    irc_send(conn,ERR_NEEDMOREPARAMS,":Too few arguments to PRIVMSG");	return 0;}static int _handle_notice_command(t_connection * conn, int numparams, char ** params, char * text){	if ((numparams>=1)&&(text)) {	    int i;	    char ** e;		    e = irc_get_listelems(params[0]);	    /* FIXME: support wildcards! */			    for (i=0;((e)&&(e[i]));i++) {			if (conn_get_state(conn)==conn_state_loggedin) {				t_connection * user;				if ((user = connlist_find_connection_by_accountname(e[i]))) {					irc_send_cmd2(user,conn_get_loggeduser(conn),"NOTICE",conn_get_loggeduser(user),text);				}				else {					irc_send(conn,ERR_NOSUCHNICK,":No such user");				}	        	}	    	}	    	if (e)	        irc_unget_listelems(e);	} 	else	    irc_send(conn,ERR_NEEDMOREPARAMS,":Too few arguments to PRIVMSG");	return 0;}static int _handle_who_command(t_connection * conn, int numparams, char ** params, char * text){	if (numparams>=1) {	    int i;	    char ** e;	    e = irc_get_listelems(params[0]);	    for (i=0; ((e)&&(e[i]));i++) {	    	irc_who(conn,e[i]);	    }	    irc_send(conn,RPL_ENDOFWHO,":End of WHO list"); /* RFC2812 only requires this to be sent if a list of names was given. Undernet seems to always send it, so do we :) */        if (e)			irc_unget_listelems(e);	} 	else 	    irc_send(conn,ERR_NEEDMOREPARAMS,":Too few arguments to WHO");	return 0;}static int _handle_list_command(t_connection * conn, int numparams, char ** params, char * text){    char temp[MAX_IRC_MESSAGE_LEN];	irc_send(conn,RPL_LISTSTART,"Channel :Users  Name"); /* backward compatibility */	if((conn_get_wol(conn) == 1)) { 	    t_elem const * curr; 	    	    if(strcmp(params[0], "0") == 0) {			/* HACK: Currently, this is the best way to set the game type... */			conn_wol_set_game_type(conn,atoi(params[1]));			    			eventlog(eventlog_level_debug,__FUNCTION__,"[** WOL **] LIST [Channel]");   	    LIST_TRAVERSE_CONST(channellist(),curr) 		{    	    		t_channel const * channel = elem_get_data(curr);	        	char const * tempname;	        	tempname = irc_convert_channel(channel);				if(strstr(tempname,"Lob") != NULL) {					eventlog(eventlog_level_debug,__FUNCTION__,"[** WOL **] LIST [Channel: \"Lob\"] (%s)",tempname);					if (strlen(tempname)+1+20+1+1<MAX_IRC_MESSAGE_LEN)						sprintf(temp,"%s %u 0 388",tempname,channel_get_length(channel));   					else   						eventlog(eventlog_level_warn,__FUNCTION__,"LISTREPLY length exceeded");					irc_send(conn,RPL_CHANNEL,temp);				}    		}	    }	    /**        *  18 = Tiberian Sun game channels, 21 = Red alert 1 channels, 		*  33 = Red alert 2 channels, 41 = Yuri's Revenge		*/	    else if((strcmp(params[0], "18") == 0) ||				(strcmp(params[0], "21") == 0) ||				(strcmp(params[0], "33") == 0) ||				(strcmp(params[0], "41"))) {    		eventlog(eventlog_level_debug,__FUNCTION__,"[** WOL **] LIST [Game]");   			LIST_TRAVERSE_CONST(channellist(),curr) 			{    		    t_channel const * channel = elem_get_data(curr);			    t_connection * m;        	    char const * tempname;				char * topic = channel_get_topic(channel_get_name(channel));        	    tempname = irc_convert_channel(channel);				if(strstr(tempname,"_game") != NULL) {					m = channel_get_first(channel);					if(channel_wol_get_game_type(channel) == conn_wol_get_game_type(conn)) {						eventlog(eventlog_level_debug,__FUNCTION__,"[** WOL **] List [Channel: \"_game\"] (%s)",tempname);						if (topic) {	    						eventlog(eventlog_level_debug,__FUNCTION__,"[** WOL **] List [Channel: \"_game\"] %s %u 0 %u %u 0 %u 128::%s",tempname,										 channel_get_length(channel),channel_wol_get_game_type(channel),channel_wol_get_game_tournament(channel),										 channel_wol_get_game_ownerip(channel),topic);								/**								*  The layout of the game list entry is something like this:                                *								*   #game_channel_name users unknown gameType gameIsTournment unknown longIP 128::topic								*/	        		if (strlen(tempname)+1+20+1+1+strlen(topic)<MAX_IRC_MESSAGE_LEN)	    							sprintf(temp,"%s %u 0 %u %u 0 %u 128::%s",tempname,											channel_get_length(channel),channel_wol_get_game_type(channel),channel_wol_get_game_tournament(channel),											channel_wol_get_game_ownerip(channel),topic);	        		else	            			eventlog(eventlog_level_warn,__FUNCTION__,"LISTREPLY length exceeded");			}						else {        						if (strlen(tempname)+1+20+1+1<MAX_IRC_MESSAGE_LEN)	    							sprintf(temp,"%s %u 0 %u %u 0 %u 128::",tempname,channel_get_length(channel),channel_wol_get_game_type(channel),											channel_wol_get_game_tournament(channel),channel_wol_get_game_ownerip(channel));			else

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.亚洲精品| 2024国产精品| 日韩天堂在线观看| 日韩精品一区国产麻豆| 国产精品污www在线观看| |精品福利一区二区三区| 亚洲h精品动漫在线观看| 久久国产精品一区二区| 成人高清在线视频| 精品视频一区 二区 三区| 欧美一区二区精品久久911| 久久久久久综合| 亚洲精品视频在线看| 蜜臀久久99精品久久久久久9| 国产麻豆精品一区二区| 一本色道久久加勒比精品| 69久久夜色精品国产69蝌蚪网| 日韩三级高清在线| 亚洲人成网站精品片在线观看 | 在线亚洲一区二区| 日韩欧美在线1卡| 国产精品每日更新| 免费观看30秒视频久久| 成人国产精品免费观看| 日韩一卡二卡三卡四卡| 亚洲男人的天堂网| 国产一区二区三区免费在线观看| 日本韩国欧美在线| 国产欧美综合在线观看第十页| 亚洲h精品动漫在线观看| 国产美女主播视频一区| 欧美人与禽zozo性伦| 中文字幕国产精品一区二区| 亚洲成年人影院| 成人精品亚洲人成在线| 91精品国产黑色紧身裤美女| 综合分类小说区另类春色亚洲小说欧美| 日韩国产成人精品| 91欧美一区二区| 久久免费偷拍视频| 免费不卡在线观看| 日本乱码高清不卡字幕| 亚洲一区二区av在线| 国产大片一区二区| 欧美一区二区三区视频在线| 亚洲免费色视频| 国产a视频精品免费观看| 777久久久精品| 亚洲永久精品国产| www.欧美色图| 亚洲国产成人在线| 麻豆精品久久久| 欧美美女网站色| 亚洲综合一区二区| 99久久免费视频.com| 国产日韩影视精品| 久久激情五月激情| 欧美日韩亚洲国产综合| 亚洲区小说区图片区qvod| 国产成人一区在线| 久久亚洲免费视频| 久久99久久久久久久久久久| 欧美日韩国产精品成人| 亚洲一区在线看| 色屁屁一区二区| 亚洲欧洲精品成人久久奇米网 | 日韩你懂的电影在线观看| 午夜av区久久| 欧美日韩亚洲国产综合| 亚洲一区二区成人在线观看| 欧美亚洲国产一区二区三区va| 成人欧美一区二区三区黑人麻豆 | 日韩欧美黄色影院| 热久久久久久久| 欧美一区二区视频在线观看| 日本一不卡视频| 欧美高清一级片在线| 天天色综合天天| 538prom精品视频线放| 日本vs亚洲vs韩国一区三区| 欧美精选一区二区| 日本不卡免费在线视频| 精品理论电影在线观看 | 日韩欧美另类在线| 狠狠色丁香九九婷婷综合五月| ww亚洲ww在线观看国产| 国产一区二区三区久久悠悠色av| 久久久久久久久久电影| 懂色av中文字幕一区二区三区| 国产精品美女视频| 91蜜桃在线观看| 亚洲成a天堂v人片| 欧美一级高清片| 精品无人码麻豆乱码1区2区| 久久综合色婷婷| www.亚洲免费av| 一区二区成人在线视频| 91精品国产乱| 国产69精品久久777的优势| 亚洲天堂久久久久久久| 欧美色倩网站大全免费| 麻豆极品一区二区三区| 国产日韩欧美综合在线| 一本色道久久综合亚洲aⅴ蜜桃 | 久久综合九色综合97婷婷女人| 国产曰批免费观看久久久| 国产精品人人做人人爽人人添| 91浏览器打开| 免费久久精品视频| 国产日韩欧美在线一区| 91香蕉视频污| 日韩国产精品久久久| 国产网站一区二区三区| 色一区在线观看| 热久久国产精品| 国产色一区二区| 欧美色成人综合| 国产自产高清不卡| 亚洲免费电影在线| 日韩一二三四区| www.99精品| 日本女人一区二区三区| 国产婷婷色一区二区三区四区 | 日韩在线一区二区三区| 国产亚洲一二三区| 91电影在线观看| 狠狠色综合播放一区二区| 亚洲综合一二三区| 国产午夜精品一区二区三区四区| 欧美人与禽zozo性伦| 粉嫩久久99精品久久久久久夜| 亚洲bt欧美bt精品| 国产日韩欧美综合一区| 337p亚洲精品色噜噜| 国产精品一区免费视频| 亚洲国产成人av网| 国产精品私人自拍| 日韩你懂的在线播放| 欧美视频一区二区三区| 国产成人免费视频精品含羞草妖精| 一卡二卡三卡日韩欧美| 国产精品色婷婷久久58| 日韩精品一区二| 欧美日韩三级一区| 91丨porny丨国产| 国产乱码精品一区二区三| 偷拍自拍另类欧美| 亚洲美女电影在线| 国产欧美视频一区二区| 日韩一区二区免费电影| 播五月开心婷婷综合| 理论电影国产精品| 午夜精品一区在线观看| 中文字幕一区三区| 久久九九久久九九| 日韩免费性生活视频播放| 欧美日韩综合色| 91久久精品一区二区| 成人动漫一区二区| 韩国av一区二区三区| 青椒成人免费视频| 亚洲v中文字幕| 亚洲综合无码一区二区| 成人免费一区二区三区视频| 国产欧美视频在线观看| www国产精品av| 日韩免费性生活视频播放| 欧美一区二区三区成人| 欧美日韩www| 欧美少妇xxx| 欧美性色aⅴ视频一区日韩精品| 波多野结衣中文一区| 成人深夜视频在线观看| 丰满亚洲少妇av| 国产成人日日夜夜| 成人免费的视频| 成人精品小蝌蚪| av日韩在线网站| 91网站在线观看视频| 91在线视频网址| av中文字幕不卡| 99riav久久精品riav| 91在线视频18| 色综合一区二区三区| 色婷婷av一区二区三区gif| 91女厕偷拍女厕偷拍高清| 日本电影欧美片| 欧美撒尿777hd撒尿| 国产美女一区二区| 国产中文字幕精品| 国产毛片精品视频| 波多野结衣中文字幕一区| 91论坛在线播放| 欧美日精品一区视频| 日韩亚洲欧美一区| 精品国精品国产| 日本一区二区视频在线观看| 国产精品福利一区| 一区二区三区在线播| 丝袜美腿高跟呻吟高潮一区|