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; |