diff options
author | Matthias Kurz <m.kurz@irregular.at> | 2018-09-16 21:20:44 +0100 |
---|---|---|
committer | Jeremy Harris <jgh146exb@wizmail.org> | 2018-09-16 21:33:40 +0100 |
commit | 25beaee4c28ed29a37078e6c68fa3d18ced6ec8c (patch) | |
tree | ef6468a2df430a87f7c7fce028fb593fee44a9fb /src | |
parent | 13c7874e0a41d696ecf55774d62ea7d11778414f (diff) |
Fix filter noerror command. Bug 2318
Diffstat (limited to 'src')
-rw-r--r-- | src/src/rda.c | 12 |
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 |