Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/oscar/oscar.c

    r5b52a48 r936ded6  
    255255static int msgerrreasonlen = 25;
    256256
    257 static gboolean oscar_callback(gpointer data, gint source,
    258                                 b_input_condition condition) {
     257static void oscar_callback(gpointer data, gint source,
     258                                GaimInputCondition condition) {
    259259        aim_conn_t *conn = (aim_conn_t *)data;
    260260        aim_session_t *sess = aim_conn_getsess(conn);
     
    264264        if (!gc) {
    265265                /* gc is null. we return, else we seg SIGSEG on next line. */
    266                 return FALSE;
     266                return;
    267267        }
    268268     
     
    270270                /* oh boy. this is probably bad. i guess the only thing we
    271271                 * can really do is return? */
    272                 return FALSE;
     272                return;
    273273        }
    274274
     
    290290                                c->conn = NULL;
    291291                                if (c->inpa > 0)
    292                                         b_event_remove(c->inpa);
     292                                        gaim_input_remove(c->inpa);
    293293                                c->inpa = 0;
    294294                                c->fd = -1;
     
    298298                        } else if (conn->type == AIM_CONN_TYPE_CHATNAV) {
    299299                                if (odata->cnpa > 0)
    300                                         b_event_remove(odata->cnpa);
     300                                        gaim_input_remove(odata->cnpa);
    301301                                odata->cnpa = 0;
    302302                                while (odata->create_rooms) {
     
    312312                        } else if (conn->type == AIM_CONN_TYPE_AUTH) {
    313313                                if (odata->paspa > 0)
    314                                         b_event_remove(odata->paspa);
     314                                        gaim_input_remove(odata->paspa);
    315315                                odata->paspa = 0;
    316316                                aim_conn_kill(odata->sess, &conn);
     
    319319                        }
    320320                }
    321         } else {
    322                 /* WTF??? */
    323                 return FALSE;
    324         }
    325                
    326         return TRUE;
    327 }
    328 
    329 static gboolean oscar_login_connect(gpointer data, gint source, b_input_condition cond)
     321        }
     322}
     323
     324static void oscar_login_connect(gpointer data, gint source, GaimInputCondition cond)
    330325{
    331326        struct gaim_connection *gc = data;
     
    336331        if (!g_slist_find(get_connections(), gc)) {
    337332                closesocket(source);
    338                 return FALSE;
     333                return;
    339334        }
    340335
     
    346341                hide_login_progress(gc, _("Couldn't connect to host"));
    347342                signoff(gc);
    348                 return FALSE;
     343                return;
    349344        }
    350345
    351346        aim_conn_completeconnect(sess, conn);
    352         gc->inpa = b_input_add(conn->fd, GAIM_INPUT_READ,
     347        gc->inpa = gaim_input_add(conn->fd, GAIM_INPUT_READ,
    353348                        oscar_callback, conn);
    354        
    355         return FALSE;
    356 }
    357 
    358 static void oscar_acc_init(account_t *acc)
    359 {
    360         set_t *s;
    361        
    362         s = set_add( &acc->set, "server", NULL, set_eval_account, acc );
    363         s->flags |= ACC_SET_NOSAVE | ACC_SET_OFFLINE_ONLY;
    364 }
    365 
    366 static void oscar_login(account_t *acc) {
     349}
     350
     351static void oscar_login(struct aim_user *user) {
    367352        aim_session_t *sess;
    368353        aim_conn_t *conn;
    369354        char buf[256];
    370         struct gaim_connection *gc = new_gaim_conn(acc);
     355        struct gaim_connection *gc = new_gaim_conn(user);
    371356        struct oscar_data *odata = gc->proto_data = g_new0(struct oscar_data, 1);
    372357
    373         if (isdigit(acc->user[0])) {
     358        if (isdigit(*user->username)) {
    374359                odata->icq = TRUE;
    375360                /* This is odd but it's necessary for a proper do_import and do_export.
    376361                   We don't do those anymore, but let's stick with it, just in case
    377                    it accidentally fixes something else too... </bitlbee> */
     362                   it accidentally fixes something else too... */
    378363                gc->password[8] = 0;
    379364        } else {
     
    398383        }
    399384       
    400         if (acc->server == NULL) {
    401                 hide_login_progress(gc, "No servername specified");
    402                 signoff(gc);
    403                 return;
    404         }
    405        
    406         if (g_strcasecmp(acc->server, "login.icq.com") != 0 &&
    407             g_strcasecmp(acc->server, "login.oscar.aol.com") != 0) {
    408                 serv_got_crap(gc, "Warning: Unknown OSCAR server: `%s'. Please review your configuration if the connection fails.",acc->server);
     385        if (g_strcasecmp(user->proto_opt[USEROPT_AUTH], "login.icq.com") != 0 &&
     386            g_strcasecmp(user->proto_opt[USEROPT_AUTH], "login.oscar.aol.com") != 0) {
     387                serv_got_crap(gc, "Warning: Unknown OSCAR server: `%s'. Please review your configuration if the connection fails.",user->proto_opt[USEROPT_AUTH]);
    409388        }
    410389       
     
    416395
    417396        conn->status |= AIM_CONN_STATUS_INPROGRESS;
    418         conn->fd = proxy_connect(acc->server, AIM_LOGIN_PORT, oscar_login_connect, gc);
     397        conn->fd = proxy_connect(user->proto_opt[USEROPT_AUTH][0] ?
     398                                        user->proto_opt[USEROPT_AUTH] : AIM_DEFAULT_LOGIN_SERVER,
     399                                 user->proto_opt[USEROPT_AUTHPORT][0] ?
     400                                        atoi(user->proto_opt[USEROPT_AUTHPORT]) : AIM_LOGIN_PORT,
     401                                 oscar_login_connect, gc);
    419402        if (conn->fd < 0) {
    420403                hide_login_progress(gc, _("Couldn't connect to host"));
     
    431414                struct chat_connection *n = odata->oscar_chats->data;
    432415                if (n->inpa > 0)
    433                         b_event_remove(n->inpa);
     416                        gaim_input_remove(n->inpa);
    434417                g_free(n->name);
    435418                g_free(n->show);
     
    450433                g_free(odata->oldp);
    451434        if (gc->inpa > 0)
    452                 b_event_remove(gc->inpa);
     435                gaim_input_remove(gc->inpa);
    453436        if (odata->cnpa > 0)
    454                 b_event_remove(odata->cnpa);
     437                gaim_input_remove(odata->cnpa);
    455438        if (odata->paspa > 0)
    456                 b_event_remove(odata->paspa);
     439                gaim_input_remove(odata->paspa);
    457440        aim_session_kill(odata->sess);
    458441        g_free(odata->sess);
     
    462445}
    463446
    464 static gboolean oscar_bos_connect(gpointer data, gint source, b_input_condition cond) {
     447static void oscar_bos_connect(gpointer data, gint source, GaimInputCondition cond) {
    465448        struct gaim_connection *gc = data;
    466449        struct oscar_data *odata;
     
    470453        if (!g_slist_find(get_connections(), gc)) {
    471454                closesocket(source);
    472                 return FALSE;
     455                return;
    473456        }
    474457
     
    480463                hide_login_progress(gc, _("Could Not Connect"));
    481464                signoff(gc);
    482                 return FALSE;
     465                return;
    483466        }
    484467
    485468        aim_conn_completeconnect(sess, bosconn);
    486         gc->inpa = b_input_add(bosconn->fd, GAIM_INPUT_READ,
     469        gc->inpa = gaim_input_add(bosconn->fd, GAIM_INPUT_READ,
    487470                        oscar_callback, bosconn);
    488471        set_login_progress(gc, 4, _("Connection established, cookie sent"));
    489        
    490         return FALSE;
    491472}
    492473
     
    495476        struct aim_authresp_info *info;
    496477        int i; char *host; int port;
     478        struct aim_user *user;
    497479        aim_conn_t *bosconn;
    498480
    499481        struct gaim_connection *gc = sess->aux_data;
    500482        struct oscar_data *od = gc->proto_data;
    501         port = AIM_LOGIN_PORT;
     483        user = gc->user;
     484        port = user->proto_opt[USEROPT_AUTHPORT][0] ?
     485                atoi(user->proto_opt[USEROPT_AUTHPORT]) : AIM_LOGIN_PORT,
    502486
    503487        va_start(ap, fr);
     
    588572        }
    589573        aim_sendcookie(sess, bosconn, info->cookie);
    590         b_event_remove(gc->inpa);
     574        gaim_input_remove(gc->inpa);
    591575
    592576        return 1;
     
    603587};
    604588
    605 static gboolean damn_you(gpointer data, gint source, b_input_condition c)
     589static void damn_you(gpointer data, gint source, GaimInputCondition c)
    606590{
    607591        struct pieceofcrap *pos = data;
     
    623607                do_error_dialog(pos->gc, "Gaim was unable to get a valid hash for logging into AIM."
    624608                                " You may be disconnected shortly.", "Login Error");
    625                 b_event_remove(pos->inpa);
     609                gaim_input_remove(pos->inpa);
    626610                closesocket(pos->fd);
    627611                g_free(pos);
    628                 return FALSE;
     612                return;
    629613        }
    630614        /* [WvG] Wheeeee! Who needs error checking anyway? ;-) */
    631615        read(pos->fd, m, 16);
    632616        m[16] = '\0';
    633         b_event_remove(pos->inpa);
     617        gaim_input_remove(pos->inpa);
    634618        closesocket(pos->fd);
    635619        aim_sendmemblock(od->sess, pos->conn, 0, 16, m, AIM_SENDMEMBLOCK_FLAG_ISHASH);
    636620        g_free(pos);
    637        
    638         return FALSE;
    639 }
    640 
    641 static gboolean straight_to_hell(gpointer data, gint source, b_input_condition cond) {
     621}
     622
     623static void straight_to_hell(gpointer data, gint source, GaimInputCondition cond) {
    642624        struct pieceofcrap *pos = data;
    643625        char buf[BUF_LONG];
     
    649631                        g_free(pos->modname);
    650632                g_free(pos);
    651                 return FALSE;
     633                return;
    652634        }
    653635
     
    658640        if (pos->modname)
    659641                g_free(pos->modname);
    660         pos->inpa = b_input_add(pos->fd, GAIM_INPUT_READ, damn_you, pos);
    661         return FALSE;
     642        pos->inpa = gaim_input_add(pos->fd, GAIM_INPUT_READ, damn_you, pos);
     643        return;
    662644}
    663645
     
    781763}
    782764
    783 static gboolean oscar_chatnav_connect(gpointer data, gint source, b_input_condition cond) {
     765static void oscar_chatnav_connect(gpointer data, gint source, GaimInputCondition cond) {
    784766        struct gaim_connection *gc = data;
    785767        struct oscar_data *odata;
     
    789771        if (!g_slist_find(get_connections(), gc)) {
    790772                closesocket(source);
    791                 return FALSE;
     773                return;
    792774        }
    793775
     
    798780        if (source < 0) {
    799781                aim_conn_kill(sess, &tstconn);
    800                 return FALSE;
     782                return;
    801783        }
    802784
    803785        aim_conn_completeconnect(sess, tstconn);
    804         odata->cnpa = b_input_add(tstconn->fd, GAIM_INPUT_READ,
     786        odata->cnpa = gaim_input_add(tstconn->fd, GAIM_INPUT_READ,
    805787                                        oscar_callback, tstconn);
    806        
    807         return FALSE;
    808 }
    809 
    810 static gboolean oscar_auth_connect(gpointer data, gint source, b_input_condition cond)
     788}
     789
     790static void oscar_auth_connect(gpointer data, gint source, GaimInputCondition cond)
    811791{
    812792        struct gaim_connection *gc = data;
     
    817797        if (!g_slist_find(get_connections(), gc)) {
    818798                closesocket(source);
    819                 return FALSE;
     799                return;
    820800        }
    821801
     
    826806        if (source < 0) {
    827807                aim_conn_kill(sess, &tstconn);
    828                 return FALSE;
     808                return;
    829809        }
    830810
    831811        aim_conn_completeconnect(sess, tstconn);
    832         odata->paspa = b_input_add(tstconn->fd, GAIM_INPUT_READ,
     812        odata->paspa = gaim_input_add(tstconn->fd, GAIM_INPUT_READ,
    833813                                oscar_callback, tstconn);
    834        
    835         return FALSE;
    836 }
    837 
    838 static gboolean oscar_chat_connect(gpointer data, gint source, b_input_condition cond)
     814}
     815
     816static void oscar_chat_connect(gpointer data, gint source, GaimInputCondition cond)
    839817{
    840818        struct chat_connection *ccon = data;
     
    849827                g_free(ccon->name);
    850828                g_free(ccon);
    851                 return FALSE;
     829                return;
    852830        }
    853831
     
    861839                g_free(ccon->name);
    862840                g_free(ccon);
    863                 return FALSE;
     841                return;
    864842        }
    865843
    866844        aim_conn_completeconnect(sess, ccon->conn);
    867         ccon->inpa = b_input_add(tstconn->fd,
     845        ccon->inpa = gaim_input_add(tstconn->fd,
    868846                        GAIM_INPUT_READ,
    869847                        oscar_callback, tstconn);
    870848        odata->oscar_chats = g_slist_append(odata->oscar_chats, ccon);
    871        
    872         return FALSE;
    873849}
    874850
     
    878854        struct aim_redirect_data *redir;
    879855        struct gaim_connection *gc = sess->aux_data;
     856        struct aim_user *user = gc->user;
    880857        aim_conn_t *tstconn;
    881858        int i;
     
    883860        int port;
    884861
     862        port = user->proto_opt[USEROPT_AUTHPORT][0] ?
     863                atoi(user->proto_opt[USEROPT_AUTHPORT]) : AIM_LOGIN_PORT,
     864
    885865        va_start(ap, fr);
    886866        redir = va_arg(ap, struct aim_redirect_data *);
    887867        va_end(ap);
    888868
    889         port = AIM_LOGIN_PORT;
    890869        for (i = 0; i < (int)strlen(redir->ip); i++) {
    891870                if (redir->ip[i] == ':') {
     
    17271706        odata->rights.maxsiglen = odata->rights.maxawaymsglen = (guint)maxsiglen;
    17281707
    1729         /* FIXME: It seems we're not really using this, and it broke now that
    1730            struct aim_user is dead.
    17311708        aim_bos_setprofile(sess, fr->conn, gc->user->user_info, NULL, gaim_caps);
    1732         */
    1733        
     1709
    17341710        return 1;
    17351711}
     
    25892565        od->oscar_chats = g_slist_remove(od->oscar_chats, cc);
    25902566        if (cc->inpa > 0)
    2591                 b_event_remove(cc->inpa);
     2567                gaim_input_remove(cc->inpa);
    25922568        aim_conn_kill(od->sess, &cc->conn);
    25932569        g_free(cc->name);
     
    26632639        ret->away_states = oscar_away_states;
    26642640        ret->login = oscar_login;
    2665         ret->acc_init = oscar_acc_init;
    26662641        ret->close = oscar_close;
    26672642        ret->send_im = oscar_send_im;
     
    26812656        ret->set_permit_deny = oscar_set_permit_deny;
    26822657        ret->keepalive = oscar_keepalive;
     2658        ret->cmp_buddynames = aim_sncmp;
    26832659        ret->get_status_string = oscar_get_status_string;
    26842660        ret->send_typing = oscar_send_typing;
    2685        
    2686         ret->handle_cmp = aim_sncmp;
    26872661
    26882662        register_protocol(ret);
Note: See TracChangeset for help on using the changeset viewer.