diff options
author | Sumit Bose <sbose@redhat.com> | 2009-01-21 12:57:28 +0100 |
---|---|---|
committer | Sumit Bose <sbose@redhat.com> | 2009-01-21 12:57:28 +0100 |
commit | d19873be725bf39585a8c0d9fd1cb0ef3e577ff3 (patch) | |
tree | 267c7c9ac662a7254b39422daa483c6af5123e5a | |
parent | 63d63a772653ecf20549688ffafc15a04f75e56f (diff) | |
download | ipa_policy-d19873be725bf39585a8c0d9fd1cb0ef3e577ff3.tar.gz ipa_policy-d19873be725bf39585a8c0d9fd1cb0ef3e577ff3.tar.xz ipa_policy-d19873be725bf39585a8c0d9fd1cb0ef3e577ff3.zip |
fixed usage of search path
-rw-r--r-- | worker/xml_helper.c | 27 |
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; |