view plugins/iconaway.c @ 4597:1969709eee1e

[gaim-migrate @ 4882] You know how when you get info with TOC it only works 25% of the time? This fixes that! I wrote the patch, but George Vulov was the one who realized what was going on. Here's his post from the forums: I was looking at the gaim TOC source and I noticed that when gaim receives a GOTO_URL command, it appends the given url to "http://toc.oscar.aol.com";. However, toc.oscar.aol.com resolves to different servers at different times, so when one is logged on using TOC for over 10 mins and requests someone's info, "<H1>The requested URL 901450_722937 was not found on this server</H1>" comes up. gaim should request the info from the specific toc server it is connected to, instead of using toc.oscar.aol.com So basically... we lookup the IP address of our connection socket and keep that in TOC's protocol data. Then, when we get someone's info, open http://64.12.163.214:port/bleh instead of http://toc.oscar.aol.com:port/bleh Thanks George, you da man. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Fri, 21 Feb 2003 05:53:40 +0000
parents 2427d847e39c
children 0b1c01fd68f1
line wrap: on
line source

#include "config.h"

#ifndef GAIM_PLUGINS
#define GAIM_PLUGINS
#endif

#include "gaim.h"

#include <gtk/gtk.h>

#ifdef _WIN32
#include "win32dep.h"
#endif

void *handle;

G_MODULE_IMPORT GtkWidget *imaway;
G_MODULE_IMPORT GtkWidget *blist;
/* XXX G_MODULE_IMPORT GtkWidget *all_chats; */
G_MODULE_IMPORT GtkWidget *all_convos;

#ifdef USE_APPLET
extern void applet_destroy_buddy();
#endif

void iconify_windows(struct gaim_connection *gc, char *state,
					 char *message, void *data) {
	struct gaim_window *win;
	GList *windows;

	if (!imaway || !gc->away)
		return;

	gtk_window_iconify(GTK_WINDOW(imaway));
	hide_buddy_list();

	for (windows = gaim_get_windows();
		 windows != NULL;
		 windows = windows->next) {

		win = (struct gaim_window *)windows->data;

		if (GAIM_IS_GTK_WINDOW(win)) {
			struct gaim_gtk_window *gtkwin;

			gtkwin = GAIM_GTK_WINDOW(win);

			gtk_window_iconify(GTK_WINDOW(gtkwin->window));
		}
	}
}

/*
 *  EXPORTED FUNCTIONS
 */

G_MODULE_EXPORT char *gaim_plugin_init(GModule *h) {
	handle = h;

	gaim_signal_connect(handle, event_away, iconify_windows, NULL);

	return NULL;
}

struct gaim_plugin_description desc; 
G_MODULE_EXPORT struct gaim_plugin_description *gaim_plugin_desc() {
	desc.api_version = PLUGIN_API_VERSION;
	desc.name = g_strdup(_("Iconify on away"));
	desc.version = g_strdup(VERSION);
	desc.description = g_strdup(_("Iconifies the away box and the buddy list when you go away."));
	desc.authors = g_strdup("Eric Warmenhoven &lt;eric@warmenhoven.org>");
	desc.url = g_strdup(WEBSITE);
	return &desc;
}
 
G_MODULE_EXPORT char *name() {
	return _("Iconify on away");
}

G_MODULE_EXPORT char *description() {
	return _("Iconifies the away box and the buddy list when you go away.");
}