Fixed warning with a missing function declaration
[cascardo/rnetproxy.git] / jabber.c
index ebd7627..1c3f520 100644 (file)
--- a/jabber.c
+++ b/jabber.c
@@ -29,6 +29,14 @@ static void jabber_connect (net_hook_t* hook)
 
 static void jabber_close (net_hook_t* hook)
 {
+  if (hook->peer)
+    {
+      hook->peer->peer = NULL;
+      gnet_conn_disconnect (hook->peer->conn);
+    }
+  gnet_conn_delete (hook->conn);
+  iks_parser_delete (hook->data);
+  g_slice_free (net_hook_t, hook);
 }
 
 static void jabber_write (net_hook_t* hook)
@@ -48,7 +56,6 @@ void jabber_error (net_hook_t* hook)
 GString* jabber_new_start (iks* node)
 {
   GString* buffer;
-  iks* attrib;
   buffer = g_string_sized_new (256);
   g_string_append (buffer, iks_string (iks_stack (node), node));
   g_string_erase (buffer, buffer->len - 2, 1);
@@ -63,13 +70,13 @@ void jabber_connect_server (net_hook_t* hook, char* server, iks* node)
   if (hook->peer == NULL)
     {
       server_hook = jabber_server_hook_new (hook, server);
-      hook->peer = server_hook->conn;
+      hook->peer = server_hook;
       g_message ("Trying to connect to server %s.", server);
-      gnet_conn_connect (hook->peer);
-      gnet_conn_read (hook->peer);
+      gnet_conn_connect (hook->peer->conn);
+      gnet_conn_read (hook->peer->conn);
     }
   buffer = jabber_new_start (node);
-  gnet_conn_write (hook->peer, buffer->str, buffer->len);
+  gnet_conn_write (hook->peer->conn, buffer->str, buffer->len);
   g_string_free (buffer, TRUE);
 }
 
@@ -77,7 +84,7 @@ void jabber_send (net_hook_t* hook, iks* node)
 {
   GString* buffer;
   buffer = g_string_new (iks_string (iks_stack (node), node));
-  gnet_conn_write (hook->peer, buffer->str, buffer->len);
+  gnet_conn_write (hook->peer->conn, buffer->str, buffer->len);
   g_string_free (buffer, TRUE);
 }
 
@@ -102,7 +109,7 @@ int jabber_parser (gpointer data, int type, iks* node)
       iks_delete (node);
       break;
     case IKS_NODE_STOP:
-      gnet_conn_write (hook->peer, "</stream:stream>", 16);
+      gnet_conn_write (hook->peer->conn, "</stream:stream>", 16);
       break;
     case IKS_NODE_ERROR:
       break;