X-Git-Url: https://git.strongswan.org/?p=strongswan.git;a=blobdiff_plain;f=src%2Fcharon%2Fcontrol%2Finterfaces%2Fxml_interface.c;h=7710ae19cf356f61e991b675524382ad083e339e;hp=389aeedbc5301a9a1783d613dd31749456ce50e8;hb=6baca3b2f1d0863d0caf4c7dc63530907193267b;hpb=ac1557af518083c4198cacb5a4a7e4391555aa57 diff --git a/src/charon/control/interfaces/xml_interface.c b/src/charon/control/interfaces/xml_interface.c index 389aeed..7710ae1 100644 --- a/src/charon/control/interfaces/xml_interface.c +++ b/src/charon/control/interfaces/xml_interface.c @@ -189,6 +189,7 @@ static void request_query_ikesa(xmlTextReaderPtr reader, xmlTextWriterPtr writer { write_bool(writer, "nat", ike_sa->has_condition(ike_sa, COND_NAT_HERE)); } + xmlTextWriterEndElement(writer); /* */ /* */ @@ -205,6 +206,7 @@ static void request_query_ikesa(xmlTextReaderPtr reader, xmlTextWriterPtr writer { write_bool(writer, "nat", ike_sa->has_condition(ike_sa, COND_NAT_THERE)); } + xmlTextWriterEndElement(writer); /* */ /* */ @@ -286,8 +288,14 @@ static void request(xmlTextReaderPtr reader, char *id, int fd) /* and close document */ xmlTextWriterEndDocument(writer); xmlFreeTextWriter(writer); - /* write a newline to indicate end of xml */ - write(fd, "\n", 1); +} + +/** + * cleanup helper function for open file descriptors + */ +static void closefdp(int *fd) +{ + close(*fd); } /** @@ -301,7 +309,7 @@ static job_requeue_t process(int *fdp) xmlTextReaderPtr reader; char *id = NULL, *type = NULL; - pthread_cleanup_push((void*)close, (void*)fd); + pthread_cleanup_push((void*)closefdp, (void*)&fd); pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &oldstate); len = read(fd, buffer, sizeof(buffer)); pthread_setcancelstate(oldstate, NULL); @@ -312,6 +320,7 @@ static job_requeue_t process(int *fdp) DBG2(DBG_CFG, "SMP XML connection closed"); return JOB_REQUEUE_NONE; } + DBG1(DBG_CFG, "got XML request: %b", buffer, len); reader = xmlReaderForMemory(buffer, len, NULL, NULL, 0); if (reader == NULL)