Mercurial > pidgin
view src/gaim-client.c @ 13902:425e0f861e88
[gaim-migrate @ 16390]
A small part of sf patch #1490646, from Jonty Wareing & Jono Cole
"Fix & Enhance the Bonjour prpl"
"Several instances of "magic strings" have been replaced
with proper XML parsing code in the Bonjour prpl,
allowing it to communicate with other Gaim clients (a
misplaced space in one of the strings prevented this),
and every other Bonjour chat client we can find.
A fair amount of completely redundant code was also
stripped, which in combination with the proper XML
parsing allows the client to be far more flexible about
Jabber errors in other clients."
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sat, 01 Jul 2006 22:32:20 +0000 |
parents | 421a8523ad04 |
children | 8bda65b88e49 |
line wrap: on
line source
#define DBUS_API_SUBJECT_TO_CHANGE #include <dbus/dbus-glib.h> #include <stdio.h> #include <stdlib.h> #include "dbus-gaim.h" #include "gaim-client-bindings.h" static DBusGConnection *bus; static DBusGProxy *gaim_proxy; static GList *garray_int_to_glist(GArray *array) { GList *list = NULL; int i; for(i = 0; i < array->len; i++) list = g_list_append(list, GINT_TO_POINTER(g_array_index(array,gint,i))); g_array_free(array, TRUE); return list; } static GSList *garray_int_to_gslist(GArray *array) { GSList *list = NULL; int i; for(i = 0; i < array->len; i++) list = g_slist_append(list, GINT_TO_POINTER(g_array_index(array,gint,i))); g_array_free(array, TRUE); return list; } #include "gaim-client-bindings.c" static void lose (const char *fmt, ...) G_GNUC_NORETURN G_GNUC_PRINTF (1, 2); static void lose_gerror (const char *prefix, GError *error) G_GNUC_NORETURN; static void lose (const char *str, ...) { va_list args; va_start (args, str); vfprintf (stderr, str, args); fputc ('\n', stderr); va_end (args); exit (1); } static void lose_gerror (const char *prefix, GError *error) { lose ("%s: %s", prefix, error->message); } void gaim_init(void) { GError *error = NULL; g_type_init (); bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error); if (!bus) lose_gerror ("Couldn't connect to session bus", error); gaim_proxy = dbus_g_proxy_new_for_name (bus, DBUS_SERVICE_GAIM, DBUS_PATH_GAIM, DBUS_INTERFACE_GAIM); if (!gaim_proxy) lose_gerror ("Couldn't connect to the Gaim Service", error); }