+static gchar *news_query_password(const gchar *server,
+ const gchar *user)
+{
+ gchar *message;
+ gchar *pass;
+
+ message = g_strdup_printf(_("Input password for %s on %s:"),
+ user, server);
+
+ pass = input_dialog_with_invisible(_("Input password"),
+ message, NULL);
+ g_free(message);
+/* manage_window_focus_in(inc_dialog->mainwin->window, */
+/* NULL, NULL); */
+ return pass;
+}
+
+static Session *news_session_new_for_folder(Folder *folder)
+{
+ Session *session;
+ PrefsAccount *ac;
+ const gchar *userid;
+ gchar *passwd;
+
+ ac = folder->account;
+ if (ac->userid && ac->userid[0]) {
+ userid = ac->userid;
+ if (ac->passwd && ac->passwd[0])
+ passwd = g_strdup(ac->passwd);
+ else {
+ passwd = news_query_password(ac->nntp_server, userid);
+ if (!passwd)
+ userid = NULL;
+ }
+ } else {
+ userid = passwd = NULL;
+ }
+ session = news_session_new(ac->nntp_server, 119, userid, passwd);
+ g_free(passwd);
+ return session;
+}
+