purple_ssl_close function problem (MSN Connection)

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

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.

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)

	if (gsc->inpa > 0)

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


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?

More information about the Devel mailing list