changeset 1720:98d99485d276

Do not use the full JID for vcard requests (Hermitifier)
author Mikael Berthe <mikael@lilotux.net>
date Thu, 25 Feb 2010 21:26:15 +0100
parents f3c5e1175b22
children 8cfc2a386b1f
files mcabber/mcabber/commands.c mcabber/mcabber/xmpp.c
diffstat 2 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/mcabber/commands.c	Thu Feb 25 21:21:43 2010 +0100
+++ b/mcabber/mcabber/commands.c	Thu Feb 25 21:26:15 2010 +0100
@@ -3227,7 +3227,7 @@
 static void do_request(char *arg)
 {
   char **paramlst;
-  char *fjid, *type;
+  char *fjid, *type, *tmp;
   enum iqreq_type numtype = iqreq_none;
   char *jid_utf8 = NULL;
 
@@ -3289,10 +3289,13 @@
 
   if (fjid) {
     switch (numtype) {
+      case iqreq_vcard:
+          // vCards requests are done to bare jid
+          tmp = strchr(fjid, JID_RESOURCE_SEPARATOR);
+          if (tmp) *tmp = '\0';
       case iqreq_version:
       case iqreq_time:
       case iqreq_last:
-      case iqreq_vcard:
       case iqreq_ping:
           xmpp_request(fjid, numtype);
           break;
--- a/mcabber/mcabber/xmpp.c	Thu Feb 25 21:21:43 2010 +0100
+++ b/mcabber/mcabber/xmpp.c	Thu Feb 25 21:26:15 2010 +0100
@@ -254,8 +254,9 @@
   } else
     return;
 
-  if (strchr(fjid, JID_RESOURCE_SEPARATOR)) {
+  if (strchr(fjid, JID_RESOURCE_SEPARATOR) || reqtype == iqreq_vcard) {
     // This is a full JID
+    // Or a vCard request, resource should have been stripped before
     xmpp_iq_request(fjid, xmlns);
     scr_LogPrint(LPRINT_NORMAL, "Sent %s request to <%s>", strreqtype, fjid);
     return;