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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? brocas.c

?? 飛鴿傳書for linux X圖形界面下源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
	if (net != NULL) {		memset(net, '\0', sizeof(*net));		net->sin.sin_family = AF_INET;		net->sin.sin_addr.s_addr = inet_addr(broad);		net->sin.sin_port = htons(bro_port);	}	return 0;}/* network_add */static intnetwork_bro_send(int so, unsigned long cmd, const char *msg){	union saddr *sin = DYNA_BUF(&dynet);	if (sin != NULL) {		int i, err;		for (i = 0; i < DYNA_USED(&dynet); i++) {			err = send_msg(so, sin, cmd, msg);			sin++;		}/* for */	}	return 0;}/* network_bro_send *//* */intsend_IPMSG_READMSG(struct maddr_t *replyto, unsigned long pkno){	char lbuf[20];	sprintf(lbuf, "%lu", pkno);	send_msg(replyto->m_so, &replyto->m_saddr, IPMSG_READMSG, lbuf);	return 0;}/* send_IPMSG_READMSG *//* * 彈瓢箕など、BR_ENTRY をブロ〖ドキャストする。 */intsend_IPMSG_BR_ENTRY(void){	network_bro_send(bro_socket, IPMSG_BR_ENTRY, "");	return 0;}/* send_IPMSG_BR_ENTRY *//* * 姜位箕、BR_EXIT をブロ〖ドキャストする。 */intsend_IPMSG_BR_EXIT(void){	network_bro_send(bro_socket, IPMSG_BR_EXIT, "");	return 0;}/* send_IPMSG_BR_EXIT *//* * BR_ENTRY を減け艱ったら、それに ANSENTRY を手す。 */static intreply_IPMSG_ANSENTRY(int so, const union saddr *from){	int err = 0;	if (!bro_disabled)		err = send_msg(so, from, IPMSG_ANSENTRY, "");	return err;}/* reply_IPMSG_ANSENTRY *//* * 減慨メッセ〖ジにオプション IPMSG_SENDCHECKOPT がついていたら * 澄千パケットを手す。 */static intreply_IPMSG_RECVMSG(int so, const union saddr *from, unsigned long pkno){	char lbuf[32];	int err;	sprintf(lbuf, "%lu", pkno);	err = send_msg(so, from, IPMSG_RECVMSG, lbuf);	return err;}/* reply_IPMSG_RECVMSG *//* * 減け艱ったパケットの流り緘は、すべて嘆漣リストに判峽する。 */static struct ns_t *add_ns_entry(const struct maddr_t *ma, const char *host, const char *nick, const char *aux){	struct ns_t *ns = ns_lookup(ma);	if (ns == NULL) {		ns = ns_new(ma);	}	if (ns != NULL) {		ns->ns_maddr = *ma;		strncpyz(ns->ns_host, host, sizeof(ns->ns_host));		if (nick != NULL)			strncpyz(ns->ns_nick, nick, sizeof(ns->ns_nick));		if (ns->ns_nick[0] == '\0' && aux != NULL)			strncpyz(ns->ns_nick, aux, sizeof(ns->ns_nick));		call_cback(BRO_EV_LIST_CHANGED, NULL);	}	return ns;}/* add_ns_entry */static voiddelete_ns_entry(const struct maddr_t *ma){	ns_free(ma);}/* delete_ns_entry *//* * パケット借妄嬸はここから [ */static intrecv_IPMSG_NOOPERATION(const struct packet_t *pk){	return 0;}/* recv_IPMSG_NOOPERATION *//* * 糠憚ノ〖ドが惟ち懼がった * pk->pk_msg == ニックネ〖ム */static intrecv_IPMSG_BR_ENTRY(const struct packet_t *pk){	char *nick = pk->pk_msg[0] != '\0' ? pk->pk_msg : pk->pk_user;	reply_IPMSG_ANSENTRY(pk->pk_maddr.m_so, &pk->pk_maddr.m_saddr);	add_ns_entry(&pk->pk_maddr, pk->pk_host, nick, NULL);	call_cback(BRO_EV_LIST_CHANGED, NULL);	return 0;}/* recv_IPMSG_BR_ENTRY *//* * ノ〖ド姜位した。 * pk->pk_msg == ニックネ〖ム */static intrecv_IPMSG_BR_EXIT(const struct packet_t *pk){	delete_ns_entry(&pk->pk_maddr);	call_cback(BRO_EV_LIST_CHANGED, NULL);	return 0;}/* recv_IPMSG_BR_EXIT *//* * BR_ENTRY の手禍が丸た。 * pk->pk_msg == ニックネ〖ム */static intrecv_IPMSG_ANSENTRY(const struct packet_t *pk){	char *nick = pk->pk_msg[0] != '\0' ? pk->pk_msg : pk->pk_user;	add_ns_entry(&pk->pk_maddr, pk->pk_host, nick, NULL);	call_cback(BRO_EV_LIST_CHANGED, NULL);	return 0;}/* recv_IPMSG_ANSENTRY */static intrecv_IPMSG_ABSENCE(const struct packet_t *pk){	return 0;}/* recv_IPMSG_ABSENCE */static intrecv_IPMSG_BR_ISGETLIST(const struct packet_t *pk){	return 0;}/* recv_IPMSG_BR_ISGETLIST */static intrecv_IPMSG_OKGETLIST(const struct packet_t *pk){	return 0;}/* recv_IPMSG_OKGETLIST */static intrecv_IPMSG_GETLIST(const struct packet_t *pk){	return 0;}/* recv_IPMSG_GETLIST */static intrecv_IPMSG_ANSLIST(const struct packet_t *pk){	return 0;}/* recv_IPMSG_ANSLIST *//* * メッセ〖ジが葡いた。 */static intrecv_IPMSG_SENDMSG(const struct packet_t *pk){	char *nick = pk->pk_user;	struct ns_t *ns = add_ns_entry(&pk->pk_maddr, pk->pk_host, NULL, nick);	unsigned long opt = GET_OPT(pk->pk_cmd);	int ignore = 0;	if (ns != NULL) {		nick = ns->ns_nick;		rcv_delete(&ns->ns_rcv);		if (rcv_id_lookup(&ns->ns_rcv, pk->pk_no) < 0)			rcv_add(&ns->ns_rcv, pk->pk_no);		else {			rcv_raise(&ns->ns_rcv, pk->pk_no);			ignore = 1;		}	}	if ((opt & IPMSG_SENDCHECKOPT) && !(opt & (IPMSG_BROADCASTOPT | IPMSG_AUTORETOPT)))		reply_IPMSG_RECVMSG(pk->pk_maddr.m_so, &pk->pk_maddr.m_saddr, pk->pk_no);	if (!ignore) {#define BRO_COLUMNS 58		size_t wraplen = wrap_euclen(pk->pk_msg, BRO_COLUMNS);		char *wrapbuf = malloc(wraplen + 1);		if (wrapbuf != NULL) {			char idname[USERNAME_MAX + HOSTNAME_MAX];			struct msg_data_t md;			wrap_euc(wrapbuf, pk->pk_msg, BRO_COLUMNS);			strtrim(wrapbuf);			strcat(strcat(strncpyz(idname, nick, USERNAME_MAX), "@"), ns->ns_host);			md.md_replyto = (void *)&pk->pk_maddr;			md.md_msg = wrapbuf;			md.md_icon = pk->pk_icon;			md.md_opt = opt;			md.md_pkno = pk->pk_no;			md.md_from = idname;			call_cback(BRO_EV_RECV_MESSAGE, &md);						free(wrapbuf);		}		else			error("malloc");	}	return 0;}/* recv_IPMSG_SENDMSG *//* * 流ったメッセ〖ジの減慨澄千パケットが耽って丸た。 * msg == 流ったメッセ〖ジの戎規 */static intrecv_IPMSG_RECVMSG(const struct packet_t *pk){	struct xq_t *xq = xq_lookup(strtol(pk->pk_msg, NULL, 10));	if (xq != NULL) {		char lbuf[80];		xq_deq(xq);		sprintf(lbuf, "%16s.%d ", inet_ntoa(xq->xq_saddr.sin.sin_addr), ntohs(xq->xq_saddr.sin.sin_port));		call_cback(BRO_EV_RECV_ACK, lbuf);		free(xq->xq_buf);		free(xq);	}	return 0;}/* recv_IPMSG_RECVMSG */static intrecv_IPMSG_READMSG(const struct packet_t *pk){	return 0;}/* recv_IPMSG_READMSG */static intrecv_IPMSG_DELMSG(const struct packet_t *pk){	return 0;}/* recv_IPMSG_DELMSG */static intrecv_IPMSG_GETINFO(const struct packet_t *pk){	return 0;}/* recv_IPMSG_GETINFO */static intrecv_IPMSG_SENDINFO(const struct packet_t *pk){	return 0;}/* recv_IPMSG_SENDINFO *//* * */static intdo_cmd(struct packet_t *pk){	unsigned long cmd = GET_MODE(pk->pk_cmd);	switch (cmd) {	case IPMSG_NOOPERATION: /* 痰拎侯 */		recv_IPMSG_NOOPERATION(pk);		break;	case IPMSG_BR_ENTRY: /* サ〖ビスにエントリ〖∈彈瓢箕にBroadcast∷ */		recv_IPMSG_BR_ENTRY(pk);		break;	case IPMSG_BR_EXIT: /* サ〖ビスから卻ける∈姜位箕にBroadcast∷ */		recv_IPMSG_BR_EXIT(pk);		break;	case IPMSG_ANSENTRY: /* サ〖ビスにエントリ〖を千急 */		recv_IPMSG_ANSENTRY(pk);		break;	case IPMSG_BR_ABSENCE: /* 稍哼モ〖ド恃構 */		recv_IPMSG_ABSENCE(pk);		break;	case IPMSG_BR_ISGETLIST: /* ホストリスト流叫材墻メンバの玫瑚 */		recv_IPMSG_BR_ISGETLIST(pk);		break;	case IPMSG_OKGETLIST: /* ホストリスト流叫材墻奶夢 */		recv_IPMSG_OKGETLIST(pk);		break;	case IPMSG_GETLIST: /* ホストリスト流叫妥滇 */		recv_IPMSG_GETLIST(pk);		break;	case IPMSG_ANSLIST: /* ホストリスト流叫 */		recv_IPMSG_ANSLIST(pk);		break;	case IPMSG_SENDMSG: /* メッセ〖ジの流慨 */		recv_IPMSG_SENDMSG(pk);		break;	case IPMSG_RECVMSG: /* メッセ〖ジの減慨澄千 */		recv_IPMSG_RECVMSG(pk);		break;	case IPMSG_READMSG: /* 甚今の倡甚奶夢 */		recv_IPMSG_READMSG(pk);		break;	case IPMSG_DELMSG: /*  甚今撬逮奶夢 */		recv_IPMSG_DELMSG(pk);		break;	case IPMSG_GETINFO:		recv_IPMSG_GETINFO(pk);		break;	case IPMSG_SENDINFO:		recv_IPMSG_SENDINFO(pk);		break;	}/* switch */	return 0;}/* do_cmd */static struct packet_t *decode_packet(char *lbuf, size_t size, struct packet_t *pk){	/* Ver(1)¨Packet戎規 : 極User嘆 : 極Host嘆 : Command戎規 : 納裁嬸*/	struct packet_t *ret = NULL;	char *user, *host, *msg;	sscanf(lbuf, "%lu:%lu:%*[^:]:%*[^:]:%lu", &pk->pk_ver, &pk->pk_no, &pk->pk_cmd);	user = strnchr(lbuf, ':', 2);	if (user != NULL) {		user++;		host = strnchr(lbuf, ':', 3);		if (host != NULL) {			host++;			msg = strnchr(lbuf, ':', 5);			if (msg != NULL) {				msg++;				*strchr(user, ':') = '\0';				*strchr(host, ':') = '\0';				pk->pk_user = user;				pk->pk_host = host;				pk->pk_msg = msg;				ret = pk;			}		}	}	return ret;}/* decode_packet *//* * パケットが葡いた箕鈣び叫される。 */intbro_recv_packet(int so){	struct packet_t pk;	char sbuf[MESSAGE_MAX];	union saddr *from = &pk.pk_maddr.m_saddr;	ssize_t size = p_get(so, from, 0, sbuf, sizeof(sbuf) - 1);	if (size > 0) {		char ebuf[sizeof(sbuf) * 2], *p;		unsigned char icon[128];		size_t iconsize;		sbuf[size] = '\0';		p = strchr(sbuf, '\0') + 1;		iconsize = MIN(sizeof(icon), size - (p - sbuf));		memset(icon, '\0', sizeof(icon));		memcpy(icon, p, iconsize);		strstoe(ebuf, sbuf);		size = strlen(ebuf) + 1;		if (debug_flag & 2) {			warning("%d: %16s.%d [", so, inet_ntoa(from->sin.sin_addr), ntohs(from->sin.sin_port));			fputs(ebuf, stderr);			fputs("]\n", stderr);		}		if (decode_packet(ebuf, size, &pk) != NULL) {			pk.pk_maddr.m_so = so;			pk.pk_icon = icon;			strncpyz(pk.pk_maddr.m_user, pk.pk_user, sizeof(pk.pk_maddr.m_user));			do_cmd(&pk);					}		else			warning("bad packet.\n");	}	return 0;}/* recv_packet *//* ] パケット借妄嬸おわり *//* * タイムアウト借妄 * 1 擅髓に鈣び叫される。 */voidbro_job(void){	bro_tic++;	xq_timers();}/* bro_job *//* * 菜な箕鈣び叫される。 */voidbro_work(void){	xq_work_proc();}/* bro_job *//* * */intbro_set_disable(int disable){	bro_disabled = disable;	return 0;}/* bro_set_disable *//* * */intbro_init(int port, const char *user, const char *host, const char * const *bros){	int so;#ifdef SOCKS	SOCKSinit(myname);#endif	so = socket(PF_INET, SOCK_DGRAM, 0);	DYNA_IZ(&dynet, 32);	bro_user = malloc(strlen(user) + 1);	if (bro_user != NULL) {		stretos(bro_user, user);		bro_port = port;		bro_host = host;		msg_number = time(NULL);		while (*bros != NULL)			network_add(*bros++);		if (so >= 0) {			int optval = 1;			int err = SETSOCKOPT(so, SOL_SOCKET, SO_BROADCAST, &optval, sizeof(optval));			if (err >= 0) {				int err;				union saddr sa;				memset(&sa, '\0', sizeof(sa));				sa.sin.sin_family = AF_INET;				sa.sin.sin_addr.s_addr = INADDR_ANY;				sa.sin.sin_port = htons(port);				err = bind(so, &sa.sa, sizeof(sa));			}			if (err < 0) {				close(so);				so = -1;			}		}	}	bro_socket = so;	return so;}/* bro_init */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
eeuss鲁片一区二区三区在线看| 欧美自拍丝袜亚洲| 欧日韩精品视频| 精品少妇一区二区三区日产乱码| 国产精品国产a级| 婷婷综合在线观看| 91蜜桃网址入口| 亚洲精品在线观| 日韩av一级电影| 在线精品视频一区二区三四| 国产色一区二区| 免费一级片91| 欧美日韩精品一区二区天天拍小说| 国产精品私人影院| 久久电影国产免费久久电影| 色www精品视频在线观看| 国产欧美一区二区在线| 狠狠狠色丁香婷婷综合激情 | 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 天堂成人免费av电影一区| 99精品国产99久久久久久白柏| 欧美精品一区二区三区高清aⅴ| 亚洲国产成人va在线观看天堂| 99国产精品久久| 中文字幕一区二区三区色视频| 国产成人一级电影| 久久综合九色综合97婷婷女人| 麻豆精品一区二区综合av| 91精品久久久久久蜜臀| 日韩精品亚洲专区| 欧美一级欧美一级在线播放| 午夜精品爽啪视频| 7777精品伊人久久久大香线蕉经典版下载 | 天天综合网天天综合色| 精品视频999| 午夜激情久久久| 正在播放亚洲一区| 老司机一区二区| 精品剧情在线观看| 国产精品一级在线| 中文字幕精品三区| 色综合视频在线观看| 亚洲激情校园春色| 宅男噜噜噜66一区二区66| 肉肉av福利一精品导航| 日韩欧美激情在线| 国产成人精品网址| 亚洲欧美一区二区三区久本道91| 色婷婷精品久久二区二区蜜臂av| 亚洲一区二区视频在线观看| 欧美美女直播网站| 国产一区二区免费在线| 亚洲国产精品二十页| 色综合天天视频在线观看 | 欧美日韩中文字幕一区| 日韩精品一级二级| 国产女人水真多18毛片18精品视频 | 欧美曰成人黄网| 婷婷综合另类小说色区| 久久这里都是精品| 色综合一区二区三区| 日韩av成人高清| 日本一区二区三区四区在线视频| 成人精品高清在线| 亚洲成精国产精品女| 久久先锋影音av| 在线一区二区三区四区| 精品在线亚洲视频| 亚洲三级理论片| 日韩欧美一区二区免费| 91免费国产在线观看| 精品无码三级在线观看视频| 亚洲色大成网站www久久九九| 91精品啪在线观看国产60岁| 国产一区二区免费视频| 午夜天堂影视香蕉久久| 国产欧美一区二区在线| 91精品视频网| 91久久精品一区二区三区| 九九在线精品视频| 亚洲自拍都市欧美小说| 国产亚洲欧洲997久久综合| 在线一区二区三区做爰视频网站| 国产一区二区三区在线看麻豆| 亚洲一区二区五区| 最新久久zyz资源站| 日韩欧美国产综合一区| 欧美日韩亚洲综合在线 | 国产美女久久久久| 午夜精品爽啪视频| 夜夜嗨av一区二区三区| 中文一区在线播放| 久久九九全国免费| 欧美精品一区二区三区视频| 欧美裸体一区二区三区| 在线一区二区视频| 91亚洲精品久久久蜜桃网站| 九色|91porny| 久久国产精品72免费观看| 日日夜夜精品视频天天综合网| 亚洲日本在线天堂| 国产精品第五页| 中文字幕第一区二区| 日本一区二区视频在线观看| 精品精品欲导航| 日韩欧美一区二区免费| 日韩精品一区二区三区蜜臀| 欧美二区三区的天堂| 欧美日韩亚洲综合一区| 欧美丝袜自拍制服另类| 欧美亚男人的天堂| 欧美视频一区二| 欧美性生活一区| 精品视频免费看| 欧美精品粉嫩高潮一区二区| 欧美日韩亚洲另类| 欧美一卡二卡三卡| 欧美成人伊人久久综合网| 欧美成人精精品一区二区频| 精品美女在线播放| 国产午夜精品久久| 日韩一区在线播放| 亚洲综合色成人| 午夜一区二区三区在线观看| 日韩精品欧美成人高清一区二区| 日本不卡视频一二三区| 日本成人中文字幕| 国产一二精品视频| 99国产精品一区| 欧美色图天堂网| 欧美一区二区三区免费大片| 精品99久久久久久| 国产精品成人午夜| 亚洲国产欧美在线人成| 免费看日韩a级影片| 国产精品资源网站| 91视频国产观看| 91精品国产91综合久久蜜臀| 亚洲精品一区二区三区精华液| 欧美国产国产综合| 亚洲与欧洲av电影| 捆绑调教美女网站视频一区| 国产成人精品aa毛片| 日本道在线观看一区二区| 欧美日韩国产大片| 国产人伦精品一区二区| 亚洲一区二区欧美| 极品少妇一区二区| 日本精品视频一区二区三区| 欧美一区二区网站| 久久精品视频免费| 午夜一区二区三区视频| 国产aⅴ精品一区二区三区色成熟| 色久优优欧美色久优优| 日韩欧美一级精品久久| 国产精品盗摄一区二区三区| 日本一不卡视频| www.欧美精品一二区| 欧美一卡二卡在线| 亚洲精品国产精品乱码不99| 国产麻豆精品视频| 欧美日韩精品免费观看视频| 国产女主播在线一区二区| 日本不卡一二三| 日本二三区不卡| 欧美激情自拍偷拍| 另类小说图片综合网| 欧美午夜一区二区三区| 国产精品福利av| 国产精品99久久久久久有的能看 | 色哦色哦哦色天天综合| 日韩免费一区二区| 亚洲国产欧美一区二区三区丁香婷| 国产一区免费电影| 日韩一区二区麻豆国产| 一区二区三区小说| 成人av在线影院| 精品国产乱码久久久久久浪潮| 亚洲一区二区三区不卡国产欧美| 不卡av在线免费观看| 26uuu亚洲| 免费看黄色91| 91精品国产综合久久婷婷香蕉| 亚洲免费观看高清完整版在线观看| 国产成人午夜精品影院观看视频 | 久久99国产精品麻豆| 欧美午夜精品久久久久久孕妇| 国产精品美女久久久久久久久| 麻豆国产精品777777在线| 欧美三级一区二区| 亚洲欧美另类久久久精品| 成人app在线| 日韩美女精品在线| 99久久综合精品| 国产精品久久看| 一本色道久久综合精品竹菊| 国产精品乱码一区二三区小蝌蚪| 国产suv精品一区二区三区| 国产亚洲va综合人人澡精品| 精品在线免费观看|