view src/protocols/oscar/popups.c @ 4024:c97789bb4bbc

[gaim-migrate @ 4226] spelling fixes from John B. Silvestri. quoth he: While looking through the .todo (the web version, actually) for something, my cable modem chose to drop my connection. In a fit of boredom, I've gone ahead and proofread the todo for typos. I could have gone crazy and capitalized the first letter of every sentence, but I was not that bored :-). These are just a few little typos. For some reason, I have a knack at spotting these things, and somehow it just seems better to have it right, even for developers :). [Added note: It later occurred to me to run the .todo through a spellchecker, which caught about twice as many new typos as my eyes caught - hint: "I before E, except after C, and a few odd cases (their, weigh, etc.).] committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Sat, 30 Nov 2002 19:09:22 +0000
parents 07283934dedd
children 6d3d8f11e765
line wrap: on
line source

/*
 * Family 0x0008 - Popups.
 *
 * Popups are just what it sounds like.  They're a way for the server to
 * open up an informative box on the client's screen.
 */

#define FAIM_INTERNAL
#include <aim.h>

/*
 * This is all there is to it.
 *
 * The message is probably HTML.
 * 
 */
static int parsepopup(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)
{
	aim_rxcallback_t userfunc;
	aim_tlvlist_t *tl;
	int ret = 0;
	char *msg, *url;
	fu16_t width, height, delay;

	tl = aim_readtlvchain(bs);

	msg = aim_gettlv_str(tl, 0x0001, 1);
	url = aim_gettlv_str(tl, 0x0002, 1);
	width = aim_gettlv16(tl, 0x0003, 1);
	height = aim_gettlv16(tl, 0x0004, 1);
	delay = aim_gettlv16(tl, 0x0005, 1);

	if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
		ret = userfunc(sess, rx, msg, url, width, height, delay);

	aim_freetlvchain(&tl);
	free(msg);
	free(url);

	return ret;
}

static int snachandler(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)
{

	if (snac->subtype == 0x0002)
		return parsepopup(sess, mod, rx, snac, bs);

	return 0;
}

faim_internal int popups_modfirst(aim_session_t *sess, aim_module_t *mod)
{

	mod->family = 0x0008;
	mod->version = 0x0001;
	mod->toolid = 0x0104;
	mod->toolversion = 0x0001;
	mod->flags = 0;
	strncpy(mod->name, "popups", sizeof(mod->name));
	mod->snachandler = snachandler;

	return 0;
}