summaryrefslogblamecommitdiffstats
path: root/ts3db.c
blob: 9f45ac456f5e2feabd75374f4e84b52945ef87c3 (plain) (tree)






































































































































                                                                                                   
#include "ts3db.h"

static log_callback log = 0;

char *ts3dbplugin_version()
{
    // returns pointer to "127.0.0.1" in constant table ... strange maybe im mistaken here
    return "0.1";
}

char *ts3dbplugin_name()
{
    // returns pointer to "MySQL plugin, (c)TeamSpeak Systems GmbH" in constant table
    return "My own DB Plugin";
}

int ts3dbplugin_disconnect()
{
    // load zero terminated array of db connections from global variable
    // iterate over array elements, call mysql_close on all elements and zero them
    return 0;
}

void ts3dbplugin_shutdown()
{
    // same as ts3dbplugin_disconnect() but no return 0
}

int ts3dbplugin_init(log_callback logging, char *parameter)
{
    char buf[100];

    log = logging;
    log("init called", 5);
    int bar = log(0, 4);
    sprintf(buf,"%d",bar);
    log(buf, 5);
    log(parameter, 5);

    // logcallback is saved to global variable
    // put pointer do some global structure with offset 12 is saved in variable
    // if 2nd parameter or its target is zero "tb3db_mysql.ini" is written to a variable
    // else the pointer is saved its length is determined and saved also saved (saved in variables)
    // ini file is parsed and values are saved to global variables
    return 0;
}

int ts3dbplugin_connect(unsigned int *connection_nr)
{
    log("connect called", 5);
    *connection_nr = 1337;

    // only does somthing usefull when there are less than 100 connections in the connection array
    // calls mysql_init
    // big function is big ... needs work
    // seems to returns 0 on succses seems to return 1280 on failure
    return 0;
}

char *ts3dbplugin_getlasterror(unsigned int connection_nr)
{
    log("getlasterror called", 5);
    char buf[100];
    sprintf(buf,"%d", connection_nr);
    log(buf, 5);

    // returns output of mysql_error for the connection of the given connection number
    return "nothing";
}

unsigned int ts3dbplugin_tableexists(unsigned int connection_nr, const char* regex)
{
    log("tableexists called", 5);
    char buf[100];
    sprintf(buf,"%d", connection_nr);
    log(buf, 5);
    log(regex, 5);

    // returns 0 when no table is found 1 if it is found
    return 1;
}

unsigned long long ts3dbplugin_getmodifiedrowcount(unsigned int connection_nr)
{
    log("get modified row count", 5);
    char buf[100];
    sprintf(buf,"%d", connection_nr);
    log(buf, 5);

    // returns output of mysql_affected_rows for given connection
    return 0LL;
}

unsigned long long ts3dbplugin_getlastinsertid(unsigned int connection_nr)
{
    log("get last inserted id", 5);
    char buf[100];
    sprintf(buf,"%d", connection_nr);
    log(buf, 5);

    // returns output of mysql_insert_id for given connection
    return 0LL;
}

unsigned int ts3dbplugin_open(unsigned int connection_nr, const char* query,
                              field_callback new_field, value_callback new_value,
                              row_callback new_row, void *context)
{
    log("open", 5);
    char buf[100];
    sprintf(buf,"%d", connection_nr);
    log(buf, 5);
    log(query, 5);

    // get query result
    // if row ends value is 0
    // returns 0 for success or 1280 for fail
    return 0;
}

unsigned int ts3dbplugin_exec(unsigned int connection_nr, const char* query)
{
    log("exec", 5);
    char buf[100];
    sprintf(buf,"%d", connection_nr);
    log(buf, 5);
    log(query, 5);

    // form sqlite plugin
    // executes querry -> retrys every 200ms if db is locked, busy or when the db shema has changed
    // return 1284 if db is full
    // when result is SQLITE_OK return 0
    // else do error handling and return 1280
    return 0;
}