view src/dbus-useful.c @ 13598:41e40b323dc3

[gaim-migrate @ 15984] Previously our file transfer dialog showed "time elapsed" as the current time minus the time when the transfer was added to the ft dialog. When sending a file, the transfer is added when you offer the file to the remote user, not when the transfer actually starts. This meant the "time elapsed" was longer than it should have been, which threw off the transfer rate. This should fix that. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sun, 09 Apr 2006 17:38:38 +0000
parents c9312177821a
children 8bda65b88e49
line wrap: on
line source

#include <string.h>
#include <glib.h>

#include "dbus-useful.h"
#include "conversation.h"
#include "util.h"


GaimAccount *
gaim_accounts_find_ext(const char *name, const char *protocol_id, 
		       gboolean (*account_test)(const GaimAccount *account))
{
    GaimAccount *result = NULL;
    GList *l;
    char *who;
    
    if (name)
	who = g_strdup(gaim_normalize(NULL, name));
    else 
	who = NULL;
    
    for (l = gaim_accounts_get_all(); l != NULL; l = l->next) {
	GaimAccount *account = (GaimAccount *)l->data;
	
	if (who && strcmp(gaim_normalize(NULL, gaim_account_get_username(account)), who))
	    continue;

	if (protocol_id && strcmp(account->protocol_id, protocol_id))
	    continue;

	if (account_test && !account_test(account)) 
	    continue;

	result = account;
	break;
    }

    g_free(who);

    return result;
}

GaimAccount *gaim_accounts_find_any(const char *name, const char *protocol) 
{
    return gaim_accounts_find_ext(name, protocol, NULL);
}

GaimAccount *gaim_accounts_find_connected(const char *name, const char *protocol) 
{
    return gaim_accounts_find_ext(name, protocol, gaim_account_is_connected);
}