view src/prpl.c @ 8118:52089b055c12

[gaim-migrate @ 8822] "Hi over there... just found another overflow while creating patches for gaim-cvs and 0.75 for all vulnerabilities I have found. The new overflow is in gaim_url_parse a sscanf without sizechecks into stackbuffers. I think you can apply the patches directly and all vulnerabilities are gone..." -- Stefan Esser " Using 0.75, looking at the logs for conversations I've had since upgrading, I discovered that the formating (font, color, size) of the text was not showing up. Looking at the actual HTML in the log files I discovered that the use of tags has replaced with tags and inline CSS, this formatting shows up fine when viewing the logs using a browser such as Mozilla, but not in the Gaim log viewer. Here, I fixed my own bug in 0.75 and then fixed it in 0.76cvs so I could give you the diff. Actually tested it in 0.76cvs, apparently all the font handling stuff is a bit screwy, but you might as well add my work so when it's back to normal the log viewer is consistent with the log files." --Douglas (douglaswth) Thrift (18:10:53) Me: look at that html patch (18:11:02) seanegn: I did last night (18:11:06) Me: and? (18:12:35) Me: can it go in? (18:17:33) ***Me senses he is being ignored (18:18:50) seanegn: haha, no. (18:18:59) seanegn: It looked like it should be good. Do you want to commit it? (18:19:04) Me: i can do that yes (18:19:14) Me: i'm looking at if the overflow patch compiles currently (18:19:24) seanegn: do that one too (18:19:27) Me: :-) (18:19:48) seanegn: Why do I have a feeling that this conversation (including this line) is going to be part of a commit log message? (18:19:53) seanegn: Hi, gaim-commits! (18:19:56) Me: lol (18:20:25) Me: *inocently* would i do that? (18:20:31) Me: :-P committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Thu, 15 Jan 2004 23:26:07 +0000
parents fa6395637e2c
children 9ee2542d1104
line wrap: on
line source

/*
 * gaim
 *
 * Gaim is the legal property of its developers, whose names are too numerous
 * to list here.  Please refer to the COPYRIGHT file distributed with this
 * source distribution.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */
#include "internal.h"
#include "conversation.h"
#include "debug.h"
#include "multi.h"
#include "notify.h"
#include "prpl.h"
#include "request.h"
#include "util.h"

const char *
gaim_prpl_num_to_id(GaimProtocol protocol)
{
	g_return_val_if_fail(protocol >= 0 && protocol < GAIM_PROTO_UNTAKEN, NULL);

	switch (protocol)
	{
		case GAIM_PROTO_TOC:      return "prpl-toc";     break;
		case GAIM_PROTO_OSCAR:    return "prpl-oscar";   break;
		case GAIM_PROTO_YAHOO:    return "prpl-yahoo";   break;
		case GAIM_PROTO_ICQ:      return "prpl-icq";     break;
		case GAIM_PROTO_MSN:      return "prpl-msn";     break;
		case GAIM_PROTO_IRC:      return "prpl-irc";     break;
		case GAIM_PROTO_JABBER:   return "prpl-jabber";  break;
		case GAIM_PROTO_NAPSTER:  return "prpl-napster"; break;
		case GAIM_PROTO_ZEPHYR:   return "prpl-zephyr";  break;
		case GAIM_PROTO_GADUGADU: return "prpl-gg";      break;
		case GAIM_PROTO_MOO:      return "prpl-moo";     break;
		case GAIM_PROTO_TREPIA:   return "prpl-trepia";  break;
		case GAIM_PROTO_BLOGGER:  return "prpl-blogger"; break;

		default:
			break;
	}

	return NULL;
}

GaimProtocol
gaim_prpl_id_to_num(const char *id)
{
	g_return_val_if_fail(id != NULL, -1);

	if      (!strcmp(id, "prpl-toc"))     return GAIM_PROTO_TOC;
	else if (!strcmp(id, "prpl-oscar"))   return GAIM_PROTO_OSCAR;
	else if (!strcmp(id, "prpl-yahoo"))   return GAIM_PROTO_YAHOO;
	else if (!strcmp(id, "prpl-icq"))     return GAIM_PROTO_ICQ;
	else if (!strcmp(id, "prpl-msn"))     return GAIM_PROTO_MSN;
	else if (!strcmp(id, "prpl-irc"))     return GAIM_PROTO_IRC;
	else if (!strcmp(id, "prpl-jabber"))  return GAIM_PROTO_JABBER;
	else if (!strcmp(id, "prpl-napster")) return GAIM_PROTO_NAPSTER;
	else if (!strcmp(id, "prpl-zephyr"))  return GAIM_PROTO_ZEPHYR;
	else if (!strcmp(id, "prpl-gg"))      return GAIM_PROTO_GADUGADU;
	else if (!strcmp(id, "prpl-moo"))     return GAIM_PROTO_MOO;
	else if (!strcmp(id, "prpl-trepia"))  return GAIM_PROTO_TREPIA;
	else if (!strcmp(id, "prpl-blogger")) return GAIM_PROTO_BLOGGER;

	return -1;
}

GaimPlugin *
gaim_find_prpl(const char *id)
{
	GList *l;
	GaimPlugin *plugin;

	for (l = gaim_plugins_get_protocols(); l != NULL; l = l->next) {
		plugin = (GaimPlugin *)l->data;

		/* Just In Case (TM) */
		if (GAIM_IS_PROTOCOL_PLUGIN(plugin)) {

			if (!strcmp(plugin->info->id, id))
				return plugin;
		}
	}

	return NULL;
}