From d0f789c4d61ee1c0292d12008b7c9fe75dbc770b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zden=C4=9Bk=20=C5=A0ustr?= Date: Wed, 8 Aug 2012 08:38:31 +0000 Subject: [PATCH] IT WORKS! Job queries through HTTP query strings work. There will be more testing, of course. --- org.glite.lb.server/src/lb_proto.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/org.glite.lb.server/src/lb_proto.c b/org.glite.lb.server/src/lb_proto.c index 972b4d8..ae11218 100644 --- a/org.glite.lb.server/src/lb_proto.c +++ b/org.glite.lb.server/src/lb_proto.c @@ -502,8 +502,6 @@ int parse_query_conditions(edg_wll_Context ctx, const char *query, edg_wll_Query strncpy(attribute, cond, len); orvals=cond+len; - fprintf(stderr, "****%s:\n", attribute); - for (attr=1; attr")) conds[i][j].op = EDG_WLL_QUERY_OP_GREATER; @@ -610,6 +607,19 @@ int parse_query_conditions(edg_wll_Context ctx, const char *query, edg_wll_Query } err: + if (err) { + *conds=NULL; + if (conds) { + for (j = 0; conds[j]; j++) { + for (i = 0 ; (conds[j][i].attr != EDG_WLL_QUERY_ATTR_UNDEF); i++ ) + edg_wll_QueryRecFree(&conds[j][i]); + free(conds[j]); + } + free(conds); + } + } + else *conditions=conds; + free(q); free(errmsg); return err; @@ -910,7 +920,10 @@ edg_wll_ErrorCode edg_wll_Proto(edg_wll_Context ctx, // XXX: query strings are now not recognized as flags. Needs modifying. flags = (requestPTR[1]=='?') ? edg_wll_string_to_stat_flags(requestPTR + 2) : 0; - switch (edg_wll_UserJobsServer(ctx, EDG_WLL_STAT_CHILDREN, &jobsOut, &statesOut)) { + switch ( extra_opt == HTTP_EXTRA_OPTION_QUERY ? + edg_wll_QueryJobsServer(ctx, (const edg_wll_QueryRec **)job_conditions, flags, &jobsOut, &statesOut) : + edg_wll_UserJobsServer(ctx, EDG_WLL_STAT_CHILDREN, &jobsOut, &statesOut)) { + case 0: edg_wll_UserInfoToHTML(ctx, jobsOut, statesOut, &message, text); edg_wll_ServerStatisticsIncrement(ctx, text ? SERVER_STATS_TEXT_VIEWS : SERVER_STATS_HTML_VIEWS); break; -- 1.8.2.3