Exemplo n.º 1
0
int inserir(cliente c) {

    char sql_insert = "INSERT INTO clientes VALUES(?, ?, ?, ?, ?, ?, ?, ?);";
    int r = connect_db();
    if (r != SQLITE_OK) {

        fprintf(stderr, "Erro ao conectar com o banco de dados!! %s\n", sqlite3_errmsg(conn));
        close_db();
        return 0;
    } else {

        msg = sqlite3_exec(conn, sql_insert, callback, 0, &errMsg);
        if (msg != SQLITE_OK) {

            fprintf(stderr, "Não foi possivel executar comando!! %s\n", errMsg);
            close_db();

            return 0;
        } else {
            sqlite3_bind_null(stmt, 1);
            sqlite3_bind_int(stmt, 2, c.id_cliente);
            sqlite3_bind_text(stmt, 3, c.nome_cliente, strlen(c.nome_cliente), 0);
            sqlite3_bind_text(stmt, 4, c.localizacao, strlen(c.localizacao), 0);
            sqlite3_bind_text(stmt, 5, c.email, strlen(c.email), 0);
            sqlite3_bind_text(stmt, 6, c.aniversario, strlen(c.aniversario), 0);
            sqlite3_bind_text(stmt, 7, c.link, strlen(c.link), 0);
        }
        close_db();
        return 1;
    }
}
Exemplo n.º 2
0
/**
 * Esse método cria as tabelas de clientes e log_usuários caso elas não existam.
 * @return 
 */
int criar_tabelas() {

    char sql_cliente = "CREATE TABLE IF NOT EXISTS clientes (id INTEGER PRIMARY KEY ASC NOT NULL, id_cliente INTEGER, nome_cliente VARCHAR(100), localizacao VARCHAR[255], email VARCHAR[50], aniversario VARCHAR[12], link VARCHAR[255]);";
    char sql_log_usuario = "CREATE TABLE IF NOT EXISTS log_usuario (id INTEGER NOT NULL PRIMARY KEY, created_at DATETIME NOT NULL, fk_id INTEGER NOT NULL, FOREIGN KEY (fk_id) REFERENCES cliente(id));";

    int resposta = connectar_banco();
    if (resposta != SQLITE_OK) {

        fprintf(stdout, "Não foi possivel conectar ao banco de dados: %s\n", sqlite3_errmsg(conn));
        close_db();
        return 0;
    } else {

        msg = sqlite3_exec(conn, sql_cliente, callback, 0, 0);
        if (msg != SQLITE_OK) {
            fprintf(stdout, "Não foi posível criar a tabela clientes: %s\n", sqlite3_errmsg(conn));
            close_db();
            return 0;
        } else {
            msg = sqlite3_exec(conn, sql_log_usuario, callback, 0, 0);
            if (msg != SQLITE_OK) {
                fprintf(stdout, "Não foi posível criar a tabela log_usuário: %s\n", sqlite3_errmsg(conn));
                close_db();
                return 0;
            } else {
                close_db();
                return 1;
            }
        }
    }
}
Exemplo n.º 3
0
int atualizar(cliente c) {
    sql_update = "UPDATE clientes SET nome_cliente = ?, localizacao = ?, email = ?, aniversario = ?, link = ? WHERE id_cliente = ?;";

    int r = connect_db();
    if (r != SQLITE_OK) {

        fprintf(stderr, "Erro ao conectar com o banco de dados!! %s\n", sqlite3_errmsg(conn));
        close_db();
        return 0;
    } else {

        msg = sqlite3_exec(conn, sql_update, callback, 0, &errMsg);
        if (msg != SQLITE_OK) {
            fprintf(stderr, "Não foi possivel executar comando!! %s\n", errMsg);
            close_db();
            return 0;
        } else {
            sqlite3_bind_text(stmt, 1, c.nome_cliente, strlen(c.nome_cliente), 0);
            sqlite3_bind_text(stmt, 2, c.localizacao, strlen(c.localizacao), 0);
            sqlite3_bind_text(stmt, 3, c.email, strlen(c.email), 0);
            sqlite3_bind_text(stmt, 4, c.aniversario, strlen(c.aniversario), 0);
            sqlite3_bind_text(stmt, 5, c.link, strlen(c.link), 0);
            sqlite3_bind_int(stmt, 6, c.id_cliente);
        }
        close_db();
        return 1;
    }
}
int TestPartOneKeyNoData(CuTest *ct) {
	DB_ENV *dbenv;
	DB *dbp;
	/* Allocate the memory from stack. */
	DBT keys[4];
	u_int32_t i;

	dbenv = NULL;
	dbp = NULL;
	nparts = 5;

	/* Do not assign any data to the first DBT. */
	memset(&keys[0], 0, sizeof(DBT));
	for (i = 1 ; i < (nparts - 1); i++) {
		memset(&keys[i], 0, sizeof(DBT));
		keys[i].data = &content[(i + 1) * (strlen(content) / nparts)];
		keys[i].size = sizeof(char);
	}

	/* Do not set any database flags. */
	CuAssertTrue(ct, create_db(&dbenv, &dbp, 0, ct) == 0);
	/*
	 * Verify that before the database is opened, DB->set_partition can
	 * be called multiple times regardless of its return code.
	 */
	keys[0].flags = DB_DBT_MALLOC;
	CuAssertTrue(ct, dbp->set_partition(dbp, nparts, keys, NULL) != 0);
	keys[0].flags = 0;
	CuAssertTrue(ct, dbp->set_partition(dbp, nparts, keys, NULL) == 0);
	CuAssertTrue(ct, dbp->set_partition(dbp, nparts, keys, NULL) == 0);
	CuAssertTrue(ct, dbp->open(dbp, NULL,
	    "test.db", NULL, DB_BTREE, DB_CREATE, 0644) != 0);
	CuAssertTrue(ct, close_db(dbenv, dbp, ct) == 0);
	fclose(errfp);
	errfp = NULL;

	/* Set DB_DUPSORT flags. */
	setup_envdir(TEST_ENV, 1);
	errfp = fopen("TESTDIR/errfile", "w");
	CuAssertTrue(ct, create_db(&dbenv, &dbp, 0, ct) == 0);
	CuAssertTrue(ct, dbp->set_partition(dbp, nparts, keys, NULL) == 0);
	CuAssertTrue(ct, dbp->set_flags(dbp, DB_DUPSORT) == 0);
	CuAssertTrue(ct, dbp->open(dbp, NULL,
	    "test.db", NULL, DB_BTREE, DB_CREATE, 0644) != 0);
	CuAssertTrue(ct, close_db(dbenv, dbp, ct) == 0);
	fclose(errfp);
	errfp = NULL;

	/* Set DB_DUP flags. */
	setup_envdir(TEST_ENV, 1);
	CuAssertTrue(ct, create_db(&dbenv, &dbp, 0, ct) == 0);
	CuAssertTrue(ct, dbp->set_partition(dbp, nparts, keys, NULL) == 0);
	CuAssertTrue(ct, dbp->set_flags(dbp, DB_DUP) == 0);
	CuAssertTrue(ct, dbp->open(dbp, NULL,
	    "test.db", NULL, DB_BTREE, DB_CREATE, 0644) == 0);
	CuAssertTrue(ct, put_data(dbp) == 0);
	CuAssertTrue(ct, close_db(dbenv, dbp, ct) == 0);
	return (0);
}
int TestPartDuplicatedKey(CuTest *ct) {
	DB_ENV *dbenv;
	DB *dbp;
	DBT *keys;
	u_int32_t i;

	dbenv = NULL;
	dbp = NULL;
	keys = NULL;
	nparts = 5;

	CuAssertTrue(ct, (keys = malloc((nparts - 1) * sizeof(DBT))) != NULL);
	memset(keys, 0, (nparts - 1) * sizeof(DBT));
	/* Assign the same data to the first 2 DBTs. */
	for (i = 0 ; i < (nparts - 1); i++) {
		if (i < 2)
			keys[i].data = &content[strlen(content) / nparts];
		else
			keys[i].data = &content[(i + 1) *
			    (strlen(content) / nparts)];
		keys[i].size = sizeof(char);
	}

	/* Do not set any database flags. */
	CuAssertTrue(ct, create_db(&dbenv, &dbp, 0, ct) == 0);
	CuAssertTrue(ct, dbp->set_partition(dbp, nparts, keys, NULL) == 0);
	CuAssertTrue(ct, dbp->open(dbp, NULL,
	    "test.db", NULL, DB_BTREE, DB_CREATE, 0644) != 0);
	CuAssertTrue(ct, close_db(dbenv, dbp, ct) == 0);
	fclose(errfp);
	errfp = NULL;

	/* Set DB_DUPSORT flags. */
	setup_envdir(TEST_ENV, 1);
	errfp = fopen("TESTDIR/errfile", "w");
	CuAssertTrue(ct, create_db(&dbenv, &dbp, 0, ct) == 0);
	CuAssertTrue(ct, dbp->set_partition(dbp, nparts, keys, NULL) == 0);
	CuAssertTrue(ct, dbp->set_flags(dbp, DB_DUPSORT) == 0);
	CuAssertTrue(ct, dbp->open(dbp, NULL,
	    "test.db", NULL, DB_BTREE, DB_CREATE, 0644) != 0);
	CuAssertTrue(ct, close_db(dbenv, dbp, ct) == 0);
	fclose(errfp);
	errfp = NULL;

	/* Set DB_DUP flags. */
	setup_envdir(TEST_ENV, 1);
	CuAssertTrue(ct, create_db(&dbenv, &dbp, 0, ct) == 0);
	CuAssertTrue(ct, dbp->set_partition(dbp, nparts, keys, NULL) == 0);
	CuAssertTrue(ct, dbp->set_flags(dbp, DB_DUP) == 0);
	CuAssertTrue(ct, dbp->open(dbp, NULL,
	    "test.db", NULL, DB_BTREE, DB_CREATE, 0644) == 0);
	CuAssertTrue(ct, put_data(dbp) == 0);
	CuAssertTrue(ct, close_db(dbenv, dbp, ct) == 0);
	free(keys);
	return (0);
}
Exemplo n.º 6
0
/***********************************************************************
 *
 * Function:    sync_CopyToPilot
 *
 * Summary:     Copy all desktop records to the Palm
 *
 * Parameters:  None
 *
 * Returns:     0 on success, non-zero otherwise
 *
 ***********************************************************************/
int sync_CopyToPilot(SyncHandler * sh)
{
	int 	dbhandle,
		slow 	= 0,	
		result 	= 0;
	DesktopRecord *drecord = NULL;

	result = open_db(sh, &dbhandle);
	if (result < 0)
		goto cleanup;

	result = sh->Pre(sh, dbhandle, &slow);
	if (result < 0)
		goto cleanup;

	result = dlp_DeleteRecord(sh->sd, dbhandle, 1, 0);
	if (result < 0)
		goto cleanup;


	while (sh->ForEach(sh, &drecord) == 0 && drecord) {
		result =
		    store_record_on_pilot(sh, dbhandle, drecord, BOTH);
		if (result < 0)
			goto cleanup;
	}

	result = sh->Post(sh, dbhandle);

      cleanup:
	close_db(sh, dbhandle);

	return result;
}
Exemplo n.º 7
0
static void
find(isc_assertioncallback_t callback) {
	isc_result_t result;
	dns_rdataset_t rdataset;
	dns_fixedname_t fixed;

	result = dns_test_begin(NULL, ISC_FALSE);
	ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);

	setup_db();

	dns_rdataset_init(&rdataset);
	dns_fixedname_init(&fixed);

	isc_assertion_setcallback(callback);
	result = dns_db_find(db1, dns_rootname, VERSION(callback),
			     dns_rdatatype_soa, 0, 0, NULL,
			     dns_fixedname_name(&fixed), &rdataset, NULL);
	if (callback != NULL)
		atf_tc_fail("dns_db_find did not assert");
	ATF_REQUIRE_EQ(result, DNS_R_NXDOMAIN);

	close_db();

	dns_test_end();
}
Exemplo n.º 8
0
int main(int argc, char **argv) {
    GapIO *io;
    char *project, *version;
    int status;
    int argn;

    if (argc < 2) {
	usage();
    }

    for (argn = 1; argn < argc; argn++) {
	project = argv[argn];
	version = strchr(project, '.');
	if (!version) {
	    fprintf(stderr, "Malformed project name\n");
	    return 1;
	}
	*version++ = 0;

	printf("Opening project '%s' version '%s'\n", project, version);
	io = open_db(project, version, &status, 0, 1);
	if (!io) {
	    fprintf(stderr, "Couldn't open database\n");
	    return 1;
	}

	read_size_dist(io);
	
	close_db(io);
    }

    return 0;
}
Exemplo n.º 9
0
int main(int argc, char *argv[])
{
    int i, r;

    i = proc_args(argc, argv);

    if (!args.subcmd)
        do_usage();

    if (args.dbfile)
    {
        if (args.needwrite)
        {
            fprintf(stderr, "you can't write to a database specified with -d.\n");
            return 1;
        }
        else
            r = init_named_db(args.dbfile);
    }
    else
        r = init_db(args.needwrite);

    if (r)
    {
        fprintf(stderr, "can't open database.\n");
        return 1;
    }

    i++; /* eat argv[0] */
    i = args.subcmd(argc - i, argv + i);

    close_db();

    return i;
}
Exemplo n.º 10
0
/***********************************************************************
 *
 * Function:    sync_MergeToPilot
 *
 * Summary:     Synchronize the desktop records to the pilot, but do
 *		not alter the desktop records
 *
 * Parameters:  None
 *
 * Returns:     0 on success, non-zero otherwise
 *
 ***********************************************************************/
int sync_MergeToPilot(SyncHandler * sh)
{
	int 	dbhandle,
		slow 	= 0,
		result 	= 0;

	result = open_db(sh, &dbhandle);
	if (result < 0)
		goto cleanup;

	result = sh->Pre(sh, dbhandle, &slow);
	if (result < 0)
		goto cleanup;

	if (!slow) {
		sync_MergeToPilot_fast(sh, dbhandle, PILOT);
		if (result < 0)
			goto cleanup;
	} else {
		sync_MergeToPilot_slow(sh, dbhandle, PILOT);
		if (result < 0)
			goto cleanup;
	}

	result = sh->Post(sh, dbhandle);

      cleanup:
	close_db(sh, dbhandle);

	return result;
}
Exemplo n.º 11
0
void close_all() {

  o_log(DEBUGM, "|Finished");
  close_db ();
  free(BASE_DIR);
  free(LOG_DIR);
}
Exemplo n.º 12
0
static void
deleterdataset(isc_assertioncallback_t callback) {
	isc_result_t result;
	dns_rdataset_t rdataset;
	dns_fixedname_t fixed;
	dns_dbnode_t *node = NULL;

	result = dns_test_begin(NULL, ISC_FALSE);
	ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);

	setup_db();

	dns_rdataset_init(&rdataset);
	dns_fixedname_init(&fixed);

	result = dns_db_findnode(db1, dns_rootname, ISC_FALSE, &node);
	ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);

	isc_assertion_setcallback(callback);
	result = dns_db_deleterdataset(db1, node, VERSION(callback),
				       dns_rdatatype_soa, 0);
	if (callback != NULL)
		atf_tc_fail("dns_db_deleterdataset did not assert");
	ATF_REQUIRE_EQ(result, DNS_R_UNCHANGED);

	dns_db_detachnode(db1, &node);
	ATF_REQUIRE_EQ(node, NULL);

	close_db();

	dns_test_end();
}
Exemplo n.º 13
0
static void
getnsec3parameters(isc_assertioncallback_t callback) {
	isc_result_t result;
	dns_hash_t hash;
	isc_uint8_t flags;
	isc_uint16_t iterations;
	unsigned char salt[DNS_NSEC3_SALTSIZE];
	size_t salt_length = sizeof(salt);

	result = dns_test_begin(NULL, ISC_FALSE);
	ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);

	setup_db();

	isc_assertion_setcallback(callback);
	result = dns_db_getnsec3parameters(db1, VERSION(callback), &hash,
					   &flags, &iterations, salt,
					   &salt_length);
	if (callback != NULL)
		atf_tc_fail("dns_db_dump did not assert");
	ATF_REQUIRE_EQ(result, ISC_R_NOTFOUND);

	close_db();

	dns_test_end();
}
Exemplo n.º 14
0
static void
dump(isc_assertioncallback_t callback) {
	isc_result_t result;
	FILE *f = NULL;

	result = dns_test_begin(NULL, ISC_FALSE);
	ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);

	setup_db();

	result = isc_file_openunique(tempname, &f);
	fclose(f);
	ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);

	isc_assertion_setcallback(callback);
	result = dns_db_dump(db1, VERSION(callback), tempname);
	(void)unlink(tempname);
	if (callback != NULL)
		atf_tc_fail("dns_db_dump did not assert");
	ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);

	close_db();

	dns_test_end();
}
Exemplo n.º 15
0
int test_db_connection(char *database_name){
	PGconn     *conn;

	conn = connect_db(database_name);
	if (PQstatus(conn) != CONNECTION_OK)
        {
                close_db(conn);
                return(1);
        }
    else {
        printf("Connection to database successful! Will use database for storage of data.\n");
    }

    close_db(conn);
	return(0);
}
Exemplo n.º 16
0
Arquivo: main.c Projeto: taysom/tau
void test_db(int n)
{
    char *dir = Option.dir;
    struct db db;
    u64 key;
    struct lump val;
    u64 i;
    int rc;

    if (1) set_cleanup(cleanup);
    create_db(dir);
    db = open_db(dir);
    for (i = 0; i < n; i++) {
        key = randkey();
        if (0) val = randlump();
        if (1) val = key2lump(key);
        //printf("%lld %*s %zd\n", key, val.size, (char *)val.d, strlen(val.d));
        insert_db(&db, key, val);
    }
    if (1)
        for (i = 0; i < n + 1; i++) {
            rc = next_log(db.r);
            if (rc == DONE)
                break;
            //printf("%lld %s\n", key_log(db.r), (char *)val_log(db.r).d);
        }
    if (1) merge_db(&db);
    close_db(&db);
    destroy_db(dir);
}
Exemplo n.º 17
0
void verify_db(dbfile_t *proot){
	if(proot->head.magic != MAGIC){
		close_dbfile(proot->vfp);
		close_db(proot);
		exit(1);
	}
}
Exemplo n.º 18
0
int TestPartNumber(CuTest *ct) {
	DB_ENV *dbenv;
	DB *dbp;
	DBT *keys;
	u_int32_t i;

	dbenv = NULL;
	dbp = NULL;
	keys = NULL;
	nparts = 5;

	CuAssertTrue(ct, (keys = malloc((nparts - 1) * sizeof(DBT))) != NULL);
	memset(keys, 0, (nparts - 1) * sizeof(DBT));
	/* Assign data to the keys. */
	for (i = 0 ; i < (nparts - 1); i++) {
		keys[i].data = &content[(i + 1) * (strlen(content) / nparts)];
		keys[i].size = sizeof(char);
	}

	/* Partition number is less than 2. */
	CuAssertTrue(ct, create_db(&dbenv, &dbp, ct) == 0);
	CuAssertTrue(ct, dbp->set_partition(dbp, 1, keys, NULL) != 0);

	/* Partition number is less than key array length plus 1. */
	CuAssertTrue(ct, dbp->set_partition(dbp, nparts - 1, keys, NULL) == 0);
	CuAssertTrue(ct, dbp->open(dbp, NULL,
	    "test.db", NULL, DB_BTREE, DB_CREATE, 0644) == 0);
	CuAssertTrue(ct, put_data(dbp) == 0);
	CuAssertTrue(ct, close_db(dbenv, dbp, ct) == 0);
	free(keys);
	return (0);
}
Exemplo n.º 19
0
static void
allrdatasets(isc_assertioncallback_t callback) {
	isc_result_t result;
	dns_dbnode_t *node = NULL;
	dns_rdatasetiter_t *iterator = NULL;

	result = dns_test_begin(NULL, ISC_FALSE);
	ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);

	setup_db();

	result = dns_db_findnode(db1, dns_rootname, ISC_FALSE, &node);
	ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);

	isc_assertion_setcallback(callback);
	result = dns_db_allrdatasets(db1, node, VERSION(callback), 0,
				     &iterator);
	if (callback != NULL)
		atf_tc_fail("dns_db_allrdatasets did not assert");
	ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);

	dns_rdatasetiter_destroy(&iterator);
	ATF_REQUIRE_EQ(iterator, NULL);

	dns_db_detachnode(db1, &node);
	ATF_REQUIRE_EQ(node, NULL);

	close_db();

	dns_test_end();
}
Exemplo n.º 20
0
static int
sqlite_init(_SqliteObject *self, PyObject *args, G_GNUC_UNUSED PyObject *kwds)
{
    char *path;
    int db_type;
    GError *err = NULL;
    PyObject *ret;

    if (!PyArg_ParseTuple(args, "si|:sqlite_init", &path, &db_type))
        return -1;

    /* Check arguments */
    if (db_type < CR_DB_PRIMARY || db_type >= CR_DB_SENTINEL) {
        PyErr_SetString(PyExc_ValueError, "Unknown db type");
        return -1;
    }

    /* Free all previous resources when reinitialization */
    ret = close_db(self, NULL);
    Py_XDECREF(ret);
    if (ret == NULL) {
        // Error encountered!
        return -1;
    }

    /* Init */
    self->db = cr_db_open(path, db_type, &err);
    if (err) {
        nice_exception(&err, NULL);
        return -1;
    }

    return 0;
}
Exemplo n.º 21
0
int thin_id_new(const char *m_name, const char *v_name, unsigned *ret_id)
{
    FILE *db, *udb;
    char str[1024];
    unsigned max_id = 0;

    db = open_db(m_name, &udb);
    if (!db)
        return -1;

    while (fgets(str, sizeof(str), db)) {
        char *aux, *e;
        unsigned id;

        aux = strchr(str, ':');
        if (!aux)
            goto fatal;

        id = strtol(aux + 1, &e, 10);
        if (*e != '\n')
            goto fatal;

        *aux = '\0';
        if (strcmp(v_name, str) != 0) {
            /* FIXME -- IDs can overflow */
            if (id > max_id)
                max_id = id;
            fprintf(udb, "%s:%u\n", str, id);
            continue;
        }

        *ret_id = id;
        close_db(m_name, db, udb, false);
        return 1;
    }

    max_id++;
    fprintf(udb, "%s:%u\n", v_name, max_id);
    *ret_id = max_id;
    return close_db(m_name, db, udb, true) ? : 0;

fatal:
    loge("RT database corrupted at [%s]\n", str);
    close_db(m_name, db, udb, false);
    return -1;
}
Exemplo n.º 22
0
int free_db(CDatabase *db)
{
	if(db!=0){
		close_db(db);
		delete db;
	}
	return TRUE;
}
Exemplo n.º 23
0
int main(int argc, char** argv)  
{ 
	open_db();
	create_tab(); 
	insert_db();
	select_db();
	close_db();
} 
Exemplo n.º 24
0
int delete_nevera_fsm(nevera_fsm_t* nevera_fsm){
	commit_db(nevera_fsm->db,nevera_fsm->lista_usuarios,nevera_fsm->lista_productos);
	close_db(nevera_fsm->db);
	usuario_list_delete(nevera_fsm->lista_usuarios);
	producto_list_delete(nevera_fsm->lista_productos);
	free(nevera_fsm);
	return 0;
}
Exemplo n.º 25
0
int main(int argc, char **argv)
{
	if (argc < 2) {
		fprintf(stderr, "Usage: %s hostname\n", argv[0]);
		return EXIT_FAILURE;
	}

	bool start_upgrade_server = true;
	if (argc >= 3) {
		if (strcmp(argv[2], "--no-upgrade") == 0) {
			start_upgrade_server = false;
		}
	}

	/* start server for upgrading */
	pthread_t serverthread;
	if (start_upgrade_server == true) {
		pthread_create(&serverthread, NULL, server_thread, NULL);
	} else {
		printf("no upgrade server\n");
	}

	char *hostname = argv[1];
	char *port = PORT;

	/* connect to the database */
	setup_db();

	/* connect to the server and start the main loop */
	int socket = connectToServer(hostname, port);

	/* set default language */
	language_code = (char *) malloc(3);
	language_code[0] = 's';
	language_code[1] = 'v';
	language_code[2] = '\0';
	
	start_loop(socket);

	/* cleanup starts here */
	close(socket);

	mlog("client.log", "cancelling serverthread");
	if (start_upgrade_server == true) {
		pthread_cancel(serverthread);
		pthread_join(serverthread, NULL);
		mlog("client.log", "closing upgrade_socket");
		close(upgrade_socket);
	}


	mlog("client.log", "closing db");
	close_db();
	free(language_code);

	return EXIT_SUCCESS;
}
Exemplo n.º 26
0
void login_record_cleanup(void)
{
  // clean up the file descriptor 
  fclose(student_file);

  // close the db
  close_db(db);

}
Exemplo n.º 27
0
consensus_component* init_consensus_comp(struct node_t* node,uint32_t node_id, FILE* log,
        int sys_log,int stat_log,const char* db_name,
        int deliver_mode,void* db_ptr,int group_size,
        view* cur_view,view_stamp* to_commit,view_stamp* committed,view_stamp* highest,user_cb u_cb,up_call uc,void* arg){
    
    consensus_component* comp = (consensus_component*)
        malloc(sizeof(consensus_component));
    memset(comp,0,sizeof(consensus_component));

    if(NULL!=comp){
        if(deliver_mode==50){
            comp->db_ptr = db_ptr;
        }else{
            comp->db_ptr = initialize_db(db_name,0);
            if(NULL==comp->db_ptr){
                goto consensus_error_exit;
            }
        }    
        comp->sys_log = sys_log;
        comp->stat_log = stat_log;
        comp->sys_log_file = log;
        comp->my_node = node;
        comp->node_id = node_id;
        comp->deliver_mode = deliver_mode;
        comp->group_size = group_size;
        comp->cur_view = cur_view;
        if(comp->cur_view->leader_id == comp->node_id){
            comp->my_role = LEADER;
        }else{
            comp->my_role = SECONDARY;
        }
        comp->ucb = u_cb;
        comp->uc = uc;
        comp->up_para = arg;
        comp->highest_seen_vs = highest;
        comp->highest_seen_vs->view_id = 1;
        comp->highest_seen_vs->req_id = 0;
        comp->highest_committed_vs = committed; 
        comp->highest_committed_vs->view_id = 1; 
        comp->highest_committed_vs->req_id = 0; 
        comp->highest_to_commit_vs = to_commit;
        comp->highest_to_commit_vs->view_id = 1;
        comp->highest_to_commit_vs->req_id = 0;
        goto consensus_init_exit;

    }
consensus_error_exit:
    if(comp!=NULL){
        if(NULL!=comp->db_ptr && comp->deliver_mode == 1){
            close_db(comp->db_ptr,0);
        }
        free(comp);
    }

consensus_init_exit:
    return comp;
}
Exemplo n.º 28
0
int main(void)
{
	int len;
	char *lenstr,poststr[512];
	char *player_id, *server_id;
	int can_share = 1;

	init_db((char *)"127.0.0.1", 3306, (char *)"pay", (char *)"root", (char *)"123456");

	printf("Content-Type:text/html\n\n");
	lenstr=getenv("CONTENT_LENGTH");
	if(lenstr == NULL) {
		printf("<DIV STYLE=\"COLOR:RED\">Errorarameters should be entered!</DIV>\n");
		return (0);
	}
	len=atoi(lenstr) + 1;
	if (len >= 512)
		return (0);
	
	fgets(poststr,len,stdin);
	parse_post_data(poststr, len);
	server_id = get_value((char *)"server_id");
	player_id = get_value((char *)"player_id");
	if (!server_id || !player_id)
		return (0);	
	
	MYSQL_RES *res = NULL;
	MYSQL_ROW row;	
	char sql[256];

	sprintf(sql, "select last_share_time, share_times, pay_times from share where server_id = %s and player_id = %s", server_id, player_id);
	res = query(sql, 1, NULL);
	if (!res) {
		send_no_record();
		goto done;
	}
	row = fetch_row(res);
	if (!row) {
		send_no_record();
		goto done;
	}


	if (!check_can_share(row)) {
		can_share = 0;
	}

	printf("[%d, %s, %s]", can_share, row[1], row[2]);
	
done:
	if (res)
		free_query(res);
	fflush(stdout);
	close_db();		
	return 0;
}
Exemplo n.º 29
0
int TestPartUnsortedKey(CuTest *ct) {
	DB_ENV *dbenv;
	DB *dbp;
	DBT *keys;
	u_int32_t i, indx;

	dbenv = NULL;
	dbp = NULL;
	keys = NULL;
	nparts = 6;

	CuAssertTrue(ct, (keys = malloc((nparts - 1) * sizeof(DBT))) != NULL);
	memset(keys, 0, (nparts - 1) * sizeof(DBT));
	/* Assign unsorted keys to the array. */
	for (i = 0, indx = 0; i < (nparts - 1); i++) {
		if (i == (nparts - 2) && i % 2 == 0)
			indx = i;
		else if (i % 2 != 0)
			indx = i - 1;
		else
			indx = i + 1;
		keys[i].data =
		    &content[(indx + 1) * (strlen(content) / nparts)];
		keys[i].size = sizeof(char);
	}

	CuAssertTrue(ct, create_db(&dbenv, &dbp, 0, ct) == 0);
	CuAssertTrue(ct,
	    dbp->set_partition(dbp, nparts - 1, &keys[1], NULL) == 0);
	CuAssertTrue(ct, dbp->open(dbp, NULL,
	    "test.db", NULL, DB_BTREE, DB_CREATE, 0644) == 0);
	CuAssertTrue(ct, put_data(dbp) == 0);
	CuAssertTrue(ct, dbp->close(dbp, 0) == 0);

	/*
	 * Reconfig with a different partition number and
	 * re-open the database.
	 */
	CuAssertTrue(ct, db_create(&dbp, dbenv, 0) == 0);
	CuAssertTrue(ct, dbp->set_partition(dbp, nparts, keys, NULL) == 0);
	CuAssertTrue(ct, dbp->open(dbp, NULL,
	    "test.db", NULL, DB_BTREE, 0, 0644) != 0);
	CuAssertTrue(ct, dbp->close(dbp, 0) == 0);

	/*
	 * Reconfig with a different set of partition keys and
	 * re-open the database.
	 */
	CuAssertTrue(ct, db_create(&dbp, dbenv, 0) == 0);
	CuAssertTrue(ct, dbp->set_partition(dbp, nparts - 1, keys, NULL) == 0);
	CuAssertTrue(ct, dbp->open(dbp, NULL,
	    "test.db", NULL, DB_BTREE, 0, 0644) != 0);
	CuAssertTrue(ct, close_db(dbenv, dbp, ct) == 0);
	free(keys);
	return (0);
}
Exemplo n.º 30
0
void cleanup(void) {
  close_out();
  close_watch();
  close_db();
  printf("Manually stopped. Wrote data to %s<x>vals!\n", output);
  logm("INFO successfully shut down!");
  free(output);
  free(logfile);
  free(dbfile);
}