GLOBUS_CFLAGS:=-I${globus_prefix}/include/${nothrflavour}
-DEBUG:=-g -O0 -DDEBUG
+DEBUG:=-W -Wall -Wno-unused-parameter -Wno-unused-function -g -O0 -DDEBUG
CFLAGS:=${DEBUG} -I. -I${top_srcdir}/interface -I${top_srcdir}/src -I${gsoap_prefix}/include -I${stagedir}/include ${GLOBUS_CFLAGS} -I${mysql_prefix}/include -I${mysql_prefix}/include/mysql
LDFLAGS:=-L${stagedir}/lib
+#define _GNU_SOURCE
+
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include "db_ops.h"
-static print_err(glite_jp_context_t ctx) {
+static void print_err(glite_jp_context_t ctx) {
glite_jp_error_t *e;
e = ctx->error;
printf("locked: uniqueid=%li, ps=%s\n", uniqueid, ps);
free(ps);
- asprintf(&feedid, "feed://%d", uniqueid + 3);
+ asprintf(&feedid, "feed://%lu", uniqueid + 3);
if (glite_jpis_initFeed(isctx, uniqueid, feedid, (time_t)10000) != 0) {
free(feedid);
goto faildb;
#include <stdlib.h>
#include <string.h>
+#include <glite/jp/types.h>
+#include <glite/jp/context.h>
#include "conf.h"
void glite_jp_free_conf(glite_jp_is_conf *conf)
{
- // XXX: structure dealocation
+ size_t i, j, k;
+ glite_jp_is_feed *feed;
+
+ if (!conf) return;
+
+ if (conf->attrs) for (i = 0; conf->attrs[i]; i++) free(conf->attrs[i]);
+ if (conf->indexed_attrs) for (i = 0; conf->indexed_attrs[i]; i++) free(conf->indexed_attrs[i]);
+ if (conf->plugins) for (i = 0; conf->plugins[i]; i++) free(conf->plugins[i]);
+ if (conf->feeds) for (i = 0; conf->feeds[i]; i++) {
+ feed = conf->feeds[i];
+ free(feed->PS_URL);
+ for (j = 0; feed->query[j]; j++) {
+ for (k = 0; feed->query[j][k].attr; k++) glite_jp_free_query_rec(&feed->query[j][k]);
+ free(feed->query[j]);
+ }
+ free(feed->query);
+ free(feed);
+ }
+ free(conf->attrs);
+ free(conf->indexed_attrs);
+ free(conf->plugins);
+ free(conf->feeds);
+ free(conf);
}
#ident "$Header$"
+#define _GNU_SOURCE
+
#include <time.h>
#include <errno.h>
#include <stdlib.h>
#include <inttypes.h>
#include <string.h>
#include <assert.h>
+#include <stdio.h>
#include <glite/jp/types.h>
#include <glite/jp/context.h>
#define COND_MAGIC 0x444E4F43
-static is_indexed(glite_jp_is_conf *conf, const char *attr) {
+static int is_indexed(glite_jp_is_conf *conf, const char *attr) {
size_t i;
i = 0;
switch (query->op) {
case GLITE_JP_QUERYOP_WITHIN:
len = query->binary ? query->size2 : strlen(query->value2) + 1;
+ case GLITE_JP_QUERYOP_UNDEF:
case GLITE_JP_QUERYOP_EQUAL:
case GLITE_JP_QUERYOP_UNEQUAL:
case GLITE_JP_QUERYOP_LESS:
case GLITE_JP_QUERYOP_GREATER:
case GLITE_JP_QUERYOP_EXISTS:
+ case GLITE_JP_QUERYOP__LAST:
len = 0;
}
if ((query = calloc(sizeof(*query), 1)) == NULL) goto fail;
l = array_get_long(&blob_ptr);
if (l != COND_MAGIC) {
- printf("blob=%p, blob_ptr=%p, 0x%08" PRIX32 "\n", blob, blob_ptr, l);
+ lprintf("blob=%p, blob_ptr=%p, 0x%08" PRIX32 "\n", blob, blob_ptr, l);
ret = EINVAL;
goto fail_query;
}
int glite_jpis_dropDatabase(glite_jp_context_t ctx) {
glite_jp_db_stmt_t stmt_tabs;
- void *inp, *res;
+ void *res;
char attrid[33], sql[256];
unsigned long len;
int ret;
}
-int glite_jpis_free_context(glite_jpis_context_t ctx) {
+void glite_jpis_free_context(glite_jpis_context_t ctx) {
glite_jp_db_freestmt(&ctx->select_unlocked_feed_stmt);
glite_jp_db_freestmt(&ctx->lock_feed_stmt);
glite_jp_db_freestmt(&ctx->init_feed_stmt);
int glite_jpis_dropDatabase(glite_jp_context_t ctx);
int glite_jpis_init_context(glite_jpis_context_t *isctx, glite_jp_context_t jpctx);
-int glite_jpis_free_context(glite_jpis_context_t ctx);
+void glite_jpis_free_context(glite_jpis_context_t ctx);
int glite_jpis_lockUninitializedFeed(glite_jpis_context_t ctx, long int *uinqueid, char **PS_URL);
int glite_jpis_initFeed(glite_jpis_context_t ctx, long int uniqueid, char *feedId, time_t feedExpires);
#include "jpis_.nsmap"
#include "soap_version.h"
#include "db_ops.h"
+#include "ws_typeref.h"
static void err2fault(const glite_jp_context_t ctx,struct soap *soap)
{
- char *et;
struct SOAP_ENV__Detail *detail = soap_malloc(soap,sizeof *detail);
struct _genericFault *f = soap_malloc(soap,sizeof *f);
for (iattrs = 0; iattrs < jobAttrs->__sizeattributes; iattrs++) {
attr = jobAttrs->attributes[iattrs];
- SoapToAttrVal(&av, attr);
+ glite_jpis_SoapToAttrVal(&av, attr);
if ((ret = glite_jpis_insertAttrVal(isctx, jobAttrs->jobid, &av)) != 0) return ret;
}
static void err2fault(const glite_jp_context_t ctx,struct soap *soap)
{
- char *et;
struct SOAP_ENV__Detail *detail = soap_malloc(soap,sizeof *detail);
struct _genericFault *f = soap_malloc(soap,sizeof *f);
{
struct _jpelem__FeedIndex in;
struct _jpelem__FeedIndexResponse out;
- struct jptype__primaryQuery query;
- struct jptype__stringOrBlob value;
+// struct jptype__primaryQuery query;
+// struct jptype__stringOrBlob value;
// struct xsd__base64Binary blob;
int i, dest_index;
struct soap *soap = soap_new();
}
}
-void SoapToAttrVal(glite_jp_attrval_t *av, const struct jptype__attrValue *attr) {
+void glite_jpis_SoapToAttrVal(glite_jp_attrval_t *av, const struct jptype__attrValue *attr) {
memset(av, 0, sizeof(*av));
av->name = attr->name;
av->binary = attr->value->blob ? 1 : 0;
int glite_jpis_QueryCondToSoap(struct soap *soap, glite_jp_query_rec_t *in, struct jptype__primaryQuery **out);
-void SoapToAttrVal(glite_jp_attrval_t *av, const struct jptype__attrValue *attr);
+void glite_jpis_SoapToAttrVal(glite_jp_attrval_t *av, const struct jptype__attrValue *attr);
#endif