wmx_Version_t PIPE_HANDLER_GetVersion() { wmx_Version_t ver; SET_VERSION(ver, PIPE_HANDLER_MAJOR, PIPE_HANDLER_MINOR, PIPE_HANDLER_BUILD, PIPE_HANDLER_REVISION, PIPE_HANDLER_BRANCH); return ver; }
static void _create_db() { gchar *request; char *zErrMsg; char **result; int rc; int nrow; int ncolumn; /* create all tables needed */ rc = sqlite3_exec(gcompris_db,CREATE_TABLE_USERS, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,CREATE_TABLE_CLASS, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,CREATE_TABLE_GROUPS, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,CREATE_TABLE_USERS_IN_GROUPS, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,CREATE_TABLE_GROUPS_IN_PROFILES, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,CREATE_TABLE_ACTIVITIES_OUT, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,CREATE_TABLE_PROFILES, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,CREATE_TABLE_BOARDS_PROFILES_CONF, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,CREATE_TABLE_BOARDS, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,CREATE_TABLE_INFO, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,CREATE_TABLE_LOGS, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } /* CREATE TRIGGERS */ rc = sqlite3_exec(gcompris_db,TRIGGER_DELETE_CLASS, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,TRIGGER_DELETE_GROUPS, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,TRIGGER_DELETE_PROFILES, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,TRIGGER_DELETE_USERS, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,TRIGGER_INSERT_USERS, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,TRIGGER_UPDATE_USERS, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } g_message("Database tables created"); request = g_strdup_printf(SET_VERSION(VERSION)); rc = sqlite3_get_table(gcompris_db, request, &result, &nrow, &ncolumn, &zErrMsg ); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,SET_DEFAULT_PROFILE, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,ACTIVATE_DEFAULT_PROFILE, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } request = g_strdup_printf("INSERT INTO class (class_id, name, teacher, wholegroup_id) VALUES ( 1, \"%s\", \"(%s)\", 1);", _("Unaffected"), _("Users without a class")); rc = sqlite3_exec(gcompris_db, request, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } rc = sqlite3_exec(gcompris_db,SET_DEFAULT_GROUP, NULL, 0, &zErrMsg); if( rc!=SQLITE_OK ){ g_error("SQL error: %s\n", zErrMsg); } sqlite3_free_table(result); g_free(request); _set_user_version(SCHEMA_USER_VERSION); }
/* * create_packet - Creates an LSA packet that is to be flooded. * * @param size pointer to the size of the LSA to be created * @param type type of the LSA to be created (LSA, ACK) * @param node_id node id of the sending node * @param sequence_num incremental sequence number * @param dl pointer to direct neighbors table * @param ol pointer to local objects table * @return created LSA packet */ LSA * create_packet(int *size, int type, int node_id, int sequence_num, direct_links *dl, local_objects *ol) { int i, name_len; int num_links = 0; int num_objects = 0; int link_size_total = 0; int object_size_total = 0; object_entry *objects; link_entry *links; int *i_ptr; char *c_ptr; LSA *lsa; if (type == TYPE_ACK || type == TYPE_DOWN) { lsa = (LSA *)malloc(sizeof(LSA)); } else if (type == TYPE_LSA) { num_objects = ol->num_objects; num_links = dl->num_links; link_size_total += num_links*sizeof(int); object_size_total += num_objects*sizeof(int); links = dl->links; objects = ol->objects; for (i = 0; i < num_objects; i++) { object_size_total += strlen(objects[i].name); } lsa = (LSA *)malloc(sizeof(LSA) + link_size_total + object_size_total); c_ptr = lsa->links_objects; i_ptr = (int *)c_ptr; for (i = 1; i < num_links; i++) { *i_ptr = links[i].id; i_ptr++; } for (i = 0; i < num_objects; i++) { name_len = strlen(objects[i].name); *i_ptr = name_len; i_ptr++; c_ptr = (char *)i_ptr; memcpy(c_ptr, objects[i].name, name_len); c_ptr += name_len; i_ptr = (int *)c_ptr; } } lsa->version_ttl_type = 0; lsa->version_ttl_type = SET_VERSION(lsa->version_ttl_type, 0x1); lsa->version_ttl_type = SET_TTL(lsa->version_ttl_type, DEFAULT_TTL); lsa->version_ttl_type = SET_TYPE(lsa->version_ttl_type, type); lsa->sender_node_id = node_id; lsa->sequence_num = sequence_num; lsa->num_links = num_links-1; lsa->num_objects = num_objects; *size = sizeof(LSA) + link_size_total + object_size_total; return lsa; }