diff options
Diffstat (limited to 'protocols/oscar')
| -rw-r--r-- | protocols/oscar/oscar.c | 15 | 
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; | 
