Some bugfixes yet (mainly db code on the start communitation with JP PS).
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Wed, 12 Dec 2007 17:56:45 +0000 (17:56 +0000)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Wed, 12 Dec 2007 17:56:45 +0000 (17:56 +0000)
org.glite.jp.index/src/db_ops.c
org.glite.jp.index/src/soap_ops.c
org.glite.jp.server-common/src/db.c

index d728083..a764e50 100644 (file)
@@ -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];
index c269e03..9815146 100644 (file)
@@ -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;
 }
-
index 285d439..80d02a3 100644 (file)
@@ -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;
 }