view libpurple/plugins/perl/libpurpleperl.c @ 18909:c32fcdef2809

Only say we are connected after the MsimSession structure is fully setup. (Also change a few debugging statements to help find this bug.) Previously, purple_connection_set_state(..., PURPLE_CONNECTED) was called too early, so that if a client called any msimprpl functions that operated on MsimSession (pretty much all of them) within the signed-on signal handler, the userid etc., would not yet be correct and the call would fail. Now, the call is called at the right time so it works as expected. Closes #2520.
author Jeffrey Connelly <jaconnel@calpoly.edu>
date Sun, 12 Aug 2007 18:48:03 +0000
parents c6e563dfaa7a
children
line wrap: on
line source

#include <gmodule.h>

#ifdef  __SUNPRO_C
#pragma init (my_init)
void my_init(void);

void my_init() {
#else
void __attribute__ ((constructor)) my_init(void);

void __attribute__ ((constructor)) my_init() {
#endif

	/* Very evil hack...puts perl.so's symbols in the global table
	 * but does not create a circular dependancy because g_module_open
	 * will only open the library once. */
	g_module_open("perl.so", 0);
}