about summary refs log tree commit diff stats
path: root/src/contact.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2013-02-10 02:17:22 +0000
committerJames Booth <boothj5@gmail.com>2013-02-10 02:17:22 +0000
commit84a4ab95459107d50625b3487ad0ffbee78ffe31 (patch)
tree5b3a0aee76f31d2987fd00be7b10f3b8bad5614d /src/contact.c
parent84a6ac194972b25c014ecf8d238a13cf153a57fa (diff)
downloadprofani-tty-84a4ab95459107d50625b3487ad0ffbee78ffe31.tar.gz
Fixed error clearing contact list
Diffstat (limited to 'src/contact.c')
-rw-r--r--src/contact.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/contact.c b/src/contact.c
index d1929e60..dd0205ee 100644
--- a/src/contact.c
+++ b/src/contact.c
@@ -65,6 +65,32 @@ p_contact_new(const char * const barejid, const char * const name,
         (GDestroyNotify)resource_destroy);
     // TODO, priority, last activity
     Resource *resource = resource_new("default", presence, status, 0, caps_str);
+    g_hash_table_insert(contact->resources, strdup(resource->name), resource);
+
+    return contact;
+}
+
+PContact
+p_contact_new_subscription(const char * const barejid,
+    const char * const subscription, gboolean pending_out)
+{
+    PContact contact = malloc(sizeof(struct p_contact_t));
+    contact->barejid = strdup(barejid);
+
+    contact->name = NULL;
+
+    if (subscription != NULL)
+        contact->subscription = strdup(subscription);
+    else
+        contact->subscription = strdup("none");
+
+    contact->pending_out = pending_out;
+    contact->last_activity = NULL;
+
+    contact->resources = g_hash_table_new_full(g_str_hash, g_str_equal, free,
+        (GDestroyNotify)resource_destroy);
+    // TODO, priority, last activity
+    Resource *resource = resource_new("default", "offline", NULL, 0, NULL);
     g_hash_table_insert(contact->resources, resource->name, resource);
 
     return contact;