Ejemplo n.º 1
0
static void takeover_cave(db_t *database,
		   int    cave_id,
		   int    attacker_id,
		   const char   *return_start)
{
  /* change owner of cave */
  db_query(database, "UPDATE " DB_TABLE_CAVE " SET playerID = %d"
		     " WHERE caveID = %d", attacker_id, cave_id);

  dstring_t *ds;
  ds = dstring_new("UPDATE Event_movement SET target_caveID = source_caveID, ");
  dstring_append(ds, "end = addtime('%s',timediff('%s',start)), ",return_start,return_start);
  dstring_append(ds, "start='%s', ",return_start);
  dstring_append(ds, "movementID = 5 where caveID = %d and caveID = source_caveID",cave_id);
  debug(DEBUG_SQL, "Torben %s", dstring_str(ds));
  db_query_dstring(database, ds);


  /* delete research from event table*/
  db_query(database, "DELETE FROM Event_science WHERE caveID = %d", cave_id);

  /* copy sciences from new owner to cave */
  science_update_caves(database, attacker_id);
}
Ejemplo n.º 2
0
int DBConnectionUp()
{
	mysql_init(&db_read_connection);
	mysql_init(&db_write_connection);
	mysql_init(&payguide::db_checkreqs_connection);
	MYSQL *tmp1=mysql_real_connect(&db_read_connection, payguide::host_saved.c_str(), payguide::user_saved.c_str(), payguide::passwor_saved.c_str(), payguide::db_name_saved.c_str(), 0, NULL, 0);
	MYSQL *tmp2=mysql_real_connect(&db_write_connection, payguide::host_saved.c_str(), payguide::user_saved.c_str(), payguide::passwor_saved.c_str(), payguide::db_name_saved.c_str(), 0, NULL, 0);
	MYSQL *tmp3=mysql_real_connect(&payguide::db_checkreqs_connection, payguide::host_saved.c_str(), payguide::user_saved.c_str(), payguide::passwor_saved.c_str(), payguide::db_name_saved.c_str(), 0, NULL, 0);
	
		if (tmp1==NULL || tmp2==NULL || tmp3==NULL)
		{
			std::cout << "MySQL connection failed. Please, check out login, password, host and database name options." << std::endl;
			return 2;
		}
	
	int r=db_query(&db_write_connection, "set names koi8r");
	r=r+db_query(&db_read_connection, "set names koi8r");
	r=r+db_query(&payguide::db_checkreqs_connection, "set names koi8r");
	if (r!=0) 
		std::cout << "Failed to execute SQL comand: \"set names koi8r\"" << std::endl;

	db_down=0;
	return 0;
}
Ejemplo n.º 3
0
CWERROR db_reports_get_list(CW_DB_CONNECTION *db,
                            CW_REPORT **rlist,
                            CW_UINT32 *count)
{
	static const char query[] = "SELECT rid,sid,uid,datetime(add_dt,'localtime'),code FROM reports ORDER BY add_dt COLLATE NOCASE DESC";
	    
    CW_DB_RESULT       res;
	CW_DB_RESULT_ROW   *row;
	CW_REPORT          *list = NULL;
	CW_UINT32          n, i = 0;
	CWERROR	           err = CW_ER_OK;

	if ((err = db_query(db, &res, query, sizeof(query)-1, NULL, 0)) != CW_ER_OK) {
        DEBUG_ERROR();
        db_result_free(&res);
        return err;
    }

    if ((n = *count = DB_RESULT_ROW_COUNT(res)) == 0) {
        db_result_free(&res);
        return CW_ER_OK;
    }

    if ((list = *rlist = DLL_MALLOC(sizeof(CW_REPORT) * n)) == NULL) {
		DEBUG_ERROR();
		db_result_free(&res);
		return CW_ER_MEMORY;
	}

	row = DB_RESULT_ROW_FIRST(res);
	do {
        list[i].rid = DB_RESULT_AS_INT64(row, 0);
        list[i].pckt.rcpt_sid = (CW_UINT32)DB_RESULT_AS_INT64(row, 1);
        list[i].pckt.rcpt_uid = (CW_UINT32)DB_RESULT_AS_INT64(row, 2);
        if (strcpy_s(list[i].add_dt, DB_RESULT_AS_TEXT(row, 3), sizeof(list[i].add_dt)) == NULL) {
            DEBUG_ERROR();
            DLL_FREE(list);
            db_result_free(&res);
            return CW_ER_INTERNAL;
        }
	    list[i].pckt.code = (CW_UINT32)DB_RESULT_AS_INT64(row, 4);
        ++i;
    } while (((row = DB_RESULT_ROW_NEXT(row)) != NULL) && (--n));

    db_result_free(&res);

    return CW_ER_OK;
}
Ejemplo n.º 4
0
/*
 * Check if uri belongs to a local user
 */
int does_uri_exist(struct sip_msg* _msg, char* _s1, char* _s2)
{
	db_key_t keys[2];
	db_val_t vals[2];
	db_key_t cols[1];
	db_res_t* res;

	if (parse_sip_msg_uri(_msg) < 0) {
		LOG(L_ERR, "does_uri_exist(): Error while parsing URI\n");
		return -1;
	}

	if (use_uri_table) {
		if (db_use_table(db_handle, uri_table) < 0) {
			LOG(L_ERR, "does_uri_exist(): Error while trying to use uri table\n");
		}
		keys[0] = uri_uriuser_col;
		keys[1] = uri_domain_col;
		cols[0] = uri_uriuser_col;
	} else {
		if (db_use_table(db_handle, subscriber_table) < 0) {
			LOG(L_ERR, "does_uri_exist(): Error while trying to use subscriber table\n");
		}
		keys[0] = subscriber_user_col;
		keys[1] = subscriber_domain_col;
		cols[0] = subscriber_user_col;
	}

	VAL_TYPE(vals) = VAL_TYPE(vals + 1) = DB_STR;
	VAL_NULL(vals) = VAL_NULL(vals + 1) = 0;
	VAL_STR(vals) = _msg->parsed_uri.user;
	VAL_STR(vals + 1) = _msg->parsed_uri.host;

	if (db_query(db_handle, keys, 0, vals, cols, (use_domain ? 2 : 1), 1, 0, &res) < 0) {
		LOG(L_ERR, "does_uri_exist(): Error while querying database\n");
		return -2;
	}
	
	if (RES_ROW_N(res) == 0) {
		DBG("does_uri_exit(): User in request uri does not exist\n");
		db_free_query(db_handle, res);
		return -3;
	} else {
		DBG("does_uri_exit(): User in request uri does exist\n");
		db_free_query(db_handle, res);
		return 1;
	}
}
Ejemplo n.º 5
0
static void process_trust_0002(const char * string, const jsmntok_t * tokens, const int index)
{
   char query[1024];
   char train_id[128], reason[128], type[128], stanox[128];
   
   jsmn_find_extract_token(string, tokens, index, "train_id", train_id, sizeof(train_id));
   jsmn_find_extract_token(string, tokens, index, "canx_reason_code", reason, sizeof(reason));
   jsmn_find_extract_token(string, tokens, index, "canx_type", type, sizeof(type));
   jsmn_find_extract_token(string, tokens, index, "loc_stanox", stanox, sizeof(stanox));

   time_t now = time(NULL);
   sprintf(query, "INSERT INTO trust_cancellation VALUES(%ld, '%s', '%s', '%s', '%s', 0)", now, train_id, reason, type, stanox);
   db_query(query);
   
   return;
}
Ejemplo n.º 6
0
int db_insert(char *data) {
	int value;
	char *sqlquery;
	
	sqlquery = sqlite3_mprintf(
		"INSERT INTO notifications (timestamp, read, message) "
		"VALUES (%u, 0, '%q')",
		time(NULL),
		data
	);
	
	value = db_query(db, sqlquery);	
	sqlite3_free(sqlquery);
	
	return value;
}
Ejemplo n.º 7
0
Archivo: cave.c Proyecto: zu-gabe/Game
/*
 * Retrieve player table information for the given player id.
 */
void get_player_info (db_t *database, int player_id, struct Player *player)
{
  db_result_t *result = db_query(database,
	"SELECT * FROM " DB_TABLE_PLAYER " WHERE playerID = %d", player_id);

  if (!db_result_next_row(result))
    throwf(SQL_EXCEPTION, "get_player_info: player %d not found", player_id);

  player->player_id = player_id;
  player->name = db_result_get_string(result, "name");
  player->tribe = db_result_get_string(result, "tribe");
  player->max_caves = db_result_get_int(result, "takeover_max_caves");
  player->locale = db_result_get_string(result, "language");
  player->locale_id = get_locale_id(player->locale);
  get_science_list(result, player->science);
}
Ejemplo n.º 8
0
int ul_db_query(str * table, str * first, str * second, db1_con_t *** _r_h, 
				db_key_t* _k, db_op_t* _op,	db_val_t* _v,
                db_key_t* _c, int _n, int _nc,	db_key_t _o, db1_res_t** _r) {
	ul_db_handle_t * handle;
	db_func_t * f;
	int ret;
	if((handle = get_handle(&mdb.read.dbf, mdb.read.dbh, first, second)) == NULL) {
		LM_ERR("could not retrieve db handle.\n");
		return -1;
	}
	if((ret = db_query(handle, _r_h, &f, table, _k, _op, _v, _c, _n, _nc, _o, _r, db_master_write)) < 0){
		return ret;
	}
	add_dbf(*_r, f);
	return ret;
}
Ejemplo n.º 9
0
bool DBPermObj::AddToWhitelist(std::string & dbuser, std::string & pattern)
{
    char * q = new char [ pattern.length() + 1024 ];
    db_struct db;

    snprintf(q, pattern.length() + 1024,
        "SELECT queryid FROM query WHERE "
        "proxyid = %d and db_name = '%s' and query = '%s'",
        proxy_id, db_name.c_str(), pattern.c_str());

    /* read new queryid from the database */
    if (! db_query(&db, q ,pattern.length() + 1024)) {
        /* Failed */
        logevent(STORAGE,"DB config erorr: %s\n",db_error());
        delete [] q;
        db_cleanup(&db);
        return false;
    } 

    /* Download result from server */
    if (db_fetch_row(&db))
    {
        // nothing to do here, query is aready in whitelist
        delete [] q;
        db_cleanup(&db);
        return true;
    }

    // add pattern to the whitelist
    snprintf(q, pattern.length() + 1024,
       "INSERT into query "
       "(proxyid, perm, db_name, query) "
       "VALUES (%d,1,'%s','%s')",
       proxy_id, db_name.c_str(), pattern.c_str());

    /* read new urls from the database */
    if (! db_exec(q)) {
        /* Make query */
        logevent(STORAGE,"DB config erorr: %s\n",db_error());
        delete [] q;
        return false;
    }
    delete [] q;
    q = NULL;

    return true;
}
Ejemplo n.º 10
0
int do_migrate(int migrate_limit)
{
	C c; R r;
	int id = 0;
	int count = 0;
	DbmailMessage *m;
	
	qprintf ("Mirgrate legacy 2.2.x messageblks to mimeparts...\n");
	if (!yes_to_all) {
		qprintf ("\tmigration skipped. Use -y option to perform mirgration.\n");
		return 0;
	}
	qprintf ("Preparing to migrate %d physmessages.\n", migrate_limit);

	c = db_con_get();
	TRY
		r = db_query(c, "SELECT DISTINCT(physmessage_id) FROM %smessageblks LIMIT %d", DBPFX, migrate_limit);
		qprintf ("Migrating %d physmessages...\n", migrate_limit);
		while (db_result_next(r))
		{
			count++;
			id = db_result_get_u64(r,0);
			m = dbmail_message_new();
			m = dbmail_message_retrieve(m, id, DBMAIL_MESSAGE_FILTER_FULL);
			if(!dm_message_store(m))
			{
				if(verbose) qprintf ("%d ",id);
				db_update("DELETE FROM %smessageblks WHERE physmessage_id = %d", DBPFX, id);
			}
			else
			{
				if(!verbose) qprintf ("migrating physmessage_id: %d\n",id);
				qprintf ("failed\n");
				return -1;
			}
			dbmail_message_free(m);
		}
	CATCH(SQLException)
		LOG_SQLERROR;
		return -1;
	FINALLY
		db_con_close(c);
	END_TRY;
	
	qprintf ("Migration complete. Migrated %d physmessages.\n", count);
	return 0;
}
Ejemplo n.º 11
0
/* serv should be db_escape'd before call */
int db_getserver(char *serv)
{
#ifdef HASHLISTSUPPORT
	strtolwr(serv);
	return hash_find(hashservs, serv, KEYOTHER);
#else
	MYSQL_RES *resptr;
	int res = 0;

	db_query("SELECT servid FROM " TBL_SERV " WHERE server=\'%s\'", serv);
	resptr = mysql_store_result(myptr);
	if (mysql_num_rows(resptr))
		res = atoi(*mysql_fetch_row(resptr));
	mysql_free_result(resptr);
	return res;
#endif
}
Ejemplo n.º 12
0
bool HEADER_DOSYASI_YARAT( QWidget * parent )
{
    SQL_QUERY yonetim_query ( G_YONETIM_DB);
    SQL_QUERY db_query      ( DB          );

    db_query.PREPARE_SELECT     ("sql_db_info","program_id");

    if ( db_query.SELECT () EQ 0 ) {
        exit(88);
    }

    db_query.NEXT();

    int program_id = db_query.VALUE(0).toInt();

    yonetim_query.PREPARE_SELECT("ynt_veritabanlari", "veritabani_ismi","veritabani_id = :veritabani_id");
    yonetim_query.SET_VALUE(":veritabani_id", VERITABANI_ID());
    if ( yonetim_query.SELECT("veritabani_ismi") EQ 0 ) {
        return false;
    }
    yonetim_query.NEXT();
    QString db_name   = yonetim_query.VALUE(0).toString();
    QString file_path = db_name.toLower() + "_db.h";


    QFile header_file ( file_path );
    header_file.open(QIODevice::WriteOnly | QIODevice::Text);

    file_content = "#ifndef " + db_name.toUpper() + "_DB_H\n"
                   "#define " + db_name.toUpper() + "_DB_H\n\n";

    file_content += nl( "ADAK_SQL_STRUCT " + db_name + "_db" +  " = {" );
    file_content += tab (1, nl(QVariant(program_id).toString() + ","));

    TABLOLARI_YAZ ( parent );

    file_content += nl("};");


    file_content +=  "#endif // " + db_name.toUpper() + "_DB_H \n";

    header_file.write ( file_content.toLatin1() );
    header_file.close();

    return true;
}
Ejemplo n.º 13
0
Archivo: cave.c Proyecto: zu-gabe/Game
/*
 * Retrieve monster table information for the given monster id.
 */
void get_monster_info (db_t *database, int monster_id, struct Monster *monster)
{
  db_result_t *result = db_query(database,
	"SELECT * FROM Monster WHERE monsterID = %d", monster_id);

  if (!db_result_next_row(result))
    throwf(SQL_EXCEPTION, "get_monster_info: monster %d not found", monster_id);

  monster->monster_id = monster_id;
  monster->name = db_result_get_string(result, "name");
  monster->attack = db_result_get_int(result, "angriff");
  monster->defense = db_result_get_int(result, "verteidigung");
  monster->mental = db_result_get_int(result, "mental");
  monster->strength = db_result_get_int(result, "koerperkraft");
  monster->exp_value = db_result_get_int(result, "erfahrung");
  monster->attributes = db_result_get_string(result, "eigenschaft");
}
Ejemplo n.º 14
0
t_max_err db_query_silent(t_database *db, t_db_result **dbresult, const char *s, ...)
{
	char		sql[DATABASE_SQL_MAXLEN+2];
	va_list		ap;
	long		logging = false;
	t_max_err	err;

	va_start(ap, s);
	vsnprintf(sql, DATABASE_SQL_MAXLEN, s, ap);
	sql[DATABASE_SQL_MAXLEN] = '\0';

	logging = object_attr_getlong(db, _sym_log);
	object_attr_setlong(db, _sym_log, 0);
	err = db_query(db, dbresult, sql, NULL);
	object_attr_setlong(db, _sym_log, logging);
	return err;
}
Ejemplo n.º 15
0
long CDataObject::GetData(CDatabase* p_db)
{
	/*
		Fills the data array and returns the number of points inserted
	*/

	assert(m_br >= ePreflopIndex && m_br < eRoundIndices);
	assert(m_nacted >= 0);

	std::string query_str = CDatabaseInterface::ConstructSelectQueryString(m_br, m_nacted, m_ndealt, m_action);

	//p_db->CheckDB(br_ndx, times_acted);
	CDatabaseQuery db_query(p_db);
	db_query.Select(query_str.c_str());

	// Get the actual values
	for(int p = 0; p < db_query.get_numrows(); p++)
	{
		// save address for ann
		m_data[p] = m_points.row(p).data();
		// save hand_id
		m_hand_ids[p] = atoi(PQgetvalue(db_query.get_pgresult(), p, 0));
		// FIX ME - profit should be a part of the select query
		bool profit_ok = CDatabaseInterface::GetProfit(m_hand_ids[p], m_profits(p), p_db);

		// prefix every row with 1's for teh intercept
		m_points(p, 0) = 1.0;
		for(int column = 1; column < db_query.get_numcolumns(); column++)
		{
			double tmp = atof(PQgetvalue(db_query.get_pgresult(), p, column));
			m_points(p, column) = tmp;
		}

		#if defined DEBUG_ALIGN
			if(row < 10)
			{
				double progress_percent = ((m_npoints > 0) ? ((100.0 * (row+1))/m_npoints) : 0.0);
				gLog.WriteLogNoHeading(eSeverityInfo, eCatANN, "Data Point : %d/%d [%.2lf %%] - %s\n", 
														row+1, m_npoints, progress_percent, PrintPtStr(m_points.row(row).data(), m_ndims).c_str());
			}
		#endif
	}

	return db_query.get_numrows();
}
Ejemplo n.º 16
0
Archivo: cave.c Proyecto: zu-gabe/Game
/*
 * Retrieve relation table information for the given tribe and tribe_target.
 */
int get_relation_info (db_t *database, const char *tribe,
		       const char *tribe_target, struct Relation *relation)
{
  db_result_t *result = NULL;

  if (tribe && tribe_target)
  {
    debug(DEBUG_BATTLE, "get relation for tribes %s %s", tribe, tribe_target);
    result = db_query(database,
	"SELECT * FROM " DB_TABLE_RELATION
	" WHERE tribe = '%s' AND tribe_target = '%s'", tribe, tribe_target);
  }

  if (!result || !db_result_next_row(result))
  {
    debug(DEBUG_BATTLE, "filling dummy relation");
    relation->relation_id = 0;
    relation->tribe = tribe;
    relation->tribe_target = tribe_target;
    relation->relationType = RELATION_TYPE_NONE;

    /* FIXME these values should be read from relation types */
    relation->attackerMultiplicator = 0.5;
    relation->defenderMultiplicator = 1.0;
    relation->attackerReceivesFame = 0;
    relation->defenderReceivesFame = 0;

    return 0;	/* no relation entry */
  }

  relation->relation_id = db_result_get_int(result, "relationID");
  relation->tribe = tribe;
  relation->tribe_target = tribe_target;
  relation->relationType = db_result_get_int(result, "relationType");
  relation->defenderMultiplicator =
    db_result_get_double(result, "defenderMultiplicator");
  relation->attackerMultiplicator =
    db_result_get_double(result, "attackerMultiplicator");
  relation->defenderReceivesFame =
    db_result_get_int(result, "defenderReceivesFame");
  relation->attackerReceivesFame =
    db_result_get_int(result, "attackerReceivesFame");

  return 1;
}
Ejemplo n.º 17
0
void *reset(void *dummy) {
	while(1) {
		// waiting user input
		getchar();
		split();

		// reset black color
		bkgd(COLOR_PAIR(2));
		refresh();

		newmessage = 0;
		
		// mark all as read
		db_query(db, "UPDATE notifications SET read = 1");
	}
	
	return dummy;
}
Ejemplo n.º 18
0
GList * auth_get_known_aliases(void)
{
	GList * aliases = NULL;
	C c; R r;

	c = db_con_get();
	TRY
		r = db_query(c,"SELECT alias FROM %saliases ORDER BY alias",DBPFX);
		while (db_result_next(r))
			aliases = g_list_append(aliases, g_strdup(db_result_get(r,0)));
	CATCH(SQLException)
		LOG_SQLERROR;
	FINALLY
		db_con_close(c);
	END_TRY;
	
	return aliases;
}
Ejemplo n.º 19
0
GList * auth_get_known_users(void)
{
	GList * users = NULL;
	C c; R r; 

	c = db_con_get();
	TRY
		r = db_query(c, "SELECT userid FROM %susers ORDER BY userid",DBPFX);
		while (db_result_next(r)) 
			users = g_list_append(users, g_strdup(db_result_get(r, 0)));
	CATCH(SQLException)
		LOG_SQLERROR;
	FINALLY
		db_con_close(c);
	END_TRY;
	
	return users;
}
Ejemplo n.º 20
0
t_sfilter *sfilter_get( int id )
{
	PGresult *res;
	t_sfilter *t;

	res = db_query( "SELECT id, name, filter "
			"FROM juke_sfilter WHERE id = %d",id);
	if( ! res || PQresultStatus(res) != PGRES_TUPLES_OK ){
		syslog( LOG_ERR, "sfilter_get: %s", db_errstr());
		PQclear(res);
		return NULL;
	}

	t = sfilter_convert(res, 0 );
	PQclear(res);

	return t;
}
Ejemplo n.º 21
0
static int map_get_bounds (db_t *database,
         int *minX, int *maxX, int *minY, int *maxY)
{
  db_result_t *result = db_query(database,
    "SELECT MIN(xCoord) AS minX, "
    "       MAX(xCoord) AS maxX, "
    "       MIN(yCoord) AS minY, "
    "       MAX(yCoord) AS maxY  "
    "FROM Cave");

  if (!db_result_next_row(result)) return 0;

  *minX = db_result_get_int(result, "minX");
  *maxX = db_result_get_int(result, "maxX");
  *minY = db_result_get_int(result, "minY");
  *maxY = db_result_get_int(result, "maxY");
  return 1;
}
Ejemplo n.º 22
0
/*
 * Retrieve artefact for the given id.
 */
void get_artefact_by_id (db_t *database, int artefactID,
			 struct Artefact *artefact)
{
  db_result_t *result =
    db_query(database, "SELECT * FROM " DB_TABLE_ARTEFACT
		       " WHERE artefactID = %d", artefactID);

  /* Bedingung: Artefakt muss vorhanden sein */
  if (db_result_num_rows(result) != 1)
    throw(SQL_EXCEPTION, "get_artefact_by_id: no such artefactID");

  db_result_next_row(result);

  artefact->artefactID      = artefactID;
  artefact->artefactClassID = db_result_get_int(result, "artefactClassID");
  artefact->caveID          = db_result_get_int(result, "caveID");
  artefact->initiated       = db_result_get_int(result, "initiated");
}
Ejemplo n.º 23
0
CWERROR db_report_add(CW_DB_CONNECTION *db,
					  const CW_UINT32 rcpt_sid,
					  const CW_UINT32 rcpt_uid,
					  const CW_UINT32 code)
{
	static const char query[] = "INSERT INTO reports (sid,uid,code) VALUES(?,?,?)";
				  
	CW_DB_VALUE        binds[4] = {{DB_INT64, (CW_INT64)rcpt_sid},
                                   {DB_INT64, (CW_INT64)rcpt_uid},
                                   {DB_INT64, (CW_INT64)code}};
	CWERROR	           err = CW_ER_OK;

	if ((err = db_query(db, NULL, query, sizeof(query)-1, &binds[0], 3)) != CW_ER_OK) {
        DEBUG_ERROR();
        return err;
    }

	return CW_ER_OK;
}
Ejemplo n.º 24
0
char *auth_getencryption(uint64_t user_idnr)
{
	char *res = NULL;
	C c; R r;
	
	assert(user_idnr > 0);
	c = db_con_get();
	TRY
		r = db_query(c, "SELECT encryption_type FROM %susers WHERE user_idnr = %" PRIu64 "",DBPFX, user_idnr);
		if (db_result_next(r))
			res = g_strdup(db_result_get(r,0));
	CATCH(SQLException)
		LOG_SQLERROR;
	FINALLY
		db_con_close(c);
	END_TRY;

	return res;
}
Ejemplo n.º 25
0
static int db_count_deleted(u64_t * rows)
{
	C c; R r; volatile int t = TRUE;
	assert(rows != NULL); *rows = 0;

	c = db_con_get();
	TRY
		r = db_query(c, "SELECT COUNT(*) FROM %smessages WHERE status = %d", DBPFX, MESSAGE_STATUS_DELETE);
		if (db_result_next(r))
			*rows = db_result_get_int(r,0);
	CATCH(SQLException)
		LOG_SQLERROR;
		t = DM_EQUERY;
	FINALLY
		db_con_close(c);
	END_TRY;

	return t;
}
Ejemplo n.º 26
0
CWERROR db_cont_update(CW_DB_CONNECTION *db, CW_CONTACT *cont)
{
    static const char query[] = "UPDATE contacts SET sid=?,uid=?,name=?,mname=?,lname=?,addr=?,phone=?,mphone=?,fax=?,www=?,email=?,company=?,notes=? WHERE cid=?";

	CW_DB_VALUE        binds[14] = {{DB_INT64, (CW_INT64)cont->sid},
                                    {DB_INT64, (CW_INT64)cont->uid},
                                    {DB_BLOB, 0}, {DB_BLOB, 0}, {DB_BLOB, 0},
                                    {DB_BLOB, 0}, {DB_BLOB, 0}, {DB_BLOB, 0},
                                    {DB_BLOB, 0}, {DB_BLOB, 0}, {DB_BLOB, 0},
                                    {DB_BLOB, 0}, {DB_BLOB, 0},
                                    {DB_INT64, (CW_INT64)cont->cid}};
	CWERROR	           err = CW_ER_OK;

	binds[2].value.as_blob.sz = (wcslen(cont->name) * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[2].value.as_blob.blob = cont->name;
	binds[3].value.as_blob.sz = (wcslen(cont->mname) * sizeof(wchar_t))  + sizeof(wchar_t);
	binds[3].value.as_blob.blob = cont->mname;
	binds[4].value.as_blob.sz = (wcslen(cont->lname)  * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[4].value.as_blob.blob = cont->lname;
	binds[5].value.as_blob.sz = (wcslen(cont->addr)  * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[5].value.as_blob.blob = cont->addr;
	binds[6].value.as_blob.sz = (wcslen(cont->phone)  * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[6].value.as_blob.blob = cont->phone;
	binds[7].value.as_blob.sz = (wcslen(cont->mphone)  * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[7].value.as_blob.blob = cont->mphone;
	binds[8].value.as_blob.sz = (wcslen(cont->fax)  * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[8].value.as_blob.blob = cont->fax;
	binds[9].value.as_blob.sz = (wcslen(cont->www)  * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[9].value.as_blob.blob = cont->www;
	binds[10].value.as_blob.sz = (wcslen(cont->email)  * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[10].value.as_blob.blob = cont->email;
	binds[11].value.as_blob.sz = (wcslen(cont->comp)  * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[11].value.as_blob.blob = cont->comp;
	binds[12].value.as_blob.sz = (wcslen(cont->notes)  * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[12].value.as_blob.blob = cont->notes;

	if ((err = db_query(db, NULL, query, sizeof(query)-1, &binds[0], 14)) != CW_ER_OK) {
        DEBUG_ERROR();
        return err;
    }

	return CW_ER_OK;   
}
Ejemplo n.º 27
0
gint cmd_list(GSList* arglist, const struct cmd_options* opts, struct error* e)
{
  g_assert(opts != 0);
  g_assert(e != 0);

  gint verbose = opts->verbosity > 2;
  db_query_type type = verbose ? DB_QUERY_PKGS_WITHOUT_FILES : DB_QUERY_NAMES;

  GSList* list = db_query((db_selector)_list_selector, arglist, type);
  if (!e_ok(e))
  {
    e_set(E_ERROR, "Package database query failed!");
    return 1;
  }

  GSList* i;
  for (i = list; i != 0; i = i->next)
  {
    if (verbose)
    {
      struct db_pkg* pkg = i->data;
      printf("+===================================================================+\n");
      printf("| %-65s |\n", pkg->name);
      printf("+===================================================================+\n");
      printf("NAME:    %s\n", pkg->shortname);
      printf("VERSION: %s\n", pkg->version);
      printf("ARCH:    %s\n", pkg->arch);
      printf("BUILD:   %s\n", pkg->build);
      printf("DATE:    %s\n", _get_date(pkg->time));
      printf("CSIZE:   %u kB\n", pkg->csize);
      printf("USIZE:   %u kB\n", pkg->usize);
      if (pkg->desc)
        printf("%s", pkg->desc);
    }
    else
      printf("%s\n", (gchar*)i->data);
  }

  db_free_query(list, type);

  return 0;
}
Ejemplo n.º 28
0
CWERROR db_cont_add(CW_DB_CONNECTION *db, CW_CONTACT *cont)
{
    static const char query[] = "INSERT INTO contacts (sid,uid,name,mname,lname,addr,phone,mphone,fax,www,email,company,notes) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)";

	CW_DB_VALUE        binds[13] = {{DB_INT64, (CW_INT64)cont->sid},
                                    {DB_INT64, (CW_INT64)cont->uid},
                                    {DB_BLOB, 0}, {DB_BLOB, 0}, {DB_BLOB, 0},
                                    {DB_BLOB, 0}, {DB_BLOB, 0}, {DB_BLOB, 0},
                                    {DB_BLOB, 0}, {DB_BLOB, 0}, {DB_BLOB, 0},
                                    {DB_BLOB, 0}, {DB_BLOB, 0}};
	CWERROR	           err = CW_ER_OK;
	
	binds[2].value.as_blob.sz = (wcslen(cont->name) * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[2].value.as_blob.blob = cont->name;
	binds[3].value.as_blob.sz = (wcslen(cont->mname) * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[3].value.as_blob.blob = cont->mname;
	binds[4].value.as_blob.sz = (wcslen(cont->lname) * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[4].value.as_blob.blob = cont->lname;
	binds[5].value.as_blob.sz = (wcslen(cont->addr) * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[5].value.as_blob.blob = cont->addr;
	binds[6].value.as_blob.sz = (wcslen(cont->phone) * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[6].value.as_blob.blob = cont->phone;
	binds[7].value.as_blob.sz = (wcslen(cont->mphone) * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[7].value.as_blob.blob = cont->mphone;
	binds[8].value.as_blob.sz = (wcslen(cont->fax) * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[8].value.as_blob.blob = cont->fax;
	binds[9].value.as_blob.sz = (wcslen(cont->www) * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[9].value.as_blob.blob = cont->www;
	binds[10].value.as_blob.sz = (wcslen(cont->email) * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[10].value.as_blob.blob = cont->email;
	binds[11].value.as_blob.sz = (wcslen(cont->comp) * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[11].value.as_blob.blob = cont->comp;
	binds[12].value.as_blob.sz = (wcslen(cont->notes) * sizeof(wchar_t)) + sizeof(wchar_t);
	binds[12].value.as_blob.blob = cont->notes;
	
	if ((err = db_query(db, NULL, query, sizeof(query)-1, &binds[0], 13)) != CW_ER_OK) {
        DEBUG_ERROR();
        return err;
    }

	return CW_ER_OK;
}
Ejemplo n.º 29
0
int do_migrate(int migrate_limit)
{
	Connection_T c; ResultSet_T r;
	int id = 0;
	volatile int count = 0;
	DbmailMessage *m;
	
	qprintf ("Migrate legacy 2.2.x messageblks to mimeparts...\n");
	if (!yes_to_all) {
		qprintf ("\tmigration skipped. Use -y option to perform migration.\n");
		return 0;
	}
	qprintf ("Preparing to migrate up to %d physmessages.\n", migrate_limit);

	c = db_con_get();
	TRY
		db_begin_transaction(c);
		r = db_query(c, "SELECT DISTINCT(physmessage_id) FROM %smessageblks LIMIT %d", DBPFX, migrate_limit);
		while (db_result_next(r))
		{
			count++;
			id = db_result_get_u64(r,0);
			m = dbmail_message_new(NULL);
			m = dbmail_message_retrieve(m, id);
			if(! dm_message_store(m)) {
				if(verbose) qprintf ("%d ",id);
				db_update("DELETE FROM %smessageblks WHERE physmessage_id = %d", DBPFX, id);
			}
			dbmail_message_free(m);
		}
		db_commit_transaction(c);
	CATCH(SQLException)
		LOG_SQLERROR;
		db_rollback_transaction(c);
		return -1;
	FINALLY
		db_con_close(c);
	END_TRY;
	
	qprintf ("Migration complete. Migrated %d physmessages.\n", count);
	return 0;
}
Ejemplo n.º 30
0
static int db_deleted_count(u64_t * rows)
{
	C c; R r; volatile int t = FALSE;
	assert(rows); *rows = 0;

	c = db_con_get();
	r = db_query(c, "SELECT COUNT(*) FROM %smessages WHERE status=%d", DBPFX, MESSAGE_STATUS_PURGE);
	TRY
		if (db_result_next(r)) {
			*rows = db_result_get_int(r,0);
			t = TRUE;
		}
	CATCH(SQLException)
		LOG_SQLERROR;
	FINALLY
		db_con_close(c);
	END_TRY;

	return t;
}