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

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

?? smgp3.c

?? 基于上海電信 sgmp3.0短信協(xié)議,實現(xiàn)的源程序,現(xiàn)網(wǎng)運行穩(wěn)定,unix (freeBSD) 環(huán)境下編程.
?? C
?? 第 1 頁 / 共 5 頁
字號:
					INFO("[INFO-RECV:%u] recv thread cannot receive data from socket, reconnect. recv_len:%d\n",threadsnum, recv_len);
					INFO("[INFO-RECV:%u] Reset login status lock\n", threadsnum);
					pthread_mutex_lock(&cnum_lock[cn]);
					threads[cn][1] = 0; // login status 
					threads[cn][2] = 0; // need submit resp
					threads[cn][0] = 0; // socket
					pthread_mutex_unlock(&cnum_lock[cn]);
					INFO("[INFO-RECV:%u] Reset login status unlock\n", threadsnum);
					close(Rsocket_fd);
					INFO("[INFO-RECV:%u] Buffersize == %d\n", threadsnum, buffersize);
					if( 0 == buffersize )
					{
						INFO("[INFO-RECV:%u] Buffersize ==0 , reconnect\n", threadsnum);
						Rsocket_fd = ConnectISMG(R_Seq, cn, threadsnum, smg_type); // socket
						if(Rsocket_fd > 0)
						{
							pthread_mutex_lock(&cnum_lock[cn]);
							threads[cn][0] = Rsocket_fd;
							pthread_mutex_unlock(&cnum_lock[cn]);
						}
						INFO("[INFO-RECV:]0Rsocket_fd = %d\n", Rsocket_fd);
						//模擬 response
						INFO("[INFO-RECV:%u] simulate resp lock\n", threadsnum );
						pthread_mutex_lock(&sendq_lock[cn]);
						pthread_mutex_lock(&resq_lock[cn]);
						n = simulateres(SENDQ[cn], RESQ[cn]);
						pthread_mutex_unlock(&resq_lock[cn]);
						pthread_mutex_unlock(&sendq_lock[cn]);
						INFO("[INFO-RECV:%u] simulate resp unlock simulate:%d\n", threadsnum ,n);
						//修改等待resp數(shù)量
						INFO("[INFO-RECV:%u] change need sub resp num lock\n", threadsnum);
						pthread_mutex_lock(&cnum_lock[cn]);
						threads[cn][2] -= n;
						pthread_mutex_unlock(&cnum_lock[cn]);
						INFO("[INFO-RECV:%u] change need sub resp num lock\n", threadsnum);
					}
				}
				else
				{	
					INFO("[INFO-RECV:%u] RECV DATA %d\n", threadsnum, recv_len);
					buffersize += recv_len;
					
				}
		    	}
		}
		else if( HaveData(Rsocket_fd) < 0 )
		{
			INFO("[INFO-RECV:%u] Rsocket_fd error,Reset login status lock\n", threadsnum);
			pthread_mutex_lock(&cnum_lock[cn]);
			threads[cn][1] = 0; // login status 
			threads[cn][2] = 0; // need submit resp
			threads[cn][0] = 0; // socket
			pthread_mutex_unlock(&cnum_lock[cn]);
			INFO("[INFO-RECV:%u] Reset login status unlock\n", threadsnum);
			close(Rsocket_fd);
		}

		resqnum = checkresqnum(RESQ[cn]);
		
//		INFO("[INFO-RECV:%u] Buffersize:%d resqnum:%d\n", threadsnum , buffersize, resqnum);
//		if( (buffersize >= LEN_SGIP_HEADER ) &&  (resqnum >0) )
		while( (buffersize>=LEN_SMGP_HEAD) && (resqnum >0))
		{
			
			n = GetMessageHead( socketbuffer, &Body_Length, &Command_ID, &R_Seq);
			buffersize = buffersize - LEN_SMGP_HEAD;
			INFO("[INFO-RECV:%u] buffsersize:%d Command_ID:%08x Body_Length:%d \n", threadsnum, buffersize, Command_ID, Body_Length);
			memmove(socketbuffer , socketbuffer+LEN_SMGP_HEAD, buffersize);
			if( buffersize < Body_Length )
			{	
				usleep(1000*500);
				recv_len = recv(Rsocket_fd, socketbuffer+buffersize, socketbuffersize-buffersize-1, 0);
				if(recv_len> 0)
					buffersize += recv_len; 
				INFO("[INFO-RECV:%u] buffersize < Body_Length,restart recv, buffersize=%d\n", threadsnum, buffersize);
			}
			
			if(Command_ID == ID_SMGP_LOGIN_RESP)	//登陸請求響應(yīng)
			{
				// Bind Resp
				n = RecvLoginResp(socketbuffer,  Body_Length, &Status, &Version);
				buffersize -= Body_Length;
				memmove(socketbuffer, socketbuffer+Body_Length, buffersize );
				INFO("[INFO-RECV:%u] login resp Recv ,chang login status lock\n", threadsnum );
				if(Status == 0)
				{
					pthread_mutex_lock(&cnum_lock[cn]);
					threads[cn][1] = 2; // login status
					threads[cn][2] = 0; // need submit resp
					pthread_mutex_unlock(&cnum_lock[cn]);
					Rsocket_fd = threads[cn][0];
					INFO("[INFO-RECV:%u] login resp Recv ,chang login status unlock.\n", threadsnum );
				}
				else
				{
					close(Rsocket_fd);
					INFO("[INFO-RECV:%u] login resp Recv ,Status :%d login err .lock\n", threadsnum, Status);
					pthread_mutex_lock(&cnum_lock[cn]);
					threads[cn][0] = 0; // socket
					threads[cn][1] = 0; // not login 
					threads[cn][2] = 0; // reset need submit resp 
					pthread_mutex_unlock(&cnum_lock[cn]);
					INFO("[INFO-RECV:%u] login resp Recv ,login err .  unlock\n", threadsnum );
				}
			}
			else if(Command_ID == ID_SMGP_ACTIVE_TEST )
			{
				if (ActiveTestResp(Rsocket_fd, R_Seq) != 0) {
            				INFO("[INFO-RECV:%u]: ERR:SEND ACTIVE_TEST_RESP FAILED\n",  threadsnum);
            				close(Rsocket_fd);
					pthread_mutex_lock(&cnum_lock[cn]);
					threads[cn][0] = 0; // socket
					threads[cn][1] = 0; // not login 
					threads[cn][2] = 0; // reset need submit resp 
					pthread_mutex_unlock(&cnum_lock[cn]);
        			}
        			INFO("[INFO-RECV:%u]: CONNECTION IS OK. R: 0x%08x\n", threadsnum, R_Seq);
			}
			else if(Command_ID == ID_SMGP_ACTIVE_TEST_RESP)
			{
        			INFO("[INFO-RECV:%u]: CONNECTION IS OK. S: 0x%08x NSR(未響應(yīng)): %-4d\n", threadsnum, R_Seq, NeedSubmitResp);
			}
			else if(Command_ID == ID_SMGP_SUBMIT_RESP)
			{
				// submit resp
				memset(MsgID,0,sizeof(MsgID)); 
				n = RecvSubmitResp(socketbuffer, Body_Length, MsgID, &Status);
				buffersize -= Body_Length;
				memmove(socketbuffer, socketbuffer + Body_Length , buffersize);
				time(&timep);
			    	tp=localtime(&timep);
				resqtmp.intime= time(NULL);
				resqtmp.rq_response_status = Status;
				getdatetime(resqtmp.rq_response_time);
				sprintf(resqtmp.rq_submit_id,  "%u", R_Seq);
				/*MSGID 轉(zhuǎn)化為ASCII碼*/
        			memset(t_MsgID, 0, sizeof(t_MsgID));
        			BCD2ASCII(t_MsgID, MsgID,10); 
        			strncpy(resqtmp.rq_msgid, t_MsgID, sizeof(resqtmp.rq_msgid) - 1);
				INFO("[INFO-RECV:%u] lock Submit RESP id :%s Status:%d, MSGID:%s\n", threadsnum, resqtmp.rq_submit_id, Status, resqtmp.rq_msgid);
				pthread_mutex_lock(&resq_lock[cn]);
				n= Insertresq(RESQ[cn], resqtmp); 
				pthread_mutex_unlock(&resq_lock[cn]);
				INFO("[INFO-RECV:%u] unlock\n", threadsnum);
				memset(&resqtmp, 0 , sizeof(resqtmp));
				pthread_mutex_lock(&cnum_lock[cn]);
				threads[cn][2] -= 1; // need submit resp
				pthread_mutex_unlock(&cnum_lock[cn]);
				if(n != 0)
					INFO("[INFO-RECV:%u] insert resp failed .SEQ:%u Status:%d \n", threadsnum, R_Seq, Status);
			}
			else if(Command_ID == ID_SMGP_DELIVER)
			{
			        memset(&deliver, 0, sizeof(deliver));
			        if (DeliverGet(socketbuffer, &deliver,Body_Length) != 0) {
			            INFO("[INFO-RECV:%u][-ERR]: RECV DELIVER FAILED\n", threadsnum);
			            	close(Rsocket_fd);
					pthread_mutex_lock(&cnum_lock[cn]);
					threads[cn][0] = 0; // socket
					threads[cn][1] = 0; // not login 
					threads[cn][2] = 0; // reset need submit resp 
					pthread_mutex_unlock(&cnum_lock[cn]);
			        }
			        buffersize -= Body_Length;
			        if(buffersize < 0)
			        {
					INFO("[INFO-RECV:%u][-ERR]: buffersize<0, exit\n", threadsnum);
					exit(0);
			        }
				 memmove(socketbuffer, socketbuffer+Body_Length, buffersize );
				//如果接收號碼有118,去掉后再插入recv_q
				
				INFO("[INFO-RECV:%u]SMGP3.0_before:DestTermID=%s\n", threadsnum, deliver.DestTermID);
				if ( strncmp(deliver.DestTermID,"118",3) == 0 ) {
					char dest[21+1];
							
					memset(dest,0,22);
					strcpy(dest,deliver.DestTermID);
					memset(deliver.DestTermID,0,22);
					strcpy(deliver.DestTermID,dest+3);
							
				}
				INFO("[INFO-RECV:%u]SMGP3.0_after:DestTermID=%s\n", threadsnum, deliver.DestTermID);
				
				if ((strncmp(deliver.DestTermID, "9310", 4) == 0) && (strcmp(gateway_name, "scxwdphs") == 0)) 
				{
					char dest2[32 + 1];
					memset(dest2, 0, 32 + 1);
					strcpy(dest2, deliver.DestTermID);
					
					memset(deliver.DestTermID,0,22);
					strcpy(deliver.DestTermID, "10621111");
					strcat(deliver.DestTermID, dest2 + 4);
					INFO("[INFO-RECV:2 deliver.DestTermID = %s\n", deliver.DestTermID);
				}

//				if ((strncmp(deliver.DestTermID, "10621111", 8) == 0) && (strcmp(gateway_name, "scxwdphs") == 0)) 
//				{
//					char dest2[32 + 1];
//					memset(dest2, 0, 32 + 1);
//					strcpy(dest2, deliver.DestTermID);
//					memset(deliver.DestTermID,0,22);
//					strcpy(deliver.DestTermID, "9310");
//					strcat(deliver.DestTermID, dest2 + 8);
//					INFO("[INFO-RECV:2 deliver.DestTermID = %s\n", deliver.DestTermID);
//				}
					
				if ((strncmp(deliver.DestTermID, "10628538", 8) == 0) && (strcmp(gateway_name, "sctfdphs") == 0)) 
				{
					char dest2[32 + 1];
					memset(dest2, 0, 32 + 1);
					strcpy(dest2, deliver.DestTermID);
					memset(deliver.DestTermID,0,22);
					strcpy(deliver.DestTermID, "9009");
					strcat(deliver.DestTermID, dest2 + 8);
					INFO("[INFO-RECV:2 deliver.DestTermID = %s\n", deliver.DestTermID);
				}				
								
				if (deliver.IsReport == 0) 
				{	
				     memset(sqlbuf, 0, sizeof(sqlbuf));
			             mysql_escape_string(sqlbuf, deliver.MsgContent, strlen(deliver.MsgContent)) ;
				    //INFO("INFO-RECV:%u] DEBUG LinkID:[%s]\n", threadsnum, LinkID);
				    memset(LinkID, 0, sizeof(LinkID));
				    SubmitType=0;
			            if(unparse_packet_1(deliver.Paramater, deliver.ParamaterLen,LinkID, &SubmitType,&DealResult) !=0 )
			            {
			                INFO("[INFO-RECV:%u][ERR]: unparse_packet_1 ERR %s\n", threadsnum, deliver.Paramater);
			                break;
			            }
			            INFO("[INFO-RECV:%u] SubmitType:[%d] LinkID:[%s]\n",threadsnum,SubmitType, LinkID); 
			            if( SubmitType==13 || SubmitType==15) 
			            {            	
			            		if( ( SubmitType==13 )&& strncmp(sqlbuf,"DG",2)!=0 && strncmp(sqlbuf,"QX",2)!=0)
			            		{
							sprintf(query_string, "insert into %s.recv_q values(NULL,'%s','%s',now(),'%s','0','%s','0','0','%s')",
			                          		send_q_db,deliver.SrcTermID, sqlbuf, deliver.DestTermID,LinkID,"13" );
			            		}
			            		
			            		if( ( SubmitType==13 )&& ( strncmp(sqlbuf,"DG",2)==0||strncmp(sqlbuf,"QX",2)==0 ) ) //定購/退訂.
			            		{
							sprintf(query_string, "insert into %s.recv_q values(NULL,'%s','%s',now(),'%s','0','%s','4','0','%s')",
			                          		send_q_db,deliver.SrcTermID, sqlbuf, deliver.DestTermID,LinkID,"13" );
			            		}
			            		
			            		if( SubmitType==15 )
			            		{
							sprintf(query_string, "insert into %s.recv_q values(NULL,'%s','%s',now(),'%s','0','%s','4','0','%s')",
			                          		send_q_db,deliver.SrcTermID, sqlbuf, deliver.DestTermID,LinkID,"15" );
			            		}
			            					            					            		
			            		INFO("[INFO-RECV:%u]: SubmitType is 13 or 15:%s\n", threadsnum, query_string );
			                   	ret= mysql_real_query(&recv_mysql, query_string, strlen(query_string));	
					  	if ( ret !=0 )
					  	{
					                INFO("[-ERR]: sql_query: %s\n", mysql_error (&recv_mysql));
					                exit(-1);
				          	}			                          
			            } else 
			            if( SubmitType==5 )   //包月扣費結(jié)果通知.
			            {
			            	//MsgContent:09918061574  ,DXXDG ,20060601,20060630,0,001500
			            	//oper databases; insert smc_result.
			            	
			            	char smcBuf[256];            	            	
			            	char mobile[21]="";
			            	char service[20]="";
			            	char date1[16]="";
			            	char date2[16]="";
			            	char status[6]="";
			            	char feecode[8]="";
			            	int  ret2=1;   
			            	       	 
			            	memset( smcBuf ,0 ,sizeof(smcBuf)); 
			            	strcpy( smcBuf ,deliver.MsgContent );
			            	           	
			            	INFO("[INFO-RECV:%u][BYKF]: SrcTermID:%s ,DestTermID:%s ,LinkID:%s smcBuf=%s\n",
			            	      threadsnum, deliver.SrcTermID, deliver.DestTermID ,LinkID ,smcBuf);
			            	
			            	ret2=GetSmcNotice( smcBuf , mobile , service ,date1 ,date2 ,status,feecode );

			            	//---------------------------------add by 2006-06-12
					sprintf(query_string, "insert into %s.smc_result values(NULL,now(),'%s','%s','%s','%s','%s','%s','')",
			                          send_q_db, mobile ,service ,feecode ,status,date1 ,date2);
			            	INFO("[INFO-RECV:%u]: SubmitType is 5:%s\n", threadsnum, query_string );
			              ret= mysql_real_query(&recv_mysql, query_string, strlen(query_string));	
					if ( ret !=0 )
					{
						INFO("[-ERR]: sql_query: %s\n", mysql_error (&recv_mysql));
					       exit(-1);
				        }
			                     	
			            } 
			            else //MO
			            {	
					INFO("[INFO-RECV:]ismp-deliver.SrcTermID = %s\n", deliver.SrcTermID);
					
					INFO("[INFO-RECV:]ismp-TEST10\n");
					
					//if (strncmp(deliver.SrcTermID, ismp, 5) == 0) 
					//ismp升級使用   sctfdphs'ismp  is  010000
					
					if (  ( strncmp(deliver.SrcTermID, ismp, strlen(ismp)) == 0 || strncmp(deliver.SrcTermID, "010000", 5) == 0 )&& strlen(ismp)>3 ) 
					{ 
						INFO("[INFO-RECV:]ismp-TEST20\n");
						
						ret = Recv_ismp( deliver, MsgID, recv_mysql);                
						if ( ret !=0 ) 
						{
							INFO("[INFO-RECV:%u][-ERR]: Recv_ismp error: %d\n", threadsnum, ret );
						        close(Rsocket_fd);
							pthread_mutex_lock(&cnum_lock[cn]);
							threads[cn][0] = 0; // socket
							threads[cn][1] = 0; // not login 
							threads[cn][2] = 0; // reset need submit resp 
							pthread_mutex_unlock(&cnum_lock[cn]);
						}
					} else 
					{					  								            	 
			            	  if(strlen(deliver.SrcTermID) < 8)
			            	  {
			            	  	sprintf(query_string, "insert into %s.recv_q values(NULL,'%s','%s',now(),'%s','0','%s','5','0','%s')",
			                          		send_q_db,deliver.SrcTermID, sqlbuf, deliver.DestTermID,LinkID,"0" );
						INFO("[INFO-RECV:%u]: SQL query:%s\n", threadsnum, query_string );
			            	  }
					  else
					  {
				            	  sprintf(query_string, "insert into %s.recv_q values(NULL,'%s','%s',now(),'%s','0','%s','0','0','0')",
				                          send_q_db,deliver.SrcTermID, sqlbuf, deliver.DestTermID, LinkID ); 
				            	  INFO("[INFO-RECV:%u]: MO:%s\n", threadsnum, query_string );
					  }
										
			                  ret= mysql_real_query(&recv_mysql, query_string, strlen(query_string));	
					  if ( ret !=0 )
					  {
						INFO("[-ERR]: sql_query: %s\n", mysql_error (&recv_mysql));
					       exit(-1);
				          }
				       }	
			                
			            }
			            
			        } 
				else {			//狀態(tài)報告
			            char stat[8];
			            char err[8];
			            char temp[21];
			            char MsgID[11];

			            memset(stat,0,sizeof(stat));
			            memset(temp

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级三级三级| 另类欧美日韩国产在线| 91在线国产观看| 亚洲欧洲国产日韩| 色哟哟一区二区在线观看| 一区二区三区在线不卡| 欧美伦理影视网| 久久不见久久见中文字幕免费| 日韩一区二区三| 国产精品综合二区| 亚洲欧美综合色| 欧美日韩大陆一区二区| 捆绑紧缚一区二区三区视频| 久久先锋影音av鲁色资源网| av资源网一区| 亚洲va欧美va国产va天堂影院| 欧美一区在线视频| 国产资源在线一区| 亚洲欧美日韩国产综合| 欧美日韩一区精品| 国产在线精品一区二区夜色| 国产精品每日更新| 欧美日韩高清一区| 国产毛片精品视频| 一区二区三区资源| 日韩久久久久久| 99久久精品国产观看| 婷婷久久综合九色综合绿巨人| 欧美变态tickling挠脚心| 成人性生交大合| 日韩高清中文字幕一区| 中文字幕不卡在线观看| 欧美欧美欧美欧美首页| 国产精品夜夜嗨| 亚洲一区二区三区在线看| 久久综合久久综合久久综合| 91国偷自产一区二区三区观看| 久久成人麻豆午夜电影| 一区二区三区.www| 中文在线资源观看网站视频免费不卡| 欧美日韩一区二区欧美激情| 国产精品一区2区| 五月天中文字幕一区二区| 亚洲国产精华液网站w| 337p亚洲精品色噜噜狠狠| 国产高清精品久久久久| 日本欧美久久久久免费播放网| 国产精品久久福利| 久久综合九色欧美综合狠狠| 欧美自拍丝袜亚洲| 懂色中文一区二区在线播放| 天天亚洲美女在线视频| 1区2区3区国产精品| 久久午夜电影网| 51精品秘密在线观看| 日本乱码高清不卡字幕| 成人免费视频国产在线观看| 免费观看日韩电影| 午夜精品久久久久久久久| 中文字幕一区二区5566日韩| 26uuu久久综合| 日韩欧美国产系列| 91精品国产综合久久香蕉麻豆| 色婷婷激情一区二区三区| 成人中文字幕合集| 高清成人在线观看| 国产综合久久久久久久久久久久| 亚洲第一福利视频在线| 亚洲欧美日韩综合aⅴ视频| 欧美极品美女视频| 久久蜜臀中文字幕| 精品国产百合女同互慰| 日韩欧美在线网站| 精品入口麻豆88视频| 日韩精品一区国产麻豆| 日韩精品最新网址| 精品欧美黑人一区二区三区| 91精品国产综合久久国产大片| 欧美视频一区二区| 欧美日韩国产综合视频在线观看 | 91麻豆精品国产91久久久资源速度| 92精品国产成人观看免费| 99久久精品一区二区| jlzzjlzz欧美大全| 色综合中文字幕国产 | 日韩高清不卡一区二区| 午夜精品久久久久久不卡8050| 亚洲午夜成aⅴ人片| 久久国产欧美日韩精品| 麻豆91在线播放| 激情六月婷婷久久| 国产a精品视频| 99国产精品久久久| 欧美三级乱人伦电影| 欧美日韩高清一区二区不卡| 日韩一区二区麻豆国产| 欧美精品一区二| 国产精品久久久久三级| 亚洲另类在线视频| 三级欧美在线一区| 黄一区二区三区| 成人精品高清在线| 欧美日韩一区二区三区不卡| 日韩欧美亚洲一区二区| 久久精品一二三| 亚洲精品欧美综合四区| 亚洲1区2区3区视频| 极品少妇xxxx精品少妇| a4yy欧美一区二区三区| 欧美无砖砖区免费| 精品久久久久久最新网址| 国产精品私人自拍| 亚洲国产va精品久久久不卡综合| 日本视频免费一区| 成人av网站在线观看免费| 欧美视频中文字幕| 久久精品夜夜夜夜久久| 亚洲国产精品久久一线不卡| 久久99热99| 91搞黄在线观看| 精品久久久久久久久久久久久久久| 日本一区二区免费在线| 亚洲国产精品视频| 成人性生交大片免费 | 日韩女优视频免费观看| 国产欧美综合在线| 午夜激情一区二区| 国产69精品一区二区亚洲孕妇| 欧美色视频在线观看| 国产天堂亚洲国产碰碰| 午夜视黄欧洲亚洲| 不卡高清视频专区| 精品国精品国产| 亚洲一区二区三区影院| 国v精品久久久网| 日韩欧美国产小视频| 一区二区三区精品在线观看| 91免费观看在线| 久久九九久精品国产免费直播| 亚洲一区影音先锋| 高清不卡在线观看av| 日韩欧美国产精品一区| 一级女性全黄久久生活片免费| 国产美女视频91| 日韩你懂的在线播放| 亚洲国产一区二区三区青草影视| 成人午夜激情片| 久久精品男人的天堂| 蜜臀av性久久久久蜜臀aⅴ流畅| 91视频免费观看| 欧美极品xxx| 国产福利精品导航| 欧美成人一区二区三区片免费 | 欧美自拍丝袜亚洲| 亚洲视频在线一区二区| 国产91高潮流白浆在线麻豆| 精品国产91亚洲一区二区三区婷婷| 亚洲电影中文字幕在线观看| thepron国产精品| 久久精品亚洲精品国产欧美| 久久精品99久久久| 日韩美女视频在线| 美女一区二区三区在线观看| 欧美一区国产二区| 免费精品视频最新在线| 制服丝袜中文字幕亚洲| 日韩二区三区四区| 91精品欧美福利在线观看| 日韩综合小视频| 91精品久久久久久久99蜜桃| 秋霞电影一区二区| 日韩一卡二卡三卡| 蓝色福利精品导航| 精品美女一区二区| 国产一区二区三区免费播放| 26uuu成人网一区二区三区| 久久99精品久久只有精品| 精品少妇一区二区三区在线视频| 亚洲欧洲一区二区三区| 欧美国产欧美综合| 亚洲乱码国产乱码精品精的特点 | 91伊人久久大香线蕉| 国产精品久久久久四虎| 91丨九色丨黑人外教| 亚洲欧美国产三级| 欧美性大战xxxxx久久久| 天天亚洲美女在线视频| 精品国产一区二区三区久久久蜜月| 免费成人美女在线观看| 久久久综合精品| 91在线视频官网| 亚洲综合一区在线| 日韩亚洲欧美高清| 国产精品996| 亚洲免费av高清| 欧美精品乱码久久久久久按摩| 青椒成人免费视频| 国产女人18毛片水真多成人如厕| 97se狠狠狠综合亚洲狠狠| 亚州成人在线电影|