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.c84
1 files changed, 39 insertions, 45 deletions
diff --git a/protocols/oscar/oscar.c b/protocols/oscar/oscar.c
index 5dda3e90..76d61b13 100644
--- a/protocols/oscar/oscar.c
+++ b/protocols/oscar/oscar.c
@@ -274,53 +274,47 @@ static void oscar_callback(gpointer data, gint source,
odata = (struct oscar_data *)gc->proto_data;
if (condition & GAIM_INPUT_READ) {
- if (conn->type == AIM_CONN_TYPE_RENDEZVOUS_OUT) {
- if (aim_handlerendconnect(odata->sess, conn) < 0) {
- aim_conn_kill(odata->sess, &conn);
- }
+ if (aim_get_command(odata->sess, conn) >= 0) {
+ aim_rxdispatch(odata->sess);
+ if (odata->killme)
+ signoff(gc);
} else {
- if (aim_get_command(odata->sess, conn) >= 0) {
- aim_rxdispatch(odata->sess);
- if (odata->killme)
- signoff(gc);
- } else {
- if ((conn->type == AIM_CONN_TYPE_BOS) ||
- !(aim_getconn_type(odata->sess, AIM_CONN_TYPE_BOS))) {
- hide_login_progress_error(gc, _("Disconnected."));
- signoff(gc);
- } else if (conn->type == AIM_CONN_TYPE_CHAT) {
- struct chat_connection *c = find_oscar_chat_by_conn(gc, conn);
- char buf[BUF_LONG];
- c->conn = NULL;
- if (c->inpa > 0)
- gaim_input_remove(c->inpa);
- c->inpa = 0;
- c->fd = -1;
- aim_conn_kill(odata->sess, &conn);
- sprintf(buf, _("You have been disconnected from chat room %s."), c->name);
- do_error_dialog(sess->aux_data, buf, _("Chat Error!"));
- } else if (conn->type == AIM_CONN_TYPE_CHATNAV) {
- if (odata->cnpa > 0)
- gaim_input_remove(odata->cnpa);
- odata->cnpa = 0;
- while (odata->create_rooms) {
- struct create_room *cr = odata->create_rooms->data;
- g_free(cr->name);
- odata->create_rooms =
- g_slist_remove(odata->create_rooms, cr);
- g_free(cr);
- do_error_dialog(sess->aux_data, _("Chat is currently unavailable"),
- _("Gaim - Chat"));
- }
- aim_conn_kill(odata->sess, &conn);
- } else if (conn->type == AIM_CONN_TYPE_AUTH) {
- if (odata->paspa > 0)
- gaim_input_remove(odata->paspa);
- odata->paspa = 0;
- aim_conn_kill(odata->sess, &conn);
- } else {
- aim_conn_kill(odata->sess, &conn);
+ if ((conn->type == AIM_CONN_TYPE_BOS) ||
+ !(aim_getconn_type(odata->sess, AIM_CONN_TYPE_BOS))) {
+ hide_login_progress_error(gc, _("Disconnected."));
+ signoff(gc);
+ } else if (conn->type == AIM_CONN_TYPE_CHAT) {
+ struct chat_connection *c = find_oscar_chat_by_conn(gc, conn);
+ char buf[BUF_LONG];
+ c->conn = NULL;
+ if (c->inpa > 0)
+ gaim_input_remove(c->inpa);
+ c->inpa = 0;
+ c->fd = -1;
+ aim_conn_kill(odata->sess, &conn);
+ sprintf(buf, _("You have been disconnected from chat room %s."), c->name);
+ do_error_dialog(sess->aux_data, buf, _("Chat Error!"));
+ } else if (conn->type == AIM_CONN_TYPE_CHATNAV) {
+ if (odata->cnpa > 0)
+ gaim_input_remove(odata->cnpa);
+ odata->cnpa = 0;
+ while (odata->create_rooms) {
+ struct create_room *cr = odata->create_rooms->data;
+ g_free(cr->name);
+ odata->create_rooms =
+ g_slist_remove(odata->create_rooms, cr);
+ g_free(cr);
+ do_error_dialog(sess->aux_data, _("Chat is currently unavailable"),
+ _("Gaim - Chat"));
}
+ aim_conn_kill(odata->sess, &conn);
+ } else if (conn->type == AIM_CONN_TYPE_AUTH) {
+ if (odata->paspa > 0)
+ gaim_input_remove(odata->paspa);
+ odata->paspa = 0;
+ aim_conn_kill(odata->sess, &conn);
+ } else {
+ aim_conn_kill(odata->sess, &conn);
}
}
}