isync

mailbox synchronization program
git clone https://git.code.sf.net/p/isync/isync
Log | Files | Refs | README | LICENSE

commit 9eba3d8cd9f73ddd12f450f17632c431fc94dfbf
parent 6f7d416bb80bda2c48243628527831c0966fe8bb
Author: Oswald Buddenhagen <ossi@users.sf.net>
Date:   Fri,  2 Jan 2015 11:29:51 +0100

don't leave 2nd store in limbo if opening 1st store fails synchronously

we can't leave the store FRESH, as otherwise the error handling code
will assume it is still being opened and will return to the main loop.
depending on the config this would cause an immediate termination or an
indefinite wait.

Diffstat:
Msrc/main.c | 8++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/main.c b/src/main.c @@ -593,12 +593,16 @@ sync_chans( main_vars_t *mvars, int ent ) labels[M] = "M: ", labels[S] = "S: "; else labels[M] = labels[S] = ""; - for (t = 0; t < 2; t++) { + for (t = 0; ; t++) { info( "Opening %s %s...\n", str_ms[t], mvars->chan->stores[t]->name ); mvars->drv[t] = mvars->chan->stores[t]->driver; mvars->drv[t]->open_store( mvars->chan->stores[t], labels[t], store_opened, AUX ); - if (mvars->skip) + if (t) break; + if (mvars->skip) { + mvars->state[1] = ST_CLOSED; + break; + } } mvars->cben = 1; opened: