diff options
| author | Jelmer Vernooij <jelmer@samba.org> | 2005-12-15 13:24:25 +0100 | 
|---|---|---|
| committer | Jelmer Vernooij <jelmer@samba.org> | 2005-12-15 13:24:25 +0100 | 
| commit | bd69a219c0a618354fd80a98dd0d9a04fee755e0 (patch) | |
| tree | b4477537e48c6d7b2e5a261aa860a0688d69fb66 /protocols/oscar/im.c | |
| parent | 2983f5e8c2d3046bf01337e5caefa3af55ba6bff (diff) | |
| parent | bf02a679c61b0f030ee8f2f01698699a7775f7d5 (diff) | |
Merge Wilmer
Diffstat (limited to 'protocols/oscar/im.c')
| -rw-r--r-- | protocols/oscar/im.c | 26 | 
1 files changed, 26 insertions, 0 deletions
| diff --git a/protocols/oscar/im.c b/protocols/oscar/im.c index 085687e0..c829d409 100644 --- a/protocols/oscar/im.c +++ b/protocols/oscar/im.c @@ -1368,6 +1368,30 @@ static int incomingim_ch1(aim_session_t *sess, aim_module_t *mod, aim_frame_t *r  	return ret;  } + +static void incomingim_ch2_chat_free(aim_session_t *sess, struct aim_incomingim_ch2_args *args) +{ + +	/* XXX aim_chat_roominfo_free() */ +	g_free(args->info.chat.roominfo.name); + +	return; +} + +static void incomingim_ch2_chat(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_userinfo_t *userinfo, struct aim_incomingim_ch2_args *args, aim_bstream_t *servdata) +{ + +	/* +	 * Chat room info. +	 */ +	if (servdata) +		aim_chat_readroominfo(servdata, &args->info.chat.roominfo); + +	args->destructor = (void *)incomingim_ch2_chat_free; + +	return; +} +  static void incomingim_ch2_icqserverrelay_free(aim_session_t *sess, struct aim_incomingim_ch2_args *args)  { @@ -1616,6 +1640,8 @@ static int incomingim_ch2(aim_session_t *sess, aim_module_t *mod, aim_frame_t *r  	if (args.reqclass & AIM_CAPS_ICQSERVERRELAY)  		incomingim_ch2_icqserverrelay(sess, mod, rx, snac, userinfo, &args, sdbsptr); +	else if (args.reqclass & AIM_CAPS_CHAT) +		incomingim_ch2_chat(sess, mod, rx, snac, userinfo, &args, sdbsptr);  	if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) | 
