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

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

?? micqcomponents.cpp

?? 聊天程序
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
   int remote_uin, new_status;
   int index;

   remote_uin = Chars_2_DW( &pak[0] );

   new_status = Chars_2_DW( &pak[17] );
   
   if ( Done_Login )
   {
//      M_print( "\n" );
//      M_print( CONTACTCOL );
      index = Print_UIN_Name( remote_uin );
//      M_print( NOCOL );
      if ( index != -1 )
      {
         Contacts[ index ].status = new_status;
         Contacts[ index ].current_ip[0] =  pak[4];
         Contacts[ index ].current_ip[1] =  pak[5];
         Contacts[ index ].current_ip[2] =  pak[6];
         Contacts[ index ].current_ip[3] =  pak[7];
         Contacts[ index ].port = Chars_2_DW( &pak[8] );
         Contacts[ index ].last_time = time( NULL );
      }
//      M_print( " (" );
//     Print_Status( new_status );
//      M_print( ") logged on.\t" );
//      Time_Stamp();
//      M_print( "\n" );

      log_event("User logged on","",remote_uin);
      if ( Verbose )
      {
         M_print( "The IP address is %u.%u.%u.%u\n", pak[4], pak[5], pak[6], pak[7] );
         M_print( "The \"real\" IP address is %u.%u.%u.%u\n", pak[12], pak[13], pak[14], pak[15] );
      }
   }
   else
   {
      for ( index=0; index < Num_Contacts; index++ )
      {
         if ( Contacts[index].uin == (unsigned long)remote_uin )
         {
            Contacts[ index ].status = new_status;
            Contacts[ index ].current_ip[0] =  pak[4];
            Contacts[ index ].current_ip[1] =  pak[5];
            Contacts[ index ].current_ip[2] =  pak[6];
            Contacts[ index ].current_ip[3] =  pak[7];
            Contacts[ index ].port = Chars_2_DW( &pak[8] );
            Contacts[ index ].last_time = time( NULL );
            break;
         }
      }
   }
}

void Status_Update( int sok, BYTE * pak )
{
   int remote_uin, new_status;
   int index;

   remote_uin = Chars_2_DW( &pak[0] );

   new_status = Chars_2_DW( &pak[4] );

//   M_print( "\n" );
//   M_print( CONTACTCOL );
   index = Print_UIN_Name( remote_uin );
//   M_print( NOCOL );
   if ( index != -1 )
   {
      Contacts[ index ].status = new_status;
   }
//   M_print( " changed status to " );
//   Print_Status( new_status );
//   M_print( "\t" );
//   Time_Stamp();
//   M_print( "\n" );
   
}

/* This procedure logins into the server with UIN and pass
   on the socket sok and gives our ip and port.
   It does NOT wait for any kind of a response.         */
void Login( int sok, int UIN, char *pass, int ip, int port, DWORD status )
{
   net_icq_pak pak;
   int size;
   login_1 s1;
   login_2 s2;
	struct sockaddr_in sin;  /* used to store inet addr stuff  */
   
   Word_2_Chars( pak.head.ver, ICQ_VER );
   Word_2_Chars( pak.head.cmd, CMD_LOGIN );
   Word_2_Chars( pak.head.seq, seq_num++ );
   DW_2_Chars( pak.head.UIN, UIN );
   
   DW_2_Chars( s1.port, port + 0x10000);
   Word_2_Chars( s1.len, strlen( pass ) + 1 );
   
   DW_2_Chars( s2.ip, ip );
   sin.sin_addr.s_addr = Chars_2_DW( s2.ip );
   DW_2_Chars( s2.status, status );
/*   Word_2_Chars( s2.seq, seq_num++ );*/
   
   DW_2_Chars( s2.X1, LOGIN_X1_DEF );
   s2.X2[0] = LOGIN_X2_DEF;
   DW_2_Chars( s2.X3, LOGIN_X3_DEF );
   DW_2_Chars( s2.X4, LOGIN_X4_DEF );
   DW_2_Chars( s2.X5, LOGIN_X5_DEF );
   
   memcpy( pak.data, &s1, sizeof( s1 ) );
   size = sizeof( s1 );
   memcpy( &pak.data[size], pass, Chars_2_Word( s1.len ) );
   size += Chars_2_Word( s1.len );
   memcpy( &pak.data[size], &s2.X1, sizeof( s2.X1 ) );
   size += sizeof( s2.X1 );
   memcpy( &pak.data[size], &s2.ip, sizeof( s2.ip ) );
   size += sizeof( s2.ip );
   memcpy( &pak.data[size], &s2.X2, sizeof( s2.X2 ) );
   size += sizeof( s2.X2 );
   memcpy( &pak.data[size], &s2.status, sizeof( s2.status ) );
   size += sizeof( s2.status );
   memcpy( &pak.data[size], &s2.X3, sizeof( s2.X3 ) );
   size += sizeof( s2.X3 );
/*   memcpy( &pak.data[size], &s2.seq, sizeof( s2.seq ) );
/   size += sizeof( s2.seq );*/
   memcpy( &pak.data[size], &s2.X4, sizeof( s2.X4 ) );
   size += sizeof( s2.X4 );
   memcpy( &pak.data[size], &s2.X5, sizeof( s2.X5 ) );
   size += sizeof( s2.X5 );
#if ICQ_VER == 0x0004
   last_cmd[ seq_num - 1 ] = Chars_2_Word( pak.head.cmd );
#else
   last_cmd[ seq_num - 2 ] = Chars_2_Word( pak.head.cmd );
#endif
   SOCKWRITE( sok, &(pak.head.ver), size + sizeof( pak.head )- 2 );
} 

/* This routine sends the aknowlegement cmd to the
   server it appears that this must be done after
   everything the server sends us                 */
void ack_srv( int sok, int seq )
{
   net_icq_pak pak;
   
   Word_2_Chars( pak.head.ver, ICQ_VER );
   Word_2_Chars( pak.head.cmd, CMD_ACK );
   Word_2_Chars( pak.head.seq, seq );
   DW_2_Chars( pak.head.UIN, UIN);
   
   SOCKWRITE( sok, &(pak.head.ver), sizeof( pak.head ) - 2 );

}

void Display_Info_Reply( int sok, BYTE * pak )
{
   char *tmp;
   int len;
   
   M_print( SERVCOL "\nInfo for %ld\n", Chars_2_DW( &pak[0] ) );
   len = Chars_2_Word( &pak[4] );
   M_print( "Nick Name :\t%s\n", &pak[6] );
   tmp = (char *)&pak[6 + len ];
   len = Chars_2_Word((unsigned char *)tmp );
   M_print( "First name :\t%s\n", tmp+2 );
   tmp += len + 2;
   len = Chars_2_Word((unsigned char*) tmp );
   M_print( "Last name :\t%s\n", tmp+2 );
   tmp += len + 2;
   len = Chars_2_Word( (unsigned char*)tmp );
   M_print( "Email Address :\t%s\n", tmp+2 );
   tmp += len + 2;
   if ( *tmp == 1 )
   {
      M_print( "No authorization needed." NOCOL "\n" );
   }
   else
   {
      M_print( "Must request authorization." NOCOL "\n" );
   }
/*   ack_srv( sok, Chars_2_Word( pak.head.seq ) ); */
}

void Display_Ext_Info_Reply( int sok, BYTE * pak )
{
   unsigned char *tmp;
   int len;

   M_print( SERVCOL "\nMore Info for %ld\n", Chars_2_DW( &pak[0] ) );
   len = Chars_2_Word( &pak[4] );
   M_print( "City         :\t%s\n", &pak[6] );
   if ( Get_Country_Name( Chars_2_Word(&pak[6+len]) ) != NULL )
      M_print( "Country      :\t%s\n",Get_Country_Name( Chars_2_Word(&pak[6+len]) ) );
   else
      M_print( "Country Code :\t%d\n", Chars_2_Word( &pak[6+len] ) );
   M_print( "Country Status :\t%d\n", pak[len+8]  );
   tmp = &pak[9 + len ];
   len = Chars_2_Word( tmp );
   M_print( "State        :\t%s\n", tmp+2 );
   if ( Chars_2_Word( tmp+2+len ) != 0xffff )
      M_print( "Age          :\t%d\n", Chars_2_Word( tmp+2+len ) );
   else
      M_print( "Age          :\tNot Entered\n");
   if (*(tmp + len + 4) == 2 )
      M_print( "Sex          :\tMale\n" );
   else if (*(tmp + len + 4) == 1 )
      M_print( "Sex          :\tFemale\n" );
   else
#ifdef FUNNY_MSGS
      M_print( "Sex          :\tYes please!\n" );
#else
      M_print( "Sex          :\tNot specified\n" );
#endif
   tmp += len + 5;
   len = Chars_2_Word( tmp );
//   rus_conv( "wk", tmp+2 );
   M_print( "Phone Number :\t%s\n", tmp+2 );
   tmp += len + 2;
   len = Chars_2_Word( tmp );
//   rus_conv( "wk", tmp+2 );
   M_print( "Home Page    :\t%s\n", tmp+2 );
   tmp += len + 2;
   len = Chars_2_Word( tmp );
//   rus_conv( "wk", tmp+2 );
   M_print( "About        :\n%s\n", tmp+2 );
/*   ack_srv( sok, Chars_2_Word( pak.head.seq ) ); */
}

void Display_Search_Reply( int sok, BYTE * pak )
{
   char *tmp;
   int len;
//   M_print( SERVCOL "\nUser found %ld\n", Chars_2_DW( &pak[0] ) );
   len = Chars_2_Word( &pak[4] );
//   rus_conv( "wk", &pak[6] );
//   M_print( "Nick Name :\t%s\n", &pak[6] );
//	userFound.m_found_list=&pak[6];
   tmp = (char*) &pak[6 + len ];
   len = Chars_2_Word((unsigned char*) tmp );
//   rus_conv( "wk", tmp+2 );
//   M_print( "First name :\t%s\n", tmp+2 );
   tmp += len + 2;
   len = Chars_2_Word((unsigned char*) tmp );
//   rus_conv( "wk", tmp+2 );
//   M_print( "Last name :\t%s\n", tmp+2 );
   tmp += len + 2;
   len = Chars_2_Word((unsigned char*) tmp );
//   rus_conv( "wk", tmp+2 );
//   M_print( "Email Address :\t%s\n", tmp+2 );
   tmp += len + 2;
   if ( *tmp == 1 )
   {
//      M_print( "No authorization needed." NOCOL "\n" );
   }
   else
   {
//      M_print( "Must request authorization." NOCOL "\n" );
   }
}

char* String_Print_UIN_Name(DWORD uin)
{
   int i;
   
   for ( i=0; i < Num_Contacts; i++ )
   {
      if ( Contacts[i].uin == uin )
         break;
   }

   if ( i == Num_Contacts )
   {
//      M_print( CLIENTCOL "%lu" NOCOL, uin );
      return "";
   }
   else
   {
//      M_print( "%s%s%s", CONTACTCOL, Contacts[i].nick, NOCOL );
      return Contacts[i].nick;
   }
}


void Do_Msg( SOK_T sok, DWORD type, WORD len, char * data, DWORD uin )
{
   char *tmp;
	int   x,m;
   char message[1024];
   char url_data[1024];
   char url_desc[1024];
   CString Message;

   if ( type == USER_ADDED_MESS )
   {
      tmp = strchr( data, '\xFE' );
      if ( tmp == NULL )
      {
         M_print( "Ack!!!!!!!  Bad packet\n" );
         return;
      }
      *tmp = 0;
      M_print( CONTACTCOL "\n%s" NOCOL " has added you to their contact list.\n", data );
      tmp++;
      data = tmp;
      tmp = strchr( tmp, '\xFE' );
      if ( tmp == NULL )
      {
         M_print( "Ack!!!!!!!  Bad packet\n" );
         return;
      }
      *tmp = 0;
//      rus_conv ("wk",data);
//      M_print( "First name    : " MESSCOL "%s" NOCOL "\n" , data );
      tmp++;
      data = tmp;
      tmp = strchr( tmp, '\xFE' );
      if ( tmp == NULL )
      {
         M_print( "Ack!!!!!!!  Bad packet\n" );
         return;
      }
      *tmp = 0;
//      rus_conv ("wk",data);
//      M_print( "Last name     : " MESSCOL "%s" NOCOL "\n" , data );
      tmp++;
      data = tmp;
      tmp = strchr( tmp, '\xFE' );
      *tmp = 0;
//      rus_conv ("wk",data);
//      M_print( "Email address : " MESSCOL "%s" NOCOL "\n" , data );
   }
   else if ( type == AUTH_REQ_MESS )
   {
	  CReqAuthDlg Authorize;
	  tmp = strchr( data, '\xFE' );
      *tmp = 0;
//      M_print( CONTACTCOL "\n%s" NOCOL " has requested your authorization to be added to their contact list.\n", data );
	  Authorize.m_ra_nick=data;
      tmp++;
      data = tmp;
      tmp = strchr( tmp, '\xFE' );
      if ( tmp == NULL )
      {
         M_print( "Ack!!!!!!!  Bad packet\n" );
         return;
      }
      *tmp = 0;
//      rus_conv ("wk",data);
//      M_print( "First name    : " MESSCOL "%s" NOCOL "\n" , data );
	  Authorize.m_ra_fname=data;
      tmp++;
      data = tmp;
      tmp = strchr( tmp, '\xFE' );
      if ( tmp == NULL )
      {
         M_print( "Ack!!!!!!!  Bad packet\n" );
         return;
      }
      *tmp = 0;
//      rus_conv ("wk",data);
//      M_print( "Last name     : " MESSCOL "%s" NOCOL "\n" , data );
	  Authorize.m_ra_lname=data;
      tmp++;
      data = tmp;
      tmp = strchr( tmp, '\xFE' );
      if ( tmp == NULL )
      {
         M_print( "Ack!!!!!!!  Bad packet\n" );
         return;
      }
      *tmp = 0;
//      rus_conv ("wk",data);
//      M_print( "Email address : " MESSCOL "%s" NOCOL "\n" , data );
	  Authorize.m_ra_email=data;
      tmp++;
      data = tmp;
      tmp = strchr( tmp, '\xFE' );
      if ( tmp == NULL )
      {
         M_print( "Ack!!!!!!!  Bad packet\n" );
         return;
      }
      *tmp = 0;
      tmp++;
      data = tmp;
      tmp = strchr( tmp, '\x00' );
      if ( tmp == NULL )
      {
         M_print( "Ack!!!!!!!  Bad packet\n" );
         return;
      }
      *tmp = 0;
//      rus_conv ("wk",data);
//      M_print( "Reason : " MESSCOL "%s" NOCOL "\n" , data );
	  Authorize.m_ra_reason=data;
	  Authorize.m_ra_uin=uin;
	  Authorize.DoModal();
	}
   else if (type == URL_MESS || type == MRURL_MESS)
   {

      tmp = strchr( data, '\xFE' );
      if ( tmp == NULL )
      {
         M_print( "Ack!!!!!!!  Bad packet\n" );
         return;
      }
      *tmp = 0;
//      rus_conv ("wk",data);
      strcpy (url_desc,data);
      tmp++;
      data = tmp;
//      rus_conv ("wk",data);
      strcpy (url_data,data);
      
//     sprintf (message,"Description: %s \n                          URL: %s",url_desc,url_data);  
      log_event("You received URL message",message,uin);

	  CRcvURLDlg receiveURL;

     if (!strcmp(String_Print_UIN_Name(  uin   ),"")) {
	  receiveURL.m_recv_uin=uin;
	  receiveURL.m_recv_url=url_data;
	  receiveURL.m_recv_desc=url_desc;
	  receiveURL.m_recv_nick="Unknown";
	  }
	  else {
	  receiveURL.m_recv_uin=uin;
	  receiveURL.m_recv_url=url_data;
	  receiveURL.m_recv_desc=url_desc;
	  receiveURL.m_recv_nick=String_Print_UIN_Name(  uin  );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区0| 国产亚洲午夜高清国产拍精品| 欧美一区二区三区公司| 国产婷婷色一区二区三区在线| 亚洲国产另类av| 成人污污视频在线观看| 欧美一级日韩不卡播放免费| 亚洲欧美另类综合偷拍| 丁香六月综合激情| 26uuu色噜噜精品一区| 一区二区三区欧美亚洲| 成人深夜在线观看| 久久精子c满五个校花| 天天综合色天天综合| 91年精品国产| 中文子幕无线码一区tr| 久久国产剧场电影| 91精品婷婷国产综合久久 | 亚洲午夜电影在线| 成a人片亚洲日本久久| 日本一区二区视频在线| 国产精品亚洲人在线观看| 欧美mv日韩mv国产网站app| 日韩国产一二三区| 欧美男男青年gay1069videost| 亚洲精品视频免费观看| 91免费版pro下载短视频| 国产嫩草影院久久久久| 成人av一区二区三区| 国产精品免费久久| 成人动漫一区二区在线| 国产精品国产三级国产aⅴ入口| 国产精品一区二区三区99| 久久久久亚洲蜜桃| 粉嫩av一区二区三区粉嫩| 国产喷白浆一区二区三区| 成人一区二区三区视频在线观看| 国产亚洲污的网站| 国产大片一区二区| 中文字幕av一区二区三区高| 91亚洲国产成人精品一区二三| 综合久久综合久久| 欧美性受xxxx| 视频一区欧美精品| 91精品国产综合久久福利软件| 久久精品国产亚洲高清剧情介绍| 欧美精品一区二区三区蜜桃视频 | 成人综合在线视频| 亚洲欧洲一区二区三区| 色婷婷亚洲综合| 亚洲午夜国产一区99re久久| 日韩视频免费直播| 国产九色精品成人porny| 18成人在线观看| 欧美精品色综合| 国产尤物一区二区| 成人欧美一区二区三区白人| 欧美日韩在线亚洲一区蜜芽| 久久精品国产久精国产| 国产精品国产三级国产aⅴ中文| 91蝌蚪porny成人天涯| 视频在线观看一区| 久久这里只有精品视频网| 成年人国产精品| 日韩电影一区二区三区| 国产欧美精品一区aⅴ影院| 91福利国产成人精品照片| 久久国产三级精品| 亚洲美女偷拍久久| 26uuu亚洲综合色| 欧美最猛黑人xxxxx猛交| 看电影不卡的网站| 一区二区三区四区高清精品免费观看| 9191成人精品久久| 成人av在线一区二区三区| 日韩精品视频网站| 国产精品全国免费观看高清 | 91在线小视频| 爽好多水快深点欧美视频| 久久久久青草大香线综合精品| 欧美日韩免费一区二区三区| 国产精品一二三在| 午夜精品在线视频一区| 中文字幕中文字幕一区| 欧美成人在线直播| 色香蕉久久蜜桃| 国产大陆精品国产| 免费观看久久久4p| 亚洲国产成人va在线观看天堂| 欧美激情一区二区三区全黄| 日韩免费看网站| 欧美体内she精高潮| 成人动漫在线一区| 激情综合网天天干| 日本成人在线一区| 亚洲国产日产av| 樱花草国产18久久久久| 国产精品天美传媒| 国产欧美日韩麻豆91| 久久综合狠狠综合久久综合88| 91精品国产色综合久久不卡蜜臀| 日本高清视频一区二区| 成人福利视频在线看| 国产精品996| 国产麻豆欧美日韩一区| 精品在线亚洲视频| 久久精品噜噜噜成人av农村| 日本欧美一区二区| 日韩av网站免费在线| 日韩中文字幕1| 日本怡春院一区二区| 免费成人在线视频观看| 日韩电影一二三区| 日韩精品一二三区| 美日韩一区二区三区| 日韩一区精品视频| 日本免费在线视频不卡一不卡二| 日日噜噜夜夜狠狠视频欧美人| 亚洲va欧美va天堂v国产综合| 午夜一区二区三区在线观看| 亚洲大片精品永久免费| 五月婷婷激情综合网| 蜜臀精品久久久久久蜜臀| 麻豆精品视频在线观看| 久久99久久久久| 高清日韩电视剧大全免费| 91在线观看美女| 欧美伦理影视网| 日韩欧美精品三级| 久久综合精品国产一区二区三区| 欧美极品另类videosde| 专区另类欧美日韩| 一区二区三区不卡视频在线观看| 天天综合天天综合色| 国产一区日韩二区欧美三区| 国产91精品久久久久久久网曝门| 成人av免费在线观看| 欧美日韩一级片在线观看| 欧美一区二区久久久| 久久久不卡网国产精品二区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产成人精品www牛牛影视| 97久久精品人人爽人人爽蜜臀| 欧美亚洲日本一区| 日韩精品一区二区三区视频| 亚洲国产高清不卡| 亚洲国产一区视频| 黄网站免费久久| 日本韩国一区二区三区| 日韩女优av电影| 亚洲欧洲日韩女同| 美女视频一区二区| av中文一区二区三区| 日韩欧美高清一区| 亚洲欧洲国产专区| 麻豆精品一二三| 91官网在线观看| 国产人成一区二区三区影院| 亚洲成av人片| 国产成a人无v码亚洲福利| 欧美午夜精品一区| 国产欧美一区二区精品性| 日韩精品乱码av一区二区| av中文字幕在线不卡| 欧美一级一区二区| 亚洲黄色尤物视频| 成人午夜在线播放| 精品日韩一区二区三区| 亚洲大尺度视频在线观看| 波多野结衣视频一区| 91精品国产综合久久香蕉的特点| 亚洲欧美在线观看| 国产激情精品久久久第一区二区| 欧美日韩黄视频| 亚洲猫色日本管| 岛国精品在线播放| 国产亚洲人成网站| 国内成人精品2018免费看| 欧美精品第1页| 亚洲午夜在线视频| 日本韩国一区二区| 中文字幕欧美一区| bt7086福利一区国产| 久久精品一区二区三区不卡牛牛| 一区二区在线观看视频在线观看| 国产a精品视频| 久久久国际精品| 国产精品一区二区在线观看不卡 | 久久色在线视频| 日韩av一级电影| 在线成人午夜影院| 亚洲国产aⅴ成人精品无吗| 欧美综合亚洲图片综合区| 亚洲精品国产成人久久av盗摄| 不卡的av在线| 中文字幕一区av| 色婷婷激情久久| 亚洲一区二区三区美女| 欧美日韩大陆在线| 日本v片在线高清不卡在线观看|