From ffb8100ff3222e8aa11bd33a7c1ea7342f2c6aea Mon Sep 17 00:00:00 2001 From: corvid Date: Fri, 8 Aug 2014 01:14:52 +0000 Subject: abort failed queries http://lists.dillo.org/pipermail/dillo-dev/2014-July/010190.html and no one objected, and it hasn't given me any trouble, so... --- src/IO/IO.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/IO/IO.c') diff --git a/src/IO/IO.c b/src/IO/IO.c index 43a3ff3a..0addf486 100644 --- a/src/IO/IO.c +++ b/src/IO/IO.c @@ -298,6 +298,8 @@ static void IO_fd_write_cb(int fd, void *data) } else { if (IO_callback(io) == 0) a_IOwatch_remove_fd(fd, DIO_WRITE); + if (io->Status) + a_IO_ccc(OpAbort, 1, FWD, io->Info, NULL, NULL); } } @@ -385,6 +387,13 @@ void a_IO_ccc(int Op, int Branch, int Dir, ChainLink *Info, } else { /* 1 FWD */ /* Write-data status */ switch (Op) { + case OpAbort: + io = Info->LocalKey; + IO_close_fd(io, IO_StopRdWr); + IO_free(io); + a_Chain_fcb(OpAbort, Info, NULL, NULL); + dFree(Info); + break; default: MSG_WARN("Unused CCC\n"); break; -- cgit v1.2.3