From 6baca3b2f1d0863d0caf4c7dc63530907193267b Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Thu, 13 Sep 2007 08:19:15 +0000 Subject: fixed 64bit issue with file descriptor --- src/charon/control/interfaces/xml_interface.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/charon/control/interfaces/xml_interface.c') diff --git a/src/charon/control/interfaces/xml_interface.c b/src/charon/control/interfaces/xml_interface.c index b295ec201..7710ae19c 100644 --- a/src/charon/control/interfaces/xml_interface.c +++ b/src/charon/control/interfaces/xml_interface.c @@ -290,6 +290,14 @@ static void request(xmlTextReaderPtr reader, char *id, int fd) xmlFreeTextWriter(writer); } +/** + * cleanup helper function for open file descriptors + */ +static void closefdp(int *fd) +{ + close(*fd); +} + /** * read from a opened connection and process it */ @@ -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); -- cgit v1.2.3