From bf5fdf14a659846700e62c5dcf2c8fceb56b2a8c Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Sun, 9 Dec 2007 23:00:41 +0000 Subject: [PATCH 1/1] pop up login box on startup if no password yet Organization: Straylight/Edgeware From: Richard Kettlewell --- disobedience/disobedience.c | 3 +++ lib/eclient.c | 9 +++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/disobedience/disobedience.c b/disobedience/disobedience.c index d6b346d..5efcc00 100644 --- a/disobedience/disobedience.c +++ b/disobedience/disobedience.c @@ -492,6 +492,9 @@ int main(int argc, char **argv) { /* See if RTP play supported */ check_rtp_address(); suppress_actions = 0; + /* If no password is set yet pop up a login box */ + if(!config->password) + login_box(); D(("enter main loop")); MTAG("misc"); g_main_loop_run(mainloop); diff --git a/lib/eclient.c b/lib/eclient.c index d93412a..2bf86e9 100644 --- a/lib/eclient.c +++ b/lib/eclient.c @@ -236,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; } @@ -340,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 -- [mdw]