aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/oscar
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/oscar')
-rw-r--r--protocols/oscar/auth.c3
-rw-r--r--protocols/oscar/oscar.c10
2 files changed, 10 insertions, 3 deletions
diff --git a/protocols/oscar/auth.c b/protocols/oscar/auth.c
index eb6a9d64..0f7c8d0f 100644
--- a/protocols/oscar/auth.c
+++ b/protocols/oscar/auth.c
@@ -119,11 +119,12 @@ int aim_request_login(aim_session_t *sess, aim_conn_t *conn, const char *sn)
aim_frame_t *fr;
aim_snacid_t snacid;
aim_tlvlist_t *tl = NULL;
+ struct im_connection *ic = sess->aux_data;
if (!sess || !conn || !sn)
return -EINVAL;
- if ((sn[0] >= '0') && (sn[0] <= '9'))
+ if (isdigit(sn[0]) && set_getbool(&ic->acc->set, "old_icq_auth"))
return goddamnicq(sess, conn, sn);
sess->flags |= AIM_SESS_FLAGS_SNACLOGIN;
diff --git a/protocols/oscar/oscar.c b/protocols/oscar/oscar.c
index 5633d399..7086657a 100644
--- a/protocols/oscar/oscar.c
+++ b/protocols/oscar/oscar.c
@@ -373,6 +373,7 @@ static void oscar_init(account_t *acc)
if (isdigit(acc->user[0])) {
set_add(&acc->set, "ignore_auth_requests", "false", set_eval_bool, acc);
+ set_add(&acc->set, "old_icq_auth", "false", set_eval_bool, acc);
}
s = set_add(&acc->set, "server", AIM_DEFAULT_LOGIN_SERVER, set_eval_account, acc);
@@ -1029,16 +1030,21 @@ static int incomingim_chan2(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_
*exch = args->info.chat.roominfo.exchange;
m = g_list_append(m, exch);
- g_snprintf( txt, 1024, "Got an invitation to chatroom %s from %s: %s", name, userinfo->sn, args->msg );
+ g_snprintf(txt, 1024, "Got an invitation to chatroom %s from %s: %s", name, userinfo->sn, args->msg);
inv->ic = ic;
inv->exchange = *exch;
inv->name = g_strdup(name);
- imcb_ask( ic, txt, inv, oscar_accept_chat, oscar_reject_chat);
+ imcb_ask(ic, txt, inv, oscar_accept_chat, oscar_reject_chat);
if (name)
g_free(name);
+ } else if (args->reqclass & AIM_CAPS_ICQRTF) {
+ // TODO: constify
+ char text[strlen(args->info.rtfmsg.rtfmsg)+1];
+ strncpy(text, args->info.rtfmsg.rtfmsg, sizeof(text));
+ imcb_buddy_msg(ic, normalize(userinfo->sn), text, 0, 0);
}
return 1;