diff --git a/src/server/distrend.c b/src/server/distrend.c --- a/src/server/distrend.c +++ b/src/server/distrend.c @@ -858,7 +858,6 @@ int update_xml_joblist(struct general_in struct distrenjob *job; xmlTextWriterPtr writer; char *tmp; - char *tmp2; int counter; /** @@ -868,7 +867,11 @@ int update_xml_joblist(struct general_in if(geninfo->timestamp > 65530) geninfo->timestamp = 0; - writer = xmlNewTextWriterFilename("job_list.xml", 0); + _distren_asprintf(&tmp, "%s/job_list.xml", + geninfo->config->datadir); + writer = xmlNewTextWriterFilename(tmp, 0); + free(tmp); + xmlTextWriterStartDocument(writer, NULL, "utf-8", NULL); /** @@ -884,10 +887,8 @@ int update_xml_joblist(struct general_in counter = 0; for(job = geninfo->head.next; job; job = job->next) { - _distren_asprintf(&tmp, "jobnum%d", counter); - _distren_asprintf(&tmp2, "%d", job->jobnum); - xmlTextWriterWriteElement(writer, (xmlChar*)tmp, (xmlChar*)tmp2); - free(tmp2); + _distren_asprintf(&tmp, "%d", job->jobnum); + xmlTextWriterWriteElement(writer, (xmlChar*)"jobnum", (xmlChar*)tmp); free(tmp); /** @@ -900,6 +901,8 @@ int update_xml_joblist(struct general_in counter++; } + xmlTextWriterEndElement(writer); + /** close elements and end document */ @@ -924,15 +927,23 @@ int createQueueFromXML(struct general_in xmlDocPtr doc; xmlNodePtr cur; + char *xmllist_path; + /** load xml document */ - doc = xmlParseFile("job_list.xml"); + + _distren_asprintf(&xmllist_path, "%s/job_list.xml", geninfo->config->datadir); + doc = xmlParseFile(xmllist_path); if(doc == NULL) { - fprintf(stderr, "createQueueFromXML: document not found\n"); + fprintf(stderr, "createQueueFromXML: ``%s'' could not be not loaded\n", + xmllist_path); + + free(xmllist_path); return 1; } + free(xmllist_path); /** have cur point to the root element of the xml document pointed to by doc @@ -948,6 +959,8 @@ int createQueueFromXML(struct general_in { fprintf(stderr, "createQueueFromXML: incorrect root element (%s)", (char*)cur->name); } + else + fprintf(stderr, "USING %s\n", cur->name); /** moves into the children elements of job_list