From: Aleš Křenek Date: Tue, 14 Feb 2006 18:57:42 +0000 (+0000) Subject: use glite_jpps_fplug_lookup_byclass() X-Git-Tag: merge_for_3_1_dst~12 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=5043a36867b3a68d0b6200c4d750a7a37216fe8e;p=jra1mw.git use glite_jpps_fplug_lookup_byclass() --- diff --git a/org.glite.jp.primary/interface/file_plugin.h b/org.glite.jp.primary/interface/file_plugin.h index eae219d..6bf22d2 100644 --- a/org.glite.jp.primary/interface/file_plugin.h +++ b/org.glite.jp.primary/interface/file_plugin.h @@ -68,6 +68,6 @@ typedef int (*glite_jpps_fplug_init_t)( int glite_jpps_fplug_load(glite_jp_context_t ctx,int argc,char **argv); int glite_jpps_fplug_lookup(glite_jp_context_t ctx,const char *uri, glite_jpps_fplug_data_t ***plugin_data); -int glite_jpps_fplug_lookup_byclass(glite_jp_context_t, const char *class,glite_jpps_fplug_data_t ***plugin_data,char **uri); +int glite_jpps_fplug_lookup_byclass(glite_jp_context_t, const char *class,glite_jpps_fplug_data_t ***plugin_data); #endif diff --git a/org.glite.jp.primary/src/feed.c b/org.glite.jp.primary/src/feed.c index 7220d4b..ab6df64 100644 --- a/org.glite.jp.primary/src/feed.c +++ b/org.glite.jp.primary/src/feed.c @@ -273,13 +273,15 @@ int glite_jpps_match_file( fprintf(stderr,"%s: %s %s %s\n",__FUNCTION__,job,class,name); + if (!f) return 0; - switch (glite_jpps_fplug_lookup(ctx,class,&pd)) { + switch (glite_jpps_fplug_lookup_byclass(ctx,class,&pd)) { case ENOENT: return 0; /* XXX: shall we complain? */ case 0: break; default: return -1; } + for (;f;f=f->next) { attr_union(attrs,f->attrs,&attrs2); free(attrs); @@ -288,7 +290,7 @@ int glite_jpps_match_file( for (pi=0; pd[pi]; pi++) { int ci; - for (ci=0; pd[pi]->uris[ci]; ci++) if (!strcmp(pd[pi]->uris[ci],class)) { + for (ci=0; pd[pi]->uris[ci]; ci++) if (!strcmp(pd[pi]->classes[ci],class)) { void *ph; if (!bh && (ret = glite_jppsbe_open_file(ctx,job,pd[pi]->classes[ci],name,O_RDONLY,&bh))) { diff --git a/org.glite.jp.primary/src/file_plugin.c b/org.glite.jp.primary/src/file_plugin.c index 144a231..2c27f93 100644 --- a/org.glite.jp.primary/src/file_plugin.c +++ b/org.glite.jp.primary/src/file_plugin.c @@ -76,7 +76,7 @@ int glite_jpps_fplug_load(glite_jp_context_t ctx,int argc,char **argv) return 0; } -int glite_jpps_fplug_lookup(glite_jp_context_t ctx,const char *uri, glite_jpps_fplug_data_t ***plugin_data) +static int lookup_common(glite_jp_context_t ctx,const char *uri,const char *class, glite_jpps_fplug_data_t ***plugin_data) { int i; @@ -87,7 +87,7 @@ int glite_jpps_fplug_lookup(glite_jp_context_t ctx,const char *uri, glite_jpps_f memset(&err,0,sizeof err); err.source = __FUNCTION__; err.code = ENOENT; - err.desc = (char *) uri; /* XXX: we don't modify it, believe me, gcc! */ + err.desc = (char *) (uri ? uri : class); /* XXX: we don't modify it, believe me, gcc! */ glite_jp_clear_error(ctx); if (!ctx->plugins) { @@ -99,7 +99,7 @@ int glite_jpps_fplug_lookup(glite_jp_context_t ctx,const char *uri, glite_jpps_f glite_jpps_fplug_data_t *p = ctx->plugins[i]; for (j=0; p->uris && p->uris[j]; j++) - if (!strcmp(p->uris[j],uri)) { + if ((uri && !strcmp(p->uris[j],uri)) || (class && !strcmp(p->classes[j],class))) { out = realloc(out, (matches+2) * sizeof *out); out[matches++] = p; out[matches] = NULL; @@ -113,3 +113,13 @@ int glite_jpps_fplug_lookup(glite_jp_context_t ctx,const char *uri, glite_jpps_f else return glite_jp_stack_error(ctx,&err); } +int glite_jpps_fplug_lookup(glite_jp_context_t ctx,const char *uri, glite_jpps_fplug_data_t ***plugin_data) +{ + return lookup_common(ctx,uri,NULL,plugin_data); +} + +int glite_jpps_fplug_lookup_byclass(glite_jp_context_t ctx, const char *class,glite_jpps_fplug_data_t ***plugin_data) +{ + return lookup_common(ctx,NULL,class,plugin_data); +} +