db ping for wtps
FossilOrigin-Name: 2166d42d32d97687f0ac6fa48fd597dbb8706dc33b06dfe8a5f6ce76bb449336
This commit is contained in:
parent
177902f44b
commit
aadb57f036
54
src/ac/db.c
54
src/ac/db.c
@ -15,7 +15,7 @@ static sqlite3 *handle;
|
|||||||
const char * init_tables = "\
|
const char * init_tables = "\
|
||||||
CREATE TABLE IF NOT EXISTS acs (acid TEXT PRIMARY KEY, acname TEXT, lastseen TIMESTAMP); \
|
CREATE TABLE IF NOT EXISTS acs (acid TEXT PRIMARY KEY, acname TEXT, lastseen TIMESTAMP); \
|
||||||
CREATE TABLE IF NOT EXISTS acips (acid TEXT,ip TEXT); \
|
CREATE TABLE IF NOT EXISTS acips (acid TEXT,ip TEXT); \
|
||||||
CREATE TABLE IF NOT EXISTS wtps (wtpid TEXT PRIMARY KEY, wtp_name TEXT,lastseen TIMESTAMP); \
|
CREATE TABLE IF NOT EXISTS wtps (wtpid TEXT PRIMARY KEY, acid TEXT,lastseen TIMESTAMP); \
|
||||||
CREATE TABLE IF NOT EXISTS wtpprops (\
|
CREATE TABLE IF NOT EXISTS wtpprops (\
|
||||||
wtpid TEXT NOT NULL,\
|
wtpid TEXT NOT NULL,\
|
||||||
id TEXT NOT NULL,\
|
id TEXT NOT NULL,\
|
||||||
@ -75,8 +75,11 @@ int db_init()
|
|||||||
|
|
||||||
static sqlite3_stmt * ping_stmt;
|
static sqlite3_stmt * ping_stmt;
|
||||||
static sqlite3_stmt * put_wtp_prop_stmt;
|
static sqlite3_stmt * put_wtp_prop_stmt;
|
||||||
|
|
||||||
|
|
||||||
static sqlite3_stmt * get_tasks_stmt;
|
static sqlite3_stmt * get_tasks_stmt;
|
||||||
|
|
||||||
|
static sqlite3_stmt * stmt_ping_wtp;
|
||||||
|
|
||||||
|
|
||||||
int db_start()
|
int db_start()
|
||||||
@ -110,6 +113,13 @@ int db_start()
|
|||||||
goto errX;
|
goto errX;
|
||||||
|
|
||||||
|
|
||||||
|
/* Prepare WTP ping statement */
|
||||||
|
sql = "INSERT OR REPLACE INTO wtps (wtpid,acid,lastseen) VALUES(?,?,datetime('now'))";
|
||||||
|
rc = sqlite3_prepare_v2(handle, sql,-1, &stmt_ping_wtp,0);
|
||||||
|
if (rc)
|
||||||
|
goto errX;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
sql = "SELECT wtpid,id,sub_id,val FROM wtpprops WHERE upd>0 AND wtpid=?";
|
sql = "SELECT wtpid,id,sub_id,val FROM wtpprops WHERE upd>0 AND wtpid=?";
|
||||||
rc = sqlite3_prepare_v2(handle, sql,-1, &get_tasks_stmt,0);
|
rc = sqlite3_prepare_v2(handle, sql,-1, &get_tasks_stmt,0);
|
||||||
@ -136,11 +146,34 @@ void db_ping()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void db_ping_wtp(const char *wtpid,const char *acid)
|
||||||
|
{
|
||||||
|
int rc=0;
|
||||||
|
sqlite3_reset(stmt_ping_wtp);
|
||||||
|
sqlite3_clear_bindings(stmt_ping_wtp);
|
||||||
|
if(sqlite3_bind_text(stmt_ping_wtp,1,wtpid,-1,SQLITE_STATIC))
|
||||||
|
goto errX;
|
||||||
|
|
||||||
|
if(sqlite3_bind_text(stmt_ping_wtp,2,acid,-1,SQLITE_STATIC))
|
||||||
|
goto errX;
|
||||||
|
|
||||||
|
rc = sqlite3_step(stmt_ping_wtp);
|
||||||
|
errX:
|
||||||
|
if (rc!=SQLITE_DONE) {
|
||||||
|
cw_log(LOG_ERR,"Can't ping database for WTP: %d - %s",
|
||||||
|
rc,sqlite3_errmsg(handle));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void db_put_wtp_prop(const char *wtp_id,const char * id,const char *sub_id,const char * val)
|
void db_put_wtp_prop(const char *wtp_id,const char * id,const char *sub_id,const char * val)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc=0;
|
||||||
|
|
||||||
//DBGX("Putting %s/%s:%s",id,sub_id,val);
|
DBGX("Putting %s/%s:%s",id,sub_id,val);
|
||||||
|
|
||||||
sqlite3_reset(put_wtp_prop_stmt);
|
sqlite3_reset(put_wtp_prop_stmt);
|
||||||
sqlite3_clear_bindings(put_wtp_prop_stmt);
|
sqlite3_clear_bindings(put_wtp_prop_stmt);
|
||||||
@ -164,11 +197,20 @@ void db_put_wtp_prop(const char *wtp_id,const char * id,const char *sub_id,const
|
|||||||
if (sqlite3_bind_int(put_wtp_prop_stmt,5,0))
|
if (sqlite3_bind_int(put_wtp_prop_stmt,5,0))
|
||||||
goto errX;
|
goto errX;
|
||||||
|
|
||||||
|
cw_dbg(DBG_X,"Her I am already, next is step");
|
||||||
|
|
||||||
if (sqlite3_step(put_wtp_prop_stmt))
|
rc = sqlite3_step(put_wtp_prop_stmt);
|
||||||
|
if (rc != SQLITE_DONE)
|
||||||
goto errX;
|
goto errX;
|
||||||
|
|
||||||
|
|
||||||
|
cw_dbg(DBG_X,"SQL schould be fine");
|
||||||
|
|
||||||
return;
|
return;
|
||||||
errX:
|
errX:
|
||||||
|
cw_dbg (DBG_X, "Iam on err %d\n",rc);
|
||||||
|
|
||||||
|
|
||||||
if (rc) {
|
if (rc) {
|
||||||
cw_log(LOG_ERR,"Can't update database with WTP props: %d - %s",
|
cw_log(LOG_ERR,"Can't update database with WTP props: %d - %s",
|
||||||
rc,sqlite3_errmsg(handle));
|
rc,sqlite3_errmsg(handle));
|
||||||
@ -188,12 +230,12 @@ mavl_conststr_t db_get_update_tasks(struct conn * conn,const char * wtpid)
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
|
||||||
|
int rc=0;
|
||||||
|
|
||||||
|
|
||||||
if(sqlite3_bind_text(get_tasks_stmt,1,wtpid,-1,SQLITE_STATIC))
|
if(sqlite3_bind_text(get_tasks_stmt,1,wtpid,-1,SQLITE_STATIC))
|
||||||
goto errX;
|
goto errX;
|
||||||
|
|
||||||
int rc;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -227,7 +269,7 @@ mavl_conststr_t db_get_update_tasks(struct conn * conn,const char * wtpid)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t data[2048];
|
//uint8_t data[2048];
|
||||||
|
|
||||||
if (!cwi->type->from_str) {
|
if (!cwi->type->from_str) {
|
||||||
cw_log(LOG_ERR,"Can't convert from string %s/%s - No method defined.",id,sub_id);
|
cw_log(LOG_ERR,"Can't convert from string %s/%s - No method defined.",id,sub_id);
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
#include "cw/mavl.h"
|
#include "cw/mavl.h"
|
||||||
|
|
||||||
extern void db_ping();
|
extern void db_ping();
|
||||||
|
extern void db_ping_wtp(const char *wtpid,const char *acid);
|
||||||
|
|
||||||
extern int db_init();
|
extern int db_init();
|
||||||
int db_start();
|
int db_start();
|
||||||
int db_get_tasks(struct conn * conn,const char * wtpid);
|
int db_get_tasks(struct conn * conn,const char * wtpid);
|
||||||
|
Loading…
Reference in New Issue
Block a user