Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/oscar/oscar.c

    r3e1de87 r66c57924  
    275275
    276276        if (condition & GAIM_INPUT_READ) {
    277                 if (conn->type == AIM_CONN_TYPE_RENDEZVOUS_OUT) {
    278                         if (aim_handlerendconnect(odata->sess, conn) < 0) {
     277                if (aim_get_command(odata->sess, conn) >= 0) {
     278                        aim_rxdispatch(odata->sess);
     279                               if (odata->killme)
     280                                       signoff(gc);
     281                } else {
     282                        if ((conn->type == AIM_CONN_TYPE_BOS) ||
     283                                   !(aim_getconn_type(odata->sess, AIM_CONN_TYPE_BOS))) {
     284                                hide_login_progress_error(gc, _("Disconnected."));
     285                                signoff(gc);
     286                        } else if (conn->type == AIM_CONN_TYPE_CHAT) {
     287                                struct chat_connection *c = find_oscar_chat_by_conn(gc, conn);
     288                                char buf[BUF_LONG];
     289                                c->conn = NULL;
     290                                if (c->inpa > 0)
     291                                        gaim_input_remove(c->inpa);
     292                                c->inpa = 0;
     293                                c->fd = -1;
    279294                                aim_conn_kill(odata->sess, &conn);
    280                         }
    281                 } else {
    282                         if (aim_get_command(odata->sess, conn) >= 0) {
    283                                 aim_rxdispatch(odata->sess);
    284                                 if (odata->killme)
    285                                         signoff(gc);
     295                                sprintf(buf, _("You have been disconnected from chat room %s."), c->name);
     296                                do_error_dialog(sess->aux_data, buf, _("Chat Error!"));
     297                        } else if (conn->type == AIM_CONN_TYPE_CHATNAV) {
     298                                if (odata->cnpa > 0)
     299                                        gaim_input_remove(odata->cnpa);
     300                                odata->cnpa = 0;
     301                                while (odata->create_rooms) {
     302                                        struct create_room *cr = odata->create_rooms->data;
     303                                        g_free(cr->name);
     304                                        odata->create_rooms =
     305                                                g_slist_remove(odata->create_rooms, cr);
     306                                        g_free(cr);
     307                                        do_error_dialog(sess->aux_data, _("Chat is currently unavailable"),
     308                                                        _("Gaim - Chat"));
     309                                }
     310                                aim_conn_kill(odata->sess, &conn);
     311                        } else if (conn->type == AIM_CONN_TYPE_AUTH) {
     312                                if (odata->paspa > 0)
     313                                        gaim_input_remove(odata->paspa);
     314                                odata->paspa = 0;
     315                                aim_conn_kill(odata->sess, &conn);
    286316                        } else {
    287                                 if ((conn->type == AIM_CONN_TYPE_BOS) ||
    288                                            !(aim_getconn_type(odata->sess, AIM_CONN_TYPE_BOS))) {
    289                                         hide_login_progress_error(gc, _("Disconnected."));
    290                                         signoff(gc);
    291                                 } else if (conn->type == AIM_CONN_TYPE_CHAT) {
    292                                         struct chat_connection *c = find_oscar_chat_by_conn(gc, conn);
    293                                         char buf[BUF_LONG];
    294                                         c->conn = NULL;
    295                                         if (c->inpa > 0)
    296                                                 gaim_input_remove(c->inpa);
    297                                         c->inpa = 0;
    298                                         c->fd = -1;
    299                                         aim_conn_kill(odata->sess, &conn);
    300                                         sprintf(buf, _("You have been disconnected from chat room %s."), c->name);
    301                                         do_error_dialog(sess->aux_data, buf, _("Chat Error!"));
    302                                 } else if (conn->type == AIM_CONN_TYPE_CHATNAV) {
    303                                         if (odata->cnpa > 0)
    304                                                 gaim_input_remove(odata->cnpa);
    305                                         odata->cnpa = 0;
    306                                         while (odata->create_rooms) {
    307                                                 struct create_room *cr = odata->create_rooms->data;
    308                                                 g_free(cr->name);
    309                                                 odata->create_rooms =
    310                                                         g_slist_remove(odata->create_rooms, cr);
    311                                                 g_free(cr);
    312                                                 do_error_dialog(sess->aux_data, _("Chat is currently unavailable"),
    313                                                                 _("Gaim - Chat"));
    314                                         }
    315                                         aim_conn_kill(odata->sess, &conn);
    316                                 } else if (conn->type == AIM_CONN_TYPE_AUTH) {
    317                                         if (odata->paspa > 0)
    318                                                 gaim_input_remove(odata->paspa);
    319                                         odata->paspa = 0;
    320                                         aim_conn_kill(odata->sess, &conn);
    321                                 } else {
    322                                         aim_conn_kill(odata->sess, &conn);
    323                                 }
     317                                aim_conn_kill(odata->sess, &conn);
    324318                        }
    325319                }
Note: See TracChangeset for help on using the changeset viewer.