mcabber/src/jab_iq.c
changeset 1290 e42f48103609
parent 1283 2faf179166f3
child 1310 a5336c44d4e2
equal deleted inserted replaced
1289:57fe57474122 1290:e42f48103609
   345 
   345 
   346   // bjid should now really be the "bare JID", let's strip the resource
   346   // bjid should now really be the "bare JID", let's strip the resource
   347   p = strchr(bjid, JID_RESOURCE_SEPARATOR);
   347   p = strchr(bjid, JID_RESOURCE_SEPARATOR);
   348   if (p) *p = '\0';
   348   if (p) *p = '\0';
   349 
   349 
   350   scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO);
   350   scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO, 0);
   351   g_free(buf);
   351   g_free(buf);
   352 
   352 
   353   // Get result data...
   353   // Get result data...
   354   p = xmlnode_get_tag_data(ansqry, "name");
   354   p = xmlnode_get_tag_data(ansqry, "name");
   355   if (p) {
   355   if (p) {
   356     buf = g_strdup_printf("Name:    %s", p);
   356     buf = g_strdup_printf("Name:    %s", p);
   357     scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO | HBB_PREFIX_CONT);
   357     scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO | HBB_PREFIX_CONT, 0);
   358     g_free(buf);
   358     g_free(buf);
   359   }
   359   }
   360   p = xmlnode_get_tag_data(ansqry, "version");
   360   p = xmlnode_get_tag_data(ansqry, "version");
   361   if (p) {
   361   if (p) {
   362     buf = g_strdup_printf("Version: %s", p);
   362     buf = g_strdup_printf("Version: %s", p);
   363     scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO | HBB_PREFIX_CONT);
   363     scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO | HBB_PREFIX_CONT, 0);
   364     g_free(buf);
   364     g_free(buf);
   365   }
   365   }
   366   p = xmlnode_get_tag_data(ansqry, "os");
   366   p = xmlnode_get_tag_data(ansqry, "os");
   367   if (p) {
   367   if (p) {
   368     buf = g_strdup_printf("OS:      %s", p);
   368     buf = g_strdup_printf("OS:      %s", p);
   369     scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO | HBB_PREFIX_CONT);
   369     scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO | HBB_PREFIX_CONT, 0);
   370     g_free(buf);
   370     g_free(buf);
   371   }
   371   }
   372   return 0;
   372   return 0;
   373 }
   373 }
   374 
   374 
   410 
   410 
   411   // bjid should now really be the "bare JID", let's strip the resource
   411   // bjid should now really be the "bare JID", let's strip the resource
   412   p = strchr(bjid, JID_RESOURCE_SEPARATOR);
   412   p = strchr(bjid, JID_RESOURCE_SEPARATOR);
   413   if (p) *p = '\0';
   413   if (p) *p = '\0';
   414 
   414 
   415   scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO);
   415   scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO, 0);
   416   g_free(buf);
   416   g_free(buf);
   417 
   417 
   418   // Get result data...
   418   // Get result data...
   419   p = xmlnode_get_tag_data(ansqry, "utc");
   419   p = xmlnode_get_tag_data(ansqry, "utc");
   420   if (p) {
   420   if (p) {
   421     buf = g_strdup_printf("UTC:  %s", p);
   421     buf = g_strdup_printf("UTC:  %s", p);
   422     scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO | HBB_PREFIX_CONT);
   422     scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO | HBB_PREFIX_CONT, 0);
   423     g_free(buf);
   423     g_free(buf);
   424   }
   424   }
   425   p = xmlnode_get_tag_data(ansqry, "tz");
   425   p = xmlnode_get_tag_data(ansqry, "tz");
   426   if (p) {
   426   if (p) {
   427     buf = g_strdup_printf("TZ:   %s", p);
   427     buf = g_strdup_printf("TZ:   %s", p);
   428     scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO | HBB_PREFIX_CONT);
   428     scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO | HBB_PREFIX_CONT, 0);
   429     g_free(buf);
   429     g_free(buf);
   430   }
   430   }
   431   p = xmlnode_get_tag_data(ansqry, "display");
   431   p = xmlnode_get_tag_data(ansqry, "display");
   432   if (p) {
   432   if (p) {
   433     buf = g_strdup_printf("Time: %s", p);
   433     buf = g_strdup_printf("Time: %s", p);
   434     scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO | HBB_PREFIX_CONT);
   434     scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO | HBB_PREFIX_CONT, 0);
   435     g_free(buf);
   435     g_free(buf);
   436   }
   436   }
   437   return 0;
   437   return 0;
   438 }
   438 }
   439 
   439 
   475 
   475 
   476   // bjid should now really be the "bare JID", let's strip the resource
   476   // bjid should now really be the "bare JID", let's strip the resource
   477   p = strchr(bjid, JID_RESOURCE_SEPARATOR);
   477   p = strchr(bjid, JID_RESOURCE_SEPARATOR);
   478   if (p) *p = '\0';
   478   if (p) *p = '\0';
   479 
   479 
   480   scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO);
   480   scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO, 0);
   481   g_free(buf);
   481   g_free(buf);
   482 
   482 
   483   // Get result data...
   483   // Get result data...
   484   p = xmlnode_get_attrib(ansqry, "seconds");
   484   p = xmlnode_get_attrib(ansqry, "seconds");
   485   if (p) {
   485   if (p) {
   495     // hh:mm:ss
   495     // hh:mm:ss
   496     g_string_append_printf(sbuf, "%02ld:", s/3600L);
   496     g_string_append_printf(sbuf, "%02ld:", s/3600L);
   497     s %= 3600L;
   497     s %= 3600L;
   498     g_string_append_printf(sbuf, "%02ld:%02ld", s/60L, s%60L);
   498     g_string_append_printf(sbuf, "%02ld:%02ld", s/60L, s%60L);
   499     scr_WriteIncomingMessage(bjid, sbuf->str,
   499     scr_WriteIncomingMessage(bjid, sbuf->str,
   500                              0, HBB_PREFIX_INFO | HBB_PREFIX_CONT);
   500                              0, HBB_PREFIX_INFO | HBB_PREFIX_CONT, 0);
   501     g_string_free(sbuf, TRUE);
   501     g_string_free(sbuf, TRUE);
   502   } else {
   502   } else {
   503     scr_WriteIncomingMessage(bjid, "No idle time reported.",
   503     scr_WriteIncomingMessage(bjid, "No idle time reported.",
   504                              0, HBB_PREFIX_INFO | HBB_PREFIX_CONT);
   504                              0, HBB_PREFIX_INFO | HBB_PREFIX_CONT, 0);
   505   }
   505   }
   506   p = xmlnode_get_data(ansqry);
   506   p = xmlnode_get_data(ansqry);
   507   if (p) {
   507   if (p) {
   508     buf = g_strdup_printf("Status message: %s", p);
   508     buf = g_strdup_printf("Status message: %s", p);
   509     scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO);
   509     scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO, 0);
   510     g_free(buf);
   510     g_free(buf);
   511   }
   511   }
   512   return 0;
   512   return 0;
   513 }
   513 }
   514 
   514 
   539                         (vcard_attrib & vcard_cell ? "[cell]" : ""),
   539                         (vcard_attrib & vcard_cell ? "[cell]" : ""),
   540                         (vcard_attrib & vcard_inet ? "[inet]" : ""),
   540                         (vcard_attrib & vcard_inet ? "[inet]" : ""),
   541                         (vcard_attrib & vcard_pref ? "[pref]" : ""),
   541                         (vcard_attrib & vcard_pref ? "[pref]" : ""),
   542                         (vcard_attrib ? " " : ""),
   542                         (vcard_attrib ? " " : ""),
   543                         text);
   543                         text);
   544   scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO | HBB_PREFIX_CONT);
   544   scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO | HBB_PREFIX_CONT, 0);
   545   g_free(buf);
   545   g_free(buf);
   546 }
   546 }
   547 
   547 
   548 static void handle_vcard_node(const char *barejid, xmlnode vcardnode)
   548 static void handle_vcard_node(const char *barejid, xmlnode vcardnode)
   549 {
   549 {
   663 
   663 
   664   // bjid should really be the "bare JID", let's strip the resource
   664   // bjid should really be the "bare JID", let's strip the resource
   665   p = strchr(bjid, JID_RESOURCE_SEPARATOR);
   665   p = strchr(bjid, JID_RESOURCE_SEPARATOR);
   666   if (p) *p = '\0';
   666   if (p) *p = '\0';
   667 
   667 
   668   scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO);
   668   scr_WriteIncomingMessage(bjid, buf, 0, HBB_PREFIX_INFO, 0);
   669   g_free(buf);
   669   g_free(buf);
   670 
   670 
   671   // Get result data...
   671   // Get result data...
   672   handle_vcard_node(bjid, ansqry);
   672   handle_vcard_node(bjid, ansqry);
   673   return 0;
   673   return 0;