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)