diff options
Diffstat (limited to 'debian/opensync/opensync-0.22/tools/osyncdump.c')
-rw-r--r-- | debian/opensync/opensync-0.22/tools/osyncdump.c | 241 |
1 files changed, 0 insertions, 241 deletions
diff --git a/debian/opensync/opensync-0.22/tools/osyncdump.c b/debian/opensync/opensync-0.22/tools/osyncdump.c deleted file mode 100644 index 423f1827..00000000 --- a/debian/opensync/opensync-0.22/tools/osyncdump.c +++ /dev/null @@ -1,241 +0,0 @@ -#include <opensync/opensync.h> -#include <opensync/opensync_internals.h> -#include <osengine/engine.h> -#include <osengine/engine_internals.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <sys/types.h> -#include <sys/wait.h> -#include <sqlite3.h> - -static void usage (char *name, int ecode) -{ - fprintf (stderr, "Usage: %s <groupname>\n", name); - fprintf (stderr, "[--mappings] \tDump all mappings. Default\n"); - fprintf (stderr, "[--hash <memberid>] \tDump hash table for member id\n"); - fprintf (stderr, "[--unmapped] \tAlso dumps changes which are unmapped\n"); - fprintf (stderr, "[--configdir] \tSet a different configdir then ~./opensync\n"); - fprintf (stderr, "[--reset] \tReset the database for this group\n"); - exit(ecode); -} - -typedef enum { - DUMPMAPS = 1, - DUMPHASH = 2, - DUMPUNMAPPED = 3, - RESET = 4 -} ToolAction; - -static void dump_map(OSyncEnv *osync, char *groupname) -{ - OSyncGroup *group = osync_env_find_group(osync, groupname); - - if (!group) { - printf("Unable to find group with name \"%s\"\n", groupname); - return; - } - - - OSyncChange **changes = NULL; - OSyncError *error = NULL; - if (!osync_changes_load(group, &changes, &error)) { - printf("Unable to load changes: %s\n", osync_error_print(&error)); - return; - } - - int i = 0; - OSyncChange *change = NULL; - while ((change = changes[i])) { - OSyncMember *member = osync_change_get_member(change); - int memberid = 0; - if (member) - memberid = osync_member_get_id(member); - const char *formatname = NULL; - if (osync_change_get_objformat(change)) - formatname = osync_objformat_get_name(osync_change_get_objformat(change)); - const char *objname = NULL; - if (osync_change_get_objtype(change)) - objname = osync_objtype_get_name(osync_change_get_objtype(change)); - printf("ID: %lli UID: %s MEMBER: %i\n\tOBJTYPE: %s OBJFORMAT: %s MAPPINGID: %lli\n", osync_change_get_id(change), osync_change_get_uid(change), memberid, objname, formatname, osync_change_get_mappingid(change)); - i++; - } - - osync_changes_close(group); -} - -static void dump_unmapped(OSyncEnv *osync, char *groupname) -{ - OSyncGroup *group = osync_env_find_group(osync, groupname); - - if (!group) { - printf("Unable to find group with name \"%s\"\n", groupname); - return; - } - - char *filename = g_strdup_printf("%s/change.db", osync_group_get_configdir(group)); - OSyncDB *db = osync_db_open(filename, NULL); - g_free(filename); - - sqlite3 *sdb = db->db; - - sqlite3_stmt *ppStmt = NULL; - sqlite3_prepare(sdb, "SELECT id, uid, objtype, format, memberid FROM tbl_changes WHERE mappingid=0", -1, &ppStmt, NULL); - while (sqlite3_step(ppStmt) == SQLITE_ROW) { - long long int entryid = sqlite3_column_int64(ppStmt, 0); - char *uid = g_strdup((gchar*)sqlite3_column_text(ppStmt, 1)); - char *objtype = g_strdup((gchar*)sqlite3_column_text(ppStmt, 2)); - char *objformat = g_strdup((gchar*)sqlite3_column_text(ppStmt, 3)); - long long int memberid = sqlite3_column_int64(ppStmt, 4); - - printf("ID: %lli UID: %s MEMBER: %lli, TYPE %s, FORMAT %s\n", entryid, uid, memberid, objtype, objformat); - } - sqlite3_finalize(ppStmt); - - osync_db_close(db); - - - /* - - OSyncMappingTable *table = osync_mappingtable_new(group); - char *entrydb = g_strdup_printf("%s/change.db", osync_group_get_configdir(group)); //FIXME!!! - DB *entrytable = osync_db_open(entrydb, "Entries", DB_BTREE, NULL); - g_free(entrydb); - if (!entrytable) { - printf("Unable to open change database\n"); - return; - } - - DBC *dbcp = osync_db_cursor_new(entrytable); - - void *entryid; - void *data; - - OSyncChange *change = NULL; - - while (osync_db_cursor_next(dbcp, &entryid, &data)) { - change = osync_change_new(); - osync_change_unmarshal(table, change, data); - - } - osync_db_cursor_close(dbcp); - - osync_db_close(entrytable);*/ -} - -static void dump_hash(OSyncEnv *osync, char *groupname, char *memberid) -{ - long long int id = atoi(memberid); - OSyncGroup *group = osync_env_find_group(osync, groupname); - - if (!group) { - printf("Unable to find group with name %s\n", groupname); - return; - } - - OSyncMember *member = osync_member_from_id(group, id); - if (!member) { - printf("Unable to find member with id %s\n", memberid); - return; - } - - OSyncHashTable *table = osync_hashtable_new(); - osync_db_open_hashtable(table, member, NULL); - - sqlite3 *sdb = table->dbhandle->db; - - sqlite3_stmt *ppStmt = NULL; - sqlite3_prepare(sdb, "SELECT uid, hash FROM tbl_hash", -1, &ppStmt, NULL); - while (sqlite3_step(ppStmt) == SQLITE_ROW) { - char *uid = g_strdup((gchar*)sqlite3_column_text(ppStmt, 0)); - char *hash = g_strdup((gchar*)sqlite3_column_text(ppStmt, 1)); - printf("UID: %s HASH: %s\n", uid, hash); - } - sqlite3_finalize(ppStmt); - - osync_db_close_hashtable(table); -} - -static void reset(OSyncEnv *osync, char *groupname) -{ - OSyncGroup *group = osync_env_find_group(osync, groupname); - - if (!group) { - printf("Unable to find group with name \"%s\"\n", groupname); - return; - } - - osync_group_reset(group); -} - -int main (int argc, char *argv[]) -{ - int i; - char *groupname = NULL; - char *membername = NULL; - ToolAction action = DUMPMAPS; - char *configdir = NULL; - - if (argc == 1) - usage (argv[0], 1); - - groupname = argv[1]; - for (i = 2; i < argc; i++) { - char *arg = argv[i]; - if (!strcmp (arg, "--mappings")) { - action = DUMPMAPS; - } else if (!strcmp (arg, "--hash")) { - action = DUMPHASH; - membername = argv[i + 1]; - i++; - if (!membername) - usage (argv[0], 1); - } else if (!strcmp (arg, "--reset")) { - action = RESET; - } else if (!strcmp (arg, "--unmapped")) { - action = DUMPUNMAPPED; - } else if (!strcmp (arg, "--help")) { - usage (argv[0], 0); - } else if (!strcmp (arg, "--configdir")) { - configdir = argv[i + 1]; - i++; - if (!configdir) - usage (argv[0], 1); - } else if (!strcmp (arg, "--")) { - break; - } else if (arg[0] == '-') { - usage (argv[0], 1); - } else { - usage (argv[0], 1); - } - } - - OSyncEnv *osync = osync_env_new(); - osync_env_set_option(osync, "GROUPS_DIRECTORY", configdir); - - OSyncError *error = NULL; - if (!osync_env_initialize(osync, &error)) { - printf("Unable to initialize environment: %s\n", error->message); - osync_error_free(&error); - return 1; - } - - switch (action) { - case DUMPMAPS: - dump_map(osync, groupname); - break; - case DUMPHASH: - dump_hash(osync, groupname, membername); - break; - case DUMPUNMAPPED: - dump_unmapped(osync, groupname); - break; - case RESET: - reset(osync, groupname); - break; - default: - printf("error\n"); - } - - return 0; -} |