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

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

?? micqcomponents.cpp

?? 聊天程序
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
	   strcpy(alter_cmd, "alter");
   if(msga_cmd[0]=='\0')
	   strcpy(msga_cmd, "msga");
   if(url_cmd[0]=='\0')
	   strcpy(url_cmd, "url");


   if(change_cmd[0]=='\0')
	   strcpy(change_cmd, "change");
   if ( Verbose )
   {
      M_print( "UIN = %ld\n", UIN );
      M_print( "port = %ld\n", remote_port );
      M_print( "passwd = %s\n", passwd );
      M_print( "server = %s\n", server );
      M_print( "status = %ld\n", set_status );
      M_print( "# of contacts = %d\n", Num_Contacts );
      M_print( "UIN of contact[0] = %ld\n", Contacts[0].uin );
      M_print( "Message_cmd = %s\n", message_cmd );
   }
   if (UIN == 0 ) 
   {
      fprintf( stderr, "Bad .micqrc file.  No UIN found aborting.\a\n" );
      exit( 1);
   }
}

/*******************************************************
Gets config info from the rc file in the users home 
directory.
********************************************************/
void Get_Unix_Config_Info( void )
{
   char *path;
   FD_T rcf;

#ifdef _WIN32
   path = ".\\";
#endif

#ifdef UNIX
   path = getenv( "HOME" );
   strcat( path, "/" );
#endif

#ifdef __amigaos__
   path = "PROGDIR:";
#endif

   strcpy( rcfile, path );
   strcat( rcfile, ".micqrc" );
   rcf = open( rcfile, O_RDONLY );
   if ( rcf == -1 )
   {
      if ( errno == ENOENT ) /* file not found */
      {
         Initalize_RC_File();
      }
      else
      {
         perror( "Error reading config file exiting " );
         exit( 1 );
      }
   }
   else
   {
      Read_RC_File( rcf );
   }
}

void Print_IP( DWORD uin )
{
   int i;
#if 0
   struct in_addr sin;
#endif
   
   for ( i=0; i< Num_Contacts; i++ )
   {
      if ( Contacts[i].uin == uin )
      {
         if ( * (DWORD *)Contacts[i].current_ip != -1L )
         {
           M_print( "%d.%d.%d.%d", Contacts[i].current_ip[0],
                                   Contacts[i].current_ip[1],
                                   Contacts[i].current_ip[2],
                                   Contacts[i].current_ip[3] );
#if 0
            sin.s_addr = Contacts[i].current_ip;
            M_print( "%s", inet_ntoa( sin ) );
#endif
         }
         else
         {
            M_print( "unknown" );
         }
         return;
      }
   }
   M_print( "unknown" );
}

/************************************************
Gets the TCP port of the specified UIN
************************************************/
DWORD Get_Port( DWORD uin )
{
   int i;
   
   for ( i=0; i< Num_Contacts; i++ )
   {
      if ( Contacts[i].uin == uin )
      {
         return Contacts[i].port;
      }
   }
   return -1L;
}

/********************************************
Converts an intel endian character sequence to
a DWORD
*********************************************/
DWORD Chars_2_DW( unsigned char *buf )
{
   DWORD i;
   
   i= buf[3];
   i <<= 8;
   i+= buf[2];
   i <<= 8;
   i+= buf[1];
   i <<= 8;
   i+= buf[0];
   
   return i;
}

/********************************************
Converts an intel endian character sequence to
a WORD
*********************************************/
WORD Chars_2_Word( unsigned char *buf )
{
   WORD i;
   
   i= buf[1];
   i <<= 8;
   i += buf[0];
   
   return i;
}

/********************************************
Converts a DWORD to
an intel endian character sequence 
*********************************************/
void DW_2_Chars( unsigned char *buf, DWORD num )
{
   buf[3] = ( unsigned char ) ((num)>>24)& 0x000000FF;
   buf[2] = ( unsigned char ) ((num)>>16)& 0x000000FF;
   buf[1] = ( unsigned char ) ((num)>>8)& 0x000000FF;
   buf[0] = ( unsigned char ) (num) & 0x000000FF;
}

/********************************************
Converts a WORD to
an intel endian character sequence 
*********************************************/
void Word_2_Chars( unsigned char *buf, WORD num )
{
   buf[1] = ( unsigned char ) (((unsigned)num)>>8) & 0x00FF;
   buf[0] = ( unsigned char ) ((unsigned)num) & 0x00FF;
}

void Prompt( void )
{
   /*M_print( SERVCOL "Micq> " NOCOL );*/
   fflush( stdout );
   
}

void Time_Stamp( void )
{
   struct tm *thetime;
   time_t p;
   
   p=time(NULL);
   thetime=localtime(&p);

   M_print( "%.02d:%.02d:%.02d",thetime->tm_hour,thetime->tm_min,thetime->tm_sec );
}

void Add_User( SOK_T sok, DWORD uin, char *name )
{
   FD_T rcf;

   rcf = open( rcfile, O_RDWR | O_APPEND );
   M_fdprint( rcf, "%d %s\n", uin, name );
   close( rcf );
   Contacts[ Num_Contacts ].uin = uin;
   Contacts[ Num_Contacts ].status = STATUS_OFFLINE;
   Contacts[ Num_Contacts ].last_time = -1L;
   Contacts[ Num_Contacts ].current_ip[0] = 0xff;
   Contacts[ Num_Contacts ].current_ip[1] = 0xff;
   Contacts[ Num_Contacts ].current_ip[2] = 0xff;
   Contacts[ Num_Contacts ].current_ip[3] = 0xff;
   Contacts[ Num_Contacts ].port = 0;
   Contacts[ Num_Contacts ].sok = (SOK_T ) -1L;
   Contacts[ Num_Contacts ].vis_list = FALSE;
   memcpy( Contacts[ Num_Contacts ].nick, name, sizeof( Contacts->nick )  );
   Num_Contacts++;
   snd_contact_list( sok );
}
/************************************************
 *   This function should save your auto reply messages in the rc file.
 *  
 *   NOTE: the code isn't realy neat yet, I hope to change that soon.
 *  
 *   Added on 6-20-98 by Fryslan
 *  
 ***********************************************/

int Save_RC()
{
   FD_T rcf;
   time_t t;
   int i, j;
 
   rcf = open( rcfile, O_RDWR );
   if ( rcf == -1 ) return -1;
   M_fdprint( rcf, "# This file was generated by Another ICQ of %s %s\n",__TIME__,__DATE__);
   t = time( NULL );
   M_fdprint( rcf, "# This file was generated on %s", ctime( &t ) );   
   M_fdprint( rcf, "UIN %d\n", UIN );
   M_fdprint( rcf, "Password %s\n", passwd );
   M_fdprint( rcf, "Status %d\n", Current_Status );
   M_fdprint( rcf, "Server %s\n", "icq1.mirabilis.com" );
   M_fdprint( rcf, "Port %d\n", 4000 );
   if ( Logging )
      M_fdprint( rcf, "#No_Log\n" );
   else
      M_fdprint( rcf, "No_Log\n" );
   if ( Russian )
      M_fdprint( rcf, "\nRussian\n#if you want KOI8-R to CP1251 Russain translation uncomment the above line.\n" );
   else
      M_fdprint( rcf, "\n#Russian\n#if you want KOI8-R to CP1251 Russain translation uncomment the above line.\n" );
   if ( auto_resp )
      M_fdprint( rcf, "\n#Automatic responses on.\nAuto\n" );
   else
      M_fdprint( rcf, "\n#Automatic responses off.\n#Auto\n" );

   M_fdprint( rcf, "\n# Below are the commands which can be changed to most anything you want :)\n" );
   M_fdprint( rcf, "message_cmd %s\n",message_cmd);
   M_fdprint( rcf, "info_cmd %s\n",info_cmd);
   M_fdprint( rcf, "quit_cmd %s\n",quit_cmd);
   M_fdprint( rcf, "reply_cmd %s\n",reply_cmd);
   M_fdprint( rcf, "again_cmd %s\n",again_cmd);
   M_fdprint( rcf, "list_cmd %s\n",list_cmd);
   M_fdprint( rcf, "away_cmd %s\n",away_cmd);
   M_fdprint( rcf, "na_cmd %s\n",na_cmd);
   M_fdprint( rcf, "dnd_cmd %s\n",dnd_cmd);
   M_fdprint( rcf, "online_cmd %s\n",online_cmd);
   
   M_fdprint( rcf, "occ_cmd %s\n",occ_cmd);
   M_fdprint( rcf, "ffc_cmd %s\n",ffc_cmd);
   M_fdprint( rcf, "inv_cmd %s\n",inv_cmd);
   M_fdprint( rcf, "search_cmd %s\n",search_cmd);
   M_fdprint( rcf, "status_cmd %s\n",status_cmd);
   M_fdprint( rcf, "auth_cmd %s\n",auth_cmd);
   M_fdprint( rcf, "auto_cmd %s\n",auto_cmd);
   M_fdprint( rcf, "add_cmd %s\n",add_cmd);
   M_fdprint( rcf, "change_cmd %s\n",change_cmd);
   M_fdprint( rcf, "save_cmd %s\n",save_cmd);
   M_fdprint( rcf, "alter_cmd %s\n",alter_cmd);
   M_fdprint( rcf, "msga_cmd %s\n",msga_cmd);
   M_fdprint( rcf, "url_cmd %s\n",url_cmd);
   M_fdprint( rcf, "update_cmd %s\n",update_cmd);

   M_fdprint( rcf, "\n#Now auto response messages\n" );	 
   M_fdprint( rcf, "auto_rep_str_away %s\n",auto_rep_str_away);
   M_fdprint( rcf, "auto_rep_str_na %s\n",auto_rep_str_na);	
   M_fdprint( rcf, "auto_rep_str_dnd %s\n",auto_rep_str_dnd);
   M_fdprint( rcf, "auto_rep_str_occ %s\n",auto_rep_str_occ);
   M_fdprint( rcf, "auto_rep_str_inv %s\n",auto_rep_str_inv);


   M_fdprint( rcf, "\n# Ok now the contact list\n" );
   M_fdprint( rcf, "Contacts\n" );
	/* adding contacts to the rc file. */
	/* we start counting at zero in the index. */
	
   for (i=0;i<Num_Contacts;i++)
   {
      if ( ! ( Contacts[i].uin & 0x80000000L ) )
      {
         if ( Contacts[i].vis_list )
         {
            M_fdprint( rcf, "*" );
         }
	 M_fdprint( rcf, "%d %s\n",Contacts[i].uin,Contacts[i].nick);
/*	 M_fdprint( rcf, "#Begining of aliases for %s\n", Contacts[i].nick ); */
	 for ( j=0; j< Num_Contacts; j++ )
	 {
	    if ( Contacts[j].uin == -Contacts[i].uin )
	    {
	       M_fdprint( rcf, "%s ", Contacts[j].nick );
	    }
	 }
	 M_fdprint( rcf, "\n" );
/*	 M_fdprint( rcf, "\n#End of aliases for %s\n", Contacts[i].nick ); */
      }
   }
	M_fdprint( rcf, "\n" );
   return close( rcf );
}

/*************************************************************************
 *
 *      Function: log_event
 *
 *      Purpose: Log the event provided to the log with a time stamp.
 *      Andrew Frolov dron@ilm.net
 * 
 *      6-20-98 Added names to the logs. Fryslan
 * 
 *************************************************************************/

int log_event( char *desc, char *msg, DWORD uin )
{
   FILE    *msgfd;
   char    buffer[256];
   time_t  timeval;
   char *path;

   if ( ! Logging )
      return 0;
      
#ifdef _WIN32
   path = ".\\";
#endif

#ifdef UNIX
   path = getenv( "HOME" );
   path = strdup( path );
   strcat( path, "/" );
#endif

#ifdef __amigaos__
   path = "PROGDIR:";
#endif

   strcpy( buffer, path );
   strcat( buffer, "micq_log" );


   if( ( msgfd = fopen(buffer, "a") ) == (FILE *) NULL ) 
   {
           fprintf(stderr, "Couldn't open %s for logging\n",
                            buffer);
           return(-1);
   }
   timeval = time(0);
	if ( ! strcasecmp(UIN2nick(uin),"Unknow UIN"))
	   fprintf(msgfd, "\n%-24.24s %s %ld\n%s\n", ctime(&timeval), desc, uin, msg);
	else
	   fprintf(msgfd, "\n%-24.24s %s %s\n%s\n", ctime(&timeval), desc, UIN2nick(uin), msg);
	 
   fclose(msgfd);
#ifdef UNIX
   chmod( buffer, 0600 );
   free( path );
#endif
   return(0);
}

void clrscr(void)
{
	/* clears the screen  */
	int x;
	char newline = '\n';	
	for(x = 0; x<=25; x++)
		M_print("%c",newline);
}

/************************************************************
Displays a hex dump of buf on the screen.
*************************************************************/
void Hex_Dump( void *buffer, size_t len )
{
      int i;
      int j;
      char *buf;
      
      buf = (char*)buffer;
      for ( i=0 ; i < len; i++ )
      {
         M_print( "%02x ", ( unsigned char ) buf[i] );
         if ( ( i & 15 ) == 15 )
         {
            M_print( "  " );
            for ( j = 15; j >= 0; j-- )
            {
               if ( buf[i-j] > 31 )
                  M_print( "%c", buf[i-j] );
               else
                  M_print( "." );
               if ( ( (i-j) & 3 ) == 3 )
                  M_print( " " );
            }
            M_print( "\n" );
         }
         else if ( ( i & 7 ) == 7 )
            M_print( "- " );
         else if ( ( i & 3 ) == 3 )
            M_print( "  " );
      }
      M_print( "  " );
      for ( j = i % 16; j > 0; j-- )
      {
         if ( buf[i-j] > 31 )
            M_print( "%c", buf[i-j] );
         else
            M_print( "." );
         if ( ( (i-j) & 3 ) == 3 )
            M_print( " " );
      }
      M_print( "\n" );
}

/**************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美高清视频一二三区 | www激情久久| 一区二区欧美精品| 色综合久久综合网欧美综合网 | 国产精品天天摸av网| 国产精品久久久久一区二区三区| 亚洲国产成人高清精品| 国产精品小仙女| 欧美日韩免费一区二区三区视频| 久久欧美中文字幕| 亚洲大片精品永久免费| 丁香五精品蜜臀久久久久99网站| 欧美精品视频www在线观看| 国产精品国模大尺度视频| 麻豆成人在线观看| 精品视频资源站| 《视频一区视频二区| 国产精品一区二区你懂的| 欧美一区二区三区性视频| 亚洲精品久久久蜜桃| 粉嫩av一区二区三区在线播放| 91精品一区二区三区在线观看| 亚洲精品中文在线影院| 91丨porny丨蝌蚪视频| 日本一区二区三区视频视频| 九色综合狠狠综合久久| 日韩一区二区三区四区五区六区 | 色天使色偷偷av一区二区| 欧美国产综合色视频| 国产成人av电影| 久久久久久久一区| 国产剧情在线观看一区二区| 精品国产免费久久| 久久99国产精品久久| 久久影音资源网| 国产99久久久国产精品潘金网站| 久久日韩精品一区二区五区| 精品在线播放午夜| 亚洲精品一区二区三区四区高清| 九色|91porny| 国产欧美精品区一区二区三区 | 亚洲图片另类小说| 成人av在线一区二区| 国产精品卡一卡二| 91色视频在线| 香蕉久久夜色精品国产使用方法 | 色激情天天射综合网| 亚洲人成在线观看一区二区| 色综合天天综合色综合av | 国产精品久久久久影院色老大| 成人短视频下载| 亚洲三级电影网站| 欧美日韩精品二区第二页| 日韩高清不卡在线| 精品国产91亚洲一区二区三区婷婷 | 欧美性xxxxxxxx| 免费不卡在线观看| 中文字幕第一区综合| 欧美在线一二三四区| 日韩**一区毛片| 国产婷婷色一区二区三区四区| 9人人澡人人爽人人精品| 亚洲成人免费影院| 久久久久久久久久久黄色| 成人激情动漫在线观看| 亚洲小少妇裸体bbw| 日韩视频不卡中文| 成人av在线电影| 日日欢夜夜爽一区| 国产免费成人在线视频| 欧美久久久久久蜜桃| 国产不卡在线一区| 丝袜a∨在线一区二区三区不卡| 精品国产露脸精彩对白| 91福利视频网站| 国产精品一区二区在线播放| 亚洲一区在线观看网站| www国产精品av| 欧美色网站导航| 国产.欧美.日韩| 久久电影网电视剧免费观看| 亚洲日本韩国一区| 精品国产91久久久久久久妲己 | 成人av在线电影| 日韩av一级电影| 一区二区三区在线免费| 精品av久久707| 91精品中文字幕一区二区三区| 91女人视频在线观看| 狠狠色丁香久久婷婷综| 午夜国产精品一区| 亚洲欧美日本韩国| 久久精品视频在线免费观看| 欧美一区二区三区免费在线看 | 精品日韩一区二区三区| 欧美日韩在线播| a在线欧美一区| 日本不卡在线视频| 亚洲一区二区不卡免费| 中文字幕精品在线不卡| 欧美精品一区二区高清在线观看 | 久久欧美一区二区| 日韩一级免费一区| 欧美伦理电影网| 欧美亚洲国产怡红院影院| 色婷婷亚洲综合| 91免费在线看| 色综合一区二区三区| 一本色道久久综合狠狠躁的推荐| 成人免费视频视频在线观看免费| 国产mv日韩mv欧美| 国产自产高清不卡| 韩国一区二区三区| 国产精品中文字幕日韩精品| 国产乱淫av一区二区三区 | 日韩 欧美一区二区三区| 亚洲成av人片在www色猫咪| 亚洲伊人色欲综合网| 亚洲国产日韩一区二区| 亚洲第一激情av| 五月婷婷激情综合| 奇米一区二区三区| 精品一区二区三区香蕉蜜桃| 久久99日本精品| 紧缚奴在线一区二区三区| 日韩极品在线观看| 亚洲黄色在线视频| 手机精品视频在线观看| 一区二区三区精品| 一区二区三区四区五区视频在线观看| 亚洲色图制服丝袜| 亚洲人成7777| 亚洲丝袜自拍清纯另类| 中文字幕精品综合| 91精品国产一区二区人妖| 日韩天堂在线观看| 日韩欧美国产麻豆| 日韩欧美一区中文| 日韩美女天天操| 久久精品一二三| 26uuu国产一区二区三区| 精品福利二区三区| 久久久欧美精品sm网站| 精品盗摄一区二区三区| 最新久久zyz资源站| 亚洲资源中文字幕| 美国十次综合导航| 国产曰批免费观看久久久| av不卡一区二区三区| 色婷婷综合久久久中文一区二区| 欧美日韩五月天| 日韩精品一区二区三区中文不卡| 制服丝袜日韩国产| 中文字幕精品一区二区三区精品| 亚洲人xxxx| 视频一区欧美日韩| 欧美在线影院一区二区| 精品av久久707| 亚洲女同女同女同女同女同69| 樱桃视频在线观看一区| 日本美女一区二区三区视频| 日韩av一级电影| 97久久精品人人澡人人爽| 欧美色图天堂网| 久久青草国产手机看片福利盒子| 中文字幕一区二区三区精华液| 日本系列欧美系列| 成人做爰69片免费看网站| 欧美在线一二三| 久久嫩草精品久久久久| 日韩网站在线看片你懂的| 亚洲综合一二区| 久久99在线观看| 色久综合一二码| 日韩欧美中文字幕精品| 国产精品免费视频网站| 亚洲日本成人在线观看| 美女一区二区久久| 成+人+亚洲+综合天堂| 91.麻豆视频| 亚洲国产欧美一区二区三区丁香婷| 麻豆成人久久精品二区三区红 | 国产美女精品在线| caoporn国产精品| 欧美v日韩v国产v| 一级精品视频在线观看宜春院| 国产 日韩 欧美大片| 91麻豆精品91久久久久同性| 成人欧美一区二区三区小说| 久久精品国产久精国产爱| 欧美日韩亚洲综合| 国产丝袜美腿一区二区三区| 日韩avvvv在线播放| 色丁香久综合在线久综合在线观看| 久久人人爽人人爽| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美绝品在线观看成人午夜影视 | 欧美日韩国产片| 中文欧美字幕免费| 亚洲国产精品一区二区久久|