X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=client.c;h=f0f3b2617be6f3554250cedfafbbcc92c38f54b7;hp=d98c6327c9163d7018f0d94c1c612680205244d7;hb=2ce04a49091712719b8fd60a6c7888258b719db1;hpb=76d5277a9d0ca3db58abc667de36e753ff91dfa9 diff --git a/client.c b/client.c index d98c6327..f0f3b261 100644 --- a/client.c +++ b/client.c @@ -603,14 +603,23 @@ int main(int argc, char *argv[]) EMBRACE(.name = "stdout", .parent = ct->btrn)); register_task(&sched, &svt); ret = schedule(&sched); + if (ret >= 0 && ct->task.error < 0) { + switch(ct->task.error) { + /* these are not errors */ + case -E_SERVER_CMD_SUCCESS: + case -E_EOF: + case -E_SERVER_EOF: + case -E_BTR_EOF: + ret = 0; + break; + default: ret = ct->task.error; + } + } out: + if (ret < 0) + PARA_ERROR_LOG("%s\n", para_strerror(-ret)); client_close(ct); btr_free_node(sit.btrn); btr_free_node(sot.btrn); - if (ret < 0) { - /* can not use PARA_LOG here because ct is NULL */ - fprintf(stderr, "%s\n", para_strerror(-ret)); - return EXIT_FAILURE; - } - return EXIT_SUCCESS; + return ret < 0? EXIT_FAILURE : EXIT_SUCCESS; }