X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/3f74b5dcf2eacd39095d5ab0426b5b4874c28bdd..71b70599a2cd81c13cc4326499a5d0c45358cd7d:/lib/eclient.c?ds=sidebyside diff --git a/lib/eclient.c b/lib/eclient.c index b434c6d..2bf86e9 100644 --- a/lib/eclient.c +++ b/lib/eclient.c @@ -37,6 +37,7 @@ #include #include #include +#include #include "log.h" #include "mem.h" @@ -235,10 +236,6 @@ disorder_eclient *disorder_eclient_new(const disorder_eclient_callbacks *cb, vector_init(&c->vec); dynstr_init(&c->input); dynstr_init(&c->output); - if(!config->password) { - error(0, "no password set"); - return 0; - } return c; } @@ -339,6 +336,11 @@ void disorder_eclient_polled(disorder_eclient *c, unsigned mode) { if(c->state == state_disconnected) { D(("state_disconnected")); + /* If there is no password yet then we cannot connect */ + if(!config->password) { + comms_error(c, "no password is configured"); + return; + } with_sockaddr(c, start_connect); /* might now be state_disconnected (on error), state_connecting (slow * connect) or state_connected (fast connect). If state_disconnected then