From 4d4851d0aaa3d77ca6bff2f303864c554f44f54b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= Date: Wed, 12 Dec 2007 17:56:45 +0000 Subject: [PATCH] Some bugfixes yet (mainly db code on the start communitation with JP PS). --- org.glite.jp.index/src/db_ops.c | 5 +++-- org.glite.jp.index/src/soap_ops.c | 5 +++-- org.glite.jp.server-common/src/db.c | 10 +++++++--- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/org.glite.jp.index/src/db_ops.c b/org.glite.jp.index/src/db_ops.c index d728083..a764e50 100644 --- a/org.glite.jp.index/src/db_ops.c +++ b/org.glite.jp.index/src/db_ops.c @@ -310,7 +310,6 @@ int glite_jpis_initDatabase(glite_jpis_context_t ctx) { GLITE_LBU_DB_TYPE_VARCHAR, attrs[i], GLITE_LBU_DB_TYPE_INT, indexed, GLITE_LBU_DB_TYPE_VARCHAR, type_full) == -1) goto fail; - free(attrid); // silently drop sql[sizeof(sql) - 1] = '\0'; @@ -321,6 +320,7 @@ int glite_jpis_initDatabase(glite_jpis_context_t ctx) { // create table sql[sizeof(sql) - 1] = '\0'; snprintf(sql, sizeof(sql) - 1, SQLCMD_CREATE_DATA_TABLE, attrid, type_index, type_full); + free(attrid); llprintf(LOG_SQL, "creating table: '%s'\n", sql); if ((glite_jp_db_ExecSQL(jpctx, sql, NULL)) == -1) { glite_jpis_stack_error(ctx->jpctx, EAGAIN, "if the atribute table already exists, restart may help"); @@ -487,6 +487,7 @@ int glite_jpis_lockSearchFeed(glite_jpis_context_t ctx, int initialized, long in } else trio_asprintf(&sql, "SELECT uniqueid, source, state, feedid FROM feeds WHERE (locked=0) AND (feedid IS NULL) AND ((state < " GLITE_JP_IS_STATE_ERROR_STR ") OR (expires <= %s))", t); free(t); + //llprintf(LOG_SQL, "sql=%s\n", sql); ret = glite_jp_db_ExecSQL(ctx->jpctx, sql, &stmt); free(sql); switch (ret) { @@ -511,10 +512,10 @@ int glite_jpis_lockSearchFeed(glite_jpis_context_t ctx, int initialized, long in return ENOLCK; } glite_jp_db_FreeStmt(&stmt); + lprintf("selected feed, uniqueid=%s\n", res[0]); *uniqueid = atol(res[0]); free(res[0]); ps = res[1]; if (status) *status = atoi(res[2]); free(res[2]); - lprintf("selected feed, uniqueid=%s\n", *uniqueid); if (feedid) { free(*feedid); *feedid = res[3]; diff --git a/org.glite.jp.index/src/soap_ops.c b/org.glite.jp.index/src/soap_ops.c index c269e03..9815146 100644 --- a/org.glite.jp.index/src/soap_ops.c +++ b/org.glite.jp.index/src/soap_ops.c @@ -75,6 +75,7 @@ SOAP_FMAC5 int SOAP_FMAC6 __jpsrv__UpdateJobs( // XXX: test client in examples/jpis-test // sends to this function some data for testing puts(__FUNCTION__); + glite_jp_clear_error(jpctx); ps = NULL; // get info about the feed @@ -215,7 +216,7 @@ static void add_attr_table(char *new, char ***attr_tables) /* transform soap enum queryOp to mysql quivalent */ static int get_op(const enum jptype__queryOp in, char **out) -{ +{ char *qop; glite_jp_queryop_t op; @@ -618,6 +619,7 @@ SOAP_FMAC5 int SOAP_FMAC6 __jpsrv__QueryJobs( puts(__FUNCTION__); + glite_jp_clear_error(ctx->jpctx); memset(out, 0, sizeof(*out)); /* test whether there is any indexed attribudes in the condition */ @@ -712,4 +714,3 @@ SOAP_FMAC5 int SOAP_FMAC6 __jpsrv__ServerConfiguration( puts(__FUNCTION__); return SOAP_OK; } - diff --git a/org.glite.jp.server-common/src/db.c b/org.glite.jp.server-common/src/db.c index 285d439..80d02a3 100644 --- a/org.glite.jp.server-common/src/db.c +++ b/org.glite.jp.server-common/src/db.c @@ -56,18 +56,22 @@ int glite_jp_db_FetchRow(glite_jp_context_t ctx, glite_lbu_Statement stmt, unsig int glite_jp_db_PrepareStmt(glite_jp_context_t ctx, const char *sql, glite_lbu_Statement *stmt) { - glite_lbu_PrepareStmt(ctx->dbhandle, sql, stmt); + int ret; + + ret = glite_lbu_PrepareStmt(ctx->dbhandle, sql, stmt); + if (ret < 0) glite_jp_db_SetError(ctx, __FUNCTION__); return glite_jp_db_SetError(ctx, __FUNCTION__); } int glite_jp_db_ExecPreparedStmt(glite_jp_context_t ctx, glite_lbu_Statement stmt, int n,...) { va_list ap; + int ret; va_start(ap, n); - glite_lbu_ExecPreparedStmt_v(stmt, n, ap); + ret = glite_lbu_ExecPreparedStmt_v(stmt, n, ap); va_end(ap); - return glite_jp_db_SetError(ctx, __FUNCTION__); + return ret; } -- 1.8.2.3