summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2009-01-21 12:57:28 +0100
committerSumit Bose <sbose@redhat.com>2009-01-21 12:57:28 +0100
commitd19873be725bf39585a8c0d9fd1cb0ef3e577ff3 (patch)
tree267c7c9ac662a7254b39422daa483c6af5123e5a
parent63d63a772653ecf20549688ffafc15a04f75e56f (diff)
downloadipa_policy-d19873be725bf39585a8c0d9fd1cb0ef3e577ff3.tar.gz
ipa_policy-d19873be725bf39585a8c0d9fd1cb0ef3e577ff3.tar.xz
ipa_policy-d19873be725bf39585a8c0d9fd1cb0ef3e577ff3.zip
fixed usage of search path
-rw-r--r--worker/xml_helper.c27
1 files changed, 17 insertions, 10 deletions
diff --git a/worker/xml_helper.c b/worker/xml_helper.c
index 1680d3b..98d9e31 100644
--- a/worker/xml_helper.c
+++ b/worker/xml_helper.c
@@ -295,6 +295,7 @@ xmlParserInputPtr xml_external_entity_loader(const char *url, const char *id,
xmlParserInputPtr input_ptr;
warningSAXFunc saved_warning = NULL;
errorSAXFunc saved_error = NULL;
+ struct search_list *path_ptr;
CHECK(default_entity_loader, NULL,
@@ -319,18 +320,24 @@ xmlParserInputPtr xml_external_entity_loader(const char *url, const char *id,
if (saved_error != NULL) ctxt->sax->error = saved_error;
return input_ptr;
}
+
+ path_ptr = search_list_head;
+ while ( path_ptr != NULL ) {
- new_path[0]='\0';
- strncat(new_path, "../policy_metadata/", PATH_MAX-1);
- strncat(new_path, filename, PATH_MAX-strlen(new_path)-1);
+ new_path[0]='\0';
+ strncat(new_path, path_ptr->path, PATH_MAX-1);
+ strncat(new_path, filename, PATH_MAX-strlen(new_path)-1);
+
+ input_ptr=default_entity_loader(new_path, id, ctxt);
+ if (input_ptr != NULL) {
+ DEBUG(3, ("found: %s %s\n",new_path, id));
+ if (saved_warning != NULL) ctxt->sax->warning = saved_warning;
+ if (saved_error != NULL) ctxt->sax->error = saved_error;
+ return input_ptr;
+ }
- input_ptr=default_entity_loader(new_path, id, ctxt);
- if (input_ptr != NULL) {
- DEBUG(3, ("found: %s %s\n",new_path, id));
- if (saved_warning != NULL) ctxt->sax->warning = saved_warning;
- if (saved_error != NULL) ctxt->sax->error = saved_error;
- return input_ptr;
- }
+ path_ptr = path_ptr->next;
+ }
DEBUG(0, ("entity NOT found: %s %s\n",new_path, id));
if (saved_warning != NULL) ctxt->sax->warning = saved_warning;