aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/oscar/oscar.c
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/oscar/oscar.c')
-rw-r--r--protocols/oscar/oscar.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/protocols/oscar/oscar.c b/protocols/oscar/oscar.c
index d55ce3f2..28239812 100644
--- a/protocols/oscar/oscar.c
+++ b/protocols/oscar/oscar.c
@@ -355,6 +355,14 @@ static gboolean oscar_login_connect(gpointer data, gint source, b_input_conditio
return FALSE;
}
+static void oscar_acc_init(account_t *acc)
+{
+ set_t *s;
+
+ s = set_add( &acc->set, "server", NULL, set_eval_account, acc );
+ s->flags |= ACC_SET_NOSAVE | ACC_SET_OFFLINE_ONLY;
+}
+
static void oscar_login(account_t *acc) {
aim_session_t *sess;
aim_conn_t *conn;
@@ -389,6 +397,12 @@ static void oscar_login(account_t *acc) {
return;
}
+ if (acc->server == NULL) {
+ hide_login_progress(gc, "No servername specified");
+ signoff(gc);
+ return;
+ }
+
if (g_strcasecmp(acc->server, "login.icq.com") != 0 &&
g_strcasecmp(acc->server, "login.oscar.aol.com") != 0) {
serv_got_crap(gc, "Warning: Unknown OSCAR server: `%s'. Please review your configuration if the connection fails.",acc->server);
@@ -2648,6 +2662,7 @@ void oscar_init()
ret->name = "oscar";
ret->away_states = oscar_away_states;
ret->login = oscar_login;
+ ret->acc_init = oscar_acc_init;
ret->close = oscar_close;
ret->send_im = oscar_send_im;
ret->get_info = oscar_get_info;