X-Git-Url: https://git.tokkee.org/?p=ncmpc.git;a=blobdiff_plain;f=src%2Fmpdclient.c;fp=src%2Fmpdclient.c;h=6a81a0bd8ac20bd6cc2708f3438ad194a28ba643;hp=ffa1a5d84408e86757b82d2dbde1617dbf07c583;hb=8204fc68202f5fc858cd7246b6b2cb5104d980e4;hpb=db8a107117c0324bee7f7bdb4c25abe638d15d87 diff --git a/src/mpdclient.c b/src/mpdclient.c index ffa1a5d..6a81a0b 100644 --- a/src/mpdclient.c +++ b/src/mpdclient.c @@ -355,6 +355,17 @@ static void mpdclient_aconnect_start(struct mpdclient *c, const struct mpd_settings *settings); +static const struct mpd_settings * +mpdclient_get_settings(const struct mpdclient *c) +{ +#ifndef WIN32 + if (c->connecting2) + return c->settings2; +#endif + + return c->settings; +} + static void mpdclient_connect_success(struct mpd_connection *connection, void *ctx) { @@ -362,6 +373,15 @@ mpdclient_connect_success(struct mpd_connection *connection, void *ctx) assert(c->async_connect != NULL); c->async_connect = NULL; + const char *password = + mpd_settings_get_password(mpdclient_get_settings(c)); + if (password != NULL && !mpd_run_password(connection, password)) { + mpdclient_error_callback(mpd_connection_get_error_message(connection)); + mpd_connection_free(connection); + mpdclient_failed_callback(); + return; + } + mpdclient_connected(c, connection); }