summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Kurz <m.kurz@irregular.at>2018-09-16 21:20:44 +0100
committerJeremy Harris <jgh146exb@wizmail.org>2018-09-16 21:33:40 +0100
commit25beaee4c28ed29a37078e6c68fa3d18ced6ec8c (patch)
treeef6468a2df430a87f7c7fce028fb593fee44a9fb /src
parent13c7874e0a41d696ecf55774d62ea7d11778414f (diff)
Fix filter noerror command. Bug 2318
Diffstat (limited to 'src')
-rw-r--r--src/src/rda.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/src/rda.c b/src/src/rda.c
index ee7c1fe96..8962dbaec 100644
--- a/src/src/rda.c
+++ b/src/src/rda.c
@@ -718,11 +718,13 @@ if ((pid = fork()) == 0)
for (addr = *generated; addr; addr = addr->next)
{
int reply_options = 0;
+ int ig_err = addr->prop.ignore_error ? 1 : 0;
if ( rda_write_string(fd, addr->address) != 0
|| write(fd, &addr->mode, sizeof(addr->mode)) != sizeof(addr->mode)
|| write(fd, &addr->flags, sizeof(addr->flags)) != sizeof(addr->flags)
|| rda_write_string(fd, addr->prop.errors_address) != 0
+ || write(fd, &ig_err, sizeof(ig_err)) != sizeof(ig_err)
)
goto bad;
@@ -887,9 +889,13 @@ if (yield == FF_DELIVERED || yield == FF_NOTDELIVERED ||
/* Next comes the mode and the flags fields */
- if (read(fd, &addr->mode, sizeof(addr->mode)) != sizeof(addr->mode) ||
- read(fd, &addr->flags, sizeof(addr->flags)) != sizeof(addr->flags) ||
- !rda_read_string(fd, &addr->prop.errors_address)) goto DISASTER;
+ if ( read(fd, &addr->mode, sizeof(addr->mode)) != sizeof(addr->mode)
+ || read(fd, &addr->flags, sizeof(addr->flags)) != sizeof(addr->flags)
+ || !rda_read_string(fd, &addr->prop.errors_address)
+ || read(fd, &i, sizeof(i)) != sizeof(i)
+ )
+ goto DISASTER;
+ addr->prop.ignore_error = (i != 0);
/* Next comes a possible setting for $thisaddress and any numerical
variables for pipe expansion, terminated by a NULL string. The maximum