Exemplo n.º 1
0
static void
infd_xmpp_server_dispose(GObject* object)
{
  InfdXmppServer* xmpp;
  InfdXmppServerPrivate* priv;

  xmpp = INFD_XMPP_SERVER(object);
  priv = INFD_XMPP_SERVER_PRIVATE(xmpp);

  if(priv->status != INFD_XMPP_SERVER_CLOSED)
    infd_xml_server_close(INFD_XML_SERVER(xmpp));

  infd_xmpp_server_set_tcp(xmpp, NULL);

  if(priv->sasl_own_context != NULL)
  {
    inf_sasl_context_unref(priv->sasl_own_context);
    priv->sasl_own_context = NULL;
  }

  if(priv->sasl_context != NULL)
  {
    inf_sasl_context_unref(priv->sasl_context);
    priv->sasl_context = NULL;
  }

  if(priv->tls_creds != NULL)
  {
    inf_certificate_credentials_unref(priv->tls_creds);
    priv->tls_creds = NULL;
  }

  G_OBJECT_CLASS(parent_class)->dispose(object);
}
Exemplo n.º 2
0
void Gobby::Server::close()
{
	g_assert(is_open());

	if(m_xmpp6 != NULL)
	{
		// Will be removed from server pool automatically
		infd_xml_server_close(INFD_XML_SERVER(m_xmpp6));
		g_object_unref(m_xmpp6);
		m_xmpp6 = NULL;
	}

	if(m_xmpp4 != NULL)
	{
		// Will be removed from server pool automatically
		infd_xml_server_close(INFD_XML_SERVER(m_xmpp4));
		g_object_unref(m_xmpp4);
		m_xmpp4 = NULL;
	}
}