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

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

?? fxdb.cpp

?? linux-下的fetion-0.8.1。包括所有源代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*************************************************************************** *   Copyright (C) 2008 by DDD                                          * *   dedodong@163.com                                                     * *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * *   This program is distributed in the hope that it will be useful,       * *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * *   GNU General Public License for more details.                          * *                                                                         * *   You should have received a copy of the GNU General Public License     * *   along with this program; if not, write to the                         * *   Free Software Foundation, Inc.,                                       * *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * ***************************************************************************/#include "fxdb.h"#include "fxEncrypt.h"//#include "appconfig.h"#include <QTextStream>#include <QFile>#define AUTOLG   "autologin021"#define SERVERADD   "cacheserveradd"#define MUTE   "mute"#define AUTOSHOWMSG   "autoshowmsg"#define PROXY   "proxy"#define CATSMS   "catsms"#define ACINFO   "acinfo"#define SQL_MAXLEN 1024*3#define MAX_PATH 512#ifdef WIN32#else#include <sys/types.h>#include <pwd.h>#endif/******************************** * * table  AUTOLG  * *	flag   *		1  auto login *		0  no *  id  *		the fetion id *  len_id  *		the len of fetion's id *  pwd *      the password *  len_pwd *      the len of the password * * login_state *     login state..(add by iptton) * * * table  SERVERADD   * *	id   *		the id of fetion *	proxy *		the proxy of the fetion server * * * table fx****usr * uid id of opter * msg message connect , it is base64, and XOR * msg_len msg 's len * date_time  date of message * * * table PROXY  * type * host * port * name * pwd * * table ACINFO	 * id  *		the id of fetion * mobilenm *      the mobile number of     * local_name *      the account's local_name * nickname *      the account's nickname * impresa                   *      the account's impresa * showname                   *      the account's showname * ******************************/sqlite3 * pdb = NULL; //global share sql variablechar sql[SQL_MAXLEN] = {0};bool init_db(){	char **result;	char *perrmsg;	int nrow, ncol;	if (pdb)		return true;		char* DBFILEPATH = (char*) malloc(sizeof(char)*(MAX_PATH+1));#ifdef WIN32#else	struct passwd *pwd;	if ((pwd = getpwuid (geteuid ())) != NULL) {		strcpy (DBFILEPATH, pwd->pw_dir);		if (DBFILEPATH[ strlen(DBFILEPATH) - 1] != '/')			strcat (DBFILEPATH, "/");		strcat (DBFILEPATH, ".");	}#endif	strcat (DBFILEPATH, DBNAME);	//open db	if (sqlite3_open(DBFILEPATH, &pdb )!= SQLITE_OK ) {		pdb = NULL;		return false ;	}	delete DBFILEPATH;	// Are there DBTABLE ? if not, create it.	memset(sql, 0, SQL_MAXLEN);	sprintf(sql,"select * from %s limit 1", AUTOLG);	if( sqlite3_get_table(pdb, sql, &result, &nrow, &ncol, &perrmsg) != SQLITE_OK)	{		//create the table		memset(sql, 0, SQL_MAXLEN);		sprintf(sql, "create table %s(flag, id, len_id, pwd, len_pwd, login_state)", AUTOLG);		sqlite3_exec(pdb, sql, 0, 0, &perrmsg);	}	sqlite3_free_table(result);	// Are there DBTABLE ? if not, create it.	memset(sql, 0, SQL_MAXLEN);	sprintf(sql,"select * from %s limit 1", SERVERADD);	if( sqlite3_get_table(pdb, sql, &result, &nrow, &ncol, &perrmsg) != SQLITE_OK)	{		//create the table		memset(sql, 0, SQL_MAXLEN);		sprintf(sql, "create table %s(id,proxy)", SERVERADD);		sqlite3_exec(pdb, sql, 0, 0, &perrmsg);	}	sqlite3_free_table(result);	// Are there PROXY ? if not, create it.	memset(sql, 0, SQL_MAXLEN);	sprintf(sql,"select * from %s limit 1", PROXY);	if( sqlite3_get_table(pdb, sql, &result, &nrow, &ncol, &perrmsg) != SQLITE_OK)	{		//create the table		memset(sql, 0, SQL_MAXLEN);		sprintf(sql, "create table %s(type, host, port, name, pwd)", PROXY);		sqlite3_exec(pdb, sql, 0, 0, &perrmsg);	}	sqlite3_free_table(result);	return true;}void destoy_db(){	if(pdb)		sqlite3_close(pdb);	pdb = NULL;}bool isAutoLogin(char** id, char** pwd, int* loginState){	if (!init_db())		return false;	char **result;	char *perrmsg;	int nrow, ncol;	int ret;	// select url from databse 	memset(sql, 0, SQL_MAXLEN);	sprintf(sql,"select id, pwd, len_id, len_pwd, login_state from %s where flag=\"1\" ", AUTOLG);	ret = sqlite3_get_table(pdb, sql, &result, &nrow, &ncol, &perrmsg);	if(ret != SQLITE_OK)		return false;	bool res = false;	if(nrow) {		res = true;		if (id && pwd)		{			*id = encryPWD(result[5], strlen(result[5]), false);			*pwd = encryPWD(result[6], strlen(result[6]), false);			int len_id = atoi(result[7]);			int len_pwd = atoi(result[8]);			(*id)[len_id] = '\0';			(*pwd)[len_pwd] = '\0';			if (loginState)			{				if (result[9])					*loginState = atoi (result[9]);				else					*loginState = 0;			}		}	} 	sqlite3_free_table(result);	//destoy_db();	return res; }void disAutoLogin(){	if (!init_db())		return ;	// select url from databse 	memset(sql, 0, SQL_MAXLEN);	sprintf(sql,"delete from %s", AUTOLG);	//exec the delete table sql	sqlite3_exec(pdb, sql, 0, 0, 0); 	//destoy_db();}bool setAutoLogin(const char* id, const char*pwd, int login_state){	if (!id || !pwd)		return false;	disAutoLogin();	char *en_id = encryPWD(id, strlen(id), true);	char *en_pwd = encryPWD(pwd, strlen(pwd), true);	if (!en_id || !en_pwd)		return false;	// insert data to databse 	memset(sql, 0, SQL_MAXLEN);	sprintf(sql,"insert into %s values(\"1\", \"%s\", \"%d\", \"%s\", \"%d\", \"%d\")",			AUTOLG, en_id, strlen(id), en_pwd, strlen(pwd), login_state);	sqlite3_exec(pdb, sql, 0, 0, 0);	if (en_id)		free(en_id);	if (en_pwd)		free(en_pwd);	//destoy_db();	return true;}char *getCacheServerAdd(const char* id){	if (!init_db())		return false;	char* proxy = NULL;	char **result;	char *perrmsg;	int nrow, ncol;	int ret;	// select url from databse 	memset(sql, 0, SQL_MAXLEN);	sprintf(sql,"select proxy from %s where id=\"%s\" ", SERVERADD, id);	ret = sqlite3_get_table(pdb, sql, &result, &nrow, &ncol, &perrmsg);	if(ret != SQLITE_OK)		return false;	if(nrow) {		proxy = (char*)malloc(strlen(result[1])+1);		strcpy(proxy,result[1]);	}	sqlite3_free_table(result);	return proxy;}void disProxy(){	if (!init_db())		return ;	// select url from databse 	memset(sql, 0, SQL_MAXLEN);	sprintf(sql,"delete from %s", PROXY);	//exec the delete table sql	sqlite3_exec(pdb, sql, 0, 0, 0); 	//destoy_db();}bool isSetProxy(PROXY_ITEM *proxy_item){	if (!init_db())		return false;	char **result;	char *perrmsg;	int nrow, ncol;	int ret;	// select url from databse 	memset(sql, 0, SQL_MAXLEN);	sprintf(sql,"select type, host, port, name, pwd from %s", PROXY);	ret = sqlite3_get_table(pdb, sql, &result, &nrow, &ncol, &perrmsg);	if(ret != SQLITE_OK)		return false;	bool res = false;	if(nrow) {		res = true;		if (proxy_item)		{			proxy_item->host = strdup(result[6]);			proxy_item->port = strdup(result[7]);			//bad coding... fuck!!!!			if (atoi(result[8]) == 10 && atoi(result[9]) == 10)			{				proxy_item->name = NULL;				proxy_item->pwd = NULL;			} else {				proxy_item->name = strdup(result[8]);				proxy_item->pwd  = strdup(result[9]);			}			switch (atoi(result[5]))			{				case 0:					proxy_item->type = PROXY_DIRECT;					break;				case 1:					proxy_item->type = PROXY_HTTP;					break;				case 2:					proxy_item->type = PROXY_SOCKS4;					break;				case 3:					proxy_item->type = PROXY_SOCKS5;					break;				case 4:					proxy_item->type = PROXY_MAX;					break;			}		}	} 	sqlite3_free_table(result);	return res; }bool setProxy(PROXY_ITEM *proxy_item){	if (!proxy_item || !init_db())		return false;	disProxy();	// insert data to databse 	memset(sql, 0, SQL_MAXLEN);	sprintf(sql,"insert into %s values(\"%d\", \"%s\", \"%s\", \"%s\", \"%s\")",			PROXY, proxy_item->type, proxy_item->host, proxy_item->port, 			proxy_item->name?proxy_item->name:"10", proxy_item->pwd?proxy_item->pwd:"10");	sqlite3_exec(pdb, sql, 0, 0, 0);	//destoy_db();	return true;}bool setCacheServerAdd(const char* id, const char* prxy){	if (!init_db())		return false;	// select url from databse 	memset(sql, 0, SQL_MAXLEN);	sprintf(sql,"delete from %s where id =\"%s\"", SERVERADD, id);	//exec the delete table sql	sqlite3_exec(pdb, sql, 0, 0, 0); 	// insert data to databse 	memset(sql, 0, SQL_MAXLEN);	sprintf(sql,"insert into %s values(\"%s\", \"%s\")", SERVERADD, id, prxy);	sqlite3_exec(pdb, sql, 0, 0, 0);	return true;}void cleanCacheServerAdd(){	if (!init_db())		return ;	// select url from databse 	memset(sql, 0, SQL_MAXLEN);	sprintf(sql,"delete from %s ", SERVERADD);	//exec the delete table sql	sqlite3_exec(pdb, sql, 0, 0, 0); }QString create_result(char **result, int nrow, int ncol);BOOL init_histroy_db(long usr){	static BOOL have_init = FALSE;	if (!init_db())		return FALSE;	if (have_init)		return TRUE;	char **result;	char *perrmsg;	int nrow, ncol;	// Are there DBTABLE ? if not, create it.	memset(sql, 0, SQL_MAXLEN);	sprintf(sql,"select * from fx%ldusr limit 1", usr);	if (sqlite3_get_table(pdb, sql, &result, &nrow, &ncol, &perrmsg) != SQLITE_OK)	{		//create the table		memset(sql, 0, SQL_MAXLEN);		sprintf(sql, "create table fx%ldusr(uid,msg text, msg_len, date_time NOT NULL DEFAULT CURRENT_TIMESTAMP)", usr);		//exec the create table sql		if( sqlite3_exec(pdb, sql, 0, 0, &perrmsg) != SQLITE_OK )		{			printf("exel create table %s\n", sql);			return FALSE;		}		sqlite3_free_table(result);		//creat index		memset(sql, 0, SQL_MAXLEN);		sprintf(sql,"create index uid_index on fx%ldusr(uid)", usr);		if (sqlite3_exec(pdb, sql, 0, 0, &perrmsg) != SQLITE_OK )		{			printf("exel create index %s\n", sql);			return FALSE;		}		else			sqlite3_free_table(result);	}	have_init = TRUE;	return TRUE;}void saveHistroyMsg(long usr, long uid, const char* msg, const char* date){	if (!init_histroy_db(usr))	{		printf("init_histrou fial \n");		return;	}	if (!msg)		return;	int msg_len = strlen(msg);	char * base64_msg = encryptXOR(msg, msg_len, KEY);	if (!base64_msg)		return;	//memset(sql, 0, sql_maxlen);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人高清在线| 一区2区3区在线看| 成人午夜视频在线观看| 国产欧美日韩亚州综合| 成人久久18免费网站麻豆| 国产精品白丝在线| 日本高清免费不卡视频| 夜夜精品视频一区二区| 欧美一区二区三区四区在线观看| 麻豆精品国产91久久久久久| 久久久蜜臀国产一区二区| 97久久超碰国产精品| 亚洲一线二线三线视频| 日韩精品一区二区三区蜜臀 | 精品av综合导航| 粉嫩久久99精品久久久久久夜| 国产精品国产自产拍高清av| 欧美写真视频网站| 精品伊人久久久久7777人| 国产精品久久久久久亚洲毛片 | 欧美日韩亚洲丝袜制服| 麻豆精品久久久| 国产精品国产三级国产普通话蜜臀 | 成人听书哪个软件好| 亚洲国产精品久久久久婷婷884| 欧美成人性福生活免费看| 成人综合婷婷国产精品久久免费| 一片黄亚洲嫩模| 国产亚洲欧美在线| 欧美图区在线视频| 国产乱码精品一区二区三区忘忧草| 亚洲欧美日韩国产成人精品影院| 欧美一区二区网站| 99在线视频精品| 青青国产91久久久久久| 综合色天天鬼久久鬼色| 欧美一区三区四区| 99热在这里有精品免费| 理论片日本一区| 亚洲美女视频一区| 精品日韩成人av| 在线免费av一区| 成人毛片在线观看| 美女爽到高潮91| 亚洲五月六月丁香激情| 国产精品久久夜| 2021国产精品久久精品| 6080亚洲精品一区二区| 99re6这里只有精品视频在线观看| 久久精品久久精品| 亚洲超碰精品一区二区| 自拍偷拍亚洲综合| 中文字幕乱码久久午夜不卡| 日韩一区二区三区电影| 欧美午夜不卡视频| 91精彩视频在线| 91麻豆swag| 成人精品亚洲人成在线| 国产成人免费在线观看| 久久99国产精品久久| 日本视频一区二区| 日韩电影在线观看电影| 亚洲午夜免费福利视频| 亚洲精品五月天| 日韩美女视频一区二区| 欧美—级在线免费片| 精品国产区一区| 欧美成人精品高清在线播放| 制服丝袜亚洲色图| 91精品国产手机| 91精品国产品国语在线不卡| 91.xcao| 欧美一区国产二区| 日韩精品中文字幕在线不卡尤物 | 日日摸夜夜添夜夜添精品视频| 亚洲精品成a人| 一区二区三区中文在线观看| 亚洲男人电影天堂| 亚洲乱码国产乱码精品精小说 | 一区二区三区日韩在线观看| 综合电影一区二区三区| 亚洲三级免费观看| 亚洲精品视频在线观看免费| 亚洲午夜久久久久| 日本在线不卡视频一二三区| 免费欧美在线视频| 国产综合色精品一区二区三区| 久久超碰97中文字幕| 精品在线播放免费| 国产91丝袜在线播放0| jlzzjlzz欧美大全| 欧洲激情一区二区| 制服丝袜中文字幕一区| 精品国产a毛片| 国产亚洲精品中文字幕| 中文字幕一区av| 亚洲精品ww久久久久久p站| 午夜精品久久久久久久久| 奇米影视在线99精品| 国产精品亚洲专一区二区三区 | 国产拍欧美日韩视频二区| 国产精品全国免费观看高清| 亚洲人成人一区二区在线观看| 亚洲午夜久久久久久久久久久| 日韩二区在线观看| 国产毛片精品视频| 99re热这里只有精品免费视频| 欧美精品aⅴ在线视频| 精品第一国产综合精品aⅴ| 国产欧美日韩另类一区| 亚洲一区二区五区| 久久av中文字幕片| 99国产精品99久久久久久| 欧美精品亚洲二区| 国产欧美精品日韩区二区麻豆天美| 亚洲欧美精品午睡沙发| 秋霞午夜av一区二区三区| www.亚洲色图.com| 欧美一区二区国产| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 午夜精品久久久久久久蜜桃app| 狠狠色伊人亚洲综合成人| 色一情一伦一子一伦一区| 精品久久久久久久人人人人传媒 | 国产91丝袜在线观看| 欧美日韩视频不卡| 国产欧美精品国产国产专区| 亚洲一区二区高清| 成人免费毛片高清视频| 5566中文字幕一区二区电影| 国产精品乱码久久久久久| 青草国产精品久久久久久| 色综合色综合色综合色综合色综合 | 国产精品一区二区三区99| 在线免费一区三区| 国产欧美日韩在线观看| 蜜臀久久99精品久久久久宅男| 色综合一区二区| 久久亚洲二区三区| 性做久久久久久免费观看欧美| 不卡视频一二三| 久久色在线视频| 日本伊人色综合网| 在线观看欧美日本| 国产精品福利电影一区二区三区四区| 蜜桃视频免费观看一区| 欧美视频精品在线观看| 国产精品福利一区| 粉嫩嫩av羞羞动漫久久久 | 欧美日韩成人一区二区| 中文字幕亚洲视频| 国产91在线观看| 久久综合99re88久久爱| 六月婷婷色综合| 日韩午夜小视频| 日韩高清在线一区| 3d动漫精品啪啪一区二区竹菊| 亚洲综合在线观看视频| 91福利在线导航| 亚洲免费av高清| 欧美在线高清视频| 亚洲欧洲av另类| 色综合视频一区二区三区高清| 亚洲裸体xxx| 色天使色偷偷av一区二区| 亚洲色图欧美在线| 色综合色综合色综合色综合色综合 | 欧美自拍偷拍午夜视频| 一区二区三区四区视频精品免费| 99久久国产综合色|国产精品| 国产精品视频在线看| 97se狠狠狠综合亚洲狠狠| 亚洲色图都市小说| 99re在线精品| 亚洲综合精品久久| 欧美日韩一区不卡| 天天色天天爱天天射综合| 欧美浪妇xxxx高跟鞋交| 免费成人结看片| 久久免费看少妇高潮| 国产精品夜夜爽| 国产精品免费久久久久| 色哟哟一区二区| 视频一区国产视频| 久久在线观看免费| 岛国一区二区在线观看| 亚洲欧洲99久久| 欧美日韩久久一区| 久久狠狠亚洲综合| 国产精品天干天干在观线| 日本精品裸体写真集在线观看| 午夜一区二区三区在线观看| 日韩一区二区精品葵司在线| 国产xxx精品视频大全| 亚洲人快播电影网| 91精品国产综合久久福利软件| 国产自产v一区二区三区c| 日韩一区日韩二区| 欧美巨大另类极品videosbest | 欧美日韩不卡一区二区|