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

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

?? jabber.c

?? Linux下的多協議即時通訊程序源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
PurpleChat *jabber_find_blist_chat(PurpleAccount *account, const char *name){	PurpleBlistNode *gnode, *cnode;	JabberID *jid;	if(!(jid = jabber_id_new(name)))		return NULL;	for(gnode = purple_get_blist()->root; gnode; gnode = gnode->next) {		for(cnode = gnode->child; cnode; cnode = cnode->next) {			PurpleChat *chat = (PurpleChat*)cnode;			const char *room, *server;			if(!PURPLE_BLIST_NODE_IS_CHAT(cnode))				continue;			if(chat->account != account)				continue;			if(!(room = g_hash_table_lookup(chat->components, "room")))				continue;			if(!(server = g_hash_table_lookup(chat->components, "server")))				continue;			if(jid->node && jid->domain &&					!g_utf8_collate(room, jid->node) && !g_utf8_collate(server, jid->domain)) {				jabber_id_free(jid);				return chat;			}		}	}	jabber_id_free(jid);	return NULL;}void jabber_convo_closed(PurpleConnection *gc, const char *who){	JabberStream *js = gc->proto_data;	JabberID *jid;	JabberBuddy *jb;	JabberBuddyResource *jbr;	if(!(jid = jabber_id_new(who)))		return;	if((jb = jabber_buddy_find(js, who, TRUE)) &&			(jbr = jabber_buddy_find_resource(jb, jid->resource))) {		if(jbr->thread_id) {			g_free(jbr->thread_id);			jbr->thread_id = NULL;		}		if(jbr->chat_states == JABBER_CHAT_STATES_SUPPORTED)			jabber_message_conv_closed(js, who);	}	jabber_id_free(jid);}char *jabber_parse_error(JabberStream *js, xmlnode *packet){	xmlnode *error;	const char *code = NULL, *text = NULL;	const char *xmlns = xmlnode_get_namespace(packet);	char *cdata = NULL;	if((error = xmlnode_get_child(packet, "error"))) {		cdata = xmlnode_get_data(error);		code = xmlnode_get_attrib(error, "code");		/* Stanza errors */		if(xmlnode_get_child(error, "bad-request")) {			text = _("Bad Request");		} else if(xmlnode_get_child(error, "conflict")) {			text = _("Conflict");		} else if(xmlnode_get_child(error, "feature-not-implemented")) {			text = _("Feature Not Implemented");		} else if(xmlnode_get_child(error, "forbidden")) {			text = _("Forbidden");		} else if(xmlnode_get_child(error, "gone")) {			text = _("Gone");		} else if(xmlnode_get_child(error, "internal-server-error")) {			text = _("Internal Server Error");		} else if(xmlnode_get_child(error, "item-not-found")) {			text = _("Item Not Found");		} else if(xmlnode_get_child(error, "jid-malformed")) {			text = _("Malformed XMPP ID");		} else if(xmlnode_get_child(error, "not-acceptable")) {			text = _("Not Acceptable");		} else if(xmlnode_get_child(error, "not-allowed")) {			text = _("Not Allowed");		} else if(xmlnode_get_child(error, "not-authorized")) {			text = _("Not Authorized");		} else if(xmlnode_get_child(error, "payment-required")) {			text = _("Payment Required");		} else if(xmlnode_get_child(error, "recipient-unavailable")) {			text = _("Recipient Unavailable");		} else if(xmlnode_get_child(error, "redirect")) {			/* XXX */		} else if(xmlnode_get_child(error, "registration-required")) {			text = _("Registration Required");		} else if(xmlnode_get_child(error, "remote-server-not-found")) {			text = _("Remote Server Not Found");		} else if(xmlnode_get_child(error, "remote-server-timeout")) {			text = _("Remote Server Timeout");		} else if(xmlnode_get_child(error, "resource-constraint")) {			text = _("Server Overloaded");		} else if(xmlnode_get_child(error, "service-unavailable")) {			text = _("Service Unavailable");		} else if(xmlnode_get_child(error, "subscription-required")) {			text = _("Subscription Required");		} else if(xmlnode_get_child(error, "unexpected-request")) {			text = _("Unexpected Request");		} else if(xmlnode_get_child(error, "undefined-condition")) {			text = _("Unknown Error");		}	} else if(xmlns && !strcmp(xmlns, "urn:ietf:params:xml:ns:xmpp-sasl")) {		if(xmlnode_get_child(packet, "aborted")) {			js->gc->wants_to_die = TRUE;			text = _("Authorization Aborted");		} else if(xmlnode_get_child(packet, "incorrect-encoding")) {			text = _("Incorrect encoding in authorization");		} else if(xmlnode_get_child(packet, "invalid-authzid")) {			js->gc->wants_to_die = TRUE;			text = _("Invalid authzid");		} else if(xmlnode_get_child(packet, "invalid-mechanism")) {			js->gc->wants_to_die = TRUE;			text = _("Invalid Authorization Mechanism");		} else if(xmlnode_get_child(packet, "mechanism-too-weak")) {			js->gc->wants_to_die = TRUE;			text = _("Authorization mechanism too weak");		} else if(xmlnode_get_child(packet, "not-authorized")) {			js->gc->wants_to_die = TRUE;			text = _("Not Authorized");		} else if(xmlnode_get_child(packet, "temporary-auth-failure")) {			text = _("Temporary Authentication Failure");		} else {			js->gc->wants_to_die = TRUE;			text = _("Authentication Failure");		}	} else if(!strcmp(packet->name, "stream:error") ||			 (!strcmp(packet->name, "error") &&				!strcmp(xmlns, "http://etherx.jabber.org/streams"))) {		if(xmlnode_get_child(packet, "bad-format")) {			text = _("Bad Format");		} else if(xmlnode_get_child(packet, "bad-namespace-prefix")) {			text = _("Bad Namespace Prefix");		} else if(xmlnode_get_child(packet, "conflict")) {			js->gc->wants_to_die = TRUE;			text = _("Resource Conflict");		} else if(xmlnode_get_child(packet, "connection-timeout")) {			text = _("Connection Timeout");		} else if(xmlnode_get_child(packet, "host-gone")) {			text = _("Host Gone");		} else if(xmlnode_get_child(packet, "host-unknown")) {			text = _("Host Unknown");		} else if(xmlnode_get_child(packet, "improper-addressing")) {			text = _("Improper Addressing");		} else if(xmlnode_get_child(packet, "internal-server-error")) {			text = _("Internal Server Error");		} else if(xmlnode_get_child(packet, "invalid-id")) {			text = _("Invalid ID");		} else if(xmlnode_get_child(packet, "invalid-namespace")) {			text = _("Invalid Namespace");		} else if(xmlnode_get_child(packet, "invalid-xml")) {			text = _("Invalid XML");		} else if(xmlnode_get_child(packet, "nonmatching-hosts")) {			text = _("Non-matching Hosts");		} else if(xmlnode_get_child(packet, "not-authorized")) {			text = _("Not Authorized");		} else if(xmlnode_get_child(packet, "policy-violation")) {			text = _("Policy Violation");		} else if(xmlnode_get_child(packet, "remote-connection-failed")) {			text = _("Remote Connection Failed");		} else if(xmlnode_get_child(packet, "resource-constraint")) {			text = _("Resource Constraint");		} else if(xmlnode_get_child(packet, "restricted-xml")) {			text = _("Restricted XML");		} else if(xmlnode_get_child(packet, "see-other-host")) {			text = _("See Other Host");		} else if(xmlnode_get_child(packet, "system-shutdown")) {			text = _("System Shutdown");		} else if(xmlnode_get_child(packet, "undefined-condition")) {			text = _("Undefined Condition");		} else if(xmlnode_get_child(packet, "unsupported-encoding")) {			text = _("Unsupported Encoding");		} else if(xmlnode_get_child(packet, "unsupported-stanza-type")) {			text = _("Unsupported Stanza Type");		} else if(xmlnode_get_child(packet, "unsupported-version")) {			text = _("Unsupported Version");		} else if(xmlnode_get_child(packet, "xml-not-well-formed")) {			text = _("XML Not Well Formed");		} else {			text = _("Stream Error");		}	}	if(text || cdata) {		char *ret = g_strdup_printf("%s%s%s", code ? code : "",				code ? ": " : "", text ? text : cdata);		g_free(cdata);		return ret;	} else {		return NULL;	}}static PurpleCmdRet jabber_cmd_chat_config(PurpleConversation *conv,		const char *cmd, char **args, char **error, void *data){	JabberChat *chat = jabber_chat_find_by_conv(conv);	jabber_chat_request_room_configure(chat);	return PURPLE_CMD_RET_OK;}static PurpleCmdRet jabber_cmd_chat_register(PurpleConversation *conv,		const char *cmd, char **args, char **error, void *data){	JabberChat *chat = jabber_chat_find_by_conv(conv);	jabber_chat_register(chat);	return PURPLE_CMD_RET_OK;}static PurpleCmdRet jabber_cmd_chat_topic(PurpleConversation *conv,		const char *cmd, char **args, char **error, void *data){	JabberChat *chat = jabber_chat_find_by_conv(conv);	jabber_chat_change_topic(chat, args ? args[0] : NULL);	return PURPLE_CMD_RET_OK;}static PurpleCmdRet jabber_cmd_chat_nick(PurpleConversation *conv,		const char *cmd, char **args, char **error, void *data){	JabberChat *chat = jabber_chat_find_by_conv(conv);	if(!args || !args[0])		return PURPLE_CMD_RET_FAILED;	jabber_chat_change_nick(chat, args[0]);	return PURPLE_CMD_RET_OK;}static PurpleCmdRet jabber_cmd_chat_part(PurpleConversation *conv,		const char *cmd, char **args, char **error, void *data){	JabberChat *chat = jabber_chat_find_by_conv(conv);	jabber_chat_part(chat, args ? args[0] : NULL);	return PURPLE_CMD_RET_OK;}static PurpleCmdRet jabber_cmd_chat_ban(PurpleConversation *conv,		const char *cmd, char **args, char **error, void *data){	JabberChat *chat = jabber_chat_find_by_conv(conv);	if(!args || !args[0])		return PURPLE_CMD_RET_FAILED;	if(!jabber_chat_ban_user(chat, args[0], args[1])) {		*error = g_strdup_printf(_("Unable to ban user %s"), args[0]);		return PURPLE_CMD_RET_FAILED;	}	return PURPLE_CMD_RET_OK;}static PurpleCmdRet jabber_cmd_chat_affiliate(PurpleConversation *conv,		const char *cmd, char **args, char **error, void *data){	JabberChat *chat = jabber_chat_find_by_conv(conv);	if (!args || !args[0] || !args[1])		return PURPLE_CMD_RET_FAILED;	if (strcmp(args[1], "owner") != 0 && 	    strcmp(args[1], "admin") != 0 &&	    strcmp(args[1], "member") != 0 &&	    strcmp(args[1], "outcast") != 0 &&	    strcmp(args[1], "none") != 0) {		*error = g_strdup_printf(_("Unknown affiliation: \"%s\""), args[1]);		return PURPLE_CMD_RET_FAILED;	}	if (!jabber_chat_affiliate_user(chat, args[0], args[1])) {		*error = g_strdup_printf(_("Unable to affiliate user %s as \"%s\""), args[0], args[1]);		return PURPLE_CMD_RET_FAILED;	}	return PURPLE_CMD_RET_OK;}static PurpleCmdRet jabber_cmd_chat_role(PurpleConversation *conv,		const char *cmd, char **args, char **error, void *data){	JabberChat *chat;	if (!args || !args[0] || !args[1])		return PURPLE_CMD_RET_FAILED;	if (strcmp(args[1], "moderator") != 0 &&	    strcmp(args[1], "participant") != 0 &&	    strcmp(args[1], "visitor") != 0 &&	    strcmp(args[1], "none") != 0) {		*error = g_strdup_printf(_("Unknown role: \"%s\""), args[1]);		return PURPLE_CMD_RET_FAILED;	}	chat = jabber_chat_find_by_conv(conv);	if (!jabber_chat_role_user(chat, args[0], args[1])) {		*error = g_strdup_printf(_("Unable to set role \"%s\" for user: %s"),		                         args[1], args[0]);		return PURPLE_CMD_RET_FAILED;	}	return PURPLE_CMD_RET_OK;}static PurpleCmdRet jabber_cmd_chat_invite(PurpleConversation *conv,		const char *cmd, char **args, char **error, void *data){	if(!args || !args[0])		return PURPLE_CMD_RET_FAILED;	jabber_chat_invite(purple_conversation_get_gc(conv),			purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), args[1] ? args[1] : "",			args[0]);	return PURPLE_CMD_RET_OK;}static PurpleCmdRet jabber_cmd_chat_join(PurpleConversation *conv,		const char *cmd, char **args, char **error, void *data){	JabberChat *chat = jabber_chat_find_by_conv(conv);	GHashTable *components;	if(!args || !args[0])		return PURPLE_CMD_RET_FAILED;	components = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL);	g_hash_table_replace(components, "room", args[0]);	g_hash_table_replace(components, "server", chat->server);	g_hash_table_replace(components, "handle", chat->handle);	if(args[1])		g_hash_table_replace(components, "password", args[1]);	jabber_chat_join(purple_conversation_get_gc(conv), components);	g_hash_table_destroy(components);	return PURPLE_CMD_RET_OK;}static PurpleCmdRet jabber_cmd_chat_kick(PurpleConversation *conv,		const char *cmd, char **args, char **error, void *data){	JabberChat *chat = jabber_chat_find_by_conv(conv);	if(!args || !args[0])		return PURPLE_CMD_RET_FAILED;	if(!jabber_chat_kick_user(chat, args[0], args[1])) {		*error = g_strdup_printf(_("Unable to kick user %s"), args[0]);		return PURPLE_CMD_RET_FAILED;	}	return PURPLE_CMD_RET_OK;}static PurpleCmdRet jabber_cmd_chat_msg(PurpleConversation *conv,		const char *cmd, char **args, char **error, void *data){	JabberChat *chat = jabber_chat_find_by_conv(conv);	char *who;	who = g_strdup_printf("%s@%s/%s", chat->room, chat->server, args[0]);	jabber_message_send_im(purple_conversation_get_gc(conv), who, args[1], 0);	g_free(who);	return PURPLE_CMD_RET_OK;}gboolean jabber_offline_message(const PurpleBuddy *buddy){	return TRUE;}void jabber_register_commands(void){	purple_cmd_register("config", "", PURPLE_CMD_P_PRPL,	                  PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY,	                  "prpl-jabber", jabber_cmd_chat_config,	                  _("config:  Configure a chat room."), NULL);	purple_cmd_register("configure", "", PURPLE_CMD_P_PRPL,	                  PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY,	                  "prpl-jabber", jabber_cmd_chat_config,	                  _("configure:  Configure a chat room."), NULL);	purple_cmd_register("nick", "s", PURPLE_CMD_P_PRPL,	                  PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY,	                  "prpl-jabber", jabber_cmd_chat_nick,	                  _("nick <new nickname>:  Change your nickname."),	                  NULL);	purple_cmd_register("part", "s", PURPLE_CMD_P_PRPL,	                  PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY |	                  PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber",	                  jabber_cmd_chat_part, _("part [room]:  Leave the room."),	                  NULL);	purple_cmd_register("register", "", PURPLE_CMD_P_PRPL,	                  PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY,	                  "prpl-jabber", jabber_cmd_chat_register,	                  _("register:  Register with a chat room."), NULL);	/* XXX: there needs to be a core /topic cmd, methinks */	purple_cmd_register("topic", "s", PURPLE_CMD_P_PRPL,	                  PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY |	                  PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber",	                  jabber_cmd_chat_topic,	                  _("topic [new topic]:  View or change the topic."),	                  NULL);	purple_cmd_register("ban", "ws", PURPLE_CMD_P_PRPL,	                  PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY |	                  PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber",	                  jabber_cmd_chat_ban,	                  _("ban <user> [room]:  Ban a user from the room."),	                  NULL);	purple_cmd_register("affiliate", "ws", PURPLE_CMD_P_PRPL,	                  PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY |	                  PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber",	                  jabber_cmd_chat_affiliate,	                  _("affiliate <user> <owner|admin|member|outcast|none>: Set a user's affiliation with the room."),	                  NULL);	purple_cmd_register("role", "ws", PURPLE_CMD_P_PRPL,	                  PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY |	                  PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber",	                  jabber_cmd_chat_role,	                  _("role <user> <moderator|participant|visitor|none>: Set a user's role in the room."),	                  NULL);	purple_cmd_register("invite", "ws", PURPLE_CMD_P_PRPL,	                  PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY |	                  PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber",	                  jabber_cmd_chat_invite,	                  _("invite <user> [message]:  Invite a user to the room."),	                  NULL);	purple_cmd_register("join", "ws", PURPLE_CMD_P_PRPL,	                  PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY |	                  PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber",	                  jabber_cmd_chat_join,	                  _("join: <room> [server]:  Join a chat on this server."),	                  NULL);	purple_cmd_register("kick", "ws", PURPLE_CMD_P_PRPL,	                  PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY |	                  PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber",	                  jabber_cmd_chat_kick,	                  _("kick <user> [room]:  Kick a user from the room."),	                  NULL);	purple_cmd_register("msg", "ws", PURPLE_CMD_P_PRPL,	                  PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY,	                  "prpl-jabber", jabber_cmd_chat_msg,	                  _("msg <user> <message>:  Send a private message to another user."),	                  NULL);}voidjabber_init_plugin(PurplePlugin *plugin){        my_protocol = plugin;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合久久一区二区三区| 狠狠色丁香婷婷综合| 麻豆一区二区三区| 94色蜜桃网一区二区三区| 日韩欧美色电影| 亚洲电影欧美电影有声小说| 国产成人精品亚洲午夜麻豆| 69av一区二区三区| 亚洲理论在线观看| 大陆成人av片| 精品国产乱码久久久久久夜甘婷婷| 亚洲欧美一区二区在线观看| 国产一区二区三区在线观看免费视频| 欧美专区亚洲专区| 成人欧美一区二区三区白人| 国产精品99久久久| 精品国产乱码久久久久久夜甘婷婷| 亚洲一卡二卡三卡四卡五卡| 91蝌蚪porny| 亚洲欧洲精品一区二区三区不卡| 国产美女久久久久| 精品嫩草影院久久| 蜜臀国产一区二区三区在线播放| 欧美写真视频网站| 亚洲成av人在线观看| 91国偷自产一区二区三区成为亚洲经典 | 国产在线精品不卡| 日韩三级高清在线| 欧美aaaaaa午夜精品| 91精品久久久久久久久99蜜臂| 亚洲一卡二卡三卡四卡| 欧美天堂亚洲电影院在线播放| 亚洲精品你懂的| 91麻豆国产香蕉久久精品| 亚洲视频在线观看一区| 91在线精品一区二区| 国产精品毛片久久久久久久| 成人激情综合网站| 亚洲色图视频网站| 欧美性三三影院| 石原莉奈一区二区三区在线观看| 欧美人体做爰大胆视频| 日本强好片久久久久久aaa| 欧美一区欧美二区| 久久 天天综合| 国产欧美一区二区三区鸳鸯浴| 国产成人免费视频网站| 中文字幕一区二区三区av| 色偷偷一区二区三区| 亚洲午夜电影网| 日韩一区二区不卡| 国产美女一区二区三区| 亚洲色欲色欲www| 欧美日韩国产综合一区二区三区| 大美女一区二区三区| 成人欧美一区二区三区黑人麻豆| 欧美在线观看18| 麻豆免费看一区二区三区| 欧美激情一区二区三区蜜桃视频| av一区二区三区| 亚洲韩国一区二区三区| 欧美变态凌虐bdsm| 成人h精品动漫一区二区三区| 一区二区三区四区在线免费观看 | 日韩一二三区视频| 国产福利精品导航| 洋洋av久久久久久久一区| 日韩一区二区电影网| 99视频在线精品| 免费精品视频最新在线| 亚洲欧美在线视频| 日韩欧美第一区| 91国偷自产一区二区开放时间 | 自拍偷拍亚洲欧美日韩| 91.com在线观看| 成人黄色大片在线观看| 视频一区欧美精品| 中文字幕一区二区三区不卡| 欧美一区二区三区播放老司机| 成人高清视频免费观看| 日韩av一区二| 亚洲美女视频在线| 国产亚洲欧美在线| 欧美欧美欧美欧美| 99re66热这里只有精品3直播| 日本视频一区二区| 亚洲综合色自拍一区| 日本一区二区三区国色天香| 欧美另类变人与禽xxxxx| 成人av电影免费观看| 青青草国产精品97视觉盛宴| 亚洲精品欧美激情| 国产精品国产a级| 久久亚洲精品小早川怜子| 欧美丝袜自拍制服另类| 99精品欧美一区二区蜜桃免费| 激情欧美日韩一区二区| 日韩**一区毛片| 亚洲不卡一区二区三区| 国产精品888| 久久99精品一区二区三区| 亚洲一区二区欧美激情| 亚洲精品伦理在线| 国产精品久久精品日日| 欧美精彩视频一区二区三区| 日韩欧美一卡二卡| 日韩一区二区在线观看视频| 欧美在线免费播放| 色天使色偷偷av一区二区| 9久草视频在线视频精品| 国产不卡视频在线播放| 国内精品第一页| 国产一区二区三区观看| 久久国产精品99久久久久久老狼| 日韩精品一卡二卡三卡四卡无卡 | 国产精品嫩草99a| 亚洲国产高清aⅴ视频| www国产精品av| 久久久精品影视| 国产欧美一区二区在线观看| 国产女人18毛片水真多成人如厕 | 国产99久久久国产精品潘金网站| 欧美mv日韩mv| 色综合久久综合中文综合网| youjizz久久| 91免费在线看| 欧美日韩亚洲综合| 欧美一区二视频| 精品国产一区二区三区久久影院| 精品sm捆绑视频| 国产日产欧美精品一区二区三区| 欧美极品另类videosde| 亚洲男女一区二区三区| 香蕉加勒比综合久久| 日韩高清在线观看| 国产精品久久久久久久久免费丝袜 | 亚洲午夜日本在线观看| 亚洲国产欧美日韩另类综合| 一区二区三区精品在线| 亚洲狠狠爱一区二区三区| 在线免费观看日本欧美| 欧美在线播放高清精品| 欧洲一区二区三区免费视频| 91在线无精精品入口| 91免费国产视频网站| 成人久久视频在线观看| 91麻豆自制传媒国产之光| 欧美三级电影在线观看| 欧美日本高清视频在线观看| 日韩一区二区三区电影在线观看| 欧美日韩精品欧美日韩精品| 欧美成人bangbros| 久久久久久久久伊人| 久久精品日产第一区二区三区高清版| 久久久久久久久久久电影| 国产女主播在线一区二区| 国产精品情趣视频| 亚洲成人免费电影| 天堂蜜桃91精品| 久久国产三级精品| 成人性生交大合| 久久99精品国产麻豆婷婷| 久久99精品国产91久久来源| 国产91在线|亚洲| 色一情一伦一子一伦一区| 日韩欧美国产精品一区| 国产清纯美女被跳蛋高潮一区二区久久w | 99国产精品久久久久久久久久久| 欧美一区二区视频在线观看2020| 欧美精品一区二区三区久久久| 国产精品传媒视频| 五月婷婷久久综合| 精品亚洲国产成人av制服丝袜| 国产精品18久久久久久久久久久久| 色综合久久88色综合天天| 欧美日本韩国一区| 日本一区二区电影| 日韩国产欧美一区二区三区| 精彩视频一区二区| 一本大道av伊人久久综合| 日韩欧美一区中文| 午夜精品福利一区二区蜜股av| 成人国产电影网| 777奇米成人网| 国产精品传媒在线| 久久精品免费观看| 欧美性高清videossexo| 欧美精品一区视频| 免费成人在线播放| 91精品国产色综合久久久蜜香臀| 亚洲猫色日本管| 91丨九色丨国产丨porny| 国产精品久久久久一区二区三区共| 麻豆一区二区99久久久久| 欧美狂野另类xxxxoooo| 1000部国产精品成人观看| 高清视频一区二区| 日韩欧美色综合| 视频一区中文字幕| 色综合 综合色|