purple_ssl_close function problem (MSN Connection)

Paranoid paran01d at bol.com.br
Fri May 25 13:43:28 EDT 2007


Hello,
I found a problem in the "purple_ssl_close()" function in the file "sslconn.c".
Every time I connect to MSN protocol, an error occur because the libpurple try to close the same socket twice.

void
purple_ssl_close(PurpleSslConnection *gsc)
{
	PurpleSslOps *ops;

	g_return_if_fail(gsc != NULL);

	ops = purple_ssl_get_ops();
	(ops->close)(gsc);    //<=First close

	if (gsc->connect_data != NULL)
		purple_proxy_connect_cancel(gsc->connect_data);

	if (gsc->inpa > 0)
		purple_input_remove(gsc->inpa);

	if (gsc->fd >= 0)
		close(gsc->fd); //<=Second close

	g_free(gsc->host);
	g_free(gsc);
}

Both calls marked above end calling "_closesocket" function for the same file descriptor.
With Visual C++ 2005 an assertion is showed and the program is terminated. The same error occur in VC2003 but the program continue running.
If I comment the second close, no error occurs, but I am asking myself that there must be a reason for this two closes.
Someone can help me with this question?
[]´s
Caio




More information about the Devel mailing list